{"version":3,"sources":["assets/interconnect-logo.svg","assets/marker.svg","assets/header-arrow.svg","assets/tram.svg","assets/train.svg","assets/bus.svg","assets/trolleybus.svg","assets/ferry.svg","assets/tram-delayed.svg","assets/train-delayed.svg","assets/bus-delayed.svg","assets/trolleybus-delayed.svg","assets/Roboto-Light.ttf","assets/Roboto-Regular.ttf","assets/Roboto-Italic.ttf","assets/marker-primary.svg","assets/Roboto-Medium.ttf","assets/Roboto-MediumItalic.ttf","assets/background.jpg","assets/fala.svg","assets/Roboto-LightItalic.ttf","assets/stop-marker.svg","utils.tsx","provider/home/StopMarker.tsx","provider/home/VehicleMarker.tsx","assets/chevron.svg","assets/search.svg","common/CustomAutocomplete.tsx","assets/calendar.svg","common/CustomDatePicker.tsx","context.ts","provider/VersionInfo.tsx","provider/home/Left.tsx","assets/directions.svg","assets/chevron-white.svg","provider/home/Trips.tsx","provider/common.tsx","provider/home/Home.tsx","assets/chart-pie.svg","assets/chart-line.svg","webpack:///./src/assets/bus.svg?d226","webpack:///./src/assets/train.svg?e4f0","webpack:///./src/assets/tram.svg?5e30","webpack:///./src/assets/trolleybus.svg?84c4","webpack:///./src/assets/ferry.svg?55d3","provider/VehicleIcon.tsx","provider/StatisticsSearch.tsx","provider/Statistics.tsx","assets/clear.svg","provider/impact-area/Radius.tsx","provider/impact-area/ImpactArea.tsx","provider/Export.tsx","provider/analysis/SynchronizationTable.tsx","provider/analysis/Synchronization.tsx","assets/chevron-primary.svg","assets/plus-minus.svg","provider/analysis/RouteTransfers.tsx","provider/analysis/StopTransfer.tsx","provider/analysis/Analysis.tsx","assets/chevron-big.svg","provider/Import.tsx","provider/Roles.tsx","provider/NewHeader.tsx","assets/clear-white.svg","provider/ButtonList.tsx","provider/DeleteDialog.tsx","provider/data/Routes.tsx","assets/draggable.svg","provider/data/Patterns.tsx","provider/data/time-zones.ts","common/NumberField.tsx","common/SelectLocation.tsx","provider/data/Stops.tsx","provider/data/Calendars.tsx","assets/copy-arrow.svg","common/PathSelect.tsx","provider/data/Shapes.tsx","provider/data/Trips.tsx","provider/data/Manage.tsx","provider/data/crew/Assign.tsx","assets/direction-arrow.svg","provider/data/crew/Manage.tsx","provider/data/crew/Drivers.tsx","provider/data/crew/Vehicles.tsx","provider/data/crew/Crew.tsx","provider/data/Reports.tsx","provider/data/Tickets.tsx","provider/data/Timetables.tsx","provider/data/Data.tsx","assets/roles.svg","assets/log-out.svg","assets/switch.svg","assets/data-source.svg","assets/organizations.svg","assets/help.svg","assets/hamburger.svg","assets/menu-home.svg","assets/menu-card.svg","assets/menu-timetables.svg","common/UserMenu.tsx","provider/DataSource.tsx","provider/Organizations.tsx","common/SupportContent/Contact.tsx","common/SupportContent/FAQ.tsx","common/SupportContent/ManageFAQ.tsx","common/SupportContent/SupportContent.tsx","provider/Support.tsx","assets/entering.svg","assets/leaving.svg","assets/clock.svg","assets/passengers.svg","provider/trips/VehicleOccupancy.tsx","common/PeriodSelect.tsx","provider/trips/PassengerStreams.tsx","provider/trips/Tickets.tsx","provider/trips/Trips.tsx","provider/Provider.tsx","webpack:///./src/assets/interconnect-logo.svg?d7fd","assets/google.svg","assets/facebook.svg","assets/eye.svg","assets/eye-active.svg","common/PasswordField.tsx","auth/Register.tsx","auth/EmailVerified.tsx","auth/Login.tsx","auth/RecoverPassword.tsx","assets/eusbsr.svg","assets/interreg.svg","passenger/Footer.tsx","auth/Auth.tsx","auth/Callback.tsx","common/LoggedInRoute.tsx","assets/swap.svg","assets/back-arrow.svg","webpack:///./src/assets/marker-primary.svg?baba","assets/bookmark-filled.svg","assets/delete.svg","assets/your-location.svg","assets/marker-outlined.svg","assets/home.svg","assets/flight.svg","assets/flight-black.svg","passenger/trip-planning/LocationSearch.tsx","assets/walk.svg","assets/chevron-small.svg","assets/marker-outlined-dark.svg","assets/bookmark.svg","assets/share.svg","passenger/trip-planning/BuyTicketButton.tsx","passenger/trip-planning/BuyTickets.tsx","passenger/trip-planning/Results.tsx","assets/home-active.svg","passenger/Nav.tsx","passenger/trip-planning/TripPlanning.tsx","passenger/PrivacyPolicy.tsx","passenger/Terms.tsx","passenger/About.tsx","assets/card.svg","assets/star.svg","assets/phone.svg","assets/website.svg","assets/download.svg","assets/map.svg","assets/accessible.svg","assets/elevator.svg","assets/escalator.svg","common/AztecCode.tsx","passenger/DraggableCard.tsx","passenger/Card.tsx","CookieDisclaimer.tsx","card/Roles.tsx","assets/image-placeholder.svg","common/ImageUpload.tsx","card/Site.tsx","card/Attraction.tsx","card/Organizations.tsx","assets/package-on-sale.svg","assets/package-on-sale-starting.svg","assets/package-archived.svg","card/PackageAttraction.tsx","card/PackageIcon.tsx","card/Packages.tsx","card/PackageUsage.tsx","card/VisitorAttendance.tsx","card/Statistics.tsx","card/Cards.tsx","card/Card.tsx","passenger/Support.tsx","assets/timetable.svg","assets/bus-white.svg","assets/trolleybus-white.svg","assets/tram-white.svg","assets/train-white.svg","assets/ferry-white.svg","assets/print.svg","passenger/Timetables.tsx","provider/home/TripsPrintView.tsx","provider/data/crew/AssignPrint.tsx","beacon/Dashboard.tsx","beacon/Logs.tsx","assets/checkmark.svg","beacon/Stationary.tsx","beacon/Mobile.tsx","beacon/Assignment.tsx","beacon/Beacon.tsx","App.tsx","index.tsx","translations/pl.yaml","translations/en.yaml"],"names":["module","exports","useGetLink","i18n","useTranslation","path","language","axiosInstance","axios","create","baseURL","process","auth0","WebAuth","domain","clientID","redirectUri","window","location","origin","responseType","scope","audience","fileToBase64","file","Promise","resolve","reject","reader","FileReader","addEventListener","result","replace","readAsDataURL","useStyles","makeStyles","root","top","left","width","height","transition","popup","backgroundColor","borderRadius","boxShadow","padding","margin","display","name","color","fontSize","table","borderCollapse","borderSpacing","headerCell","dataCell","numberCell","textAlign","tooltip","tooltipText","message","StopMarker","stop","stopSocket","classes","t","Marker","position","lat","lon","icon","leaflet","iconUrl","stopMarker","className","Popup","closeButton","maxWidth","Typography","component","classNames","arrivals","map","departure","i","key","route","headsign","moment","time","diff","Tooltip","opacity","popupHeader","code","line","date","VehicleMarker","vehicle","routeType","routeIcon","delayed","delay","tramDelayed","tram","trainDelayed","train","trolleybusDelayed","trolleybus","ferry","busDelayed","bus","zIndexOffset","service","pattern","speed","Math","floor","received","format","_extends","Object","assign","target","arguments","length","source","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","createElement","d","transform","fill","stroke","strokeWidth","fillRule","_ref","svgRef","title","props","viewBox","ref","ForwardRef","forwardRef","cx","cy","r","strokeLinecap","strokeLinejoin","x2","y2","chevronIcon","alignItems","searchIcon","CustomAutocomplete","options","value","onChange","label","TextFieldProps","variant","InputProps","inputProps","TFProps","noAdornment","getOptionLabel","blurOnSelect","getOptionSelected","getOptionDisabled","popupIcon","filterOptions","rest","Autocomplete","size","renderInput","params","TextField","startAdornment","autoHighlight","noOptionsText","x1","input","paddingRight","CustomDatePicker","useState","round","random","id","DatePicker","inputVariant","TextFieldComponent","endAdornment","InputAdornment","cancelLabel","AppContext","createContext","snackbarOpen","updateContext","showSnackbar","defaultUser","role","agency","cardRole","cardOrganization","cardSite","ProviderContext","user","providers","setProviders","setVersions","CardContext","dataView","marginBottom","dataViewLabel","fontWeight","VersionInfo","useContext","version","find","R","type","author","flexDirection","providerSelect","datePicker","routesLabel","routes","overflowY","routeButton","minWidth","selectedButton","Left","provider","setProvider","setRoutes","selectedRoutes","setSelectedRoutes","setDate","event","a","get","providerVersion","data","sorter","natsort","sort","b","newDate","Button","includes","onClick","filter","x","y1","switchDirection","marginRight","directions","marginLeft","trips","tripsTable","border","tableTripHeader","tableTrip","tripButton","row","tableStop","borderRight","tableTime","tableTimeBorder","tableTimeHeader","emptyHeaderCell","noTrips","wordBreak","iconButton","disabled","iconButtonLeft","iconButtonRight","right","iconLeft","iconRight","restoreCurrentState","buttons","printWrapper","Trips","selectedTrips","setSelectedTrips","stops","print","direction","getLink","oppositeDirection","setOppositeDirection","useEffect","tripIndex","setTripIndex","columns","innerWidth","directionTrips","tripsToShow","tripsClone","trip","colSpan","max","min","tripStop","shift","arrival","href","URLSearchParams","getRouteData","providerId","routeId","default","opposite","stopTimes","shape","shapes","shapeId","marginTop","flexGrow","showVehicles","bottom","zIndex","Home","setTrips","setStops","routeSockets","setRouteSockets","setShowVehicles","getRTData","useCallback","socketData","intervalId","setInterval","forEach","then","rtData","clearInterval","mapRef","useRef","mapReady","setMapReady","gdansk","flatTrips","flatMap","current","leafletElement","fitBounds","LatLngBounds","setZoom","panTo","tripsOnMap","entries","routeTrips","allTripsOnMap","values","stopsOnMap","shapesOnMap","vehiclesOnMap","routeSocket","vehicles","undefined","newProvider","routeIds","all","newData","removedRoutes","Map","minZoom","maxZoom","fullscreenControl","TileLayer","url","ScaleControl","imperial","Polyline","positions","lng","weight","FormControlLabel","control","Checkbox","checked","labelPlacement","newTrips","Array","isArray","VehicleIcon","select","StatisticsSearch","count","justifyContent","header","topData","sources","topValue","middle","chartContainer","paddingTop","chartOptions","selectIcon","chart","markerIconContainer","markerIcon","fontFamily","Statistics","setData","providerName","pieChart","setPieChart","dataType","setDataType","mapLoaded","setMapLoaded","providerCounts","chartData","firstNine","ChartComponent","Pie","HorizontalBar","SelectProps","IconComponent","MenuItem","IconButton","plugins","ChartDataLabels","maintainAspectRatio","tooltips","enabled","scales","xAxes","gridLines","ticks","fontColor","beginAtZero","yAxes","datalabels","font","family","legend","labels","boxWidth","datasets","iconCreateFunction","cluster","getAllChildMarkers","html","Number","match","divIcon","Chart","unregister","radiusContainer","impactArea","slider","rail","thumb","mark","markActive","markLabelActive","Radius","internalValue","setInternalValue","debouncedOnChange","debounce","Slider","marks","step","newValue","getAriaValueText","valueLabelDisplay","L","styles","createStyles","flexWrap","providerClear","stopSearch","searchInput","inputFocused","marker","routeGroup","inRadius","nearbyName","dialog","restoreLocation","deleteStop","underMap","isStop","initialState","selectedProviders","inputValue","originalStops","new","radius","editMode","searchValue","popupData","dialogOpen","stopName","draggedStop","ImpactArea","createRef","stopMarkers","impactMarkers","popupContainer","lastClick","getSelectedStops","original","state","markerClickHandler","setState","currentState","addPopup","dragging","enable","unbindPopup","on","bindPopup","div","document","addStop","CircleMarker","fillColor","fillOpacity","pane","popupAnchor","addTo","impactMarker","Circle","setLatLng","getLatLng","setTimeout","setStyle","openPopup","bringToFront","remove","hasStopMoved","providerStops","originalStop","prevProps","prevState","every","coords","selectedStops","nearbyStops","isPointWithinRadius","latitude","longitude","renderRoutes","currentStop","typeRoutes","String","providerRoutes","setNewStops","onInputChange","preferCanvas","onclick","originalEvent","newStop","latlng","fire","focused","closePopup","newRadius","setRadius","Dialog","onClose","open","paper","fullWidth","Reflect","getPrototypeOf","createPortal","nearbyStop","Component","ConnectedImpactArea","withTranslation","withStyles","button","loader","Export","selectedProvider","setSelectedProvider","setType","loading","setLoading","option","fileDownload","CircularProgress","cell","borderLeft","borderRightWidth","borderBottom","hourLabel","borderTop","borderBottomWidth","content","minute","minuteTens","threeDots","lineHeight","rhombuses","rhombus","tooltipAnchor","color0","color1","color2","color3","color4","color5","color6","color7","color8","SynchronizationTable","times","from","to","tableRoutes","n","m","padStart","cellDepartures","style","placement","join","results","flexShrink","field","hourFrom","hourTo","resultRow","resultLabel","routeSelect","timeSelects","tableTimeSelect","colon","intervalMin","clear","delete","positive","negative","resultValue","Synchronization","selectedStop","setSelectedStop","setFrom","setTo","departureTimes","setDepartureTimes","wheelchair","setWheelchair","lastId","newRow","fromHour","fromMinute","toHour","toMinute","firstTripHour","firstTripMinute","interval","scheduleChanges","setScheduleChanges","hourOptions","selectedTimes","isBetween","wheelchairAccessible","getDiffs","arr","getResults","uniqTimes","averageWait","average","duration","std","NaN","overlapping","changedTimes","scheduleChange","firstTrip","hour","concat","isSameOrBefore","clone","add","originalFirstTrip","changedResults","resultsDiff","subtract","tableHourOptions","tableMinuteOptions","intervalOptions","commonSelectProps","disableClearable","getDepartureTimes","currentDate","currentFrom","currentTo","newRoutes","data-testid","minutes","seconds","isNaN","asSeconds","abs","update","newChange","y","firstDeparture","split","lastDeparture","routeDepartures","diffs","fromContainer","toContainer","minHeight","toRoutes","buttonContained","main","tableControls","minTransferContainer","minTransferLabel","minTransfer","changeDepartureTop","changeDepartureLabel","changeDepartureTime","changeDepartureButton","minus","plus","resetButton","headerRow","patternCell","arrivalCell","borderWidth","evenRow","expandButton","chevronFlipped","tableRoute","patternContainer","averageRow","averageLabel","optimizeContainer","optimizeRow","optimizeLabel","optimizeValue","optimizeArrivalRow","optimizeArrivalLabel","optimizeArrivalValue","plusMinus","offset","minuteInput","optimize","formatDuration","totalMinutes","hours","trim","RouteTransfers","fromRoute","setFromRoute","selectedTrip","setSelectedTrip","stopTransfers","setStopTransfers","setToRoutes","setMinTransfer","arrivalDelta","setArrivalDelta","expandedRows","setExpandedRows","setOffset","prevVersion","setPrevVersion","getRoutes","currentStopTransfers","departures","tableData","stopTransfer","isSameOrAfter","originalTime","transferTime","originalTransferTime","getAverage","xs","transferTimes","originalTimes","originalAverage","averageDiff","originalMax","maxDiff","contained","readOnly","departureRows","cells","j","dateAndTime","modifyDepartures","tableLabel","whiteSpace","shortTransfer","minTransferTime","shortTransfersRow","firstTripInput","paddingLeft","firstTripAdornment","modifyFields","pageButton","nextButton","prevButton","pageButtonDisabled","chevronLeft","chevronRight","StopTransfer","fromProvider","setFromProvider","fromStop","setFromStop","toProvider","setToProvider","toRoute","setToRoute","toStop","setToStop","setArrivals","setDepartures","setTransferTime","setFirstTripMinute","departureInterval","setDepartureInterval","page","setPage","resetChanges","currentDepartures","currentArrivals","tableDepartures","isAfter","post","pageSize","shortDepartures","longDeparture","connectedDepartures","timesWithoutShort","shortTransfers","modifiedDepartures","modifiedResults","pageTable","currentTime","push","minuteDiff","departuresToAdd","hasResults","Boolean","Infinity","tabs","tab","textTransform","Analysis","setTab","Tabs","indicatorColor","textColor","centered","Tab","theme","fileInput","selectRow","progressBar","barFilled","transitions","progressTooltipContainer","progressTooltip","selectButton","importInfo","chevron","errorRow","importResult","Import","fileType","setFileType","inputRef","error","setError","importedFile","setImportedFile","progress","setProgress","queued","setQueued","errorExpanded","setErrorExpanded","dataSource","accept","files","form","FormData","append","job","currentProgress","checkStatus","status","existingProgress","clearTimeout","timeout","updateProgress","nextProgress","errorDetails","response","click","Trans","i18nKey","components","search","roleSelect","agencySelect","nextPageButton","legendElement","legendTerm","legendDescription","saveContainer","discardButton","sortButton","addUser","addUserSelect","addUserEmail","addUserName","addUserRole","addUserAgency","addUserOption","selectBorder","selectCell","selectError","selectIconContainer","selectInput","Roles","loggedInUser","users","setUsers","originalUsers","setOriginalUsers","setSearch","saveLoading","setSaveLoading","sortColumn","setSortColumn","sortDescending","setSortDescending","setAddUserEmail","setAddUserName","setAddUserRole","setAddUserAgency","agencyErrors","setAgencyErrors","searchLower","toLowerCase","filteredUsers","email","getRoleText","renderSortButton","column","roleOptions","getChangedUsers","currentUsers","saveUsers","newUsers","changedUsers","valid","newOriginalUsers","notchedOutline","bigMargin","small","NewHeader","headerText","newText","list","listButton","ButtonList","selectedArray","elements","selected","element","onDelete","stopPropagation","dialogText","dialogButtons","DeleteDialog","text","canDelete","PaperProps","routeName","editRoute","routeNameContainer","routeNameField","closeRoute","transportModeName","saveRoute","menuItem","description","Routes","patterns","setPatterns","selectedRoute","setSelectedRoute","setName","nameError","setNameError","transportMode","setTransportMode","descriptionTo","setDescriptionTo","descriptionFrom","setDescriptionFrom","patternsData","deleteDialog","setDeleteDialog","deleteName","setDeleteName","hasUserLock","some","helperText","multiline","rows","put","searchRoute","forRoute","patternName","copyFromRow","addStops","copyRoute","copyPattern","addStopRow","patternStop","patternStopPosition","patternStopName","draggableContainer","saveRow","discardChanges","headsignRow","remarks","stopsContainer","stopsRight","Patterns","setSearchRoute","selectedPattern","setSelectedPattern","routesData","stopsData","tripsData","setRoute","setDirection","setHeadsign","setRemarks","setCopyRoute","setCopyPattern","setPosition","setStop","patternStops","setPatternStops","setView","positionNumber","positionValid","loadData","isUsed","patternData","iconSize","onDragEnd","destination","draggableId","index","droppableId","provided","innerRef","droppableProps","isDragDisabled","draggableProvided","draggableProps","dragHandleProps","placeholder","timeZones","NumberField","onKeyPress","preventDefault","coordsValid","SelectLocation","setLat","setLon","initialViewport","noHeader","mapViewport","setMapViewport","center","zoom","onViewportChanged","filtersRow","forPattern","nameContainer","timeZone","accessibilityHeader","formControlLabel","discard","Stops","agencyTimeZone","agencyLat","agencyLon","setPattern","setStopName","setTimeZone","accessible","setAccessible","elevator","setElevator","escalator","setEscalator","technical","setTechnical","stopData","forTrip","copyCalendar","copyField","copyButton","subheader","dayButton","buttonSelected","dates","dateText","dateButton","Calendars","calendars","setCalendars","selectedCalendar","setSelectedCalendar","setTrip","setCopyCalendar","days","setDays","periods","setPeriods","additional","setAdditional","setExcluded","formatDate","formatISO","calendar","calendarName","day","maxDate","minDate","period","calendarData","PathSelect","points","setPoints","children","initialsCoords","layer","featureGroup","ready","setReady","addLayer","whenReady","FeatureGroup","draw","polyline","shapeOptions","polygon","rectangle","circle","circlemarker","onCreated","latLngs","getLatLngs","onEdited","layers","getLayers","onDeleted","goBack","start","end","import","distance","Shapes","setShapes","initSelectedShape","selectedShape","chooseShape","setSelectedShape","bounds","getBounds","initShape","getDistance","toString","readAsText","fromLat","fromLon","toLat","toLon","dateTime","arriveBy","car","decode","plan","itineraries","legs","legGeometry","newPoints","shapeData","copyRow","copyTrip","scheduleHeader","tableHeader","tableNo","tableArrival","tableDeparture","tableShape","timeField","tableRow","addShape","copyTimesButton","copyArrow","totalDistance","totalDistanceLabel","tripName","blockField","hoursFormat","searchPattern","setSearchPattern","setCopyTrip","setFirstTrip","tripInterval","setTripInterval","tripStops","setTripStops","editedShape","setEditedShape","setCalendar","saving","setSaving","calendarsData","shapesData","getTripName","loadSchedule","formatTime","tripPattern","stopId","pad","getDiff","tripData","copyVersion","toDraft","releaseName","changes","noChanges","versionContainer","takeoverButton","Manage","versions","setCopyVersion","setChanges","takeoverDialog","setTakeoverDialog","updateVersions","locked","change","action","entity","stopFrom","stopTo","topRow","depot","printableVersion","copyText","copyDate","vehicleID","saveButton","Assign","depots","setDepots","setVehicles","drivers","setDrivers","depotsData","vehiclesData","driversData","setDepot","assignedDates","setAssignedDates","setCopyDate","setTable","initTable","setInitTable","task","updateTable","prop","driverFirst","driverSecond","assignments","searchDepot","searchCalendar","copyAdd","addTripText","or","startingStop","departureTime","addTrip","crewTrips","crewTrip","tripPosition","tripRouteContainer","tripRouteName","tripTime","overflow","textOverflow","patternArrow","crews","setCrews","selectedCrew","setSelectedCrew","setSearchDepot","setSearchCalendar","copyCrew","setCopyCrew","setStartingStop","setCrewTrips","crewsData","mapTrips","backendTrips","dept","crew","depotId","active","requestData","getTripLabel","stopPatterns","isBefore","newPosition","deleteButton","Drivers","selectedDriver","setSelectedDriver","setActive","driver","Vehicles","selectedVehicle","setSelectedVehicle","number","indicator","SupportContent","history","useHistory","useParams","exact","pdfMake","fonts","Roboto","normal","robotoLight","Reports","startOf","dateRange","setDateRange","isSame","endOf","newFrom","newTo","allRoutes","vehicleKilometers","toFixed","createPdf","pageOrientation","pageMargins","body","rowSpan","alignment","kilometers","monthly","routeKms","month","layout","vLineWidth","hLineWidth","defaultStyle","report","importRow","importedTickets","headerCellContent","bold","noTickets","details","relation","relationName","relationDistance","relationMargin","backwards","relationMain","Tickets","setReport","setResult","setDialogOpen","tickets","setTickets","sortAsc","setSortAsc","detailsOpen","setDetailsOpen","setDetails","fullTableData","ticket","passengerName","owner","ticketNumber","slice","headers","discount","relations","forwards","distanceKm","robotoRegular","robotoMedium","italics","robotoItalic","bolditalics","robotoMediumItalic","headerContainer","selectAll","buttonList","Timetables","setSelectedStops","openPdf","info","timetable","timetableIndex","pageBreak","widths","stack","columnGap","timetables","validOn","substring","exception","rowsCount","reduce","exceptions","symbol","fullName","Data","useLocation","pathname","hamburger","menu","userInfo","outline","signedInAs","menuIcon","versionsMenu","dataViewContainer","smallText","versionsMenuItem","noIcon","userNumber","UserMenu","showRoles","setVersion","passenger","interconnectNumber","anchorEl","setAnchorEl","versionsAnchorEl","setVersionsAnchorEl","initials","toUpperCase","agencyName","isMobile","useMediaQuery","currentTarget","Menu","Link","localStorage","removeItem","logout","returnTo","transformOrigin","vertical","horizontal","setItem","DataSource","fieldRow","shortField","tripPlanning","isValidHttpUrl","string","URL","protocol","sortByName","localeCompare","Organizations","selectedOrg","setSelectedOrg","setFullName","website","setWebsite","websiteError","setWebsiteError","dataMgmt","setDataMgmt","importUrl","setImportUrl","importUrlError","setImportUrlError","setTripPlanning","org","dataImport","longField","submitButton","checkboxes","captchaError","agreement","agreementLabel","sent","checkboxContainer","checkbox","Contact","app","setApp","appError","setAppError","setEmail","emailError","setEmailError","subject","setSubject","subjectError","setSubjectError","setDescription","descriptionError","setDescriptionError","captcha","captchaToken","setCaptchaToken","setCaptchaError","agree","setAgree","agreeError","setAgreeError","setRole","urlRole","accessToken","getItem","client","err","auth0User","rowsMax","token","sitekey","FormHelperText","isValidEmail","lang","reset","entry","expandedEntry","question","cursor","answer","FAQ","setEntries","pathSegment","category","setExpandedEntry","filteredEntries","dangerouslySetInnerHTML","__html","Collapse","in","portalsHeader","portals","portal","selectedPortal","entryText","selectedEntry","quillLabel","quill","paddingBottom","allCategories","ManageFAQ","setSelectedEntry","selectedCategories","setSelectedCategories","questionPL","setQuestionPL","questionEN","setQuestionEN","answerPL","setAnswerPL","answerEN","setAnswerEN","isPassenger","setIsPassenger","isProvider","setIsProvider","isCard","setIsCard","isBeacon","setIsBeacon","deleteId","setDeleteId","categories","newEntry","newEntries","basePath","Support","rx","ry","selectedRow","popupRow","popupSubheader","shortText","popupText","waitTime","clock","grayHeader","VehicleOccupancy","routeStats","setRouteStats","exportLoading","setExportLoading","selectedStats","routeMin","passengers","mean","routeMax","renderTime","stats","median","zoomControl","onViewportChange","viewport","entering","leaving","graph","first","second","nextStop","getElement","polylineLength","getTotalLength","dashArray","dashOffset","lineCap","inline","getPeriod","range","PeriodSelect","yesterday","tables","PassengerStreams","hubs","setHubs","streams","setStreams","streamsData","selectedStream","setSelectedStream","selectedHub","setSelectedHub","stream","markerRefs","colors","selectedColors","getRouteColor","passengersMin","passengersMax","groupedSegments","last","streamIndex","hub","hubIndex","findIndex","getHubIndex","avg","med","segments","currentPosition","segment","setStats","invalid","missing","timePicker","setHourFrom","setHourTo","TimePicker","ampm","dateStart","dateEnd","timeStart","timeEnd","nav","logoLink","logo","navIconLink","navLink","textDecoration","impactLink","footer","switch","switchText","copyright","Provider","versionId","setVersionId","versionsData","versionString","newVersion","isAdmin","isAgencyAdmin","isManual","AdminRoute","AgencyAdminRoute","src","alt","NavLink","activeClassName","i18next","changeLanguage","xlinkHref","preserveAspectRatio","PasswordField","visible","setVisible","googleButton","borderColor","googleIcon","facebookButton","facebookIcon","alreadyRegistered","verify","paragraph","goToLogin","Register","password","setPassword","passwordError","setPasswordError","repeatPassword","setRepeatPassword","repeatPasswordError","setRepeatPasswordError","registered","authorize","connection","onSubmit","EmailVerified","forgot","dontHaveAccount","notVerified","resendButton","Login","accessDenied","login","realm","nativeEvent","InputEvent","Authorization","RecoverPassword","linkSent","setLinkSent","emailValid","changePassword","darkBg","links","link","aboutLink","about","disclaimer","narrow","Footer","tabIndex","backgroundImage","background","backgroundSize","backgroundRepeat","backgroundPosition","alignSelf","Auth","Callback","parseHash","authResult","err2","email_verified","LoggedInRoute","isLoggedIn","render","componentProps","optionIcon","locationOption","placeLocation","overlay","selectFlight","flightHeader","flightBlack","flights","flight","flightTime","destinationContainer","flightDestination","isOnTime","flightNumber","airline","airportCoords","LocationSearch","myLocation","setArrival","isDestination","setResults","setInputValue","query","setFlights","selectedFlight","setSelectedFlight","setFocused","getFlightName","scheduled","estimated","onFocus","onBlur","renderOption","container","falaButton","falaLogo","comingUp","BuyTicketButton","rel","backButton","chevronBack","leg","BuyTickets","itinerary","mode","startTime","hovered","destinationTime","chevronBig","detailsHeader","bookmark","share","headerBottom","total","detailsLegs","stopTime","walkLeg","walkIcon","walkDot","transitLeg","legText","legRoute","buttonExpanded","expandChevrons","expandChevron","shrinkButton","chevronShrink","intermediateStop","startIcon","transitModeIcon","transitEndIcon","transitLine","destinationIcon","transitLegText","hiddenLegs","resultsButtons","renderDuration","momentDuration","Results","openItinerary","setOpenItinerary","onBookmark","onShare","onHover","hoveredItinerary","expandedLegs","setExpandedLegs","buyTickets","setBuyTickets","significantLegs","legWidths","legsToShow","remainingWidth","onMouseOver","endTime","agencies","singleTicket","legId","minutesDuration","ceil","minutesWaiting","intermediateStops","Nav","swapButton","timeButtons","pickerInput","intermediateStopMarker","walkDotMarker","selectFromMapMarker","selectFromMapRoot","selectFromMapHeader","selectFromMapBack","selectFromMapMap","noConnections","savedSearches","savedSearchesHeader","bookmarkIcon","savedSearch","savedSearchText","savedSearchButtons","savedSearchButton","savedSearchLabel","getPlaceName","place","TripPlanning","setMyLocation","locationReady","setLocationReady","fromError","setFromError","toError","setToError","fromCoords","setFromCoords","toCoords","setToCoords","isDepart","setIsDepart","dateEdited","setDateEdited","setItineraries","setHoveredItinerary","setNoConnections","setSavedSearches","triggerSearch","setTriggerSearch","loadSearch","searchData","getPlace","point","getCoords","JSON","parse","Base64","searchesString","oldLocalSearches","localSearches","getLocation","errorCallback","navigator","permissions","geolocation","getCurrentPosition","onSearch","mobileSelectFromMap","draggable","onDragend","ButtonGroup","DateTimePicker","getBookmarkPlaceName","getType","favoriteData","newSearches","stringify","copy","encodeURI","headerArrow","footerContainer","PrivacyPolicy","listStyleType","terms2","fontStyle","terms3","term","definitions","Terms","RouterLink","back","About","clipPath","AztecCode","scale","aztecRef","bwipjs","toCanvas","bcid","card","userSelect","cardLabel","expired","cardTextRow","cardText","cardAztec","DraggableCard","moveCard","packageName","useDrop","hover","item","monitor","dragIndex","hoverIndex","hoverBoundingRect","getBoundingClientRect","hoverMiddleY","hoverClientY","getClientOffset","drop","useDrag","collect","isDragging","drag","image","packages","holder","splitCardNumber","addCard","textField","cardInfo","deleteCard","benefits","benefit","benefitActive","imagePreview","benefitRight","benefitTextContainer","benefitText","benefitButtons","goButton","detailsButton","expandedBenefit","benefitImage","expandedDetails","expandedName","address","expandable","cardsBottom","cardDetails","bottomCard","detailsAztec","detailsClose","backContainer","expandedAttractionName","expandedEntries","youSaveFree","youSave","expandedText","rating","stars","star","openNow","closedNow","hoursElement","hoursHours","resourcesRow","resourcesIcon","resource","resourceIcon","starGray","closedContainer","closedElement","accessibility","accessibilityIcon","searchLabel","tabIndicator","Card","cards","setCards","availableCards","setAvailableCards","nearestCards","setNearestCards","cardList","setCardList","openCard","setOpenCard","openPackageIndex","setOpenPackageIndex","openAttractions","attractions","setCode","expandedBenefitId","setExpandedBenefitId","hoursExpanded","setHoursExpanded","resourcesExpanded","setResourcesExpanded","setAddCard","cardDetailsOpen","setCardDetailsOpen","selectedPath","setSelectedPath","locations","invalidateSize","goToPlace","InputLabelProps","TabIndicatorProps","pkg","site","validFrom","validTill","price","savings","ratings","openSoon","openingHours","hoursGroup","week","weekend","phone","resources","paths","markerPrimary","markerDark","CookieDisclaimer","onAccept","iconCell","smallIcon","createFilterOptions","filtered","organizations","setOrganizations","sites","setSites","getData","organizationsData","sitesData","organization","addUserOrganization","setAddUserOrganization","addUserSite","setAddUserSite","getOrganizationName","getSiteName","prevPageButton","freeSolo","forcePopupIcon","dropzone","dropzoneActive","dragAndDrop","selectFile","maxHeight","removeImage","removeIcon","ImageUpload","imageUrl","useDropzone","onDrop","createObjectURL","getRootProps","getInputProps","isDragActive","revokeObjectURL","descriptionLabel","attraction","numberOf","attractionName","locationRow","coordsName","coordsMain","rightField","Site","setSite","namePL","setNamePL","nameEN","setNameEN","descPL","setDescPL","descEN","setDescEN","setAddress","setPhone","coordinates","setCoordinates","selectedCoords","setSelectedCoords","coordsDescPL","setCoordsDescPL","coordsDescEN","setCoordsDescEN","isMain","setIsMain","imageFile","setImageFile","setImageUrl","setAttractions","currentSite","loadCoords","coordsIsMain","multipleCoords","newCoords","siteUpdate","newSite","checkboxRow","section","guide","guidePreview","guideName","sectionNameField","guideRow","addButton","openingHoursSection","hoursData","deleteOpeningHours","hoursSubheader","outlinedElement","elementContent","weekDays","hoursDataRight","hoursDash","removeElement","openingHoursRow","guideSelected","guideSelectedText","formatTimeISO","formatDateISO","Attraction","mainCoords","setMainCoords","newGuide","setNewGuide","guideNamePL","setGuideNamePL","guideNameEN","setGuideNameEN","guideImage","setGuideImage","guideUrl","setGuideUrl","guides","setGuides","pathNamePL","setPathNamePL","pathNameEN","setPathNameEN","pathStartPL","setPathStartPL","pathStartEN","setPathStartEN","pathEndPL","setPathEndPL","pathEndEN","setPathEndEN","pathPoints","setPathPoints","setPaths","selectedHours","setSelectedHours","setHours","remarksPL","setRemarksPL","remarksEN","setRemarksEN","periodFrom","setPeriodFrom","periodTo","setPeriodTo","setOpeningHours","deleteType","setDeleteType","guideSaving","setGuideSaving","pathSaving","setPathSaving","hoursSaving","setHoursSaving","loadHours","newHours","loadPath","newPath","startPL","startEN","endPL","endEN","isSelected","currentHours","sanitizeHtml","templates","template","uploadRow","templatesSection","selectedOrganization","setSelectedOrganization","orgs","package","fieldInfo","radioRow","radioField","PackageAttraction","onSave","setAttraction","numberOfEntries","setNumberOfEntries","basePrice","setBasePrice","discountType","setDiscountType","amount","percentage","setPercentage","setAmount","RadioGroup","Radio","PackageIcon","radioGroup","radioNumber","radioText","currency","limit","saleDates","packageStatus","onSale","copyPackage","legendStatus","legendItem","packageIcon","selectedPackage","selectedPackageText","saleStarting","archived","images","selectedImage","limitRow","Packages","setPackages","setTemplates","setSelectedPackage","setCopyPackage","setTemplate","validType","setValidType","daysFromPurchase","setDaysFromPurchase","daysFromFirstUse","setDaysFromFirstUse","discounts","setDiscounts","openAttraction","setOpenAttraction","setPrice","invalidPrice","setInvalidPrice","free","setFree","setLimit","limitError","setLimitError","noLimit","setNoLimit","saleFrom","setSaleFrom","saleTo","setSaleTo","attractionsData","templatesData","soldPackages","sales","sold","validity","newDiscountNoId","newId","newDiscount","newPackage","totalSection","chartOuterContainer","chartInnerContainer","yLabel","chartButton","xLabel","chartLabel","tableCell","usageHeader","percentCell","usageCell","tableNote","packagesSold","soldValue","periodTable","exportReport","periodContainer","periodText","PackageUsage","utilizationStats","setUtilizationStats","chartPercent","setChartPercent","admissionStats","setAdmissionStats","salesFrom","drawOnChartArea","drawTicks","tickMarkLength","callback","buckets","barThickness","usage","used","available","admissions","admissionsValue","VisitorAttendance","dataMax","setDataMax","maxCount","setMaxCount","filteredData","makeIcon","percent","markerPane","getPane","counts","textContent","animate","siteAdmissions","admissionsTotal","admissionsByHour","precision","searchContainer","searchRow","searchButton","cardSelected","generateButton","packageInfo","boldText","Cards","setUser","setCard","isNew","setIsNew","setImage","cardNumber","setCardNumber","setNewPackage","setInterconnectNumber","noResults","setNoResults","resetState","newUser","ownerName","ownerId","entryFee","robotoLightItalic","headerIcon","meansContainer","means","meansSelected","optionTop","optionVehicle","optionName","optionAddress","directionContainer","directionArrow","optionDirection","optionRoute","tile","optionNameBig","optionTextBig","optionTopBig","departuresHeader","departuresHeaderText","optionAgency","agencyBig","myLocationMarker","stopPopup","popupStopName","showDepartures","timetableTop","timetableHeaderRow","timetableHeader","timetableRoutes","timetableRoute","timetableRouteSelected","timetableOptions","directionWrapper","directionLabel","directionSelect","selectRoot","selectNoBorder","dateInput","dateNativeInput","hourRow","mobileHeaderContainer","mobileStopIcon","mobileStopHeader","mobileStopTown","departuresContentWrapper","mobileRouteContainer","mobileMapContainer","vehicleMarker","bottomHeader","nearestTile","nearestButton","optionContainer","selectedMeans","setSelectedMeans","searchResults","setSearchResults","selectedItem","setSelectedItem","setTimetables","selectedDirection","setSelectedDirection","routeDetails","setRouteDetails","routeRTData","setRouteRTData","nearestStops","setNearestStops","big","headsigns","shapeIds","agencyId","getDepartures","stringDate","sorted","selectedTimetable","destinations","departuresContent","arrivalIn","stopTab","setStopTab","timetableArray","timetableContent","getVehicleIcon","svg","canvas","w","h","absolutePosition","tap","isFirstOrLast","TripsPrintView","fromEntries","emptyCell","AssignPrint","percents","percentHeader","percentText","filters","markerOperational","markerNeedAttention","markerMalfunction","operational","needAttention","malfunction","Dashboard","beacons","setBeacons","setOperational","setMalfunction","mobile","setMobile","setNeedAttention","stationary","setStationary","getIssueText","beacon","lastData","timestamp","issue","kind","powerValue","filteredBeacons","alertLevel","assignment","beaconsOnMap","operationalCount","needAttentionCount","malfunctionCount","sortFn","noLogs","Logs","logs","setLogs","serviceDateTime","servicePerson","beaconNameAssigned","beaconAssignment","beaconID","beaconId","buildID","buildVersion","supply","batteryLevel","uptime","lastReset","lastPowerOutage","lastOutage","receivedPowerLevel","transmitPowerLevel","transmitPower","initial","changed","poiContainer","stopRow","assignedTo","Stationary","setProviderStops","providersData","stopProviders","responses","selectedBeacon","setSelectedBeacon","poi","setPoi","setId","idError","setIdError","setOrganization","welcomeMessagePL","setWelcomeMessagePL","welcomeMessageEN","setWelcomeMessageEN","welcomePL","welcomeEN","siteObj","columnNames","property","columnName","numberId","Mobile","setVehicle","beaconData","getProvider","searchId","vehicleOwner","Assignment","Beacon","isTokenValid","unix","jwtDecode","exp","use","languageDetector","initReactI18next","init","pl","translation","safeLoad","en","detection","order","whitelist","fallbackLng","locale","useRouteMatch","pathLanguage","useLanguageRedirect","contextValue","setContextValue","cookiesAccepted","setCookiesAccepted","interceptors","request","config","startsWith","setToken","checkSession","newAccessToken","closeSnackbar","reason","isOrganizer","DndProvider","backend","HTML5Backend","ThemeProvider","createMuiTheme","palette","primary","overrides","MuiButton","MuiTypography","body1","utils","MomentUtils","snackbarMessage","CssBaseline","TouristCard","Snackbar","anchorOrigin","autoHideDuration","Close","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.8b31f5db.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/interconnect-logo.5cc4585d.svg\";","module.exports = __webpack_public_path__ + \"static/media/marker.5131e092.svg\";","module.exports = __webpack_public_path__ + \"static/media/header-arrow.6f44d9e8.svg\";","module.exports = __webpack_public_path__ + \"static/media/tram.40f22478.svg\";","module.exports = __webpack_public_path__ + \"static/media/train.26f04726.svg\";","module.exports = __webpack_public_path__ + \"static/media/bus.7f7adbbb.svg\";","module.exports = __webpack_public_path__ + \"static/media/trolleybus.76e7ecb3.svg\";","module.exports = __webpack_public_path__ + \"static/media/ferry.8aaddc26.svg\";","module.exports = __webpack_public_path__ + \"static/media/tram-delayed.1998579e.svg\";","module.exports = __webpack_public_path__ + \"static/media/train-delayed.75ed1aac.svg\";","module.exports = __webpack_public_path__ + \"static/media/bus-delayed.d49291a3.svg\";","module.exports = __webpack_public_path__ + \"static/media/trolleybus-delayed.a50d7e09.svg\";","module.exports = __webpack_public_path__ + \"static/media/Roboto-Light.fc84e998.ttf\";","module.exports = __webpack_public_path__ + \"static/media/Roboto-Regular.3e1af3ef.ttf\";","module.exports = __webpack_public_path__ + \"static/media/Roboto-Italic.42bbe4ee.ttf\";","module.exports = __webpack_public_path__ + \"static/media/marker-primary.b4e856b8.svg\";","module.exports = __webpack_public_path__ + \"static/media/Roboto-Medium.fe13e417.ttf\";","module.exports = __webpack_public_path__ + \"static/media/Roboto-MediumItalic.5b25afa8.ttf\";","module.exports = __webpack_public_path__ + \"static/media/background.7ae7572a.jpg\";","module.exports = __webpack_public_path__ + \"static/media/fala.1eeaf520.svg\";","module.exports = __webpack_public_path__ + \"static/media/Roboto-LightItalic.d1efcd4d.ttf\";","module.exports = __webpack_public_path__ + \"static/media/stop-marker.cbfaf4aa.svg\";","import { useTranslation } from 'react-i18next';\nimport axios from 'axios';\nimport { WebAuth } from 'auth0-js';\n\nexport function useGetLink() {\n const { i18n } = useTranslation();\n return (path: string) => `/${i18n.language}${path}`;\n}\n\nconst axiosInstance = axios.create({\n baseURL: process.env.BACKEND_URL,\n});\n\nexport { axiosInstance as axios };\n\nexport const auth0 = new WebAuth({\n domain: process.env.AUTH0_DOMAIN as string,\n clientID: process.env.AUTH0_CLIENT_ID as string,\n redirectUri: `${window.location.origin}/auth/callback`,\n responseType: 'token id_token',\n scope: 'openid profile email',\n audience: process.env.AUTH0_AUDIENCE,\n});\n\nexport function fileToBase64(file: File): Promise {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.addEventListener('load', () => resolve((reader.result as string).replace(/^.*,/, '')));\n reader.addEventListener('error', reject);\n reader.readAsDataURL(file);\n });\n}\n","import React from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport { Marker, Popup, Tooltip } from 'react-leaflet';\nimport leaflet from 'leaflet';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport { IStop, IStopSocket } from '../../interfaces';\nimport stopMarker from '../../assets/stop-marker.svg';\n\ninterface Props {\n stop: IStop;\n stopSocket?: IStopSocket;\n}\n\nconst useStyles = makeStyles({\n root: {\n top: -5,\n left: -5,\n width: 10,\n height: 10,\n transition: '250ms',\n '&:hover': {\n width: 12,\n height: 12,\n top: -6,\n left: -6,\n },\n },\n popup: {\n backgroundColor: 'white',\n borderRadius: 3,\n '& > :first-child': {\n boxShadow: 'none',\n padding: 0,\n '& > div': {\n margin: '16px 24px',\n },\n },\n '& > :last-child': {\n display: 'none',\n },\n },\n name: {\n backgroundColor: '#37001F',\n color: 'white',\n fontSize: 24,\n margin: '0 0 0 -24px !important',\n padding: '4px 16px 4px 24px',\n borderRadius: '0 15px 15px 0',\n display: 'inline-block',\n },\n table: {\n borderCollapse: 'collapse',\n borderSpacing: 0,\n margin: '8px 0 16px',\n width: '100%',\n },\n headerCell: {\n fontSize: 13,\n color: '#666666',\n padding: '4px 8px',\n },\n dataCell: {\n fontSize: 14,\n color: '#37001F',\n padding: '0px 8px',\n },\n numberCell: {\n textAlign: 'right',\n },\n tooltip: {\n boxShadow: 'none',\n },\n tooltipText: {\n fontSize: 24,\n padding: '0 4px',\n },\n message: {\n fontSize: 14,\n color: '#37001F',\n },\n});\n\nexport default function StopMarker({ stop, stopSocket }: Props) {\n const classes = useStyles();\n const { t } = useTranslation();\n return (\n \n \n \n {stop.name}\n \n {stopSocket && (\n <>\n \n \n \n \n {t('map.route')}\n \n \n {t('map.direction')}\n \n \n {t('map.departure')}\n \n \n \n \n {stopSocket.arrivals.map((departure, i) => (\n // eslint-disable-next-line react/no-array-index-key\n \n \n {departure.route}\n \n \n {departure.headsign}\n \n \n {moment(departure.time, 'H:m:s').diff(moment(), 'minutes')}\n {' '}\n {t('map.minutes')}\n \n \n ))}\n \n
\n
\n {stopSocket.message}\n
\n \n )}\n \n \n \n {stop.name}\n \n \n \n );\n}\n","import React from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport {\n Marker, Popup, Tooltip,\n} from 'react-leaflet';\nimport leaflet from 'leaflet';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\nimport { IVehicle } from '../../interfaces';\nimport tram from '../../assets/tram.svg';\nimport train from '../../assets/train.svg';\nimport bus from '../../assets/bus.svg';\nimport trolleybus from '../../assets/trolleybus.svg';\nimport ferry from '../../assets/ferry.svg';\nimport tramDelayed from '../../assets/tram-delayed.svg';\nimport trainDelayed from '../../assets/train-delayed.svg';\nimport busDelayed from '../../assets/bus-delayed.svg';\nimport trolleybusDelayed from '../../assets/trolleybus-delayed.svg';\nimport classNames from 'classnames';\n\ninterface Props {\n vehicle: IVehicle;\n routeType: number;\n}\n\nconst useStyles = makeStyles({\n root: {\n top: -12,\n left: -12,\n width: 24,\n height: 24,\n transition: '250ms',\n '&:hover': {\n width: 30,\n height: 30,\n top: -15,\n left: -15,\n },\n },\n popup: {\n backgroundColor: 'white',\n borderRadius: 3,\n '& > :first-child': {\n boxShadow: 'none',\n padding: 0,\n '& > div': {\n margin: '16px 24px',\n },\n },\n '& > :last-child': {\n display: 'none',\n },\n },\n popupHeader: {\n backgroundColor: '#37001F',\n color: 'white',\n fontSize: 24,\n margin: '0 0 12px -24px !important',\n padding: '4px 16px 4px 24px',\n borderRadius: '0 15px 15px 0',\n display: 'inline-block',\n },\n tooltip: {\n boxShadow: 'none',\n },\n tooltipText: {\n fontSize: 18,\n padding: '0 4px',\n },\n code: {\n fontSize: 24,\n },\n line: {\n margin: '0 !important',\n fontSize: 14,\n color: '#37001F',\n },\n date: {\n color: '#9E9E9E',\n },\n});\n\nexport default function VehicleMarker({ vehicle, routeType }: Props) {\n const classes = useStyles();\n const { t } = useTranslation();\n const routeIcon = (() => {\n const delayed = vehicle.delay >= 180;\n switch (routeType) {\n case 0:\n case 900:\n return delayed ? tramDelayed : tram;\n case 2:\n case 101:\n case 102:\n case 106:\n case 109:\n return delayed ? trainDelayed : train;\n case 800:\n return delayed ? trolleybusDelayed : trolleybus;\n case 1200:\n return ferry;\n case 3:\n case 700:\n case 702:\n default:\n return delayed ? busDelayed : bus;\n }\n })();\n return (\n \n \n \n {t('map.vehicleCode')}\n {': '}\n \n {vehicle.code}\n \n \n \n {t('map.vehicleService')}\n {': '}\n {vehicle.service}\n \n \n {t('map.tripCode')}\n {': '}\n {vehicle.pattern}\n \n \n {t('map.speed')}\n {': '}\n {vehicle.speed}\n km/h\n \n \n {t('map.delay')}\n {': '}\n {vehicle.delay >= 60 && `${Math.floor(vehicle.delay / 60)}${t('map.minutes')} `}\n {vehicle.delay % 60}\n {' '}\n {t('map.seconds')}\n \n \n {moment(vehicle.received).format('DD.MM.YYYY, HH:mm')}\n \n \n \n \n {t('map.vehicleCode')}\n {': '}\n \n {vehicle.code}\n \n \n \n \n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18,31l9.06,9.5L36.384,31\",\n transform: \"translate(-17.638 -30.65)\",\n fill: \"none\",\n stroke: \"#9e9e9e\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n});\n\nvar SvgChevron = function SvgChevron(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19.102,\n height: 10.569,\n viewBox: \"0 0 19.102 10.569\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgChevron, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/chevron.81189c0b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0.5 0.5)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 6.195,\n cy: 6.195,\n r: 6.195,\n fill: \"none\",\n stroke: \"#666\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 5.441,\n y2: 5.441,\n transform: \"translate(10.559 10.559)\",\n strokeWidth: 1,\n stroke: \"#666\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n})));\n\nvar SvgSearch = function SvgSearch(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17.207,\n height: 17.207,\n viewBox: \"0 0 17.207 17.207\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgSearch, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/search.af7f5205.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { makeStyles, TextField, TextFieldProps } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { Autocomplete, AutocompleteProps } from '@material-ui/lab';\nimport { ReactComponent as Chevron } from '../assets/chevron.svg';\nimport { ReactComponent as Search } from '../assets/search.svg';\n\ntype Omit = Pick>;\ntype WithOptional = Omit & Partial>;\n\ninterface Props<\n T,\n Multiple extends boolean | undefined,\n DisableClearable extends boolean | undefined,\n FreeSolo extends boolean | undefined\n > extends WithOptional, 'renderInput'> {\n label?: string;\n TextFieldProps?: Partial;\n noAdornment?: boolean;\n}\n\nconst useStyles = makeStyles({\n chevronIcon: {\n display: 'flex',\n alignItems: 'center',\n padding: '8px 4px',\n margin: '-1px 0',\n },\n searchIcon: {\n margin: '0 4px 0 8px',\n },\n});\n\nexport default function CustomAutocomplete<\n T,\n Multiple extends boolean | undefined = false,\n DisableClearable extends boolean | undefined = false,\n FreeSolo extends boolean | undefined = false\n >(\n {\n options, value, onChange, label, className,\n TextFieldProps: {\n variant, InputProps, inputProps, ...TFProps\n } = {}, noAdornment, getOptionLabel, blurOnSelect, getOptionSelected,\n getOptionDisabled, popupIcon, filterOptions, ...rest\n }: Props,\n) {\n const classes = useStyles();\n const { t } = useTranslation();\n return (\n \n \n \n )}\n renderInput={(params) => (\n ,\n ...InputProps,\n }}\n // eslint-disable-next-line react/jsx-no-duplicate-props\n inputProps={{\n ...params.inputProps,\n ...inputProps,\n }}\n {...TFProps}\n />\n )}\n autoHighlight\n noOptionsText={t('common.noOptions')}\n getOptionLabel={getOptionLabel}\n blurOnSelect={blurOnSelect}\n getOptionSelected={getOptionSelected}\n getOptionDisabled={getOptionDisabled}\n filterOptions={filterOptions}\n {...rest}\n />\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-18 -18)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(20 20)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.063,\n height: 3.712,\n transform: \"translate(3.832 0)\",\n fill: \"none\",\n stroke: \"#666\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.063,\n height: 3.712,\n transform: \"translate(14.112 0)\",\n fill: \"none\",\n stroke: \"#666\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,0H20\",\n transform: \"translate(0 6.038)\",\n fill: \"none\",\n stroke: \"#666\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 11.402,\n transform: \"translate(6.075 11.792)\",\n fill: \"none\",\n stroke: \"#666\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 15.234,\n transform: \"translate(2.243 14.811)\",\n fill: \"none\",\n stroke: \"#666\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 6.262,\n transform: \"translate(6.168 11.869)\",\n fill: \"none\",\n stroke: \"#666\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 9.252,\n transform: \"translate(9.813 8.879)\",\n fill: \"none\",\n stroke: \"#666\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 9.252,\n transform: \"translate(13.645 8.879)\",\n fill: \"none\",\n stroke: \"#666\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M169.925,177H166v3.271\",\n transform: \"translate(-152.355 -162.14)\",\n fill: \"none\",\n stroke: \"#666\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 3.832,\n transform: \"translate(13.645 14.811)\",\n fill: \"none\",\n stroke: \"#666\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43,115.991h3.925V113\",\n transform: \"translate(-40.757 -104.212)\",\n fill: \"none\",\n stroke: \"#666\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.913,36h8.178M36.2,36h1.28A2.506,2.506,0,0,1,40,38.455v13.6A2.506,2.506,0,0,1,37.477,54.5H22.43A2.487,2.487,0,0,1,20,52.05v-13.6A2.487,2.487,0,0,1,22.43,36h1.4\",\n transform: \"translate(-20 -34.505)\",\n fill: \"none\",\n stroke: \"#666\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgCalendar = function SvgCalendar(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCalendar, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/calendar.406ace16.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState } from 'react';\nimport { InputAdornment, makeStyles, TextField } from '@material-ui/core';\nimport { DatePickerProps, DatePicker } from '@material-ui/pickers';\nimport { useTranslation } from 'react-i18next';\nimport { ReactComponent as Calendar } from '../assets/calendar.svg';\n\ninterface Props extends DatePickerProps {}\n\nconst useStyles = makeStyles({\n input: {\n paddingRight: 10,\n },\n});\n\nexport default function CustomDatePicker(props: Props) {\n const classes = useStyles();\n const { t } = useTranslation();\n const [id] = useState(Math.round(Math.random() * 10000));\n return (\n (\n \n \n \n ),\n className: classes.input,\n }}\n />\n )}\n cancelLabel={t('common.cancel')}\n format=\"DD.MM.Y\"\n {...props}\n />\n );\n}\n","import { createContext } from 'react';\nimport {\n ICardRole, IDataVersion, IProvider, IRole,\n} from './interfaces';\n\nexport interface IUser {\n role: IRole;\n agency: string | null;\n cardRole: ICardRole;\n cardOrganization: number | null;\n cardSite: number | null;\n}\n\nexport interface IValue {\n name?: string;\n user?: IUser;\n interconnectNumber?: string;\n snackbarOpen: boolean;\n snackbarMessage?: string;\n}\n\ninterface IValueWithFunctions extends IValue {\n updateContext: (update: (oldValue: IValue) => IValue) => void;\n showSnackbar: (content: string) => void;\n}\n\nconst AppContext = createContext({\n snackbarOpen: false,\n updateContext: () => {},\n showSnackbar: () => {},\n});\n\nexport default AppContext;\n\nexport interface IProviderValue {\n name: string;\n user: IUser;\n providers: IProvider[];\n setProviders: (providers: IProvider[]) => void;\n version?: IDataVersion;\n versions?: IDataVersion[];\n setVersions: (versions: IDataVersion[]) => void;\n}\n\nconst defaultUser = {\n role: null,\n agency: null,\n cardRole: null,\n cardOrganization: null,\n cardSite: null,\n};\n\nexport const ProviderContext = createContext({\n name: '',\n user: defaultUser,\n providers: [],\n setProviders: () => {},\n setVersions: () => {},\n});\n\nexport interface ICardValue {\n name: string;\n user: IUser;\n}\n\nexport const CardContext = createContext({\n name: '',\n user: defaultUser,\n});\n","import React, { useContext } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport * as R from 'ramda';\nimport { ProviderContext } from '../context';\n\nconst useStyles = makeStyles({\n dataView: {\n fontSize: 14,\n marginBottom: 16,\n },\n dataViewLabel: {\n fontWeight: 400,\n },\n name: {\n fontWeight: 400,\n },\n});\n\nexport default function VersionInfo() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { version, user, providers } = useContext(ProviderContext);\n if (!version || !user.agency) return null;\n return (\n \n \n {t('data.dataView')}\n \n {': '}\n {providers.find(R.propEq('id', user.agency))!.name}\n {', '}\n {version.type === 'draft' ? (\n <>\n {t('data.draft')}\n {version.author && (\n <>\n {' '}\n {t('data.editedBy')}\n {' '}\n \n {version.author}\n \n \n )}\n \n ) : version.name}\n \n );\n}\n","import React, { Dispatch, SetStateAction, useContext } from 'react';\nimport {\n Button, makeStyles, Typography,\n} from '@material-ui/core';\nimport natsort from 'natsort';\nimport classNames from 'classnames';\nimport { Moment } from 'moment';\nimport { useTranslation } from 'react-i18next';\nimport * as R from 'ramda';\nimport { axios } from '../../utils';\nimport { IProvider, IRoute } from '../../interfaces';\nimport CustomAutocomplete from '../../common/CustomAutocomplete';\nimport CustomDatePicker from '../../common/CustomDatePicker';\nimport VersionInfo from '../VersionInfo';\nimport { ProviderContext } from '../../context';\n\ninterface Props {\n providers: IProvider[];\n provider: IProvider | null;\n setProvider: Dispatch>;\n routes: IRoute[] | null;\n setRoutes: Dispatch>;\n selectedRoutes: string[];\n setSelectedRoutes: (selectedRoutes: string[]) => void;\n date: Moment;\n setDate: (date: Moment) => void;\n}\n\nconst useStyles = makeStyles({\n root: {\n width: 500,\n height: '100%',\n margin: '0 24px 16px 0',\n display: 'flex',\n flexDirection: 'column',\n },\n providerSelect: {\n width: '100%',\n marginBottom: 16,\n },\n datePicker: {\n width: '100%',\n marginBottom: 16,\n },\n routesLabel: {\n color: '#37001F',\n marginBottom: 8,\n },\n routes: {\n overflowY: 'auto',\n margin: '0 -4px',\n },\n routeButton: {\n backgroundColor: '#F5F5F5',\n minWidth: 'initial',\n margin: '4px',\n borderRadius: 15,\n fontSize: 24,\n fontWeight: 400,\n padding: '1px 18px',\n },\n selectedButton: {\n backgroundColor: '#a1145c',\n color: 'white',\n '&:hover': {\n backgroundColor: '#c62e8a',\n },\n },\n});\n\nexport default function Left(props: Props) {\n const {\n providers, provider, setProvider, routes, setRoutes, selectedRoutes, setSelectedRoutes,\n date, setDate,\n } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n const { version, user } = useContext(ProviderContext);\n return (\n
\n \n {\n setProvider(value);\n if (value) {\n const { data } = await axios.get(`/${value.id}/routes`, {\n params: (version && value.id === user.agency) ? { providerVersion: version.id } : {},\n });\n const sorter = natsort();\n setRoutes(data.sort((a: IRoute, b: IRoute) => sorter(a.name, b.name)));\n } else {\n setRoutes(null);\n setSelectedRoutes([]);\n }\n }}\n className={classes.providerSelect}\n label={t('stats.findDataSource')}\n getOptionLabel={R.prop('name')}\n />\n newDate && setDate(newDate)}\n className={classes.datePicker}\n label={t('main.date')}\n />\n {provider && routes && (\n <>\n \n {t('main.route')}\n :\n \n
\n {routes.map((route) => (\n setSelectedRoutes(\n selectedRoutes.includes(route.id)\n ? selectedRoutes.filter((x) => x !== route.id)\n : [...selectedRoutes, route.id],\n )}\n >\n {route.name || route.id}\n \n ))}\n
\n \n )}\n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-277.89 -264.5)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(32.39)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n y1: 7.407,\n x2: 4.444,\n transform: \"translate(247.5 266.5)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 4.444,\n y1: 7.407,\n transform: \"translate(251.944 266.5)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y1: 20,\n transform: \"translate(251.944 266.5)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(291 266.5)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x2: 4.444,\n y2: 7.407,\n transform: \"translate(0 12.593)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 4.444,\n y2: 7.407,\n transform: \"translate(4.444 12.593)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 20,\n transform: \"translate(4.444)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgDirections = function SvgDirections(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDirections, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/directions.51a36b13.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18,31l5.421,5.751L29,31\",\n transform: \"translate(-17.636 -30.652)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n});\n\nvar SvgChevronWhite = function SvgChevronWhite(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 11.723,\n height: 6.823,\n viewBox: \"0 0 11.723 6.823\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgChevronWhite, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/chevron-white.671d90bd.svg\";\nexport { ForwardRef as ReactComponent };","import React, {\n Dispatch, SetStateAction, useEffect, useState,\n} from 'react';\nimport { Button, makeStyles, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport * as R from 'ramda';\nimport classNames from 'classnames';\nimport { ReactComponent as Directions } from '../../assets/directions.svg';\nimport { ReactComponent as ChevronWhite } from '../../assets/chevron-white.svg';\nimport { IStops, ITrip } from '../../interfaces';\nimport { useGetLink } from '../../utils';\n\ninterface Props {\n selectedTrips: string[];\n setSelectedTrips: Dispatch>;\n stops: IStops;\n trips: ITrip[];\n provider: string;\n date: string;\n route: string;\n print?: boolean;\n direction?: 0 | 1;\n}\n\nconst useStyles = makeStyles({\n switchDirection: {\n marginRight: 60,\n display: 'flex',\n alignItems: 'center',\n color: '#A1145C',\n },\n directions: {\n marginLeft: 16,\n },\n trips: {\n backgroundColor: '#F5F5F5',\n margin: '0 -32px',\n padding: '0 32px',\n display: 'flex',\n alignItems: 'flex-end',\n },\n tripsTable: {\n borderCollapse: 'collapse',\n border: '1px solid #37001F',\n backgroundColor: 'white',\n },\n tableTripHeader: {\n textAlign: 'left',\n padding: '8px 16px',\n fontWeight: 400,\n color: '#37001F',\n border: '1px solid #37001F',\n },\n tableTrip: {\n padding: '4px 16px',\n border: '1px solid #37001F',\n position: 'relative',\n color: '#37001F',\n },\n tripButton: {\n width: '100%',\n padding: 1,\n fontWeight: 400,\n backgroundColor: '#F5F5F5',\n },\n row: {\n '&:nth-child(even)': {\n backgroundColor: '#F5F5F5',\n },\n },\n tableStop: {\n padding: '4px 16px',\n color: '#37001F',\n borderRight: '1px solid #37001F',\n },\n tableTime: {\n padding: '4px 16px',\n color: '#37001F',\n textAlign: 'center',\n },\n tableTimeBorder: {\n borderRight: '1px solid #37001F',\n },\n tableTimeHeader: {\n fontSize: 14,\n fontWeight: 400,\n color: '#37001F',\n padding: '4px 16px',\n textAlign: 'center',\n },\n emptyHeaderCell: {\n borderRight: '1px solid #37001F',\n },\n noTrips: {\n padding: '16px 0',\n color: '#37001F',\n },\n selectedButton: {\n backgroundColor: '#a1145c',\n color: 'white',\n wordBreak: 'break-all',\n '&:hover': {\n backgroundColor: '#c62e8a',\n },\n },\n iconButton: {\n backgroundColor: '#A1145C',\n width: 20,\n height: 20,\n position: 'absolute',\n top: '50%',\n padding: 0,\n borderRadius: '50%',\n minWidth: 0,\n '&$disabled': {\n backgroundColor: '#c3c3c3',\n },\n },\n disabled: {},\n iconButtonLeft: {\n left: 0,\n transform: 'translate(-50%, -50%)',\n },\n iconButtonRight: {\n right: 0,\n transform: 'translate(50%, -50%)',\n },\n iconLeft: {\n transform: 'rotate(90deg)',\n },\n iconRight: {\n transform: 'rotate(-90deg)',\n },\n restoreCurrentState: {\n marginLeft: 8,\n },\n buttons: {\n display: 'flex',\n margin: '16px 0',\n },\n printWrapper: {\n padding: 16,\n },\n});\n\nexport default function Trips(props: Props) {\n const {\n selectedTrips, setSelectedTrips, stops, trips, provider, date, route, print, direction,\n } = props;\n const getLink = useGetLink();\n const classes = useStyles();\n const { t } = useTranslation();\n const [oppositeDirection, setOppositeDirection] = useState(direction === 1);\n useEffect(() => {\n setOppositeDirection(direction === 1);\n }, [trips, direction]);\n const [tripIndex, setTripIndex] = useState(0);\n const columns = Math.floor((window.innerWidth - 450) / 162);\n const directionTrips = trips.filter(R.propEq('direction', oppositeDirection ? 1 : 0));\n const tripsToShow = print\n ? directionTrips\n : R.slice(tripIndex, tripIndex + columns, directionTrips);\n const tripsClone = R.clone(tripsToShow);\n const table = (\n \n \n \n \n {t('main.trip')}\n \n {tripsToShow.map((trip, i) => (\n \n {i === 0 && !print && (\n setTripIndex((x) => Math.max(x - columns, 0))}\n disabled={tripIndex === 0}\n classes={{ disabled: classes.disabled }}\n >\n \n \n )}\n {print ? trip.pattern : (\n setSelectedTrips(\n selectedTrips.includes(trip.pattern)\n ? R.filter((x) => x !== trip.pattern)\n : R.append(trip.pattern),\n )}\n >\n {trip.pattern}\n \n )}\n {i === tripsToShow.length - 1 && !print && (\n setTripIndex(\n (x) => Math.min(x + columns, directionTrips.length - 1),\n )}\n disabled={tripIndex >= directionTrips.length - columns}\n classes={{ disabled: classes.disabled }}\n >\n \n \n )}\n \n ))}\n \n \n \n {tripsToShow.map((trip) => (\n <>\n \n {t('main.arrival')}\n \n \n {t('main.departure')}\n \n \n ))}\n \n \n \n {stops[oppositeDirection ? 'opposite' : 'default'].map((stop, i) => (\n // eslint-disable-next-line react/no-array-index-key\n \n \n {stop.name}\n \n {tripsClone.map((trip) => {\n let tripStop = null;\n if (R.pathEq([0, 'id'], stop.id, trip.stops)) {\n ({ 0: tripStop } = trip.stops);\n trip.stops.shift();\n }\n return (\n <>\n \n {(tripStop && tripStop.arrival) ? R.take(5, tripStop.arrival) : '-'}\n \n \n {(tripStop && tripStop.departure) ? R.take(5, tripStop.departure) : '-'}\n \n \n );\n })}\n \n ))}\n \n
\n );\n if (print) {\n return (\n
\n {table}\n
\n );\n }\n return (\n
\n
\n {\n setOppositeDirection(R.not);\n setTripIndex(0);\n setSelectedTrips(trips.filter(R.propEq('direction', oppositeDirection ? 0 : 1)).map(R.prop('pattern')));\n }}\n >\n {t('main.switchDirection')}\n \n \n \n {t('main.printView')}\n \n
\n
\n {tripsToShow.length > 0 ? (\n <>\n {table}\n setSelectedTrips([])}\n >\n {t('main.restoreCurrentState')}\n \n \n ) : (\n \n {t('main.noTrips')}\n \n )}\n
\n
\n );\n}\n","import { Moment } from 'moment';\nimport * as R from 'ramda';\nimport { axios } from '../utils';\nimport {\n IDataVersion, IRouteDetails, IStops, IStopWithTimes, ITrip,\n} from '../interfaces';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const getRouteData = async (\n providerId: string,\n date: Moment,\n routeId: string,\n version?: IDataVersion,\n): Promise<{ trips: ITrip[]; stops: IStops }> => {\n const { data }: { data: IRouteDetails } = await axios.get(`/${providerId}/route/${routeId}/trips`, {\n params: {\n date: date.format('YYYY-MM-DD'),\n ...(version ? { providerVersion: version.id } : {}),\n },\n });\n const stops = [...data.stops.default, ...data.stops.opposite];\n return {\n trips: data.trips.map((trip) => ({\n id: trip.id,\n pattern: trip.pattern,\n direction: trip.direction,\n stops: trip.stops\n .map((stopTimes) => {\n const stop = stops.find((x) => x.id === stopTimes.id);\n return stop ? { ...stopTimes, ...stop } : null;\n })\n .filter((x): x is IStopWithTimes => x !== null),\n shape: R.propOr(\n [],\n 'shape',\n data.shapes.find((shape) => shape.id === trip.shapeId),\n ),\n })),\n stops: data.stops,\n };\n};\n","import React, {\n useCallback, useContext, useEffect, useRef, useState,\n} from 'react';\nimport { Checkbox, FormControlLabel, makeStyles } from '@material-ui/core';\nimport moment, { Moment } from 'moment';\nimport * as R from 'ramda';\nimport {\n Map, Polyline, ScaleControl, TileLayer,\n} from 'react-leaflet';\nimport leaflet from 'leaflet';\nimport 'leaflet-fullscreen';\nimport 'leaflet-fullscreen/dist/leaflet.fullscreen.css';\nimport { useTranslation } from 'react-i18next';\nimport { axios } from '../../utils';\nimport {\n IProvider, IRoute, IRouteSocket, IStops, ITrip,\n} from '../../interfaces';\nimport StopMarker from './StopMarker';\nimport VehicleMarker from './VehicleMarker';\nimport Left from './Left';\nimport Trips from './Trips';\nimport { ProviderContext } from '../../context';\nimport { getRouteData } from '../common';\n\nconst useStyles = makeStyles({\n root: {\n width: '100%',\n marginTop: 32,\n },\n top: {\n display: 'flex',\n height: 537,\n },\n map: {\n height: '100%',\n flexGrow: 1,\n },\n showVehicles: {\n position: 'absolute',\n right: 8,\n bottom: 20,\n zIndex: 1000,\n backgroundColor: 'white',\n paddingRight: 12,\n borderRadius: 3,\n fontSize: 16,\n color: '#37001F',\n },\n});\n\nexport default function Home() {\n const classes = useStyles();\n const { providers, version, user } = useContext(ProviderContext);\n const [routes, setRoutes] = useState(null);\n const [provider, setProvider] = useState(null);\n const [date, setDate] = useState(moment());\n const [selectedRoutes, setSelectedRoutes] = useState([]);\n const [trips, setTrips] = useState>({});\n const [stops, setStops] = useState>({});\n const [routeSockets, setRouteSockets] = useState>({});\n const [showVehicles, setShowVehicles] = useState(false);\n const { t } = useTranslation();\n const getRTData = useCallback(async (id: string) => {\n const { data: socketData } = await axios.get(`/public/${provider!.id}/route/${id}/rtdata`, {\n // This parameter should be removed\n params: { date: moment().format('YYYY-MM-DD') },\n });\n return socketData;\n }, [provider]);\n useEffect(() => {\n const intervalId = setInterval(async () => {\n selectedRoutes.forEach((route) => {\n getRTData(route).then((rtData) => {\n setRouteSockets(R.set(\n R.lensProp(route),\n rtData,\n ));\n });\n });\n }, 5000);\n return () => clearInterval(intervalId);\n }, [selectedRoutes, provider, getRTData]);\n const mapRef = useRef();\n const [mapReady, setMapReady] = useState(false);\n useEffect(() => {\n if (mapReady) {\n const gdansk = providers.find(R.whereEq({ id: 'gdansk' }));\n const flatTrips = R.values(trips).flatMap((x) => x);\n if (flatTrips && flatTrips.length > 0) {\n mapRef.current.leafletElement.fitBounds(\n new leaflet.LatLngBounds(\n R.chain(R.prop('stops'), flatTrips).map(\n (stop) => [stop.lat, stop.lon],\n ),\n ),\n {\n padding: [32, 32],\n },\n );\n } else if (gdansk) {\n mapRef.current.leafletElement.setZoom(11);\n mapRef.current.leafletElement.panTo([gdansk.lat, gdansk.lon]);\n }\n }\n }, [trips, providers, mapReady]);\n // eslint-disable-next-line\n useEffect(() => {\n if (mapRef.current && !mapReady) {\n setMapReady(true);\n }\n });\n const [selectedTrips, setSelectedTrips] = useState>({});\n useEffect(() => {\n setRoutes(null);\n setProvider(null);\n setDate(moment());\n setSelectedRoutes([]);\n setTrips({});\n setStops({});\n setRouteSockets({});\n }, [version]);\n const tripsOnMap = R.fromPairs(Object.entries(trips).map(([route, routeTrips]) => (\n [route, routeTrips.filter((x) => (selectedTrips[route] || []).includes(x.pattern))]\n )));\n const allTripsOnMap = Object.values(tripsOnMap).flatMap((x) => x);\n const stopsOnMap = R.uniqBy(\n R.prop('id'),\n R.chain(R.prop('stops'), allTripsOnMap),\n );\n const shapesOnMap = R.uniq(R.map(\n (x) => (x.shape.length > 0 ? x.shape : x.stops.map(R.pick(['lat', 'lon']))),\n allTripsOnMap,\n ));\n const vehiclesOnMap = R.fromPairs(Object.entries(routeSockets)\n .map(([route, routeSocket]) => (\n [\n route,\n routeSocket.vehicles.filter((x) => (\n (tripsOnMap[route] || []).find(R.propEq('pattern', x.pattern)) !== undefined\n )),\n ]\n )));\n const providerVersion = (provider?.id === user.agency) ? version : undefined;\n return (\n
\n
\n {\n setProvider(newProvider);\n setRouteSockets({});\n setSelectedRoutes([]);\n setTrips({});\n setStops({});\n }}\n routes={routes}\n setRoutes={setRoutes}\n selectedRoutes={selectedRoutes}\n setSelectedRoutes={async (routeIds) => {\n setSelectedRoutes(routeIds);\n if (provider) {\n const newRoutes = R.difference(routeIds, selectedRoutes);\n newRoutes.forEach((route) => {\n Promise.all([\n getRouteData(provider.id, date, route, providerVersion),\n getRTData(route),\n ]).then(([newData, rtData]) => {\n setTrips(R.set(\n R.lensProp(route),\n newData.trips,\n ));\n setSelectedTrips(R.set(\n R.lensProp(route),\n newData.trips.filter(R.whereEq({ direction: 0 })).map(R.prop('pattern')),\n ));\n setStops(R.set(\n R.lensProp(route),\n newData.stops,\n ));\n setRouteSockets(R.set(\n R.lensProp(route),\n rtData,\n ));\n });\n });\n const removedRoutes = R.difference(selectedRoutes, routeIds);\n setTrips(R.omit(removedRoutes));\n setSelectedTrips(R.omit(removedRoutes));\n setStops(R.omit(removedRoutes));\n setRouteSockets(R.omit(removedRoutes));\n }\n }}\n date={date}\n setDate={async (newDate) => {\n setDate(newDate);\n if (provider) {\n selectedRoutes.forEach((route) => {\n getRouteData(\n provider.id,\n newDate,\n route,\n providerVersion,\n ).then((newData) => {\n setTrips(R.set(\n R.lensProp(route),\n newData.trips,\n ));\n setStops(R.set(\n R.lensProp(route),\n newData.stops,\n ));\n });\n });\n }\n }}\n />\n \n \n \n {routes && stopsOnMap && shapesOnMap && vehiclesOnMap && (\n <>\n {stopsOnMap.map((stop) => {\n const stopSocket = Object.values(routeSockets).flatMap(R.prop('stops'))\n .find(R.propEq('id', stop.id));\n return (\n \n );\n })}\n {shapesOnMap.map((shape, i) => (\n ({ lat: stop.lat, lng: stop.lon }))}\n color=\"#1D3998\"\n weight={4}\n // eslint-disable-next-line react/no-array-index-key\n key={i}\n />\n ))}\n {showVehicles && Object.entries(vehiclesOnMap)\n .flatMap(([route, vehicles]) => vehicles.map((vehicle) => (\n \n )))}\n \n )}\n
\n setShowVehicles(target.checked)}\n color=\"primary\"\n />\n )}\n label={t('map.showVehicles')}\n labelPlacement=\"start\"\n />\n
\n \n
\n {provider && selectedRoutes.length === 1 && stops[selectedRoutes[0]]\n && trips[selectedRoutes[0]] && (\n setSelectedTrips(R.set(\n R.lensProp(selectedRoutes[0]),\n Array.isArray(newTrips) ? newTrips : newTrips(selectedTrips[selectedRoutes[0]]),\n ))}\n stops={stops[selectedRoutes[0]]}\n trips={trips[selectedRoutes[0]]}\n provider={provider.id}\n date={date.format('YYYY-MM-DD')}\n route={selectedRoutes[0]}\n />\n )}\n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.394,33A9.472,9.472,0,1,1,32,43.11\",\n transform: \"translate(-28.976 -29.882)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.543,21A9.517,9.517,0,0,0,22,30.543h9.543V21\",\n transform: \"translate(-19.921 -19.016)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"square\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgChartPie = function SvgChartPie(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgChartPie, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/chart-pie.e9b8143a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-1148.5 -8337)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x2: 20,\n transform: \"translate(1150.5 8359)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1150.976 8339)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 4.744,\n height: 17.778,\n transform: \"translate(14.303)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 4.744,\n height: 12.512,\n transform: \"translate(0 5.266)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 4.744,\n height: 8.124,\n transform: \"translate(7.152 9.654)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgChartLine = function SvgChartLine(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgChartLine, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/chart-line.8b42c008.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n transform: \"translate(0 0)\",\n fill: \"none\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 1.925,\n height: 2.465,\n transform: \"translate(1.833 9.541)\",\n fill: \"#fff\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 1.779,\n height: 2.465,\n transform: \"translate(20.453 9.541)\",\n fill: \"#fff\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 3.204,\n height: 1.598,\n transform: \"translate(3.724 19.785)\",\n fill: \"#fff\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 3.142,\n height: 1.575,\n transform: \"translate(17.143 19.844)\",\n fill: \"#fff\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.892,42l12.118.176,1.833.878.709,1.463v14.4H63V44.927l.591-1.7Z\",\n transform: \"translate(-59.276 -39.307)\",\n fill: \"#fff\",\n fillRule: \"evenodd\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1.807 2.868)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63,63.556v-15.8A2.762,2.762,0,0,1,65.778,45h11a2.762,2.762,0,0,1,2.778,2.751v15.8\",\n transform: \"translate(-61.083 -45)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63,332.815h3.192V331H76.36v1.815h3.192\",\n transform: \"translate(-61.083 -314.259)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 16.552,\n transform: \"translate(1.917 16.741)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.811,\n height: 1.372,\n transform: \"translate(4.105 13.171)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.811,\n height: 1.372,\n transform: \"translate(13.445 13.171)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.468,\n height: 1.924,\n transform: \"translate(1.924 6.655) rotate(90)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.468,\n height: 1.924,\n transform: \"translate(20.412 6.655) rotate(90)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 16.552,\n transform: \"translate(1.917 3.395)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 16.552,\n transform: \"translate(1.917 10.537)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 7.141,\n transform: \"translate(10.193 3.395)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}));\n\nvar SvgBus = function SvgBus(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgBus, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/bus.7f7adbbb.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M61.015,24.128c.65-.059,1.714-.059,2.246-.059.473,0,.473,0,.473-.236a6.079,6.079,0,0,1,.059-1,1,1,0,0,1,.118-.532.416.416,0,0,1,.3-.236A8.314,8.314,0,0,1,65.271,22h2.9c.768.059.887.118,1,.236a.925.925,0,0,1,.236.591v1c0,.236,0,.236.414.236h1.655a6.973,6.973,0,0,1,1.3.118,3.414,3.414,0,0,1,1,.355,10.567,10.567,0,0,1,.828.768,1.822,1.822,0,0,1,.414.828c.118.236.118.532.118,2.66.059,2.128,0,6.03,0,7.98-.059,2.01-.059,2.01-.118,2.128a2.491,2.491,0,0,1-.414.768,2.679,2.679,0,0,1-1,.768c-.355.236-.828.355-3.074.355-2.187.059-6.207.059-8.394-.059-2.187-.059-2.6-.236-2.9-.473a2.6,2.6,0,0,1-.828-.946,6.189,6.189,0,0,1-.355-2.542C58,35.123,58,32.167,58,30.335s0-2.66.059-3.251a2.644,2.644,0,0,1,.3-1.3,2.338,2.338,0,0,1,.591-.887,3.255,3.255,0,0,1,.828-.532A3.741,3.741,0,0,1,61.015,24.128Z\",\n transform: \"translate(-54.571 -20.7)\",\n fill: \"#fff\",\n fillRule: \"evenodd\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(3.429 1.3)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x2: 17.202,\n transform: \"translate(0 4.847)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 17.202,\n transform: \"translate(0 12.355)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M349,106v11.054\",\n transform: \"translate(-331.798 -101.034)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58,70.951V59.9A2.889,2.889,0,0,1,60.837,57H72.305a2.9,2.9,0,0,1,2.9,2.9\",\n transform: \"translate(-58 -54.931)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1.3,\n cy: 1.3,\n r: 1.3,\n transform: \"translate(7.271 13.714)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M160.675,24.069V22.65a.656.656,0,0,0-.65-.65H155.65a.656.656,0,0,0-.65.65v1.419\",\n transform: \"translate(-149.266 -22)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58,293a2.889,2.889,0,0,0,2.837,2.9H72.305a2.9,2.9,0,0,0,2.9-2.9\",\n transform: \"translate(-58 -276.98)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.365,342a4.888,4.888,0,0,1-.887,1.36,5.411,5.411,0,0,1-1.241,1l-.236.177\",\n transform: \"translate(-65.527 -323.084)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M300,342a4.888,4.888,0,0,0,.887,1.36,5.411,5.411,0,0,0,1.241,1l.3.177\",\n transform: \"translate(-285.695 -323.084)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}));\n\nvar SvgTrain = function SvgTrain(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTrain, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/train.26f04726.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.739,47.65a1.637,1.637,0,0,1,.059-.532c0-.118.059-.118.3-.118h1c.236.059.236.059.236.177v.532c0,.059,0,.059.768.118.768,0,2.305,0,3.192.059a2.49,2.49,0,0,1,1.3.177,6.443,6.443,0,0,1,.768.65,5.105,5.105,0,0,1,.591.946,8.8,8.8,0,0,1,.118,2.6v7.567a12.936,12.936,0,0,1-.059,2.365,4.667,4.667,0,0,1-.177.768,5.2,5.2,0,0,1-.355.591,4.515,4.515,0,0,1-.532.532,1.968,1.968,0,0,1-.591.355,2.125,2.125,0,0,1-.65.118,13.583,13.583,0,0,1-2.246.059H80.079a14.953,14.953,0,0,1-2.187-.118,5.759,5.759,0,0,1-.65-.3,5.33,5.33,0,0,1-.532-.591,3.133,3.133,0,0,1-.473-.887,5.007,5.007,0,0,1-.236-1v-9.99a5.412,5.412,0,0,1,.118-1.892,3.54,3.54,0,0,1,.473-.946,2.045,2.045,0,0,1,.65-.591,3.089,3.089,0,0,1,.887-.414,12.915,12.915,0,0,1,1.655-.059c.709-.059,1.6-.059,2.069-.059h.709C82.621,47.768,82.68,47.768,82.739,47.65Z\",\n transform: \"translate(-71.507 -44.222)\",\n fill: \"#fff\",\n fillRule: \"evenodd\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(4.493 1.005)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x2: 15.074,\n transform: \"translate(0 5.379)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M331,109v11.054\",\n transform: \"translate(-315.926 -103.562)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76,74.01V62.9A2.729,2.729,0,0,1,78.542,60H88.591a2.724,2.724,0,0,1,2.483,2.9\",\n transform: \"translate(-76 -57.458)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 10.167,\n transform: \"translate(2.483 19.389)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 15.074,\n transform: \"translate(0 12.887)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.759,18.123V17.65c0-.355-.591-.65-1.241-.65h-8.335c-.65,0-1.182.3-1.182.65v.473\",\n transform: \"translate(-110.813 -17)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76,287.532a2.729,2.729,0,0,0,2.542,2.9H88.591a2.724,2.724,0,0,0,2.483-2.9V287\",\n transform: \"translate(-76 -271.039)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.365,345a5.166,5.166,0,0,1-.887,1.419,6.906,6.906,0,0,1-1.241.946l-.236.177\",\n transform: \"translate(-79.764 -325.611)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M287,345a5.166,5.166,0,0,0,.887,1.419,6.907,6.907,0,0,0,1.241.946l.3.177\",\n transform: \"translate(-274.527 -325.611)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.405,\n height: 2.405,\n transform: \"translate(2.601 14.66)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.405,\n height: 2.405,\n transform: \"translate(10.108 14.66)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 1.574,\n height: 0.802,\n transform: \"translate(6.739 1.773)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}));\n\nvar SvgTram = function SvgTram(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTram, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/tram.40f22478.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-247.807 -135)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.812,42l11.607.168,1.755.841.679,1.4V58.2H63V44.8l.566-1.626Z\",\n transform: \"translate(188.643 97.558)\",\n fill: \"#fff\",\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(249.807 139.726)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63,62.774V47.635A2.645,2.645,0,0,1,65.661,45H76.193a2.645,2.645,0,0,1,2.661,2.635V62.774\",\n transform: \"translate(-61.163 -45)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63,332.738h3.058V331H75.8v1.738h3.058\",\n transform: \"translate(-61.163 -314.964)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 15.854,\n transform: \"translate(1.837 16.036)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.692,\n height: 1.314,\n transform: \"translate(3.932 12.615)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.692,\n height: 1.314,\n transform: \"translate(12.878 12.615)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.364,\n height: 1.843,\n transform: \"translate(1.843 6.375) rotate(90)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.364,\n height: 1.843,\n transform: \"translate(19.552 6.375) rotate(90)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 15.854,\n transform: \"translate(1.837 3.252)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 15.854,\n transform: \"translate(1.837 10.092)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 6.84,\n transform: \"translate(9.764 3.252)\",\n strokeWidth: 1,\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n y1: 3,\n x2: 2.5,\n transform: \"translate(256.654 136.5)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y1: 3,\n x2: 2.5,\n transform: \"translate(262.366 136.5)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}));\n\nvar SvgTrolleybus = function SvgTrolleybus(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTrolleybus, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/trolleybus.76e7ecb3.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-432.919 -394)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5082.79,9167l-8.21,3.649,1.987,7.3h12.5l1.938-7.3Z\",\n transform: \"translate(5527.693 -8765.984)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5085,9167.105V9163h10.947v4.105\",\n transform: \"translate(5524.429 -8763.808)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5079,9159.193V9156h5.474v3.193\",\n transform: \"translate(5521.167 -8760)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5087,9191\",\n transform: \"translate(5525.517 -8779.037)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5123.51,9179.507a4.19,4.19,0,0,1,2.448-1.119,2.97,2.97,0,0,1,2.15,1.119\",\n transform: \"translate(5557.43 -8767.544)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5082.79,9167l-8.21,3.649,1.987,7.3h12.5l1.938-7.3Z\",\n transform: \"translate(5527.693 -8765.984)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5085,9167.105V9163h10.947v4.105\",\n transform: \"translate(5524.429 -8763.808)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5079,9159.193V9156h5.474v3.193\",\n transform: \"translate(5521.167 -8760)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5087,9191\",\n transform: \"translate(5525.517 -8779.037)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5123.51,9179.507a4.19,4.19,0,0,1,2.448-1.119,2.97,2.97,0,0,1,2.15,1.119\",\n transform: \"translate(5557.43 -8767.544)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5118.913,9179.506a4.186,4.186,0,0,0-2.448-1.119,2.972,2.972,0,0,0-2.15,1.119\",\n transform: \"translate(5574.762 -8767.543)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 4.105,\n transform: \"translate(444.903 401.245)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(443.306 406.49)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1.596,\n cy: 1.596,\n r: 1.596,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1.596,\n cy: 1.596,\n r: 1.096,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5123.51,9179.507a4.2,4.2,0,0,1,2.448-1.119,2.863,2.863,0,0,1,2.107,1.058\",\n transform: \"translate(5557.886 -8764.263)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5122.6,9178.612a2.474,2.474,0,0,0,1.886.737,2.562,2.562,0,0,0,1.921-.737\",\n transform: \"translate(5561.497 -8763.473)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5123.345,9179.445a3.955,3.955,0,0,1,2.373-1.059,2.866,2.866,0,0,1,2.106,1.059\",\n transform: \"translate(5566.005 -8764.262)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5122.6,9178.612a2.474,2.474,0,0,0,1.886.737,2.562,2.562,0,0,0,1.921-.737\",\n transform: \"translate(5569.707 -8763.473)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5123.345,9179.445a3.955,3.955,0,0,1,2.373-1.059,2.866,2.866,0,0,1,2.106,1.059\",\n transform: \"translate(5574.214 -8764.262)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}));\n\nvar SvgFerry = function SvgFerry(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFerry, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/ferry.8aaddc26.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { ReactComponent as Bus } from '../assets/bus.svg';\nimport { ReactComponent as Train } from '../assets/train.svg';\nimport { ReactComponent as Tram } from '../assets/tram.svg';\nimport { ReactComponent as Trolleybus } from '../assets/trolleybus.svg';\nimport { ReactComponent as Ferry } from '../assets/ferry.svg';\n\ninterface Props {\n type: number;\n}\n\nexport default function VehicleIcon({ type }: Props) {\n switch (type) {\n case 0:\n case 900:\n return ;\n case 2:\n case 101:\n case 102:\n case 106:\n case 109:\n return ;\n case 800:\n return ;\n case 1200:\n return ;\n case 3:\n case 700:\n case 702:\n default:\n return ;\n }\n}\n","import React, { useState } from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport * as R from 'ramda';\nimport { IProvider, IStatistic } from '../interfaces';\nimport VehicleIcon from './VehicleIcon';\nimport CustomAutocomplete from '../common/CustomAutocomplete';\n\ninterface Props {\n providers: IProvider[],\n data: IStatistic[],\n}\n\nconst useStyles = makeStyles({\n root: {\n margin: '24px 0',\n display: 'flex',\n },\n select: {\n width: 296,\n marginRight: 24,\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 8,\n fontWeight: 400,\n color: '#37001F',\n },\n icon: {\n display: 'inline-flex',\n marginRight: 8,\n },\n});\n\nexport default function StatisticsSearch({ providers, data }: Props) {\n const classes = useStyles();\n const { t } = useTranslation();\n const [provider, setProvider] = useState(null);\n const result = provider ? data.find(R.eqProps('id', provider)) : null;\n return (\n
\n setProvider(value)}\n className={classes.select}\n label={t('stats.findDataSource')}\n getOptionLabel={R.prop('name')}\n />\n {result && (\n
\n {result.routes.map(({ type, count }) => (\n \n \n \n \n {count}\n {' '}\n {t('stats.routes', { count })}\n \n ))}\n \n {result.stops}\n {' '}\n {t('stats.stops', { count: result.stops })}\n \n
\n )}\n
\n );\n}\n","import React, {\n ChangeEvent, useContext, useEffect, useRef, useState,\n} from 'react';\nimport {\n makeStyles, Typography, IconButton, TextField, MenuItem,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport * as R from 'ramda';\nimport Chart from 'chart.js';\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\nimport { Pie, HorizontalBar } from 'react-chartjs-2';\nimport {\n Map, Marker, ScaleControl, TileLayer,\n} from 'react-leaflet';\nimport leaflet from 'leaflet';\nimport MarkerClusterGroup from 'react-leaflet-markercluster';\nimport 'leaflet-fullscreen';\nimport 'leaflet-fullscreen/dist/leaflet.fullscreen.css';\nimport classNames from 'classnames';\nimport { axios } from '../utils';\nimport { IProvider, IStatistic } from '../interfaces';\nimport { ReactComponent as ChartPie } from '../assets/chart-pie.svg';\nimport { ReactComponent as ChartLine } from '../assets/chart-line.svg';\nimport { ReactComponent as Chevron } from '../assets/chevron.svg';\nimport StatisticsSearch from './StatisticsSearch';\nimport { ProviderContext } from '../context';\nimport VersionInfo from './VersionInfo';\n\nconst useStyles = makeStyles({\n root: {\n width: '100%',\n marginTop: 32,\n },\n top: {\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: 16,\n },\n header: {\n fontSize: 70,\n fontWeight: 700,\n color: '#37001F',\n },\n topData: {\n display: 'flex',\n },\n sources: {\n fontSize: 35,\n fontWeight: 700,\n color: '#37001F',\n },\n routes: {\n fontSize: 35,\n fontWeight: 700,\n marginLeft: 64,\n color: '#37001F',\n },\n topValue: {\n fontSize: 70,\n },\n middle: {\n margin: '0 -32px',\n padding: '0 32px',\n backgroundColor: '#F5F5F5',\n display: 'flex',\n },\n chartContainer: {\n width: '50%',\n paddingTop: 16,\n },\n chartOptions: {\n display: 'flex',\n alignItems: 'center',\n },\n select: {\n width: 296,\n marginRight: 24,\n },\n selectIcon: {\n display: 'flex',\n alignItems: 'center',\n padding: '8px 4px',\n },\n chart: {\n position: 'relative',\n margin: '32px 0',\n },\n map: {\n width: '50%',\n height: 490,\n marginLeft: 32,\n },\n markerIconContainer: {\n margin: '-50px 0 0 -50px !important',\n width: '100px !important',\n height: '100px !important',\n },\n markerIcon: {\n width: 100,\n height: 100,\n borderRadius: '50%',\n backgroundColor: 'rgba(200, 39, 139, 0.45)',\n fontSize: 35,\n fontWeight: 700,\n fontFamily: '\"Roboto\"',\n color: 'white',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n});\n\nChart.plugins.unregister(ChartDataLabels);\n\nexport default function Statistics() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { providers, version, user } = useContext(ProviderContext);\n const [data, setData] = useState(null);\n useEffect(() => {\n (async () => {\n const { data: newData } = await axios.get('/statistics', {\n params: (user.agency && version) ? {\n providerName: user.agency,\n providerVersion: version.id,\n } : {},\n });\n setData(newData);\n })();\n }, [version, user.agency]);\n const [pieChart, setPieChart] = useState(true);\n const [dataType, setDataType] = useState<'routes' | 'stops'>('routes');\n const mapRef = useRef();\n const [mapLoaded, setMapLoaded] = useState(false);\n useEffect(() => {\n if (providers && mapLoaded) {\n mapRef.current.leafletElement.fitBounds(\n new leaflet.LatLngBounds(providers.map(({ lat, lon }) => [lat, lon])),\n {\n padding: [32, 32],\n },\n );\n }\n }, [providers, mapLoaded]);\n // eslint-disable-next-line\n useEffect(() => {\n if (mapRef.current && !mapLoaded) {\n setMapLoaded(true);\n }\n });\n if (!data) return null;\n const sources = data.length;\n const providerCounts = R.compose(\n R.map((provider: IStatistic) => ({\n id: provider.id,\n routes: R.sum(provider.routes.map(R.prop('count'))),\n stops: provider.stops,\n })),\n )(data);\n const chartData = R.compose(\n ([firstNine, rest]) => (rest.length === 0 ? firstNine : [\n ...firstNine,\n {\n name: t('stats.other'),\n count: R.sum(rest.map(R.prop('count'))),\n },\n ]),\n (x: { name: string; count: number; }[]) => R.splitAt(9, x),\n R.sort(R.descend(R.prop('count'))),\n R.map(({ id, routes, stops }: { id: string; routes: number; stops: number; }) => ({\n name: providers.find(R.whereEq({ id }))!.name,\n count: dataType === 'routes' ? routes : stops,\n })),\n )(providerCounts);\n const routes = R.sum(providerCounts.map(R.prop('routes')));\n const ChartComponent = pieChart ? Pie : HorizontalBar;\n return (\n
\n \n
\n \n {t('stats.header')}\n \n
\n \n \n {sources}\n {' '}\n \n {t('stats.sources', { count: sources })}\n \n \n \n {routes}\n {' '}\n \n {t('stats.routes', { count: routes })}\n \n
\n
\n
\n
\n
\n ) => (\n setDataType(event.target.value)\n )}\n variant=\"outlined\"\n size=\"small\"\n className={classes.select}\n SelectProps={{\n // eslint-disable-next-line react/prop-types\n IconComponent: ({ className, ...rest }) => (\n
\n \n
\n ),\n }}\n >\n \n {t('stats.selectRoutes')}\n \n \n {t('stats.selectStops')}\n \n \n setPieChart(true)}\n >\n \n \n setPieChart(false)}\n >\n \n \n
\n
\n \n
\n
\n \n \n \n {\n const count = R.sum(cluster.getAllChildMarkers().map((x) => {\n const { html } = x.options.icon!.options as { html: string };\n return Number(html.match(/>(\\d+)${count}
`,\n });\n }}\n >\n {providerCounts.map((x) => {\n const count = dataType === 'routes' ? x.routes : x.stops;\n const { lat, lon } = providers.find(R.whereEq({ id: x.id })) as IProvider;\n return (\n ${count}
`,\n })}\n />\n );\n })}\n \n \n \n \n \n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0.5 0.5)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 9,\n cy: 9,\n r: 9,\n transform: \"translate(0 0)\",\n fill: \"none\",\n stroke: \"#840e4b\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(5.76 5.73)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x2: 6.511,\n y2: 6.511,\n fill: \"none\",\n stroke: \"#840e4b\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6.511,\n y2: 6.511,\n fill: \"none\",\n stroke: \"#840e4b\",\n strokeWidth: 1\n}))));\n\nvar SvgClear = function SvgClear(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 19,\n viewBox: \"0 0 19 19\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgClear, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/clear.430e1300.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useRef, useState } from 'react';\nimport { makeStyles, Slider, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { debounce } from 'lodash';\n\ninterface Props {\n value: number;\n onChange: (newValue: number) => void;\n}\n\nconst useStyles = makeStyles({\n radiusContainer: {\n marginLeft: 'auto',\n display: 'flex',\n marginTop: 16,\n zIndex: 2,\n },\n impactArea: {\n fontSize: 20,\n color: '#37001F',\n fontWeight: 400,\n marginRight: 32,\n },\n slider: {\n width: 300,\n color: '#E4E4E4',\n },\n rail: {\n opacity: 1,\n },\n thumb: {\n color: '#a1145c',\n },\n mark: {\n width: 8,\n height: 8,\n margin: '-3px 0 0 -6px',\n borderRadius: '50%',\n },\n markActive: {\n backgroundColor: '#E4E4E4',\n },\n markLabelActive: {\n color: 'rgba(0, 0, 0, 0.54)',\n },\n});\n\nexport default function Radius({ value, onChange }: Props) {\n const classes = useStyles();\n const { t } = useTranslation();\n const [internalValue, setInternalValue] = useState(value);\n const debouncedOnChange = useRef(debounce(onChange, 50));\n useEffect(() => {\n debouncedOnChange.current = debounce(onChange, 50);\n }, [onChange]);\n return (\n
\n \n {t('impact.impactArea')}\n \n {\n if (typeof newValue === 'number') {\n setInternalValue(newValue);\n debouncedOnChange.current(newValue);\n }\n }}\n min={50}\n max={2000}\n getAriaValueText={(x) => `${x}m`}\n valueLabelDisplay=\"auto\"\n classes={{\n rail: classes.rail,\n thumb: classes.thumb,\n mark: classes.mark,\n markActive: classes.markActive,\n markLabelActive: classes.markLabelActive,\n }}\n />\n
\n );\n}\n","import React, { Component, createRef, useContext } from 'react';\nimport { createPortal } from 'react-dom';\nimport {\n Button, Dialog, TextField, Typography, createStyles, WithStyles, withStyles,\n} from '@material-ui/core';\nimport { WithTranslation, withTranslation } from 'react-i18next';\nimport * as R from 'ramda';\nimport {\n Map, ScaleControl, TileLayer,\n} from 'react-leaflet';\nimport L, {\n Circle, CircleMarker, LeafletMouseEvent, Marker,\n} from 'leaflet';\nimport 'leaflet.path.drag';\nimport Control from 'react-leaflet-control';\nimport 'leaflet-fullscreen';\nimport 'leaflet-fullscreen/dist/leaflet.fullscreen.css';\nimport { isPointWithinRadius } from 'geolib';\nimport {\n IDataVersion, IProvider, IRoute, IStopWithRoutes,\n} from '../../interfaces';\nimport { axios } from '../../utils';\nimport { ReactComponent as Clear } from '../../assets/clear.svg';\nimport Radius from './Radius';\nimport CustomAutocomplete from '../../common/CustomAutocomplete';\nimport markerIcon from '../../assets/marker.svg';\nimport VehicleIcon from '../VehicleIcon';\nimport { IUser, ProviderContext } from '../../context';\nimport VersionInfo from '../VersionInfo';\n\nconst leaflet = L;\n\ntype Data = (IStopWithRoutes & { provider: string }) | { lat: number; lon: number; };\n\nconst styles = createStyles({\n root: {\n display: 'flex',\n marginTop: 32,\n width: '100%',\n },\n left: {\n width: 400,\n marginRight: 32,\n },\n select: {\n width: '100%',\n },\n providers: {\n display: 'flex',\n flexWrap: 'wrap',\n paddingTop: 32,\n margin: -8,\n },\n provider: {\n backgroundColor: '#F5F5F5',\n borderRadius: 15,\n padding: '8px 16px',\n display: 'flex',\n alignItems: 'center',\n margin: 8,\n },\n providerName: {\n fontSize: 20,\n fontWeight: 400,\n },\n providerClear: {\n padding: 0,\n minWidth: 0,\n borderRadius: '50%',\n marginLeft: 8,\n },\n right: {\n flexGrow: 1,\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n },\n map: {\n width: '100%',\n height: 523,\n zIndex: 1,\n },\n markerIconContainer: {\n margin: '-50px 0 0 -50px !important',\n width: '100px !important',\n height: '100px !important',\n },\n markerIcon: {\n width: 100,\n height: 100,\n borderRadius: '50%',\n backgroundColor: 'rgba(200, 39, 139, 0.45)',\n },\n stopSearch: {\n width: 300,\n backgroundColor: 'white',\n },\n searchInput: {\n backgroundColor: 'transparent',\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.08)',\n },\n '&$inputFocused': {\n backgroundColor: 'rgba(0, 0, 0, 0.03)',\n },\n },\n inputFocused: {},\n marker: {\n width: 20,\n height: 25,\n top: -25,\n left: -10,\n },\n popup: {\n backgroundColor: 'white',\n borderRadius: 3,\n '& > :first-child': {\n boxShadow: 'none',\n padding: 0,\n '& > div': {\n margin: '16px 24px',\n },\n },\n '& > :last-child': {\n display: 'none',\n },\n },\n name: {\n backgroundColor: '#37001F',\n color: 'white',\n fontSize: 24,\n margin: '0 0 0 -24px !important',\n padding: '4px 16px 4px 24px',\n borderRadius: '0 15px 15px 0',\n display: 'inline-block',\n },\n routeGroup: {\n margin: '8px 0',\n display: 'flex',\n },\n icon: {\n margin: '6px 8px 6px 0',\n },\n routes: {\n display: 'flex',\n flexWrap: 'wrap',\n margin: -4,\n },\n route: {\n margin: 4,\n padding: '4px 8px',\n backgroundColor: '#F5F5F5',\n borderRadius: 12,\n fontSize: 20,\n fontWeight: 400,\n color: '#37001F',\n fontFamily: '\"Roboto\"',\n },\n inRadius: {\n fontSize: 13,\n color: '#666666',\n fontWeight: 400,\n margin: '8px 0 0 !important',\n },\n nearbyName: {\n color: '#37001F',\n fontSize: 16,\n fontWeight: 400,\n margin: '4px 0 !important',\n },\n dialog: {\n padding: 24,\n width: 400,\n },\n restoreLocation: {\n margin: '8px 0 0 auto',\n display: 'flex',\n },\n deleteStop: {\n margin: '8px 0 -12px auto',\n display: 'flex',\n },\n underMap: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n});\n\ntype Props = WithStyles & WithTranslation & {\n providers: IProvider[];\n user: IUser;\n version?: IDataVersion;\n};\n\ninterface State {\n selectedProviders: string[];\n inputValue: string;\n routes: Record;\n originalStops: Record;\n stops: Record;\n radius: number;\n editMode: boolean;\n searchValue: IStopWithRoutes & { provider: string } | null;\n popupData: Data | null;\n dialogOpen: boolean;\n stopName: string;\n draggedStop: string | null;\n}\n\nconst isStop = (x: Data): x is IStopWithRoutes => R.has('routes', x);\n\nconst isCircleMarker = (x: Marker | CircleMarker): x is CircleMarker => (\n R.has('setStyle', Reflect.getPrototypeOf(x))\n);\n\nconst initialState = {\n selectedProviders: [],\n inputValue: '',\n routes: {},\n originalStops: {},\n stops: { new: [] },\n radius: 100,\n editMode: false,\n searchValue: null,\n popupData: null,\n dialogOpen: false,\n stopName: '',\n draggedStop: null,\n};\n\n// eslint-disable-next-line react/prefer-stateless-function\nclass ImpactArea extends Component {\n mapRef = createRef();\n\n stopMarkers: Record = {};\n\n impactMarkers: Record = {};\n\n popupContainer: HTMLDivElement | null = null;\n\n lastClick: LeafletMouseEvent | null = null;\n\n constructor(props: Props) {\n super(props);\n this.state = initialState;\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly) {\n const {\n selectedProviders, routes, originalStops,\n } = this.state;\n const { mapRef } = this;\n if (\n prevState.originalStops !== originalStops\n && selectedProviders.every((x) => routes[x] && originalStops[x]) && mapRef.current\n ) {\n const map = mapRef.current.leafletElement;\n const coords: [number, number][] = R.chain(\n (provider) => originalStops[provider],\n selectedProviders,\n ).map(\n (stop) => [stop.lat, stop.lon],\n );\n map.fitBounds(\n new leaflet.LatLngBounds(\n coords.length > 0 ? coords : [\n [56.464660, 14.408800],\n [53.570577, 19.443904],\n ],\n ),\n {\n padding: [32, 32],\n },\n );\n R.difference(R.keys(originalStops), R.keys(prevState.originalStops)).forEach((provider) => {\n originalStops[provider].forEach((stop) => (\n this.addStop({ ...stop, provider })\n ));\n });\n }\n const { version } = this.props;\n if (version !== prevProps.version) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(initialState);\n }\n }\n\n getSelectedStops = (original: boolean = false) => {\n const { stops, originalStops, selectedProviders } = this.state;\n return R.chain(\n (provider) => (\n ((original ? originalStops : stops)[provider] || []).map((x) => ({ ...x, provider }))\n ),\n [...selectedProviders, 'new'],\n );\n };\n\n markerClickHandler = (event: LeafletMouseEvent) => {\n this.lastClick = event;\n this.setState((currentState) => {\n const { provider, id } = event.target;\n const stop = currentState.stops[provider].find(R.whereEq({ id }));\n if (!stop) {\n return null;\n }\n const data = { ...stop, provider };\n return (currentState.draggedStop ? null : ({\n dialogOpen: true,\n popupData: data,\n stopName: data.name,\n }));\n });\n };\n\n addPopup = (marker: Marker | CircleMarker, data: Data) => {\n const { classes } = this.props;\n const { editMode } = this.state;\n const makePopup = () => {\n const div = document.createElement('div');\n this.popupContainer = div;\n this.setState({ popupData: data });\n return div;\n };\n if (editMode && isStop(data)) {\n // @ts-ignore\n marker.dragging.enable();\n return marker\n .unbindPopup()\n .on('click', this.markerClickHandler);\n }\n return marker.bindPopup(makePopup, {\n className: classes.popup,\n minWidth: 400,\n maxWidth: 400,\n });\n };\n\n addStop = (data: Data) => {\n const { classes } = this.props;\n const { mapRef, stopMarkers, impactMarkers } = this;\n const { radius } = this.state;\n const marker: any = isStop(data) ? new leaflet.CircleMarker([data.lat, data.lon], {\n radius: 8,\n fillColor: data.provider === 'new' ? '#FF0000' : '#FFA20D',\n fillOpacity: 1,\n weight: 3,\n color: '#1A359B',\n pane: 'markerPane',\n }) : new leaflet.Marker([data.lat, data.lon], {\n icon: leaflet.icon({\n iconUrl: markerIcon,\n className: classes.marker,\n popupAnchor: [0, -12],\n }),\n });\n marker.addTo(mapRef.current.leafletElement);\n this.addPopup(marker, data);\n const impactMarker = new leaflet.Circle([data.lat, data.lon], {\n radius,\n fillColor: '#034EA2',\n fillOpacity: 0.45,\n stroke: false,\n }).addTo(mapRef.current.leafletElement);\n const key = isStop(data) ? `${data.provider}-${data.id}` : 'marker';\n impactMarkers[key] = impactMarker;\n if (isStop(data)) {\n marker.on('drag', (event: any) => {\n impactMarker.setLatLng(event.target.getLatLng());\n });\n marker.on('dragstart', () => {\n this.setState({ draggedStop: key });\n });\n marker.on('dragend', (event: any) => {\n setTimeout(() => {\n marker.setStyle({\n fillColor: '#FF0000',\n });\n const { lat, lng: lon } = event.target.getLatLng();\n this.setState((currentState) => ({\n draggedStop: null,\n stops: R.over(\n R.lensProp(data.provider),\n R.map((x: any) => (x.id === data.id ? { ...x, lat, lon } : x)),\n currentState.stops,\n ),\n }));\n }, 1);\n });\n } else {\n marker.openPopup();\n }\n marker.on('popupopen', () => {\n impactMarker.setStyle({\n fillColor: '#CA1F8C',\n }).bringToFront();\n });\n marker.on('popupclose', () => {\n impactMarker.setStyle({\n fillColor: '#034EA2',\n });\n if (!isStop(data)) {\n marker.remove();\n impactMarker.remove();\n }\n });\n stopMarkers[key] = marker;\n if (isStop(data)) {\n marker.provider = data.provider;\n marker.id = data.id;\n }\n return marker;\n };\n\n hasStopMoved = (stop: Data): boolean => {\n if (!isStop(stop)) {\n return false;\n }\n const { originalStops } = this.state;\n const providerStops = originalStops[stop.provider];\n if (!providerStops) {\n return false;\n }\n const originalStop = providerStops.find(R.whereEq({ id: stop.id }));\n return originalStop !== undefined\n && (stop.lat !== originalStop.lat || stop.lon !== originalStop.lon);\n };\n\n render() {\n const {\n classes, t, providers, version, user,\n } = this.props;\n const {\n selectedProviders, inputValue, radius, editMode, searchValue,\n popupData, routes, stops, dialogOpen, stopName, originalStops, draggedStop,\n } = this.state;\n const { mapRef, stopMarkers, impactMarkers } = this;\n const selectedStops = this.getSelectedStops();\n const nearbyStops = popupData ? selectedStops.filter((x) => (\n (!isStop(popupData) || x.id !== popupData.id) && isPointWithinRadius(\n { latitude: x.lat, longitude: x.lon },\n { latitude: popupData.lat, longitude: popupData.lon },\n radius,\n )\n )) : null;\n const renderRoutes = (currentStop: IStopWithRoutes & { provider: string }) => R.map(\n ([type, typeRoutes]) => (\n
\n
\n \n
\n
\n {typeRoutes.map((route) => (\n
\n {route.name}\n
\n ))}\n
\n
\n ),\n R.toPairs(R.groupBy(\n (x) => String(x.type),\n R.map(\n (id) => routes[currentStop.provider].find(R.whereEq({ id })),\n currentStop.routes,\n ) as IRoute[],\n )),\n );\n // @ts-ignore\n // @ts-ignore\n return (\n
\n
\n \n !selectedProviders.includes(x.id))}\n value={null}\n onChange={async (event, provider) => {\n this.setState({ inputValue: '' });\n if (provider !== null && !selectedProviders.includes(provider.id)) {\n this.setState(R.over(R.lensProp('selectedProviders'), R.append(provider.id)));\n const options = (version && provider.id === user.agency)\n ? { params: { providerVersion: version.id } }\n : {};\n const [\n { data: providerRoutes },\n { data: providerStops },\n ] = await Promise.all([\n axios.get(`/${provider.id}/routes`, options),\n axios.get(`/${provider.id}/stops`, options),\n ]);\n this.setState(R.over(\n R.lensProp('routes'),\n R.set(R.lensProp(provider.id), providerRoutes),\n ));\n const setNewStops = R.set(R.lensProp(provider.id), providerStops);\n this.setState(R.over(R.lensProp('stops'), setNewStops));\n this.setState(R.over(R.lensProp('originalStops'), setNewStops));\n }\n }}\n inputValue={inputValue}\n onInputChange={(event, value) => {\n this.setState({ inputValue: value });\n }}\n label={t('stats.findDataSource')}\n getOptionLabel={R.prop('name')}\n />\n
\n {selectedProviders.map((provider) => (\n
\n \n {providers.find(R.propEq('id', provider))!.name}\n \n {\n this.setState({\n selectedProviders: R.filter((x) => x !== provider, selectedProviders),\n stops: R.dissoc(provider, stops),\n originalStops: R.dissoc(provider, originalStops),\n });\n stops[provider].forEach((stop) => {\n stopMarkers[`${provider}-${stop.id}`].remove();\n impactMarkers[`${provider}-${stop.id}`].remove();\n });\n }}\n >\n \n \n
\n ))}\n
\n
\n {selectedProviders.length > 0 && (\n
\n {\n if (editMode) {\n this.setState((currentState) => {\n if (currentState.draggedStop\n || (this.lastClick && this.lastClick.originalEvent === event.originalEvent)) {\n return null;\n }\n const newStop = {\n id: String(Math.random()),\n name: '',\n lat: event.latlng.lat,\n lon: event.latlng.lng,\n routes: [],\n provider: 'new',\n };\n this.addStop(newStop).fire('click');\n return R.over(\n R.lensPath(['stops', 'new']),\n R.append(newStop),\n currentState,\n );\n });\n } else {\n this.addStop({ lat: event.latlng.lat, lon: event.latlng.lng });\n }\n }}\n dragging={!(editMode && draggedStop)}\n // @ts-ignore\n fullscreenControl\n >\n \n \n \n {\n this.setState({ searchValue: value });\n if (value) {\n const marker = stopMarkers[`${value.provider}-${value.id}`];\n if (editMode) {\n mapRef.current.leafletElement.panTo(marker.getLatLng());\n marker.fire('click');\n } else {\n marker.openPopup();\n }\n }\n }}\n label={t('impact.stop')}\n TextFieldProps={{\n variant: 'filled',\n InputProps: {\n classes: {\n root: classes.searchInput,\n focused: classes.inputFocused,\n },\n },\n }}\n getOptionLabel={R.prop('name')}\n />\n \n \n {\n if (popupData) {\n stopMarkers[isStop(popupData) ? `${popupData.provider}-${popupData.id}` : 'marker'].closePopup();\n }\n this.setState({\n editMode: !editMode,\n dialogOpen: false,\n }, () => {\n selectedStops.forEach((stop) => {\n const marker = stopMarkers[`${stop.provider}-${stop.id}`];\n this.addPopup(marker, stop);\n // @ts-ignore\n marker.dragging[editMode ? 'disable' : 'enable']();\n });\n });\n }}\n >\n {t(editMode ? 'impact.finishEditing' : 'impact.edit')}\n \n \n \n
\n {\n R.values(stopMarkers).forEach((marker) => marker.remove());\n R.values(impactMarkers).forEach((marker) => marker.remove());\n selectedProviders.forEach((provider) => {\n originalStops[provider].forEach((stop) => (\n this.addStop({ ...stop, provider })\n ));\n });\n }}\n >\n {t('impact.restoreCurrentState')}\n \n {\n this.setState({ radius: newRadius });\n R.values(this.impactMarkers).forEach((marker) => {\n marker.setRadius(newRadius);\n });\n selectedStops.forEach((stop) => {\n this.addPopup(stopMarkers[`${stop.provider}-${stop.id}`], stop);\n });\n }}\n />\n
\n
\n )}\n {editMode ? (\n <>\n {popupData && isStop(popupData) && (\n {\n const newData = {\n ...popupData,\n name: stopName,\n };\n this.setState({\n dialogOpen: false,\n stops: R.over(\n R.lensProp(popupData.provider),\n R.map((x: IStopWithRoutes) => (\n x.id === popupData.id ? { ...x, name: stopName } : x\n )),\n stops,\n ),\n popupData: newData,\n }, () => {\n this.addPopup(stopMarkers[`${newData.provider}-${newData.id}`], newData);\n });\n }}\n open={dialogOpen}\n classes={{ paper: classes.dialog }}\n >\n this.setState({ stopName: target.value })}\n fullWidth\n label={t('impact.stopName')}\n size=\"small\"\n />\n {this.hasStopMoved(popupData) && (\n {\n const originalStop = originalStops[popupData.provider]\n .find(R.whereEq({ id: popupData.id }));\n if (originalStop) {\n const { lat, lon } = originalStop;\n const key = `${popupData.provider}-${popupData.id}`;\n const stopMarker = stopMarkers[key];\n stopMarker.setLatLng([lat, lon]);\n if (isCircleMarker(stopMarker)) {\n stopMarker.setStyle({ fillColor: '#FFA20D' });\n }\n impactMarkers[key].setLatLng([lat, lon]);\n this.setState({\n stops: R.over(\n R.lensProp(popupData.provider),\n R.map((x: IStopWithRoutes) => (\n x.id === popupData.id ? { ...x, lat, lon } : x\n )),\n stops,\n ),\n });\n }\n }}\n >\n {t('impact.restoreLocation')}\n \n )}\n {\n this.setState({\n dialogOpen: false,\n stops: R.over(\n R.lensProp(popupData.provider),\n R.filter((x: IStopWithRoutes) => x.id !== popupData.id),\n stops,\n ),\n }, () => {\n stopMarkers[`${popupData.provider}-${popupData.id}`].remove();\n impactMarkers[`${popupData.provider}-${popupData.id}`].remove();\n });\n }}\n >\n {t('impact.deleteStop')}\n \n \n )}\n \n ) : (\n <>\n {this.popupContainer && popupData && nearbyStops && createPortal(\n <>\n {isStop(popupData) && (\n <>\n \n {popupData.name}\n \n {renderRoutes(popupData)}\n \n )}\n {(nearbyStops.length > 0 || !isStop(popupData)) && (\n <>\n \n {t(isStop(popupData) ? 'impact.inRadius' : 'impact.inMarkerRadius', { radius })}\n :\n \n {nearbyStops.length === 0 && (\n \n {t('impact.noStops')}\n \n )}\n {nearbyStops.map((nearbyStop) => (\n
\n \n {nearbyStop.name}\n \n {renderRoutes(nearbyStop)}\n
\n ))}\n \n )}\n ,\n this.popupContainer,\n )}\n \n )}\n
\n );\n }\n}\n\nconst ConnectedImpactArea = withTranslation()(withStyles(styles)(ImpactArea));\n\nexport default () => {\n const { providers, version, user } = useContext(ProviderContext);\n return ;\n};\n","import React, { useContext, useState } from 'react';\nimport { Button, CircularProgress, makeStyles } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport fileDownload from 'js-file-download';\nimport * as R from 'ramda';\nimport { IProvider } from '../interfaces';\nimport { axios } from '../utils';\nimport CustomAutocomplete from '../common/CustomAutocomplete';\nimport { ProviderContext } from '../context';\nimport VersionInfo from './VersionInfo';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n },\n select: {\n width: 300,\n marginBottom: 24,\n },\n button: {\n width: 237,\n height: 56,\n fontSize: 22,\n fontWeight: 400,\n },\n loader: {\n position: 'absolute',\n left: 'calc(50% - 10px)',\n top: 'calc(50% - 10px)',\n },\n});\n\ntype ExportType = 'netex' | 'gtfs' | 'kml' | 'geojson';\n\nexport default function Export() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { providers, version, user } = useContext(ProviderContext);\n const [selectedProvider, setSelectedProvider] = useState(null);\n const [type, setType] = useState(null);\n const [loading, setLoading] = useState(false);\n return (\n
\n \n setSelectedProvider(value)}\n label={t('export.dataSource')}\n className={classes.select}\n getOptionLabel={R.prop('name')}\n />\n {\n switch (option) {\n case 'netex': return 'NeTEx';\n case 'gtfs': return 'GTFS';\n case 'kml': return 'KML';\n case 'geojson': return 'GeoJSON';\n default: return '';\n }\n }}\n value={type}\n onChange={(event, value) => setType(value)}\n label={t('export.dataFormat')}\n className={classes.select}\n />\n {\n (async () => {\n if (!selectedProvider) return;\n setLoading(true);\n try {\n const { data } = await axios.get(`/${selectedProvider.id}/transportData`, {\n params: {\n format: type,\n ...((selectedProvider.id === user.agency && version) ? {\n providerVersion: version.id,\n } : {}),\n },\n responseType: 'arraybuffer',\n });\n fileDownload(\n data,\n `${selectedProvider.id}-${type}.zip`,\n );\n // eslint-disable-next-line no-empty\n } catch {}\n setLoading(false);\n })();\n }}\n className={classes.button}\n disabled={!selectedProvider || !type || loading}\n >\n {t('export.downloadFile')}\n {loading && (\n \n )}\n \n
\n );\n}\n","import React, { Fragment } from 'react';\nimport { makeStyles, Tooltip } from '@material-ui/core';\nimport * as R from 'ramda';\nimport classNames from 'classnames';\nimport { IDepartureTime, IRoute } from '../../interfaces';\n\ninterface Props {\n times: IDepartureTime[];\n from: number;\n to: number;\n routes: IRoute[];\n}\n\nconst useStyles = makeStyles({\n table: {\n borderCollapse: 'collapse',\n marginTop: 60,\n marginLeft: 20,\n },\n cell: {\n border: '1px solid #adadad',\n width: 22,\n height: 22,\n fontSize: 12,\n fontWeight: 400,\n color: '#37001F',\n position: 'relative',\n '&:first-child': {\n borderLeft: 'none',\n width: 14,\n },\n '&:last-child': {\n borderRight: 'none',\n width: 14,\n },\n '&:nth-child(10n + 1)': {\n borderRightWidth: 2,\n },\n },\n row: {\n '&:last-child $cell': {\n borderBottom: 'none',\n },\n },\n hourLabel: {\n position: 'absolute',\n left: -18,\n top: -1,\n transform: 'translateY(-50%)',\n },\n headerCell: {\n borderTop: 0,\n borderBottomWidth: 2,\n height: 8,\n '&:nth-child(10n + 2)::before': {\n content: '\"\"',\n position: 'absolute',\n left: -2,\n top: -32,\n height: 40,\n width: 2,\n backgroundColor: '#adadad',\n },\n },\n minute: {\n position: 'absolute',\n left: -1,\n bottom: 6,\n transform: 'translateX(-50%)',\n },\n minuteTens: {\n position: 'absolute',\n left: 3,\n top: -35,\n fontSize: 16,\n },\n departure: {\n position: 'absolute',\n left: 0,\n bottom: 0,\n },\n route: {\n position: 'absolute',\n left: 0,\n bottom: 1,\n transform: 'translateX(-50%)',\n },\n threeDots: {\n fontSize: 28,\n lineHeight: '36px',\n },\n rhombuses: {\n position: 'absolute',\n bottom: -4,\n display: 'flex',\n },\n rhombus: {\n position: 'relative',\n marginRight: -4,\n width: 8,\n height: 8,\n border: '1px solid #707070',\n transform: 'rotate(45deg)',\n },\n tooltipAnchor: {\n position: 'absolute',\n left: -10,\n bottom: -5,\n width: 20,\n height: 20,\n zIndex: 1,\n },\n tooltip: {\n backgroundColor: '#A1145C',\n marginBottom: 0,\n fontSize: 12,\n },\n color0: {\n backgroundColor: '#81E03C',\n },\n color1: {\n backgroundColor: '#E3C02F',\n },\n color2: {\n backgroundColor: '#3187D0',\n },\n color3: {\n backgroundColor: '#068B62',\n },\n color4: {\n backgroundColor: '#DE8307',\n },\n color5: {\n backgroundColor: '#FA0000',\n },\n color6: {\n backgroundColor: '#CAD0C6',\n },\n color7: {\n backgroundColor: '#3CE0AE',\n },\n color8: {\n backgroundColor: '#D031BE',\n },\n});\n\nexport default function SynchronizationTable({\n times, from, to, routes,\n}: Props) {\n const classes = useStyles();\n const tableRoutes = R.uniq(times.map(R.prop('route')));\n if (from > to) return null;\n return (\n \n \n \n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n \n {R.times(\n (m) => (\n \n ),\n 9,\n )}\n \n ),\n 6,\n )}\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n \n \n \n {R.times(\n (n) => (\n \n \n {R.times(\n (m) => {\n const cellDepartures = times.filter(\n (x) => (\n x.departure === `${String(from + n).padStart(2, '0')}:${String(m).padStart(2, '0')}`\n ),\n ).map((x) => ({\n name: routes.find(R.whereEq({ id: x.route }))!.name,\n id: x.route,\n }));\n return (\n \n );\n },\n 60,\n )}\n \n ),\n to - from + 2,\n )}\n \n
\n {R.times(\n (n) => (\n \n \n
\n {n}\n
\n
\n
\n {m + 1}\n
\n
\n
\n
\n {n !== 0 && String(from + n - 1).padStart(2, '0')}\n
\n
\n {cellDepartures.length > 0 && (\n <>\n
\n {cellDepartures.length === 1\n ? cellDepartures[0].name\n : }\n
\n \n {cellDepartures.map((departure) => (\n \n ))}\n \n {cellDepartures.length > 1 && (\n \n
\n \n )}\n \n )}\n
\n
\n );\n}\n","import React, {\n useContext, useEffect, useRef, useState,\n} from 'react';\nimport {\n Button, Checkbox, FormControlLabel, makeStyles, MenuItem, TextField, Typography,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport moment, { Moment } from 'moment';\nimport * as R from 'ramda';\nimport { std } from 'mathjs';\nimport {\n IDepartureTime, IProvider, IRoute, IScheduleChange, IStopWithRoutes,\n} from '../../interfaces';\nimport { axios } from '../../utils';\nimport CustomAutocomplete from '../../common/CustomAutocomplete';\nimport CustomDatePicker from '../../common/CustomDatePicker';\nimport { ReactComponent as Clear } from '../../assets/clear.svg';\nimport SynchronizationTable from './SynchronizationTable';\nimport { ProviderContext } from '../../context';\nimport VersionInfo from '../VersionInfo';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n },\n top: {\n display: 'flex',\n alignItems: 'flex-start',\n marginBottom: 16,\n },\n left: {\n flexGrow: 1,\n },\n results: {\n width: 550,\n flexShrink: 0,\n },\n header: {\n fontWeight: 400,\n marginBottom: 16,\n color: '#37001F',\n },\n field: {\n width: 300,\n marginRight: 24,\n },\n stop: {\n width: 400,\n marginRight: 24,\n },\n datePicker: {\n width: 240,\n marginRight: 24,\n },\n row: {\n display: 'flex',\n marginBottom: 16,\n },\n hourFrom: {\n width: 130,\n marginRight: 24,\n },\n hourTo: {\n width: 130,\n },\n routes: {\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n marginBottom: 4,\n },\n routesLabel: {\n margin: '14px 24px 14px 0',\n color: '#37001F',\n },\n route: {\n margin: 4,\n fontSize: 24,\n fontWeight: 400,\n padding: '1px 18px',\n borderRadius: 15,\n },\n resultRow: {\n display: 'flex',\n marginBottom: 4,\n },\n resultLabel: {\n width: 260,\n color: '#37001F',\n marginRight: 16,\n },\n bottom: {\n backgroundColor: '#F5F5F5',\n padding: 16,\n margin: '0 -16px',\n },\n table: {\n backgroundColor: 'white',\n borderCollapse: 'collapse',\n },\n headerCell: {\n padding: '8px 12px',\n fontWeight: 400,\n color: '#37001F',\n border: '1px solid #37001F',\n textAlign: 'left',\n },\n cell: {\n padding: '8px 12px',\n color: '#37001F',\n border: '1px solid #37001F',\n },\n routeSelect: {\n width: 80,\n },\n timeSelects: {\n display: 'flex',\n alignItems: 'center',\n },\n tableTimeSelect: {\n width: 70,\n },\n colon: {\n margin: '0 8px',\n },\n intervalMin: {\n marginLeft: 8,\n },\n clear: {\n margin: '0 8px 0 24px',\n },\n delete: {\n padding: 0,\n minWidth: 0,\n borderRadius: '50%',\n marginLeft: 'auto',\n marginRight: 8,\n },\n positive: {\n color: '#C82727',\n },\n negative: {\n color: '#12A72F',\n },\n resultValue: {\n width: 120,\n display: 'inline-block',\n },\n});\n\nexport default function Synchronization() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { providers, version, user } = useContext(ProviderContext);\n const [selectedProvider, setSelectedProvider] = useState(null);\n const [stops, setStops] = useState([]);\n const [routes, setRoutes] = useState([]);\n const [selectedStop, setSelectedStop] = useState(null);\n const [date, setDate] = useState(moment());\n const [from, setFrom] = useState('6:00');\n const [to, setTo] = useState('18:00');\n const [selectedRoutes, setSelectedRoutes] = useState([]);\n const [departureTimes, setDepartureTimes] = useState([]);\n const [wheelchair, setWheelchair] = useState(false);\n const lastId = useRef(0);\n useEffect(() => {\n setSelectedProvider(null);\n setStops([]);\n setRoutes([]);\n setSelectedStop(null);\n setDate(moment());\n setFrom('6:00');\n setTo('18:00');\n setSelectedRoutes([]);\n setDepartureTimes([]);\n setWheelchair(false);\n }, [version]);\n const newRow = {\n route: '',\n fromHour: null,\n fromMinute: null,\n toHour: null,\n toMinute: null,\n firstTripHour: null,\n firstTripMinute: null,\n interval: null,\n new: true,\n };\n const [scheduleChanges, setScheduleChanges] = useState(\n [{ ...newRow, id: lastId.current }],\n );\n const hourOptions = Array(25).fill(null).map((x, i) => (\n `${String(i)}:00`\n ));\n const selectedTimes = departureTimes.filter((x) => (\n selectedRoutes.includes(x.route) && from && to\n && moment(x.departure, 'H:m').isBetween(moment(from, 'H:s'), moment(to, 'H:s'))\n && (!wheelchair || x.wheelchairAccessible)\n ));\n const getAverage = (arr: number[]) => Math.round(R.sum(arr) / arr.length) / 2;\n const getDiffs = (arr: IDepartureTime[]) => R.tail(arr).map((x, i) => (\n moment(x.departure, 'H:m').diff(moment(arr[i].departure, 'H:m'), 'seconds')\n ));\n const getResults = (times: IDepartureTime[]) => {\n const uniqTimes = R.uniqBy(R.prop('departure'), times);\n const averageWait = getAverage(getDiffs(uniqTimes));\n return {\n average: moment.duration(averageWait, 'seconds'),\n std: moment.duration(times.length > 1 ? std(getDiffs(times)) : NaN, 'seconds'),\n overlapping: times.length - uniqTimes.length,\n };\n };\n\n let changedTimes = R.clone(selectedTimes);\n scheduleChanges.forEach((scheduleChange) => {\n if (!scheduleChange.route || !selectedRoutes.includes(scheduleChange.route)) return;\n const firstTrip = moment({\n hour: Number(scheduleChange.firstTripHour),\n minute: Number(scheduleChange.firstTripMinute),\n });\n if (scheduleChange.interval) {\n changedTimes = changedTimes\n .filter((time) => (\n time.route !== scheduleChange.route\n || !moment(time.departure, 'H:m').isBetween(\n moment({\n hour: Number(scheduleChange.fromHour),\n minute: Number(scheduleChange.fromMinute),\n }),\n moment({\n hour: Number(scheduleChange.toHour),\n minute: Number(scheduleChange.toMinute),\n }),\n undefined,\n '[]',\n )\n ))\n .concat(R.unfold(\n (time) => {\n if (time.isSameOrBefore(moment({\n hour: Number(scheduleChange.toHour),\n minute: Number(scheduleChange.toMinute),\n }))) {\n return [\n {\n route: scheduleChange.route,\n departure: time.format('HH:mm'),\n wheelchairAccessible: true,\n },\n time.clone().add(Number(scheduleChange.interval), 'minutes'),\n ];\n }\n return false;\n },\n firstTrip,\n ));\n } else {\n const originalFirstTrip = changedTimes.find(R.whereEq({ route: scheduleChange.route }));\n if (!originalFirstTrip) return;\n const diff = firstTrip.diff(moment(originalFirstTrip!.departure, 'H:m'), 'minutes');\n changedTimes = changedTimes.map((x) => (\n x.route === scheduleChange.route ? {\n ...x,\n departure: moment(x.departure, 'H:m').add(diff, 'minutes').format('HH:mm'),\n } : x\n ));\n }\n });\n changedTimes = R.sort(R.ascend(R.prop('departure')), changedTimes);\n\n const results = getResults(selectedTimes);\n const changedResults = getResults(changedTimes);\n const resultsDiff = {\n average: changedResults.average.clone().subtract(results.average),\n std: changedResults.std.clone().subtract(results.std),\n overlapping: changedResults.overlapping - results.overlapping,\n };\n\n const tableHourOptions = Array(24).fill(null).map((x, i) => String(i));\n const tableMinuteOptions = Array(60).fill(null).map((x, i) => String(i).padStart(2, '0'));\n const intervalOptions = Array(90).fill(null).map((x, i) => String(i + 1));\n const commonSelectProps = {\n getOptionLabel: R.identity,\n className: classes.tableTimeSelect,\n noAdornment: true,\n disableClearable: true,\n };\n const getDepartureTimes = async (\n currentStop: IStopWithRoutes,\n currentDate: Moment,\n currentFrom: string,\n currentTo: string,\n ) => {\n if (!selectedProvider) return;\n const { data } = await axios.get(`/${selectedProvider.id}/stop/${currentStop.id}/departures`, {\n params: {\n date: currentDate.format('YYYY-MM-DD'),\n from: moment(currentFrom, 'H:m').format('HH:mm'),\n to: moment(currentTo, 'H:m').subtract(1, 'minute').format('HH:mm'),\n ...((selectedProvider.id === user.agency && version)\n ? { providerVersion: version.id }\n : {}),\n },\n });\n setDepartureTimes(data);\n };\n return (\n
\n
\n
\n \n \n {t('synchronization.defineSegment')}\n \n
\n {\n setSelectedProvider(value);\n setSelectedStop(null);\n setSelectedRoutes([]);\n setScheduleChanges([{ ...newRow, id: lastId.current }]);\n if (value) {\n const options = (version && value.id === user.agency)\n ? { params: { providerVersion: version.id } }\n : {};\n const [\n { data },\n { data: newRoutes },\n ] = await Promise.all([\n axios.get(`/${value.id}/stops`, options),\n axios.get(`/${value.id}/routes`, options),\n ]);\n setStops(data);\n setRoutes(newRoutes);\n }\n }}\n label={t('export.dataSource')}\n className={classes.field}\n getOptionLabel={R.prop('name')}\n />\n {\n setSelectedStop(value);\n setScheduleChanges([{ ...newRow, id: lastId.current }]);\n if (value && selectedProvider && from && to) {\n setSelectedRoutes(value.routes);\n getDepartureTimes(value, date, from, to);\n }\n }}\n label={t('synchronization.stop')}\n className={classes.stop}\n getOptionLabel={R.prop('name')}\n />\n
\n
\n \n {t('synchronization.routes')}\n \n {selectedStop && selectedStop.routes.map((id) => (\n setSelectedRoutes(\n selectedRoutes.includes(id)\n ? selectedRoutes.filter((x) => x !== id)\n : [...selectedRoutes, id],\n )}\n className={classes.route}\n >\n {routes.find(R.whereEq({ id }))!.name}\n \n ))}\n
\n setWheelchair(target.checked)}\n color=\"primary\"\n />\n )}\n label={t('synchronization.wheelchair')}\n />\n
\n
\n \n {t('synchronization.parameters')}\n \n
\n {\n if (newDate) {\n setDate(newDate);\n if (selectedStop && from && to) {\n getDepartureTimes(selectedStop, newDate, from, to);\n }\n }\n }}\n className={classes.datePicker}\n label={t('synchronization.date')}\n format=\"dddd, DD.MM.Y\"\n />\n {\n setFrom(value);\n if (selectedStop && value && to) {\n getDepartureTimes(selectedStop, date, value, to);\n }\n }}\n className={classes.hourFrom}\n label={t('synchronization.from')}\n noAdornment\n />\n {\n setTo(value);\n if (selectedStop && from && value) {\n getDepartureTimes(selectedStop, date, from, value);\n }\n }}\n className={classes.hourTo}\n label={t('synchronization.to')}\n noAdornment\n />\n
\n
\n \n {t('synchronization.average')}\n \n \n \n {changedResults.average.minutes() > 0 && (\n <>\n {changedResults.average.minutes()}\n {' '}\n {t('synchronization.min')}\n {' '}\n \n )}\n {changedResults.average.seconds() > 0 && (\n <>\n {changedResults.average.seconds()}\n {' '}\n {t('synchronization.sec')}\n \n )}\n \n {(!Number.isNaN(resultsDiff.average.asSeconds())\n && resultsDiff.average.asSeconds() !== 0) && (\n 0 ? classes.positive : classes.negative\n }\n data-testid=\"average-diff\"\n >\n {' '}\n [\n {resultsDiff.average.asSeconds() > 0 ? '+' : '-'}\n {resultsDiff.average.minutes() !== 0 && (\n <>\n {Math.abs(resultsDiff.average.minutes())}\n {' '}\n {t('synchronization.min')}\n {' '}\n \n )}\n {resultsDiff.average.seconds() !== 0 && (\n <>\n {Math.abs(resultsDiff.average.seconds())}\n {' '}\n {t('synchronization.sec')}\n \n )}\n ]\n \n )}\n \n
\n
\n \n {t('synchronization.deviation')}\n \n \n \n {changedResults.std.minutes() > 0 && (\n <>\n {changedResults.std.minutes()}\n {' '}\n {t('synchronization.min')}\n {' '}\n \n )}\n {!Number.isNaN(changedResults.std.seconds()) && (\n <>\n {changedResults.std.seconds()}\n {' '}\n {t('synchronization.sec')}\n \n )}\n \n {(!Number.isNaN(resultsDiff.std.asSeconds())\n && resultsDiff.std.asSeconds() !== 0) && (\n 0 ? classes.positive : classes.negative\n }\n >\n {' '}\n [\n {resultsDiff.std.asSeconds() > 0 ? '+' : '-'}\n {resultsDiff.std.minutes() !== 0 && (\n <>\n {Math.abs(resultsDiff.std.minutes())}\n {' '}\n {t('synchronization.min')}\n {' '}\n \n )}\n {resultsDiff.std.seconds() !== 0 && (\n <>\n {Math.abs(resultsDiff.std.seconds())}\n {' '}\n {t('synchronization.sec')}\n \n )}\n ]\n \n )}\n \n
\n
\n \n {t('synchronization.overlapping')}\n \n \n \n {selectedTimes.length > 1 && String(changedResults.overlapping)}\n \n {resultsDiff.overlapping !== 0 && (\n 0 ? classes.positive : classes.negative\n }\n >\n {' '}\n [\n {resultsDiff.overlapping > 0 ? '+' : '-'}\n {Math.abs(resultsDiff.overlapping)}\n ]\n \n )}\n \n
\n
\n
\n
\n \n {t('synchronization.modifySchedule')}\n \n \n \n \n \n \n \n \n \n \n \n \n {scheduleChanges.map((x) => {\n const update = (newChange: Partial) => setScheduleChanges(R.map(\n (y) => (y.id === x.id ? { ...y, ...newChange } : y),\n ));\n return (\n \n \n \n \n \n \n \n );\n })}\n \n
\n {t('synchronization.route')}\n \n {t('synchronization.from')}\n \n {t('synchronization.to')}\n \n {t('synchronization.firstTrip')}\n \n {t('synchronization.interval')}\n
\n {\n let fromHour = null;\n let fromMinute = null;\n const firstDeparture = R.find((y) => y.route === value, selectedTimes);\n if (firstDeparture) {\n const [hour, minute] = firstDeparture.departure.split(':');\n fromHour = String(Number(hour));\n fromMinute = minute;\n }\n let toHour = null;\n let toMinute = null;\n const lastDeparture = R.findLast((y) => y.route === value, selectedTimes);\n if (lastDeparture) {\n const [hour, minute] = lastDeparture.departure.split(':');\n toHour = String(Number(hour));\n toMinute = minute;\n }\n const routeDepartures = R.filter((y) => y.route === value, selectedTimes);\n const diffs = getDiffs(routeDepartures);\n let interval = null;\n if (diffs[0] && diffs.every(R.equals(diffs[0]))) {\n interval = String(diffs[0] / 60);\n }\n update({\n route: value,\n fromHour,\n fromMinute,\n toHour,\n toMinute,\n firstTripHour: fromHour,\n firstTripMinute: fromMinute,\n interval,\n });\n }}\n variant=\"outlined\"\n size=\"small\"\n className={classes.routeSelect}\n data-testid=\"modify-route\"\n >\n {selectedRoutes.map((id) => (\n \n {routes.find(R.whereEq({ id }))!.name}\n \n ))}\n \n \n
\n update({ fromHour: value })}\n TextFieldProps={{ inputProps: { 'data-testid': 'modify-from-hour' } }}\n {...commonSelectProps}\n />\n \n :\n \n update({ fromMinute: value })}\n TextFieldProps={{ inputProps: { 'data-testid': 'modify-from-minute' } }}\n {...commonSelectProps}\n />\n
\n
\n
\n update({ toHour: value })}\n TextFieldProps={{ inputProps: { 'data-testid': 'modify-to-hour' } }}\n {...commonSelectProps}\n />\n \n :\n \n update({ toMinute: value })}\n TextFieldProps={{ inputProps: { 'data-testid': 'modify-to-minute' } }}\n {...commonSelectProps}\n />\n
\n
\n
\n update({ firstTripHour: value })}\n TextFieldProps={{ inputProps: { 'data-testid': 'modify-first-hour' } }}\n {...commonSelectProps}\n />\n \n :\n \n update({ firstTripMinute: value })}\n TextFieldProps={{ inputProps: { 'data-testid': 'modify-first-minute' } }}\n {...commonSelectProps}\n />\n
\n
\n
\n update({ interval: value })}\n TextFieldProps={{ inputProps: { 'data-testid': 'modify-interval' } }}\n {...commonSelectProps}\n />\n \n {t('synchronization.min')}\n .\n \n {x.new ? (\n <>\n update(newRow)}\n >\n {t('synchronization.clear')}\n \n {\n lastId.current += 1;\n setScheduleChanges(\n R.prepend({ ...newRow, id: lastId.current }, R.map(\n (y) => (y.id === x.id ? { ...y, new: false } : y),\n scheduleChanges,\n )),\n );\n }}\n >\n {t('synchronization.add')}\n \n \n ) : (\n setScheduleChanges(\n R.filter((y) => y.id !== x.id),\n )}\n >\n \n \n )}\n
\n
\n {from && to && (\n \n )}\n
\n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18,31l5.421,5.751L29,31\",\n transform: \"translate(-17.636 -30.652)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n});\n\nvar SvgChevronPrimary = function SvgChevronPrimary(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 11.723,\n height: 6.823,\n viewBox: \"0 0 11.723 6.823\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgChevronPrimary, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/chevron-primary.ddca6259.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-1147 -780)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(909 481)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 0.864,\n transform: \"translate(246.459 299) rotate(90)\",\n fill: \"#37001f\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 0.864,\n transform: \"translate(238 306.622)\",\n fill: \"#37001f\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 0.864,\n transform: \"translate(1147 801.496)\",\n fill: \"#37001f\"\n}));\n\nvar SvgPlusMinus = function SvgPlusMinus(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 22.36,\n viewBox: \"0 0 16 22.36\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPlusMinus, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/plus-minus.bf35bbfa.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useContext, useEffect, useState } from 'react';\nimport {\n Button, IconButton, makeStyles, TextField, Typography,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport moment, { Moment } from 'moment';\nimport natsort from 'natsort';\nimport * as R from 'ramda';\nimport classNames from 'classnames';\nimport CustomDatePicker from '../../common/CustomDatePicker';\nimport { ProviderContext } from '../../context';\nimport CustomAutocomplete from '../../common/CustomAutocomplete';\nimport {\n IDataVersion,\n IProvider, IRoute, IStopTransfers, ITrip,\n} from '../../interfaces';\nimport { axios } from '../../utils';\nimport { getRouteData } from '../common';\nimport { ReactComponent as ChevronPrimary } from '../../assets/chevron-primary.svg';\nimport { ReactComponent as PlusMinus } from '../../assets/plus-minus.svg';\nimport VersionInfo from '../VersionInfo';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n },\n datePicker: {\n width: 200,\n marginBottom: 32,\n },\n header: {\n fontSize: 18,\n fontWeight: 400,\n marginBottom: 16,\n },\n fromContainer: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 16,\n },\n from: {\n width: 40,\n marginRight: 8,\n textAlign: 'right',\n },\n provider: {\n width: 230,\n marginRight: 16,\n },\n route: {\n width: 150,\n marginRight: 16,\n },\n trip: {\n width: 300,\n },\n toContainer: {\n display: 'flex',\n marginBottom: 16,\n minHeight: 54,\n },\n toRoutes: {\n width: 65,\n textAlign: 'right',\n margin: '15px 16px 0 0',\n flexShrink: 0,\n },\n routes: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n routeButton: {\n margin: 4,\n fontSize: 24,\n fontWeight: 400,\n padding: '1px 18px',\n borderRadius: 15,\n },\n buttonContained: {\n border: '1px solid transparent',\n },\n main: {\n backgroundColor: '#F5F5F5',\n padding: 16,\n margin: '0 -16px',\n },\n tableControls: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n width: 800,\n },\n minTransferContainer: {\n display: 'flex',\n alignItems: 'center',\n },\n minTransferLabel: {\n marginRight: 16,\n fontSize: 18,\n color: '#37001F',\n },\n minTransfer: {\n width: 110,\n },\n changeDepartureTop: {\n display: 'flex',\n alignItems: 'center',\n },\n changeDepartureLabel: {\n marginRight: 8,\n fontSize: 18,\n color: '#37001F',\n },\n changeDepartureTime: {\n width: 100,\n },\n changeDepartureButton: {\n padding: 8,\n margin: 4,\n },\n minus: {\n width: 16,\n height: 16,\n position: 'relative',\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n left: 0,\n top: '50%',\n width: '100%',\n height: 1,\n transform: 'translateY(-50%)',\n backgroundColor: '#A1145C',\n },\n },\n plus: {\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n left: '50%',\n top: 0,\n width: 1,\n height: '100%',\n transform: 'translateX(-50%)',\n backgroundColor: '#A1145C',\n },\n },\n resetButton: {\n display: 'flex',\n padding: '4px 8px',\n margin: '4px 40px 0 auto',\n },\n bottom: {\n display: 'flex',\n alignItems: 'flex-start',\n margin: '16px 0',\n },\n table: {\n borderCollapse: 'collapse',\n backgroundColor: 'white',\n border: '1px solid #37001F',\n textAlign: 'center',\n },\n headerRow: {\n border: '1px solid #37001F',\n },\n cell: {\n padding: '8px 12px',\n color: '#37001F',\n fontWeight: 300,\n },\n patternCell: {\n textAlign: 'left',\n },\n arrivalCell: {\n border: '0 solid #37001F',\n borderWidth: '0 1px',\n },\n headerCell: {\n fontWeight: 400,\n '&:nth-child(1)': {\n width: 330,\n },\n '&:nth-child(2)': {\n width: 80,\n },\n '&:nth-child(3)': {\n width: 90,\n },\n '&:nth-child(4)': {\n width: 90,\n },\n '&:nth-child(5)': {\n width: 100,\n },\n '&:nth-child(6)': {\n width: 100,\n },\n },\n evenRow: {\n backgroundColor: '#F5F5F5',\n },\n positive: {\n color: '#C82727',\n },\n negative: {\n color: '#12A72F',\n },\n expandButton: {\n width: 28,\n height: 28,\n padding: 8,\n },\n chevronFlipped: {\n transform: 'rotate(180deg)',\n },\n tableRoute: {\n backgroundColor: 'white',\n padding: '1px 9px',\n border: '1px solid',\n borderRadius: 10,\n fontSize: 20,\n fontWeight: 400,\n },\n patternContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n averageRow: {\n border: '1px solid #37001F',\n fontSize: 18,\n },\n averageLabel: {\n textAlign: 'right',\n },\n optimizeContainer: {\n marginLeft: 32,\n width: 460,\n padding: '40px 30px',\n backgroundColor: 'white',\n borderRadius: 4,\n },\n optimizeRow: {\n fontSize: 18,\n margin: '4px 0',\n },\n optimizeLabel: {\n display: 'inline-block',\n width: 200,\n },\n optimizeValue: {\n display: 'inline-block',\n width: 110,\n },\n optimizeArrivalRow: {\n display: 'flex',\n alignItems: 'center',\n margin: '16px 0',\n },\n optimizeArrivalLabel: {\n display: 'inline-block',\n width: 150,\n },\n optimizeArrivalValue: {\n display: 'inline-block',\n width: 60,\n },\n plusMinus: {\n marginRight: 8,\n },\n offset: {\n width: 110,\n },\n minuteInput: {\n paddingRight: '36px !important',\n },\n optimize: {\n display: 'flex',\n marginLeft: 'auto',\n marginTop: 16,\n },\n});\n\nconst sorter = natsort();\n\nconst formatDuration = (totalMinutes: number) => {\n const hours = Math.floor(totalMinutes / 60);\n const minutes = totalMinutes % 60;\n return `${hours > 0 ? `${hours} h ` : ''}${minutes > 0 ? `${minutes} min` : ''}`.trim();\n};\n\nexport default function RouteTransfers() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { providers, version, user } = useContext(ProviderContext);\n const [date, setDate] = useState(moment());\n const [selectedProvider, setSelectedProvider] = useState(null);\n const [routes, setRoutes] = useState([]);\n const [fromRoute, setFromRoute] = useState(null);\n const [trips, setTrips] = useState([]);\n const [selectedTrip, setSelectedTrip] = useState(null);\n const [stopTransfers, setStopTransfers] = useState([]);\n const [toRoutes, setToRoutes] = useState([]);\n const [minTransfer, setMinTransfer] = useState(3);\n const [arrivalDelta, setArrivalDelta] = useState(0);\n const [expandedRows, setExpandedRows] = useState>({});\n const [offset, setOffset] = useState(10);\n const [prevVersion, setPrevVersion] = useState(version);\n useEffect(() => {\n setSelectedProvider(null);\n setRoutes([]);\n setFromRoute(null);\n setTrips([]);\n setSelectedTrip(null);\n setStopTransfers([]);\n setToRoutes([]);\n setMinTransfer(3);\n setArrivalDelta(0);\n setExpandedRows({});\n setOffset(10);\n setPrevVersion(version);\n }, [version]);\n useEffect(() => {\n (async () => {\n if (selectedProvider && fromRoute && version === prevVersion) {\n const data = await getRouteData(\n selectedProvider.id,\n date,\n fromRoute.id,\n selectedProvider.id === user?.agency ? version : undefined,\n );\n setTrips(data.trips);\n }\n })();\n }, [date, fromRoute, selectedProvider, version, user, prevVersion]);\n const getRoutes = (currentStopTransfers: IStopTransfers[]) => (\n R.uniqBy(R.prop('id'), R.chain(\n (x) => x.departures.map(({ route }) => (\n routes.find(R.whereEq({ id: route }))\n )),\n currentStopTransfers,\n ).filter((x): x is IRoute => x !== undefined))\n .sort((a, b) => sorter(a.name, b.name))\n );\n const tableData = selectedTrip ? stopTransfers.map((stopTransfer) => {\n const key = `${stopTransfer.stop}-${stopTransfer.arrival}`;\n const stop = selectedTrip.stops.find(R.whereEq({ id: stopTransfer.stop }))!.name;\n const arrival = moment(stopTransfer.arrival, 'H:m').add(arrivalDelta, 'minutes');\n const departures = stopTransfer.departures.filter(\n (departure) => toRoutes.includes(departure.route),\n ).map((departure) => {\n const route = routes.find(R.whereEq({ id: departure.route }))!.name;\n const time = departure.departures.find((x) => (\n moment(x, 'H:m').isSameOrAfter(moment(arrival).add(minTransfer, 'minutes'))\n ));\n const originalTime = departure.departures.find((x) => (\n moment(x, 'H:m').isSameOrAfter(moment(stopTransfer.arrival, 'H:m').add(minTransfer, 'minutes'))\n ));\n const transferTime = time ? moment(time, 'H:m').diff(arrival, 'minutes') : null;\n const originalTransferTime = originalTime ? moment(originalTime, 'H:m')\n .diff(moment(stopTransfer.arrival, 'H:m'), 'minutes') : null;\n const diff = (transferTime !== null && originalTransferTime !== null)\n ? transferTime - originalTransferTime\n : null;\n return {\n route,\n time,\n transferTime,\n originalTransferTime,\n diff,\n };\n });\n return {\n key,\n stop,\n arrival: arrival.format('HH:mm'),\n departures,\n };\n }) : null;\n const getAverage = (xs: number[]) => Math.round(R.sum(xs) / xs.length);\n const transferTimes = tableData ? R.chain(\n (x) => x.departures.map(R.prop('transferTime')).filter((y): y is number => y !== null),\n tableData,\n ) : null;\n const originalTimes = tableData ? R.chain(\n (x) => x.departures.map(R.prop('originalTransferTime')).filter((y): y is number => y !== null),\n tableData,\n ) : null;\n const average = transferTimes ? getAverage(transferTimes) : null;\n const originalAverage = originalTimes ? getAverage(originalTimes) : null;\n const averageDiff = (average && originalAverage) ? average - originalAverage : null;\n const max = transferTimes ? R.reduce((a, b) => R.max(a, b), 0, transferTimes) : null;\n const originalMax = originalTimes ? R.reduce((a, b) => R.max(a, b), 0, originalTimes) : null;\n const maxDiff = (max && originalMax) ? max - originalMax : null;\n return (\n
\n \n {\n if (newDate) {\n setDate(newDate);\n setSelectedTrip(null);\n setTrips([]);\n setStopTransfers([]);\n setToRoutes([]);\n setExpandedRows({});\n setArrivalDelta(0);\n }\n }}\n className={classes.datePicker}\n label={t('synchronization.date')}\n />\n \n {t('routeTransfers.transfer')}\n \n
\n \n {t('routeTransfers.from')}\n \n {\n setSelectedProvider(value);\n setFromRoute(null);\n setSelectedTrip(null);\n setRoutes([]);\n setTrips([]);\n setStopTransfers([]);\n setToRoutes([]);\n setExpandedRows({});\n setArrivalDelta(0);\n if (value) {\n const { data }: { data: IRoute[] } = await axios.get(`/${value.id}/routes`, {\n params: (version && value.id === user.agency)\n ? { providerVersion: version.id }\n : {},\n });\n setRoutes(data.sort((a, b) => sorter(a.name, b.name)));\n }\n }}\n label={t('export.dataSource')}\n className={classes.provider}\n getOptionLabel={R.prop('name')}\n />\n {\n setFromRoute(value);\n setSelectedTrip(null);\n setTrips([]);\n setStopTransfers([]);\n setToRoutes([]);\n setExpandedRows({});\n setArrivalDelta(0);\n }}\n label={t('common.route')}\n className={classes.route}\n getOptionLabel={R.prop('name')}\n />\n `${R.slice(0, 5, stops[0].arrival)} ${stops[0].name}`}\n value={selectedTrip}\n onChange={async (event, value) => {\n setSelectedTrip(value);\n setStopTransfers([]);\n setToRoutes([]);\n setExpandedRows({});\n setArrivalDelta(0);\n if (selectedProvider && value) {\n const { data } = await axios.get(`/${selectedProvider.id}/routes/transfers`, {\n params: {\n trip: value.id,\n date: date.format('YYYY-MM-DD'),\n transferTime: minTransfer,\n offset,\n ...((version && selectedProvider.id === user.agency)\n ? { providerVersion: version.id }\n : {}),\n },\n });\n setStopTransfers(data);\n setToRoutes(getRoutes(data).map(R.prop('id')));\n setExpandedRows({});\n }\n }}\n label={t('routeTransfers.firstStopDeparture')}\n className={classes.trip}\n />\n
\n
\n \n {t('routeTransfers.toRoutes')}\n \n
\n {getRoutes(stopTransfers).map((route) => (\n setToRoutes(\n toRoutes.includes(route.id)\n ? toRoutes.filter((x) => x !== route.id)\n : [...toRoutes, route.id],\n )}\n className={classes.routeButton}\n classes={{\n contained: classes.buttonContained,\n }}\n >\n {route.name}\n \n ))}\n
\n
\n
\n
\n
\n \n {t('routeTransfers.minTransfer')}\n \n n + 1, 15)}\n getOptionLabel={(x) => `${x} ${t('synchronization.min')}.`}\n value={minTransfer}\n onChange={(event, value) => {\n if (value) {\n setMinTransfer(value);\n }\n }}\n noAdornment\n disableClearable\n className={classes.minTransfer}\n TextFieldProps={{\n InputProps: {\n classes: { root: classes.minuteInput },\n },\n }}\n />\n
\n
\n
\n \n {t('routeTransfers.changeDeparture')}\n :\n {' '}\n {tableData && tableData.length > 0 && tableData[0].arrival}\n \n setArrivalDelta(arrivalDelta - 1)}\n >\n
\n \n = 0 ? '+' : '-'} ${Math.abs(arrivalDelta)} ${t('synchronization.min')}.`}\n InputProps={{ readOnly: true }}\n inputProps={{ // eslint-disable-line react/jsx-no-duplicate-props\n 'data-testid': 'change-departure',\n }}\n className={classes.changeDepartureTime}\n variant=\"outlined\"\n size=\"small\"\n />\n setArrivalDelta(arrivalDelta + 1)}\n >\n
\n \n
\n setArrivalDelta(0)}\n >\n {t('routeTransfers.reset')}\n \n
\n
\n {tableData && tableData.length > 0 && (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n {tableData.map((x, i) => {\n const departureRows = x.departures.map((departure) => (\n <>\n \n \n \n \n \n ));\n return (\n <>\n \n \n \n {departureRows[0] ? departureRows[0] : (\n <>\n \n {expandedRows[i] && R.tail(departureRows).map((cells, j) => (\n \n \n ))}\n \n );\n })}\n \n \n \n \n \n \n \n \n
\n {t('routeTransfers.pattern')}\n \n {t('routeTransfers.arrival')}\n \n {t('common.route')}\n \n {t('routeTransfers.departure')}\n \n {t('routeTransfers.transferTime')}\n \n {t('routeTransfers.difference')}\n
\n \n {departure.route}\n \n \n {departure.time || '-'}\n \n {departure.transferTime || '-'}\n \n {departure.diff ? (\n 0 ? classes.positive : classes.negative}\n >\n {departure.diff > 0 ? '+' : '-'}\n {Math.abs(departure.diff)}\n \n ) : '-'}\n \n
\n {x.stop}\n {x.departures.length > 1 && (\n setExpandedRows(\n R.over(R.lensProp(String(i)), R.not),\n )}\n >\n \n \n )}\n
\n
\n {x.arrival}\n \n \n \n \n \n )}\n
\n \n {cells}\n
\n {t('routeTransfers.averageTransferTime')}\n :\n \n {average ? formatDuration(average) : null}\n \n {averageDiff ? (\n 0 ? classes.positive : classes.negative}>\n [\n {averageDiff > 0 ? '+' : '-'}\n {Math.abs(averageDiff)}\n {' '}\n {t('synchronization.min')}\n ]\n \n ) : null}\n
\n
\n \n \n {t('routeTransfers.averageTransferTime')}\n \n \n {average ? formatDuration(average) : null}\n \n {averageDiff ? (\n 0 ? classes.positive : classes.negative}>\n [\n {averageDiff > 0 ? '+' : '-'}\n {Math.abs(averageDiff)}\n {' '}\n {t('synchronization.min')}\n ]\n \n ) : null}\n \n \n \n {t('routeTransfers.longestTransfer')}\n \n \n {max ? formatDuration(max) : null}\n \n {maxDiff ? (\n 0 ? classes.positive : classes.negative}>\n [\n {maxDiff > 0 ? '+' : '-'}\n {Math.abs(maxDiff)}\n {' '}\n {t('synchronization.min')}\n ]\n \n ) : null}\n \n
\n \n \n {t('routeTransfers.departureTime')}\n \n \n {tableData[0].arrival}\n \n \n \n n + 1, 30)}\n getOptionLabel={(x) => `${x} ${t('synchronization.min')}.`}\n value={offset}\n onChange={(event, value) => {\n if (value) {\n setOffset(value);\n }\n }}\n noAdornment\n disableClearable\n className={classes.offset}\n TextFieldProps={{\n InputProps: {\n classes: { root: classes.minuteInput },\n },\n }}\n />\n
\n {\n if (!selectedProvider || !selectedTrip) return;\n const { data } = await axios.get(`/${selectedProvider.id}/routes/transfers/optimize`, {\n params: {\n trip: selectedTrip.id,\n date: date.format('YYYY-MM-DD'),\n transferTime: minTransfer,\n offset,\n routes: toRoutes.join(','),\n ...((version && selectedProvider.id === user.agency)\n ? { providerVersion: version.id }\n : {}),\n },\n });\n setArrivalDelta(data);\n }}\n >\n {t('routeTransfers.optimize')}\n \n
\n
\n )}\n
\n
\n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport {\n Button,\n InputAdornment,\n makeStyles, MenuItem, TextField, Typography,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport * as R from 'ramda';\nimport moment, { Moment } from 'moment';\nimport classNames from 'classnames';\nimport natsort from 'natsort';\nimport CustomDatePicker from '../../common/CustomDatePicker';\nimport CustomAutocomplete from '../../common/CustomAutocomplete';\nimport { axios } from '../../utils';\nimport {\n IDataVersion, IProvider, IRoute, IStopWithRoutes,\n} from '../../interfaces';\nimport { ProviderContext } from '../../context';\nimport { ReactComponent as ChevronWhite } from '../../assets/chevron-white.svg';\nimport VersionInfo from '../VersionInfo';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n },\n dateAndTime: {\n display: 'flex',\n marginBottom: 24,\n },\n datePicker: {\n width: 240,\n marginRight: 24,\n },\n hourFrom: {\n width: 130,\n marginRight: 24,\n },\n hourTo: {\n width: 130,\n },\n header: {\n fontSize: 18,\n fontWeight: 400,\n color: '#37001F',\n marginBottom: 16,\n },\n from: {\n display: 'flex',\n alignItems: 'center',\n padding: '16px 0',\n marginBottom: 16,\n backgroundColor: '#F5F5F5',\n },\n to: {\n display: 'flex',\n alignItems: 'center',\n },\n modifyDepartures: {\n display: 'flex',\n paddingTop: 28,\n },\n label: {\n width: 40,\n textAlign: 'right',\n marginRight: 8,\n },\n field: {\n width: 230,\n marginRight: 16,\n },\n route: {\n width: 140,\n marginRight: 16,\n },\n tableLabel: {\n width: 80,\n textAlign: 'right',\n color: '#38001F',\n marginRight: 16,\n marginLeft: 'auto',\n },\n main: {\n display: 'flex',\n },\n table: {\n borderCollapse: 'collapse',\n },\n cell: {\n padding: 12,\n height: 72,\n border: '1px solid #37001F',\n color: '#37001F',\n textAlign: 'center',\n whiteSpace: 'nowrap',\n position: 'relative',\n },\n arrivalCell: {\n backgroundColor: '#F5F5F5',\n },\n shortTransfer: {\n backgroundColor: '#FB4A4A',\n color: 'white',\n },\n minTransferTime: {\n width: 200,\n marginTop: 32,\n },\n resultRow: {\n margin: '8px 0',\n fontSize: 20,\n color: '#37001F',\n },\n resultLabel: {\n display: 'inline-block',\n width: 280,\n },\n resultValue: {\n display: 'inline-block',\n width: 110,\n },\n positive: {\n color: '#C82727',\n },\n negative: {\n color: '#12A72F',\n },\n shortTransfersRow: {\n margin: '4px -8px',\n padding: '4px 8px',\n borderRadius: 4,\n display: 'inline-block',\n backgroundColor: '#FB4A4A',\n color: 'white',\n fontSize: 20,\n },\n firstTrip: {\n width: 140,\n marginRight: 24,\n },\n firstTripInput: {\n paddingLeft: '14px !important',\n },\n firstTripAdornment: {\n marginTop: 2,\n marginRight: 0,\n },\n interval: {\n width: 150,\n marginRight: 16,\n },\n modifyFields: {\n display: 'flex',\n },\n pageButton: {\n minWidth: 20,\n width: 20,\n height: 20,\n borderRadius: '50%',\n padding: 0,\n position: 'absolute',\n top: '50%',\n zIndex: 2,\n '&$pageButtonDisabled': {\n backgroundColor: '#b9b9b9',\n },\n },\n nextButton: {\n right: 0,\n transform: 'translate(50%, -50%)',\n },\n prevButton: {\n left: 0,\n transform: 'translate(-50%, -50%)',\n },\n pageButtonDisabled: {},\n chevronLeft: {\n transform: 'rotate(90deg)',\n },\n chevronRight: {\n transform: 'rotate(-90deg)',\n },\n});\n\nconst formatDuration = (totalMinutes: number) => {\n const hours = Math.floor(totalMinutes / 60);\n const minutes = totalMinutes % 60;\n return `${hours > 0 ? `${hours} h ` : ''}${minutes > 0 ? `${minutes} min` : ''}`.trim();\n};\n\nexport default function StopTransfer() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { providers, version, user } = useContext(ProviderContext);\n const [date, setDate] = useState(moment());\n const [from, setFrom] = useState('6:00');\n const [to, setTo] = useState('18:00');\n const hourOptions = Array(25).fill(null).map((x, i) => (\n `${String(i)}:00`\n ));\n const [stops, setStops] = useState>({});\n const [routes, setRoutes] = useState>({});\n const [fromProvider, setFromProvider] = useState(null);\n const [fromRoute, setFromRoute] = useState(null);\n const [fromStop, setFromStop] = useState(null);\n const [toProvider, setToProvider] = useState(null);\n const [toRoute, setToRoute] = useState(null);\n const [toStop, setToStop] = useState(null);\n const [arrivals, setArrivals] = useState(null);\n const [departures, setDepartures] = useState(null);\n const [transferTime, setTransferTime] = useState(3);\n const [firstTripMinute, setFirstTripMinute] = useState(null);\n const [departureInterval, setDepartureInterval] = useState(null);\n const [page, setPage] = useState(0);\n const resetChanges = (currentDepartures: string[], currentArrivals: string[]) => {\n const tableDepartures = currentDepartures.filter((x: string) => (\n moment(x, 'H:m').isAfter(moment(currentArrivals[0], 'H:m'))\n ));\n setFirstTripMinute(Number(currentDepartures[0].split(':')[1]));\n if (tableDepartures.length > 1) {\n const diffs = R.tail(tableDepartures as string[]).map((x, i) => (\n moment(x, 'H:m').diff(moment(tableDepartures[i], 'H:m'), 'minutes')\n ));\n setDepartureInterval(diffs.every(R.equals(diffs[0])) ? diffs[0] : null);\n }\n };\n const [prevVersion, setPrevVersion] = useState(version);\n useEffect(() => {\n setStops({});\n setRoutes({});\n setFromProvider(null);\n setFromRoute(null);\n setFromStop(null);\n setToProvider(null);\n setToRoute(null);\n setToStop(null);\n setArrivals(null);\n setDepartures(null);\n setTransferTime(3);\n setFirstTripMinute(null);\n setDepartureInterval(null);\n setPage(0);\n setPrevVersion(version);\n }, [version]);\n useEffect(() => {\n (async () => {\n if (from && to && fromProvider && fromRoute && fromStop && toProvider && toRoute && toStop\n && version === prevVersion) {\n const { data } = await axios.post('/stops/transfers', {\n date: date.format('YYYY-MM-DD'),\n from: moment(from, 'H:m').format('HH:mm'),\n to: moment(to === '24:00' ? '23:59' : to, 'H:m').format('HH:mm'),\n arrivals: {\n provider: fromProvider.id,\n route: fromRoute.id,\n stop: fromStop.id,\n },\n departures: {\n provider: toProvider.id,\n route: toRoute.id,\n stop: toStop.id,\n },\n }, {\n params: (user.agency && version) ? {\n providerName: user.agency,\n providerVersion: version.id,\n } : {},\n });\n setPage(0);\n setArrivals(R.uniq(data.arrivals));\n setDepartures(R.uniq(data.departures));\n if (data.arrivals.length > 0 && data.departures.length > 0) {\n resetChanges(data.departures, data.arrivals);\n }\n }\n })();\n }, [\n date, from, to, fromProvider, fromRoute, fromStop, toProvider, toRoute, toStop, user.agency,\n version, prevVersion,\n ]);\n interface ITableElement {\n arrival: string;\n connectedDepartures: string[];\n }\n interface IResults {\n table: ITableElement[],\n times: number[];\n average: number;\n max: number;\n shortTransfers: number;\n }\n const pageSize = Math.floor((window.innerWidth - 856) / 77);\n const getResults = (currentDepartures: string[]): IResults => {\n let table: ITableElement[] = [];\n if (arrivals && currentDepartures) {\n arrivals.forEach((arrival) => {\n const shortDepartures = currentDepartures.filter((departure) => (\n moment(departure, 'H:m').isBetween(\n moment(arrival, 'H:m'),\n moment(arrival, 'H:m').add(transferTime, 'minutes'),\n )\n ));\n const longDeparture = currentDepartures.find((departure) => (\n moment(departure, 'H:m').isSameOrAfter(\n moment(arrival, 'H:m').add(transferTime, 'minutes'),\n )\n ));\n if (longDeparture) {\n table = R.append({\n arrival,\n connectedDepartures: [...shortDepartures, longDeparture],\n }, table);\n }\n });\n }\n const times = R.chain(\n ({ arrival, connectedDepartures }) => connectedDepartures.map((departure) => (\n moment(departure, 'H:m').diff(moment(arrival, 'H:m'), 'minutes')\n )),\n table,\n );\n const timesWithoutShort = times.filter((x) => x >= transferTime);\n const average = Math.round(R.sum(timesWithoutShort) / timesWithoutShort.length);\n const max = Number(R.reduce(R.max, 0, times));\n const shortTransfers = times.filter((x) => x < transferTime).length;\n return {\n table,\n times,\n average,\n max,\n shortTransfers,\n };\n };\n let modifiedDepartures: string[] = [];\n let results: IResults | null = null;\n let modifiedResults: IResults | null = null;\n let averageDiff: number | null = null;\n let maxDiff: number | null = null;\n let pageTable: ITableElement[] | null = null;\n if (arrivals && departures && arrivals.length > 0 && departures.length > 0 && to) {\n if (firstTripMinute !== null) {\n const tableDepartures = departures.filter((x: string) => (\n moment(x, 'H:m').isAfter(moment(arrivals[0], 'H:m'))\n ));\n const firstTrip = moment(\n tableDepartures[0],\n 'H:m',\n );\n if (departureInterval) {\n const currentTime = moment(firstTrip).minute(firstTripMinute);\n modifiedDepartures = [currentTime.format('HH:mm')];\n while (currentTime.isSameOrBefore(moment(to, 'H:m'))) {\n currentTime.add(departureInterval, 'minutes');\n modifiedDepartures.push(currentTime.format('HH:mm'));\n }\n } else {\n const minuteDiff = firstTripMinute - firstTrip.minute();\n modifiedDepartures = tableDepartures.map((x) => (\n moment(x, 'H:m').add(minuteDiff, 'minutes').format('HH:mm')\n ));\n }\n }\n results = getResults(departures);\n modifiedResults = getResults(modifiedDepartures);\n averageDiff = modifiedResults.average - results.average;\n maxDiff = modifiedResults.max - results.max;\n pageTable = [];\n let i = 0;\n modifiedResults.table.forEach((x) => {\n const departuresToAdd: string[] = [];\n x.connectedDepartures.forEach((y) => {\n if (i >= page * pageSize && i < (page + 1) * pageSize) {\n departuresToAdd.push(y);\n }\n i += 1;\n });\n if (pageTable && departuresToAdd.length > 0) {\n pageTable.push({\n arrival: x.arrival,\n connectedDepartures: departuresToAdd,\n });\n }\n });\n }\n const hasResults = Boolean(\n results && modifiedResults && averageDiff !== null && maxDiff !== null,\n );\n return (\n
\n \n
\n {\n if (newDate) {\n setDate(newDate);\n }\n }}\n className={classes.datePicker}\n label={t('synchronization.date')}\n format=\"dddd, DD.MM.Y\"\n />\n {\n setFrom(value);\n }}\n className={classes.hourFrom}\n label={t('synchronization.from')}\n noAdornment\n />\n {\n setTo(value);\n }}\n className={classes.hourTo}\n label={t('synchronization.to')}\n noAdornment\n />\n
\n \n {t('stopTransfer.transfer')}\n \n
\n
\n
\n \n {t('stopTransfer.from')}\n \n {\n setFromProvider(value);\n setFromRoute(null);\n setFromStop(null);\n if (value) {\n const { data }: { data: IRoute[] } = await axios.get(`/${value.id}/routes`, {\n params: (value.id === user.agency && version)\n ? { providerVersion: version.id }\n : {},\n });\n const sorter = natsort();\n setRoutes(R.mergeLeft({\n [value.id]: data.sort((a, b) => sorter(a.name, b.name)),\n }));\n }\n }}\n label={t('export.dataSource')}\n className={classes.field}\n getOptionLabel={R.prop('name')}\n />\n {\n setFromRoute(value);\n setFromStop(null);\n if (fromProvider && value) {\n const { data } = await axios.get(`/public/${fromProvider.id}/route/${value.id}/trips`, {\n params: {\n date: date.format('YYYY-MM-DD'),\n ...((fromProvider.id === user.agency && version)\n ? { providerVersion: version.id }\n : {}),\n },\n });\n const sorter = natsort();\n setStops(R.mergeLeft({\n [value.id]: R.uniqBy(\n R.prop('id'),\n [...data.stops.default, ...data.stops.opposite]\n .sort((a, b) => sorter(a.name, b.name)),\n ),\n }));\n }\n }}\n label={t('synchronization.route')}\n className={classes.route}\n getOptionLabel={R.prop('name')}\n />\n {\n setFromStop(value);\n }}\n label={t('synchronization.stop')}\n className={classes.field}\n getOptionLabel={R.prop('name')}\n />\n {hasResults && (\n \n {t('stopTransfer.arrival')}\n \n )}\n
\n
\n \n {t('stopTransfer.to')}\n \n {\n setToProvider(value);\n setToRoute(null);\n setToStop(null);\n if (value) {\n const { data }: { data: IRoute[] } = await axios.get(`/${value.id}/routes`, {\n params: (value.id === user.agency && version)\n ? { providerVersion: version.id }\n : {},\n });\n const sorter = natsort();\n setRoutes(R.mergeLeft({\n [value.id]: data.sort((a, b) => sorter(a.name, b.name)),\n }));\n }\n }}\n label={t('export.dataSource')}\n className={classes.field}\n getOptionLabel={R.prop('name')}\n />\n {\n setToRoute(value);\n setToStop(null);\n if (toProvider && value) {\n const { data } = await axios.get(`/public/${toProvider.id}/route/${value.id}/trips`, {\n params: {\n date: date.format('YYYY-MM-DD'),\n ...((toProvider.id === user.agency && version)\n ? { providerVersion: version.id }\n : {}),\n },\n });\n const sorter = natsort();\n setStops(R.mergeLeft({\n [value.id]: R.uniqBy(\n R.prop('id'),\n [...data.stops.default, ...data.stops.opposite]\n .sort((a, b) => sorter(a.name, b.name)),\n ),\n }));\n }\n }}\n label={t('synchronization.route')}\n className={classes.route}\n getOptionLabel={R.prop('name')}\n />\n {\n setToStop(value);\n }}\n label={t('synchronization.stop')}\n className={classes.field}\n getOptionLabel={R.prop('name')}\n />\n {hasResults && (\n \n {t('stopTransfer.departure')}\n \n )}\n
\n {modifiedResults && modifiedResults.table.length > 0 && (\n
\n
\n \n {t('stopTransfer.modifyDepartures')}\n \n
\n String(x).padStart(2, '0')}\n value={firstTripMinute || undefined}\n onChange={(event, value) => setFirstTripMinute(value)}\n label={t('stopTransfer.firstTrip')}\n className={classes.firstTrip}\n TextFieldProps={{\n InputProps: {\n classes: { root: classes.firstTripInput },\n startAdornment: (\n \n \n {modifiedResults.table[0].connectedDepartures[0].split(':')[0]}\n {' '}\n :\n \n \n ),\n },\n }}\n disableClearable\n />\n x + 1, 60)}\n getOptionLabel={(x) => `${x} ${t('synchronization.min')}.`}\n value={departureInterval}\n onChange={(event, value) => setDepartureInterval(value)}\n label={t('stopTransfer.interval')}\n className={classes.interval}\n noAdornment\n />\n departures && arrivals && resetChanges(departures, arrivals)}\n >\n {t('stopTransfer.clear')}\n \n
\n
\n \n {t('stopTransfer.transferTime')}\n \n
\n )}\n
\n {modifiedResults && pageTable && (\n
\n \n \n \n {pageTable.map(({ arrival, connectedDepartures }, i) => (\n \n {i === 0 && (\n setPage((x) => x - 1)}\n disabled={page === 0}\n classes={{\n contained: classNames(classes.pageButton, classes.prevButton),\n disabled: classes.pageButtonDisabled,\n }}\n >\n \n \n )}\n {arrival}\n {pageTable && i === pageTable.length - 1 && (\n setPage(R.add(1))}\n disabled={modifiedResults !== null && (\n (page + 1) * pageSize >= modifiedResults.times.length\n )}\n classes={{\n contained: classNames(classes.pageButton, classes.nextButton),\n disabled: classes.pageButtonDisabled,\n }}\n >\n \n \n )}\n \n ))}\n \n \n {pageTable.map(({ arrival, connectedDepartures }, i) => (\n <>\n {connectedDepartures.map((departure, j) => {\n const colSpan = (pageTable && j === connectedDepartures.length - 1)\n ? R.takeWhile(\n R.equals(departure),\n R.chain(\n R.prop('connectedDepartures'),\n R.slice(i + 1, Infinity, pageTable),\n ),\n ).length + 1\n : 1;\n return (\n (j === 0 && i !== 0 && pageTable\n && R.last(pageTable[i - 1].connectedDepartures) === departure)\n ? null\n : (\n \n {departure}\n \n )\n );\n })}\n \n ))}\n \n \n {R.slice(\n page * pageSize,\n ((page + 1) * pageSize),\n modifiedResults.times,\n ).map((time, i) => (\n \n {formatDuration(time)}\n \n ))}\n \n \n
\n setTransferTime(Number(target.value))}\n className={classes.minTransferTime}\n variant=\"outlined\"\n size=\"small\"\n >\n {R.times((n) => (\n \n {n + 1}\n {' '}\n {t('synchronization.min')}\n \n ), 15)}\n \n \n \n {t('stopTransfer.averageTransfer')}\n \n \n {formatDuration(modifiedResults.average)}\n \n {averageDiff !== null && averageDiff !== 0 && (\n 0 ? classes.positive : classes.negative}>\n [\n {averageDiff > 0 ? '+' : '-'}\n {Math.abs(averageDiff)}\n {' '}\n {t('synchronization.min')}\n ]\n \n )}\n \n \n \n {t('stopTransfer.longestTransfer')}\n \n \n {formatDuration(modifiedResults.max)}\n \n {maxDiff !== null && maxDiff !== 0 && (\n 0 ? classes.positive : classes.negative}>\n [\n {maxDiff > 0 ? '+' : '-'}\n {Math.abs(maxDiff)}\n {' '}\n {t('synchronization.min')}\n ]\n \n )}\n \n \n \n {t('stopTransfer.shortTransfers', { time: transferTime })}\n \n {modifiedResults.shortTransfers}\n \n
\n )}\n
\n
\n );\n}\n","import React, { useState } from 'react';\nimport { makeStyles, Tab, Tabs } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport Synchronization from './Synchronization';\nimport RouteTransfers from './RouteTransfers';\nimport StopTransfer from './StopTransfer';\n\nconst useStyles = makeStyles({\n root: {\n width: '100%',\n },\n tabs: {\n margin: '0 -32px',\n backgroundColor: '#F5F5F5',\n paddingTop: 16,\n },\n tab: {\n textTransform: 'none',\n fontSize: 16,\n fontWeight: 300,\n width: 250,\n },\n});\n\nexport default function Analysis() {\n const classes = useStyles();\n const { t } = useTranslation();\n const [tab, setTab] = useState(0);\n return (\n
\n setTab(value)}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n centered\n className={classes.tabs}\n >\n \n \n \n \n {tab === 0 && }\n {tab === 1 && }\n {tab === 2 && }\n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0.35 18.741) rotate(-90)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18,31l9.06,9.5L36.384,31\",\n transform: \"translate(-18 -31)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}));\n\nvar SvgChevronBig = function SvgChevronBig(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 10.569,\n height: 19.102,\n viewBox: \"0 0 10.569 19.102\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgChevronBig, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/chevron-big.2646d264.svg\";\nexport { ForwardRef as ReactComponent };","import React, {\n useContext, useRef, useState,\n} from 'react';\nimport {\n Button, CircularProgress, IconButton, makeStyles, MenuItem, TextField, Typography,\n} from '@material-ui/core';\nimport { Trans, useTranslation } from 'react-i18next';\nimport * as R from 'ramda';\nimport { ProviderContext } from '../context';\nimport CustomAutocomplete from '../common/CustomAutocomplete';\nimport { IProvider } from '../interfaces';\nimport { axios } from '../utils';\nimport { ReactComponent as ChevronBig } from '../assets/chevron-big.svg';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginTop: 32,\n },\n providerSelect: {\n width: 300,\n marginBottom: 24,\n },\n select: {\n width: 120,\n marginBottom: 24,\n },\n fileInput: {\n display: 'none',\n },\n name: {\n fontWeight: 400,\n },\n loader: {\n position: 'absolute',\n left: 'calc(50% - 10px)',\n top: 'calc(50% - 10px)',\n },\n selectRow: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n progressBar: {\n width: 260,\n height: 6,\n borderRadius: 10,\n backgroundColor: '#EFEFEF',\n position: 'relative',\n marginTop: 14,\n },\n barFilled: {\n height: '100%',\n backgroundColor: '#A1145C',\n borderRadius: 10,\n transition: theme.transitions.create('width'),\n },\n progressTooltipContainer: {\n position: 'absolute',\n top: -8,\n transform: 'translate(-50%, -100%)',\n transition: theme.transitions.create('left'),\n },\n progressTooltip: {\n padding: '0 8px',\n backgroundColor: '#A1145C',\n borderRadius: 3,\n fontWeight: 400,\n color: 'white',\n position: 'relative',\n '&::after': {\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n left: '50%',\n bottom: 0,\n transform: 'translate(-50%, 50%) rotate(45deg)',\n width: 8,\n height: 8,\n backgroundColor: '#A1145C',\n zIndex: -1,\n },\n },\n selectButton: {\n marginRight: 40,\n flexShrink: 0,\n },\n importInfo: {\n color: '#A1145C',\n marginRight: 8,\n },\n chevron: {\n transform: 'rotate(-90deg)',\n transition: '0.4s',\n width: 19,\n height: 19,\n },\n chevronFlipped: {\n transform: 'rotate(90deg)',\n transition: '0.4s',\n width: 19,\n height: 19,\n },\n errorRow: {\n display: 'flex',\n alignItems: 'center',\n },\n importResult: {\n marginTop: 8,\n },\n}));\n\ntype IFileType = 'gtfs' | 'netex' | '';\n\nexport default function Import() {\n const classes = useStyles();\n const { t } = useTranslation();\n const [fileType, setFileType] = useState('');\n const inputRef = useRef(null);\n const [error, setError] = useState(null);\n const { user, providers } = useContext(ProviderContext);\n const [selectedProvider, setSelectedProvider] = useState(\n user.role === 'AGENCY_ADMIN' ? providers.find(R.whereEq({ id: user.agency })) || null : null,\n );\n const [importedFile, setImportedFile] = useState(null);\n const [loading, setLoading] = useState(false);\n const [progress, setProgress] = useState(null);\n const [queued, setQueued] = useState(false);\n const [errorExpanded, setErrorExpanded] = useState(false);\n if (!providers) {\n return null;\n }\n return (\n
\n {user.role === 'ADMIN' && (\n x.dataSource === 'auto')}\n value={selectedProvider}\n onChange={(event, value) => setSelectedProvider(value)}\n label={t('export.dataSource')}\n className={classes.providerSelect}\n getOptionLabel={R.prop('name')}\n />\n )}\n (\n setFileType(target.value as IFileType)\n )}\n className={classes.select}\n variant=\"outlined\"\n size=\"small\"\n id=\"import-file-type\"\n >\n \n GTFS\n \n \n NeTEx\n \n \n {\n if (target.files && target.files[0] && selectedProvider) {\n const form = new FormData();\n form.append('file', target.files[0]);\n form.append('type', fileType);\n try {\n setLoading(true);\n setError(null);\n setImportedFile(null);\n const { data: { job } } = await axios.post(`/${selectedProvider.id}/import`, form);\n const { name } = target.files[0];\n let interval: NodeJS.Timeout;\n let timeout: NodeJS.Timeout;\n let delay = 500;\n let currentProgress: number | null = null;\n const checkStatus = async () => {\n const { data } = await axios.get('/import/status', { params: { job } });\n if (data.status === 'IN_PROGRESS') {\n setQueued(false);\n if (currentProgress === null || data.existingProgress > currentProgress) {\n setProgress(data.existingProgress);\n currentProgress = data.existingProgress;\n clearTimeout(timeout);\n delay = 500;\n const updateProgress = () => {\n setProgress((x) => {\n if (x === null || x < data.nextProgress) {\n delay *= 1.2;\n timeout = setTimeout(updateProgress, delay);\n return (x || 0) + 1;\n }\n return x;\n });\n };\n timeout = setTimeout(updateProgress, delay);\n }\n } else if (data.status === 'QUEUED') {\n setQueued(true);\n } else if (data.status === 'DONE' && target.files) {\n setQueued(false);\n setProgress(100);\n clearInterval(interval);\n clearTimeout(timeout);\n setTimeout(() => {\n setImportedFile(name);\n setProgress(null);\n }, 2000);\n } else if (data.status === 'FAILED') {\n setQueued(false);\n setError(data.errorDetails);\n setProgress(null);\n clearInterval(interval);\n clearTimeout(timeout);\n }\n };\n checkStatus();\n interval = setInterval(checkStatus, 5000);\n setQueued(true);\n } catch (e) {\n setError(e?.response?.data?.message || 'Error');\n }\n // eslint-disable-next-line no-param-reassign\n target.value = '';\n setLoading(false);\n }\n }}\n />\n
\n inputRef.current && inputRef.current.click()}\n disabled={!selectedProvider || !fileType || loading || queued || progress !== null}\n className={classes.selectButton}\n >\n {t('import.selectFile')}\n {loading && (\n \n )}\n \n
\n {progress !== null && (\n
\n \n \n \n {`${progress}%`}\n \n
\n
\n )}\n {queued && (\n \n {t('import.importQueued')}\n \n )}\n {importedFile && (\n \n ]}\n values={{ name: importedFile }}\n />\n \n )}\n {error && (\n
\n
\n \n {t('import.importFailed')}\n \n setErrorExpanded((x) => !x)}\n >\n \n \n
\n {errorExpanded && (\n \n {error}\n \n )}\n
\n )}\n
\n
\n
\n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport {\n Button, IconButton, makeStyles, MenuItem, TextField, Typography, InputAdornment,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames';\nimport * as R from 'ramda';\nimport AppContext, { ProviderContext } from '../context';\nimport CustomAutocomplete from '../common/CustomAutocomplete';\nimport { IProvider, IRole, IRolesUser } from '../interfaces';\nimport { axios } from '../utils';\nimport { ReactComponent as ChevronWhite } from '../assets/chevron-white.svg';\nimport { ReactComponent as ChevronPrimary } from '../assets/chevron-primary.svg';\nimport { ReactComponent as ChevronBig } from '../assets/chevron-big.svg';\nimport { ReactComponent as Search } from '../assets/search.svg';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n width: '100%',\n },\n header: {\n fontSize: 24,\n fontWeight: 700,\n color: '#37001F',\n marginBottom: 24,\n },\n search: {\n width: 600,\n backgroundColor: 'white',\n },\n content: {\n backgroundColor: '#F5F5F5',\n padding: 16,\n margin: '16px -16px',\n },\n table: {\n borderCollapse: 'collapse',\n backgroundColor: 'white',\n width: '100%',\n },\n cell: {\n fontSize: 16,\n fontWeight: 300,\n color: '#37001F',\n padding: '16px 20px',\n border: '1px solid #37001F',\n textAlign: 'left',\n position: 'relative',\n '&:nth-child(1)': {\n width: 60,\n },\n '&:nth-child(4)': {\n width: 260,\n },\n '&:nth-child(5)': {\n width: 300,\n },\n },\n headerCell: {\n fontWeight: 400,\n },\n numberCell: {\n textAlign: 'right',\n },\n roleSelect: {\n width: '100%',\n },\n agencySelect: {\n width: '100%',\n },\n nextPageButton: {\n minWidth: 20,\n width: 20,\n height: 20,\n borderRadius: '50%',\n padding: 0,\n position: 'absolute',\n bottom: 0,\n right: 0,\n transform: 'translate(50%, 50%)',\n zIndex: 2,\n '&$pageButtonDisabled': {\n backgroundColor: '#b9b9b9',\n },\n },\n pageButtonDisabled: {},\n chevronFlipped: {\n transform: 'rotate(180deg)',\n },\n legend: {\n marginTop: 32,\n },\n legendElement: {\n display: 'flex',\n },\n legendTerm: {\n width: 170,\n flexShrink: 0,\n fontWeight: 400,\n fontSize: 14,\n color: '#37001F',\n },\n legendDescription: {\n fontSize: 14,\n color: '#37001F',\n },\n saveContainer: {\n display: 'flex',\n margin: '8px 0 24px',\n },\n discardButton: {\n marginLeft: 'auto',\n marginRight: 16,\n },\n sortButton: {\n width: 28,\n height: 28,\n padding: 4,\n margin: '-4px -6px -4px 4px',\n },\n addUser: {\n display: 'flex',\n marginBottom: 24,\n },\n addUserSelect: {\n width: 600,\n marginRight: 16,\n },\n addUserEmail: {\n width: 300,\n marginRight: 16,\n },\n addUserName: {\n width: 300,\n marginRight: 16,\n },\n addUserRole: {\n width: 235,\n marginRight: 16,\n },\n addUserAgency: {\n width: 300,\n marginRight: 16,\n },\n addUserOption: {\n display: 'flex',\n alignItems: 'center',\n },\n selectBorder: {\n border: 'none',\n },\n selectCell: {\n padding: '0 8px',\n },\n selectError: {\n border: '1px solid #f44336',\n margin: -1,\n padding: '1px 0',\n zIndex: 1,\n width: 'calc(100% + 2px)',\n },\n selectIconContainer: {\n display: 'flex',\n alignItems: 'center',\n padding: '4px 8px',\n },\n selectIcon: {\n transform: 'rotate(90deg)',\n },\n selectInput: {\n fontWeight: 300,\n color: 'inherit',\n },\n});\n\nexport default function Roles() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { showSnackbar } = useContext(AppContext);\n const { providers, user: loggedInUser } = useContext(ProviderContext);\n const [users, setUsers] = useState(null);\n const [originalUsers, setOriginalUsers] = useState(null);\n useEffect(() => {\n (async () => {\n const { data } = await axios.get('/users');\n setUsers(data);\n setOriginalUsers(data);\n })();\n }, []);\n const [page, setPage] = useState(0);\n const [search, setSearch] = useState('');\n const [saveLoading, setSaveLoading] = useState(false);\n const [sortColumn, setSortColumn] = useState('name');\n const [sortDescending, setSortDescending] = useState(false);\n const [addUserEmail, setAddUserEmail] = useState('');\n const [addUserName, setAddUserName] = useState('');\n const [addUserRole, setAddUserRole] = useState('');\n const [addUserAgency, setAddUserAgency] = useState(null);\n const [agencyErrors, setAgencyErrors] = useState>({});\n if (!users || !originalUsers) return null;\n const getRoleText = (role: IRole) => {\n switch (role) {\n case 'ADMIN':\n return t('roles.admin');\n case 'AGENCY_ADMIN':\n return t('roles.agencyAdmin');\n case 'AGENCY_EMPL':\n return t('roles.agencyEmployee');\n case 'TECHNICIAN':\n return t('roles.technician');\n case 'TICKET_INSPECTOR':\n return t('roles.ticketInspector');\n default:\n return '';\n }\n };\n const searchLower = search.toLowerCase();\n const filteredUsers = R.sort(\n (sortDescending ? R.ascend : R.descend)(R.compose(R.defaultTo(''), R.prop(sortColumn))),\n users.filter((user) => (\n user.name.toLowerCase().includes(searchLower)\n || user.email.toLowerCase().includes(searchLower)\n || getRoleText(user.role).toLowerCase().includes(searchLower)\n || providers.find(R.whereEq({ id: user.agency }))?.name.toLowerCase().includes(searchLower)\n )),\n );\n const pageSize = 10;\n const renderSortButton = (column: keyof IRolesUser) => (\n {\n if (sortColumn === column) {\n setSortDescending(R.not);\n } else {\n setSortColumn(column);\n setSortDescending(false);\n }\n }}\n >\n \n \n );\n const roleOptions = [\n loggedInUser.role === 'ADMIN' ? (\n \n {t('roles.admin')}\n \n ) : null,\n \n {t('roles.agencyAdmin')}\n ,\n \n {t('roles.agencyEmployee')}\n ,\n loggedInUser.role === 'ADMIN' ? (\n \n {t('roles.technician')}\n \n ) : null,\n \n {t('roles.ticketInspector')}\n ,\n \n {t('roles.none')}\n ,\n ];\n const getChangedUsers = (currentUsers: IRolesUser[]) => currentUsers.map((user) => ({\n ...user,\n role: user.role || null,\n })).filter((user) => (\n !R.equals(originalUsers.find(R.whereEq({ email: user.email })), user)\n ));\n const saveUsers = async (currentUsers: IRolesUser[]) => {\n const newUsers = currentUsers.map((user) => ({\n ...user,\n role: user.role || null,\n }));\n const changedUsers = getChangedUsers(currentUsers);\n let valid = true;\n changedUsers.forEach((user) => {\n if ((user.role === 'AGENCY_ADMIN' || user.role === 'AGENCY_EMPL') && !user.agency) {\n setAgencyErrors(R.set(R.lensProp(user.email), true));\n valid = false;\n }\n });\n if (!valid) return;\n const newOriginalUsers = newUsers.filter((user) => user.role !== null);\n setSaveLoading(true);\n try {\n await axios.post('/users/rights', changedUsers);\n setUsers(newOriginalUsers);\n setOriginalUsers(newOriginalUsers);\n showSnackbar(t('roles.success'));\n } catch {\n showSnackbar(t('roles.failure'));\n }\n setSaveLoading(false);\n };\n return (\n
\n \n {t('roles.assignRoles')}\n \n
\n setAddUserName(target.value)}\n className={classes.addUserName}\n variant=\"outlined\"\n size=\"small\"\n label={t('roles.addName')}\n id=\"add-name\"\n />\n setAddUserEmail(target.value)}\n className={classes.addUserEmail}\n variant=\"outlined\"\n size=\"small\"\n label={t('roles.addEmail')}\n id=\"add-email\"\n />\n {\n setAddUserRole(value as IRole);\n if (value === 'ADMIN' || value === 'TECHNICIAN') {\n setAddUserAgency(null);\n }\n }}\n className={classes.addUserRole}\n variant=\"outlined\"\n size=\"small\"\n label={t('roles.addRole')}\n id=\"add-role\"\n >\n {roleOptions}\n \n setAddUserAgency(value)}\n className={classes.addUserAgency}\n disabled={!['AGENCY_ADMIN', 'AGENCY_EMPL', 'TICKET_INSPECTOR'].includes(addUserRole || '')}\n label={t('roles.addAgency')}\n getOptionLabel={R.prop('name')}\n />\n {\n if (addUserEmail && addUserName && addUserRole) {\n await saveUsers(R.append(\n {\n email: addUserEmail,\n name: addUserName,\n role: addUserRole,\n agency: addUserAgency ? addUserAgency.id : null,\n },\n users,\n ));\n setAddUserEmail('');\n setAddUserName('');\n setAddUserRole('');\n setAddUserAgency(null);\n }\n }}\n >\n {t('roles.add')}\n \n
\n
\n
\n {\n setSearch(target.value);\n setPage(0);\n }}\n label={t('roles.search')}\n className={classes.search}\n variant=\"outlined\"\n size=\"small\"\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n {\n setUsers(originalUsers);\n setAgencyErrors({});\n }}\n disabled={getChangedUsers(users).length === 0}\n >\n {t('roles.discardChanges')}\n \n saveUsers(users)}\n >\n {t('roles.save')}\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {R.slice(page * pageSize, (page + 1) * pageSize, filteredUsers).map((user, i, arr) => (\n \n \n \n \n \n \n \n ))}\n \n
\n {t('roles.no')}\n \n {t('roles.name')}\n {renderSortButton('name')}\n \n {t('roles.email')}\n {renderSortButton('email')}\n \n {t('roles.role')}\n {renderSortButton('role')}\n \n {t('roles.organization')}\n {renderSortButton('agency')}\n setPage((x) => x - 1)}\n disabled={page === 0}\n classes={{\n contained: classes.nextPageButton,\n disabled: classes.pageButtonDisabled,\n }}\n >\n \n \n
\n {filteredUsers.indexOf(user) + 1}\n \n {user.name}\n \n {user.email}\n \n setUsers(\n R.map((x) => (\n x.email === user.email ? {\n ...x,\n role: value as IRole,\n agency: (value === 'AGENCY_ADMIN' || value === 'AGENCY_EMPL') ? x.agency : null,\n } : x\n ), users),\n )}\n className={classes.roleSelect}\n variant=\"outlined\"\n size=\"small\"\n InputProps={{\n className: classes.selectInput,\n classes: { notchedOutline: classes.selectBorder },\n }}\n SelectProps={{\n // eslint-disable-next-line react/prop-types\n IconComponent: ({ className, ...rest }) => (\n \n \n \n ),\n }}\n >\n {roleOptions}\n \n \n {\n setUsers(\n R.map((x) => (\n x.email === user.email ? { ...x, agency: value ? value.id : null } : x\n ), users),\n );\n setAgencyErrors(R.set(R.lensProp(user.email), false));\n }}\n className={classNames(classes.agencySelect, {\n [classes.selectError]: agencyErrors[user.email],\n })}\n disabled={!['AGENCY_ADMIN', 'AGENCY_EMPL', 'TICKET_INSPECTOR'].includes(user.role || '')}\n TextFieldProps={{\n InputProps: {\n className: classes.selectInput,\n classes: { notchedOutline: classes.selectBorder },\n },\n }}\n getOptionLabel={R.prop('name')}\n noAdornment\n popupIcon={(\n
\n \n
\n )}\n />\n {i === arr.length - 1 && (\n setPage(R.add(1))}\n disabled={(page + 1) * pageSize >= filteredUsers.length}\n classes={{\n contained: classes.nextPageButton,\n disabled: classes.pageButtonDisabled,\n }}\n >\n \n \n )}\n
\n
\n \n \n {t('roles.admin')}\n \n \n {t('roles.adminDescription')}\n \n \n \n \n {t('roles.agencyAdmin')}\n \n \n {t('roles.agencyAdminDescription')}\n \n \n \n \n {t('roles.agencyEmployee')}\n \n \n {t('roles.agencyEmployeeDescription')}\n \n \n \n \n {t('roles.technician')}\n \n \n {t('roles.technicianDescription')}\n \n \n \n \n {t('roles.ticketInspector')}\n \n \n {t('roles.ticketInspectorDescription')}\n \n \n
\n
\n
\n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Button, Typography } from '@material-ui/core';\nimport classNames from 'classnames';\n\ninterface Props {\n headerText: string;\n newText: string;\n onClick: () => void;\n disabled?: boolean;\n small?: boolean;\n bigMargin?: boolean;\n}\n\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 16,\n maxWidth: 520,\n justifyContent: 'space-between',\n },\n bigMargin: {\n marginBottom: 40,\n },\n header: {\n fontSize: 24,\n fontWeight: 700,\n },\n small: {\n fontSize: 18,\n fontWeight: 400,\n },\n plus: {\n fontSize: 24,\n lineHeight: 1.5,\n marginRight: 16,\n },\n});\n\nexport default function NewHeader(props: Props) {\n const {\n headerText, newText, onClick, disabled, small, bigMargin,\n } = props;\n const classes = useStyles();\n return (\n \n \n {headerText}\n \n \n \n +\n \n {newText}\n \n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0.5 0.5)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 9,\n cy: 9,\n r: 9,\n transform: \"translate(0 0)\",\n fill: \"none\",\n stroke: \"#ffffff\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(5.76 5.73)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x2: 6.511,\n y2: 6.511,\n fill: \"none\",\n stroke: \"#ffffff\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 6.511,\n y2: 6.511,\n fill: \"none\",\n stroke: \"#ffffff\",\n strokeWidth: 1\n}))));\n\nvar SvgClearWhite = function SvgClearWhite(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 19,\n viewBox: \"0 0 19 19\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgClearWhite, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/clear-white.7aa2282b.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Button, IconButton } from '@material-ui/core';\nimport classNames from 'classnames';\nimport { ReactComponent as Clear } from '../assets/clear.svg';\nimport { ReactComponent as ClearWhite } from '../assets/clear-white.svg';\n\ninterface Props {\n elements: {\n id: T;\n name: React.ReactNode;\n onClick: () => void;\n onDelete?: () => void;\n }[]\n selected: T | T[] | null;\n variant?: 'small' | 'big';\n className?: string;\n}\n\nconst useStyles = makeStyles({\n list: {\n display: 'flex',\n flexWrap: 'wrap',\n margin: -4,\n },\n listButton: {\n backgroundColor: '#F5F5F5',\n minWidth: 'initial',\n margin: '4px',\n borderRadius: 15,\n fontSize: 24,\n fontWeight: 400,\n padding: '1px 18px',\n },\n small: {\n fontSize: 20,\n padding: '4px 17px',\n },\n selectedButton: {\n backgroundColor: '#a1145c',\n color: 'white',\n '&:hover': {\n backgroundColor: '#c62e8a',\n },\n },\n delete: {\n margin: '0 -16px 0 8px',\n },\n});\n\nexport default function ButtonList(props: Props) {\n const {\n elements, selected, variant = 'big', className,\n } = props;\n const classes = useStyles();\n let selectedArray: T[];\n if (Array.isArray(selected)) {\n selectedArray = selected;\n } else {\n selectedArray = selected === null ? [] : [selected];\n }\n return (\n
\n {elements.map((element) => (\n \n {element.name}\n {element.onDelete && (\n {\n event.stopPropagation();\n if (element.onDelete) {\n element.onDelete();\n }\n }}\n data-testid=\"delete\"\n >\n {selected === element.id ? : }\n \n )}\n \n ))}\n
\n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Button, Dialog, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\n\ninterface Props {\n open: boolean;\n onClose: () => void;\n text: string;\n onDelete: () => void;\n canDelete: boolean;\n}\n\nconst useStyles = makeStyles({\n dialog: {\n padding: 24,\n },\n dialogText: {\n color: '#37001F',\n marginBottom: 16,\n },\n dialogButtons: {\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: -8,\n },\n});\n\nexport default function DeleteDialog(props: Props) {\n const {\n open, onClose, text, onDelete, canDelete,\n } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n return (\n \n \n {text}\n \n
\n \n {t('data.cancel')}\n \n {canDelete && (\n \n {t('data.delete')}\n \n )}\n
\n \n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Button, IconButton, MenuItem, TextField,\n} from '@material-ui/core';\nimport * as R from 'ramda';\nimport { IDataPattern, IDataRoute } from '../../interfaces';\nimport { axios } from '../../utils';\nimport { ProviderContext } from '../../context';\nimport VehicleIcon from '../VehicleIcon';\nimport { ReactComponent as Clear } from '../../assets/clear.svg';\nimport VersionInfo from '../VersionInfo';\nimport NewHeader from '../NewHeader';\nimport ButtonList from '../ButtonList';\nimport DeleteDialog from '../DeleteDialog';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n },\n main: {\n display: 'flex',\n },\n left: {\n flexGrow: 1,\n },\n right: {\n width: 340,\n marginLeft: 24,\n flexShrink: 0,\n },\n routeName: {\n marginLeft: 16,\n },\n editRoute: {\n border: '1px solid #707070',\n borderRadius: 3,\n padding: 24,\n },\n routeNameContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: 24,\n },\n routeNameField: {\n width: 200,\n },\n closeRoute: {\n margin: '-16px -12px 0 0',\n },\n transportModeName: {\n marginLeft: 16,\n },\n buttons: {\n marginTop: 24,\n display: 'flex',\n justifyContent: 'space-between',\n },\n saveRoute: {\n marginLeft: 'auto',\n },\n menuItem: {\n display: 'flex',\n alignItems: 'center',\n '& svg': {\n margin: '-4px 0',\n },\n },\n description: {\n marginTop: 24,\n },\n});\n\nexport default function Routes() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { user: { agency }, version } = useContext(ProviderContext);\n const [routes, setRoutes] = useState([]);\n const [patterns, setPatterns] = useState([]);\n const [selectedRoute, setSelectedRoute] = useState(null);\n const [name, setName] = useState('');\n const [nameError, setNameError] = useState(false);\n const [transportMode, setTransportMode] = useState(3);\n const [descriptionTo, setDescriptionTo] = useState('');\n const [descriptionFrom, setDescriptionFrom] = useState('');\n const closeRoute = () => {\n setSelectedRoute(null);\n setName('');\n setNameError(false);\n setTransportMode(3);\n };\n useEffect(() => {\n (async () => {\n const [\n { data },\n { data: patternsData },\n ] = await Promise.all([\n axios.get(`/${agency}/data/routes`, { params: { providerVersion: version!.id } }),\n axios.get(`/${agency}/data/patterns`, { params: { providerVersion: version!.id } }),\n ]);\n setRoutes(data);\n setPatterns(patternsData);\n })();\n }, [agency, version]);\n const [deleteDialog, setDeleteDialog] = useState(false);\n const [deleteName, setDeleteName] = useState('');\n const readOnly = !version?.hasUserLock;\n const canDelete = typeof selectedRoute !== 'number' || !patterns.some(R.propEq('route', selectedRoute));\n return (\n
\n \n
\n
\n {\n setSelectedRoute('new');\n setName('');\n setNameError(false);\n setTransportMode(3);\n }}\n disabled={readOnly}\n />\n ({\n id: route.id,\n name: (\n <>\n \n \n {route.name || route.id}\n \n \n ),\n onClick: () => {\n setSelectedRoute(route.id);\n setName(route.name);\n setNameError(false);\n setTransportMode(route.type);\n setDescriptionTo(route.descriptionTo);\n setDescriptionFrom(route.descriptionFrom);\n },\n }))}\n selected={selectedRoute}\n />\n
\n
\n {selectedRoute && (\n
\n
\n {\n setName(target.value);\n setNameError(false);\n }}\n variant=\"outlined\"\n size=\"small\"\n className={classes.routeNameField}\n error={nameError}\n helperText={nameError ? t('data.routeExists', { name }) : ''}\n id=\"route-name\"\n />\n \n \n \n
\n setTransportMode(Number(target.value))}\n variant=\"outlined\"\n size=\"small\"\n fullWidth\n select\n >\n \n
\n \n \n {t('data.bus')}\n \n
\n
\n \n
\n \n \n {t('data.tram')}\n \n
\n
\n \n
\n \n \n {t('data.train')}\n \n
\n
\n \n
\n \n \n {t('data.trolleybus')}\n \n
\n
\n \n
\n \n \n {t('data.ferry')}\n \n
\n
\n \n setDescriptionTo(target.value)}\n multiline\n rows={6}\n variant=\"outlined\"\n size=\"small\"\n fullWidth\n className={classes.description}\n />\n setDescriptionFrom(target.value)}\n multiline\n rows={6}\n variant=\"outlined\"\n size=\"small\"\n fullWidth\n className={classes.description}\n />\n
\n {selectedRoute !== 'new' && (\n {\n setDeleteDialog(true);\n setDeleteName(routes.find(R.propEq('id', selectedRoute))!.name);\n }}\n disabled={readOnly}\n >\n {t('data.deleteRoute')}\n \n )}\n {\n if (routes.some((x) => x.name === name && x.id !== selectedRoute)) {\n setNameError(true);\n return;\n }\n if (selectedRoute === 'new') {\n const { data } = await axios.post(`/${agency}/data/route`, {\n name,\n type: transportMode,\n descriptionTo,\n descriptionFrom,\n });\n setRoutes(R.append(data));\n } else {\n await axios.put(`/${agency}/data/route/${selectedRoute}`, {\n name,\n type: transportMode,\n descriptionTo,\n descriptionFrom,\n });\n setRoutes(R.map((x) => (\n x.id === selectedRoute ? ({\n name,\n type: transportMode,\n id: x.id,\n descriptionTo,\n descriptionFrom,\n }) : x\n )));\n }\n closeRoute();\n }}\n disabled={readOnly}\n >\n {t('data.save')}\n \n
\n
\n )}\n
\n
\n setDeleteDialog(false)}\n text={canDelete ? t(\n 'data.deleteRouteConfirm',\n { name: deleteName },\n ) : t('data.routeDeleteError')}\n onDelete={async () => {\n await axios.delete(`/${agency}/data/route/${selectedRoute}`);\n closeRoute();\n setRoutes(R.filter((x) => x.id !== selectedRoute));\n setDeleteDialog(false);\n }}\n canDelete={canDelete}\n />\n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-30 -814)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2.368,\n cy: 2.368,\n r: 2.368,\n transform: \"translate(43.895 816)\",\n fill: \"#9e9e9e\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2.368,\n cy: 2.368,\n r: 2.368,\n transform: \"translate(43.895 823.632)\",\n fill: \"#9e9e9e\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2.368,\n cy: 2.368,\n r: 2.368,\n transform: \"translate(36 816)\",\n fill: \"#9e9e9e\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2.368,\n cy: 2.368,\n r: 2.368,\n transform: \"translate(36 823.632)\",\n fill: \"#9e9e9e\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2.368,\n cy: 2.368,\n r: 2.368,\n transform: \"translate(36 831.263)\",\n fill: \"#9e9e9e\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2.368,\n cy: 2.368,\n r: 2.368,\n transform: \"translate(43.895 831.263)\",\n fill: \"#9e9e9e\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgDraggable = function SvgDraggable(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDraggable, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/draggable.1d40e8dc.svg\";\nexport { ForwardRef as ReactComponent };","import React, {\n useContext, useEffect, useRef, useState,\n} from 'react';\nimport {\n Button, IconButton, MenuItem, TextField, Typography,\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport * as R from 'ramda';\nimport classNames from 'classnames';\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\nimport {\n Map, Marker, Polyline, ScaleControl, TileLayer,\n} from 'react-leaflet';\nimport leaflet from 'leaflet';\nimport marker from '../../assets/stop-marker.svg';\nimport { ProviderContext } from '../../context';\nimport {\n IDataPattern, IDataRoute, IDataStop, IDataTrip,\n} from '../../interfaces';\nimport { axios } from '../../utils';\nimport CustomAutocomplete from '../../common/CustomAutocomplete';\nimport { ReactComponent as Chevron } from '../../assets/chevron.svg';\nimport { ReactComponent as Clear } from '../../assets/clear.svg';\nimport { ReactComponent as DraggableIcon } from '../../assets/draggable.svg';\nimport VersionInfo from '../VersionInfo';\nimport NewHeader from '../NewHeader';\nimport ButtonList from '../ButtonList';\nimport DeleteDialog from '../DeleteDialog';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n display: 'flex',\n },\n left: {\n flexGrow: 1,\n },\n filter: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 24,\n },\n searchRoute: {\n width: 200,\n marginLeft: 16,\n },\n right: {\n width: 870,\n marginLeft: 24,\n flexShrink: 0,\n },\n row: {\n display: 'flex',\n },\n forRoute: {\n width: 176,\n marginRight: 20,\n },\n patternName: {\n width: 296,\n marginRight: 20,\n },\n direction: {\n width: 176,\n },\n selectIcon: {\n display: 'flex',\n alignItems: 'center',\n padding: '8px 4px',\n },\n copyFromRow: {\n display: 'flex',\n alignItems: 'center',\n margin: '24px -16px',\n padding: 16,\n backgroundColor: '#F5F5F5',\n },\n addStops: {\n marginRight: 16,\n color: '#37001F',\n },\n copyRoute: {\n width: 140,\n marginRight: 16,\n },\n copyPattern: {\n width: 300,\n marginRight: 16,\n },\n addStopRow: {\n display: 'flex',\n alignItems: 'center',\n },\n position: {\n width: 60,\n marginRight: 16,\n },\n stop: {\n width: 300,\n marginRight: 16,\n },\n stops: {\n margin: '16px 0',\n },\n patternStop: {\n margin: '8px 0',\n backgroundColor: '#F5F5F5',\n padding: '8px 16px',\n borderRadius: 15,\n display: 'flex',\n alignItems: 'center',\n },\n patternStopPosition: {\n width: 50,\n fontSize: 20,\n color: '#37001F',\n },\n patternStopName: {\n marginRight: 'auto',\n fontSize: 20,\n color: '#37001F',\n },\n deleteStop: {\n margin: -10,\n padding: 10,\n },\n draggableContainer: {\n display: 'flex',\n alignItems: 'center',\n marginRight: 16,\n },\n saveRow: {\n display: 'flex',\n alignItems: 'center',\n margin: '16px 0',\n },\n discardChanges: {\n marginLeft: 'auto',\n marginRight: 16,\n },\n headsignRow: {\n display: 'flex',\n alignItems: 'flex-start',\n marginTop: 16,\n },\n headsign: {\n width: 296,\n marginRight: 20,\n },\n remarks: {\n width: 372,\n },\n stopsContainer: {\n display: 'flex',\n alignItems: 'flex-start',\n marginTop: 16,\n },\n map: {\n width: '50%',\n height: 405,\n marginRight: 32,\n marginTop: 16,\n },\n stopsRight: {\n flexGrow: 1,\n },\n});\n\nexport default function Patterns() {\n const { t } = useTranslation();\n const classes = useStyles();\n const { user: { agency }, version } = useContext(ProviderContext);\n const [patterns, setPatterns] = useState([]);\n const [routes, setRoutes] = useState([]);\n const [stops, setStops] = useState([]);\n const [trips, setTrips] = useState([]);\n const [searchRoute, setSearchRoute] = useState(null);\n const [selectedPattern, setSelectedPattern] = useState(null);\n useEffect(() => {\n (async () => {\n const [\n { data },\n { data: routesData },\n { data: stopsData },\n { data: tripsData },\n ]: [\n { data: IDataPattern[] },\n { data: IDataRoute[] },\n { data: IDataStop[] },\n { data: IDataTrip[] },\n ] = await Promise.all([\n axios.get(`/${agency}/data/patterns`, { params: { providerVersion: version!.id } }),\n axios.get(`/${agency}/data/routes`, { params: { providerVersion: version!.id } }),\n axios.get(`/${agency}/data/stops`, { params: { providerVersion: version!.id } }),\n axios.get(`/${agency}/data/trips`, { params: { providerVersion: version!.id } }),\n ]);\n setPatterns(data);\n setRoutes(routesData);\n setStops(stopsData);\n setTrips(tripsData);\n })();\n }, [agency, version]);\n const [route, setRoute] = useState(null);\n const [name, setName] = useState('');\n const [nameError, setNameError] = useState(false);\n const [direction, setDirection] = useState<'INBOUND' | 'OUTBOUND'>('INBOUND');\n const [headsign, setHeadsign] = useState('');\n const [remarks, setRemarks] = useState('');\n const [copyRoute, setCopyRoute] = useState(null);\n const [copyPattern, setCopyPattern] = useState(null);\n const [position, setPosition] = useState('1');\n const [stop, setStop] = useState(null);\n const [patternStops, setPatternStops] = useState([]);\n const [deleteDialog, setDeleteDialog] = useState(false);\n const [deleteName, setDeleteName] = useState('');\n const mapRef = useRef(null);\n useEffect(() => {\n if (!mapRef.current) return;\n if (patternStops.length + (stop ? 1 : 0) >= 2) {\n mapRef.current.leafletElement.fitBounds(\n new leaflet.LatLngBounds([\n ...patternStops.map((id) => {\n const x = stops.find(R.whereEq({ id })) as IDataStop;\n return [x.lat, x.lon];\n }),\n ...(stop ? [[stop.lat, stop.lon]] : []),\n ] as [number, number][]),\n );\n } else if (stop || patternStops.length === 1) {\n const x = stop || stops.find(R.whereEq({ id: patternStops[0] })) as IDataStop;\n mapRef.current.leafletElement.setView(\n [x.lat, x.lon],\n 16,\n );\n } else {\n mapRef.current.leafletElement.fitBounds(\n new leaflet.LatLngBounds([\n [56.464660, 14.408800],\n [53.570577, 19.443904],\n ]),\n );\n }\n }, [patternStops, stop, stops]);\n const positionNumber = Number(position);\n const positionValid = position !== '' && positionNumber >= 1 && positionNumber <= patternStops.length + 1;\n const loadData = (pattern: IDataPattern | null) => {\n if (pattern) {\n setRoute(pattern.route);\n setName(pattern.name);\n setDirection(pattern.direction);\n setHeadsign(pattern.headsign);\n setRemarks(pattern.remarks || '');\n setCopyRoute(null);\n setCopyPattern(null);\n setPosition(String(pattern.stops.length + 1));\n setStop(null);\n setPatternStops(pattern.stops);\n } else {\n setRoute(null);\n setName('');\n setDirection('INBOUND');\n setHeadsign('');\n setRemarks('');\n setCopyRoute(null);\n setCopyPattern(null);\n setPosition('1');\n setStop(null);\n setPatternStops([]);\n }\n setNameError(false);\n };\n const readOnly = !version?.hasUserLock;\n const isUsed = trips.some((x) => x.pattern === selectedPattern);\n const canDelete = typeof selectedPattern !== 'number' || !isUsed;\n const saveRow = (\n
\n {selectedPattern !== 'new' && (\n {\n setDeleteDialog(true);\n setDeleteName(patterns.find(R.propEq('id', selectedPattern))!.name);\n }}\n disabled={readOnly}\n >\n {t('data.deletePattern')}\n \n )}\n {\n loadData(\n selectedPattern === 'new'\n ? null\n : patterns.find(R.propEq('id', selectedPattern)) as IDataPattern,\n );\n }}\n >\n {t('data.discardChanges')}\n \n {\n if (!route) return;\n if (\n patterns.some((x) => x.route === route && x.name === name && x.id !== selectedPattern)\n ) {\n setNameError(true);\n return;\n }\n const patternData = {\n name,\n route,\n direction,\n headsign,\n remarks: remarks || undefined,\n stops: patternStops,\n };\n if (selectedPattern === 'new') {\n const { data } = await axios.post(`/${agency}/data/pattern`, patternData);\n setPatterns(R.append(data));\n } else {\n await axios.put(`/${agency}/data/pattern/${selectedPattern}`, patternData);\n setPatterns(R.map((x) => (x.id === selectedPattern ? { ...x, ...patternData } : x)));\n }\n setSelectedPattern(null);\n }}\n disabled={readOnly}\n >\n {t('data.save')}\n \n
\n );\n return (\n
\n
\n \n {\n setSelectedPattern('new');\n loadData(null);\n }}\n disabled={readOnly}\n />\n
\n \n {t('data.patternsFor')}\n \n setSearchRoute(value)}\n label={t('data.routeName')}\n className={classes.searchRoute}\n getOptionLabel={R.prop('name')}\n />\n
\n !searchRoute || x.route === searchRoute.id,\n ).map((pattern) => ({\n id: pattern.id,\n name: pattern.name,\n onClick: () => {\n setSelectedPattern(pattern.id);\n loadData(pattern);\n },\n }))\n )}\n selected={selectedPattern}\n />\n
\n
\n {selectedPattern && (\n <>\n
\n {\n setRoute(value ? value.id : null);\n setNameError(false);\n }}\n label={t('data.forRoute')}\n getOptionLabel={R.prop('name')}\n className={classes.forRoute}\n disabled={isUsed}\n />\n {\n setName(target.value);\n setNameError(false);\n }}\n variant=\"outlined\"\n size=\"small\"\n className={classes.patternName}\n error={nameError}\n helperText={nameError ? t('data.patternExists', { name }) : ''}\n />\n setDirection(target.value as 'INBOUND' | 'OUTBOUND')}\n variant=\"outlined\"\n size=\"small\"\n select\n className={classes.direction}\n SelectProps={{\n // eslint-disable-next-line react/prop-types\n IconComponent: ({ className, ...rest }) => (\n
\n \n
\n ),\n }}\n >\n \n {t('data.forward')}\n \n \n {t('data.backward')}\n \n \n
\n
\n setHeadsign(target.value)}\n variant=\"outlined\"\n size=\"small\"\n className={classes.headsign}\n />\n setRemarks(target.value)}\n variant=\"outlined\"\n size=\"small\"\n className={classes.remarks}\n />\n
\n
\n \n {t('data.addStopsFrom')}\n \n setCopyRoute(value)}\n label={t('data.routeName')}\n getOptionLabel={R.prop('name')}\n className={classes.copyRoute}\n disabled={isUsed}\n />\n setCopyPattern(value)}\n label={t('data.patternName')}\n getOptionLabel={R.prop('name')}\n className={classes.copyPattern}\n disabled={isUsed}\n />\n {\n if (!copyPattern) return;\n // eslint-disable-next-line no-underscore-dangle\n setPatternStops(R.concat(R.__, copyPattern.stops));\n setCopyRoute(null);\n setCopyPattern(null);\n }}\n >\n {t('data.add')}\n \n
\n
\n setPosition(target.value)}\n variant=\"outlined\"\n size=\"small\"\n className={classes.position}\n disabled={isUsed}\n />\n setStop(value)}\n label={t('data.stopName')}\n getOptionLabel={R.prop('name')}\n className={classes.stop}\n disabled={isUsed}\n />\n {\n if (!stop) return;\n setPatternStops(R.insert(positionNumber - 1, stop.id));\n setPosition(String(patternStops.length + 2));\n setStop(null);\n }}\n >\n {t('data.add')}\n \n
\n
\n \n \n \n {stop && (\n \n )}\n {patternStops.map((id) => {\n const x = stops.find(R.whereEq({ id })) as IDataStop;\n return (\n \n );\n })}\n {\n const x = stops.find(R.whereEq({ id })) as IDataStop;\n return { lat: x.lat, lng: x.lon };\n })}\n color=\"#1D3998\"\n weight={4}\n />\n \n
\n {saveRow}\n {\n if (result.destination) {\n setPatternStops(R.move(Number(result.draggableId), result.destination.index));\n }\n }}\n >\n \n {(provided) => (\n \n {patternStops.map((id, i) => (\n \n {(draggableProvided) => (\n \n \n \n
\n \n {i + 1}\n \n \n {stops.find(R.whereEq({ id }))!.name}\n \n setPatternStops(R.remove(i, 1))}\n className={classes.deleteStop}\n disabled={isUsed}\n >\n \n \n
\n )}\n \n ))}\n {provided.placeholder}\n
\n )}\n \n \n {patternStops.length > 0 && saveRow}\n
\n \n \n )}\n \n setDeleteDialog(false)}\n text={canDelete ? t(\n 'data.deletePatternConfirm',\n { name: deleteName },\n ) : t('data.patternDeleteError')}\n onDelete={async () => {\n await axios.delete(`/${agency}/data/pattern/${selectedPattern}`);\n setSelectedPattern(null);\n setPatterns(R.filter((x) => x.id !== selectedPattern));\n setDeleteDialog(false);\n }}\n canDelete={canDelete}\n />\n \n );\n}\n","const timeZones = ['Africa/Abidjan', 'Africa/Accra', 'Africa/Algiers', 'Africa/Bissau', 'Africa/Cairo', 'Africa/Casablanca', 'Africa/Ceuta', 'Africa/El_Aaiun', 'Africa/Johannesburg', 'Africa/Juba', 'Africa/Khartoum', 'Africa/Lagos', 'Africa/Maputo', 'Africa/Monrovia', 'Africa/Nairobi', 'Africa/Ndjamena', 'Africa/Tripoli', 'Africa/Tunis', 'Africa/Windhoek', 'America/Adak', 'America/Anchorage', 'America/Araguaina', 'America/Argentina/Buenos_Aires', 'America/Argentina/Catamarca', 'America/Argentina/Cordoba', 'America/Argentina/Jujuy', 'America/Argentina/La_Rioja', 'America/Argentina/Mendoza', 'America/Argentina/Rio_Gallegos', 'America/Argentina/Salta', 'America/Argentina/San_Juan', 'America/Argentina/San_Luis', 'America/Argentina/Tucuman', 'America/Argentina/Ushuaia', 'America/Asuncion', 'America/Atikokan', 'America/Bahia', 'America/Bahia_Banderas', 'America/Barbados', 'America/Belem', 'America/Belize', 'America/Blanc-Sablon', 'America/Boa_Vista', 'America/Bogota', 'America/Boise', 'America/Cambridge_Bay', 'America/Campo_Grande', 'America/Cancun', 'America/Caracas', 'America/Cayenne', 'America/Chicago', 'America/Chihuahua', 'America/Costa_Rica', 'America/Creston', 'America/Cuiaba', 'America/Curacao', 'America/Danmarkshavn', 'America/Dawson', 'America/Dawson_Creek', 'America/Denver', 'America/Detroit', 'America/Edmonton', 'America/Eirunepe', 'America/El_Salvador', 'America/Fort_Nelson', 'America/Fortaleza', 'America/Glace_Bay', 'America/Godthab', 'America/Goose_Bay', 'America/Grand_Turk', 'America/Guatemala', 'America/Guayaquil', 'America/Guyana', 'America/Halifax', 'America/Havana', 'America/Hermosillo', 'America/Indiana/Indianapolis', 'America/Indiana/Knox', 'America/Indiana/Marengo', 'America/Indiana/Petersburg', 'America/Indiana/Tell_City', 'America/Indiana/Vevay', 'America/Indiana/Vincennes', 'America/Indiana/Winamac', 'America/Inuvik', 'America/Iqaluit', 'America/Jamaica', 'America/Juneau', 'America/Kentucky/Louisville', 'America/Kentucky/Monticello', 'America/La_Paz', 'America/Lima', 'America/Los_Angeles', 'America/Maceio', 'America/Managua', 'America/Manaus', 'America/Martinique', 'America/Matamoros', 'America/Mazatlan', 'America/Menominee', 'America/Merida', 'America/Metlakatla', 'America/Mexico_City', 'America/Miquelon', 'America/Moncton', 'America/Monterrey', 'America/Montevideo', 'America/Nassau', 'America/New_York', 'America/Nipigon', 'America/Nome', 'America/Noronha', 'America/North_Dakota/Beulah', 'America/North_Dakota/Center', 'America/North_Dakota/New_Salem', 'America/Ojinaga', 'America/Panama', 'America/Pangnirtung', 'America/Paramaribo', 'America/Phoenix', 'America/Port_of_Spain', 'America/Port-au-Prince', 'America/Porto_Velho', 'America/Puerto_Rico', 'America/Punta_Arenas', 'America/Rainy_River', 'America/Rankin_Inlet', 'America/Recife', 'America/Regina', 'America/Resolute', 'America/Rio_Branco', 'America/Santarem', 'America/Santiago', 'America/Santo_Domingo', 'America/Sao_Paulo', 'America/Scoresbysund', 'America/Sitka', 'America/St_Johns', 'America/Swift_Current', 'America/Tegucigalpa', 'America/Thule', 'America/Thunder_Bay', 'America/Tijuana', 'America/Toronto', 'America/Vancouver', 'America/Whitehorse', 'America/Winnipeg', 'America/Yakutat', 'America/Yellowknife', 'Antarctica/Casey', 'Antarctica/Davis', 'Antarctica/DumontDUrville', 'Antarctica/Macquarie', 'Antarctica/Mawson', 'Antarctica/Palmer', 'Antarctica/Rothera', 'Antarctica/Syowa', 'Antarctica/Troll', 'Antarctica/Vostok', 'Asia/Almaty', 'Asia/Amman', 'Asia/Anadyr', 'Asia/Aqtau', 'Asia/Aqtobe', 'Asia/Ashgabat', 'Asia/Atyrau', 'Asia/Baghdad', 'Asia/Baku', 'Asia/Bangkok', 'Asia/Barnaul', 'Asia/Beirut', 'Asia/Bishkek', 'Asia/Brunei', 'Asia/Chita', 'Asia/Choibalsan', 'Asia/Colombo', 'Asia/Damascus', 'Asia/Dhaka', 'Asia/Dili', 'Asia/Dubai', 'Asia/Dushanbe', 'Asia/Famagusta', 'Asia/Gaza', 'Asia/Hebron', 'Asia/Ho_Chi_Minh', 'Asia/Hong_Kong', 'Asia/Hovd', 'Asia/Irkutsk', 'Asia/Jakarta', 'Asia/Jayapura', 'Asia/Jerusalem', 'Asia/Kabul', 'Asia/Kamchatka', 'Asia/Karachi', 'Asia/Kathmandu', 'Asia/Khandyga', 'Asia/Kolkata', 'Asia/Krasnoyarsk', 'Asia/Kuala_Lumpur', 'Asia/Kuching', 'Asia/Macau', 'Asia/Magadan', 'Asia/Makassar', 'Asia/Manila', 'Asia/Novokuznetsk', 'Asia/Novosibirsk', 'Asia/Omsk', 'Asia/Oral', 'Asia/Pontianak', 'Asia/Pyongyang', 'Asia/Qatar', 'Asia/Qyzylorda', 'Asia/Riyadh', 'Asia/Sakhalin', 'Asia/Samarkand', 'Asia/Seoul', 'Asia/Shanghai', 'Asia/Singapore', 'Asia/Srednekolymsk', 'Asia/Taipei', 'Asia/Tashkent', 'Asia/Tbilisi', 'Asia/Tehran', 'Asia/Thimphu', 'Asia/Tokyo', 'Asia/Tomsk', 'Asia/Ulaanbaatar', 'Asia/Urumqi', 'Asia/Ust-Nera', 'Asia/Vladivostok', 'Asia/Yakutsk', 'Asia/Yangon', 'Asia/Yekaterinburg', 'Asia/Yerevan', 'Atlantic/Azores', 'Atlantic/Bermuda', 'Atlantic/Canary', 'Atlantic/Cape_Verde', 'Atlantic/Faroe', 'Atlantic/Madeira', 'Atlantic/Reykjavik', 'Atlantic/South_Georgia', 'Atlantic/Stanley', 'Australia/Adelaide', 'Australia/Brisbane', 'Australia/Broken_Hill', 'Australia/Currie', 'Australia/Darwin', 'Australia/Eucla', 'Australia/Hobart', 'Australia/Lindeman', 'Australia/Lord_Howe', 'Australia/Melbourne', 'Australia/Perth', 'Australia/Sydney', 'Etc/GMT', 'Etc/GMT+1', 'Etc/GMT+10', 'Etc/GMT+11', 'Etc/GMT+12', 'Etc/GMT+2', 'Etc/GMT+3', 'Etc/GMT+4', 'Etc/GMT+5', 'Etc/GMT+6', 'Etc/GMT+7', 'Etc/GMT+8', 'Etc/GMT+9', 'Etc/GMT-1', 'Etc/GMT-10', 'Etc/GMT-11', 'Etc/GMT-12', 'Etc/GMT-13', 'Etc/GMT-14', 'Etc/GMT-2', 'Etc/GMT-3', 'Etc/GMT-4', 'Etc/GMT-5', 'Etc/GMT-6', 'Etc/GMT-7', 'Etc/GMT-8', 'Etc/GMT-9', 'Etc/UTC', 'Europe/Amsterdam', 'Europe/Andorra', 'Europe/Astrakhan', 'Europe/Athens', 'Europe/Belgrade', 'Europe/Berlin', 'Europe/Brussels', 'Europe/Bucharest', 'Europe/Budapest', 'Europe/Chisinau', 'Europe/Copenhagen', 'Europe/Dublin', 'Europe/Gibraltar', 'Europe/Helsinki', 'Europe/Istanbul', 'Europe/Kaliningrad', 'Europe/Kiev', 'Europe/Kirov', 'Europe/Lisbon', 'Europe/London', 'Europe/Luxembourg', 'Europe/Madrid', 'Europe/Malta', 'Europe/Minsk', 'Europe/Monaco', 'Europe/Moscow', 'Asia/Nicosia', 'Europe/Oslo', 'Europe/Paris', 'Europe/Prague', 'Europe/Riga', 'Europe/Rome', 'Europe/Samara', 'Europe/Saratov', 'Europe/Simferopol', 'Europe/Sofia', 'Europe/Stockholm', 'Europe/Tallinn', 'Europe/Tirane', 'Europe/Ulyanovsk', 'Europe/Uzhgorod', 'Europe/Vienna', 'Europe/Vilnius', 'Europe/Volgograd', 'Europe/Warsaw', 'Europe/Zaporozhye', 'Europe/Zurich', 'Indian/Chagos', 'Indian/Christmas', 'Indian/Cocos', 'Indian/Kerguelen', 'Indian/Mahe', 'Indian/Maldives', 'Indian/Mauritius', 'Indian/Reunion', 'Pacific/Apia', 'Pacific/Auckland', 'Pacific/Bougainville', 'Pacific/Chatham', 'Pacific/Chuuk', 'Pacific/Easter', 'Pacific/Efate', 'Pacific/Enderbury', 'Pacific/Fakaofo', 'Pacific/Fiji', 'Pacific/Funafuti', 'Pacific/Galapagos', 'Pacific/Gambier', 'Pacific/Guadalcanal', 'Pacific/Guam', 'Pacific/Honolulu', 'Pacific/Kiritimati', 'Pacific/Kosrae', 'Pacific/Kwajalein', 'Pacific/Majuro', 'Pacific/Marquesas', 'Pacific/Nauru', 'Pacific/Niue', 'Pacific/Norfolk', 'Pacific/Noumea', 'Pacific/Pago_Pago', 'Pacific/Palau', 'Pacific/Pitcairn', 'Pacific/Pohnpei', 'Pacific/Port_Moresby', 'Pacific/Rarotonga', 'Pacific/Tahiti', 'Pacific/Tarawa', 'Pacific/Tongatapu', 'Pacific/Wake', 'Pacific/Wallis'];\nexport default timeZones;\n","import React from 'react';\nimport { TextField, TextFieldProps } from '@material-ui/core';\n\nexport default function NumberField({ inputProps, ...props }: TextFieldProps) {\n return (\n {\n if (!event.key.match(/(\\d|-|\\.)/)) {\n event.preventDefault();\n }\n },\n }}\n />\n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport {\n Map, Marker, ScaleControl, TileLayer,\n} from 'react-leaflet';\nimport leaflet from 'leaflet';\nimport { Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport marker from '../assets/stop-marker.svg';\nimport NumberField from './NumberField';\n\nexport const coordsValid = (lat: string, lon: string) => (\n lat !== '' && Number(lat) >= -90 && Number(lat) <= 90\n && lon !== '' && Number(lon) >= -180 && Number(lon) <= 180\n);\n\nconst useStyles = makeStyles({\n root: {},\n header: {\n fontWeight: 400,\n marginBottom: 8,\n },\n map: {\n width: '100%',\n height: 425,\n marginBottom: 24,\n },\n row: {\n display: 'flex',\n margin: '0 -12px 24px',\n },\n field: {\n width: '50%',\n margin: '0 12px',\n backgroundColor: 'white',\n },\n});\n\ninterface Props {\n lat: string;\n setLat: (lat: string) => void;\n lon: string;\n setLon: (lon: string) => void;\n initialViewport?: {\n center: [number, number],\n zoom: number,\n };\n noHeader?: boolean;\n}\n\nexport default function SelectLocation(props: Props) {\n const {\n lat, setLat, lon, setLon, initialViewport = null, noHeader,\n } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n const mapRef = useRef();\n const [mapViewport, setMapViewport] = useState(initialViewport);\n useEffect(() => {\n if (mapRef.current && !mapViewport) {\n mapRef.current.leafletElement.fitBounds(\n new leaflet.LatLngBounds([\n [56.464660, 14.408800],\n [53.570577, 19.443904],\n ]),\n );\n }\n }, [mapViewport]);\n useEffect(() => {\n if (coordsValid(lat, lon)) {\n setMapViewport({\n center: [Number(lat), Number(lon)],\n zoom: 16,\n });\n }\n }, [lat, lon]);\n return (\n
\n {!noHeader && (\n \n {t('common.location')}\n \n )}\n {\n if (center && zoom) {\n setMapViewport({ center, zoom });\n }\n }}\n onclick={({ latlng }) => {\n setLat(String(latlng.lat));\n setLon(String(latlng.lng));\n }}\n // @ts-ignore\n fullscreenControl\n >\n \n \n {coordsValid(lat, lon) && (\n \n )}\n \n
\n setLat(target.value)}\n variant=\"outlined\"\n size=\"small\"\n id=\"lat\"\n inputProps={{ step: 0.00005 }}\n />\n setLon(target.value)}\n variant=\"outlined\"\n size=\"small\"\n id=\"lon\"\n inputProps={{ step: 0.00005 }}\n />\n
\n
\n );\n}\n","import React, {\n useContext, useEffect, useState,\n} from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Button, Checkbox, FormControlLabel, InputAdornment, TextField, Typography,\n} from '@material-ui/core';\nimport * as R from 'ramda';\nimport { ProviderContext } from '../../context';\nimport {\n IDataPattern, IDataRoute, IDataStop, IProvider,\n} from '../../interfaces';\nimport CustomAutocomplete from '../../common/CustomAutocomplete';\nimport { axios } from '../../utils';\nimport timeZones from './time-zones';\nimport { ReactComponent as Search } from '../../assets/search.svg';\nimport VersionInfo from '../VersionInfo';\nimport NewHeader from '../NewHeader';\nimport ButtonList from '../ButtonList';\nimport SelectLocation, { coordsValid } from '../../common/SelectLocation';\nimport DeleteDialog from '../DeleteDialog';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n display: 'flex',\n },\n left: {\n flexGrow: 1,\n },\n filtersRow: {\n display: 'flex',\n marginBottom: 16,\n },\n forRoute: {\n width: 184,\n marginRight: 16,\n },\n forPattern: {\n width: 300,\n },\n searchIcon: {\n margin: '0 4px 0 8px',\n },\n search: {\n width: 500,\n marginBottom: 24,\n },\n right: {\n width: 620,\n flexShrink: 0,\n },\n nameContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n marginBottom: 16,\n },\n stopName: {\n width: 300,\n },\n row: {\n display: 'flex',\n marginBottom: 24,\n },\n timeZone: {\n width: 300,\n marginBottom: 24,\n },\n accessibilityHeader: {\n fontWeight: 400,\n marginBottom: 8,\n },\n formControlLabel: {\n marginRight: 24,\n },\n saveContainer: {\n display: 'flex',\n alignItems: 'center',\n },\n discard: {\n marginRight: 16,\n marginLeft: 'auto',\n },\n});\n\nexport default function Stops() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { user: { agency }, providers, version } = useContext(ProviderContext);\n const {\n timeZone: agencyTimeZone,\n lat: agencyLat,\n lon: agencyLon,\n } = providers.find(R.propEq('id', agency)) as IProvider;\n const [stops, setStops] = useState([]);\n const [routes, setRoutes] = useState([]);\n const [patterns, setPatterns] = useState([]);\n const [route, setRoute] = useState(null);\n const [pattern, setPattern] = useState(null);\n const [search, setSearch] = useState('');\n const [selectedStop, setSelectedStop] = useState(null);\n const [stopName, setStopName] = useState('');\n const [nameError, setNameError] = useState(false);\n const [lat, setLat] = useState('');\n const [lon, setLon] = useState('');\n const [timeZone, setTimeZone] = useState(agencyTimeZone);\n const [accessible, setAccessible] = useState(false);\n const [elevator, setElevator] = useState(false);\n const [escalator, setEscalator] = useState(false);\n const [technical, setTechnical] = useState(false);\n useEffect(() => {\n (async () => {\n const [\n { data },\n { data: routesData },\n { data: patternsData },\n ] = await Promise.all([\n axios.get(`/${agency}/data/stops`, { params: { providerVersion: version!.id } }),\n axios.get(`/${agency}/data/routes`, { params: { providerVersion: version!.id } }),\n axios.get(`/${agency}/data/patterns`, { params: { providerVersion: version!.id } }),\n ]);\n setStops(data);\n setRoutes(routesData);\n setPatterns(patternsData);\n })();\n }, [agency, version]);\n const [deleteDialog, setDeleteDialog] = useState(false);\n const [deleteName, setDeleteName] = useState('');\n const loadData = (stop: IDataStop | null) => {\n if (stop) {\n setStopName(stop.name);\n setLat(String(stop.lat));\n setLon(String(stop.lon));\n setTimeZone(stop.timeZone);\n setAccessible(stop.accessible);\n setElevator(stop.elevator);\n setEscalator(stop.escalator);\n setTechnical(stop.technical);\n } else {\n setStopName('');\n setLat('');\n setLon('');\n setTimeZone(agencyTimeZone);\n setAccessible(false);\n setElevator(false);\n setEscalator(false);\n setTechnical(false);\n }\n setNameError(false);\n };\n const readOnly = !version?.hasUserLock;\n const canDelete = typeof selectedStop !== 'number'\n || !patterns.some((x) => x.stops.includes(selectedStop));\n return (\n
\n
\n \n {\n setSelectedStop('new');\n loadData(null);\n }}\n disabled={readOnly}\n />\n
\n {\n setRoute(value);\n setPattern(null);\n }}\n label={t('data.forRoute')}\n className={classes.forRoute}\n getOptionLabel={R.prop('name')}\n />\n setPattern(value)}\n label={t('data.forPattern')}\n className={classes.forPattern}\n getOptionLabel={R.prop('name')}\n />\n
\n \n \n \n ),\n }}\n label={t('data.stopName')}\n value={search}\n onChange={({ target: { value } }) => setSearch(value)}\n className={classes.search}\n variant=\"outlined\"\n size=\"small\"\n />\n (\n (!route || patterns\n .filter(R.propEq('route', route.id))\n .some((x) => x.stops.includes(stop.id)))\n && (!pattern || pattern.stops.includes(stop.id))\n && stop.name.toLowerCase().includes(search.toLowerCase())\n )).map((stop) => ({\n id: stop.id,\n name: stop.name,\n onClick: () => {\n setSelectedStop(stop.id);\n loadData(stop);\n },\n }))\n )}\n selected={selectedStop}\n />\n
\n
\n {selectedStop && (\n <>\n
\n {\n setStopName(target.value);\n setNameError(false);\n }}\n variant=\"outlined\"\n size=\"small\"\n error={nameError}\n helperText={nameError ? t('data.stopExists', { name: stopName }) : ''}\n />\n setTechnical(!target.checked)}\n disabled={!canDelete}\n />\n )}\n label={t('data.availableToPassengers')}\n />\n
\n \n value && setTimeZone(value)}\n className={classes.timeZone}\n label={t('data.timeZone')}\n />\n \n {t('data.accessibility')}\n \n
\n setAccessible(target.checked)}\n color=\"primary\"\n />\n )}\n label={t('data.accessible')}\n className={classes.formControlLabel}\n />\n setElevator(target.checked)}\n color=\"primary\"\n />\n )}\n label={t('data.elevator')}\n className={classes.formControlLabel}\n />\n setEscalator(target.checked)}\n color=\"primary\"\n />\n )}\n label={t('data.escalator')}\n className={classes.formControlLabel}\n />\n
\n
\n {typeof selectedStop === 'number' && (\n {\n setDeleteDialog(true);\n setDeleteName(stops.find(R.propEq('id', selectedStop))!.name);\n }}\n disabled={readOnly}\n >\n {t('data.deleteStop')}\n \n )}\n {\n loadData(\n typeof selectedStop === 'number'\n ? stops.find(R.propEq('id', selectedStop)) || null\n : null,\n );\n }}\n >\n {t('data.discardChanges')}\n \n {\n if (stops.some((x) => x.name === stopName && x.id !== selectedStop)) {\n setNameError(true);\n return;\n }\n const stopData = {\n name: stopName,\n lat: Number(lat),\n lon: Number(lon),\n timeZone,\n accessible,\n elevator,\n escalator,\n technical,\n };\n if (selectedStop === 'new') {\n const { data } = await axios.post(`/${agency}/data/stop`, stopData);\n setStops(R.append(data));\n } else {\n await axios.put(`/${agency}/data/stop/${selectedStop}`, stopData);\n setStops(R.map((x) => (x.id === selectedStop ? {\n id: selectedStop,\n ...stopData,\n } : x)));\n }\n setSelectedStop(null);\n }}\n >\n {t('data.save')}\n \n
\n \n )}\n
\n setDeleteDialog(false)}\n text={canDelete ? t(\n 'data.deleteStopConfirm',\n { name: deleteName },\n ) : t('data.stopDeleteError')}\n onDelete={async () => {\n await axios.delete(`/${agency}/data/stop/${selectedStop}`);\n setStops(R.filter((x) => x.id !== selectedStop));\n setSelectedStop(null);\n setDeleteDialog(false);\n }}\n canDelete={canDelete}\n />\n
\n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Button, IconButton, TextField, Typography,\n} from '@material-ui/core';\nimport * as R from 'ramda';\nimport moment, { Moment } from 'moment';\nimport classNames from 'classnames';\nimport CustomAutocomplete from '../../common/CustomAutocomplete';\nimport { ProviderContext } from '../../context';\nimport {\n IDataCalendar, IDataPattern, IDataRoute, IDataTrip, IWeekDay,\n} from '../../interfaces';\nimport VersionInfo from '../VersionInfo';\nimport CustomDatePicker from '../../common/CustomDatePicker';\nimport { ReactComponent as Clear } from '../../assets/clear.svg';\nimport { axios } from '../../utils';\nimport NewHeader from '../NewHeader';\nimport ButtonList from '../ButtonList';\nimport DeleteDialog from '../DeleteDialog';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n display: 'flex',\n },\n left: {\n flexGrow: 1,\n },\n filtersRow: {\n display: 'flex',\n marginBottom: 16,\n },\n forRoute: {\n width: 184,\n marginRight: 16,\n },\n forTrip: {\n width: 300,\n },\n right: {\n width: 620,\n flexShrink: 0,\n },\n name: {\n width: 500,\n },\n copyCalendar: {\n display: 'flex',\n alignItems: 'center',\n margin: '24px -16px',\n padding: 16,\n backgroundColor: '#F5F5F5',\n },\n copyField: {\n width: 300,\n marginLeft: 16,\n },\n copyButton: {\n marginLeft: 16,\n },\n subheader: {\n fontWeight: 400,\n color: '#37001F',\n marginBottom: 16,\n },\n dayButton: {\n fontSize: 24,\n fontWeight: 400,\n marginRight: 8,\n marginBottom: 32,\n borderRadius: 15,\n padding: '1px 18px',\n backgroundColor: '#F5F5F5',\n },\n buttonSelected: {\n backgroundColor: '#A1145C',\n color: 'white',\n '&:hover': {\n backgroundColor: '#c62e8a',\n },\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 24,\n },\n datePicker: {\n width: 160,\n marginRight: 16,\n },\n dates: {\n display: 'flex',\n flexWrap: 'wrap',\n margin: '-8px -8px 24px -8px',\n },\n date: {\n display: 'flex',\n alignItems: 'center',\n borderRadius: 15,\n backgroundColor: '#F5F5F5',\n padding: '7px 14px',\n margin: 8,\n },\n dateText: {\n fontSize: 20,\n color: '#37001F',\n fontWeight: 400,\n },\n dateButton: {\n marginLeft: 16,\n },\n discardChanges: {\n marginLeft: 'auto',\n marginRight: 16,\n },\n remarks: {\n marginBottom: 40,\n },\n});\n\nexport default function Calendars() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { user: { agency }, version } = useContext(ProviderContext);\n const [calendars, setCalendars] = useState([]);\n const [selectedCalendar, setSelectedCalendar] = useState(null);\n const [routes, setRoutes] = useState([]);\n const [trips, setTrips] = useState([]);\n const [patterns, setPatterns] = useState([]);\n const [route, setRoute] = useState(null);\n const [trip, setTrip] = useState(null);\n const [name, setName] = useState('');\n const [nameError, setNameError] = useState(false);\n const [copyCalendar, setCopyCalendar] = useState(null);\n const [days, setDays] = useState([]);\n const [from, setFrom] = useState(null);\n const [to, setTo] = useState(null);\n const [periods, setPeriods] = useState<{ from: string; to: string; }[]>([]);\n const [additional, setAdditional] = useState([]);\n const [excluded, setExcluded] = useState([]);\n const [remarks, setRemarks] = useState('');\n const [deleteDialog, setDeleteDialog] = useState(false);\n const [deleteName, setDeleteName] = useState('');\n useEffect(() => {\n (async () => {\n const [\n { data },\n { data: tripsData },\n { data: patternsData },\n { data: routesData },\n ] = await Promise.all([\n axios.get(`/${agency}/data/calendars`, { params: { providerVersion: version!.id } }),\n axios.get(`/${agency}/data/trips`, { params: { providerVersion: version!.id } }),\n axios.get(`/${agency}/data/patterns`, { params: { providerVersion: version!.id } }),\n axios.get(`/${agency}/data/routes`, { params: { providerVersion: version!.id } }),\n ]);\n setCalendars(data);\n setTrips(tripsData);\n setPatterns(patternsData);\n setRoutes(routesData);\n })();\n }, [agency, version]);\n const formatDate = (date: string) => moment(date).format('DD.MM.YYYY');\n const formatISO = (date: Moment) => date.format('YYYY-MM-DD');\n const loadData = (calendar: IDataCalendar | null) => {\n setCopyCalendar(null);\n setFrom(null);\n setTo(null);\n if (calendar) {\n setName(calendar.name);\n setDays(calendar.days);\n setPeriods(calendar.periods);\n setAdditional(calendar.additional);\n setExcluded(calendar.excluded);\n setRemarks(calendar.remarks || '');\n } else {\n setName('');\n setDays([]);\n setPeriods([]);\n setAdditional([]);\n setExcluded([]);\n setRemarks('');\n }\n setNameError(false);\n };\n const readOnly = !version?.hasUserLock;\n const routeTrips = trips.filter((x) => (\n patterns.filter(R.propEq('route', route?.id)).some(R.propEq('id', x.pattern))\n ));\n const canDelete = typeof selectedCalendar !== 'number' || !trips.some(R.propEq('calendar', selectedCalendar));\n return (\n
\n
\n \n {\n setSelectedCalendar('new');\n loadData(null);\n }}\n disabled={readOnly}\n />\n
\n {\n setRoute(value);\n setTrip(null);\n }}\n label={t('data.forRoute')}\n className={classes.forRoute}\n getOptionLabel={R.prop('name')}\n />\n setTrip(value)}\n label={t('data.forTrip')}\n className={classes.forTrip}\n getOptionLabel={(x: IDataTrip) => {\n const calendarName = calendars.find(R.propEq('id', x.calendar))!.name;\n return `${x.type === 'SINGLE' ? x.departure : `${x.from}-${x.to}`}, ${calendarName}`;\n }}\n />\n
\n (\n (!route || routeTrips.some(R.propEq('calendar', x.id)))\n && (!trip || x.id === trip.calendar)\n )).map((calendar) => ({\n id: calendar.id,\n name: calendar.name,\n onClick: () => {\n setSelectedCalendar(calendar.id);\n loadData(calendar);\n },\n }))\n )}\n selected={selectedCalendar}\n />\n
\n
\n {selectedCalendar !== null && (\n <>\n {\n setName(target.value);\n setNameError(false);\n }}\n label={t('data.calendarName')}\n variant=\"outlined\"\n size=\"small\"\n className={classes.name}\n error={nameError}\n helperText={nameError ? t('data.calendarExists', { name }) : ''}\n />\n
\n \n {t('data.copyCalendarFrom')}\n \n setCopyCalendar(value)}\n label={t('data.calendar')}\n className={classes.copyField}\n getOptionLabel={R.prop('name')}\n />\n {\n if (!copyCalendar) return;\n setDays(copyCalendar.days);\n /* eslint-disable no-underscore-dangle */\n setPeriods(R.concat(R.__, copyCalendar.periods));\n setAdditional(R.concat(R.__, copyCalendar.additional));\n setExcluded(R.concat(R.__, copyCalendar.excluded));\n /* eslint-enable no-underscore-dangle */\n setCopyCalendar(null);\n }}\n >\n {t('data.copy')}\n \n
\n \n {t('data.scheduleEffective')}\n \n {(\n ['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY'] as IWeekDay[]\n ).map((day) => (\n setDays(\n days.includes(day) ? R.filter((x) => x !== day) : R.append(day),\n )}\n key={day}\n >\n {t(`data.${day}`)}\n \n ))}\n \n {t('data.periods')}\n \n
\n {\n if (newDate && to) {\n setPeriods(R.append({\n from: formatISO(newDate),\n to: formatISO(to),\n }));\n setFrom(null);\n setTo(null);\n } else {\n setFrom(newDate);\n }\n }}\n className={classes.datePicker}\n label={t('data.from')}\n maxDate={to || undefined}\n />\n {\n if (newDate && from) {\n setPeriods(R.append({\n from: formatISO(from),\n to: formatISO(newDate),\n }));\n setFrom(null);\n setTo(null);\n } else {\n setTo(newDate);\n }\n }}\n className={classes.datePicker}\n label={t('data.to')}\n minDate={from || undefined}\n />\n
\n
\n {periods.map((period) => (\n
\n \n {formatDate(period.from)}\n {' - '}\n {formatDate(period.to)}\n \n {\n setPeriods(R.filter((x) => x !== period));\n }}\n >\n \n \n
\n ))}\n
\n \n {t('data.additionalDates')}\n \n
\n {\n if (newDate) {\n setAdditional(R.append(formatISO(newDate)));\n }\n }}\n className={classes.datePicker}\n label={t('data.date')}\n />\n
\n
\n {additional.map((date) => (\n
\n \n {formatDate(date)}\n \n {\n setAdditional(R.filter((x) => x !== date));\n }}\n >\n \n \n
\n ))}\n
\n \n {t('data.excludedDates')}\n \n
\n {\n if (newDate) {\n setExcluded(R.append(formatISO(newDate)));\n }\n }}\n className={classes.datePicker}\n label={t('data.date')}\n />\n
\n
\n {excluded.map((date) => (\n
\n \n {formatDate(date)}\n \n {\n setExcluded(R.filter((x) => x !== date));\n }}\n >\n \n \n
\n ))}\n
\n setRemarks(target.value)}\n label={t('data.patternRemarks')}\n variant=\"outlined\"\n size=\"small\"\n fullWidth\n multiline\n rows={2}\n className={classes.remarks}\n />\n
\n {selectedCalendar !== 'new' && (\n {\n setDeleteDialog(true);\n setDeleteName(calendars.find(R.propEq('id', selectedCalendar))!.name);\n }}\n disabled={readOnly}\n >\n {t('data.deleteCalendar')}\n \n )}\n {\n loadData(\n selectedCalendar === 'new'\n ? null\n : calendars.find((x) => x.id === selectedCalendar) || null,\n );\n }}\n >\n {t('data.discardChanges')}\n \n {\n if (calendars.some((x) => x.name === name && x.id !== selectedCalendar)) {\n setNameError(true);\n return;\n }\n const calendarData = {\n name,\n days,\n periods,\n additional,\n excluded,\n remarks: remarks || undefined,\n };\n if (selectedCalendar === 'new') {\n const { data } = await axios.post(`/${agency}/data/calendar`, calendarData);\n setCalendars(R.append(data));\n } else {\n await axios.put(`/${agency}/data/calendar/${selectedCalendar}`, calendarData);\n setCalendars(R.map((x) => (x.id === selectedCalendar ? {\n ...x,\n ...calendarData,\n } : x)));\n }\n setSelectedCalendar(null);\n }}\n >\n {t('data.save')}\n \n
\n \n )}\n
\n setDeleteDialog(false)}\n text={canDelete ? t(\n 'data.deleteCalendarConfirm',\n { name: deleteName },\n ) : t('data.calendarDeleteError')}\n onDelete={async () => {\n await axios.delete(`/${agency}/data/calendar/${selectedCalendar}`);\n setSelectedCalendar(null);\n setCalendars(R.filter((x) => x.id !== selectedCalendar));\n setDeleteDialog(false);\n }}\n canDelete={canDelete}\n />\n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(287 -279.204) rotate(90)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(32.39)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n y1: 7.407,\n x2: 4.444,\n transform: \"translate(247.5 266.5)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 4.444,\n y1: 7.407,\n transform: \"translate(251.944 266.5)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y1: 20,\n transform: \"translate(251.944 266.5)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n})));\n\nvar SvgCopyArrow = function SvgCopyArrow(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 21.186,\n height: 10.261,\n viewBox: \"0 0 21.186 10.261\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCopyArrow, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/copy-arrow.b5783a4f.svg\";\nexport { ForwardRef as ReactComponent };","import React, {\n forwardRef, useEffect, useRef, useState,\n} from 'react';\nimport {\n Map, ScaleControl, TileLayer, FeatureGroup,\n} from 'react-leaflet';\nimport { EditControl } from 'react-leaflet-draw';\nimport { LatLng, Polyline, LatLngBounds } from 'leaflet';\nimport 'leaflet-fullscreen';\nimport { IShapePoint } from '../interfaces';\n\ntype IPoints = { lat: number; lon: number; }[];\n\ninterface Props {\n points: IPoints;\n setPoints: (points: IPoints) => void;\n enabled: boolean;\n className?: string;\n children?: React.ReactNode;\n initialsCoords?: IShapePoint;\n}\n\nconst PathSelect = forwardRef((props: Props, ref) => {\n const {\n points, setPoints, enabled, className, children, initialsCoords,\n } = props;\n const mapRef = useRef();\n const layer = useRef();\n const featureGroup = useRef(null);\n const [ready, setReady] = useState(false);\n useEffect(() => {\n if (layer.current) {\n layer.current.remove();\n }\n if (points.length > 0 && featureGroup.current) {\n layer.current = new Polyline(points.map(({ lat, lon }) => ({ lat, lng: lon })));\n featureGroup.current.leafletElement.addLayer(layer.current);\n if (mapRef && 'current' in mapRef && mapRef.current) {\n mapRef.current.leafletElement.fitBounds(\n new LatLngBounds(points.map(({ lat, lon }) => [lat, lon])),\n );\n }\n }\n }, [points, ready]);\n useEffect(() => {\n if (mapRef && 'current' in mapRef && mapRef.current && initialsCoords) {\n mapRef.current.leafletElement.setView(\n { lat: initialsCoords.lat, lng: initialsCoords.lon },\n 16,\n );\n }\n }, [initialsCoords, ref]);\n return (\n setReady(true)}\n >\n \n \n {enabled && (\n \n {\n layer.current = event.layer;\n const latLngs: LatLng[] = event.layer.getLatLngs();\n setPoints(latLngs.map(({ lat, lng }) => ({ lat, lon: lng })));\n }}\n onEdited={(event: any) => {\n const layers = event.layers.getLayers();\n if (layers.length === 1) {\n const latLngs: LatLng[] = layers[0].getLatLngs();\n setPoints(latLngs.map(({ lat, lng }) => ({ lat, lon: lng })));\n }\n }}\n onDeleted={() => setPoints([])}\n />\n \n )}\n {children}\n \n );\n});\n\nexport default PathSelect;\n","import React, {\n useContext, useEffect, useRef, useState,\n} from 'react';\nimport {\n Button, TextField, Typography,\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport * as R from 'ramda';\nimport leaflet from 'leaflet';\nimport { Map, Marker } from 'react-leaflet';\nimport moment from 'moment';\nimport polyline from '@mapbox/polyline';\nimport { getDistance } from 'geolib';\nimport 'leaflet-draw';\nimport 'leaflet-draw/dist/leaflet.draw.css';\nimport { IDataShape, IDataStop, IDataTrip } from '../../interfaces';\nimport VersionInfo from '../VersionInfo';\nimport { ProviderContext } from '../../context';\nimport { axios } from '../../utils';\nimport marker from '../../assets/stop-marker.svg';\nimport NewHeader from '../NewHeader';\nimport ButtonList from '../ButtonList';\nimport DeleteDialog from '../DeleteDialog';\nimport PathSelect from '../../common/PathSelect';\n\ninterface Props {\n shapes: IDataShape[];\n setShapes: (updateShapes: (shapes: IDataShape[]) => IDataShape[]) => void;\n selectedShape: number | null;\n chooseShape: (id: number | null) => void;\n start: IDataStop;\n end: IDataStop;\n goBack: () => void;\n trips: IDataTrip[];\n selectedTrip: number | 'new' | null;\n}\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n display: 'flex',\n minHeight: 600,\n },\n left: {\n width: 500,\n flexShrink: 0,\n marginRight: 32,\n },\n goBack: {\n marginBottom: 16,\n },\n start: {\n marginBottom: 8,\n fontSize: 20,\n },\n end: {\n marginBottom: 16,\n fontSize: 20,\n },\n label: {\n fontWeight: 400,\n },\n name: {\n width: 400,\n margin: '32px 0',\n },\n row: {\n display: 'flex',\n marginBottom: 32,\n },\n fileInput: {\n display: 'none',\n },\n import: {\n marginRight: 16,\n },\n distance: {\n marginBottom: 16,\n fontSize: 20,\n },\n discardChanges: {\n marginLeft: 'auto',\n marginRight: 16,\n },\n right: {\n flexGrow: 1,\n },\n map: {\n height: '100%',\n },\n});\n\nexport default function Shapes(props: Props) {\n const {\n shapes, setShapes, selectedShape: initSelectedShape, chooseShape, start, end, goBack, trips,\n selectedTrip,\n } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n const { user: { agency }, version } = useContext(ProviderContext);\n const [selectedShape, setSelectedShape] = useState(null);\n const [name, setName] = useState('');\n const [nameError, setNameError] = useState(false);\n const [points, setPoints] = useState<{ lat: number; lon: number; }[]>([]);\n const inputRef = useRef(null);\n const [deleteDialog, setDeleteDialog] = useState(false);\n const [deleteName, setDeleteName] = useState('');\n const mapRef = useRef(null);\n useEffect(() => {\n if (mapRef.current) {\n const bounds = points.length > 0\n ? leaflet.polyline(points.map(({ lat, lon }) => [lat, lon])).getBounds()\n : new leaflet.LatLngBounds([\n [start.lat, start.lon],\n [end.lat, end.lon],\n ]);\n mapRef.current.leafletElement.fitBounds(bounds, { padding: [32, 32] });\n }\n }, [points, start, end]);\n const loadData = (shape: IDataShape | null) => {\n if (shape) {\n setName(shape.name);\n setPoints(shape.points);\n } else {\n setName('');\n setPoints([]);\n }\n setNameError(false);\n };\n const initShape = shapes.find(R.propEq('id', initSelectedShape));\n useEffect(() => {\n if (initSelectedShape) {\n setSelectedShape(initSelectedShape);\n loadData(initShape as IDataShape);\n }\n }, [initSelectedShape, initShape]);\n const distance = R.sum(points.map((x, i) => (\n i === points.length - 1 ? 0 : getDistance(x, points[i + 1])\n )));\n const readOnly = !version?.hasUserLock;\n const canDelete = typeof selectedShape !== 'number'\n || !trips.some((x) => (\n x.id !== selectedTrip && x.stops.some((y) => y.shape === selectedShape)\n ));\n return (\n
\n
\n \n \n {'< '}\n {t('data.back')}\n \n \n \n {t('data.start')}\n {': '}\n \n {start.name}\n \n \n \n {t('data.end')}\n {': '}\n \n {end.name}\n \n {\n setSelectedShape('new');\n loadData(null);\n }}\n disabled={readOnly}\n />\n ({\n id: shape.id,\n name: shape.name,\n onClick: () => {\n if (selectedShape === shape.id) {\n setSelectedShape(null);\n chooseShape(null);\n setPoints([]);\n } else {\n setSelectedShape(shape.id);\n chooseShape(shape.id);\n loadData(shape);\n }\n },\n }))}\n selected={selectedShape}\n />\n {selectedShape !== null && (\n <>\n {\n setName(target.value);\n setNameError(false);\n }}\n label={t('data.shapeName')}\n className={classes.name}\n variant=\"outlined\"\n size=\"small\"\n error={nameError}\n helperText={nameError ? t('data.shapeExists', { name }) : ''}\n />\n
\n {\n if (target.files && target.files[0]) {\n const reader = new FileReader();\n reader.addEventListener('load', () => {\n if (reader.result) {\n setPoints(reader.result.toString().split('\\n').map((line) => {\n const [lat, lon] = line.split(',').map(Number);\n return { lat, lon };\n }));\n }\n });\n reader.readAsText(target.files[0]);\n }\n }}\n />\n inputRef.current && inputRef.current.click()}\n >\n {t('data.importShape')}\n \n {\n const { data } = await axios.get('/public/plan-trip', {\n params: {\n fromLat: start.lat,\n fromLon: start.lon,\n toLat: end.lat,\n toLon: end.lon,\n dateTime: moment().format('YYYY-MM-DDTHH:mm:ss'),\n arriveBy: false,\n car: true,\n },\n });\n setPoints(polyline.decode(data.plan.itineraries[0].legs[0].legGeometry.points)\n .map(([lat, lon]) => ({ lat, lon })));\n }}\n >\n {t('data.findShape')}\n \n
\n \n \n {t('data.distance')}\n {': '}\n \n {distance ? `${distance} m` : '-'}\n \n
\n {selectedShape !== 'new' && (\n {\n setDeleteDialog(true);\n setDeleteName(shapes.find(R.propEq('id', selectedShape))!.name);\n }}\n disabled={readOnly}\n >\n {t('data.deleteShape')}\n \n )}\n {\n loadData(\n selectedShape === 'new'\n ? null\n : shapes.find((x) => x.id === selectedShape) || null,\n );\n }}\n >\n {t('data.discardChanges')}\n \n {\n if (shapes.some((x) => x.name === name && x.id !== selectedShape)) {\n setNameError(true);\n return;\n }\n const newPoints = getDistance(points[0], end) < getDistance(points[0], start)\n ? R.reverse(points)\n : points;\n const shapeData = {\n from: start.id,\n to: end.id,\n name,\n points: newPoints,\n };\n if (selectedShape === 'new') {\n const { data } = await axios.post(`/${agency}/data/shape`, shapeData);\n setShapes(R.append(data));\n chooseShape(data.id);\n } else {\n await axios.put(`/${agency}/data/shape/${selectedShape}`, shapeData);\n setShapes(R.map((x) => (x.id === selectedShape ? {\n ...x,\n ...shapeData,\n } as IDataShape : x)));\n chooseShape(selectedShape);\n }\n goBack();\n }}\n >\n {t('data.save')}\n \n
\n \n )}\n
\n
\n \n \n \n \n
\n setDeleteDialog(false)}\n text={canDelete ? t(\n 'data.deleteShapeConfirm',\n { name: deleteName },\n ) : t('data.shapeDeleteError')}\n onDelete={async () => {\n await axios.delete(`/${agency}/data/shape/${selectedShape}`);\n chooseShape(null);\n setSelectedShape(null);\n setShapes(R.filter((x) => x.id !== selectedShape));\n setDeleteDialog(false);\n setPoints([]);\n }}\n canDelete={canDelete}\n />\n
\n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {\n Button, TextField, Typography,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport * as R from 'ramda';\nimport classNames from 'classnames';\nimport moment from 'moment';\nimport { getDistance } from 'geolib';\nimport { ProviderContext } from '../../context';\nimport VersionInfo from '../VersionInfo';\nimport {\n IDataCalendar,\n IDataPattern, IDataRoute, IDataShape, IDataStop, IDataTrip,\n} from '../../interfaces';\nimport { axios } from '../../utils';\nimport CustomAutocomplete from '../../common/CustomAutocomplete';\nimport { ReactComponent as CopyArrow } from '../../assets/copy-arrow.svg';\nimport Shapes from './Shapes';\nimport NewHeader from '../NewHeader';\nimport ButtonList from '../ButtonList';\nimport DeleteDialog from '../DeleteDialog';\nimport NumberField from '../../common/NumberField';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n display: 'flex',\n },\n left: {\n flexGrow: 1,\n },\n right: {\n width: 680,\n flexShrink: 0,\n marginLeft: 16,\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 16,\n },\n forRoute: {\n width: 230,\n marginRight: 16,\n },\n forPattern: {\n width: 300,\n },\n type: {\n width: 230,\n },\n copyRow: {\n display: 'flex',\n alignItems: 'center',\n margin: '24px -16px',\n padding: 16,\n backgroundColor: '#F5F5F5',\n },\n copyTrip: {\n width: 300,\n margin: '0 16px',\n },\n scheduleHeader: {\n fontSize: 18,\n fontWeight: 400,\n color: '#37001F',\n marginBottom: 16,\n },\n tableHeader: {\n fontWeight: 400,\n color: '#37001F',\n textAlign: 'left',\n },\n tableNo: {\n width: 60,\n },\n tableStop: {\n width: 300,\n },\n tableArrival: {\n width: 100,\n },\n tableDeparture: {\n width: 100,\n },\n tableShape: {\n width: 130,\n },\n cell: {\n color: '#37001F',\n },\n timeField: {\n width: 80,\n },\n tableRow: {\n height: 48,\n },\n addShape: {\n transform: 'translateY(24px)',\n },\n copyTimesButton: {\n display: 'flex',\n marginLeft: 'auto',\n marginRight: 220,\n },\n copyArrow: {\n marginLeft: 8,\n },\n totalDistance: {\n marginBottom: 32,\n fontSize: 20,\n color: '#37001F',\n },\n totalDistanceLabel: {\n fontWeight: 400,\n },\n calendar: {\n width: 300,\n marginBottom: 16,\n },\n discardChanges: {\n marginLeft: 'auto',\n marginRight: 16,\n },\n tripName: {\n marginLeft: 16,\n fontSize: 24,\n fontWeight: 700,\n color: '#37001F',\n },\n blockField: {\n width: 160,\n '&:not(:last-child)': {\n marginRight: 16,\n },\n },\n hoursFormat: {\n color: 'rgba(0, 0, 0, 0.54)',\n fontSize: 12,\n marginBottom: 8,\n },\n});\n\nexport default function Trips() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { user: { agency }, version } = useContext(ProviderContext);\n const [trips, setTrips] = useState([]);\n const [routes, setRoutes] = useState([]);\n const [patterns, setPatterns] = useState([]);\n const [stops, setStops] = useState([]);\n const [calendars, setCalendars] = useState([]);\n const [shapes, setShapes] = useState([]);\n const [searchRoute, setSearchRoute] = useState(null);\n const [searchPattern, setSearchPattern] = useState(null);\n const [selectedTrip, setSelectedTrip] = useState(null);\n const [route, setRoute] = useState(null);\n const [pattern, setPattern] = useState(null);\n const [type, setType] = useState<'SINGLE' | 'BLOCK' | null>(null);\n const [copyTrip, setCopyTrip] = useState(null);\n const [from, setFrom] = useState('');\n const [to, setTo] = useState('');\n const [firstTrip, setFirstTrip] = useState('');\n const [tripInterval, setTripInterval] = useState('');\n const [tripStops, setTripStops] = useState<{\n arrival: string;\n departure: string;\n shape: number | null;\n }[]>([]);\n const [editedShape, setEditedShape] = useState(null);\n const [calendar, setCalendar] = useState(null);\n const [deleteDialog, setDeleteDialog] = useState(false);\n const [saving, setSaving] = useState(false);\n useEffect(() => {\n (async () => {\n const [\n { data },\n { data: routesData },\n { data: patternsData },\n { data: stopsData },\n { data: calendarsData },\n { data: shapesData },\n ]: [\n { data: IDataTrip[] },\n { data: IDataRoute[] },\n { data: IDataPattern[] },\n { data: IDataStop[] },\n { data: IDataCalendar[] },\n { data: IDataShape[] },\n ] = await Promise.all([\n axios.get(`/${agency}/data/trips`, { params: { providerVersion: version!.id } }),\n axios.get(`/${agency}/data/routes`, { params: { providerVersion: version!.id } }),\n axios.get(`/${agency}/data/patterns`, { params: { providerVersion: version!.id } }),\n axios.get(`/${agency}/data/stops`, { params: { providerVersion: version!.id } }),\n axios.get(`/${agency}/data/calendars`, { params: { providerVersion: version!.id } }),\n axios.get(`/${agency}/data/shapes`, { params: { providerVersion: version!.id } }),\n ]);\n setTrips(data);\n setPatterns(patternsData);\n setRoutes(routesData);\n setStops(stopsData);\n setCalendars(calendarsData);\n setShapes(shapesData);\n })();\n }, [agency, version]);\n const getTripName = (trip: IDataTrip) => {\n const calendarName = calendars.find(R.propEq('id', trip.calendar))!.name;\n return `${trip.type === 'SINGLE' ? trip.departure : `${trip.from}-${trip.to}`}, ${calendarName}`;\n };\n const loadSchedule = (trip: IDataTrip) => {\n const firstDeparture = trip.type === 'SINGLE' ? trip.departure : '00:00';\n const formatTime = (minutes: number | null) => (\n minutes === null ? '' : moment(firstDeparture, 'H:m').add(minutes, 'minutes').format('HH:mm')\n );\n const tripPattern = patterns.find(R.propEq('id', trip.pattern)) as IDataPattern;\n setTripStops(tripPattern.stops.map((x, i) => {\n const stop = trip.stops[i];\n return ({\n arrival: stop ? formatTime(stop.arrival) : '',\n departure: stop ? formatTime(stop.departure) : '',\n shape: stop?.shape || null,\n });\n }));\n if (trip.type === 'BLOCK') {\n setFrom(trip.from);\n setTo(trip.to);\n setFirstTrip(trip.firstTrip);\n setTripInterval(String(trip.interval));\n }\n };\n const loadData = (trip: IDataTrip | null) => {\n setCopyTrip(null);\n if (trip) {\n const tripPattern = patterns.find(R.propEq('id', trip.pattern)) as IDataPattern;\n setRoute(routes.find(R.propEq('id', tripPattern.route)) as IDataRoute);\n setPattern(tripPattern);\n setType(trip.type);\n loadSchedule(trip);\n setCalendar(calendars.find(R.propEq('id', trip.calendar)) || null);\n } else {\n setRoute(null);\n setPattern(null);\n setType(null);\n setTripStops([]);\n setCalendar(null);\n setFrom('');\n setTo('');\n setFirstTrip('');\n setTripInterval('');\n }\n };\n const readOnly = !version?.hasUserLock;\n if (editedShape !== null && pattern) {\n const start = stops.find(R.propEq('id', pattern.stops[editedShape])) as IDataStop;\n const end = stops.find(R.propEq('id', pattern.stops[editedShape + 1])) as IDataStop;\n return (\n x.from === start.id && x.to === end.id)}\n setShapes={setShapes}\n selectedShape={tripStops[editedShape].shape}\n chooseShape={(shape) => setTripStops(R.adjust(editedShape, R.mergeLeft({ shape })))}\n start={start}\n end={end}\n goBack={() => setEditedShape(null)}\n trips={trips}\n selectedTrip={selectedTrip}\n />\n );\n }\n const distance = R.init(tripStops).some((x) => x.shape === null) ? null : R.sum(\n R.init(tripStops).map(({ shape }) => {\n const { points } = shapes.find(R.propEq('id', shape)) as IDataShape;\n return R.sum(points.map((x, i) => (\n i === points.length - 1 ? 0 : getDistance(x, points[i + 1])\n )));\n }),\n );\n return (\n
\n
\n \n {\n setSelectedTrip('new');\n loadData(null);\n }}\n disabled={readOnly}\n />\n
\n {\n setSearchRoute(value);\n setSearchPattern(null);\n }}\n label={t('data.forRoute')}\n className={classes.forRoute}\n getOptionLabel={R.prop('name')}\n />\n setSearchPattern(value)}\n label={t('data.forPattern')}\n className={classes.forPattern}\n getOptionLabel={R.prop('name')}\n />\n
\n (\n searchPattern ? (x.pattern === searchPattern.id) : (\n patterns.filter(R.propEq('route', searchRoute.id)).map(R.prop('id')).includes(x.pattern)\n )\n )).map((trip) => ({\n id: trip.id,\n name: getTripName(trip),\n onClick: () => {\n setSelectedTrip(trip.id);\n loadData(trip);\n },\n })) : []}\n selected={selectedTrip}\n />\n
\n
\n {selectedTrip !== null && (\n <>\n
\n {\n setRoute(value);\n setPattern(null);\n }}\n label={t('data.forRoute')}\n className={classes.forRoute}\n getOptionLabel={R.prop('name')}\n />\n {\n setPattern(value);\n if (value) {\n setTripStops(value.stops.map(() => ({\n arrival: '',\n departure: '',\n shape: null,\n })));\n }\n }}\n label={t('data.forPattern')}\n className={classes.forPattern}\n getOptionLabel={R.prop('name')}\n />\n
\n
\n {\n setType(value as 'SINGLE' | 'BLOCK' | null);\n if (pattern) {\n setTripStops(pattern.stops.map(() => ({\n arrival: '',\n departure: '',\n shape: null,\n })));\n }\n }}\n label={t('data.type')}\n className={classes.type}\n getOptionLabel={(option) => (option === 'SINGLE' ? t('data.singleTrip') : t('data.tripBlock'))}\n noAdornment\n />\n \n {calendar && (type === 'SINGLE' ? tripStops[0].departure : (from && to)) && (\n `${type === 'SINGLE' ? tripStops[0].departure : `${from}-${to}`}, ${calendar.name}`\n )}\n \n
\n {pattern && type && (\n <>\n
\n \n {t('data.copyScheduleFrom')}\n \n setCopyTrip(value)}\n label={t('data.trip')}\n className={classes.copyTrip}\n getOptionLabel={getTripName}\n />\n {\n if (!copyTrip) return;\n loadSchedule(copyTrip);\n setCopyTrip(null);\n }}\n >\n {t('data.copy')}\n \n
\n {type === 'BLOCK' && (\n
\n setFrom(target.value)}\n label={t('data.fromHour')}\n className={classes.blockField}\n variant=\"outlined\"\n size=\"small\"\n placeholder=\"hh:mm\"\n />\n setTo(target.value)}\n label={t('data.toHour')}\n className={classes.blockField}\n variant=\"outlined\"\n size=\"small\"\n placeholder=\"hh:mm\"\n />\n setFirstTrip(target.value)}\n label={t('data.firstTrip')}\n className={classes.blockField}\n variant=\"outlined\"\n size=\"small\"\n placeholder=\"hh:mm\"\n />\n setTripInterval(target.value)}\n label={t('data.interval')}\n className={classes.blockField}\n variant=\"outlined\"\n size=\"small\"\n />\n
\n )}\n \n {type === 'SINGLE' ? t('data.schedule') : t('data.masterSchedule')}\n \n \n \n \n \n \n \n \n \n \n \n \n {pattern.stops.map((stopId, i) => (\n // eslint-disable-next-line react/no-array-index-key\n \n \n {i + 1}\n \n \n {stops.find(R.propEq('id', stopId))!.name}\n \n \n \n \n \n ))}\n \n
\n {t('data.no')}\n \n {t('data.stop')}\n \n {t('data.arrival')}\n \n {t('data.departure')}\n \n {t('data.shape')}\n
\n {i !== 0 ? (\n setTripStops(\n R.adjust(i, R.mergeLeft({ arrival: target.value })),\n )}\n className={classes.timeField}\n variant=\"outlined\"\n size=\"small\"\n placeholder=\"hh:mm\"\n />\n ) : (\n \n -\n \n )}\n \n {(() => {\n if (type === 'BLOCK') {\n if (i === 0) {\n return (\n \n 00:00\n \n );\n }\n }\n if (i === pattern.stops.length - 1) {\n return (\n \n -\n \n );\n }\n return (\n setTripStops(\n R.adjust(i, R.mergeLeft({ departure: target.value })),\n )}\n className={classes.timeField}\n variant=\"outlined\"\n size=\"small\"\n placeholder=\"hh:mm\"\n />\n );\n })()}\n \n {i !== pattern.stops.length - 1 && (\n setEditedShape(i)}\n >\n {tripStops[i].shape\n ? shapes.find(R.propEq('id', tripStops[i].shape))!.name\n : t('data.addShape')}\n \n )}\n
\n {\n setTripStops(R.map((x) => ({\n ...x,\n departure: x.arrival || x.departure,\n })));\n }}\n >\n {t('data.copy')}\n \n \n \n \n {t('data.totalDistance')}\n {': '}\n \n {distance ? `${distance} m` : '-'}\n \n setCalendar(value)}\n className={classes.calendar}\n getOptionLabel={R.prop('name')}\n label={t('data.scheduleEffective')}\n />\n
\n {selectedTrip !== 'new' && (\n setDeleteDialog(true)}\n disabled={readOnly}\n >\n {t('data.deleteTrip')}\n \n )}\n {\n loadData(\n selectedTrip === 'new'\n ? null\n : trips.find((x) => x.id === selectedTrip) || null,\n );\n }}\n >\n {t('data.discardChanges')}\n \n {\n if (readOnly || saving) return true;\n if (type === 'BLOCK' && (!from || !to || !firstTrip || !tripInterval)) return true;\n return !(calendar !== null && tripStops.every((x, i) => {\n if (i === 0) {\n return type === 'BLOCK' || x.departure !== '';\n }\n if (i === tripStops.length - 1) {\n return x.arrival !== '';\n }\n return x.arrival !== '' && x.departure !== '';\n }));\n })()}\n onClick={async () => {\n if (!calendar) return;\n const pad = (x: string) => x.padStart(5, '0');\n const firstDeparture = type === 'SINGLE' ? tripStops[0].departure : '00:00';\n const getDiff = (time: string) => {\n const diff = moment(time, 'H:m')\n .diff(moment(firstDeparture, 'H:m'), 'minutes');\n return diff < 0 ? diff + (24 * 60) : diff;\n };\n const tripData = {\n pattern: pattern.id,\n type,\n stops: tripStops.map((x, i) => ({\n arrival: getDiff(x.arrival),\n departure: i === tripStops.length - 1 ? null : getDiff(x.departure),\n shape: x.shape,\n })),\n calendar: calendar.id,\n ...(type === 'SINGLE' ? {\n departure: pad(firstDeparture),\n } : {\n from: pad(from),\n to: pad(to),\n firstTrip: pad(firstTrip),\n interval: Number(tripInterval),\n }),\n };\n try {\n setSaving(true);\n if (selectedTrip === 'new') {\n const { data } = await axios.post(`/${agency}/data/trip`, tripData);\n setTrips(R.append(data));\n } else {\n await axios.put(`/${agency}/data/trip/${selectedTrip}`, tripData);\n setTrips(R.map((x) => (x.id === selectedTrip ? {\n ...x,\n ...tripData,\n } as IDataTrip : x)));\n }\n setSelectedTrip(null);\n setSearchRoute(routes.find(R.propEq('id', pattern.route)) as IDataRoute);\n setSearchPattern(pattern);\n } finally {\n setSaving(false);\n }\n }}\n >\n {t('data.save')}\n \n
\n \n )}\n \n )}\n
\n setDeleteDialog(false)}\n text={typeof selectedTrip === 'number' ? t(\n 'data.deleteTripConfirm',\n { name: getTripName(trips.find(R.propEq('id', selectedTrip)) as IDataTrip) },\n ) : ''}\n onDelete={async () => {\n await axios.delete(`/${agency}/data/trip/${selectedTrip}`);\n setSelectedTrip(null);\n setTrips(R.filter((x) => x.id !== selectedTrip));\n setDeleteDialog(false);\n }}\n canDelete\n />\n
\n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {\n Button, Dialog, TextField, Typography,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport * as R from 'ramda';\nimport AppContext, { ProviderContext } from '../../context';\nimport { IDataChange, IDataVersion } from '../../interfaces';\nimport { axios } from '../../utils';\nimport VersionInfo from '../VersionInfo';\nimport CustomAutocomplete from '../../common/CustomAutocomplete';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n },\n header: {\n fontSize: 24,\n fontWeight: 700,\n marginBottom: 16,\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 32,\n },\n copyVersion: {\n width: 300,\n marginRight: 16,\n },\n toDraft: {\n marginRight: 16,\n },\n releaseName: {\n width: 300,\n marginRight: 16,\n },\n changes: {\n padding: '4px 0',\n margin: '16px -16px',\n backgroundColor: '#F5F5F5',\n },\n name: {\n fontWeight: 700,\n },\n noChanges: {\n padding: '8px 16px',\n },\n versionContainer: {\n display: 'flex',\n alignItems: 'center',\n height: 37,\n },\n takeoverButton: {\n marginLeft: 32,\n marginBottom: 16,\n },\n dialog: {\n padding: 24,\n },\n dialogText: {\n color: '#37001F',\n marginBottom: 16,\n },\n dialogButtons: {\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: -8,\n },\n});\n\nexport default function Manage() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { showSnackbar } = useContext(AppContext);\n const {\n user: { agency, role }, versions, setVersions, version,\n } = useContext(ProviderContext);\n const [copyVersion, setCopyVersion] = useState(null);\n const [name, setName] = useState('');\n const [changes, setChanges] = useState(null);\n useEffect(() => {\n (async () => {\n const { data } = await axios.get(`/${agency}/data/compare`);\n setChanges(data);\n })();\n }, [agency, versions]);\n const [takeoverDialog, setTakeoverDialog] = useState(false);\n const readOnly = role === 'AGENCY_EMPL';\n const updateVersions = async () => {\n const { data } = await axios.get(`/${agency}/versions`);\n setVersions(data);\n };\n if (!changes || !versions || !version) return null;\n return (\n
\n
\n \n {version.locked !== undefined && !version.hasUserLock && (\n setTakeoverDialog(true)}\n disabled={readOnly}\n >\n {t('data.takeOverEditing')}\n \n )}\n
\n \n {t('data.copy')}\n \n
\n x.type !== 'draft')}\n value={copyVersion}\n onChange={(event, value) => setCopyVersion(value)}\n getOptionLabel={R.prop('name')}\n className={classes.copyVersion}\n label={t('data.copyDataFrom')}\n />\n \n {t('data.toDraft')}\n \n {\n if (!copyVersion) return;\n await axios.put(`/${agency}/mgmt/draft`, { from: copyVersion.id });\n await updateVersions();\n setCopyVersion(null);\n showSnackbar(t('data.copiedToDraft'));\n }}\n disabled={readOnly || !copyVersion}\n >\n {t('data.copy')}\n \n
\n \n {t('data.publish')}\n \n
\n setName(target.value)}\n label={t('data.releaseName')}\n className={classes.releaseName}\n variant=\"outlined\"\n size=\"small\"\n />\n {\n if (!name) return;\n await axios.post(`/${agency}/mgmt/version`, { name });\n await updateVersions();\n setName('');\n showSnackbar(t('data.draftPublished'));\n }}\n disabled={readOnly || !name}\n >\n {t('data.publishDraft')}\n \n
\n \n {t('data.changesSummary')}\n :\n \n
\n {changes.length === 0 ? (\n \n {t('data.noChanges')}\n \n ) : (\n
    \n {changes.map((change, i) => (\n // eslint-disable-next-line react/no-array-index-key\n \n {change.action === 'ADDED' && t('data.added')}\n {change.action === 'DELETED' && t('data.deleted')}\n {change.action === 'CHANGED' && t('data.edited')}\n {change.action === 'RENAMED' && t('data.renamed')}\n {' '}\n {change.entity === 'route' && t('data.route')}\n {change.entity === 'pattern' && t('data.pattern')}\n {change.entity === 'stop' && t('data.changeStop')}\n {change.entity === 'trip' && change.type === 'SINGLE' && t('data.changeTrip')}\n {change.entity === 'trip' && change.type === 'BLOCK' && t('data.changeTripBlock')}\n {change.entity === 'shape' && t('data.changeShape')}\n {change.entity === 'calendar' && t('data.changeCalendar')}\n {' '}\n {(() => {\n if (change.action === 'RENAMED') {\n return (\n <>\n \n {change.from}\n \n {' '}\n {t('data.renamedTo')}\n {' '}\n \n {change.to}\n \n \n );\n }\n if (change.entity === 'trip') {\n return (\n <>\n \n {change.type === 'SINGLE'\n ? `${change.departure}, ${change.calendar}`\n : `${change.from}-${change.to}, ${change.calendar}`}\n \n {' '}\n {t('data.changeForRoute')}\n {' '}\n {change.route}\n {', '}\n {t('data.changeForPattern')}\n {' '}\n {change.pattern}\n \n );\n }\n return (\n \n {change.name}\n \n );\n })()}\n {change.entity === 'shape' && (\n <>\n {' '}\n {t('data.forStops')}\n {' '}\n \n {change.stopFrom}\n \n {' - '}\n \n {change.stopTo}\n \n \n )}\n \n ))}\n
\n )}\n
\n setTakeoverDialog(false)}\n >\n \n {t('data.takeoverConfirm', { author: version.author })}\n \n
\n setTakeoverDialog(false)}\n >\n {t('data.cancel')}\n \n {\n await axios.put(`/${agency}/mgmt/takeover`);\n await updateVersions();\n setTakeoverDialog(false);\n }}\n >\n {t('data.proceed')}\n \n
\n \n
\n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport moment, { Moment } from 'moment';\nimport { Button, Typography } from '@material-ui/core';\nimport classNames from 'classnames';\nimport * as R from 'ramda';\nimport { ProviderContext } from '../../../context';\nimport CustomDatePicker from '../../../common/CustomDatePicker';\nimport CustomAutocomplete from '../../../common/CustomAutocomplete';\nimport { axios, useGetLink } from '../../../utils';\nimport { ICrewAssignment, ICrewVehicle, IDriver } from '../../../interfaces';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n },\n topRow: {\n width: 800,\n marginTop: 32,\n display: 'flex',\n alignItems: 'center',\n },\n depot: {\n width: 300,\n marginLeft: 16,\n },\n printableVersion: {\n marginLeft: 'auto',\n },\n datePicker: {\n width: 140,\n },\n copyRow: {\n marginTop: 32,\n padding: '24px 32px',\n display: 'flex',\n alignItems: 'center',\n backgroundColor: '#F5F5F5',\n width: 800,\n },\n copyText: {\n color: '#37001F',\n },\n copyDate: {\n width: 190,\n marginLeft: 16,\n backgroundColor: 'white',\n },\n copyButton: {\n marginLeft: 24,\n },\n table: {\n marginTop: 32,\n width: 800,\n borderCollapse: 'collapse',\n },\n cell: {\n padding: '4px 8px',\n color: '#37001F',\n fontSize: 16,\n fontWeight: 300,\n textAlign: 'center',\n '&:first-child': {\n textAlign: 'left',\n },\n },\n headerCell: {\n fontWeight: 400,\n },\n tableRow: {\n '&:nth-child(even)': {\n backgroundColor: '#F5F5F5',\n },\n },\n vehicleID: {\n width: 140,\n backgroundColor: 'white',\n },\n shift: {\n width: 220,\n backgroundColor: 'white',\n },\n saveRow: {\n width: 800,\n marginTop: 32,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n saveButton: {\n marginLeft: 24,\n },\n});\n\nexport default function Assign() {\n const classes = useStyles();\n const { t } = useTranslation();\n const getLink = useGetLink();\n const { user: { agency } } = useContext(ProviderContext);\n const [depots, setDepots] = useState(null);\n const [vehicles, setVehicles] = useState(null);\n const [drivers, setDrivers] = useState(null);\n useEffect(() => {\n (async () => {\n const [\n { data: depotsData },\n { data: vehiclesData },\n { data: driversData },\n ] = await Promise.all([\n await axios.get(`/${agency}/depots`),\n await axios.get(`/${agency}/vehicles`),\n await axios.get(`/${agency}/drivers`),\n ]);\n setDepots(depotsData);\n setVehicles(vehiclesData);\n setDrivers(driversData);\n })();\n }, [agency]);\n const [date, setDate] = useState(null);\n const [depot, setDepot] = useState(null);\n const [assignedDates, setAssignedDates] = useState(null);\n useEffect(() => {\n (async () => {\n if (depot) {\n const { data } = await axios.get(`/${agency}/crew/assigned`, { params: { depot } });\n setAssignedDates(data);\n }\n })();\n }, [depot, agency]);\n const [copyDate, setCopyDate] = useState(null);\n const [table, setTable] = useState([]);\n const [initTable, setInitTable] = useState([]);\n useEffect(() => {\n (async () => {\n if (date && depot) {\n const { data } = await axios.get(`/${agency}/crew/assignment`, {\n params: {\n date: date.format('YYYY-MM-DD'),\n depot,\n },\n });\n setTable(data);\n setInitTable(data);\n }\n })();\n }, [date, depot, agency]);\n if (!depots || !vehicles || !drivers) return null;\n return (\n
\n
\n \n setDepot(value)}\n options={depots}\n className={classes.depot}\n label={t('data.depot')}\n />\n \n {t('data.printableVersion')}\n \n
\n {(date && depot && assignedDates) && (\n <>\n
\n \n {t('data.copyCrew')}\n \n setCopyDate(value)}\n options={assignedDates}\n getOptionLabel={(x) => moment(x).format('DD.MM.Y')}\n className={classes.copyDate}\n label={t('data.date')}\n />\n {\n const { data } = await axios.get(`/${agency}/crew/assignment`, {\n params: {\n date: copyDate,\n depot,\n },\n });\n setTable(table.map((x) => {\n const copyRow = data.find(R.propEq('task', x.task));\n if (copyRow) {\n return {\n ...copyRow,\n start: x.start,\n };\n }\n return x;\n }));\n }}\n >\n {t('data.copy')}\n \n
\n \n \n \n \n \n \n \n \n \n \n \n {table.map((row) => {\n const updateTable = (prop: string) => (event: any, value: any) => setTable(\n R.map((x) => (\n x.task === row.task ? { ...x, [prop]: value ? value.id : null } : x\n )),\n );\n return (\n \n \n \n \n \n \n \n );\n })}\n \n
\n {t('common.route')}\n \n {t('data.startTime')}\n \n {t('data.vehicleID')}\n \n {t('data.firstShift')}\n \n {t('data.secondShift')}\n
\n {row.task}\n \n {moment(row.start, 'HH:mm').format('H:mm')}\n \n \n \n \n \n \n
\n
\n setTable(initTable)}\n >\n {t('data.discardChanges')}\n \n (\n x.vehicle === undefined\n ))}\n onClick={async () => {\n await axios.put(`/${agency}/crew/assignment`, {\n depot,\n date: date.format('YYYY-MM-DD'),\n assignments: table.map((x) => ({\n task: x.task,\n vehicle: x.vehicle || null,\n driverFirst: x.driverFirst || null,\n driverSecond: x.driverSecond || null,\n })),\n });\n setInitTable(table);\n }}\n >\n {t('data.save')}\n \n
\n \n )}\n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-37.011 -331.378)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6332.3-856.278l6.893,7.243-6.893,7.359\",\n transform: \"translate(-6288 1188)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6325.011-849H6339.1\",\n transform: \"translate(-6288 1188)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1\n}));\n\nvar SvgDirectionArrow = function SvgDirectionArrow(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14.874,\n height: 15.288,\n viewBox: \"0 0 14.874 15.288\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDirectionArrow, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/direction-arrow.4395c0d3.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport {\n Button, IconButton, TextField, Typography,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport * as R from 'ramda';\nimport { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd';\nimport moment from 'moment';\nimport NewHeader from '../../NewHeader';\nimport {\n IDataCalendar, IDataPattern, IDataRoute, IDataStop, IDataTrip,\n} from '../../../interfaces';\nimport { ProviderContext } from '../../../context';\nimport { axios } from '../../../utils';\nimport CustomAutocomplete from '../../../common/CustomAutocomplete';\nimport ButtonList from '../../ButtonList';\nimport NumberField from '../../../common/NumberField';\nimport { ReactComponent as DraggableIcon } from '../../../assets/draggable.svg';\nimport { ReactComponent as Clear } from '../../../assets/clear.svg';\nimport { ReactComponent as DirectionArrow } from '../../../assets/direction-arrow.svg';\nimport DeleteDialog from '../../DeleteDialog';\n\ninterface ICrew {\n id: number;\n name: string;\n depot: number;\n trips: { id: number; dept: string; }[];\n active: boolean;\n}\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n display: 'flex',\n },\n left: {\n flexGrow: 1,\n marginRight: 32,\n },\n right: {\n width: 800,\n flexShrink: 0,\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 24,\n },\n searchRoute: {\n width: 176,\n marginRight: 20,\n },\n searchDepot: {\n width: 300,\n },\n searchCalendar: {\n width: 300,\n marginBottom: 24,\n },\n name: {\n width: 300,\n marginRight: 24,\n },\n depot: {\n width: 300,\n },\n copyRow: {\n display: 'flex',\n alignItems: 'center',\n margin: '24px -16px',\n padding: 16,\n backgroundColor: '#F5F5F5',\n },\n copyText: {\n color: '#37001F',\n marginRight: 16,\n },\n copyField: {\n width: 300,\n },\n copyAdd: {\n marginLeft: 'auto',\n },\n addTripText: {\n marginRight: 16,\n color: '#37001F',\n },\n position: {\n width: 58,\n marginRight: 18,\n },\n route: {\n width: 176,\n },\n or: {\n margin: '0 16px',\n color: '#37001F',\n },\n pattern: {\n width: 300,\n },\n startingStop: {\n width: 300,\n },\n departureTime: {\n width: 300,\n },\n addTrip: {\n marginLeft: 'auto',\n },\n discardChanges: {\n margin: '0 20px 0 auto',\n },\n crewTrips: {\n marginBottom: 20,\n },\n crewTrip: {\n margin: '8px 0',\n backgroundColor: '#F5F5F5',\n padding: '8px 16px',\n borderRadius: 15,\n display: 'flex',\n alignItems: 'center',\n },\n draggableContainer: {\n display: 'flex',\n alignItems: 'center',\n marginRight: 16,\n },\n tripPosition: {\n width: 30,\n fontSize: 20,\n color: '#37001F',\n },\n tripRouteContainer: {\n width: 60,\n display: 'flex',\n alignItems: 'center',\n },\n tripRouteName: {\n padding: '0 4px',\n border: '1px solid #36011F',\n borderRadius: 7,\n fontSize: 14,\n fontWeight: 400,\n color: '#37001F',\n },\n tripTime: {\n width: 60,\n fontSize: 20,\n fontWeight: 400,\n color: '#37001F',\n },\n tripStop: {\n width: 200,\n fontSize: 20,\n color: '#37001F',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n tripPattern: {\n width: 100,\n fontSize: 20,\n color: '#37001F',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n patternArrow: {\n marginRight: 4,\n },\n});\n\ninterface ICrewTrip {\n id: number;\n departure: string;\n calendar: number;\n}\n\nexport default function Manage() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { user: { agency } } = useContext(ProviderContext);\n const [routes, setRoutes] = useState(null);\n const [calendars, setCalendars] = useState(null);\n const [patterns, setPatterns] = useState(null);\n const [stops, setStops] = useState(null);\n const [trips, setTrips] = useState(null);\n const [crews, setCrews] = useState(null);\n const [selectedCrew, setSelectedCrew] = useState(null);\n const [searchRoute, setSearchRoute] = useState(null);\n const [searchDepot, setSearchDepot] = useState(null);\n const [searchCalendar, setSearchCalendar] = useState(null);\n const [name, setName] = useState('');\n const [depot, setDepot] = useState(null);\n const [copyCrew, setCopyCrew] = useState(null);\n const [position, setPosition] = useState('1');\n const [route, setRoute] = useState(null);\n const [pattern, setPattern] = useState(null);\n const [startingStop, setStartingStop] = useState(null);\n const [trip, setTrip] = useState(null);\n const [crewTrips, setCrewTrips] = useState([]);\n const [deleteDialog, setDeleteDialog] = useState(false);\n useEffect(() => {\n (async () => {\n const [\n { data: routesData },\n { data: calendarsData },\n { data: patternsData },\n { data: stopsData },\n { data: tripsData },\n { data: crewsData },\n ] = await Promise.all([\n axios.get(`/${agency}/data/routes`),\n axios.get(`/${agency}/data/calendars`),\n axios.get(`/${agency}/data/patterns`),\n axios.get(`/${agency}/data/stops`),\n axios.get(`/${agency}/data/trips`),\n axios.get(`/${agency}/transport-tasks`),\n ]);\n setRoutes(routesData);\n setCalendars(calendarsData);\n setPatterns(patternsData);\n setStops(stopsData);\n setTrips(tripsData);\n setCrews(crewsData);\n })();\n }, [agency]);\n useEffect(() => {\n setPosition(String(crewTrips.length + 1));\n }, [crewTrips]);\n if (!routes || !calendars || !patterns || !stops || !trips || !crews) {\n return null;\n }\n const mapTrips = (backendTrips: { id: number; dept: string; }[]) => backendTrips.map((x) => ({\n id: x.id,\n departure: x.dept,\n calendar: trips.find(R.propEq('id', x.id))!.calendar,\n }));\n const loadData = (crew: ICrew | null) => {\n if (crew) {\n setSelectedCrew(crew.id);\n setName(crew.name);\n setDepot(stops.find(R.propEq('id', crew.depot)) as IDataStop);\n setCrewTrips(mapTrips(crew.trips));\n } else {\n setSelectedCrew('new');\n setName('');\n setDepot(null);\n setCrewTrips([]);\n }\n setCopyCrew(null);\n setRoute(null);\n setPattern(null);\n setStartingStop(null);\n setTrip(null);\n };\n const routeTrips = trips.filter((x) => (\n patterns.filter(R.propEq('route', searchRoute?.id)).some(R.propEq('id', x.pattern))\n )).map(R.prop('id'));\n const depotId = (() => {\n if (depot) return depot.id;\n if (crewTrips[0]) {\n const stop = patterns.find(R.propEq(\n 'id',\n trips.find(R.propEq('id', crewTrips[0].id))!.pattern,\n ))!.stops[0];\n if (stops.find(R.propEq('id', stop))!.technical) {\n return stop;\n }\n }\n return null;\n })();\n const saveRow = selectedCrew !== null && (\n
\n {selectedCrew !== 'new' && (\n setDeleteDialog(true)}\n disabled={crews.find(R.propEq('id', selectedCrew))!.active}\n >\n {t('data.deleteCrew')}\n \n )}\n loadData(\n selectedCrew === 'new' ? null : crews.find(R.propEq('id', selectedCrew)) as ICrew,\n )}\n className={classes.discardChanges}\n >\n {t('data.discardChanges')}\n \n {\n if (depotId === null) return;\n const requestData = {\n name,\n depot: depotId,\n trips: crewTrips.map(({ id, departure }) => ({\n id,\n dept: departure,\n })),\n };\n if (selectedCrew === 'new') {\n const { data } = await axios.post(`/${agency}/transport-tasks`, requestData);\n setCrews([...crews, data]);\n } else {\n await axios.put(`/${agency}/transport-tasks/${selectedCrew}`, requestData);\n setCrews(crews.map((x) => (x.id === selectedCrew ? {\n ...x,\n ...requestData,\n } : x)));\n }\n setSelectedCrew(null);\n }}\n >\n {t('data.save')}\n \n
\n );\n const getTripLabel = (x: ICrewTrip) => (\n `${x.departure}, ${calendars.find(R.propEq('id', x.calendar))!.name}`\n );\n return (\n
\n
\n loadData(null)}\n />\n
\n setSearchRoute(value)}\n label={t('common.route')}\n className={classes.searchRoute}\n getOptionLabel={R.prop('name')}\n />\n setSearchDepot(value)}\n options={stops.filter(R.prop('technical'))}\n className={classes.searchDepot}\n label={t('data.depot')}\n getOptionLabel={R.prop('name')}\n />\n
\n setSearchCalendar(value)}\n className={classes.searchCalendar}\n getOptionLabel={R.prop('name')}\n label={t('data.calendar')}\n />\n (\n (!searchRoute || x.trips.some((y) => routeTrips.includes(y.id)))\n && (!searchDepot || x.depot === searchDepot.id)\n && (!searchCalendar || x.trips.some((y) => (\n trips.find(R.propEq('id', y.id))!.calendar === searchCalendar.id\n )))\n ),\n ).map((crew) => ({\n id: crew.id,\n name: crew.name,\n onClick: () => loadData(crew),\n }))\n )}\n selected={selectedCrew}\n />\n
\n
\n {selectedCrew !== null && (\n <>\n
\n setName(target.value)}\n label={t('data.crewName')}\n className={classes.name}\n variant=\"outlined\"\n size=\"small\"\n id=\"crew-name\"\n />\n setDepot(value)}\n options={stops.filter(R.prop('technical'))}\n className={classes.depot}\n label={t('data.depot')}\n getOptionLabel={R.prop('name')}\n />\n
\n
\n \n {t('data.copyTrips')}\n \n setCopyCrew(value)}\n options={crews.filter((x) => x.id !== selectedCrew)}\n className={classes.copyField}\n label={t('data.crewName')}\n getOptionLabel={R.prop('name')}\n />\n {\n setCrewTrips(R.uniq([...crewTrips, ...mapTrips(copyCrew!.trips)]));\n setCopyCrew(null);\n }}\n disabled={!copyCrew}\n >\n {t('data.add')}\n \n
\n
\n \n {t('data.addTrip')}\n \n setPosition(target.value)}\n label={t('data.no')}\n className={classes.position}\n variant=\"outlined\"\n size=\"small\"\n />\n {\n setRoute(value);\n setPattern(null);\n setStartingStop(null);\n setTrip(null);\n }}\n label={t('common.route')}\n className={classes.route}\n getOptionLabel={R.prop('name')}\n />\n
\n
\n {\n setPattern(value);\n if (value) {\n setStartingStop(stops.find(R.propEq('id', value.stops[0])) as IDataStop);\n }\n setTrip(null);\n }}\n label={t('data.patternName')}\n className={classes.pattern}\n getOptionLabel={R.prop('name')}\n />\n \n {t('data.or')}\n \n stops.find(R.propEq('id', x.stops[0])))) as IDataStop[]}\n value={startingStop}\n onChange={(event, value) => {\n setStartingStop(value);\n if (value) {\n const stopPatterns = patterns.filter((x) => (\n x.route === route?.id && x.stops[0] === value.id\n ));\n if (stopPatterns.length === 1) {\n setPattern(stopPatterns[0]);\n }\n }\n setTrip(null);\n }}\n label={t('data.startingStop')}\n className={classes.startingStop}\n getOptionLabel={R.prop('name')}\n />\n
\n
\n {\n const filteredPatterns = pattern ? [pattern] : patterns.filter((y) => (\n y.route === route?.id && y.stops[0] === startingStop?.id\n ));\n return filteredPatterns.some(R.propEq('id', x.pattern));\n }).flatMap((x) => {\n if (x.type === 'SINGLE') {\n return [R.pick(['id', 'departure', 'calendar'], x)];\n }\n return R.unfold(\n (n) => n.isBefore(moment(x.to, 'HH:mm'))\n && [n.format('HH:mm'), n.add(x.interval, 'minutes')],\n moment(x.firstTrip, 'HH:mm'),\n ).map((departure) => ({\n ...R.pick(['id', 'calendar'], x),\n departure,\n }));\n }))}\n value={trip}\n onChange={(event, value) => setTrip(value)}\n label={t('data.trip')}\n className={classes.departureTime}\n getOptionLabel={getTripLabel}\n getOptionSelected={R.equals}\n />\n {\n if (!trip) return;\n const positionNumber = Number(position);\n const newPosition = (positionNumber > 0 && positionNumber <= crewTrips.length + 1)\n ? positionNumber - 1\n : crewTrips.length;\n setCrewTrips(R.insert(newPosition, trip));\n }}\n disabled={!trip}\n >\n {t('data.add')}\n \n
\n {saveRow}\n {\n if (result.destination) {\n setCrewTrips(R.move(Number(result.draggableId), result.destination.index));\n }\n }}\n >\n \n {(provided) => (\n \n {crewTrips.map(({ id, departure }, i) => (\n \n {(draggableProvided) => {\n const crewTrip = trips.find(R.propEq('id', id)) as IDataTrip;\n const tripPattern = patterns\n .find(R.propEq('id', crewTrip.pattern)) as IDataPattern;\n return (\n \n \n \n
\n \n {i + 1}\n \n
\n \n {routes.find(R.propEq('id', tripPattern.route))!.name}\n \n
\n \n {departure}\n \n \n {stops.find(R.propEq('id', tripPattern.stops[0]))!.name}\n \n \n \n {tripPattern.name}\n \n \n {moment(departure, 'HH:mm')\n .add(R.last(crewTrip.stops)!.arrival, 'minutes')\n .format('HH:mm')}\n \n \n {stops.find(R.propEq('id', R.last(tripPattern.stops)))!.name}\n \n setCrewTrips(R.remove(i, 1))}\n size=\"small\"\n >\n \n \n
\n );\n }}\n \n ))}\n {provided.placeholder}\n \n )}\n \n \n {crewTrips.length > 0 && saveRow}\n \n )}\n \n setDeleteDialog(false)}\n text={t('data.deleteCrewConfirm')}\n onDelete={async () => {\n await axios.delete(`/${agency}/transport-tasks/${selectedCrew}`);\n setSelectedCrew(null);\n setCrews(crews.filter((x) => x.id !== selectedCrew));\n setDeleteDialog(false);\n }}\n canDelete\n />\n \n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Button, InputAdornment, TextField } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { ProviderContext } from '../../../context';\nimport { axios } from '../../../utils';\nimport NewHeader from '../../NewHeader';\nimport { ReactComponent as Search } from '../../../assets/search.svg';\nimport ButtonList from '../../ButtonList';\nimport DeleteDialog from '../../DeleteDialog';\nimport { IDriver } from '../../../interfaces';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n display: 'flex',\n },\n left: {\n flexGrow: 1,\n marginRight: 32,\n },\n right: {\n width: 300,\n flexShrink: 0,\n },\n search: {\n width: 300,\n marginBottom: 24,\n },\n name: {\n width: 300,\n marginBottom: 24,\n },\n saveRow: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n deleteButton: {\n marginRight: 20,\n },\n});\n\nexport default function Drivers() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { user: { agency } } = useContext(ProviderContext);\n const [drivers, setDrivers] = useState(null);\n const [search, setSearch] = useState('');\n const [selectedDriver, setSelectedDriver] = useState(null);\n const [name, setName] = useState('');\n const [active, setActive] = useState(false);\n const [deleteDialog, setDeleteDialog] = useState(false);\n useEffect(() => {\n (async () => {\n const { data } = await axios.get(`/${agency}/drivers`);\n setDrivers(data);\n })();\n }, [agency]);\n if (!drivers) return null;\n const loadData = (driver: IDriver | null) => {\n if (driver) {\n setSelectedDriver(driver.id);\n setName(driver.name);\n setActive(driver.active);\n } else {\n setSelectedDriver('new');\n setName('');\n setActive(false);\n }\n };\n return (\n
\n
\n loadData(null)}\n />\n setSearch(target.value)}\n className={classes.search}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"outlined\"\n size=\"small\"\n />\n (\n driver.name.toLowerCase().includes(search.toLowerCase())\n )).map((driver) => ({\n id: driver.id,\n name: driver.name,\n onClick: () => loadData(driver),\n }))}\n selected={selectedDriver}\n />\n
\n
\n {selectedDriver !== null && (\n <>\n setName(target.value)}\n label={t('data.driversName')}\n className={classes.name}\n variant=\"outlined\"\n size=\"small\"\n inputProps={{ 'data-testid': 'drivers-name' }}\n />\n
\n {selectedDriver !== 'new' && (\n setDeleteDialog(true)}\n className={classes.deleteButton}\n disabled={active}\n >\n {t('data.deleteDriver')}\n \n )}\n {\n if (selectedDriver === 'new') {\n const { data } = await axios.post(`/${agency}/drivers`, { name });\n setDrivers([...drivers, data]);\n } else {\n await axios.put(`/${agency}/drivers/${selectedDriver}`, { name });\n setDrivers(drivers.map((x) => (x.id === selectedDriver ? {\n ...x,\n name,\n } : x)));\n }\n setSelectedDriver(null);\n }}\n >\n {t('data.save')}\n \n
\n \n )}\n
\n setDeleteDialog(false)}\n text={t('data.deleteDriverConfirm')}\n onDelete={async () => {\n await axios.delete(`/${agency}/drivers/${selectedDriver}`);\n setSelectedDriver(null);\n setDrivers(drivers.filter((x) => x.id !== selectedDriver));\n setDeleteDialog(false);\n }}\n canDelete\n />\n
\n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Button, InputAdornment, TextField } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { ProviderContext } from '../../../context';\nimport { axios } from '../../../utils';\nimport NewHeader from '../../NewHeader';\nimport { ReactComponent as Search } from '../../../assets/search.svg';\nimport ButtonList from '../../ButtonList';\nimport DeleteDialog from '../../DeleteDialog';\nimport { ICrewVehicle } from '../../../interfaces';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n display: 'flex',\n },\n left: {\n flexGrow: 1,\n marginRight: 32,\n },\n right: {\n width: 300,\n flexShrink: 0,\n },\n search: {\n width: 300,\n marginBottom: 24,\n },\n name: {\n width: 300,\n marginBottom: 24,\n },\n saveRow: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n deleteButton: {\n marginRight: 20,\n },\n});\n\nexport default function Vehicles() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { user: { agency } } = useContext(ProviderContext);\n const [vehicles, setVehicles] = useState(null);\n const [search, setSearch] = useState('');\n const [selectedVehicle, setSelectedVehicle] = useState(null);\n const [name, setName] = useState('');\n const [active, setActive] = useState(false);\n const [deleteDialog, setDeleteDialog] = useState(false);\n useEffect(() => {\n (async () => {\n const { data } = await axios.get(`/${agency}/vehicles`);\n setVehicles(data);\n })();\n }, [agency]);\n if (!vehicles) return null;\n const loadData = (vehicle: ICrewVehicle | null) => {\n if (vehicle) {\n setSelectedVehicle(vehicle.id);\n setName(vehicle.number);\n setActive(vehicle.active);\n } else {\n setSelectedVehicle('new');\n setName('');\n setActive(false);\n }\n };\n return (\n
\n
\n loadData(null)}\n />\n setSearch(target.value)}\n className={classes.search}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"outlined\"\n size=\"small\"\n />\n (\n vehicle.number.toLowerCase().includes(search.toLowerCase())\n )).map((vehicle) => ({\n id: vehicle.id,\n name: vehicle.number,\n onClick: () => loadData(vehicle),\n }))}\n selected={selectedVehicle}\n />\n
\n
\n {selectedVehicle !== null && (\n <>\n setName(target.value)}\n label={t('data.vehicleID')}\n className={classes.name}\n variant=\"outlined\"\n size=\"small\"\n inputProps={{ 'data-testid': 'vehicle-id' }}\n />\n
\n {selectedVehicle !== 'new' && (\n setDeleteDialog(true)}\n className={classes.deleteButton}\n disabled={active}\n >\n {t('data.deleteVehicle')}\n \n )}\n {\n if (selectedVehicle === 'new') {\n const { data } = await axios.post(`/${agency}/vehicles`, { number: name });\n setVehicles([...vehicles, data]);\n } else {\n await axios.put(`/${agency}/vehicles/${selectedVehicle}`, { number: name });\n setVehicles(vehicles.map((x) => (x.id === selectedVehicle ? {\n ...x,\n number: name,\n } : x)));\n }\n setSelectedVehicle(null);\n }}\n >\n {t('data.save')}\n \n
\n \n )}\n
\n setDeleteDialog(false)}\n text={t('data.deleteVehicleConfirm')}\n onDelete={async () => {\n await axios.delete(`/${agency}/vehicles/${selectedVehicle}`);\n setSelectedVehicle(null);\n setVehicles(vehicles.filter((x) => x.id !== selectedVehicle));\n setDeleteDialog(false);\n }}\n canDelete\n />\n
\n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n useHistory, useParams, Switch, Redirect, Route,\n} from 'react-router-dom';\nimport { Tab, Tabs } from '@material-ui/core';\nimport { useGetLink } from '../../../utils';\nimport Assign from './Assign';\nimport Manage from './Manage';\nimport Drivers from './Drivers';\nimport Vehicles from './Vehicles';\n\nconst useStyles = makeStyles({\n root: {\n width: '100%',\n },\n tabs: {\n margin: '0 -32px',\n position: 'relative',\n '&::after': {\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n bottom: 0,\n left: 0,\n width: '100%',\n height: 2,\n backgroundColor: '#F5F5F5',\n },\n },\n tab: {\n textTransform: 'none',\n fontSize: 16,\n fontWeight: 300,\n },\n indicator: {\n zIndex: 1,\n },\n});\n\nexport default function SupportContent() {\n const classes = useStyles();\n const { t } = useTranslation();\n const history = useHistory();\n const getLink = useGetLink();\n const { tab } = useParams<{ tab: string; }>();\n if (!tab) {\n return (\n \n );\n }\n return (\n
\n history.push(getLink(`/provider/data/crew/${value}`))}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n centered\n className={classes.tabs}\n classes={{ indicator: classes.indicator }}\n >\n \n \n \n \n \n \n \n \n \n \n \n
\n );\n}\n","import React, { useContext, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Button, MenuItem, TextField, Typography,\n} from '@material-ui/core';\nimport moment, { Moment } from 'moment';\nimport classNames from 'classnames';\nimport pdfMake from 'pdfmake/build/pdfmake';\nimport * as R from 'ramda';\nimport VersionInfo from '../VersionInfo';\nimport { ReactComponent as Chevron } from '../../assets/chevron.svg';\nimport CustomDatePicker from '../../common/CustomDatePicker';\nimport { axios } from '../../utils';\nimport { ProviderContext } from '../../context';\nimport robotoLight from '../../assets/Roboto-Light.ttf';\n\npdfMake.fonts = {\n Roboto: {\n normal: window.location.origin + robotoLight,\n },\n};\n\ntype IPeriod = 'thisYear' | 'lastYear' | 'thisMonth' | 'lastMonth' | 'custom';\ntype IDateRange = { from: Moment | null; to: Moment | null; };\ninterface IData {\n calendar: string;\n monthly: {\n month: string;\n days: number;\n }[];\n vehicleKilometers: {\n route: string;\n kilometers: number;\n }[];\n}\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n },\n header: {\n fontSize: 24,\n fontWeight: 700,\n color: '#37001F',\n },\n row: {\n marginTop: 24,\n display: 'flex',\n alignItems: 'flex-start',\n },\n period: {\n width: 300,\n },\n selectIcon: {\n display: 'flex',\n alignItems: 'center',\n padding: '8px 4px',\n },\n dates: {\n display: 'flex',\n marginTop: 16,\n },\n datePicker: {\n width: 142,\n '&:not(:last-child)': {\n marginRight: 16,\n },\n },\n button: {\n marginLeft: 32,\n },\n});\n\nexport default function Reports() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { user: { agency } } = useContext(ProviderContext);\n const [dateRange, setDateRange] = useState({\n from: moment().startOf('year'),\n to: moment(),\n });\n const period = (() => {\n if (!dateRange) return '';\n const { from, to } = dateRange;\n if (!from || !to) return 'custom';\n if (to.isSame(moment(), 'month')) {\n if (from.isSame(moment().startOf('year'), 'month')) return 'thisYear';\n if (from.isSame(moment(), 'month')) return 'thisMonth';\n }\n if (from.isSame(moment().subtract(1, 'year').startOf('year'), 'month')\n && to.isSame(moment().subtract(1, 'year').endOf('year'), 'month')\n ) return 'lastYear';\n if (from.isSame(moment().subtract(1, 'month'), 'month')\n && to.isSame(moment().subtract(1, 'month'), 'month')\n ) return 'lastMonth';\n return 'custom';\n })();\n return (\n
\n \n \n {t('data.reports')}\n \n
\n
\n {\n switch (target.value as IPeriod) {\n case 'thisYear':\n setDateRange({ from: moment().startOf('year'), to: moment() });\n break;\n case 'lastYear':\n setDateRange({\n from: moment().subtract(1, 'year').startOf('year'),\n to: moment().subtract(1, 'year').endOf('year'),\n });\n break;\n case 'thisMonth':\n setDateRange({ from: moment(), to: moment() });\n break;\n case 'lastMonth':\n setDateRange({\n from: moment().subtract(1, 'month'),\n to: moment().subtract(1, 'month'),\n });\n break;\n case 'custom':\n default:\n setDateRange({ from: null, to: null });\n }\n }}\n variant=\"outlined\"\n size=\"small\"\n className={classes.period}\n SelectProps={{\n // eslint-disable-next-line react/prop-types\n IconComponent: ({ className, ...rest }) => (\n
\n \n
\n ),\n }}\n >\n \n {t('data.thisYear')}\n \n \n {t('data.lastYear')}\n \n \n {t('data.thisMonth')}\n \n \n {t('data.lastMonth')}\n \n \n {t('data.custom')}\n \n \n {period === 'custom' && dateRange && (\n
\n setDateRange({ from: newFrom, to: dateRange.to })}\n maxDate={dateRange.to || undefined}\n format=\"MM.Y\"\n />\n setDateRange({ from: dateRange.from, to: newTo })}\n minDate={dateRange.from || undefined}\n format=\"MM.Y\"\n />\n
\n )}\n
\n {\n const { data }: { data: IData[] } = await axios.get(`/${agency}/vehicle-kilometers`, {\n params: {\n from: dateRange.from!.format('MM.Y'),\n to: dateRange.to!.format('MM.Y'),\n },\n });\n const allRoutes = R.uniq(data.flatMap((x) => (\n x.vehicleKilometers.map(R.prop('route'))\n )));\n const toFixed = (x?: number) => (x ? x.toFixed(3) : '-');\n pdfMake.createPdf({\n pageOrientation: 'landscape',\n pageMargins: 10,\n content: [\n {\n table: {\n body: [\n [\n `${dateRange.from!.format('MM.Y')}-${dateRange.to!.format('MM.Y')}`,\n {\n colSpan: data.length,\n text: t('common.route'),\n },\n ...R.times(() => '', data.length - 1),\n ...allRoutes,\n t('data.total'),\n ],\n ...data.map((x, i) => [\n {\n rowSpan: data.length,\n text: t('data.month'),\n },\n ...R.times((j) => ({\n text: '',\n rowSpan: data.length - 1 - j,\n }), i),\n {\n colSpan: data.length - i,\n text: x.calendar.split(/[ -]/).map((y) => R.take(2, y)).join(''),\n },\n ...R.times(() => '', data.length - i - 1),\n ...allRoutes.map((route) => ({\n alignment: 'right',\n text: toFixed(x.vehicleKilometers.find(R.propEq('route', route))?.kilometers),\n })),\n {\n alignment: 'right',\n text: R.sum(x.vehicleKilometers.map(R.prop('kilometers'))).toFixed(3),\n },\n ]),\n ...data[0].monthly.map((y, i) => {\n const routeKms = allRoutes.map((route) => (\n R.sum(data.map((x) => (\n x.monthly[i].days\n * (x.vehicleKilometers.find(R.propEq('route', route))?.kilometers || 0)\n )))\n ));\n return [\n y.month,\n ...data.map((x) => ({\n alignment: 'right',\n text: x.monthly[i].days || '-',\n })),\n ...routeKms.map((x) => ({\n alignment: 'right',\n text: toFixed(x),\n })),\n {\n alignment: 'right',\n text: R.sum(routeKms).toFixed(3),\n },\n ];\n }),\n [\n t('data.total'),\n ...data.map((x) => ({\n alignment: 'right',\n text: R.sum(x.monthly.map(R.prop('days'))),\n })),\n ...allRoutes.map((route) => ({\n alignment: 'right',\n text: R.sum(data.map((x) => (\n R.sum(x.monthly.map(R.prop('days')))\n * (x.vehicleKilometers.find(R.propEq('route', route))?.kilometers || 0)\n ))).toFixed(3),\n })),\n {\n alignment: 'right',\n text: R.sum(data.map((x) => R.sum(x.vehicleKilometers.map(\n (y) => R.sum(x.monthly.map(R.prop('days'))) * y.kilometers,\n )))).toFixed(3),\n },\n ],\n ],\n },\n layout: {\n vLineWidth: (i) => {\n if ([\n 0,\n 1,\n 1 + data.length,\n 1 + data.length + allRoutes.length,\n 1 + data.length + allRoutes.length + 1,\n ].includes(i)) return 1;\n return 0.5;\n },\n hLineWidth: (i) => {\n if ([\n 0,\n 1,\n 1 + data.length,\n 1 + data.length + data[0].monthly.length,\n 1 + data.length + data[0].monthly.length + 1,\n ].includes(i)) return 1;\n return 0.5;\n },\n },\n },\n ],\n defaultStyle: {\n fontSize: 10,\n },\n }).open();\n }}\n >\n {t('data.showVehicleKilometre')}\n \n
\n
\n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Typography, TextField, Button, Dialog, InputAdornment, IconButton,\n} from '@material-ui/core';\nimport moment from 'moment';\nimport * as R from 'ramda';\nimport classNames from 'classnames';\nimport { axios } from '../../utils';\nimport { ProviderContext } from '../../context';\nimport { ReactComponent as Search } from '../../assets/search.svg';\nimport { ReactComponent as ChevronPrimary } from '../../assets/chevron-primary.svg';\nimport { ReactComponent as ChevronWhite } from '../../assets/chevron-white.svg';\nimport { ReactComponent as DirectionArrow } from '../../assets/direction-arrow.svg';\n\ninterface IRelation {\n from: string;\n to: string;\n distanceKm: number;\n}\n\ninterface ITicket {\n number: string;\n owner: string;\n code: string;\n name: string;\n scope: 'course' | 'relation';\n discount?: string;\n valid: {\n from: string;\n to: string;\n };\n relations: {\n main: string;\n forwards: IRelation[];\n backwards: IRelation[];\n };\n}\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n display: 'flex',\n },\n left: {\n flexGrow: 1,\n },\n right: {\n width: 700,\n flexShrink: 0,\n marginLeft: 80,\n },\n header: {\n fontSize: 24,\n fontWeight: 700,\n marginBottom: 16,\n },\n report: {\n marginBottom: 32,\n },\n importRow: {\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'center',\n },\n discardChanges: {\n marginRight: 16,\n },\n closeButton: {\n marginLeft: 'auto',\n },\n dialog: {\n padding: '24px 32px',\n },\n importedTickets: {\n color: '#37001F',\n marginBottom: 80,\n },\n table: {\n width: '100%',\n borderCollapse: 'collapse',\n marginTop: 24,\n },\n cell: {\n padding: '6px 12px',\n fontSize: 16,\n color: '#37001F',\n fontWeight: 300,\n border: '1px solid #37001F',\n textAlign: 'left',\n position: 'relative',\n },\n headerCell: {\n fontWeight: 400,\n padding: '10px 12px',\n },\n headerCellContent: {\n display: 'flex',\n alignItems: 'center',\n },\n tableRow: {\n '&:nth-child(odd)': {\n backgroundColor: '#F5F5F5',\n },\n },\n sortButton: {\n marginRight: -4,\n marginLeft: 4,\n },\n chevronFlipped: {\n transform: 'rotate(180deg)',\n },\n pageButton: {\n minWidth: 20,\n width: 20,\n height: 20,\n borderRadius: '50%',\n padding: 0,\n position: 'absolute',\n zIndex: 2,\n '&$pageButtonDisabled': {\n backgroundColor: '#b9b9b9',\n },\n },\n nextButton: {\n right: 0,\n bottom: 0,\n transform: 'translate(50%, 50%)',\n },\n prevButton: {\n right: 0,\n top: 0,\n transform: 'translate(50%, -50%)',\n },\n pageButtonDisabled: {},\n chevronLeft: {\n transform: 'rotate(180deg)',\n },\n chevronRight: {\n transform: 'rotate(0deg)',\n },\n dialogText: {\n color: '#37001F',\n },\n bold: {\n fontWeight: 700,\n },\n noTickets: {\n marginTop: 24,\n },\n details: {\n marginBottom: 32,\n },\n relation: {\n display: 'flex',\n alignItems: 'center',\n },\n relationName: {\n fontWeight: 400,\n marginLeft: 8,\n marginRight: 'auto',\n },\n relationDistance: {\n fontWeight: 400,\n marginLeft: 24,\n },\n relationMargin: {\n marginLeft: 24,\n },\n backwards: {\n transform: 'rotate(180deg)',\n },\n relationMain: {\n marginTop: 8,\n },\n});\n\nconst formatDate = (date: string) => moment(date).format('DD.MM.Y');\n\nexport default function Tickets() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { user: { agency } } = useContext(ProviderContext);\n const [report, setReport] = useState('');\n const [result, setResult] = useState<{ success: boolean; total: boolean; } | null>(null);\n const [dialogOpen, setDialogOpen] = useState(false);\n const [tickets, setTickets] = useState(null);\n useEffect(() => {\n (async () => {\n const { data } = await axios.get(`/${agency}/tickets`);\n setTickets(data);\n })();\n }, [agency]);\n const [search, setSearch] = useState('');\n const [sortColumn, setSortColumn] = useState('passengerName');\n const [sortAsc, setSortAsc] = useState(false);\n const [page, setPage] = useState(0);\n const [detailsOpen, setDetailsOpen] = useState(false);\n const [details, setDetails] = useState(null);\n if (!tickets) return null;\n const pageSize = 20;\n const fullTableData = tickets.map((ticket) => ({\n passengerName: ticket.owner,\n ticketNumber: ticket.number,\n valid: `${formatDate(ticket.valid.from)} - ${formatDate(ticket.valid.to)}`,\n }))\n .filter((ticket) => Object.values(ticket).some((x) => (\n x.toLowerCase().includes(search.toLowerCase())\n )))\n .sort((sortAsc ? R.ascend : R.descend)(R.prop(sortColumn)));\n const tableData = fullTableData.slice(pageSize * page, pageSize * (page + 1));\n const columns = tableData[0] ? Object.keys(tableData[0]) : null;\n return (\n
\n
\n \n {t('data.importTickets')}\n \n setReport(target.value)}\n label={t('data.pasteReport')}\n multiline\n rows={20}\n variant=\"outlined\"\n size=\"small\"\n fullWidth\n className={classes.report}\n />\n
\n setReport('')}\n className={classes.discardChanges}\n >\n {t('common.discardChanges')}\n \n {\n const { data } = await axios.put(`/${agency}/tickets`, report, {\n headers: {\n 'Content-Type': 'text/plain',\n },\n });\n setReport('');\n setResult(data);\n setDialogOpen(true);\n }}\n >\n {t('data.import')}\n \n
\n
\n
\n setSearch(target.value)}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"outlined\"\n size=\"small\"\n fullWidth\n id=\"search\"\n />\n {columns ? (\n \n \n \n {columns.map((column) => (\n \n
\n {t(`data.${column}`)}\n (\n sortColumn === column ? setSortAsc(!sortAsc) : setSortColumn(column)\n )}\n >\n \n \n
\n \n ))}\n
\n \n \n {tableData.map((row, i) => (\n {\n setDetails(tickets.find(R.propEq('number', row.ticketNumber)) as ITicket);\n setDetailsOpen(true);\n }}\n >\n {Object.entries(row).map(([key, cell], j) => (\n \n ))}\n \n ))}\n \n
\n {cell}\n {i === 0 && j === columns.length - 1 && (\n {\n event.stopPropagation();\n setPage((x) => x - 1);\n }}\n disabled={page === 0}\n classes={{\n contained: classNames(classes.pageButton, classes.prevButton),\n disabled: classes.pageButtonDisabled,\n }}\n >\n \n \n )}\n {i === tableData.length - 1 && j === columns.length - 1 && (\n {\n event.stopPropagation();\n setPage(R.add(1));\n }}\n disabled={(\n (page + 1) * pageSize >= fullTableData.length\n )}\n classes={{\n contained: classNames(classes.pageButton, classes.nextButton),\n disabled: classes.pageButtonDisabled,\n }}\n >\n \n \n )}\n
\n ) : (\n \n {t('data.noTickets')}\n \n )}\n
\n setDialogOpen(false)}\n PaperProps={{ className: classes.dialog }}\n >\n \n {result && t('data.importedTickets', result)}\n \n setDialogOpen(false)}\n className={classes.closeButton}\n >\n {t('data.close')}\n \n \n setDetailsOpen(false)}\n PaperProps={{ className: classes.dialog }}\n >\n {details && (\n
\n \n {`${details.name} ${t('data.ticketNo')}: ${details.number}`}\n \n \n {`${t('data.cipher')}: ${details.code}`}\n \n {details.discount && (\n \n {details.discount}\n \n )}\n \n {`${t('data.valid')} `}\n \n {`${t('data.ticketFrom')} ${formatDate(details.valid.from)} `}\n {`${t('data.ticketTo')} ${formatDate(details.valid.to)}`}\n \n \n \n {`${t('data.passenger')}: `}\n \n {details.owner}\n \n \n \n {`${t('data.relation')}: `}\n \n {details.relations.main}\n \n \n {details.relations.forwards.map((relation, i) => (\n \n {i === 0 && }\n \n {`${relation.from} - ${relation.to}`}\n \n \n {`${relation.distanceKm}km`}\n \n
\n ))}\n {details.relations.backwards.map((relation, i) => (\n \n {i === 0 && }\n \n {`${relation.from} - ${relation.to}`}\n \n \n {`${relation.distanceKm}km`}\n \n
\n ))}\n \n )}\n setDetailsOpen(false)}\n className={classes.closeButton}\n >\n {t('data.close')}\n \n \n \n );\n}\n","import React, {\n useContext, useEffect, useState,\n} from 'react';\nimport { Button, Typography } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport * as R from 'ramda';\nimport { Moment } from 'moment';\nimport pdfMake from 'pdfmake/build/pdfmake';\nimport { Content } from 'pdfmake/interfaces';\nimport VersionInfo from '../VersionInfo';\nimport { IDataRoute, IDataStop } from '../../interfaces';\nimport { ProviderContext } from '../../context';\nimport { axios } from '../../utils';\nimport ButtonList from '../ButtonList';\nimport VehicleIcon from '../VehicleIcon';\nimport CustomDatePicker from '../../common/CustomDatePicker';\nimport robotoRegular from '../../assets/Roboto-Regular.ttf';\nimport robotoMedium from '../../assets/Roboto-Medium.ttf';\nimport robotoItalic from '../../assets/Roboto-Italic.ttf';\nimport robotoMediumItalic from '../../assets/Roboto-MediumItalic.ttf';\n\npdfMake.fonts = {\n Roboto: {\n normal: window.location.origin + robotoRegular,\n bold: window.location.origin + robotoMedium,\n italics: window.location.origin + robotoItalic,\n bolditalics: window.location.origin + robotoMediumItalic,\n },\n};\n\ninterface ITimetable {\n route: string;\n stop: string;\n headsign: string;\n description: string;\n timetables: {\n validOn: ('WORKWEEK' | 'SATURDAYS' | 'SUNDAYS')[];\n departures: {\n time: string;\n exception?: string;\n }[];\n }[];\n exceptions: {\n symbol: string;\n description: string;\n }[];\n}\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n },\n headerContainer: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 16,\n },\n header: {\n width: 220,\n fontSize: 24,\n fontWeight: 700,\n },\n selectAll: {\n marginRight: 24,\n },\n buttonList: {\n marginBottom: 32,\n },\n routeName: {\n marginLeft: 8,\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 32,\n },\n datePicker: {\n width: 160,\n marginRight: 16,\n },\n});\n\nexport default function Timetables() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { user: { agency }, version, providers } = useContext(ProviderContext);\n const [stops, setStops] = useState([]);\n const [routes, setRoutes] = useState([]);\n useEffect(() => {\n (async () => {\n const [\n { data },\n { data: routesData },\n ] = await Promise.all([\n axios.get(`/${agency}/data/stops`, { params: { providerVersion: version!.id } }),\n axios.get(`/${agency}/data/routes`, { params: { providerVersion: version!.id } }),\n ]);\n setStops(data);\n setRoutes(routesData);\n })();\n }, [agency, version]);\n const [selectedStops, setSelectedStops] = useState([]);\n const [selectedRoutes, setSelectedRoutes] = useState([]);\n const [from, setFrom] = useState(null);\n const [to, setTo] = useState(null);\n const openPdf = async () => {\n if (!from || !to) return;\n const { data }: { data: ITimetable[] } = await axios.get(`/${agency}/data/timetables`, {\n params: {\n from: from.format('YYYY-MM-DD'),\n to: to.format('YYYY-MM-DD'),\n stops: selectedStops.join(','),\n routes: selectedRoutes.join(','),\n providerVersion: version!.id,\n },\n });\n pdfMake.createPdf({\n info: {\n title: 'Stop timetables',\n },\n pageMargins: 8,\n defaultStyle: {\n color: '#37001F',\n },\n content: data.map((timetable, timetableIndex) => ({\n pageBreak: timetableIndex > 0 ? 'before' : undefined,\n table: {\n widths: '*',\n body: [\n [\n {\n stack: [\n {\n columnGap: 0,\n columns: [\n {\n text: timetable.route,\n fontSize: 60,\n bold: true,\n width: 110,\n alignment: 'center',\n },\n {\n table: {\n body: [\n [\n {\n text: `${t('data.timetableDirection')}:`,\n fontSize: 8.4,\n },\n {\n text: timetable.headsign,\n fontSize: 12,\n bold: true,\n margin: [0, -3, 0, 0],\n },\n ],\n [\n {\n text: `${t('data.timetableStop')}:`,\n fontSize: 8.4,\n },\n {\n text: timetable.stop,\n fontSize: 12,\n bold: true,\n margin: [0, -3, 0, 0],\n },\n ],\n [\n {\n text: `${t('data.timetableDescription')}:`,\n fontSize: 8.4,\n },\n {\n text: timetable.description,\n fontSize: 8.4,\n },\n ],\n ],\n },\n layout: 'noBorders',\n width: 'auto',\n margin: [0, 12, 0, 0],\n },\n ],\n },\n ...timetable.timetables.map(({ validOn, departures }): Content => {\n const columns = Array(24).fill('').map((x, i) => (\n departures.filter(({ time }) => Number(time.substring(0, 2)) === i + 1)\n .map(({ time, exception }) => (\n `${time.substring(3)}${exception || ''}`\n ))\n ));\n const rowsCount = columns.map((x) => x.length).reduce(R.max);\n return ({\n table: {\n widths: '*',\n body: [\n [\n {\n text: validOn.map((x) => t(`data.${x}`)).join(', '),\n colSpan: 24,\n fontSize: 9,\n alignment: 'center',\n },\n ...Array(23).fill({}),\n ],\n Array(24).fill('').map((x, i) => ({\n text: i + 1,\n alignment: 'center',\n fontSize: 9,\n bold: true,\n })),\n ...Array(rowsCount).fill('').map((x, i) => (\n Array(24).fill('').map((y, j) => ({\n text: columns[j][i],\n alignment: 'center',\n fontSize: 9,\n }))\n )),\n ],\n },\n layout: {\n hLineWidth: (i) => ([0, 1, 2].includes(i) ? 0.25 : 0),\n vLineWidth: () => 0.25,\n },\n });\n }),\n {\n table: {\n widths: '*',\n body: [\n [\n {\n stack: timetable.exceptions.map(({ symbol, description }) => ({\n text: `${symbol} - ${description}`,\n fontSize: 9,\n lineHeight: 1.1,\n })),\n margin: 3,\n },\n ],\n ],\n },\n layout: {\n hLineWidth: () => 0.25,\n vLineWidth: () => 0.25,\n },\n },\n {\n text: providers.find(R.propEq('id', agency))!.fullName,\n fontSize: 12,\n bold: true,\n alignment: 'right',\n margin: [10, 5],\n },\n ],\n },\n ],\n ],\n },\n layout: {\n hLineWidth: () => 0.25,\n vLineWidth: () => 0.25,\n },\n })),\n }).open();\n };\n return (\n
\n \n
\n \n {t('data.timetablesForStops')}\n \n setSelectedStops(stops.map(R.prop('id')))}\n >\n {t('data.selectAll')}\n \n setSelectedStops([])}\n >\n {t('data.deselectAll')}\n \n
\n ({\n id: stop.id,\n name: stop.name,\n onClick: () => setSelectedStops(\n selectedStops.includes(stop.id)\n ? selectedStops.filter((x) => x !== stop.id)\n : [...selectedStops, stop.id],\n ),\n }))\n )}\n selected={selectedStops}\n />\n
\n \n {t('data.forRoutes')}\n \n setSelectedRoutes(routes.map(R.prop('id')))}\n >\n {t('data.selectAll')}\n \n setSelectedRoutes([])}\n >\n {t('data.deselectAll')}\n \n
\n ({\n id: route.id,\n name: (\n <>\n \n \n {route.name || route.id}\n \n \n ),\n onClick: () => setSelectedRoutes(\n selectedRoutes.includes(route.id)\n ? selectedRoutes.filter((x) => x !== route.id)\n : [...selectedRoutes, route.id],\n ),\n }))\n )}\n selected={selectedRoutes}\n />\n
\n \n {t('data.forPeriod')}\n \n
\n
\n setFrom(newDate)}\n className={classes.datePicker}\n label={t('data.from')}\n maxDate={to || undefined}\n />\n setTo(newDate)}\n className={classes.datePicker}\n label={t('data.to')}\n minDate={from || undefined}\n />\n
\n
\n \n {t('data.viewAll')}\n \n
\n
\n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport { Tab, Tabs } from '@material-ui/core';\nimport { useLocation, useHistory } from 'react-router-dom';\nimport { useGetLink } from '../../utils';\nimport Routes from './Routes';\nimport Patterns from './Patterns';\nimport Stops from './Stops';\nimport Calendars from './Calendars';\nimport Trips from './Trips';\nimport Manage from './Manage';\nimport Crew from './crew/Crew';\nimport Reports from './Reports';\nimport Tickets from './Tickets';\nimport Timetables from './Timetables';\n\nconst useStyles = makeStyles({\n root: {\n width: '100%',\n },\n tabs: {\n margin: '0 -32px',\n backgroundColor: '#F5F5F5',\n paddingTop: 16,\n },\n tab: {\n textTransform: 'none',\n fontSize: 16,\n fontWeight: 300,\n minWidth: 120,\n },\n});\n\nexport default function Data() {\n const classes = useStyles();\n const { t } = useTranslation();\n const location = useLocation();\n const history = useHistory();\n const getLink = useGetLink();\n const tab = location.pathname.split('/')[4];\n return (\n
\n history.push(getLink(`/provider/data/${value}`))}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n centered\n className={classes.tabs}\n >\n \n \n \n \n \n \n \n \n \n \n \n {tab === 'routes' && }\n {tab === 'patterns' && }\n {tab === 'stops' && }\n {tab === 'trips' && }\n {tab === 'calendars' && }\n {tab === 'timetables' && }\n {tab === 'crew' && }\n {tab === 'reports' && }\n {tab === 'tickets' && }\n {tab === 'manage' && }\n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-1225 -7199)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 -1)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1235.914 7210.376)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.086,11.335V9.684l-1.651-.27a3.766,3.766,0,0,0-.371-.842l.977-1.348L13.795,6.045l-1.314.977a2.6,2.6,0,0,0-.842-.337L11.335,5H9.684l-.27,1.685a1.655,1.655,0,0,0-.842.337l-1.28-.977L6.045,7.224l.977,1.348a4,4,0,0,0-.438.842L5,9.684v1.651l1.584.3a4,4,0,0,0,.438.842l-.977,1.314,1.179,1.247,1.348-.977a2.681,2.681,0,0,0,.842.371l.27,1.651h1.651l.337-1.651a4.315,4.315,0,0,0,.809-.371l1.382.977,1.179-1.247-.977-1.314a3.766,3.766,0,0,0,.371-.842Z\",\n transform: \"translate(-5 -5)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M120.685,122.37a1.685,1.685,0,1,1,1.685-1.685A1.628,1.628,0,0,1,120.685,122.37Z\",\n transform: \"translate(-115.159 -115.159)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}))), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 3.379,\n cy: 3.379,\n r: 3.379,\n transform: \"translate(1231.235 7202)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M84,282.332a16.8,16.8,0,0,1,3.036-2.457,7.8,7.8,0,0,1,8.178-.552\",\n transform: \"translate(1143 6932.373)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n transform: \"translate(1225 7199)\",\n fill: \"none\"\n}));\n\nvar SvgRoles = function SvgRoles(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgRoles, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/roles.8d2ec66c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-1475 -7143)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1477 7145)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42,40.392A9.792,9.792,0,0,0,50.333,45a10,10,0,0,0,0-20A9.926,9.926,0,0,0,42.1,29.412\",\n transform: \"translate(-41.02 -25)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 6.471)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M35.627,91,32,94.529l3.627,3.922\",\n transform: \"translate(-32 -91)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 11.471,\n transform: \"translate(0 3.529)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1\n}))), /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n transform: \"translate(1475 7143)\",\n fill: \"none\"\n}));\n\nvar SvgLogOut = function SvgLogOut(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLogOut, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/log-out.8b62f26c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0.639)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-1525.2 -7381)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M.941,8.473H0A9.36,9.36,0,0,1,14.889,1.838,9.468,9.468,0,0,1,18.241,6.5l-.879.326A8.518,8.518,0,0,0,14.349,2.6,8.431,8.431,0,0,0,.941,8.473Z\",\n transform: \"translate(1527.865 7384)\",\n fill: \"#37001f\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.487,0,0,3.367,3.487,6.978\",\n transform: \"matrix(-0.469, -0.883, 0.883, -0.469, 1543.039, 7392.761)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.918,8.467A9.283,9.283,0,0,1,3.351,6.629,9.473,9.473,0,0,1,0,1.965l.879-.327A8.516,8.516,0,0,0,3.892,5.864,8.349,8.349,0,0,0,8.918,7.53a8.407,8.407,0,0,0,5.651-2.18A8.413,8.413,0,0,0,17.3,0h.941a9.342,9.342,0,0,1-3.009,6.012A9.337,9.337,0,0,1,8.918,8.467Z\",\n transform: \"translate(1528.295 7394.264)\",\n fill: \"#37001f\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.487,0,0,3.367,3.487,6.978\",\n transform: \"matrix(0.469, 0.883, -0.883, 0.469, 1531.361, 7393.97)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n}));\n\nvar SvgSwitch = function SvgSwitch(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25.277,\n height: 24,\n viewBox: \"0 0 25.277 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgSwitch, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/switch.a99e2a9c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0.5 0.707)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(12.189 4.785)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(2.639 6.63)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x2: 6.36,\n transform: \"translate(0 0)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 6.36,\n transform: \"translate(0 2.436)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 6.36,\n transform: \"translate(0 4.939)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M66,58h4.968L75.5,62.736v9.472a1.3,1.3,0,0,1-1.285,1.353H65.078\",\n transform: \"translate(-63.86 -58)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M169,58v3.45a1.285,1.285,0,0,0,1.285,1.285h3.248\",\n transform: \"translate(-161.896 -58)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.142,58H65.218A1.248,1.248,0,0,0,64,59.353v8.389\",\n transform: \"translate(-64 -58)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 14.342)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x2: 7.804,\n transform: \"translate(4.091 3.746)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 10.406,\n transform: \"translate(1.49 6.021)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 4.746,\n transform: \"translate(4.24 3.746)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 7.118,\n transform: \"translate(6.693 1.375)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 7.118,\n transform: \"translate(9.294 1.375)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M168.68,177H166v2.52\",\n transform: \"translate(-156.684 -170.984)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M43,115.3h2.68V113\",\n transform: \"translate(-41.532 -111.593)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.616,36h8.765M31.1,36h.83c.957,0,1.723.591,1.723,1.281v7.1c0,.69-.766,1.281-1.723,1.281H21.659A1.536,1.536,0,0,1,20,44.377v-7.1A1.536,1.536,0,0,1,21.659,36h.957\",\n transform: \"translate(-20 -36)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n})))), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1.736)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.315,0\",\n transform: \"translate(13.229 2.751)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.382,0\",\n transform: \"translate(4.288 8.134)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,4.311\",\n transform: \"translate(9.899 5.802)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.553,36h0l2.771,2.635M30.173,48.1H21.767A1.723,1.723,0,0,1,20,46.5V37.606A1.723,1.723,0,0,1,21.767,36h2.786\",\n transform: \"translate(-20 -36)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(7.451 2.645)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.382,0\",\n transform: \"translate(-3.163 3.97)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,4.311\",\n transform: \"translate(2.448 -2.32)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.728,37.606A1.743,1.743,0,0,0,30.893,36H25.635\",\n transform: \"translate(-25.635 -36)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}))));\n\nvar SvgDataSource = function SvgDataSource(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24.826,\n height: 25.207,\n viewBox: \"0 0 24.826 25.207\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDataSource, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/data-source.2b863d8f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-1129.5 -8055.3)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M62.242,80.984H55V91.735h7.242V76.2h8.094l0,7.31\",\n transform: \"translate(1076.36 7984.358)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 5.355,\n height: 1.841,\n transform: \"translate(1132.991 8063.463)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 3.345,\n height: 1.782,\n transform: \"translate(1133.67 8061.606)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 1.994,\n transform: \"translate(1132.447 8067.057)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 1.994,\n transform: \"translate(1132.447 8070.781)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 1.994,\n transform: \"translate(1132.447 8073.612)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 4.666,\n transform: \"translate(1139.367 8062.433)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 4.666,\n transform: \"translate(1139.367 8065.312)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 2.824,\n transform: \"translate(1139.382 8068.029)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 2.824,\n transform: \"translate(1139.382 8070.853)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 2.824,\n transform: \"translate(1139.382 8073.676)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 4.585,\n height: 1.378,\n transform: \"translate(1139.52 8059.172)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y1: 1.793,\n transform: \"translate(1141.815 8057.3)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 8.163,\n height: 8.529,\n transform: \"translate(1143.352 8067.565)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 24,\n transform: \"translate(1129.5 8076.109)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 1.994,\n transform: \"translate(1147.976 8070.075)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 1.994,\n transform: \"translate(1147.976 8072.906)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 2.605,\n transform: \"translate(1144.447 8070.075)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 2.605,\n transform: \"translate(1144.447 8072.906)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgOrganizations = function SvgOrganizations(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgOrganizations, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/organizations.6eba923b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-32 -506)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(34 508)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10,\n cy: 10,\n r: 10,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10,\n cy: 10,\n r: 9.5,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"text\", {\n transform: \"translate(41 523.5)\",\n fill: \"#37011f\",\n fontSize: 15,\n fontFamily: \"Lato-Regular, Lato\"\n}, /*#__PURE__*/React.createElement(\"tspan\", {\n x: 0,\n y: 0\n}, \"?\")));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgHelp = function SvgHelp(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgHelp, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/help.6a6fad4a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-124 -158)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(124 158)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 19,\n height: 2.111,\n transform: \"translate(0 0)\",\n fill: \"#a1145c\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 19,\n height: 2.111,\n transform: \"translate(0 5.236)\",\n fill: \"#a1145c\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 19,\n height: 2.111,\n transform: \"translate(0 10.472)\",\n fill: \"#a1145c\"\n})));\n\nvar SvgHamburger = function SvgHamburger(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19,\n height: 12.583,\n viewBox: \"0 0 19 12.583\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgHamburger, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/hamburger.3798ab5a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-1728 -7869)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1710 7853)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(20 18)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20,28.391,30,18,40,28.391\",\n transform: \"translate(-20 -18)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46,122v11.719H61.938V122.234\",\n transform: \"translate(-43.969 -113.875)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117,161.375V152h4.844v9.375\",\n transform: \"translate(-109.422 -141.531)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1190 7760)\",\n opacity: 0\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,4.625l7.981-8.6L16,4.625V16l-5.664-.494V6.531H5.795v8.975L0,16V4.625Z\",\n transform: \"translate(542 115)\",\n fill: \"#a1145c\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(520 93)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(20 18)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20,28.391,30,18,40,28.391\",\n transform: \"translate(-20 -18)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46,122v11.719H61.938V122.234\",\n transform: \"translate(-43.969 -113.875)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117,161.375V152h4.844v9.375\",\n transform: \"translate(-109.422 -141.531)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n})))));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgMenuHome = function SvgMenuHome(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMenuHome, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/menu-home.b3f454ed.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1.892 5.084)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.655,90H81.562A1.565,1.565,0,0,1,83.1,91.537v10.64a1.565,1.565,0,0,1-1.537,1.537H64.655a1.49,1.49,0,0,1-1.537-1.537L63,91.537A1.673,1.673,0,0,1,64.655,90Z\",\n transform: \"translate(-63 -90)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 5.793,\n transform: \"translate(11.823 3.665)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 5.793,\n transform: \"translate(11.823 7.094)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(2.246 2.956)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1.655,\n cy: 1.655,\n r: 1.655,\n transform: \"translate(2.01)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82,153.055c.118-.236.118-.355.236-.355a4.373,4.373,0,0,1,6.266-.591,6.757,6.757,0,0,1,.828.946\",\n transform: \"translate(-82 -146.789)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82,165a1.7,1.7,0,0,0,.236.355,4.59,4.59,0,0,0,6.266.591c.236-.355.591-.591.828-.946\",\n transform: \"translate(-82 -159.089)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x2: 5.793,\n transform: \"translate(10.877 3.665)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 5.793,\n transform: \"translate(10.877 7.094)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n transform: \"translate(0 0)\",\n fill: \"none\"\n}));\n\nvar SvgMenuCard = function SvgMenuCard(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMenuCard, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/menu-card.acad71bf.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-182.417 -394)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(190.118 397)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6967.37,273.319v14.837\",\n transform: \"translate(-6967.37 -273.319)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6967.37,273.319v11.372\",\n transform: \"translate(-6961.413 -273.319)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"line\", {\n x2: 17.021,\n transform: \"translate(184.417 401.185)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 17.021,\n transform: \"translate(184.417 404.802)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 11.319,\n transform: \"translate(184.417 408.42)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M173.756,483.869H162.415V469.311h17.111v8.763\",\n transform: \"translate(22.087 -71.8)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(195.055 405.681)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4.681,\n cy: 4.681,\n r: 4.681,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4.681,\n cy: 4.681,\n r: 4.181,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6916.518,284.154v3.214l-1.712,1.448\",\n transform: \"translate(-6911.837 -282.474)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n})));\n\nvar SvgMenuTimetables = function SvgMenuTimetables(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMenuTimetables, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/menu-timetables.3316054f.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useContext, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Button, Menu, MenuItem, Typography, useMediaQuery, IconButton,\n} from '@material-ui/core';\nimport * as R from 'ramda';\nimport { Link } from 'react-router-dom';\nimport { IDataVersion, IRole } from '../interfaces';\nimport AppContext, { ProviderContext } from '../context';\nimport { auth0, useGetLink } from '../utils';\nimport { ReactComponent as RolesIcon } from '../assets/roles.svg';\nimport { ReactComponent as LogOut } from '../assets/log-out.svg';\nimport { ReactComponent as Switch } from '../assets/switch.svg';\nimport { ReactComponent as DataSource } from '../assets/data-source.svg';\nimport { ReactComponent as Organizations } from '../assets/organizations.svg';\nimport { ReactComponent as Help } from '../assets/help.svg';\nimport { ReactComponent as Hamburger } from '../assets/hamburger.svg';\nimport { ReactComponent as MenuHome } from '../assets/menu-home.svg';\nimport { ReactComponent as MenuCard } from '../assets/menu-card.svg';\nimport { ReactComponent as MenuTimetables } from '../assets/menu-timetables.svg';\n\ninterface Props {\n name?: string;\n role?: IRole;\n agency?: string | null;\n showRoles?: boolean;\n versions?: IDataVersion[];\n version?: IDataVersion;\n setVersion?: (version: number) => void;\n passenger?: boolean;\n interconnectNumber?: string;\n}\n\nconst useStyles = makeStyles({\n user: {\n display: 'flex',\n minWidth: 22,\n width: 22,\n height: 22,\n borderRadius: '50%',\n fontSize: 11,\n fontWeight: 400,\n padding: 0,\n },\n hamburger: {\n padding: 8,\n },\n menu: {\n marginTop: 32,\n },\n userInfo: {\n marginBottom: 8,\n '&:focus': {\n outline: 'none',\n },\n },\n signedInAs: {\n margin: '2px 16px',\n color: '#37001F',\n },\n name: {\n fontWeight: 400,\n color: '#37001F',\n margin: '2px 16px',\n },\n agency: {\n fontWeight: 400,\n color: '#37001F',\n margin: '2px 16px',\n },\n menuItem: {\n fontWeight: 300,\n color: '#37001F',\n alignItems: 'flex-start',\n minHeight: 0,\n },\n menuIcon: {\n marginRight: 16,\n width: 24,\n },\n versionsMenu: {\n marginLeft: -16,\n marginTop: -8,\n },\n dataViewContainer: {\n display: 'flex',\n flexDirection: 'column',\n color: '#37001F',\n },\n smallText: {\n fontSize: 14,\n },\n versionsMenuItem: {\n fontWeight: 300,\n color: '#37001F',\n },\n current: {\n marginLeft: 8,\n fontSize: 14,\n },\n noIcon: {\n paddingLeft: 40,\n },\n userNumber: {\n color: '#37001F',\n margin: '2px 16px',\n },\n});\n\nexport default function UserMenu({\n name, role, agency, showRoles, versions, version, setVersion, passenger, interconnectNumber,\n}: Props) {\n const classes = useStyles();\n const { t } = useTranslation();\n const { updateContext } = useContext(AppContext);\n const { providers } = useContext(ProviderContext);\n const getLink = useGetLink();\n const [anchorEl, setAnchorEl] = useState(null);\n const [versionsAnchorEl, setVersionsAnchorEl] = useState(null);\n const initials = (() => {\n if (!name) return null;\n const split = name.split(' ');\n return (split.length > 1 ? (split[0][0] + split[1][0]) : (name[0] + name[1]))\n .toUpperCase();\n })();\n const agencyName = providers.find(R.whereEq({ id: agency }))?.name;\n const isMobile = useMediaQuery('(max-width: 800px)');\n return (\n <>\n {initials ? (\n setAnchorEl(event.currentTarget)}\n >\n {initials}\n \n ) : (\n setAnchorEl(event.currentTarget)}\n >\n \n \n )}\n setAnchorEl(null)}\n className={classes.menu}\n >\n {name && (\n
\n \n {t('nav.signedInAs')}\n \n \n {name}\n \n {agencyName && (\n \n {agencyName}\n \n )}\n {interconnectNumber && (\n \n {`${t('nav.number')}${interconnectNumber}`}\n \n )}\n
\n )}\n {(passenger && isMobile) && (\n [\n setAnchorEl(null)}\n key=\"1\"\n >\n \n {t('nav.tripPlanner')}\n ,\n ...(name ? [(\n setAnchorEl(null)}\n key=\"2\"\n >\n \n {t('touristCard.myCard')}\n \n )] : []),\n setAnchorEl(null)}\n key=\"3\"\n >\n \n {t('timetables.timetables')}\n ,\n setAnchorEl(null)}\n key=\"4\"\n >\n \n {t('support.help')}\n ,\n ]\n )}\n {showRoles && (role === 'ADMIN' || role === 'AGENCY_ADMIN') && (\n setAnchorEl(null)}\n >\n \n {t('nav.assignRoles')}\n \n )}\n {showRoles && role === 'ADMIN' && (\n setAnchorEl(null)}\n >\n \n {t('nav.orgs')}\n \n )}\n {showRoles && role === 'ADMIN' && (\n setAnchorEl(null)}\n >\n \n {t('nav.setDataSource')}\n \n )}\n {versions && version && setVersion && (\n setVersionsAnchorEl(event.currentTarget)}\n >\n \n \n \n {t('nav.switchDataView')}\n \n \n {t('nav.dataView')}\n :\n \n \n {version.type === 'draft' ? t('nav.draft') : version.name}\n \n \n \n )}\n {showRoles && (\n setAnchorEl(null)}\n >\n \n {t('support.help')}\n \n )}\n {name ? (\n {\n setAnchorEl(null);\n window.localStorage.removeItem('accessToken');\n updateContext(R.set(R.lensProp('name'), null));\n auth0.logout({\n clientID: process.env.AUTH0_CLIENT_ID as string,\n returnTo: `${window.location.origin}${getLink('/auth/login')}`,\n });\n }}\n >\n \n {t('nav.logOut')}\n \n ) : (\n [\n setAnchorEl(null)}\n key=\"1\"\n >\n \n {t('auth.logIn')}\n \n ,\n setAnchorEl(null)}\n key=\"2\"\n >\n \n {t('auth.register')}\n \n ,\n ]\n )}\n \n {versions && version && setVersion && (\n setVersionsAnchorEl(null)}\n className={classes.versionsMenu}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n >\n {versions.map((x) => (\n {\n setVersionsAnchorEl(null);\n setVersion(x.id);\n localStorage.setItem('version', String(x.id));\n }}\n >\n {x.type === 'draft' ? t('nav.draft') : x.name}\n {x.type === 'current' && (\n \n {t('nav.current')}\n \n )}\n \n ))}\n \n )}\n \n );\n}\n","import React, { useContext } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from '@material-ui/core';\nimport * as R from 'ramda';\nimport AppContext, { ProviderContext } from '../context';\nimport CustomAutocomplete from '../common/CustomAutocomplete';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n },\n header: {\n fontSize: 24,\n fontWeight: 700,\n },\n info: {\n marginBottom: 24,\n },\n dataSource: {\n width: 300,\n },\n});\n\nexport default function DataSource() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { providers, user } = useContext(ProviderContext);\n const { updateContext } = useContext(AppContext);\n return (\n
\n \n {t('nav.setDataSource')}\n \n \n {t('dataSource.info')}\n \n x.dataSource === 'manual')}\n value={providers.find(R.propEq('id', user.agency)) || null}\n onChange={async (event, value) => {\n if (value) {\n localStorage.setItem('agency', value.id);\n localStorage.removeItem('version');\n updateContext(R.set(R.lensPath(['user', 'agency']), value.id));\n } else {\n localStorage.removeItem('agency');\n localStorage.removeItem('version');\n updateContext(R.set(R.lensPath(['user', 'agency']), null));\n }\n }}\n label={t('export.dataSource')}\n className={classes.dataSource}\n getOptionLabel={R.prop('name')}\n />\n
\n );\n}\n","import React, { useContext, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Button,\n Checkbox, FormControlLabel, InputAdornment, TextField,\n} from '@material-ui/core';\nimport * as R from 'ramda';\nimport AppContext, { ProviderContext } from '../context';\nimport { ReactComponent as Search } from '../assets/search.svg';\nimport NewHeader from './NewHeader';\nimport ButtonList from './ButtonList';\nimport SelectLocation, { coordsValid } from '../common/SelectLocation';\nimport CustomAutocomplete from '../common/CustomAutocomplete';\nimport timeZones from './data/time-zones';\nimport { IProvider } from '../interfaces';\nimport DeleteDialog from './DeleteDialog';\nimport { axios } from '../utils';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n display: 'flex',\n },\n left: {\n flexGrow: 1,\n marginRight: 24,\n },\n search: {\n width: 500,\n marginBottom: 24,\n },\n right: {\n width: 600,\n flexShrink: 0,\n marginTop: 64,\n },\n field: {\n marginBottom: 16,\n },\n fieldRow: {\n display: 'flex',\n margin: '0 -12px 24px',\n },\n shortField: {\n width: '50%',\n margin: '0 12px',\n },\n saveRow: {\n display: 'flex',\n alignItems: 'center',\n },\n discard: {\n marginRight: 16,\n marginLeft: 'auto',\n },\n tripPlanning: {\n marginBottom: 16,\n },\n});\n\nfunction isValidHttpUrl(string: string) {\n let url;\n try {\n url = new URL(string);\n } catch {\n return false;\n }\n return url.protocol === 'http:' || url.protocol === 'https:';\n}\n\nfunction sortByName(list: T[]): T[] {\n return R.sort((a, b) => a.name.localeCompare(b.name, 'pl'), list);\n}\n\ntype DataMgmt = 'manual' | 'gtfs' | 'netex' | 'other';\n\nexport default function Organizations() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { providers, setProviders, user } = useContext(ProviderContext);\n const { updateContext } = useContext(AppContext);\n const [search, setSearch] = useState('');\n const [selectedOrg, setSelectedOrg] = useState(null);\n const [fullName, setFullName] = useState('');\n const [name, setName] = useState('');\n const [nameError, setNameError] = useState(false);\n const [website, setWebsite] = useState('');\n const [websiteError, setWebsiteError] = useState(false);\n const [lat, setLat] = useState('');\n const [lon, setLon] = useState('');\n const [timeZone, setTimeZone] = useState('');\n const [dataMgmt, setDataMgmt] = useState('manual');\n const [importUrl, setImportUrl] = useState('');\n const [importUrlError, setImportUrlError] = useState(false);\n const [tripPlanning, setTripPlanning] = useState(true);\n const [deleteDialog, setDeleteDialog] = useState(false);\n const [deleteName, setDeleteName] = useState('');\n const loadData = (org: IProvider | null) => {\n if (org) {\n setFullName(org.fullName);\n setName(org.name);\n setWebsite(org.website);\n setLat(String(org.lat));\n setLon(String(org.lon));\n setTimeZone(org.timeZone);\n setDataMgmt(org.dataSource === 'manual' ? 'manual' : org.dataImport.type);\n setImportUrl(org.dataSource === 'manual' ? '' : org.dataImport.url || '');\n setTripPlanning(org.tripPlanning);\n } else {\n setFullName('');\n setName('');\n setWebsite('');\n setLat('');\n setLon('');\n setTimeZone('Europe/Warsaw');\n setDataMgmt('manual');\n setImportUrl('');\n setTripPlanning(true);\n }\n setNameError(false);\n };\n return (\n
\n
\n {\n setSelectedOrg('new');\n loadData(null);\n }}\n />\n \n \n \n ),\n }}\n label={t('orgs.search')}\n value={search}\n onChange={({ target: { value } }) => setSearch(value)}\n className={classes.search}\n variant=\"outlined\"\n size=\"small\"\n />\n (\n provider.name.toLowerCase().includes(search.toLowerCase())\n )).map((provider) => ({\n id: provider.id,\n name: provider.name,\n onClick: () => {\n setSelectedOrg(provider.id);\n loadData(provider);\n },\n })))\n )}\n selected={selectedOrg}\n variant=\"small\"\n />\n
\n
\n {selectedOrg && (\n <>\n setFullName(target.value)}\n variant=\"outlined\"\n size=\"small\"\n fullWidth\n className={classes.field}\n />\n {\n setName(target.value);\n setNameError(false);\n }}\n variant=\"outlined\"\n size=\"small\"\n fullWidth\n className={classes.field}\n error={nameError}\n helperText={nameError ? t('orgs.alreadyExists', { name }) : ''}\n />\n {\n setWebsite(target.value);\n setWebsiteError(false);\n }}\n variant=\"outlined\"\n size=\"small\"\n fullWidth\n className={classes.field}\n error={websiteError}\n helperText={websiteError ? t('orgs.invalidUrl') : ''}\n />\n \n
\n
\n value && setTimeZone(value)}\n label={t('orgs.timeZone')}\n disableClearable\n />\n
\n
\n t(`orgs.${option}`)}\n getOptionDisabled={(option) => {\n if (selectedOrg === 'new') {\n return false;\n }\n return (dataMgmt === 'manual') !== (option === 'manual');\n }}\n value={dataMgmt}\n onChange={(event, value) => {\n if (value) {\n setDataMgmt(value);\n if (!(value === 'gtfs' || value === 'netex')) {\n setImportUrl('');\n }\n }\n }}\n label={t('orgs.dataMgmt')}\n disableClearable\n />\n
\n
\n {\n setImportUrl(target.value);\n setImportUrlError(false);\n }}\n variant=\"outlined\"\n size=\"small\"\n fullWidth\n className={classes.field}\n disabled={!(dataMgmt === 'gtfs' || dataMgmt === 'netex')}\n error={importUrlError}\n helperText={importUrlError ? t('orgs.invalidUrl') : ''}\n />\n setTripPlanning(target.checked)}\n color=\"primary\"\n />\n )}\n label={t('orgs.tripPlanning')}\n className={classes.tripPlanning}\n />\n
\n {selectedOrg !== 'new' && (\n {\n setDeleteDialog(true);\n setDeleteName(providers.find(R.propEq('id', selectedOrg))!.name);\n }}\n >\n {t('orgs.delete')}\n \n )}\n {\n loadData(\n selectedOrg !== 'new'\n ? providers.find(R.propEq('id', selectedOrg)) || null\n : null,\n );\n }}\n >\n {t('orgs.discard')}\n \n {\n let error = false;\n if (providers.some((provider) => (\n provider.id !== selectedOrg && provider.name === name\n ))) {\n setNameError(true);\n error = true;\n }\n if (website && !isValidHttpUrl(website)) {\n setWebsiteError(true);\n error = true;\n }\n if (importUrl && !isValidHttpUrl(importUrl)) {\n setImportUrlError(true);\n error = true;\n }\n if (error) {\n return;\n }\n const data = {\n name,\n fullName,\n website,\n lat: Number(lat),\n lon: Number(lon),\n timeZone,\n tripPlanning,\n ...(dataMgmt === 'manual' ? {\n dataSource: 'manual',\n } : {\n dataSource: 'auto',\n dataImport: {\n type: dataMgmt,\n url: importUrl,\n },\n }),\n };\n if (selectedOrg === 'new') {\n const { data: newProvider } = await axios.post('/provider', data);\n setProviders(sortByName([...providers, newProvider]));\n } else {\n await axios.put(`/provider/${selectedOrg}`, data);\n setProviders(sortByName(providers.map((provider) => (\n provider.id === selectedOrg ? {\n id: selectedOrg,\n ...data,\n } as IProvider : provider\n ))));\n }\n setSelectedOrg(null);\n }}\n >\n {t('orgs.save')}\n \n
\n \n )}\n
\n setDeleteDialog(false)}\n text={t('orgs.confirmDelete', { name: deleteName })}\n onDelete={async () => {\n await axios.delete(`/provider/${selectedOrg}`);\n setProviders(providers.filter((x) => x.id !== selectedOrg));\n if (user.agency === selectedOrg) {\n localStorage.removeItem('agency');\n localStorage.removeItem('version');\n updateContext(R.set(R.lensPath(['user', 'agency']), null));\n }\n setSelectedOrg(null);\n setDeleteDialog(false);\n }}\n canDelete\n />\n
\n );\n}\n","import React, {\n useContext, useEffect, useRef, useState,\n} from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Trans, useTranslation } from 'react-i18next';\nimport {\n Button, TextField, Typography, FormHelperText, FormControlLabel, Checkbox, Link as MuiLink,\n} from '@material-ui/core';\nimport ReCAPTCHA from 'react-google-recaptcha';\nimport { validate as isValidEmail } from 'email-validator';\nimport { Link, useLocation, useHistory } from 'react-router-dom';\nimport CustomAutocomplete from '../CustomAutocomplete';\nimport { useGetLink, axios, auth0 } from '../../utils';\nimport AppContext from '../../context';\n\nconst useStyles = makeStyles({\n root: {\n margin: '32px 64px',\n '@media (max-width: 1200px)': {\n margin: '32px 16px',\n },\n },\n header: {\n fontSize: 22,\n fontWeight: 'bold',\n marginBottom: 24,\n },\n shortField: {\n display: 'flex',\n width: '100%',\n maxWidth: 380,\n marginBottom: 24,\n },\n longField: {\n display: 'flex',\n width: '100%',\n maxWidth: 770,\n marginBottom: 24,\n },\n submitButton: {\n display: 'block',\n width: '100%',\n maxWidth: 380,\n },\n checkboxes: {\n display: 'flex',\n marginBottom: 24,\n '@media (max-width: 1200px)': {\n flexDirection: 'column',\n },\n },\n captchaError: {\n marginLeft: 16,\n },\n agreement: {\n margin: '14px 0 0 80px',\n maxWidth: 280,\n '@media (max-width: 1200px)': {\n margin: '24px 0 0 12px',\n },\n },\n agreementLabel: {\n fontSize: 14,\n fontWeight: 300,\n color: '#37001F',\n },\n sent: {\n marginTop: 24,\n },\n checkboxContainer: {\n alignItems: 'flex-start',\n },\n checkbox: {\n marginTop: -8,\n },\n});\n\nexport default function Contact() {\n const classes = useStyles();\n const { t, i18n } = useTranslation();\n const getLink = useGetLink();\n const { user, showSnackbar } = useContext(AppContext);\n const [app, setApp] = useState(null);\n const [appError, setAppError] = useState(false);\n const [email, setEmail] = useState('');\n const [emailError, setEmailError] = useState(false);\n const [subject, setSubject] = useState('');\n const [subjectError, setSubjectError] = useState(false);\n const [description, setDescription] = useState('');\n const [descriptionError, setDescriptionError] = useState(false);\n const captcha = useRef(null);\n const [captchaToken, setCaptchaToken] = useState(null);\n const [captchaError, setCaptchaError] = useState(false);\n const [agree, setAgree] = useState(false);\n const [agreeError, setAgreeError] = useState(false);\n const [role, setRole] = useState(null);\n const location = useLocation();\n const history = useHistory();\n useEffect(() => {\n const urlRole = new URLSearchParams(location.search).get('role');\n if (urlRole) {\n setRole(urlRole);\n history.push(location.pathname);\n }\n }, [location, history]);\n useEffect(() => {\n const accessToken = localStorage.getItem('accessToken');\n if (accessToken) {\n auth0.client.userInfo(accessToken, (err, auth0User) => {\n if (auth0User && auth0User.email) {\n setEmail(auth0User.email);\n }\n });\n }\n }, [user]);\n return (\n
\n \n {t('support.needHelp')}\n
\n {t('support.pleaseDescribe')}\n
\n t(`support.${option}`)}\n value={app || undefined}\n onChange={(event, value) => {\n setApp(value);\n setAppError(false);\n }}\n className={classes.shortField}\n disableClearable\n TextFieldProps={{\n error: appError,\n helperText: appError ? t('support.pleaseFill') : '',\n }}\n />\n {\n setEmail(target.value);\n setEmailError(false);\n }}\n className={classes.shortField}\n variant=\"outlined\"\n size=\"small\"\n error={emailError}\n helperText={emailError ? t('auth.invalidEmail') : ''}\n id=\"your-email\"\n />\n {\n setSubject(target.value);\n setSubjectError(false);\n }}\n className={classes.longField}\n variant=\"outlined\"\n size=\"small\"\n error={subjectError}\n helperText={subjectError ? t('support.pleaseFill') : ''}\n id=\"subject\"\n />\n {\n setDescription(target.value);\n setDescriptionError(false);\n }}\n className={classes.longField}\n variant=\"outlined\"\n size=\"small\"\n multiline\n rows={8}\n rowsMax={20}\n error={descriptionError}\n helperText={descriptionError ? t('support.pleaseFill') : ''}\n id=\"description\"\n />\n
\n
\n {\n setCaptchaToken(token);\n if (token) {\n setCaptchaError(false);\n }\n }}\n sitekey={process.env.RECAPTCHA_KEY as string}\n />\n {captchaError && (\n \n {t('support.pleaseFill')}\n \n )}\n
\n
\n {\n setAgree(target.checked);\n setAgreeError(false);\n }}\n color=\"primary\"\n id=\"agreement\"\n className={classes.checkbox}\n />\n )}\n label={(\n \n ,\n ,\n ]}\n />\n \n )}\n className={classes.checkboxContainer}\n />\n {agreeError && (\n \n {t('support.pleaseFill')}\n \n )}\n
\n
\n {\n let error = false;\n if (!app) {\n setAppError(true);\n error = true;\n }\n if (!isValidEmail(email)) {\n setEmailError(true);\n error = true;\n }\n if (!subject) {\n setSubjectError(true);\n error = true;\n }\n if (!description) {\n setDescriptionError(true);\n error = true;\n }\n if (!captchaToken) {\n setCaptchaError(true);\n error = true;\n }\n if (!agree) {\n setAgreeError(true);\n error = true;\n }\n if (!error) {\n await axios.post('/public/support', {\n app,\n role: role || user?.role,\n email,\n subject,\n description,\n captchaToken,\n lang: i18n.language,\n });\n setApp(null);\n setEmail('');\n setSubject('');\n setDescription('');\n setCaptchaToken(null);\n captcha.current.reset();\n setAgree(false);\n showSnackbar(t('support.sent'));\n }\n }}\n >\n {t('support.submit')}\n \n
\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation } from 'react-router-dom';\nimport {\n InputAdornment, TextField, Typography, Collapse,\n} from '@material-ui/core';\nimport classNames from 'classnames';\nimport { ReactComponent as Search } from '../../assets/search.svg';\nimport { axios } from '../../utils';\n\ninterface Entry {\n question: string;\n answer: string;\n}\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n margin: '32px 64px',\n '@media (max-width: 1200px)': {\n margin: '32px 16px',\n },\n },\n header: {\n fontSize: 22,\n fontWeight: 700,\n color: '#38001F',\n marginBottom: 32,\n },\n search: {\n width: '100%',\n maxWidth: 400,\n marginBottom: 24,\n },\n entry: {\n borderRadius: 15,\n backgroundColor: '#F5F5F5',\n marginBottom: 16,\n maxWidth: 700,\n transition: theme.transitions.create('max-width'),\n },\n expandedEntry: {\n maxWidth: '100%',\n },\n question: {\n padding: '8px 16px',\n fontSize: 18,\n fontWeight: 500,\n color: '#37001F',\n cursor: 'pointer',\n '& p': {\n margin: 0,\n },\n },\n answer: {\n width: 'calc(100vw - 128px)',\n padding: '0 16px 8px',\n fontSize: 18,\n fontWeight: 300,\n color: '#37001F',\n '@media (max-width: 1200px)': {\n width: 'calc(100vw - 32px)',\n },\n '& p': {\n margin: 0,\n },\n },\n}));\n\nexport default function FAQ() {\n const classes = useStyles();\n const { t, i18n } = useTranslation();\n const location = useLocation();\n const [entries, setEntries] = useState(null);\n useEffect(() => {\n (async () => {\n const pathSegment = location.pathname.split('/')[2];\n const category = pathSegment === 'support' ? 'passenger' : pathSegment;\n const { data } = await axios.get(`/faq/${category}?lang=${i18n.language}`);\n setEntries(data);\n })();\n }, [i18n.language, location.pathname]);\n const [search, setSearch] = useState('');\n const [expandedEntry, setExpandedEntry] = useState(null);\n if (!entries) return null;\n const filteredEntries = entries.filter((entry) => (\n entry.question.toLowerCase().includes(search.toLowerCase())\n || entry.answer.toLowerCase().includes(search.toLowerCase())\n ));\n return (\n
\n \n {t('support.haveAQuestion')}\n \n \n \n \n ),\n }}\n label={t('support.searchFaq')}\n value={search}\n onChange={({ target: { value } }) => {\n setSearch(value);\n setExpandedEntry(null);\n }}\n className={classes.search}\n variant=\"outlined\"\n size=\"small\"\n id=\"search-faq\"\n />\n {filteredEntries.map((entry, i) => (\n \n {/* eslint-disable-next-line react/no-danger */}\n setExpandedEntry(expandedEntry === i ? null : i)}\n dangerouslySetInnerHTML={{ __html: entry.question }}\n />\n \n {/* eslint-disable-next-line react/no-danger */}\n \n \n
\n ))}\n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n InputAdornment, TextField, Typography, Button, IconButton, FormControlLabel, Checkbox,\n} from '@material-ui/core';\nimport classNames from 'classnames';\nimport ReactQuill from 'react-quill';\nimport * as R from 'ramda';\nimport { axios } from '../../utils';\nimport NewHeader from '../../provider/NewHeader';\nimport { ReactComponent as Search } from '../../assets/search.svg';\nimport { ReactComponent as Clear } from '../../assets/clear.svg';\nimport { ReactComponent as ClearWhite } from '../../assets/clear-white.svg';\nimport DeleteDialog from '../../provider/DeleteDialog';\n\ntype Category = 'passenger' | 'provider' | 'card' | 'beacon';\n\ninterface Entry {\n id: number;\n questionPL: string;\n questionEN: string;\n answerPL: string;\n answerEN: string;\n categories: Category[];\n}\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n margin: 32,\n display: 'flex',\n },\n left: {\n width: 600,\n flexShrink: 0,\n marginRight: 32,\n },\n right: {\n flexGrow: 1,\n },\n search: {\n width: 400,\n marginBottom: 24,\n },\n portalsHeader: {\n fontWeight: 400,\n marginBottom: 10,\n },\n portals: {\n display: 'flex',\n marginBottom: 24,\n },\n portal: {\n borderRadius: 16,\n fontSize: 14,\n fontWeight: 400,\n backgroundColor: '#F5F5F5',\n color: '#37001F',\n marginRight: 8,\n },\n selectedPortal: {\n backgroundColor: '#A1145C',\n color: 'white',\n '&:hover': {\n backgroundColor: 'rgb(112, 14, 64)',\n },\n },\n entry: {\n borderRadius: 15,\n padding: '8px 16px',\n marginBottom: 8,\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n cursor: 'pointer',\n backgroundColor: '#F5F5F5',\n color: '#37001F',\n transition: theme.transitions.create(['background-color', 'color']),\n },\n entryText: {\n color: 'inherit',\n fontSize: 16,\n fontWeight: 300,\n '& p': {\n margin: 0,\n },\n },\n selectedEntry: {\n backgroundColor: '#A1145C',\n color: 'white',\n },\n quillLabel: {\n fontSize: 14,\n fontWeight: 400,\n margin: '0 0 8px 12px',\n },\n quill: {\n height: 140,\n paddingBottom: 42,\n marginBottom: 16,\n },\n checkboxes: {\n display: 'flex',\n marginBottom: 24,\n },\n formControlLabel: {\n marginRight: 24,\n },\n saveRow: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n },\n discardChanges: {\n marginRight: 16,\n },\n}));\n\nconst allCategories: Category[] = ['passenger', 'provider', 'card', 'beacon'];\n\nexport default function ManageFAQ() {\n const classes = useStyles();\n const { t } = useTranslation();\n const [entries, setEntries] = useState(null);\n const [selectedEntry, setSelectedEntry] = useState(null);\n const [search, setSearch] = useState('');\n const [selectedCategories, setSelectedCategories] = useState(allCategories);\n const [questionPL, setQuestionPL] = useState('');\n const [questionEN, setQuestionEN] = useState('');\n const [answerPL, setAnswerPL] = useState('');\n const [answerEN, setAnswerEN] = useState('');\n const [isPassenger, setIsPassenger] = useState(false);\n const [isProvider, setIsProvider] = useState(false);\n const [isCard, setIsCard] = useState(false);\n const [isBeacon, setIsBeacon] = useState(false);\n const [deleteId, setDeleteId] = useState(null);\n useEffect(() => {\n (async () => {\n const { data } = await axios.get('/faq');\n setEntries(data.map((x: any, i: number) => ({ id: i, ...x })));\n })();\n }, []);\n if (!entries) return null;\n const filteredEntries = entries.filter((x) => (\n [x.questionPL, x.questionEN, x.answerPL, x.answerEN]\n .some((y) => y.toLowerCase().includes(search.toLowerCase()))\n && x.categories.some((y) => selectedCategories.includes(y))\n ));\n const loadData = (entry: Entry | null) => {\n if (entry) {\n setSelectedEntry(entry.id);\n setQuestionPL(entry.questionPL);\n setQuestionEN(entry.questionEN);\n setAnswerPL(entry.answerPL);\n setAnswerEN(entry.answerEN);\n setIsPassenger(entry.categories.includes('passenger'));\n setIsProvider(entry.categories.includes('provider'));\n setIsCard(entry.categories.includes('card'));\n setIsBeacon(entry.categories.includes('beacon'));\n } else {\n setSelectedEntry('new');\n setQuestionPL('');\n setQuestionEN('');\n setAnswerPL('');\n setAnswerEN('');\n setIsPassenger(false);\n setIsProvider(false);\n setIsCard(false);\n setIsBeacon(false);\n }\n };\n return (\n
\n
\n loadData(null)}\n bigMargin\n />\n \n \n \n ),\n }}\n label={t('support.searchFaq')}\n value={search}\n onChange={({ target: { value } }) => setSearch(value)}\n className={classes.search}\n variant=\"outlined\"\n size=\"small\"\n />\n \n {t('support.portals')}\n \n
\n {allCategories.map((category) => (\n setSelectedCategories(\n selectedCategories.includes(category)\n ? selectedCategories.filter((x) => x !== category)\n : [...selectedCategories, category],\n )}\n >\n {t(`support.${category}`)}\n \n ))}\n
\n {filteredEntries.map((entry) => (\n (selectedEntry === entry.id ? setSelectedEntry(null) : loadData(entry))}\n >\n {/* eslint-disable-next-line react/no-danger */}\n \n {\n event.stopPropagation();\n setDeleteId(entry.id);\n }}\n size=\"small\"\n data-testid=\"delete-button\"\n >\n {selectedEntry === entry.id ? : }\n \n
\n ))}\n
\n
\n {selectedEntry !== null && (\n <>\n \n {t('support.questionPL')}\n \n \n \n {t('support.questionEN')}\n \n \n \n {t('support.answerPL')}\n \n \n \n {t('support.answerEN')}\n \n \n \n {t('support.portals')}\n \n
\n setIsPassenger(target.checked)}\n />\n )}\n label={t('support.passenger')}\n className={classes.formControlLabel}\n />\n setIsProvider(target.checked)}\n />\n )}\n label={t('support.provider')}\n className={classes.formControlLabel}\n />\n setIsCard(target.checked)}\n />\n )}\n label={t('support.card')}\n className={classes.formControlLabel}\n />\n setIsBeacon(target.checked)}\n />\n )}\n label={t('support.beacon')}\n className={classes.formControlLabel}\n />\n
\n
\n loadData(\n selectedEntry === 'new'\n ? null\n : entries.find(R.propEq('id', selectedEntry)) || null,\n )}\n className={classes.discardChanges}\n >\n {t('common.discardChanges')}\n \n x)\n )}\n onClick={async () => {\n const newEntry: Entry = {\n id: selectedEntry === 'new' ? (R.last(entries)?.id || 0) + 1 : selectedEntry,\n questionPL,\n questionEN,\n answerPL,\n answerEN,\n categories: [\n isPassenger ? 'passenger' : null,\n isProvider ? 'provider' : null,\n isCard ? 'card' : null,\n isBeacon ? 'beacon' : null,\n ].filter((x) => x !== null) as Category[],\n };\n const newEntries = selectedEntry === 'new'\n ? [...entries, newEntry]\n : entries.map((x) => (x.id === selectedEntry ? newEntry : x));\n await axios.put('/faq', newEntries);\n setEntries(newEntries);\n setSelectedEntry(null);\n }}\n >\n {t('common.save')}\n \n
\n \n )}\n
\n setDeleteId(null)}\n text={t('support.deleteConfirm')}\n onDelete={async () => {\n const newEntries = entries.filter((x) => x.id !== deleteId);\n await axios.put('/faq', newEntries);\n if (selectedEntry === deleteId) {\n setSelectedEntry(null);\n }\n setEntries(newEntries);\n setDeleteId(null);\n }}\n canDelete\n />\n \n );\n}\n","import React, { useContext } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n useHistory, useParams, Switch, Redirect, Route,\n} from 'react-router-dom';\nimport { Tab, Tabs } from '@material-ui/core';\nimport { useGetLink } from '../../utils';\nimport Contact from './Contact';\nimport FAQ from './FAQ';\nimport AppContext from '../../context';\nimport ManageFAQ from './ManageFAQ';\n\ninterface Props {\n basePath: string;\n}\n\nconst useStyles = makeStyles({\n root: {\n width: '100%',\n },\n tabs: {\n backgroundColor: '#F5F5F5',\n paddingTop: 16,\n },\n tab: {\n textTransform: 'none',\n fontSize: 16,\n fontWeight: 300,\n },\n});\n\nexport default function SupportContent({ basePath }: Props) {\n const classes = useStyles();\n const { t } = useTranslation();\n const history = useHistory();\n const getLink = useGetLink();\n const { tab } = useParams<{ tab: string; }>();\n const { user } = useContext(AppContext);\n if (!tab || (user?.role !== 'ADMIN' && tab === 'manage-faq')) {\n return (\n \n );\n }\n return (\n
\n history.push(getLink(`${basePath}/${value}`))}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n centered\n className={classes.tabs}\n >\n \n \n {user?.role === 'ADMIN' && (\n \n )}\n \n \n \n \n \n \n
\n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport SupportContent from '../common/SupportContent/SupportContent';\n\nconst useStyles = makeStyles({\n root: {\n margin: '0 -32px',\n flexGrow: 1,\n },\n});\n\nexport default function Support() {\n const classes = useStyles();\n return (\n
\n \n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(6 2)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M202.462,199.143l-.186.971-.072.357-.146.718-.371,1.884c-.143.857-.214,1.214-.286,1.5a.96.96,0,0,0,.143.571c.143.214.357.643,1,1.643.643,1.071,1.714,2.714,2.286,3.714a5.6,5.6,0,0,1,.714,1.429.991.991,0,0,1,0,.643,1.339,1.339,0,0,1-.429.5,1.1,1.1,0,0,1-.728,0,1.528,1.528,0,0,1-.6-.5s-.6-1.016-1.242-1.873c-.571-.929-1.357-1.913-2.071-3.127a25.421,25.421,0,0,1-1.643-2.643,2.434,2.434,0,0,1-.214-1.571c.143-.643.357-1.714.429-2.286.143-.5.071-.5-.071-.429-.214.143-.714.5-.714.5l-.643.5s-.071.054-.214.571a13.59,13.59,0,0,0-.325,1.357,3.883,3.883,0,0,1-.344,1.423.546.546,0,0,1-.7.318c-.242-.054-.48-.3-.457-.384s-.111.032,0-.929.248-1.714.32-2.357a1.874,1.874,0,0,1,.647-1.286c.5-.429,1.214-1.071,2-1.643s.764-.541,1.143-.643a2.583,2.583,0,0,1,1-.071,3.6,3.6,0,0,1,1.143.286c.286.143.418.429.632.857l.055.116.6,1.456c.214.5.643,1.429,1,1.571.357.214,1.071.429,1.5.643a3.776,3.776,0,0,1,1.071.5.59.59,0,0,1,.2.5.627.627,0,0,1-.275.568c-.222.194-.357.214-1,0a17.206,17.206,0,0,1-2.357-1.071,2.779,2.779,0,0,1-.929-.786,3.986,3.986,0,0,0-.357-.571\",\n transform: \"translate(-195.044 -193.214)\",\n fill: \"none\",\n stroke: \"#188d13\",\n strokeLinecap: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M191.5,289c-.214.714-.357,1.357-.571,2.071s-.429,1.357-.5,1.786a2.964,2.964,0,0,1-.5.929c-.357.429-.857,1.214-1.214,1.714a6.381,6.381,0,0,0-.571.929.77.77,0,0,0-.143.5.535.535,0,0,0,.071.357.558.558,0,0,0,.286.286.714.714,0,0,0,.857,0,5.231,5.231,0,0,0,.643-.643A12.493,12.493,0,0,0,191,295.5c.357-.5.643-.857.786-1.071a1.918,1.918,0,0,0,.429-.857c.214-.5.5-1.286.786-2.071\",\n transform: \"translate(-188 -277.714)\",\n fill: \"none\",\n stroke: \"#188d13\",\n strokeLinecap: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 1.929,\n cy: 1.929,\n rx: 1.929,\n ry: 1.929,\n transform: \"translate(4.786 0)\",\n fill: \"none\",\n stroke: \"#188d13\",\n strokeWidth: 1\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgEntering = function SvgEntering(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgEntering, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/entering.cccc2990.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-182 -129)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(188 131)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M199.961,199.143l.186.971.072.357.146.718.371,1.884c.143.857.214,1.214.286,1.5a.96.96,0,0,1-.143.571c-.143.214-.357.643-1,1.643-.643,1.071-1.714,2.714-2.286,3.714a5.6,5.6,0,0,0-.714,1.429.991.991,0,0,0,0,.643,1.339,1.339,0,0,0,.429.5,1.1,1.1,0,0,0,.728,0,1.528,1.528,0,0,0,.6-.5s.6-1.016,1.242-1.873c.571-.929,1.357-1.913,2.071-3.127a25.421,25.421,0,0,0,1.643-2.643,2.434,2.434,0,0,0,.214-1.571c-.143-.643-.357-1.714-.429-2.286-.143-.5-.071-.5.071-.429.214.143.714.5.714.5l.643.5s.071.054.214.571a13.59,13.59,0,0,1,.325,1.357,3.883,3.883,0,0,0,.344,1.423.546.546,0,0,0,.7.318c.242-.054.48-.3.457-.384s.111.032,0-.929-.248-1.714-.32-2.357a1.874,1.874,0,0,0-.647-1.286c-.5-.429-1.214-1.071-2-1.643s-.764-.541-1.143-.643a2.583,2.583,0,0,0-1-.071,3.6,3.6,0,0,0-1.143.286c-.286.143-.418.429-.632.857l-.055.116-.6,1.456c-.214.5-.643,1.429-1,1.571-.357.214-1.071.429-1.5.643a3.776,3.776,0,0,0-1.071.5.59.59,0,0,0-.2.5.627.627,0,0,0,.275.568c.222.194.357.214,1,0a17.2,17.2,0,0,0,2.357-1.071,2.779,2.779,0,0,0,.929-.786,3.986,3.986,0,0,1,.357-.571\",\n transform: \"translate(-195.532 -193.214)\",\n fill: \"none\",\n stroke: \"#c41515\",\n strokeLinecap: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M189.5,289c.214.714.357,1.357.571,2.071s.429,1.357.5,1.786a2.964,2.964,0,0,0,.5.929c.357.429.857,1.214,1.214,1.714a6.381,6.381,0,0,1,.571.929.77.77,0,0,1,.143.5.535.535,0,0,1-.071.357.558.558,0,0,1-.286.286.714.714,0,0,1-.857,0,5.231,5.231,0,0,1-.643-.643A12.493,12.493,0,0,1,190,295.5c-.357-.5-.643-.857-.786-1.071a1.918,1.918,0,0,1-.429-.857c-.214-.5-.5-1.286-.786-2.071\",\n transform: \"translate(-181.154 -277.714)\",\n fill: \"none\",\n stroke: \"#c41515\",\n strokeLinecap: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 1.929,\n cy: 1.929,\n rx: 1.929,\n ry: 1.929,\n transform: \"translate(3.203 0)\",\n fill: \"none\",\n stroke: \"#c41515\",\n strokeWidth: 1\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgLeaving = function SvgLeaving(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLeaving, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/leaving.6d556fc8.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(6372 -13670)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-6368 13674)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8,\n cy: 8,\n r: 8,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8,\n cy: 8,\n r: 7.5,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6917.732,284.154v5.494l-2.926,2.474\",\n transform: \"translate(-6909.732 -281.282)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n transform: \"translate(-6372 13670)\",\n fill: \"none\"\n}));\n\nvar SvgClock = function SvgClock(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgClock, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/clock.9602e588.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(7207 -13914)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(3.952 28.5)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1.594,\n cy: 1.594,\n r: 1.594,\n transform: \"translate(-7202.868 13887.5)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M798.688,332.208h-.071v12.649a1.015,1.015,0,0,1-1,.753,1.2,1.2,0,0,1-1.12-.753v-7.5h0v7.5a.939.939,0,0,1-1.02.753.836.836,0,0,1-.944-.753V332.208h0v4.672a1.284,1.284,0,0,1-1.067.54.975.975,0,0,1-.922-.54v-6.125a1.333,1.333,0,0,1,.37-.852,1.715,1.715,0,0,1,.977-.344s1.213-.125,2.6-.125,2.82.125,2.82.125a1.635,1.635,0,0,1,.887.344,1.278,1.278,0,0,1,.388.852v6.125a1.065,1.065,0,0,1-.88.54,1.34,1.34,0,0,1-1.027-.54Z\",\n transform: \"translate(-7998 13562.39)\",\n fill: \"#fff\",\n stroke: \"#37001f\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1.594,\n cy: 1.594,\n r: 1.594,\n transform: \"translate(-7197.868 13887.5)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M798.688,332.208h-.071v12.649a1.015,1.015,0,0,1-1,.753,1.2,1.2,0,0,1-1.12-.753v-7.5h0v7.5a.939.939,0,0,1-1.02.753.836.836,0,0,1-.944-.753V332.208h0v4.672a1.284,1.284,0,0,1-1.067.54.975.975,0,0,1-.922-.54v-6.125a1.333,1.333,0,0,1,.37-.852,1.715,1.715,0,0,1,.977-.344s1.213-.125,2.6-.125,2.82.125,2.82.125a1.635,1.635,0,0,1,.887.344,1.278,1.278,0,0,1,.388.852v6.125a1.065,1.065,0,0,1-.88.54,1.34,1.34,0,0,1-1.027-.54Z\",\n transform: \"translate(-7993 13562.39)\",\n fill: \"#fff\",\n stroke: \"#37001f\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n transform: \"translate(-7207 13914)\",\n fill: \"none\"\n}));\n\nvar SvgPassengers = function SvgPassengers(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPassengers, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/passengers.bdf78f57.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useRef, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport { Button, CircularProgress, Typography } from '@material-ui/core';\nimport fileDownload from 'js-file-download';\nimport classNames from 'classnames';\nimport {\n Map, Marker, Polyline, Popup, ScaleControl, TileLayer,\n} from 'react-leaflet';\nimport leaflet from 'leaflet';\nimport * as R from 'ramda';\nimport { axios } from '../../utils';\nimport stopMarker from '../../assets/stop-marker.svg';\nimport { ReactComponent as Entering } from '../../assets/entering.svg';\nimport { ReactComponent as Leaving } from '../../assets/leaving.svg';\nimport { ReactComponent as Clock } from '../../assets/clock.svg';\nimport { ReactComponent as Passengers } from '../../assets/passengers.svg';\nimport { IProps } from './Trips';\n\ninterface IStop {\n id: string;\n name: string;\n lat: number;\n lon: number;\n entering?: {\n mean: number;\n median: number;\n };\n leaving?: {\n mean: number;\n median: number;\n };\n waitTime?: {\n mean: number;\n min: number;\n max: number;\n median: number;\n };\n passengers?: {\n mean: number;\n min: number;\n max: number;\n median: number;\n };\n}\n\ninterface IRouteStats {\n route: string;\n passengers: {\n max: number;\n mean: number;\n median: number;\n };\n graph: {\n first: string;\n second: string;\n }[];\n stops: IStop[];\n}\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n },\n table: {\n borderCollapse: 'collapse',\n border: '1px solid #707070',\n backgroundColor: '#F5F5F5',\n width: 750,\n marginBottom: 32,\n },\n cell: {\n fontSize: 16,\n fontWeight: 300,\n color: '#37001F',\n padding: '4px 16px',\n textAlign: 'center',\n border: '1px solid #707070',\n borderWidth: '0 1px',\n },\n headerCell: {\n fontWeight: 400,\n borderWidth: '1px',\n },\n tableRow: {\n '&:nth-child(even)': {\n backgroundColor: 'white',\n },\n },\n selectedRow: {\n border: '4px solid #A1145C',\n },\n map: {\n height: 650,\n marginBottom: 32,\n },\n popup: {\n backgroundColor: 'white',\n borderRadius: 4,\n '& > :first-child': {\n boxShadow: 'none',\n padding: 0,\n '& > div': {\n margin: 0,\n '& p': {\n margin: 0,\n },\n },\n },\n '& > :last-child': {\n display: 'none',\n },\n },\n popupHeader: {\n margin: '12px 16px 8px 0 !important',\n padding: '4px 24px',\n borderRadius: '0 15px 15px 0',\n backgroundColor: '#37001F',\n fontSize: 24,\n fontWeight: 400,\n color: 'white',\n },\n popupRow: {\n display: 'flex',\n marginRight: 16,\n marginBottom: 8,\n },\n popupSubheader: {\n fontSize: 14,\n fontWeight: 700,\n color: '#37001F',\n marginLeft: '4px !important',\n },\n shortText: {\n width: 120,\n display: 'inline-block',\n },\n popupText: {\n fontSize: 14,\n fontWeight: 400,\n color: '#37001F',\n },\n waitTime: {\n margin: '0 16px 16px 28px',\n },\n clock: {\n marginTop: -2,\n },\n grayHeader: {\n backgroundColor: '#E4E4E4',\n color: '#37001F',\n fontWeight: 700,\n fontSize: 16,\n },\n loader: {\n position: 'absolute',\n left: 'calc(50% - 10px)',\n top: 'calc(50% - 10px)',\n },\n});\n\nexport default function VehicleOccupancy({ provider, params }: IProps) {\n const classes = useStyles();\n const { t } = useTranslation();\n const [routeStats, setRouteStats] = useState(null);\n const mapRef = useRef(null);\n const [mapReady, setMapReady] = useState(false);\n const [, setZoom] = useState(0);\n const [selectedRoute, setSelectedRoute] = useState(null);\n const [exportLoading, setExportLoading] = useState(false);\n useEffect(() => {\n (async () => {\n const { data } = await axios.get(`/${provider}/vehicle-occupancy`, { params });\n setRouteStats(data);\n if (data.length > 0) {\n setSelectedRoute(data[0].route);\n }\n })();\n }, [provider, params]);\n const selectedStats = routeStats?.find(R.propEq('route', selectedRoute)) as IRouteStats;\n useEffect(() => {\n if (mapRef.current && selectedStats) {\n mapRef.current.leafletElement.fitBounds(new leaflet.LatLngBounds(\n selectedStats.stops.map((stop) => [stop.lat, stop.lon]),\n ));\n }\n }, [selectedStats]);\n if (!routeStats) return null;\n const routeMin = selectedStats\n ? selectedStats.stops.map((x) => x.passengers?.mean || Infinity).reduce(R.min)\n : 0;\n const routeMax = selectedStats\n ? selectedStats.stops.map((x) => x.passengers?.mean || 0).reduce(R.max)\n : 0;\n const renderTime = (seconds: number) => {\n const min = seconds >= 60 ? `${Math.floor(seconds / 60)} min.` : '';\n const sec = seconds % 60 > 0 ? `${seconds % 60} ${t('trips.sec')}.` : '';\n return [min, sec].filter((x) => x).join(', ');\n };\n return (\n
\n \n \n \n \n \n \n \n \n \n \n {routeStats.map((stats) => (\n setSelectedRoute(stats.route)}\n >\n \n \n \n \n \n ))}\n \n
\n {t('common.route')}\n \n {t('trips.maxPassengers')}\n \n {t('trips.meanPassengers')}\n \n {t('trips.medianPassengers')}\n
\n {stats.route}\n \n {stats.passengers.max}\n \n {stats.passengers.mean}\n \n {stats.passengers.median}\n
\n {selectedStats && (\n setMapReady(true)}\n onViewportChange={(viewport) => setZoom(viewport.zoom || 0)}\n >\n \n \n {selectedStats.stops.map((stop) => (\n \n \n \n {stop.name}\n \n
\n \n \n {t('trips.entering')}\n \n {stop.entering ? (\n
\n \n {`${t('trips.mean')} ${stop.entering.mean}`}\n \n \n {`${t('trips.median')} ${stop.entering.median}`}\n \n
\n ) : (\n -\n )}\n
\n
\n \n \n {t('trips.leaving')}\n \n {stop.leaving ? (\n
\n \n {`${t('trips.mean')} ${stop.leaving.mean}`}\n \n \n {`${t('trips.median')} ${stop.leaving.median}`}\n \n
\n ) : (\n -\n )}\n
\n
\n \n \n {t('trips.waitTime')}\n \n
\n
\n {stop.waitTime ? (\n <>\n \n \n {t('trips.timeMean')}\n \n {renderTime(stop.waitTime.mean)}\n \n \n \n {t('trips.timeMin')}\n \n {renderTime(stop.waitTime.min)}\n \n \n \n {t('trips.timeMax')}\n \n {renderTime(stop.waitTime.max)}\n \n \n \n {t('trips.timeMedian')}\n \n {renderTime(stop.waitTime.median)}\n \n \n ) : (\n -\n )}\n
\n \n \n ))}\n {mapReady && selectedStats && selectedStats.graph.map(({ first, second }) => {\n const stop = selectedStats.stops.find(R.propEq('id', first)) as IStop;\n const nextStop = selectedStats.stops.find(R.propEq('id', second)) as IStop;\n const weight = 4 + (routeMax === 0 ? 1\n : ((stop.passengers!.mean - routeMin) / (routeMax - routeMin))) * 8;\n const positions = [\n { lat: stop.lat, lng: stop.lon },\n { lat: nextStop.lat, lng: nextStop.lon },\n ];\n const polyline = new leaflet.Polyline(positions).addTo(mapRef.current!.leafletElement);\n const element = polyline.getElement();\n // @ts-ignore\n const polylineLength = element.getTotalLength ? element.getTotalLength() : 0;\n polyline.remove();\n return (\n \n \n \n {`${stop.name} - ${nextStop.name}`}\n \n
\n \n \n {t('trips.passengerCount')}\n \n
\n
\n \n \n {t('trips.mean')}\n \n {stop.passengers!.mean}\n \n \n \n {t('trips.min')}\n \n {stop.passengers!.min}\n \n \n \n {t('trips.max')}\n \n {stop.passengers!.max}\n \n \n \n {t('trips.median')}\n \n {stop.passengers!.median}\n \n
\n \n \n );\n })}\n \n )}\n {\n setExportLoading(true);\n try {\n const { data } = await axios.get('/stats/raw');\n fileDownload(data, 'trips-data.csv');\n } finally {\n setExportLoading(false);\n }\n }}\n disabled={exportLoading}\n >\n {t('trips.export')}\n {exportLoading && (\n \n )}\n \n
\n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport { MenuItem, TextField } from '@material-ui/core';\nimport classNames from 'classnames';\nimport moment, { Moment } from 'moment';\nimport { ReactComponent as Chevron } from '../assets/chevron.svg';\nimport CustomDatePicker from './CustomDatePicker';\n\ntype IPeriod = 'today' | 'yesterday' | 'last7Days' | 'last30Days' | 'last90Days' | 'custom';\nexport type IDateRange = { from: Moment | null; to: Moment | null; } | null;\n\ninterface Props {\n value: IDateRange;\n onChange: (value: IDateRange) => void;\n inline?: boolean;\n}\n\nconst useStyles = makeStyles({\n period: {\n width: 300,\n },\n selectIcon: {\n display: 'flex',\n alignItems: 'center',\n padding: '8px 4px',\n },\n dates: {\n display: 'flex',\n marginTop: 16,\n },\n datePicker: {\n marginRight: 16,\n width: 160,\n },\n inline: {\n display: 'flex',\n '& $dates': {\n marginTop: 0,\n marginLeft: 16,\n },\n },\n});\n\nexport const getPeriod = (range: IDateRange) => {\n if (!range) return '';\n const { from, to } = range;\n if (!from || !to) return 'custom';\n if (from.isSame(to, 'day')) {\n if (from.isSame(moment(), 'day')) return 'today';\n if (from.isSame(moment().subtract(1, 'days'), 'day')) return 'yesterday';\n }\n if (to.isSame(moment(), 'day')) {\n if (from.isSame(moment().subtract(7, 'days'), 'day')) return 'last7Days';\n if (from.isSame(moment().subtract(30, 'days'), 'day')) return 'last30Days';\n if (from.isSame(moment().subtract(90, 'days'), 'day')) return 'last90Days';\n }\n return 'custom';\n};\n\nexport default function PeriodSelect({ value, onChange, inline }: Props) {\n const classes = useStyles();\n const { t } = useTranslation();\n const period = getPeriod(value);\n return (\n
\n {\n switch (target.value as IPeriod) {\n case 'today':\n onChange({ from: moment(), to: moment() });\n break;\n case 'yesterday': {\n const yesterday = moment().subtract(1, 'days');\n onChange({ from: yesterday, to: yesterday });\n break;\n }\n case 'last7Days':\n onChange({ from: moment().subtract(7, 'days'), to: moment() });\n break;\n case 'last30Days':\n onChange({ from: moment().subtract(30, 'days'), to: moment() });\n break;\n case 'last90Days':\n onChange({ from: moment().subtract(90, 'days'), to: moment() });\n break;\n case 'custom':\n default:\n onChange({ from: null, to: null });\n }\n }}\n variant=\"outlined\"\n size=\"small\"\n className={classes.period}\n SelectProps={{\n // eslint-disable-next-line react/prop-types\n IconComponent: ({ className, ...rest }) => (\n
\n \n
\n ),\n }}\n id=\"period-select\"\n >\n \n {t('card.today')}\n \n \n {t('card.yesterday')}\n \n \n {t('card.lastDays', { days: 7 })}\n \n \n {t('card.lastDays', { days: 30 })}\n \n \n {t('card.lastDays', { days: 90 })}\n \n \n {t('card.custom')}\n \n \n {period === 'custom' && value && (\n
\n onChange({ from: newFrom, to: value.to })}\n maxDate={value.to || undefined}\n />\n onChange({ from: value.from, to: newTo })}\n minDate={value.from || undefined}\n />\n
\n )}\n
\n );\n}\n","import React, {\n Fragment, useEffect, useRef, useState,\n} from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames';\nimport * as R from 'ramda';\nimport {\n Map, Marker, Polyline, Popup, ScaleControl, TileLayer, Tooltip,\n} from 'react-leaflet';\nimport leaflet from 'leaflet';\nimport { Typography } from '@material-ui/core';\nimport 'leaflet-polylineoffset';\nimport stopMarker from '../../assets/stop-marker.svg';\nimport { ReactComponent as Clock } from '../../assets/clock.svg';\nimport { IProps } from './Trips';\nimport { axios } from '../../utils';\n\ninterface IHub {\n name: string;\n lat: number;\n lon: number;\n passengers: number;\n transferTime?: {\n avg: number;\n min: number;\n max: number;\n med: number;\n };\n}\n\ninterface IStop {\n id: string;\n name: string;\n lat: number;\n lon: number;\n}\n\ninterface IStream {\n passengers: number;\n graph: {\n first: string;\n last: string;\n route: string;\n }[];\n stops: IStop[];\n}\n\nconst useStyles = makeStyles({\n tables: {\n display: 'flex',\n marginBottom: 32,\n },\n table: {\n borderCollapse: 'collapse',\n border: '1px solid #707070',\n backgroundColor: '#F5F5F5',\n marginRight: 24,\n },\n cell: {\n fontSize: 16,\n fontWeight: 300,\n color: '#37001F',\n padding: '4px 16px',\n textAlign: 'center',\n border: '1px solid #707070',\n borderWidth: '0 1px',\n '&:first-child': {\n textAlign: 'left',\n },\n },\n headerCell: {\n fontWeight: 400,\n borderWidth: '1px',\n '&:first-child': {\n fontWeight: 700,\n },\n },\n tableRow: {\n '&:nth-child(odd)': {\n backgroundColor: 'white',\n },\n },\n selectedRow: {\n border: '4px solid #A1145C',\n },\n route: {\n padding: '2px 6px',\n borderRadius: 7,\n color: 'white',\n fontSize: 14,\n fontWeight: 400,\n },\n map: {\n height: 650,\n marginBottom: 32,\n },\n popup: {\n backgroundColor: 'white',\n borderRadius: 4,\n '& > :first-child': {\n boxShadow: 'none',\n padding: 0,\n '& > div': {\n margin: 0,\n '& p': {\n margin: 0,\n },\n },\n },\n '& > :last-child': {\n display: 'none',\n },\n },\n popupHeader: {\n margin: '12px 16px 8px 0 !important',\n padding: '4px 24px',\n borderRadius: '0 15px 15px 0',\n backgroundColor: '#37001F',\n fontSize: 24,\n fontWeight: 400,\n color: 'white',\n },\n popupRow: {\n display: 'flex',\n marginRight: 16,\n marginBottom: 4,\n },\n popupSubheader: {\n fontSize: 14,\n fontWeight: 700,\n color: '#37001F',\n marginLeft: '4px !important',\n },\n shortText: {\n width: 120,\n display: 'inline-block',\n },\n popupText: {\n fontSize: 14,\n fontWeight: 400,\n color: '#37001F',\n },\n waitTime: {\n margin: '0 16px 16px 28px',\n },\n clock: {\n marginTop: -2,\n },\n tooltip: {\n boxShadow: 'none',\n },\n tooltipText: {\n fontSize: 24,\n padding: '0 4px',\n },\n});\n\nexport default function PassengerStreams({ provider, params }: IProps) {\n const classes = useStyles();\n const { t } = useTranslation();\n const [hubs, setHubs] = useState(null);\n const [streams, setStreams] = useState(null);\n useEffect(() => {\n (async () => {\n const [\n { data },\n { data: streamsData },\n ] = await Promise.all([\n axios.get(`/${provider}/nodes`, { params }),\n axios.get(`/${provider}/streams`, { params }),\n ]);\n setHubs(data);\n setStreams(streamsData);\n })();\n }, [provider, params]);\n const [selectedStream, setSelectedStream] = useState(null);\n const [selectedHub, setSelectedHub] = useState(null);\n const mapRef = useRef(null);\n const [mapReady, setMapReady] = useState(false);\n const [, setZoom] = useState(0);\n useEffect(() => {\n if (mapRef.current && streams) {\n mapRef.current.leafletElement.fitBounds(new leaflet.LatLngBounds(\n R.uniqBy(R.prop('name'), streams.flatMap((stream) => stream.stops))\n .map((stop) => [stop.lat, stop.lon]),\n ));\n }\n }, [streams]);\n const markerRefs = useRef>({});\n if (!hubs || !streams) return null;\n const colors = ['#9B1A1F', '#339B1A'];\n const selectedColors = ['#c91219', '#35b516'];\n const routes = R.uniq(streams.flatMap((x) => x.graph.map(R.prop('route'))));\n const getRouteColor = (route: string, selected?: boolean) => (\n (selected ? selectedColors : colors)[routes.indexOf(route) % colors.length]\n );\n const getHub = (name: string) => hubs.find(R.propEq('name', name));\n const getHubIndex = (name: string) => hubs.findIndex(R.propEq('name', name));\n const renderTime = (seconds: number) => {\n const min = seconds >= 60 ? `${Math.floor(seconds / 60)} min.` : '';\n const sec = seconds % 60 > 0 ? `${seconds % 60} ${t('trips.sec')}.` : '';\n return [min, sec].filter((x) => x).join(', ');\n };\n const passengersMin = streams.map((x) => x.passengers || Infinity).reduce(R.min);\n const passengersMax = streams.map((x) => x.passengers || 0).reduce(R.max);\n const groupedSegments = Object.values(R.groupBy(\n (x) => `${x.from.name}-${x.to.name}`,\n streams.flatMap((stream, index) => {\n const weight = 6 + (passengersMax === passengersMin ? 1 : ((stream.passengers - passengersMin)\n / (passengersMax - passengersMin))) * 8;\n return stream.graph.map(({ first, last, route }) => {\n const from = stream.stops.find(R.propEq('id', first)) as IStop;\n const to = stream.stops.find(R.propEq('id', last)) as IStop;\n return ({\n streamIndex: index,\n weight,\n from,\n to,\n route,\n });\n });\n }),\n ));\n return (\n
\n
\n \n \n \n \n \n \n \n \n {streams.map((stream, i) => (\n setSelectedStream(selectedStream === i ? null : i)}\n >\n \n \n \n ))}\n \n
\n {t('trips.stream')}\n \n {t('trips.passengerCountTable')}\n
\n {stream.stops.find(R.propEq('id', stream.graph[0].first))!.name}\n {' › '}\n \n {stream.graph[0].route}\n \n {' › '}\n {stream.graph.map((x, j) => {\n if (j === 0 || j === stream.graph.length - 1\n || x.route === stream.graph[j - 1].route\n ) return null;\n return (\n \n {stream.stops.find(R.propEq('id', x.last))!.name}\n {' › '}\n \n {x.route}\n \n {' › '}\n \n );\n })}\n {stream.stops[stream.stops.length - 1].name}\n \n {stream.passengers}\n
\n \n \n \n \n \n \n \n \n {hubs.map((hub, i) => (\n {\n if (selectedHub === i) {\n setSelectedHub(null);\n markerRefs.current[hub.name].leafletElement.closePopup();\n } else {\n setSelectedHub(i);\n markerRefs.current[hub.name].leafletElement.openPopup();\n }\n }}\n >\n \n \n \n ))}\n \n
\n {t('trips.hub')}\n \n {t('trips.passengerCountTable')}\n
\n {hub.name}\n \n {hub.passengers}\n
\n
\n setMapReady(true)}\n onViewportChange={(viewport) => setZoom(viewport.zoom || 0)}\n >\n \n \n {R.uniqBy(\n R.prop('name'),\n [\n ...streams.flatMap((stream) => stream.stops),\n ...hubs,\n ],\n ).map((stop) => {\n const hub = getHub(stop.name);\n const hubIndex = getHubIndex(stop.name);\n return (\n {\n if (ref) markerRefs.current[stop.name] = ref;\n }}\n >\n \n \n {stop.name}\n \n \n {hub && (\n \n \n {stop.name}\n \n {hub.transferTime && (\n <>\n
\n \n \n {t('trips.transferTime')}\n \n
\n
\n \n \n {t('trips.timeMean')}\n \n {renderTime(hub.transferTime.avg)}\n \n \n \n {t('trips.timeMin')}\n \n {renderTime(hub.transferTime.min)}\n \n \n \n {t('trips.timeMax')}\n \n {renderTime(hub.transferTime.max)}\n \n \n \n {t('trips.timeMedian')}\n \n {renderTime(hub.transferTime.med)}\n \n
\n \n )}\n \n )}\n \n );\n })}\n {mapReady && groupedSegments.flatMap((segments, i) => {\n const totalWeight = R.sum(segments.map(R.prop('weight'))) + (segments.length - 1) * 2;\n let currentPosition = -totalWeight / 2;\n return (\n segments.map((segment, j) => {\n const positions = [\n { lat: segment.from.lat, lng: segment.from.lon },\n { lat: segment.to.lat, lng: segment.to.lon },\n ];\n const polyline = new leaflet.Polyline(positions)\n .addTo(mapRef.current!.leafletElement);\n const element = polyline.getElement();\n // @ts-ignore\n const polylineLength = element.getTotalLength ? element.getTotalLength() : 0;\n polyline.remove();\n const offset = currentPosition + segment.weight / 2;\n currentPosition += segment.weight + 2;\n return (\n \n );\n })\n );\n })}\n \n
\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from '@material-ui/core';\nimport { IProps } from './Trips';\nimport { axios } from '../../utils';\n\ninterface IStats {\n valid: number;\n invalid: number;\n missing: number;\n}\n\nconst useStyles = makeStyles({\n header: {\n color: '#37001F',\n fontSize: 18,\n fontWeight: 400,\n marginBottom: 16,\n },\n table: {\n borderCollapse: 'collapse',\n },\n headerCell: {\n padding: 16,\n backgroundColor: '#F5F5F5',\n fontSize: 16,\n fontWeight: 400,\n color: '#37001F',\n border: '1px solid #37001F',\n textAlign: 'center',\n },\n cell: {\n padding: 4,\n fontSize: 16,\n fontWeight: 300,\n color: '#37001F',\n border: '1px solid #37001F',\n textAlign: 'center',\n },\n});\n\nexport default function Tickets({ provider, params }: IProps) {\n const classes = useStyles();\n const { t } = useTranslation();\n const [stats, setStats] = useState(null);\n useEffect(() => {\n (async () => {\n const { data } = await axios.get(`/${provider}/trip-tickets`, { params });\n setStats({\n valid: data.valid || 0,\n invalid: data.invalid || 0,\n missing: data.missing || 0,\n });\n })();\n }, [provider, params]);\n if (!stats) return null;\n return (\n
\n \n {t('trips.trips')}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {t('trips.withValidTicket')}\n \n {t('trips.withInvalidTicket')}\n \n {t('trips.noTicket')}\n \n {t('trips.total')}\n
\n {stats.valid}\n \n {stats.invalid}\n \n {stats.missing}\n \n {stats.valid + stats.invalid + stats.missing}\n
\n
\n );\n}\n","import React, { useContext, useState } from 'react';\nimport {\n makeStyles, Tab, Tabs, TextField,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { Moment } from 'moment';\nimport * as R from 'ramda';\nimport { TimePicker } from '@material-ui/pickers';\nimport { Redirect, useHistory, useParams } from 'react-router-dom';\nimport VehicleOccupancy from './VehicleOccupancy';\nimport CustomAutocomplete from '../../common/CustomAutocomplete';\nimport { ProviderContext } from '../../context';\nimport { IProvider } from '../../interfaces';\nimport PeriodSelect, { IDateRange } from '../../common/PeriodSelect';\nimport PassengerStreams from './PassengerStreams';\nimport { useGetLink } from '../../utils';\nimport Tickets from './Tickets';\n\nexport interface IProps {\n provider: string;\n params: {\n dateStart: string;\n dateEnd: string;\n timeStart: string;\n timeEnd: string;\n };\n}\n\nconst useStyles = makeStyles({\n root: {\n width: '100%',\n },\n tabs: {\n margin: '0 -32px',\n backgroundColor: '#F5F5F5',\n paddingTop: 16,\n },\n tab: {\n textTransform: 'none',\n fontSize: 16,\n fontWeight: 300,\n width: 250,\n },\n row: {\n display: 'flex',\n alignItems: 'flex-start',\n margin: '32px 0',\n },\n dataSource: {\n width: 300,\n marginRight: 16,\n },\n timePicker: {\n width: 120,\n marginLeft: 16,\n },\n});\n\nexport default function Trips() {\n const classes = useStyles();\n const { t } = useTranslation();\n const history = useHistory();\n const getLink = useGetLink();\n const { tab } = useParams<{ tab: string; }>();\n const { providers } = useContext(ProviderContext);\n const [provider, setProvider] = useState(null);\n const [dateRange, setDateRange] = useState(null);\n const [hourFrom, setHourFrom] = useState(null);\n const [hourTo, setHourTo] = useState(null);\n if (!tab) {\n return (\n \n );\n }\n return (\n
\n history.push(getLink(`/provider/trips/${value}`))}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n centered\n className={classes.tabs}\n >\n \n \n \n \n
\n setProvider(value)}\n options={providers.filter(R.propEq('id', 'gryf'))}\n getOptionLabel={R.prop('name')}\n label={t('common.dataSource')}\n className={classes.dataSource}\n />\n \n (\n \n )}\n cancelLabel={t('common.cancel')}\n ampm={false}\n value={hourFrom}\n onChange={setHourFrom}\n label={t('trips.fromHour')}\n />\n (\n \n )}\n cancelLabel={t('common.cancel')}\n ampm={false}\n value={hourTo}\n onChange={setHourTo}\n label={t('trips.toHour')}\n />\n
\n {(() => {\n if (!provider || !dateRange || !dateRange.from || !dateRange.to || !hourFrom || !hourTo) {\n return null;\n }\n const params = {\n dateStart: dateRange.from.format('YYYY-MM-DD'),\n dateEnd: dateRange.to.format('YYYY-MM-DD'),\n timeStart: hourFrom.format('HH:mm'),\n timeEnd: hourTo.format('HH:mm'),\n };\n switch (tab) {\n case 'occupancy':\n return ;\n case 'streams':\n return ;\n case 'tickets':\n return ;\n default:\n return null;\n }\n })()}\n
\n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { Link as MuiLink, makeStyles, Typography } from '@material-ui/core';\nimport {\n NavLink, Redirect, Route, Switch, RouteProps,\n} from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport i18next from 'i18next';\nimport classNames from 'classnames';\nimport * as R from 'ramda';\nimport logo from '../assets/interconnect-logo.svg';\nimport { axios, useGetLink } from '../utils';\nimport Home from './home/Home';\nimport AppContext, { ProviderContext } from '../context';\nimport Statistics from './Statistics';\nimport ImpactArea from './impact-area/ImpactArea';\nimport Export from './Export';\nimport Analysis from './analysis/Analysis';\nimport Import from './Import';\nimport { IDataVersion, IProvider } from '../interfaces';\nimport Roles from './Roles';\nimport Data from './data/Data';\nimport UserMenu from '../common/UserMenu';\nimport DataSource from './DataSource';\nimport Organizations from './Organizations';\nimport Support from './Support';\nimport Trips from './trips/Trips';\n\nconst useStyles = makeStyles({\n root: {\n minHeight: '100vh',\n backgroundColor: 'white',\n padding: '0 32px',\n display: 'flex',\n flexDirection: 'column',\n '@media (max-width: 1000px)': {\n padding: '0 16px',\n },\n '@media (max-width: 1000px), (max-height: 800px)': {\n height: 'auto',\n minHeight: '100vh',\n },\n },\n nav: {\n height: 43,\n flexShrink: 0,\n padding: '0 32px',\n margin: '0 -32px',\n display: 'flex',\n alignItems: 'center',\n backgroundColor: 'rgba(232, 232, 232, 0.5)',\n },\n logoLink: {\n height: 41,\n marginRight: 'auto',\n },\n logo: {\n height: '100%',\n },\n navIconLink: {\n display: 'flex',\n justifyContent: 'center',\n width: 100,\n padding: '8px 0',\n },\n navLink: {\n color: '#a1145c',\n fontSize: 20,\n textDecoration: 'none',\n textAlign: 'center',\n width: 200,\n whiteSpace: 'nowrap',\n margin: '0 16px',\n },\n impactLink: {\n width: 250,\n },\n active: {\n fontWeight: 700,\n },\n main: {\n flexGrow: 1,\n minHeight: 400,\n display: 'flex',\n },\n footer: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: '24px 0',\n '@media (max-width: 1000px)': {\n flexDirection: 'column',\n alignItems: 'center',\n },\n },\n switch: {\n '@media (max-width: 1000px)': {\n marginBottom: 16,\n },\n },\n switchText: {\n fontSize: 12,\n },\n copyright: {\n whiteSpace: 'nowrap',\n fontSize: 12,\n color: '#37001F',\n },\n});\n\nexport default function Provider() {\n const classes = useStyles();\n const { t, i18n } = useTranslation();\n const getLink = useGetLink();\n const { name, user, interconnectNumber } = useContext(AppContext);\n const [providers, setProviders] = useState(null);\n const [versions, setVersions] = useState();\n const [versionId, setVersionId] = useState();\n useEffect(() => {\n (async () => {\n const { data } = await axios.get('/providers');\n if (user && user.agency && data.find(R.propEq('id', user.agency))?.dataSource === 'manual') {\n const { data: versionsData } = await axios.get(`/${user.agency}/versions`);\n setVersions(versionsData);\n const versionString = localStorage.getItem('version');\n const newVersion = versionsData.find((x: IDataVersion) => (\n versionString ? (x.id === Number(versionString)) : x.type === 'draft'\n ));\n if (!versionString) {\n localStorage.setItem('version', String(newVersion.id));\n }\n setVersionId(newVersion.id);\n }\n setProviders(R.sort((a, b) => a.name.localeCompare(b.name, 'pl'), data));\n })();\n }, [user]);\n if (!name || !user) return null;\n const isAdmin = user.role === 'ADMIN';\n const isAgencyAdmin = ['ADMIN', 'AGENCY_ADMIN'].includes(user.role || '');\n if (!providers) return null;\n const isManual = providers.find(R.propEq('id', user.agency))?.dataSource === 'manual';\n const dataRoutes = [\n '/:language/provider/data/routes',\n '/:language/provider/data/patterns',\n '/:language/provider/data/stops',\n '/:language/provider/data/trips',\n '/:language/provider/data/calendars',\n '/:language/provider/data/timetables',\n '/:language/provider/data/crew/:tab?',\n '/:language/provider/data/reports',\n '/:language/provider/data/tickets',\n '/:language/provider/data/manage',\n ];\n const version = versions ? versions.find(R.propEq('id', versionId)) : undefined;\n const AdminRoute = (props: RouteProps) => (isAdmin ? : null);\n const AgencyAdminRoute = (props: RouteProps) => (isAgencyAdmin ? : null);\n return (\n \n
\n
\n \n \n \n \n {t('nav.analysis')}\n \n \n {t('nav.statistics')}\n \n {isAdmin && (\n \n {t('trips.trips')}\n \n )}\n {isAgencyAdmin && (\n \n {t('nav.export')}\n \n )}\n \n {t('nav.impactArea')}\n \n {isManual ? (\n \n {t('nav.data')}\n \n ) : (\n \n {t('nav.import')}\n \n )}\n {isAdmin && (\n \n {t('nav.cardPortal')}\n \n )}\n {isAdmin && (\n \n {t('nav.beacons')}\n \n )}\n \n {t('nav.pp')}\n \n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n {isManual ? (\n \n ) : (\n \n )}\n \n \n \n
\n
\n {\n i18next.changeLanguage(i18n.language === 'pl' ? 'en' : 'pl');\n }}\n >\n \n {t('footer.switchLanguage')}\n \n \n \n Copyright © 2020 Innobaltica Sp. z o.o.\n \n
\n
\n \n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"image\", {\n id: \"interconnect_logo\",\n width: 194,\n height: 61,\n xlinkHref: \"data:image/png;base64,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\"\n});\n\nvar SvgInterconnectLogo = function SvgInterconnectLogo(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 194,\n height: 61,\n viewBox: \"0 0 194 61\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgInterconnectLogo, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/interconnect-logo.5cc4585d.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"a\",\n preserveAspectRatio: \"none\",\n width: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 32 33\"\n}, /*#__PURE__*/React.createElement(\"image\", {\n width: 32,\n height: 33,\n xlinkHref: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAhCAMAAACP+FljAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAACLlBMVEUAAAD/AADrRTXpQzXqQzXqQzXqQzXqQzXqQzXqQzTqQjXpQjbmQjHmTTPqRDXrQzbqQzXrQzfrRDbpQzXoRjboRi7rRDbpQzXqQzXtSTfqQzbqQCvbSSTqQzXqQzXqQDLqQzXqQzXrQjXpQzbpQzXqQzXqRDXqQzXqQzXrQzbpQzbqQzXqRDTfQEDrRTHqRDXqQzXqQzXrQTTqQzXqRTXqQzXsRDj4sAnvZybpRDb//wD7vQTqQzX6uwXqRDTmQDP7vATsVC77vAT5jhdChPZChfRChPP7vAT6vAVChfVChfP7vAT7vARChfX7vAT7vARChfT7vARChfT5vQWRszBChfVChfNChfRChfQ0qVI8h/BDhfT6ugU1qFMuolFDhvVDhvXzvAc0qVQA/wBAgP9ChfRGg/fBtxpBhPRAn2A0qFM0qFMuol1NmbNChPRBhfQzqVMzqFM1qVM5qlU1p1I0p1ZChfRAgP81qFI0qFM1qVQzp1MzqVM0p1I0qFNChfRDhvIktkk0qFNBhfVBhPIA//8zs001p1M0qFMzp1QAgIA0qVM0qFQ0qFM1p1Q0qVI0qFM0p1IzmWYyp1Q0p1Q0qVQ0qFM0qFM0qFM0qFM0qFM1p1Q2qFHqQzX7uwTzhBvqRDT7vAT2nRHsTDH5rgruXSr6uQVChfTkug1erELLtxdGqkw0qFP6vASgsyg2qFJ1rjk6m5JChu82oXRAieA1pV8+jsg0qFQ7mJ7///+I1jR8AAAAnXRSTlMAAT+CuN/x+ubRrWgfCnjgwkFavSELou1IDsMMB8bkJJv1vJiMoMz+5SZQ3GIIGo/35yfdMMcpbvqAAdenMfAUepeuLVF3Vdjhrcbsutz2rPG75follt37yIURoTDuFmNn4asBCP4hh6AI3pwLCqJaUN9lCWDi0wSb9r2ai8P1/T0HxX2gAQqg/H0CWeXgQ3bcYwU9gLfd8PrRsnQvh2LOwAAAAAFiS0dEuTq4FmAAAAAHdElNRQfjCRkUEBw56fxaAAABlklEQVQ4y2NggANGJmYWVjZ2Dk4ubh4GTMDLxz8XAQQE0eWFOOaiAmERZGlRsbkYQFwCIS8pNRcL4JeGycvIYpOXk4cboAAXVFRSVlFVUwcxNTTh8lowaW0dXbCAnr7BXEMjuLyuMVRemRcuZmJqhnChuQVE3pIBO7Cynjd/AVDeBoc8g+3ChQsXLZ5rZ49LgQNQwcIlSx1xyTM4gRQsXOYM47u4ogA3BnewAg+4Bs/lKMCLwRuswAeXAl8GP7ACf1wKAqAmBOJWQMANQVBfBIfAFISGQUE4WEEEJBxWrIxE934UREE0QwxQftXqNbFxaAriIVYkMFglrl23fs2aNUnJKPIpYWD51DQGhvQNa8AA1ZKM5VAnMDBkZkEUrMnOgUvn5kE9kQ/iFUAVrCksKgZL55SUbtwEli8rBwtUwFSsqayqrsmurQOyNm8Bytc3QAxsbFqDCbZuW768GWZlThUWFdt3tLTCHdXWjqmgo7ML2VvdPWjyvX1oIdfWn4UkPWHiJMzElzx5ytRp02f0zJw1ew4iWAG1RVNDnSi81QAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOS0wOS0yNVQyMDoxNjoyOCswMDowMPgA7zMAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTktMDktMjVUMjA6MTY6MjgrMDA6MDCJXVePAAAAAElFTkSuQmCC\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 17,\n height: 17.625,\n fill: \"url(#a)\"\n});\n\nvar SvgGoogle = function SvgGoogle(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17.625,\n viewBox: \"0 0 17 17.625\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgGoogle, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/google.70f7882b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"image\", {\n width: 19.733,\n height: 19.733,\n xlinkHref: \"data:image/png;base64,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\"\n});\n\nvar SvgFacebook = function SvgFacebook(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 19.733,\n height: 19.733,\n viewBox: \"0 0 19.733 19.733\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFacebook, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/facebook.bb8cf4f1.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10,13.637a10.665,10.665,0,0,1-6.115-1.913A10.761,10.761,0,0,1,0,6.818a10.744,10.744,0,0,1,20,0,10.76,10.76,0,0,1-3.885,4.906A10.665,10.665,0,0,1,10,13.637ZM10,2.273a4.545,4.545,0,1,0,4.546,4.545A4.55,4.55,0,0,0,10,2.273Zm0,7.273a2.727,2.727,0,1,1,2.728-2.728A2.731,2.731,0,0,1,10,9.546Z\",\n transform: \"translate(0 0)\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-1 -2)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1 5)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10,13.637a10.665,10.665,0,0,1-6.115-1.913A10.761,10.761,0,0,1,0,6.818a10.744,10.744,0,0,1,20,0,10.76,10.76,0,0,1-3.885,4.906A10.665,10.665,0,0,1,10,13.637ZM10,2.273a4.545,4.545,0,1,0,4.546,4.545A4.55,4.55,0,0,0,10,2.273Zm0,7.273a2.727,2.727,0,1,1,2.728-2.728A2.731,2.731,0,0,1,10,9.546Z\",\n transform: \"translate(0 0)\",\n fill: \"rgba(0,0,0,0.38)\"\n})));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 20,\n height: 20,\n fill: \"none\"\n});\n\nvar SvgEye = function SvgEye(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgEye, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/eye.1af88a0b.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10,13.637a10.665,10.665,0,0,1-6.115-1.913A10.761,10.761,0,0,1,0,6.818a10.744,10.744,0,0,1,20,0,10.76,10.76,0,0,1-3.885,4.906A10.665,10.665,0,0,1,10,13.637ZM10,2.273a4.545,4.545,0,1,0,4.546,4.545A4.55,4.55,0,0,0,10,2.273Zm0,7.273a2.727,2.727,0,1,1,2.728-2.728A2.731,2.731,0,0,1,10,9.546Z\",\n transform: \"translate(0 0)\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-1 -2)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1 5)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10,13.637a10.665,10.665,0,0,1-6.115-1.913A10.761,10.761,0,0,1,0,6.818a10.744,10.744,0,0,1,20,0,10.76,10.76,0,0,1-3.885,4.906A10.665,10.665,0,0,1,10,13.637ZM10,2.273a4.545,4.545,0,1,0,4.546,4.545A4.55,4.55,0,0,0,10,2.273Zm0,7.273a2.727,2.727,0,1,1,2.728-2.728A2.731,2.731,0,0,1,10,9.546Z\",\n transform: \"translate(0 0)\",\n fill: \"#666666\"\n})));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 20,\n height: 20,\n fill: \"none\"\n});\n\nvar SvgEyeActive = function SvgEyeActive(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgEyeActive, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/eye-active.55883519.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState } from 'react';\nimport {\n InputAdornment, makeStyles, TextField, TextFieldProps, IconButton,\n} from '@material-ui/core';\nimport * as R from 'ramda';\nimport { ReactComponent as Eye } from '../assets/eye.svg';\nimport { ReactComponent as EyeActive } from '../assets/eye-active.svg';\n\nconst useStyles = makeStyles({\n button: {\n margin: '0 -12px',\n },\n});\n\nexport default function PasswordField({ InputProps, ...props }: TextFieldProps) {\n const [visible, setVisible] = useState(false);\n const classes = useStyles();\n return (\n \n setVisible(R.not)}\n className={classes.button}\n >\n {visible ? : }\n \n \n ),\n }}\n />\n );\n}\n","import React, { useState, FormEvent } from 'react';\nimport {\n Button, makeStyles, TextField, Typography, Link as MuiLink,\n} from '@material-ui/core';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { validate as isValidEmail } from 'email-validator';\nimport { Auth0Error } from 'auth0-js';\nimport { ReactComponent as GoogleIcon } from '../assets/google.svg';\nimport { ReactComponent as FacebookIcon } from '../assets/facebook.svg';\nimport PasswordField from '../common/PasswordField';\nimport { useGetLink, auth0 } from '../utils';\n\nconst useStyles = makeStyles({\n header: {\n fontSize: 35,\n fontWeight: 400,\n textAlign: 'center',\n marginBottom: 24,\n },\n googleButton: {\n justifyContent: 'flex-start',\n color: '#37001F',\n borderColor: '#37001F',\n padding: '5px 10px',\n marginBottom: 9,\n },\n googleIcon: {\n margin: '0 12px 0 2px',\n },\n facebookButton: {\n justifyContent: 'flex-start',\n color: '#3571B7',\n borderColor: '#3571B7',\n padding: '5px 10px',\n marginBottom: 13,\n },\n facebookIcon: {\n marginRight: 11,\n },\n or: {\n textAlign: 'center',\n },\n agreement: {\n fontSize: 14,\n margin: '12px 0',\n },\n alreadyRegistered: {\n fontSize: 14,\n marginTop: 8,\n },\n verify: {\n fontSize: 26,\n fontWeight: 400,\n textAlign: 'center',\n marginBottom: 42,\n },\n paragraph: {\n marginBottom: 24,\n },\n goToLogin: {\n fontSize: 16,\n marginTop: 48,\n display: 'block',\n },\n});\n\nexport default function Register() {\n const classes = useStyles();\n const { t, i18n } = useTranslation();\n const getLink = useGetLink();\n const [email, setEmail] = useState('');\n const [emailError, setEmailError] = useState(null);\n const [password, setPassword] = useState('');\n const [passwordError, setPasswordError] = useState(null);\n const [repeatPassword, setRepeatPassword] = useState('');\n const [repeatPasswordError, setRepeatPasswordError] = useState(null);\n const [registered, setRegistered] = useState(false);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const onSubmit = (event: FormEvent) => {\n event.preventDefault();\n const emailValid = isValidEmail(email);\n setEmailError(emailValid ? null : 'auth.invalidEmail');\n const passwordValid = /[a-z]/.test(password) && /[A-Z]/.test(password) && /[0-9]/.test(password);\n setPasswordError(passwordValid ? null : 'auth.invalidPassword');\n const repeatPasswordValid = repeatPassword === password;\n setRepeatPasswordError(repeatPasswordValid ? null : 'auth.passwordsDontMatch');\n if (emailValid && passwordValid && repeatPasswordValid) {\n auth0.signup({\n connection: 'Username-Password-Authentication',\n email,\n password,\n userMetadata: {\n lang: i18n.language,\n },\n }, ((err: null | Auth0Error) => {\n if (err) {\n if (err.code === 'invalid_signup') {\n setEmailError('auth.alreadyExists');\n }\n } else {\n setRegistered(true);\n }\n }));\n }\n };\n if (registered) {\n return (\n <>\n \n {t('auth.verifyEmail')}\n \n \n {t('auth.weHaveSent', { email })}\n \n \n {t('auth.pleaseOpen')}\n \n \n ,\n ]}\n />\n \n \n {t('auth.goToLogin')}\n \n \n );\n }\n return (\n <>\n \n {t('auth.register')}\n \n auth0.authorize({ connection: 'google-oauth2' })}\n disabled\n >\n \n {t('auth.continueWithGoogle')}\n \n auth0.authorize({ connection: 'facebook' })}\n disabled\n >\n \n {t('auth.continueWithFacebook')}\n \n \n {t('auth.or')}\n \n event.preventDefault()}\n >\n {\n setEmail(target.value);\n setEmailError(null);\n }}\n error={emailError !== null}\n helperText={emailError ? t(emailError) : null}\n id=\"email\"\n />\n {\n setPassword(target.value);\n setPasswordError(null);\n }}\n error={passwordError !== null}\n helperText={passwordError ? t(passwordError) : null}\n id=\"password\"\n />\n {\n setRepeatPassword(target.value);\n setRepeatPasswordError(null);\n }}\n error={repeatPasswordError !== null}\n helperText={repeatPasswordError ? t(repeatPasswordError) : null}\n id=\"repeat-password\"\n />\n \n ,\n ,\n ]}\n />\n \n \n {t('auth.registerButton')}\n \n \n \n ,\n ]}\n />\n \n \n );\n}\n","import React from 'react';\nimport { Link as MuiLink, makeStyles, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { Link } from 'react-router-dom';\nimport { useGetLink } from '../utils';\n\nconst useStyles = makeStyles({\n header: {\n fontSize: 35,\n fontWeight: 400,\n textAlign: 'center',\n marginBottom: 39,\n },\n text: {\n fontSize: 20,\n fontWeight: 400,\n textAlign: 'center',\n marginBottom: 138,\n },\n goToLogin: {\n fontSize: 16,\n },\n});\n\nexport default function EmailVerified() {\n const classes = useStyles();\n const { t } = useTranslation();\n const getLink = useGetLink();\n return (\n <>\n \n {t('auth.emailVerified')}\n \n \n {t('auth.verifiedText')}\n \n \n {t('auth.goToLogin')}\n \n \n );\n}\n","import React, {\n FormEvent, useContext, useEffect, useState,\n} from 'react';\nimport {\n Button, Link as MuiLink, makeStyles, TextField, Typography,\n} from '@material-ui/core';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { Link, useLocation } from 'react-router-dom';\nimport { auth0, axios, useGetLink } from '../utils';\nimport { ReactComponent as GoogleIcon } from '../assets/google.svg';\nimport { ReactComponent as FacebookIcon } from '../assets/facebook.svg';\nimport PasswordField from '../common/PasswordField';\nimport AppContext from '../context';\n\nconst useStyles = makeStyles({\n header: {\n fontSize: 35,\n fontWeight: 400,\n textAlign: 'center',\n marginBottom: 24,\n },\n googleButton: {\n justifyContent: 'flex-start',\n color: '#37001F',\n borderColor: '#37001F',\n padding: '5px 10px',\n marginBottom: 9,\n },\n googleIcon: {\n margin: '0 12px 0 2px',\n },\n facebookButton: {\n justifyContent: 'flex-start',\n color: '#3571B7',\n borderColor: '#3571B7',\n padding: '5px 10px',\n marginBottom: 13,\n },\n facebookIcon: {\n marginRight: 11,\n },\n or: {\n textAlign: 'center',\n },\n forgot: {\n display: 'block',\n marginTop: 8,\n },\n agreement: {\n fontSize: 14,\n margin: '12px 0',\n },\n dontHaveAccount: {\n fontSize: 14,\n marginTop: 8,\n },\n notVerified: {\n color: '#FF0000',\n fontSize: 14,\n marginTop: 8,\n },\n resendButton: {\n font: 'inherit',\n },\n});\n\nexport default function Login() {\n const classes = useStyles();\n const { t } = useTranslation();\n const location = useLocation<{\n accessDenied: boolean;\n notVerified: boolean;\n accessToken: string;\n }>();\n const getLink = useGetLink();\n const { showSnackbar } = useContext(AppContext);\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const [error, setError] = useState(null);\n const onSubmit = (event: FormEvent) => {\n event.preventDefault();\n auth0.login({\n realm: 'Username-Password-Authentication',\n email,\n password,\n }, () => {\n setError('auth.wrongEmailOrPassword');\n });\n };\n useEffect(() => {\n if (location.state && location.state.accessDenied) {\n setError('auth.accessDenied');\n }\n }, [location.state]);\n return (\n <>\n \n {t('auth.logIn')}\n \n auth0.authorize({ connection: 'google-oauth2' })}\n disabled\n >\n \n {t('auth.continueWithGoogle')}\n \n auth0.authorize({ connection: 'facebook' })}\n disabled\n >\n \n {t('auth.continueWithFacebook')}\n \n \n {t('auth.or')}\n \n \n {\n setEmail(event.target.value);\n // Don't clear error on autofill\n if (event.nativeEvent instanceof InputEvent) {\n setError(null);\n }\n }}\n error={error !== null}\n id=\"email\"\n />\n {\n setPassword(event.target.value);\n if (event.nativeEvent instanceof InputEvent) {\n setError(null);\n }\n }}\n error={error !== null}\n helperText={error ? t(error) : null}\n id=\"password\"\n />\n {location.state && location.state.notVerified && (\n \n {t('auth.notVerified')}\n {' '}\n {\n await axios.post('/users/verification/resend', {}, {\n headers: {\n Authorization: `Bearer ${location.state.accessToken}`,\n },\n });\n showSnackbar(t('auth.linkResent'));\n }}\n className={classes.resendButton}\n >\n {t('auth.resendLink')}\n \n \n )}\n \n {t('auth.forgotLink')}\n \n \n ,\n ,\n ]}\n />\n \n \n {t('auth.logInButton')}\n \n \n \n ,\n ]}\n />\n \n \n );\n}\n","import React, { FormEvent, useState } from 'react';\nimport {\n Button, makeStyles, TextField, Typography,\n} from '@material-ui/core';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { validate as isValidEmail } from 'email-validator';\nimport { auth0 } from '../utils';\n\nconst useStyles = makeStyles({\n header: {\n fontSize: 35,\n fontWeight: 400,\n textAlign: 'center',\n marginBottom: 37,\n },\n email: {\n fontWeight: 400,\n },\n button: {\n margin: '16px 0',\n },\n});\n\nexport default function RecoverPassword() {\n const classes = useStyles();\n const { t } = useTranslation();\n const [email, setEmail] = useState('');\n const [emailError, setEmailError] = useState(null);\n const [linkSent, setLinkSent] = useState(false);\n const onSubmit = (event: FormEvent) => {\n event.preventDefault();\n const emailValid = isValidEmail(email);\n setEmailError(emailValid ? null : 'auth.invalidEmail');\n if (emailValid) {\n auth0.changePassword({\n connection: 'Username-Password-Authentication',\n email,\n }, () => {\n setLinkSent(true);\n });\n }\n };\n return (\n <>\n \n {t('auth.recoverPassword')}\n \n \n {t('auth.recoverText')}\n \n \n {\n setEmail(target.value);\n setEmailError(null);\n }}\n error={emailError !== null}\n helperText={emailError ? t(emailError) : null}\n />\n \n {t('auth.sendResetLink')}\n \n \n {linkSent && (\n \n ,\n ]}\n values={{ email }}\n />\n \n )}\n \n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"a73\",\n preserveAspectRatio: \"none\",\n width: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 1257 1257\"\n}, /*#__PURE__*/React.createElement(\"image\", {\n width: 1257,\n height: 1257,\n xlinkHref: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABOkAAATpCAYAAACFoUdyAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAABbhBJREFUeNrsnUtSG8v2r3OfOH3YEf8+5RGAR0C5ceI2kUdAMQLkESBGYDECxAgMzX+chsUILEZg0b8RGyZwfWtZq2yBkZTPen5fhIL9UD2UlZW58pfr8dePHz8MAAAAAPjz4T8n+Rv/+aj87G84JLc8tZxjL/LtPpSfJ4vvLfXzFos3zrH8+t+7Jb0BAAAAwI+/EOkAAABg6Hz4z8m6oCZ/j9b+92uxLSs/B7SaFfev/n1d3HvSf//1/77+9+6JJgMAAIChgkgHAAAAvePDf04ysxLThHWRLV/72jEt1VoezW8vvuXaP/8S+b7+925OMwEAAECfQKQDAACAzvDhPyfrXm65/s3Mb0EO4W14rAt6c/271M/T1//eLWgiAAAA6AKIdAAAANAa1sJOq7/Z2ocQUwihCr2d69/KK48wWwAAAGgFiHQAAABQG2uecJl+1kW5PVoIGqQqqFGJd3ODJx4AAADUCCIdAAAARGUtH1wlwOX695DWgY7ybFbi3VI/P4U88uIBAABATBDpAAAAwIsP/znJzW8vuEqQIyccDI0qJ95i/e/X/94taRoAAABwAZEOAAAAtqJiXKaf6p/JD7ebyvvqLX5VKd3B0vwuihCL3PJ761Vx18Er0p77tWc4N4h3AAAAsAVEOgAAAPiJFm3IzEqcyc2wxbgqP5kxv/OUrTN/9e+DF19UzF0nM7+r7grrlXmNGXYewkq8W1QfilcAAAAAIh0AAMDAWCveUH0y0+8w1XWPtqdN/0yBgFb0SWHbP/fZg68Km52b3yGz9EkAAIABgUgHAADQY9aKOOTmtyjXF++4dfGtCh9dmt/hoXgn9bdfr4fi5vq3+m99E/PuzW+PuyXFKgAAAPoLIh0AAEBPUG+k3PwOV+16OOG9/q0EuF9CHHm9wPKdyPUfKwGv+puZbovVD+a3cDfH4w4AAKAfINIBAAB0kLXwwNx010OuyvtWiW9z+Y94CkGN71FmfufOy8xLMa9rAve6x90C4Q4AAKB7INIBAAB0AA3vWxfluhLOJ0Lc0rz0hsMTDrry3sn7tu6BV72HXRDwqnDwuX4I/wYAAGg5iHQAAADtEwbWveTk0/aiDlXC+8X6X4Q46Pl7Ku/munC334F3tQqTnRu87QAAAFoHIh0AAEDzi/3MvMwl11YvufXqk/KXJPYAb7/P1Ttd/XNbxbtn87ua7Jz3GQAAoFkQ6QAAAOpfxK+HrcrftuWSWw+TWxrEOIAY731mXop3bQ1bvzeEyAIAADQCIh0AAED6xfl66Kp82pTPar1K5IJFOUAj40Nm2luVWcaIefVhfAAAAEgHIh0AAECaRXdu2ifKUf0RoBtjSJurNyPaAQAAJAKRDgAAIHxBnZmXolwbFtMIcgD9GmfaKtz9Co8lLB4AACAMRDoAAAC/xXKun1ELFsoIcgDDHYte57hs2nP3zvwW7RiLAAAAHECkAwAAsFsMywJ4pJ8mk71LhdWqqMMCzxUAeDVWZealcNdkZdlH8zs09pbQWAAAgO0g0gEAAGxe6Moid2Sa9U6pvORkkSui3JKnAwCO45mMYevCXVPev1U+u1s2GAAAAP4EkQ4AAODlQrYS5ZrwlnvWBexPUY5FLAAkGusy8zJEtsnx7lbHuyVPBgAAhg4iHQAADHmhKvmcKlFO/tbtLVeFglWiHPmbAKCpsVDGwUq0ayJEVrzsRLC7ZSwEAIChgkgHAABDW4xWi9DC1O89sp6fCc8RAGjzWJmb3wVy6hbtxMvu1vz2siOXHQAADAJEOgAAGMpisyr6UGcuJkQ5AOjTOFp96hbtpGIsYbEAANB7EOkAAKCPi8kqdKsS5uoKY61yLM0N4asA0P8xtvrU6ZUsYbEzswqLXfI0AACgTyDSAQBAnxaNlSh3UuOlpfrq3JBHCQAYf3P91OWxLN7K4mE3Y/wFAIA+gEgHAABdXhhm5rfHXF3CXLUoFE+5W54CAMCbY3Ml2tU9NiPYAQBAZ0GkAwCAri7+ClNPiFUVwko+JAAAv3E7N79Fu7rG7apSLJspAADQGRDpAACgCwu8zNQrzEnOo7ku8OY8AQCAqON5bn6LdqlzhiLYAQBAZ0CkAwCAti7kqhxHY1OPMCfVA+eGZOQAAHWO9ZVYV0f17UqwmxISCwAAbQSRDgAA2rRYq7P4g+Qvmhu8KwAA2jIHZGtzwHENcwA57AAAoFUg0gEAQBsWZoWpR5irwlhZlAEAtHteWN+0yU3asFgR7GY6NyxpfQAAaApEOgAAaGoBNlpbgKVcfD3o4oswVgAA5gzmDAAAaC2IdAAAUOci68isij+kzj0k+eWqROFPtDwAAHMJcwkAALQdRDoAAEi9mMpMPZVZWUwBAAxvjqlDsKsKTsyo+A0AAClBpAMAgFQLp2rRlDLPHMIcAABU804dgl1VcGJKOCwAAMQGkQ4AAGIvkMYmbc4ghDkAALCZjwqTVrCT/HVT5iMAAIgFIh0AAIQuhPZ1ISSfVOGsCHMAAOA7T6UW7AiHBQCAKCDSAQCA76KnqrJ3mugSCHMAABB77kot2Ek4bOVdt6TFAQDABUQ6AABwWdxk5rfXXIrFjYQOzczKGwFhDgAAUs5pufkt2KVI0XCn89ktrQ0AADYg0gEAgM1CpqrOmqIIhHgdzHQhs6S1AQCAeQ4AAIYIIh0AAGxasGQmnddclb9HquMtaG0AAGjJ3Cd5VkWwkyJIKfKs4l0HAAAbQaQDAIDXC5SU3gQsTgAAoCvzYWbSbVbhXQcAAH+ASAcAAOsVWscJFiLkmQMAgK7Pk7lJl7/uxlAZFgAADCIdAMDQFx1S5U6EudgVWiWcdaaLDsJZAQCgL/NmFQ5blJ/jyKcX77qJoao5AMBgQaQDABjmIkMWFyny7RDOCgAAQ5lLM5MmHLbK2zohFBYAYFgg0gEADG8xIeJczFAd8uoAAMDQ59hU+VzvzarIEptfAAADAJEOAKD/C4dcFw6xQ1rJoQMAAPByzk2V41U2xKaG/K4AAL0GkQ4AoL8LhWqREDOklUUCAACA3Tycm/ibZFXO1yne6wAA/QORDgCgXwsC2cEfm/j5cfCaAwAA8J+bCxPfu07ywE6ZmwEA+gMiHQBAPxYAmVlVhJOcOLHyzVW55qZ4zQEAAESZr1PkrnvQuXpGCwMAdBtEOgCAbhv7uVntzMc09klSDQAAkHb+zkz8Yk6kpAAA6DiIdAAA3TTuCzXujyOdkhw3AAAAzOkAANAgiHQAAN0z5CcmXk6bRz3fLbvuAAAAjc7xR2blWRez0ITklJ0g1gEAdANEOgCA9hvtVTGImCExJJsGAABo97xfmHibcpLKYsK8DwDQbhDpAADaa6RnJm6+GsJfAAAAumULFCZuKCxiHQBAi0GkAwBon0GemVUIaqxwF0JaAQAAum0b5GYl1kW1DagICwDQLhDpAADaY4BnJq44R5VWAACA/tkKhYnnZY9YBwDQIhDpAACaN7hzE3d3XJJEizi3oHUBAAB6aTtI3rqRiVdMCq97AIAWgEgHANCcgZ2rQRwjzwz55gAAAIZpTxQmXt46sSemak8g1gEA1AwiHQBA/cZ0buKJc7LzPcOYBhjkWHJU/tnXf10i0ANgX5hVGOxJhNMh1gEANAAiHQBAvcbzxMQT58ghA9C+9zwr/2T6r+v/LORr/yzi2uHav1+W7/PE8Vpzj/Hk3uI7siC3CZdf6ueP4wm3B2h8HJLxJEYaDcQ6AIAa+TdNAACQ3FjOTTxxThbYM8Q5gNZSlJ8Lj+Oymu7PdhwK8cSRcSqnKwA0g3rVFqX9IbbHWMcl3yITezqmjcvzIdYBACQGkQ4AIBEJxDnxnJvTsgBW7594qh3pv2bmpQi2HiZqXr2j9+V7ljdwyxlPDQBiomLdeE2sC6kIi1gHAFADiHQAAPHFAVngT0wccU4qtc4Q5wCcESHuawPXnRs/TzoAgCSomDZRca3yrPOtCItYBwCQEEQ6AIBIaBJ3MVhjiXMTEsHDwN+p3Pz2gpN/rvK4vUv4buzT8r3vV5WX5QJxAYZEJdaZlWBX6D/HEOvEXpnSwgAA4SDSAQCEL/gyEy9BM+IcDPEdys1LMS7bsXCU/5/qHTlsqBmO6Am1UZSfz9r3JCn+Yu2zxHMZhoDmtp1FEus+l+cZGwpaAQAEg0gHAOAJ4hyA0/tSeS/JJ1v767MwzM0qrHQbTVUX9fXM2qOX1Eb2qt2PzZoHdNlX5Y9U0F5qP5O/CyrWQh+JKNbJcdea/w6xDgDAk79+/PhBKwAAOKBigxih5xFOhzgHfXw/Xotx8okpQt2U70xhcS9eRk557r8C26CW65bXeTLtFPesnk+DfXRu/NMSPBgV7cxvzzvEO+jTGF6YMLGuQoTuAs9UAAA38KQDALA3XEV8CK2O9msRaxDnoNvvQ2Ze5opLIcZtIkv92zrybrbV+67tbRcSWnyon5O1/iJ/7vV3y2duyHcHHSWyZ93X8jxUpwcAcACRDgDAbtE+VmMVcQ6G1vcz8zJXnHyOG76t1NeX37hsoK1zFrK19Oe9RH2y6pcXei3xupPnOS+f6y2tD10iolgn70Ul1hXYPwAA20GkAwDYvqALNU4rEOeg7X39da64zDQvxm27330LT6X7hn7DY4QxA9KQ1XityuvuXAtUzMrPlHkAukRkse57eR7sIQCALSDSAQC8LQDkspgy4ZUeMUahK/39a8duW8TEeUvvbWnaLdLdb1lE9528oeuK957kMT1HpIAuElGsk2Jbp+V5Ls1KtCYsHABgDUQ6AIA11JtoGmGxyiIMukQXF0kpRbqmBMD9mhbbecAYWeUf3Eabx72sBfcgIsVIqmCWz2LK8ANdIqJYJ2Hh4/I8ItRNaFkAgBWIdAAA5leeookunkIg5wp0cdG10OT3XSKz+I6v+Ljf0G8S8eu25X1F2nTe4e6eteQ+xLPus2wMtbkSLsCWsWBmVmJdSM5eOeaiEvz0nAAAg+ZfNAEADBnxChFvhvIfFyZMoBNx7oN4qCDQQUd56Nj92lToXDR0bwu6U2tpW0ivhP3NeCzQVdQbNCs/Er767Hka8ca7Lt+FuaZfAAAYLIh0ADBYdOd2aVYhF77V/tbFuTmtCh1m2YF7fNZ37sqskvC3FXIstXPMP2rprYlQR9grdBbxsNWQ1cysxDpfqkqwM41wAAAYHIS7AsAQF2q5CS8KIdUbCc2APiHeX22JeZX3a2lWYZVL/SxqTDCeN/S7rRelmhsOErVvA0hBiVs2e6DL6Bg9Ue/QifGPUKC4BAAMFkQ6ABgMuisr4lyIECGePGPEOeghTYVoSpit5GFbyieySLHs2DPIHL57RJd15iigj870+RzpZy/B/U1McwIxQDQ07Ueh6URC7K6quAR2FwAMBkQ6AOg96nEyVmPPl2c1NNnRhb6ybOi644TeQ039pnngeANp8BXpFq+rsOqmj5wvLz8j41/hcp1j8fRuwpuuvK78BhHJyacI0VCxbqQRDBPjlxNSBPFrLVAxxtsUAPoOIh0A9BrNOzc1YV4PN2oYIs5BnxdTTVV4FaGjbYuuPoeSPgy4m2eexy3feF+W+t/FC3SsIoSICKEvUVH3+6CC4xf952e9vvyuOYWQINL8In0qVzFYbDIfUVtSlEi+uju1yeibANBLEOkAoJcE7tpWSIL6AkMQBsSDscvVKO/G0vzOG/ekCy+f9y1rYTscNnTdOkJYh7zZ4Ptc57u+oCLEXDeGrgPuMW+gXWZr/ywbWif6kbn0QX8/+fIgmLIPifh7q15xE+O3gSp9M9diK0Q3AEDvQKQDgF6hoa1iuJ0GnEYWJYRUwBBZmpdCxmsxbrlJtC7fPfn/PiJdSmFq0WA7+rBHF0w2NxzV8Twlb5Z6pPoKdQcyj9UlPOiG1rb39lA/5/q77sxv0W5JzwIfJHxci0v4piLZ0+MKzVd3S6sCQF9ApAOAPi3CJmrw+S50qdgKQ0feIRG5lx4LcN8FezKRToSOJkJ4pe0aCh2G+P3s2fVdUKGuMP6e3HWGgLvOd5WX3efyNz6al6GxeDSB0/hswivBStjsl/IcRD4AQG/4F00AAF1HPAHKjxhmsqvqI9BJDp5LWRgh0MHAF02SIN83D5Xv4mhPPWDbNq5kDV13n56YBN/n6euNOe3A3DkxYQUv5FgRViSf3T9NvTPQ+XlHNoUK6ZJm5b3tgwji3yUEljEUALoOnnQA0Fl0QSALoRCXFSkKMWH3FRz7Xm5W3i6yGMhf/e+lfuZDCpmW3xrgPZbSc0hEeB/xPjPNVIdtYyGNPpB7Hucr0rX6Ga5VPY85BjCPQtAcYla55gqz8qzzEZDPze8Q2BmtCgBdBJEOADpJhNBW2a2dkHcOHBa0I/3sUqKqELcLrZR4a4YjBD96LqxSClMLE1ZAxhfbIhxQD5nncV7vbVOh1g6EVj0HSIKGi9+qjedj58n3r1XsIwQWADoHIh0AdAr1YJoGLH7JOwe2fU0W9SLKFQH9TRYLEg52Wp7vSvten/M2yWLIR6TrY3hS6uec8ZY64RvWuehbQ+g8ekqXgLYSKV9dFQIr6UyoAgsAnQGRDgC6sqiIUbUVQw129bPMhAtzm5AwHAnlGfV4Z39u/LzW8hb+FrmnuQoaFTIOrRcgyMxLsUz+X6h3Uhb5e38cp57IgghQu8bDJ8lV2PH3OqR/LTyv2WbheWoAOoDOlYWKdb4btFSBBYBOgUgHAF1YYEm4wyRg8XtXfsaEPMCG/iXCSmFW4txB4svJAmMhokHXhY8N+L5jWeJ78hEOJVz5ooE2zBKf/0AXrS7viM3XxEv5tuzX4xb2S9/Kro8BmzreVYtTpmHQEEDCsKFT6DtxFGAPVlVgsQcBoPUg0gFAa1HxZGr880nJorEg7xy80bdy8zvH3EHNl5fFxa307x56dfoufA5aeE/QnmcYStZA3/EWBhOOe5VHOkAnKefM6VoI7LnHKWTHQTzaJapiQosCQBtBpAOA1rFWdc7Xi0WS9WOAwet+VYly8mk6YboIGhJ2k/dsAeVd4VW9C+f01E7TVtHZVzAL6Y++73ZKD9uJoVgEdH+ekXFmvBYC67qRK+/AhdoEY+YdAGgbiHQA0CrUw0kML1+vDEIZoOpLVUXW3LRDmHvNsYSe9bCIybNnW2f02p8c0QStaVOveURzW/qWdk0iGKhn+jldAfqCpozINYTbp1qxhH1/HUhRJwDoEIh0ANAKIhSGILQV1oW5UcAiuU4kdOe2Z4sDWTj5hKhnCe+nS+zzJkcfE3wF+qXvex1wy6kS2097+Gxlvp+ZVS5EBJaBIhtdMo8a/xBYOWZEYQkAaAv/ogkAoAWGdqGLIR+BTrx2LkvDKkOgG3w/EmHun/Jzbboh0BkVD8Y9exS+olie6H5YvA+bWgs4aGJ73/HnPoUXuI6NPsL5TcvthmMd7/+R0MfAKr7QYUSk1aI17+U98jhFVVjituWVmQFgACDSAUCTRnamO+FiZPt4OoghdkTuOVCWHb3vgufwk4wuDAnwFemeXUQfWdirN8/ngHuNPpcFFIu4afmY+nrclE0+CV1cilCqIccwMCQEtvzIe/vJrDZxXRGBfaliOwBAIxDuCgCNoAaQLEh8xDkJbSUsAf4wzst+JX3joGO3fiCeLj3qz76edAf04p8c0wRR8RXpZG76qoVQZFxZmlW+uKe1Pr6v5z8y4d6794m8wcce79azHjdrqf2QbXlP5LeKUPq5/J7kqJ1hKwzSHpiuFZY49Xj3P6sHakGOYwCoGzzpAKBu4/pIvec+Gz+BThL8HmF0wwZS9QtZtIpnyaV0Y/3IP99FOv+oR89gETA+5AkWa/Oe9nUKTNiRRTiHCD8iCl3o3PVVP1/0v4UKdDK+FAnm28z4VUmfao63tob92Xo5yXP5ot51E7zrhoWGwBY6Xz96nELe+QVedQBQN3jSAUBtiJHsuWAQHsxqR3NBS8IWZiZeBUMx6kX0m23od/O1hfDMhHlA9Uakk4VR2SZUeE0PeZPsF9ptJ1VFcp8w12fT/iITheP3D9T2uCjHpvfYEcNCN2oyTxu08qorsEEBoC7wpAOA5Kj33ML4CXSyYPhUGkZHGEdgYYxLH3kMOIWIweKt+V6LkYx39TtZXGsOnJAk63s9S3ru+65m9OJfecQgvB270J/OpDplgt8u44mPh9+0zZVSNQTRt1rvI3bEoO2DSfnnnfErLHFYfr6p0AcAkBQ86QAgtUEtBo2v95wYUuQDAVfE+83Xm857p1zCakSQVmPeB1lUz3vyDKQNfTyYUoVw+nr2vT7Het9YmpeJ9eX/Pa31h3nZH354XusoYV84M3YFAXKL7+y/emZtS0OQtfgdedbxJlWbzTzvaVrD+xhCEXBs2z0EITFqT+YBeZEv1nLVIfgCQBIQ6QAgCSpWyCLBR7BIvXiBfhMk0hn7fEdvIcb7d89j+5RjbOl5XJbofnxFww+BOe0ejL9om+zZWP6meQ/6Yd7S+xKv23EqjzXdHPMpxPL6nvba1GjqGRmS/2/G9AjCWmGJmUefqrzqLtU7DwAgKoS7AkCqBcI3z8WpLF4yBDoIML5FXHj2PHwUeO2l8Q97zXr0GHw9DA571h2feCMbpU3Ctwi2n8rPO/G6TSjQiXejz0bDY2DY7XMNbVgEHHvT5jBeaMRWkMISMud/NH5pMsSrbqGb0gAA0UCkA4CYi4OQ3HNiIH1IuXiBQeEr8h5EMLh9F7p9EqhCKry2acGTN3TdjFe4N+0oc9uZ5lWd1pC+QUI6fTzgJk298w4UDcwJ0HN0U1jmnSvPeZtcdQAQFcJdASAKgbnnxDCaIM71qj+IN0euhm+ui+XX4VdVji/53AaGFb61IDsNWAh6h7xqLrIYOdC6vOiRCq++h2cJFvxL040qn+ttAOG0QfiWce9a58hxSi9xLRbhM+794UXXtqIbmgfswPPwR7zzYdecJe9n2c9+VnT36GvkqgOAaOBJBwChhrOUtZ+bMO+5MQJdL/rCfvkp1Mj9p/x80X5xvMHg3dP/J/njvpbHLWUhG6OypS7IGgl5VVgQ+lXQE1J40i0baoM53aCx8SikH12aVdj6fcRbkjHwi4yPCav3+hZGeGtTImvZIw0Zl2e8EWBpO8xNmFfdXItSAAB4g0gHACGLIDFEfBOyyyLoKLL3FDTTDzJNwLwsP9fGP7G3LGJF1FvojnQoISGvoQvUJT3Duw3aFO663+L23aeLbcX7HZZk8Jp6IS8/f5X/6b1Z5a2SeStUuDvRhXzU5ycbJMbPc/C+7V5m2lanAaeY1XSP0AM0V53Ytx+Me6462Xz8LJvXbfNGBYDugEgHAF7GqHrPfTbuIX2SPPu9LoLwnut2P6jEue+6gIoV3ll5nMwCFz7zgGNDRUKfaz/3rIssPY9r08LmqMXX7VuRjbY8u/s3Fu0LEbJ03srL//R3+Tkzfsnmq2cXTajT8/h60U068CyLgGPvasgDKCxUmMl59fqBbCKXH5mPLj0OP9Y+UdCSAOAKIh0AuC4GRsY/v9OlJs8mX0e3+8D+K3EuFaeBC9kQ75AmDOu+vRdzz+MOe9S2vhsReOWE4yvSLS0W70+aw803LK7q55NIv1XO47NJcr/Fmz1r0bMMCR9M7iWowtyB2kVfVawreAX7gYjzZuVN++B4qLyT14lD3AGghyDSAYCtEbqvuca+mADvOVqy8/2gEmlPa7qkt8eJemre+V43MFTFxyDvm0i3DOhnsT3YmvLabeMzHcomyVHq9lkLizvzvNZ5qOeVvivnnodvm5OzNjxE/X2+BSOeXxfESMTrdhSx7lrzrBZYDt1HvWl9RXkJcV/iZQkAtiDSAYCNkZzrwsUn19gV3nO96Qey2PERaUMJCQ0L8aIICXn1EQhmfeovgSFmWUt+Rta393hAaQZ8hZ2FR5vKu+u7ITAJ/J2+Ya53HckJG+JFl3xMVfvoeEsfRKzr1/gZkqtOvCyneNUBwC4Q6QBglwEqC4ivHgueX5VbacXO9wHxopSF62mDtyFCnY/g1pRI57oge+ipkN2mCq8+HDR03WMDIWNWHnC473voO9cd+3rtqmfzcc33W+vcEzgOT2u4zYnlOFKJdWNEmm4TWAFWvF7nCbzFAaBHINIBwCbjOFNh5sLjcDFcqNzaj34giwl5jm1IUi+LWadFV2DI67HPYko9JlzFnb6K2UvP47IEi6ou/X4Iw7f/PPt6GqrnqK8o7SxEBRaLuLHwdG2DkCTt4uu5fZ+6YMQOL7q3kHlBCm6JWDdBrOsugRVgxZ76JoItLQkAb4FIBwCbRIaFcRdmpDrlT+85Krf2hrlpVxXJc/Uecf0NIYtEl3fnyGPhfNNjQdt3kZz1ZCG3NNAEvv0n1JvV9z3OPY6RBb6vp+fE4jtt8PRpdair8Q9VFuFRNkAR67o/xs/1XbnxOPyzFhnh+QPACxDpAOAXa8Uhro377rV4K2V4z/WqP4jYdNjCW5s5GrW1hLyqV8Xc8d15MP31ojPGX7Q4btF7cNTQdVm4+ZN7Hhcq0i09jzty7BuZ8fNyF266IB7re+c7/zybxFVd9RmEjlPrYt00sFgRNIR61RXlP37Uvuc61y09Nh8BoMcg0gHAusDgUxxCDJKPpYEywnuud/3hPPA0Itx+MqtwkA/6z48Rbk8WNjMHA1oWpA+e1zrZJZZoaLjcz1fjLtDlPX9vlgF9MPaC9dnzuKbEMnIW1d92TYl0rh5x04B3oCubAkXAsbc1jKuTiOfa0/n2u8wliHXdpOxzIgxnxj3Fhjz/L67pPACgvyDSAUBIcQjJv3Okhgn0i5AFiIR9vFPhdirelfqRfxYD9pPxF0wqThx3nmcB1xpteG9GKs59N+5FNSRvY98FurZVeG2qMMd97BOyiN/aNvvGP4/ZMvDyeQ2/T65x4nn41GHMadqTswg4dpr4GWQmXSElOS9iXXfnPPGqG3naOZLOY0FRCQD4N00AMPjFjAhsPiEbn0R0oRV72S9yzz4hBuloV8iz9BvJw2LcQ0P/WIjJeSwXndLPPwcsvKsQW/nnkQlLaC7ehGKE35bnrP7bk7bHrIfCnXgMHnq2+5w38k1YvG/Ge4HbkXQNM8/jZHx2mbMbS3WgeXF9x9c6KmXLXHBv0obli1h3WraFeGVNSSXSLdbsnJnjuyTflTx1ktt5RksCDBNEOoCBol5IMw9DWBbcRQ1GMDRH4bkAzG37hXzPM4fbOuL5KaFbE4vrSc4XX7FopLkaTyK174F522tVzi9JxGVBNulRf1p6tnvWkvuv+mndHKW4ri4c15F31kYYtrmXZQvynfmKdI+R+krKeXti/ItFTDu0AVAEHDtLfXM6z+U6h8kzSSnWybwgnuMiCk4Q67qD9pMjfW9dckiKTXSt/YtCbAADBJEOYIBo3guffGNXaiRiMPQbnwTGU1fhVoU6WYx9CbjXsYpatiKDj1i0Z+IJdDbXulDjvC95Hhee7ZcluI8mClL4PsNU4YbHO/59E1aLTPUO/dCgmODbb5YRrp0sTE09eX3zybl60TVpn2SB7+msrnvVPp5reKI8m9OEl5M2+YpY1z1k023Nq85FZD/V/jViYxxgWJCTDmBAaIJ7mehdBbqqOAQ7ev3vI7LY8PFs81oAaj7Dq4Bb3nO49qxDj+K4Y/e7jUVAG8TkqWO/H/zwFcrmDY2dgk1hm2nA+Z3mbs/KwrHeryLg2JsmbBQRULS65zuzysmaem74qrnLCl73bqCiqowRrkUlRNT7JuGvtCLAcECkAxgIGt4qi0VXTyLZtc0oDtGZ51yUn2VAwmmfBe594MJoYsJCzU5tfq/uRD926HGeaJhM11kG9OesBfefGegSR3X3U2Wc6h1Rz9oQLy2ZF8YOCel92jCWGF0EHDtrsuNJqHeNYp3Yctc63xe89u1nrajEmXEvKvFZ0m54CugA0DEQ6QAGgIa3Skih6y78ZWlQ5HjPdeIZ5xpOcW1WO6++i5WsCcM1cGEmTCy/1zWx+aLrFf4Cw3Ta8Nubuoeckc15HMyMv7fZIvC6ISLarmtPAptGvK+kcM43FXVmWp16v2XPb2T8c+49tiUE9JVYd2nCq5lvQ9oLsa5bc+JMx/cHx0MllwDVXwEGACIdQM8XLJ7hreJt9L5nyev7/IxFePpqXoYHHqv3RScECV1c3Qec4tRSzJp18DHPetBVHzyPyyPeQ1ML+CUjVW14j1+BYvIsVd9U4SVm6LeIOiIoysbdPxo2OWnJwr8IOLZ1OfdUrJtov7xMfLl1sW6Cx1W70RBpeeeuPJ4z4a8APQeRDqCnqEDjE94q+TKOSFLb+ue7rx6S383mpPw+i5aswZ9VBB4/sVyIP3fscfsKrm1i6XlcHxaaSwN14fue+IrIMhbPTJiI9rzJA0yFltTik9gIF7rwf9LfM6r7wekmS0iBntZ6Sau3eF3jwIE+T8S6DiC5nss/H41f+OuM5wvQTxDpAHqI5rESzyqXsB8xEM4kXwbhrZ14vmLw7/KQPKwp/CWKkSheByYsj49t+FaqxZws9MVb4sPa56OJk5uo67vmvqJ/G7x7mrqHzi6+OljZdV8Fjdx20avflX4dWtFz23g0Mf7huz7s6e85b+DZhQiDdzp/tJlJzdf7WSncINZ1Yby81XnGNZpA3tU54a8A/ePfNAFAf1AjTCZ71119ERcKvOda/3wLNfRdcvaIcX7rILwuPfrPYcSfOQlY9MqiZGyxGLqNsLBef3dmcs4ti8Rb9U65DVhwSxGJrAML0U20QaR7CuhXTXBYU7v0iczzuMr76ELH2mftswvtN0v9K+0u82xI7rS3xqO3xnv5LecDenYhGxGzDszdBw1dfk/tuwnDQ3vRuT3XTdgLx3lChLqx5roDgB6AJx1AT9CdNJnkXQUW8fLJEeha/Wwrj41rD0P/wHHxs/S9x4iGaojn2XiXx4DuWoeEvEpI+Kfy805yypSf6S7xTD2L8sDrdtmbbul53F4sD5AGx7gU18Ur5m1i5W7b03Od64JZxt4v+s/nJp7g8rilcvpgFtw6fxwkaMO2MBn49cF+npJn9cHRVpDx6lpToABAD0CkA+iHgSuL92/GL7y1ILy1tc8104qtEroc4q02riHUJW/JgkLeAZuwqZBF3cRGmHvD+Baxpgi4btHVvhwokHXaa4zxtbbxsov9ZLLht8gYdjygxxcyts1a3i9jel368Gy6V9V80OimXmbcw1/PtRAMmzgAHQeRDqDbi5J9DaP77HiohOjluMa3/rl+j7RQ2zP2wtfc8xp5RAN1acK86Wx+a8iiJQ/4bbfGv4rtXk05BlPx6HncUQveyTzh6R+0T1Sfy7XPtvf08o3P1atzbfo8mv6Rdex+H96ag2sqFtGq+c6EpR9oux3TtAf0lI2C7iHPrPzkxr0qsGzoLntQbApg0JCTDqC7hm2mQoOrh5WIH2OMttYuVsb6iZ0HS3ZYbby/lp7nlwqk+xH71TRg4XYgBuq25PUilpXf8b23InARLcf6iq8j090wOOlbPh4lWcR7eDTNeLV8WG+H0NyC2rfnNYxJVQ62bcj/H3KBj5Bx5C3GplnPq7oJKRhx3+Y8nSqUhGy0nem4OfE8z7PNXKV50OYNFnyBzWP9RCMqXHLayve+lsd9Eq9/WhGgeyDSAXQQDZ+YGXch5wzvudY+08K4F4VwQcTZnQKaLHg0abqPSBhNQJLwyPI+7gMWONKW+Y7vSG45H6XuMKSIgwqEvmLRSWQxtE7mns8zpviy3NLuj+alSL1Ye2eWgf25k4tfhzDlNoTTdUmku3yrbXXzLcTzSvrwvmmu2IkPvS0YYcJSNzyu2Wu5CubSVi6bVzu96FRI/Fk0pfxnmRPHHS5Q1Etk/tDn77ox/7nqN2zMA3QLRDqAjuFR+aky3EcUh2jl88x1oZFKnBOha+IoEkg/8RFTYnt5SV//6nnssYWQJgavrzud/NaQHWq59nnAtWcd7O6+C7+Y4osscivPsCfGxF6RdeQ+b7ZU2pQxJURgy3Wj5UjHiZGJW3079vx3FHB/z23edIzgRffit1U5TdUGlM8usc7Ki868FBJlPpSNIAmxJEy2Ragtc6TFIVxsh1M9boT4CtAdyEkH0BE0T5ks7F0FOtkZPWIx2r7FyVpRiBQCnQizHyWniYcXz9zzmifqCRLLKJ2bsNxZuzw0Qrx/isCfF7K4HHW02/suEKJWeJV+pR/GxH4hi1cRF+5NWBXllIhAV2yYE3Ljv2lQnXu51s9lc0ZEsL9lLjArb+q25SLEi+5tNgps8oy1D70z23O32njRyXneEhLFzlx2PAdqLymfqbwzZ45jnAjhC43CAYAO8NePHz9oBYCWo7vNM+O+43y5ZccemnmWmbHbBQ8x7schHgba3755Hh41B4ouEq5926K8l/0d5w/xpnsXsjNdXluO9RVo/+6il0P5m32Njg/kSwLHvlblypNPpn+bqpgq4/Jk29gYOB5Yj0c6vudmJfbHbA8ne0Ofj9yvr+fg+7YK7YFzqFNbbsllu7U/6HELiz4nwm7B+NubdQF56gA6AOGuAO2fiMWYdkkYWy0IRhhVrVswpioKUT1zMbyCQ1Q0H5xvXrqxiViZUMRGDe/wuZef1VB3CJYhIl1uwrw55NgLz2O7GvJqk4vvWRePS/3M9d8BXMaOJ+0781djcWZWol2uf+WTUrzbmeervKfQYhGXthsGKmwtqnFavWtyHVPqLFgxCpgLH1ruCRviIWgbprrezyc6T1Y2xq1Ff7Dtc/Kdr5ojtiBksjXj22ItXYqLDUOeOoAOgEgH0GLUcP/saryalUCHIdWe51iY8FxD25CQl0nkZy7ilY+3387Kqh5I2/mKWYXZLmaF3GeoUDYL+F1j0928dAdri9FKMFhW/8zCARIvbpfmt/i7Pk6ve9xV/+ydL03H0J3jsm7gTAJ+kpOo80Z73Oq9jlXAHHnYHb5jc8ic0Nb5PjNhnvJeG22vxDqbe3QVEkXI/l4ee6X9mnG6+bFMnsHIY61AnjqAlkO4K0A7jbx9NUJdDT0Ra9gda89zrIoLpCwKMU7hUaD3/sXz8I15lwIWPd8DTrEr7GcRsBgPCjsNvPa7rhnYa15MiHHQlT6bm98ed9XnLSqx2SnfYXn+mQkTdaKmtdDf+zXlfQSO6SJKZm0dPwKfZy2/LUKfizrHQ7T3lqgbgJ6AJx1A+yZaEejmHgv3szZXOhugsSSLlVQhVMlzxIh3RUDI66ns7MZaaGi1wpuARUVhtnuqyHvj6zkSw5vuc6Lf1TrWvJgAutJnk42zOleEiCVBXnSRcRnvQ8JBb1ss0GWBz/O2BoHuKEKfGzMytG+c0md767B+EPtOQplZPwC0DKq7ArTLwDvSBayLQCcG03sm2NY8w4lZeSGkEOhEnBNjKqtp5zOk+mlsIz6kfxcJf+eowTYueOMAOs0k9PgWCVYuHt0hY9e0z8+zhnsMbb8pXtDtRCv/yjrixvHQa/WuBICWgEgH0BI0b9ncuHkuSf65rOUJlIfGMsE5RYi9LD9HNYuxrRGQVJR88Dz8QAXwjYZtwLlPAn+XXPsu4HcVvHIAnZzzQ6urPnaxSqP+7r2A39zWiq6ZCQ8hXba9z5l2i6SwsivELjhzPEwiIOYazQMADYNIB9AO406MnmtHw1UMuiN2NFtnHM3UkI2F7IiKEFu7x4QmFPf9LSkEpJDFwa57mQUufEIIEUMnvHUAnZwr5L1/p4tpGeefW/Lu54l/esi80GaBKHS+q2MsD20/CkZ0yxZ97ziuiIA737apCQD1gEgH0CCyY1V+xFA/dzz0jKS9rSbGs5GiEFIYoGjYKJ413A7r3HosZG0XnvOA+2pSpDvQEGsA6N5CWsLTZjrO7+uiWrymd3n2PnYxxYV6m4V4H89a+rvk2YWkeKjDi07miZAiVvekVenc+CJep0fGLVJA0u3MNV8mADQEIh1As0bd3NFgFYHiA4ZS6w0jea73gaeZtaRyZ0hfO465I6tipa+gdagLxG3GrK/X4CjC77oLOMVFBG8+AGjBolq9pmXc/Lv8fDQrL7vXY1PR0Z8Yct83LfbiEoFuL+D4SQ32Zmie2AlvaCfHFLEjc+OWp64qKFHQggDNgEgH0ACeBSJkJ+yIUumdIdSgnbYhN4gaeCGCY5sKSOQ7/r+vALgXQSSbBR7/RcLmtwmRANCpxfWThMSql5281+Jl96n8XHXYDghZ9N+28QdFEMDuatiQE3skRES8wfbs/FhS6PjhAgUlABoCkQ6gfoNOJsq5o8EkXjZ5SzyrwM4okmd8E3CKPRNf4NrUJ3d5u4XksTmNKRxpu/p6vOU7/n+IMRrqTReS/299ATzm7QPo5ZwiXnZSWTP1O56lOKluZPiGWz7qGNlGQr3okubZ0/n3PPA0E97AXowh0tfEO9clbYjYcLcUlACoF0Q6gBopJzkx5lwLRFyWE+uIZL2dJNSwHaf0jJJz6y7pt21hDREEpCLyrfsu1vJdi2CTTgC0YeZxjBjbIgZ/lJxWNSzgAaDfpJpzQjYyZm1sqAhedPc1eKiFtt0lG8T9Qe253NHWkbQ8czz1AeoDkQ6gPmNODKXPjotvKRAxofU6awyJYXsZcAoRcycJ+uK+JpH+Xn5O9T/vuk6IoT+OvAvrey8HFvdxG3Du0Px7U2O3wy3G9bowV7TYywQAsH/21+aaOsf81IxMu3PR5WZVsdOXZ9PuirrgZ5v6FpRYUPkVoB4Q6QBqME7Lz9zRQBXDKKdARC+wFV42ETVcVMW5Zfm5ePW/DtTTM8XvkEVMEdnA9PV422VgzgNurQj8XU9bziG/96r8vJf8VAhzANAhQsbGuxZ7ck0Cju2CF92YKI5+onnqxB5yLSgxp6AEQHr+TRMApGOtgqtrgYgcw6g/hpAKY58DTiOGdh7YFwtdUGzLCTQRj8+3+p7+DhGFfL0hRACMuSMv9+KTZ+fIbBHiRPgqf+ez8fOOGJnAnHB6/TOzCot/0N95q8IkAEBqUuSeChkXZy217wrjn2PPmPRedKH39xBro1ht4aM1O6b6K/Pak/5dEFbbiI1alM9n4WCjim0kBSUMjgQA6cCTDiCdgeRTwbUqEIFA1y8jSMSpkJxuxxq24tMPc/XkvLYw2HcVqwhZVBxE3n2dJ1yANhnyWhm+f8sut4S7I9ABQI0cxjyZjom+YtFziz2GQ+bDh5RedCqKhW6KjSPcR6Gbe//I1GZWHvzyOdbPuf77l/LzXcQi2dQk91kjNqprQQkqvwIkBJEOII2BNDLuFVyvKBDRa0IN3qljH8zUOP5q3HLSXGwykHWX+66hRc1rfBc4NsZ/yKKwiGQ0Mw4AQBN8ChznY859S98NqsQ2nozzIV5qqfO8hVacDQrFVXFO7AXZHDxxOFQEYhHtvmtF0ZzXsR7WCkq4Vn6dUfkVID5//fjxg1YAiG+8XTsedobb+CD6hhi9IUmcd/YTNZYmxi8UtOJGQiA2nF+MuK8pf4NDey49Fkqy+Mgtzv3kuch50DwvAABdn7NGunCXzy4Puw+vhR2dj5YmTDASxBNdhK1ZGzYwPOeeX79F8oomvDc59/fA07zzCT3Va88C7Zw/5uzyUxAKW1vfJk0PQAvAkw4g7uQ2MW4C3bMatjNabxBMQo/ftGO5VrFVDNnzwOucbtrB1kXYfYNtsE5Ko33uedwhoToA0AfEu6b8jHXj4V35kXyZd8be2ya0+mmFCGKSM+sf9bAaNWjnjUyLc9FFOP+Vp0BXmFVuuePIv0fO913DYPHYSv/Oi9Am9p9LQQkR9OZUfgWIByIdQDzDbWb+rJi5DdkZzmuo7gXtMX7mJiyMSBYG4y3G8UWkBdEuQz8kVOdAxcQYpMzVFhLyOqK3A0DP5q+lbChqWg4RSz6Un0uz8qLZxDjBrUj45BfxZmsof1nIb3pMuSmrm2unAad4Nh4iX3ldsQmuI9ofbyH2zQIhqJZ3/UmjKa4cDkOoA4gIIh1AuFG071H1UozaIxLCD5LQRcu42k3WohALY1cUwpXjTcaW5i55jPEbAvEJrVhafs9XpHukiwPAABbycy1sI/PE3+bVponOH4cJb0HmvPX8ZUUN9l5uwjzFJolvMfT8E9eQRd2gPq+p28kz/1Zec8wbWMs7Lu185nCIiLTzJj1dAfoCOekAwgw2n9wN4klVkLth0P1mGmjUSh/aN/HDSipEaBpvq6rnmXtxnY157xzaUe7vxPGwS1lYRj6/tJd8d4bwDgAQZZ7zQTzBZuVnmiKHWWBe2dS56ELnZKf7U/t35jEHx+JG7RRs6fTv8kiftYunJLm2AQLAkw7Af9KSXWIx2FwEuhsquIJZ7XY/Bxx/YtIIdHJPn8RQ3ybQCWp8PQRc6zRC5TafBY/Lwm1bG8hvlyqI77S9xgh0AAC/kDniJnCuc0VEBBEGxbtuoVVGo+Qxi+BFN0toj1YFo0Jw9U6bmuYEup82hFl5bZGnLjGelV+v8XgE8AeRDsDPIPIR6D6Feg5BbwyeJxOW1y0FkltIxCaX+wo1wGa+BrbmIfIJpZo7fPe1SCcFMyphTsLVp1ScAwB4c55bqM0jY7WEzD3UfAsyP4hnmeSum0XIlTUJOPY58Zwvc3FIyov7XRtzr+bfmQnLfRfzGSPU1fQ+l3+OHN/jz9pXAMARwl0B3MWBSqDD7budz6foSltL4msTP5ecK+LpMPEVmwLDf4Q78S71uK5PqKtzuNFaxdxbPGABAILmPBl/RVAqTNoiA5sQgUHsg5nLeK73/T3gutZpFjzadF/nqJD2fG/rCd5QGHMSOwK8+5vYfa5RRAWtB2APIh2A2+Qkk4xLzg/ZPc0Jg6vN+L9Vw+HvLggqEXLIhCBeYZPQ6sIqWn8LvBcnAy5gFz/ZQgkAAJznP/kcN3QL72w3pwI9x8QOzFLZJBG82qzn34ZtFub3dr2/rv1ObE7S/QBYQrgrgJtBiUDXzmcjO6jSztXOXt6F+1aPv/uaLytFDj6U185DBTr9DdLuV4GnObUJifCspLzOjLcFAKAd85/MQ+U/vjOrdAt1VsZ+dBDoMhMmgk0TCnRHgfcmdurY4VoxBTqxfSQMWsTSv+QSakv45jC8iBDSDPbvr6yJbhwOETGe0GQASxDpAOyMk7GjcSIhFRkCXS3PRkIvvpiXoR55h37CpKbriOF7pkUO5gl+Q2hycBHqliq4/rE40OcsiyrfRNVX5I8DAGjdYn8pHlCaiuCjWVUvT82spjk6dS660HNbCYhrIY6xbJGPulE4q+ZlsUukAJNZ5T27b6g9wO3dLcxKaLWFHIIAlhDuCrDbOBFjzmWnUgS6HJfu5M9FDPoqvPWPZyCJ/Tv0W8T4TRXyUy0Spin7pIprXyLecyVwy3MOzdsnHhpHvJMAAJ2YE2URLwJAaEGETViFukbIRZcsF1eEOdd6Xoxoo4h9PLJse1fb+9ehCTYiYfuzkj5OpBFARPCkA4hrJNwYBLo6nktuXoa3vuawYzt1RaLz3qgRPkndJ7UyXCwPiD1dEBxHWqAVvJMAAN1Axmutnp2ZVRjkTcTT3zl4VU8CrzVJ2EyhXmMTS4FuYuIJdLlt26u46eNRN+YNqv19nel7ahtRITbenPBkgM0g0gFsNkxk0nES6MSoQAxI/lzEYPxqdlcyyztk4CwjL0LEsH2v/XFZ408Ro/qxZc17xq46AEBnBYC5CjZ/m1Vo3UPgKWeWtsa+CS/IkGT+1RQsIRtY9yqs7LqO2FEXEW7ZN8Kk8LjWCeGUzbynancj1AFEAJEO4A3DTF37XYyzK8qL1/ZcbA3GvGM/cWzC87qJIVwVhag9jEAN8FGE3xGLM5uFCAAAtF4EeNIcZrKof29WG1uuc82jen3bzskhTFLZQqYGDz+9Toz50zsFjIqcPqLsiDemkXd0oba37WZtJdSxfgJ4BSIdwJ9Gydy4ufafabJbSPdcZNJfOj6XvGsLEBMevrJo2mtMjbQ2vA8IdAAAPRUD1FNcbDbxrrMNi7QS6NQWDJnHbhJ6sU/M7kiCbdxZ2glij4SmmxARdRQYYeJzbMZb0qgNKEK6rbgqffkaoQ7gJYh0AC+NMjFcDhECWvVccmMX3vqaww6GPIhRHBIueqrt1bSRNjNuFb9iIu33nvcSAGAQooB418m89678XJnt3nW2G2FjEyaETRLZQ1n55zzwNGOL64gn2mmEW84bqqqe82Y0+k4+6TNw8YJEqANYA5EOwHgJdFUJeYSA9IQYeJ0y1NSwCTXuJy35LfJu1C3UyQLtiIphAACDEwaWEtWg3nUfzZ+FjO4tq4qGetHdJRSmQm3Oy133FjHM9SzSXEx+uW6+j5VQ51L8A6EOQEGkg8GjO5Nz4ybQ5Q55TSDQ8Db+iaLzDv7emQlLjH2su+Bt+S1nJn2OuqpQxpjCLQAAg7cbbsuPzIPiXXdpVh7WM8vDQ73opil+k3rJh1RZfba8t1ng7xduYmxiq2B4SI/u7Hv4pF6uLoXREOoADCIdDBytKrQw7gIdnjr1Mvc8Lu/o7w3N6TZtyw9RQ12ew0OC04unRGOFMgAAoNUigXjXTcpP5iAahcy/9wnzwobO6zs3sXSD7yTwOg8mXl5aCkD04z0sjLtQN6PlYMgg0sFgUYFOjCnbHUMEuubwnay7mJeuKmV/H3CKg/J3j1v0exZake+TCfeqk+MlrPWdeEo0XSgDAAB6YxcWpp256OS+QjzKHneJlBHDXIuIHu2F53FLenPr7Fp5li5C3SlCHQwZRDoYqiHmKtDJziC5rpqb3KXdfQsqHHX0Z4eKbJO2CZTlcxRPgMysQmBdPOvk2YswJ3kg9zWsFSMcAABiMgk4NokXnc7joV50hcV3piY8zPVTLDs5MLwX+6Cdtrz0w0uHQxDqYLD8myaAoeEp0OXkumoceWY+1cZy4x8u26Qxsyj76o3xr7Am/XtsWlJIYu13yXskRtdMFx9H5u2wZPmeGPsL3j0AAEhsG4qAcBBwilRzbWiOvJ3ioQpiodVc73UjLhYh7TmnR7fWtpUN5GX5j9eWh4hQVwl8AIMBkQ6GZoQh0HWXW+Mv0nUVMVJHAQb6hexCttXrTN+rOQY1AAA0jMxH4rXtI9Q9JvKiy0y4V31h8Z1Z4DWejX9o6lu/W+we7yIZpMFoNxJ6LcKbQagD2AjhrjAYEOg6P6nfGr98Zscd/s1LEx7mMqH3AAAAbLcxpMCEmIvGPSdsqnl2YsK86K52bdKVtrFc4yDwPotYm4ERwnvv6M2deN9mZpX6xBZCX2FQINLBIECg6w1zz+efd/g3i7EaUmzhVPs/AAAAbEG8sKRiuLEX6x4dKse62i0hIahiN0x2XCMr/1wE3uqdbqLGQjwHQ0TDW3pxZ941eW8Q6gDeAJEOeo+HQCd5wBDo2omv8ZV32Ih5MuHhLlO6DgAAgPXcayvWTRLdQuh5pxZ2bKhtEDvMVbzoQkTD5xSCKSR9z+R5nRn7zWiEOhgEiHTQa3wEOsl5gEAX/TlkkU41OJFuzYh5DDjFcce9CQEAAJqYfyux7p1ZbeKuk8qLrjBhqTrkviY7riG/6STwVqPay3qu98at+vs6bEh218aV/ohQB6Ag0kFv8RXoaLnoz0G8wL6XfxehYZdqwN17HHrcg6YM7ZsYNAAAAH72x1JtxHWxbpLocqHntfG+DxW0Yoe5Vu0sFd3FVrx0PPTZINJ1+f1aGIQ6gF8g0kEvQaBrxTPYLz9iwH3W/3RYfr5pkuIQbj3vJ++4ASP9+T7gFAe6Ow8AAAB+c/EvsS6RF53YSCE52e53iWdqCxwGXCNqmOuGdpZ2cPGqmxIF0/l3C6EOQEGkg96BQNeaZyCT7VuhFBeBXnWDDHlVJoHHTzXnCwAAAHgSq5rpK9tJ5ufQHLQ2x4faEpM6BDEHrzq86PrzXiHUARhEOugZCHSteAZiIH4z23eCvb3q1DD2yVeS98B4kb59E3CKvQgLAAAAAIjP1MF+3WTTLnbYaIUJ99SrVRCz8Kob40XXHxDqABDpoEcg0DXe/q/DW20Qr7q5R2GJucctHvekqSeBx48jFvIAAACAODbsacApni3tg1AbohG7eYtX3T0VXfsHQh0MHUQ66JNxMzcIdE22/6bw1l2IeLZQDzxbZp73mffAcFka94TK6+yZdMmuAQAAwJ1Q77TprhBctYFCvOguU4T5OtpAYr+se9URHdBTEOpgyCDSQedBoGu8/W3CW3chz+6zrVedTtyPHtfJe2TMPwccf4o3HQAAQCvsKLFNQrz9H42dyDeu4RrJWfOq+7ArvBe6DUIdDBVEOui6YYNA11zb+4S37sLFq27ucf68J0aL5F6ZBJ4GIwYAAKB5QufjnYUctCjFScprNGALzek6/QehDoYIIh10FgS6xtveN7x1F5VX3e2OSqQ+VV77kpfOaOLmx4BTHPch/BcAAKDD9pRsSoZEIjxY5mQLsX/J+wZN27wIdTAoEOmgq0YNAl2zyES5n/gaIgAuy2c92jBh3xqPkM+eCVOhuVimdGUAAIBGbFmxoyY12QGjgGtMeFrQNJ5CHX0XOgkiHXTVqJkZBLomJ0oRdzJp28SXkmf8ZYtX3dzjnHmPnoMIlfcBpzgs25V3AwAAoBlCcsze2YR8qv3kG0lwT1gptMjudRXqLrBzoYsg0kGnUENDjIVDy0MQ6NJNlE/atlJl6z7x5TZ51fmEvOY9exST0ON3hBUDAABAGjtK5nCJDvHZ9LT1oguxeyY8KWjZe+Mq1F0j1EHXQKSDzoBA197JsvzIZPnRhOVI20XlVTdbE5UGnZdO21/eibuAU0guHN4TAACAZubxpdqrH4z9puelHGf53SPPW8OLDlq79jAIddBjEOmgEyDQdWLCvC0/mRiOxj90w4ZTs6oAm2ulsXuP/nTUs+YPyU0nu/czejAAAECjdtRcNz3PzPZNT7GxXHLK+to82AbQ5vdFhDqXXIsIddAZEOmgK8yNvUD3YMIT6oP/pDkx/qEbtoj319dysp2ageel0zZfln+uHA8T77t3Imar2AkAAADNz+mzHZueE8d52yelxXOsiq6k1ICE74qsAc4cDrnu4UY99BBEOmg9WkLbRaDLER0anzR9Qjd8ODd+gmzew2afGDsPRnkeH8rnM3IIlQEAAIB6bSmZ1zPzctPzUYt3uZB5XP424k+R4l8LxBFI9J7IOtFFqJvTF6HtINJBq1GB7tTy6wh07Zs4bUM3QtjzOCbvYVtLv99muEv7n8nzIMcMAABAN+Z23fR8Z1abbIXHaQ48joki0pV2vGykSi5g2Wz/Vv77hKcKCd6TmbEX6mTdgFAHreavHz9+0ArQShDoevc8JdxhrJ+9FtzSe81n0bd2Xr4yyH/mrtEdeQAAABiW/fXkYXf9HWpTqwjybYPNXvTRBtti/0pb5K/+l/z+5VDaoaa2Lso/15Zff9a1I+0PrQORDto6yIqQ89ny6wh06QyKX4ZErPYtz52ZVWjmacM/85NHyEjXDBTJUzfh3QAAABisTTc3jpXtS7vhrwh2pIgf27z4Lvu6gai2rthjUthgV8oeEYvEc1EKsN3SY6PawawhoZMg0kHXB1eZ2I7IrRXc5vtqTOT62dvQ1nP9zCLssMp1Jq6GY0TuJC9bT5/nRJ8R7wUAAMCwbTwRfk5cjokg0tles1dedRE2oiU1ybSPm8g1P4eZIRoLOgwiHbRtUC0MbspdMSYkkfEkVAjSZy7GSN0hsFK5jIpjAAAA0GdbT+y8C8fDvMNdy+uJTXfueFjnPf81CmgSyZ4VsW6MZ13Q85gZhDroKBSOgDYNphJeiUBXT1vv6+T13fjv9slx30OTAGuy16z8XNbcDHskjQUAAICe4yP0eEUa6MbrucehcsxCoyy6aFPPzSpNT6wNZwkT/iIeiRrtAu7rC+mLN5Zfl5BkvBehNeBJB22Z4EQsmVtObgh0YW0thtfMxPVcixKuoJ59Mkme1NQcnwgpAAAAgJ7bfkvjVuVVbO3MxbPIMRpmGx+74kGm65db41dB1+VZsO7xf0ay5rF1SLhRcQ+gUfCkg7ZMcHNjLxoVTFRe7Vx5z30x8UNLZQdqrgaaNxI6q3niPpiV8JcaJmIAAADoOzPH7++pXWflxaVRFTEEukddE3Rp/XKQ+FLyLL6F2tgDZuywpjjVcG2ARsGTDpqe4PZ1gju0PORMwyMhbTuHEM07raZ8dVfl/Y7pJQAAANBjO3DpYU+JF1exybMtQQTE+y5sxHs4GMSCdRDrTRgAiHTAgNn/dm7CkIjmLq79RES0i4T3+5HkvAAAANBje1Bsqc+eh9+blTee2JMSAiu2pdh5o4j25WVpi006sn4RIfGgoVsgJJN1J/QcRDpocrCUgfLY8ut4O/m1cVM7fdGNiMT56mSn+Ci0Ui0AAABAT2zvOrkvbbC8I20oAt1hw7dBTuV61kXvSbEETUBOOmhqkJw5GAk3CHS1TESxOVVhLQqv8tU9Rr5XaSM86QAAAKDPiB313LJ7ejSe1WQbsK0npnmBTvhMjjqvtYQIbrnDOzDX9RRAreBJB01NcLahi7h0+7VxZlau+HsN3kZSN3EN25hE/o14bAIAAECfbcSmN3HX6Uzl0rLd8vLP15bdFp5e6d8B50rHAKHgSQd1D4qFsRfopBIPgol7G0vOhVvTY4FOUDf/rPxcRTztOTuTAAAA0Fc8vIlSUnRIZJpEPp+sc+4Dz3FrW4EX/ngHbNeYTpWOAWKASAe1UQ5u4spuW55dJq6cXQsvRLxqyhVfDL73dSValf6hnm/vIhg6v9oP13YAAADoKy0R6s66UrRLN3Bj5PKT9r4sP3+Xv11yIcta5y9pC+OXyuVA7X5wfwdm2u42yLqKtDhQG4S7Ql2TG27F9bSzGFy+rvhiHIjRJu2eeRgjjYcs6O+fmfCKW4jEAAAA0He7Uew9ER/q3tztVOXMSAU3dtqWjimBXhxanndOj/Z6tiJynlt+nTRMUAuIdFCXAWCbH60zuSla2tZL4y5Q/Qwrfmty153DwsIwkXOM2lAdNWKuFSZiAAAA6LvtKGF8E2MvVITSNYFO1jHfA09jvfmrtve14/k7Ux23pc9Y+uOp5dcvy7ae0GqQEkQ6qGPinxv7HToSoPq3tc+kbmU06Lllp2kvxPBoeVt03pAEAAAA8LSdJC3NzKTLadzJjXgtVPY54BTOdrKnRx3edGHPWTxKT1gfQBsgJx2kxsWF/gyBLohJKqNBJ6JMj1nn3rQwLFTv9ybCqchPBwAAAL1H88OJrXeV4PRiL2YdtfPzwOMLVztZPbVcc9QV9OKw5/TGOmcT16wPICWIdJAMdR22zd/wiR2JoLaWicI1zHXsYjRokQa5TiV+3WjC2yffe9Y8EKkYO0y2m5Dd5BkVnQAAAKDvvCrIFWOzU4SmsxB7sQWE2IBXAcKkq418Sg8O6/tmJcjaiqNzhDpIBSIdJEFdw20nCxF7qEwUxsjVaPJ1idc8bWch+do0HFWuf65ibqrJVq4TWrns0FA5CwAAAAaC5BhWO0/EOvGsc/Xq+inOlZ+jHmzChwgxIfajs7inBdQgbO0wslw7yEb+LRv5kAJEOoiOCjC2uRvuSM4fBddJeRk4ic0C+8e1+Z3z5DShUCcGzjjCqU71vgEAAAAGgYp1EnmRlf/6vvxciu1uVuGr6zzof5P/L/mlJbR11mHvuXV8c/Q9N1BQLafXRlk72LajRDHNaTWIzb9pAoiJuv3a7hrJhF7QalFw3eVbNNQ/NiXfFRFsnmK3Vc6p/TK0apnkp1uQNxEAAACGhto/Q7SBxKvKR6gLbav9mo6BN/p6afOLJ6hNEbpDcTbA6QRigicdRGOtkqvNRCZu8HlPdtjagKvxcNRA/5iZ7R6W16m81TS/CvnpAAAAAMAFX7HtOPC6I49jyJEWb+0g65ZLy6+fakVegCgg0kEUHAU62ZEaIdA1ylHN/UMmOpschSLUjRLdhm2OiW2Qnw4AAABgOHivV0qbNgtYV1EIomG0yq5tAZULUuNALBDpIBYzsxIwbBgRMtg4e3VUJBIjQ8JYHQ2NWYp707wgMSZP8tMBAAAADIOQNUvueZzvhvCSxxV9/SA2v200zpSKrxADRDoIphyMZCI5sfz6mW9VUYjOOHG/qLwrXd39xRtznkiouzWrKmWhMAkDAAAA9J+QdYtzdIhWaPX1olvyuJIgz8RGqKvWMKTGgSAQ6SAI9SiyTch/1YMy7G3FJ4zzNNUkogKWGDWHnqdIVtac/HQAAAAAYGk3zo1/upQTl5BX/e5twO0SqZSmD0jIc2HZDxDqIBhEOvBGhZhry6/fqTgCafCdlCeJ+oUYNIeBpzpIOMnFyk83oesBAAAA9JoQ4czFVpwZv0qyFXMeVRo0VVPusEYghzV4g0gHXqyFMtogXksFrZYU30n53Dep7YZ+UQl0e5FOKZNcdKEuUn66ZzWmAAAAAKC965Y8MJ9wiEg3crBjx8Z/E/mOonxpUaHuzPLrVHwFbxDpwGeic63kmjNpJGcecOwsUr8Q4+ebiSfQVSTZjQrMT3dffjIKoAAAAAC0et0iG8hi812X/+xl86rN+Oh5C2IXjy2vI3al3K9PWhY8t2pAUzfZrh+k4uuIVgNXEOnAB5kEbEIZEejqmzDmxn/n7bicQIJCkVWgu074E099Dasd7eaTn+6yPI5+DQAAANBi3ojwCLEnQ+zQsa03nUZ75I726T2F+Wpdd8n64c6231BsDlxBpAPXyU4GJduKQ2M8jWolKF+Gb9irunJf1/D7TrWScGxs89PJdz6UfXpCVwMAAABo9ZpFRLGZ+TPCQ+xJn1QqU+O/Ib5nHCq96kZwbuyFoEloW2mbICbZUxj7iq+3FJIAFxDpwGUAl8nls+XXL6nk6tS2s8BcGZXx4MvPCcTnvss/FzU21XmEdnptCC3N7vx0VXjrnN4KAAAA0HrERt0U+XNsHHMeq3AWYmtPHO3Tp/Ija6+bHV+9CrFPVZhbapsgJrn1B9uN/gMT5kwBAwORDlwG8Jnl1+/wNnJqW2lX8U68Dkkwql6L9wG3cujiqaZ94rSBJrtOINRty09HeCsAAABAd2xrifw52WX3mpVQ5+I9FuJNd+Bjv5b2Z7HFRhVPrklAO70OBz4wCQq29ZW10GQbjhNFBEEPQaQDmwF8k7v4psmioNWs21Ym1nWh6yIw99ok8JasPdUcKxzF5jq2S/4b+ekIbwUAAADolm2dOdjDTkJdBG86rzWS2qivbW6xUwvfTeQ3BLrXbYJQF389FD0iCPoJIh3YMDP2hSJGeBxZT44ySL8VKnoaUH1KJtv7wFubOhgrcp+fHM4tLvsfjP8u5DopcmdUbuuEtwIAAAB0c92y5/D9PbUpc1s72YQVa8t9DlSb+2xtzZX75v7WNch8Szsd6v8H+2djW/F1Su4/2MVfP378oBVg2yA+MfY5xz4gajhNjruKLYhQ5Cx66uT/NfAWZfLPbK+9FrK7jRt12a/yG36J0JRBRsqG35Kp+zoAAAAAdMe+DrWBz2xyalva8Rvte0mjEvAbj9RGv/U83uXef9nuYNW2sg4+tvjqY/k5wrEFNoFIB9sGGhch5YxCEUkMCAm/zD2EOnkWofninK6945pX6qofy8AJbiMAAAAA6JWNLcLVSehpbJwOymstzSqHmw/vmtgQ9rS9Eers21dChBeW/SJIrIV+Q7grbBpkMmNfKOIGgc66XWX3y2XnyzcvhAhioSGlhw59oEps+1ao7dlrgU6/L+f+FKFZyZ0BAAAAwNolVKCTjV/b6IxJwHUmDbSPXNNnc/w0MF/2YHCs+EohCdgIIh28NYiL2CFCklWhCHZXrNt1U4LWXYgItVTjw2WSiPFcThwn5pF5WXxhq4dl+f9kcrqJcJ/kzgAAAAAYLqPA450iM9S+ffS81mmdm8tqy18EnOJUK+bC7n4hIq9tW1FIAt4EkQ7eQoQT20IROc1lNTnKRDw37gJdxbL8OIVzaq6Kuwi3f2q706OGjfQJ8aj7YONhqSJvFKGOnT4AAACAQRKyJvEtfld7pVePNYjYxqcRTvUZQcl6DSZtTiEJ8IacdPB6IBfl/7Pl19/HTNjf4zatBLpDz1N451xzzI2wi2R5ByPfJ7kzAAAAAIZlby8D7MiPPoUY1H79x9e+L695lLA95N5ERDyNfGrykNs/A1n/2RSSIL82vABPOlgfSGSisBXozhDorCdIGaB9BbrnkEF7LTdCDK5T7aBFDM8VcMkHAAAAGBa+At2db6VUtV99o0EOXVLZeK4/ThOc/lqLC8JupJ1sQqKd8oBD/0Gkg9eDuQ0UirDn1jQk0K0ZECKmfor0e1IKddL/7iOdDpd8AAAAANhF6MbuPODYPOGa7jBhm80I0bRa27gUkjjByQAqEOmgwrpQRITJbBBoDohjz8MrgS6Kt2LEAg2CCHV5omabRTzXNUIdAAAAAGxAvOiWgeeYBxwb1Z5Wzzy5n8PE7SZrxjlCndUazKWQxOeEayzoEIh0UJXkthGTfJOqDrFNZybMxXyUIJxYJoiHSOe6TTQxzyOfb1pn9SwAAAAA6AzBdmegyBfNlla7XNYOhzW1HUKdfR+RdaFtIYlb1i6ASDdwVK23Lck9irDbNIQ2nZgwge5MQz9jTxAuLteNTMzav54jnnKMqAwAAADQe3w2opvOrx1FUFN7fG7soqJiItebISpZrXFsnSWkTW9psWGDSDdg1CXadhC4TCEc9bBNC2Mver5F0opJKoLlJq5QV0S+zVgGE9WnAAAAAIaBj/2YRbD9GxWoGhToKg51PYBQtxvbNdixOn3AQEGkGza2eegkXwMDxe5Jsij/XAec4rIOUckxN8IupP/Ezv22a5LfVVxCJr/3CHQAAAAAg1rXuJJHuG5jlU7V/v5mmhPoKhDq7NZgTw795YIqusMFkW6glC/91Ni5WEvZ6IIW29meMsmHCHQ3dQqhKmCdRTxlTKFuV7+cb7n3qAU3AAAAAKD9lLbfrXGPFBlFEJYaWSdFcA54i0vjH20j9jthmrv7qaxjPll+faaRbzAwEOkGiKry57aTFzm9drbnUeCkJAJd7RO8YxJTG661YEZIW+YWX8s2iIyS5wGBDgAAAGCYTB2//zOnWuCa6rjuH5lIoDtThwGxxX2FuuPQtcAQKNtZ+umdZf9E+BwgiHQDQ9V428HzDMFjZ3uG5oG4jy3QyY6g7a6LJjG9iXj50/LaIe7uNm2R6b3P1u4dgQ4AAABg2Ij44SownfhEg+gaYBZ4vw8e15XfmEKgm6l9HZoW5xShznrN82jxvUN95jAgEOmGh20euhtyeu2cJEWImht/gU4m5lGie1rYVl5VkTCmUCc7iktLr7jXxo5NVdzFq3sXl/Ecj08AAACA4aK2oI+g4ZS2Re3tmQnPBTd3tJXlmucRm+zNPM4R0uIg1Nn1Vdt14Dn56YYFIt2AcMhDJ+LRmBbbOTnPTZhAl0JYmukzriqvugh1dxHvQ67/VSZoG68+Rw/Pp1f3PkWgAwAAAAAN2XzwOPTapqKm2tYLyzXVLqxDGVX0Oo3YVFvzOEcS6gp65Na+unBo4xmFOYbDXz9+/KAVBoCq719CB2x4IdD5Ts7SxllsYWnD5C3XGtt4RUb4Xdt+r1xfxLTlG9eVCVwEZFvB86MmBwYAAAAAeG1bhqSjkRDESfm5XbfV9ZxjE08oeyzPn1na52JHn0S2za3We+rkEeK9d0Z0ltca7i0kTVJOi/UfRLphvPgyuC8tJyoG0t3tKZO+b5LYJCKoxeB+1rBQVyE7mwvtj0f6OXA8x994zgEAAADAFpu2MOG528RufVJ7dS/yLe60zRPZ5T/T7by1cR6wzmB9Gb5Wt33Ol+otCj0GkW4YL7689DaiUiNVRjvWliGTVCqBTnb1PseaIGsQ6kK4K38DORkAAAAAYJdNOyn/XLTw1nZ6RCUU6LzS7UQQ6j6U153TKze2r4v3J23Zc8hJN4zJyUagIw9d+skphUBXGDuBTri2SeKqE3du/PJ5pGZGTwQAAAAAC5tW1kE3Lbst2bQvdtj3mWmRQKdtKfcckr/61jZX9kD7qktV3Vvy0/UbRLoeo9U1bXaPfk4WhBBubUuZ5ENzUIwj35NMlq5u/KeOQt1dix7DPbnoAAAAAMAWFZfaJNSNt4WaRi5MUSH2fIyCddKWvpv4TkXtBtpXZ5ZrL2nLGS3WXxDpespaklHbyYJCEZvbUiakGK7y0cqR6wR3HXAfhcVE8aShpW0xbPD0BAAAAAAnWiTUXW1LPRNY8GITks5oFMMZI0K0jfyugh65FWmfR4vvnWjKI+ghiHT9RSYAm4T8dyTy3IyKndOIpxSBbB7iorw2gYdM1tbPvCWGzSeEZAAAAADwQe3ZTw3egtjf4y32fW7iC3Qp2jFEqLva1gbwq31t829/xjOxnyDS9RD1krIp0y0qfUGLWU1EzxFPKzkCvYS6CDtsDz7FQfSYswaNmim9EQAAAAAC7HqxJz9Gtuttbdlix9rtq0kj0J1q2p7Y66ORYzueIdBZt684JtgKyjPy0/UPRLqeoYlGbQWNEXnorAdKEcdiFlKQPBNOQp1+9zZgAv+ZMDagHWZyGzUbNlQcBgAAAIBYdv2tqbdAmo1Ad534Hi5sUt04tuPS2DsynBG55dy+sp63yU8na8oJLdYvEOn6h62Ic0n4oNdEFFuoW9q4Ka+VYT/wvFZQRae1dpB7iC1Yehk1AAAAAAAe9uxC7fqrxJe6bIFAV3GdQKir2nGbUIdA509h7ETQ8/LZjmiu/vDXjx8/aIWeoK7MNgUOpEpmTot5tXEllsWsuCSDb75JNI1wTTn/0bZKUon7mw+fCHEFAAAAgMS2vayJpgls+5Fubm+67qz8c9rAT44umqnDwTeX9Q049c+vln0uI0quH+BJ168X+MLyBUZp90QrnspEFLOQQlWSPN/w/2cmTKDLYwt02haT8s/78nMf8bSSJ/EDAh0AAAAA1GDbz9W2PzN2VTV3Id55WUsFOmEau9iACnFnb6w/EOgi9E9j5/Ep68lbWqwf4EnXA9TTSgZBm1DIj5qLAcLbPcUE+2J3K/AatU2Q6j4/Mf7huJVRM2EHCAAAAAAasu/FmUHs2hOHw8TmvlU7dtnA+qEVawRdD0wNAl2KfintaeO0QTRSD0Ck68dLe2s5kVD2evuEPHcViMrjZBA8j3w7P4W6CJN47YKsTs7yOY5t1AAAAAAA1GTTihNErp/K86yyb6soknn5WdjY22sF4I5b8hPxdutWf8zMyilnj+fafxDpuv/Cirj0xeKrUQoH9LQNqzwKO/NHbDi+MPGTvko1n5OA4xtN0qoTSWXYZGuGTWXULNSwmdMnAQAAAKDHa40UOa1lbSfrwFsTlhaHPGbd6Ue2a84HDeGGjoJI1/0Bf2nsqrm+R1Hf2IavQ4UvNd9aikGzDqiiBAAAAADQjrXG3MQX6H46XzimPdp6Lp5WJ/qTbQSd83oW2gOFI7qNvKQ2At0nBLqNzN6Y1C5kANRJzwoVxSRh6nPDv+cqpUAnbVJ+lpT5BgAAAADYajeLN9PcJBLodA0if0cBaxC5t7nLugcapbB81hexC4RAfSDSdXfQl9xyNjkN7kkeubENJ2bzToT894XL4KbiWG6aE+puUuYcXNsJFFHzi3oPAgAAAADAS7s5hUB3Y97welNnjJA1CEJdR1gTZW245Zl2E0S6bg76mVlV0tyFDNQFLfZmG8pEdrHjayJGfXMRoyJMkt6TdnntImF7veWqf41QBwAAAADwwm6uBLq9iKf9aetvCkuNJNTh2NEBNH/6lcVXDyw1A2gZiHTdZGY56BdUzHxz4qyqK9kiYtTMdidibZJ8qOknPaQU6JRNSWmvtcItAAAAAMDQ1xmyBpibBAKd5RokZE1wKmsenmInmFiuNc+1T0KHQKTr3sAvL6RNmOudTTnwgWKby+/FpGVW4qgVNQp1D3qdlH1utqPPnTOhAwAAAMDA12mFLANMXIHu0mUzXtd/ZwHXQ6jrAOpRadsvZoS9dgtEum4N/OI6fWHxVcJcN7eheH0dexwqbTrxGDxzk06oS16NSSfpUyZ0AAAAAICNNrOsva4jn/bMp0LnWkE7X041/zm0GHUKubT4qoS9sk7rEIh03cL25RpRRvvNyVOSbJ57Hj72qZC7JtTdJPhJk8QCnRgFpw6HyIS+YKcGAAAAAAa0xihMGoFu5nuwHvsp4PqfyT3dflTEtXEIOdG1MHQARLruDP7yAtpUB7rSZJLwsv0y47+DcBM4ST6pm3psoS5ZhVU974XHoT+rQ9HjAAAAAGAAawyJ0okp0En0TpBAt7YGmQasP+Q+FjzhTjAydgVDCHvtCIh03Rj8bcNcHw0VXN5qv6pQhE9+CNmZiOLunUioi15hNcJuILkQAQAAAGAIzIx/RdXXyHnyGAJd4PqjSqmDSNcBtFCkjQawZwh77QSIdN0Z/G0oCHN9E9lFOvQ4TibKqKHDOlGeRf591+ppGYxW/wkR6G58cmcAAAAAAHSNtWJxoVQC3SLBPcr6w1aoQ6DrZj+U9e69xVcJe+0AiHQthzDX4PaTSenU8/BCdyZiD6IzE1+ouwgt3KAemyFecDcu1acAAAAAALqOClqhtv08sTAmkUG7cpclL0oHSZF1GGGvPQCRrsU4hLk+lIMpFXjebr+p5+FXWsI81WQ+08n8OeJpvSusalvNjX/J+HsEOgAAAAAYIhE24U9CN9x33F9VzG6TUCdeWAh03e6DS0PYay/468ePH7RCS5FKmcbOi+49Lsl/tJ3sDkibHHgcLqLnUU33GSqObZpkrcN0ta2WAffArhsAAAAAsAYJz+18FjMn3Qa7f/5qjdmpaBhtY3FQmWmYJ7xsH3m+xxZf/ZjSKQX8wZOuvS/XxNgJdJcIdG8ik5uPQPczH0RdN7mWxyKmR50MynMbN+a1iRqBDgAAAAAgzLaXNchVwCmiF4V7dX9Pr9YenRDoyjbJpJJu+ZH7v9Z18md1eICXFIaw106DJ107ByEZbL5ZfLU2j6+OtZ/srHz2PbyJ3H76zGfGr8DFxv5htghoG3bSXJBqwkcIdAAAAAAAL+xssetPA06R2qNO1h5F21MmqWApn2PWI0nWw1ekzWofiHTtfKnmxs5FlTDXtyecb56HXzZZmTSCaPYWGytFOfQzp/MCAAAAALAuCRbqPgyxMKB4zZmVMCfikU20z13ZTlQs9V/rfaAAZbsg3LV9L9PY8mUizPXPtqtELl8ajcm3SOjqg0xs89eu4Go0INABAAAAAKSx7Yvyz13I2mRI4Zzlbx2VH1mPfTer4om26XhOdA0NLykMYa+dBJGuXQNTZuwqsohbL0ky35jITFgBhm8pc0BYTuaVUHcT8bQvhLoIu3oIdAAAAAAAu5G1he8G/Jub7X1b/0ou9vKzLP/1S/k58TwV+en+XFcuLbWFA8vvQU0Q7tquQWpucEn1bTsZWC4inU4EsnHTuQ0iiGlvcW/8PeiEpPkxAAAAAAB6tk4JTWnTuyiWsk1ysxIwY651pJ0y8tP90dZzg8bQKfCka8/LM7J8ea54ed5su4uIp5TJovFdK3WRv4l8WgQ6AAAAAID6bPrQlDbiUdf5kES5fwlLVa+5rya+M4K00y097g9kTWkT9kqkXktApGvJgGVWlT13IWGuE1rsRdtllm3niux0zVUAbHJSl0H1rAVN/QmBDgAAAADAy6YXoU7WFc+ep6jWJp0T6sRrTiOE/jGriqMHCS93rBFW8LvvLS01hEParh0Q7tqOgUsUf5v4e1xQ/2y7hYlbDfUtGi9Nrbnyrhu6/I2KhQAAAAAA4G/TS6SOrOd882iLN17e9pBOFRNFlBzXsFZj3Wz3TKQ9bKKq3qmwBw2BJ13zL0tu7AS6GwaaP9puVtOgfy5iYJM7V+rFJh51zzVfGoEOAAAAACCOTS8OBrkJ86hrbUiniJC6RlualYPBYUO3ckvF0j+wdTqZ0VTNgkjX7CBmG+b67PBSDaXtChM/j8GuCXGpompTk/oscFJ35Q6BDgAAAAAgqk1fCXW+HKsQ1qq1mUY4fdM12l7Dt0R+urf73aVl/2IN2CCIdM0iwptNTH5BlZoXk4C4iTeR2FIG+69NxupH2H2zRVzpGZwBAAAAANLY9CF5p0+bFuokN3j5mZYfWac26TW3CfLT/dnvJsaugMkUT8TmICddc4OaCE3fLL56X75MOS32q91CS5jH4s40KJ5q/5klaodO5LoAAAAAAOj42qYwYXmna8+drfcsn+OuNDNpo148v9ysquvugrRHDYEnXXPYeII9G7yZXjMz7dilkTyCCxXLamfNo+4h8qmlgjACHQAAAABAepte1jYhHnXndYQmqtfcZM1rrk6B7j5wbbOgp73oc/Pyz5XFV0+bTPU0ZBDpGqDs7GPLgW1CZZU/2u3E8/CHBLckocrf9L6aGGBlkswj/jYRhUcIdAAAAAAAtdn0s/LPTcAprlMJdeV5R+VHcrt9Lz8Xpt5ccxK59MGsilCwtonLxNilT5rRVPWDSFczGq45sfjqQzmgTGmxX+0mHmufPQ+/LNtSjr9KdHufJSdEE3H7a0LdTeCpZJDO1UMPAAAAAADqs+kLEy7UjSKtuyqvuWX5r1+Mv5OEL9IO78o2Gek6x7dY4Ji1zdY1ZGHx1QPy+tUPOelqRhN82gw07xlUfrWZiF/SFgceh7/I6aeTlzyDFLtAP4stNPXcHPoW/Q0AAAAAoLtrxbfWIUEpazS0sQhYT4QgDgPioDKrIskC8/WRT83umc+NXYTfOyL86gNPunpfgtxy0LtCMHmBuFj7CHSSg+DFjlLZrnKuI5Mm/FVy5c2bKlkdsAN3Rn8DAAAAAGgWteddc7B5C3TiDCGpe9Rr7qupX6CT9dpl+cmk8uiaQCfrNV+B7gGBzhppJ8JeWwYiXb3YhK/KQDWhqX5NHNIWvolJ38xBoIN/bsJDRN9CPPTE3byRUGWdkFySz55pHgwAAAAAAGgecTKwdSiQ9YyzQCfOI+q1949ZpRQ6qPk3Puo6pBLnntbuTQS6ued5n3WdB3ZrR1kX26xbj2OFU8NuCHetCRWbLiy++lG9vWDVbuLh5VPN9ZNNTj/1epPvpQp/HTXhGmzpHv6JvIcAAAAAAK1bA0m6n/mOdZBTSKeeU4SWsef6KgbiJTjb5CQQmObo5ym0einEX3OLsHpEIY704ElXT6fPdDDcOWgh0L3Es+DDna34pBNEbtKFvy6aKF29Vs79ecukjkAHAAAAANC+NdDTjjWKtUAnnmnqNbc0q038JgQ6EedEQMt3CHRz4y/QfUKg88ZGqziw/B4EgkhXDzaeWiKmFDTVm5OUDAbbBKd1HlzbUfOxySR4l+D25bl/baIqzpoA+ew7qQMAAAAAQCNroKoC52tb/tLGlpfIGvWQ+mZWueb2GvgZVaXW3EJAkzWzr4CIA0JYX5sbu1RQF+qABAkh3DUx6kX11eKrMthOaLGtbSledbMtg/fPHAQhRRAkcapZ5WVIgewgjep2EV7L6yAT852WMwcAAAAAgG6sgSpbfms+6bUIrsI0I8pVazK5x6lt2p+AqrZCcGVb+OXJuLToNxL9l9Ni6UCkS9/ZpaPvctl9lKSZtJb14DHdMIhHKYLwaiJMMWnldVdT1d80kQmbCQwAAAAAoFNrILHlj7aEihZmJcwdN3ibz7pOm7qsNyxzabdqbdXjfmb7LMijnxBEurSdfGLsikWQ4DJ8AIkawqli4G3CiY6iDQAAAAAA4LteycxKmBPPub0Gb0UKCsi699ajyqxE+HwJuDZiUfx+NbdYA1NEIiGIdOk6t627KOGH/m0sO0oyKD9pgYkU15AJ5yLRT5AceHi2AQAAAACA7fokNyth7qThW5Ew06lvJFOE6CXSRaVbY3+j/ZuDwhHpsC0WQYUUT9StWQaRPOE1ZOD5aOyKVrgiE+tcB0IAAAAAAIBd7JvmBborcZIIEOgyEybQ3SMQJV1jX1l8lSISiUCkS4DubtgkvrROpgkbB5Gn1J5o6kItQtpDgtNLEYy5hu8CAAAAAADsWptcNXwbha+jwVpaIV+BTkItiURLy8TYOanMaKr4INKl69Q7BxfU/05NhksNqU0xIcoEda1VjQAAAAAAALatTSQa66HBW5D1y0wFN1dEoDv0vK4IRyPSBSXvX9K+NhF/x+qgBBFBpIuMekTZFBsoaK3OTohnJk3462nZfxa4DQMAAAAAwA5GidYktojQ5lQIT50SQgrzjankWtu6V56VjRA8o7XigkgXEd1JsBmo7qjm2vkBKzfpwl8XWukIAAAAAADgrTXJ0jTv+CFOBlY51vV7pwHXuvLNgQfe2DzbA9s+AHYg0sXvxHuROju0e1KUHZy8/NwkOL30oS/lYDelpQEAAAAAYMOaJFZ+useAdc3nXfnpNNrsc8D9PWhEE9Tbv+aW/WLiGfoMb4BIFwkNUbyw+OolxSJ6M2hJ0QqZcD4lusR52a/mDHgAAAAAALBhTRKSn+6+/JyV58h0XXPneZ7bTWsWFfCuA36ihPTmPOnGGJvdYdXiZIKDSSQQ6eJh0ykf6by9nBjlmb7X5xsbydmwJCEnAAAAAABswDU/nYhxH8p1TP4qhLTwXNMcmDdyk6lANw/8bTmFIhpd60rb22gYp74Vf+Elf/348YNWCEQFlK8WXz0jjv6X1+FCB2xx0b7tw8C7Vk78ONElPqkgCAAAAAAAsL4WEaHuy46vSejiZFtklwot30LXK7o2kvXeYcDPYv3Tnv4lfeZgx9fuRfiltcJApIvTYRcWgw8d9nd7iZB18uo/3+kgftv1cODy902MXeizD9JOBbtJAAAAAADwah0igtb5q/8sHnby32e26ywtBOCbQ04ijJYmXKC70RBcaEffyo2dY9IHimSGgUgX3lll4Lims1q3l80Oj+RUmJkOC3Y6iIkYuZfg9OKCPqL8OAAAAAAAvFqHVA4kj7qmmvps8G9wrLBdq8i6N6SSq6wHCXNtX9+S57orauxRchzSWv4g0oV1UnHhXZrdQgy7AG7t9XqArkJiFx37vZne+2GC08uO2JjwaQAAAAAAeLUGyUPXCbp2k/XXQc0/QdY5RxRbbG3f+m7xVcKUA0CkC+ukE7M7rJFB5nd7yUQRsqMiuzIies26JNhtcDuPgZQiJzknAAAAAACkWMeE5Kfz5WO5xrml9Tu9thUNJMMT0g+qu/p3zsysyhHvYopA9yv88zTwNAc6IHyTxJUyQHSh6qmWRf9o3Cou7ULOVfAmAgCA8P/+93/2aQUAAIi8jhHHiLMaL3mJQNd6JhbrWomcG9NUfiDShXXOXWGb4vk1eDdPdZWeRT5tJdh9Lc//JF56mu+urROcTDa5WYXvxqAgJx0AAKwxRagDAIAE6xhZx93UcKm78loTWrz1/UG842w0jgt1bAJHEOk8ULdfG6+wCS6eq3YwaXMZ7Onz+NJmwU5FtTzCJHfFDhMAALxipB8AAIDYiFfUQ8Lzi3NLQTN3AxVTHy11AHCEnHQeWFY1IV+YaSyPwTp35nfhiacWtYtMQtceh9KvAADgBf/vf/+nqpx+96//838R6gAAINW6TtbBe5FPLaGTOVFCnesPle2x86vls53TYvbgSefeGXPz/9l739g40vzO72GPdj1az5rSLH1zt/YeW7CdPayNkHL2DBsO0tUKBCW4w5GCgQCOEbD56pw3EQUkr9V6rQBD3Ys7O3GgFg6XVz4MGQhIhMGKzbvE4z3vesj17e5x17aaY++fWXNmSM1Kmj9Sd+rHflpqtrq7nvr/VD2fD1Db2mF1V9Wvnqp6ft/6/QkW6ARysPu0ct6+tA0XMewDaSMu4phOv80VHTZ+Xpm9gRh+gOF8AQDAKINnwxIprwAAkJL/spOSj7uGQFfI8SCBMNsGqzaxVjgQ6cJjkn+9jVr8rPvtgkW7NCzY7fjLWp558vphJG+kNk2dMJqQAADAGLzhZwXmAACAlPyXlkq2Pt1N/ZtQTJoG69SK0OzRJhDpQqBTFE1Epwa2Mu5+mxdyHl/3l/t5CnaSgusv4lBdD1j1OsIvAACM0r07Jy97huu+ItIBAECaiI+3n8DvSBkfss8KjPZPTUTbFtYyB5EuHE2DdW4T7fTsQpwtyL6OCnbruuZCljc4GVt1Nb6d9TadjgAAYAKNkf+/hEkAACBF5GVQ3KaAx3XoMGUpMPFT53XAExiASGeIRFoZ3IzkZrOGrY5tVSvo7otgd8Vf3vaPo5OlYKffRFTVydz+fUVUBAAATHeWTqAbSQAAACTt54lfdCuBn/JsauoHsXzYjv9x02DVJtYyA5HO7GZ0xnBQrXOzOSaOUCn12VZVui2+TRFRdlSwS9Xx0emv3tCNbpkxBQAA4xiT6joAkQ4AAJL2iQfdXeNylUYRpaOpxmeEnfCtdc16CACRzgwRnYJSN2VQrmOqZ87BUcTvSpqOvFmRh8A51Rer9i04poFg94Z/czn0l1aagp2uz3COBxgAAEyhMeU5DAAAkAg6aGVDxS9nJKWh8JlLhg4qMTmva3oswRRmer0eVgi+IXUMbkirdKY5YbfBm5aoN3KJqGsMosi0ICbLimWHeqQfWLK0iXoDAICs6N6dk/nJpFIclyuXDjawEgAAJOAPi1+3EPOnJFOKNNdyj5MdFVwi7Dr11qeDSBc82EQRvhKw2r4/0KpY6wXbiaj2RpI3cn3xy++uJfCgSAMRF49FOx5AAACQFt27czLvuD9llduVSwcNLAUAADF9upaKHyghgQ2LNFgs/ViRecctg7FQxVeeDCLd9EEWNAEeQBRdvAt1GhPfuOjz09DLvIWHPxDs2jyQAAAgSbp35+Rl1evTJsGVSweklAAAQBxfziRgxYTLvj9EdLcbY6Zj4JtL2nMDa40HkW76AGup4LcG27rQP0y2o1yAqQh1Q9uQcyDbkSi7WQvNIMcg42kDwQ4AAOLSvTsnKSVBEeXnK5cOqG0KAAB5+HADSG90a9yYZtOdwy8eDyLd5MFVVWZRdHV/cLWxWKA9476FMaphMJQOKw+VmqXmQLADAIDIGKS6DrhZuXSwhsUAACCk7+b5H1sJ/NSm7+/QzMi98dM28MWJppsA3V0n0zRYZxuBzgzdrfR2jJ+QaIF2UDcYEfEk9VhHN0p32OvKju6wo8ciKUr3JRxYC5gAAACmLCe8HgAAwDG6AWASqakSmNDAok7SNFhnRQdGwQiIdJNvTCsJDT7QaKU8daFuaHsdCa3WTT3qettHlplF8vUpmgkAAGEwdXrmu3fnFjEXAAAY+sHiZ4lAF7d8kPhcDZoDOOv3t/2PbYNVm1jrRRDpxmMS2UQUXbQLVhyL3Rg/EUqoG75R6G1X/WXV8KaRBfuG4w0AAEBSXc+ocN3NG1gNAAAyZs33vaiJ6jZNg3WIphsDIt0IOv/epJYZk97oiI0zF+qECemwecIbJgAACMNyyusDAICjaL8k7nPjpvhbWNP5sdRWZoExjJUREOlepGmwzm0K/se++XsqJ6FuaD/kHOYpkN0mGhMAAEIS1nki5RUAAML4SBIBdzXi17d1LXKnER/VX5r+4rotGgbr1HSgFGgQ6U5eTDI4TKLomlgr9s1/INTFqREXS6jTobV5nUs5bjruAQCAMTrVdSnCV5n8AgBAGF9NyvFsRvBvnI7eHohz/j87/nJNfM04QSUlGEdiB5Oa9E2uuucg0oUfHETRJXfR5i3UycNnNqfDJ80VAADCEtX5aWA6AACI8OzYD7G+57J/4/ujYi+JQrw25GPKZ9PxcWRy/ETTDYFI9/yikkFBFF3G6HBqsX2mQp2/rjg6Szkd9qZ/3BucfQAACElUkW6he3euivkAACCEnxamPt2qq40iRJzzl47/z1v+Mj9mlSsuN0cgmi48iHThBgVRdOlcuDsqfmi0sVCn12lF2Ia8STqr4nWHJc0VAABCEyPVdQANJAAAIIqfFlSf7raLjSIkyMdf2mqyODdM0/GhZHL8RNNpEOkUUXSWPADkBrca82dMhTo5j1HSXBsTusOGCQNvIvQCAEAE4k5cG5gQAAAi+GnT6tNJI0CnAhB8X3NRi3NbhhqCsCLfc3gMif9LNJ0hiHTmg4EouvQv3pZKWajTguyVCL97c7QTq4wHfxHRrer/3/P6xjMtbXdbP+QAAADCEjvinJRXAACISEO9GJhw3CjClTp0krLqL+Kvvq3MxblhXPcDmwbrEE2nEOmIorMMLdRdj+uIqDFCXcw012bAfu/4i0TayTZEaBz3tok0VwAAiEoS6aoeZgQAgAg+2rj6dMsuBLHojq0isN33l5UYP+W0AEU0nTlE0hFFZ+MF3DS8gKcxTqgTkWw+wm+thXlDpNNh5SEm6bBSw0HCwK+7WkwVAADi0b07J8+UJLqRU5cOAACi+mjD9emuj2YZlQ0tzolfKjrAlYR+tun4MDI5fuej6WZ6vZ6zB69P/pbBqucQ6XI5Py0V722FIAKZnOeq6ocmh2VTC24AAAC50L07l8TzcMDZyqWDQ6wKAAARfbRG2RtFyDGqfnrqbAo/v+pio42QPv62rgHvJK6LdG0VnOoqUXQNbsdWn6MgdvXnQsjvSZ2Fqit1FgAAYDLdu3NS8HlDRYvIBqVuVi4dUPYBAABs9j3F72+m/Kzf1zXNXbWxHPt9g1XPu5qJVnF4cHiKWnRFQKLYdmP+xoIKL9Adn3sEOgAAOJ4wXTqQiaIIdZtYIxTywusyAh0AANisDfiLPOdvqfRfxs1rMdBJQtSmc3be4HJNOpMLg1p0+V/EIpJ5Kr5QFxY6sQIAwMlJ06WDQ3+Rl0fSIOgIiwQ/S/2l6ttsA1MAAIBtaHGurfolsBYy3HRztMmhYzQN1lnRUXfuzTcdvRjlZK8kNHggZYaEuqwcItlOA8sDAMDYydOlg5bK5wVSkbjq28mj/h0AANioB+jaaCLO1XLYBYnWczZSjE6vAfNMR8eFyckmis6uCzlLoW6dcw8ARaR7d+6MLFgigwnUpYMdf5H015tY4wQiXJ73bUM0eobXPVYAAAhGd2xtqX5NtJWcd2eNaLpAnIymqzh4YVYVUXSFRBeO9FS6Qt2uvx3OPQAUFblH0pE6y4lUv9ZaXZH+Kohg6en6fZAdCKIAANM1ABHnxMfrqPzFuQHSOZZoumCc881djKQzOclE0dl7Me+k7IA2sDIAFJhlhUiX/WTq0kHb/6gqd5tKPGsOQXprtugouhX/k+seAGAMQ+LcNdUXxmzimqt11zRNg3Wci6arOHaByskliq7gbL25Kc7Qago/fdPVNs8AUBrEUV/CDDlMqJ43lbiq3Iqqk+YQizSHyA1v6NoHAIDnvn/DXzoqe3Eu7Au7psN+vZwfk2i6hlNzSsfGgcnJJYquGBd0SyUr1O0rxFkAKDA6kmZ26N+Qx8SqX4vNU240lbium0Mwb8qP5ZFPAACn0R1b5bl0S/UbNGSFiE3nfD9V7sfbIb634ng0XctgHafq91UculjlpK4lNEjAArRQdzWhn5PxUcWqAFACZx2HPe/JVb8mm6fK21RCXmxJc4gmZ9ua634WcR4AXEaLc23V79iapTgngtx53zdtDAX7hH0+thz26dsqWNR0qn7fTK/Xc+WilQvlWtAF5g8Sj1vcCbsta0dDOtiJkLWg+mk84oAc6s+2vrjy2ke5qSVRAFSOyyPlFQCKiO+gH6rn6RxHlUsHdHy047ws68n3bEkOSSIFqD1nz9h6Y+g/3dSNTAAAXPJXq6rfQCfrch8iLDUn+cH+fm2E3Kd6nj51zudQ9IYtA1+96tuo9PMPl0S6Q4MJsrMXxoitBlGHayGciiPthKznkS6MUAcAOOsnnHXhMnXCrDk/8lyVc1Er8GHI87HBmLJqXI3Offb981PFMgDgiM8q97umyr5b63GZJJ3VFbR/90P8rtMBQzoKMmietBpk9zJQceSEN1Sw2LSNQPcscq6jwhfYlHWvyI1ILjCthmeGhBerZLrqyXHI/i/y6AOAAjHunkvqmy2TrX5TCTlHVwt6CDSHsJPRa3y+e3eO+QsAlN1fPaOz5CSoIkuBTsQ5EYmqJkJRiKYIA2raF3eVdYN1mk7MGx054SYns6UcR0ejSSRG3JQcUcC3JMQ34yKYDZVMoW6EOgAourM+6b9BnpOuflOJ83qiXxRoDmEh3btz3oT5WgPrAEBJfdWBOCfPoyw7tkok+XV/WYwQxdUMuf66q+fXt+2GwfxoXgdglXu+6MDFLCcxqHDkvgthkwF2kuNP+k2E5ODv+L+9ltGFLSnNMmlFqAMAl5z1xQnPuVntyINNE69+Uwk5Z7ct31WZKNdpDmEtyyH/OwBA0X16eX5mKc4JIs5J5FwzSi20CNF0845H05nMOUpfe9WFSLpGQoOhzDe9lkovVFhuoq/rqLrUi5gPCXX7Ce07Qh0AFPk5h8Nu4+Srn/4q5+2y6r+htw0pHyHprW3OlrVMurZJeQWAMvmpy/7S8f95S2XbsVWEtXNRxbkRwkbHOdsASAdOBfnxC1mX1sp8nljyi1pOXlDxQaej6HTIcBa5/BJV185QqFtOyPFBqAOAojrrQX+DvCdh/Rpv8nzZtmSX5Lm56u/XMt1b7WVK9CzXPQCUxo/XjQTeUNmKcyIQiTjXSKoZYoSGhLWMS0bZhvO16coeSWeiQrdcvvmpfshwViyo7IQ6uRl6CqEOANx21omqsX0idumgo5tKXM95V6RUhETPtTgr1tMI+DsiHQAU1T+tanFuS+XTET0tPzXsyziX7+MtAx++1EJmpcwXuOpHb01DTv664xdA1ohQl0l3uCGhLgkQ6gDARkwmcQ3MVIAJWb/2W54RdQ2aQ5Tmul/o3p2rYiYAKJLvrksw3Vf5iHPDPl/TApN4ro4FnRXndDRdmSPpTE5aK4Ec86LeCMU+8zltvpZhMwkR6lYTvGlvKACA4jjrputAznTvzp3J2TFpcBYKMU6Come57gGgSD7poGOriHMrluzWSgpRWmEj9DzHh0bL8DydKePBV8p6sRtOTpyMotP2ybsgZTOri0rXHExKqHM58hIA7HLWZQK5YLAqKa/FYNnx7UOyjlsDUwGAzf6oFuc6KtvyS8a+asK+90LIr82WVYAy9N9lXJh0xS1lk42yRtLJyQpqzXw7qWKQJbVP2sxmeVFpoe5qzJ/Z9n8HkQ4AbCGMqOJhrlKdzzSYJ0WyEDQM1yPlFQCspH5xSe5j4odfy9AnlTJX15V5vfKVBDuIRvV5XX/B2kzRtlZTVpHOZAJDFF1xJpqJoAW220XZXwCABO9J3L8sRqe6LlmwK0TT2T1OqipcNAbnEwBs8kOl7lzH/+ctlW3AiPh/i74v2AypATQTOOZFVVIhKQPfXcZKUK3eWS36lopKCS9+OUlBtTq2I7RCLgs2RNENmM+6K4u001bRhLrrDkdeAkDxnXWiauzGFjGlwako1TjxMBkA2EIOvtSmv5wT/29o2yLSmUbTxaqjroNjWhb53kWkmdA6haKMkXQmFxJRdOHZV30le7AcJbRbi1P21xtaEnMuIwh1u/rNCwBAUZ31qN8Be89nGiDm2k0j5PpLOkoTAKCo97EoiK9a9/235VFhMETn0AGv62i4sH63fEe2vcApj+W3t1Vfh5jGfIKpyVZwqkwHo09O0IWw759sVzt0Romi25Xv6Qtk3M1HfjNOJx75jY2Rcyi/uTRme4Obrqy/EfNtzJre9oLhugAANhFlMtJQNL+xDotSXQcsM06sHCfViM6enM8WFgQAGxCf0vfpxJ9Lo5v5RL91ZB+ahtl3A2Sfl4N+V/ur8kxv+suVJGzFiDlG7HnLwF8vjb3KFknXMDzJzhExik6aayxOukFIyrCOSjun4tV6G3T4kUnkVoCzIjf01/3lvr/+joQgR+l8o9+iePpmPo2b3CABwDJnPaqoQ5SUndgW4djglFiJV5LxBQCQtD8ukVar0/zWmPsgQS5b0o12kt+p6+3JC66OSkCgM/BRnUE3gAzK4lvKuoxWmsz0er1SHIg+KfcDVpOTW9UCjVPoFtdh2lvf1gJcmG3IBHJDhYvWky47ckOTG2qccGARCdfD1hrUN9pJ25Yb/qKL4wUA7KV7d07uzbcifn21cumghRWtOp9yPlYs261z/jjpcHasGicyv4oacXnWP5/MZQDAJt80zj1t2Ldv6uaAUfZBnnPzEbYpvuPA5xQNwjQ7KwwSKEI21/Nz1VTBWkZpbFamSLqGwTotRwW6sFF0+ypCiqd+cyE3qTDKv9zgNhK4sYmD87Z/rO0wOel6PDTUeHW+gUAHABaynNN3wb7z6dI+OUsCKdGcTwCwjThiivhtEuhRjSrQaZoRvjOr78fX9LKi0qk7R9mJk7QM1mlEybCzkYpjF7qrgz1sLbrI4pSuE9dQ5o0lZN+SrEkgv7WlU2EbhvssQqE3ss+bpLkCQAmddQrJ23U+l1VyXd/EYUkqPQZRxy7ing8PEwKATWifMUq5JPmOiHPNuMEUhmmUebCZQyfcMoyX2bLMX0oh0mkxZpbBPtY2YaPotuOKU1r0ahquXkvp0OWNxi0JYzYR60aEOlkaCgCgfM56Ur8B9pxPEebOVy4dNP1FotlvJvCbNcTcUo0TrnkAsJGmMhfJRKA5J+WYEs50srGhJGmu41k3HFOFpyyRdETRTbdNmLf0iQxsHXpsw5sJqTMwEOua00JgtVAn9iLNFQBsxbPA4YfkiHsuxGnxKpcOntVj9f8tz7HLCTyDGSf2ELdu06yO2gQAsAYdQBPko0sn2LoW5zop7EbHMrNcJYpuqq++HeT7hyl9ZSuFF+n8k2BSqHHfxdTFPKLoRrDJ5iLWSd2AD6SLrLTRHmMvuaClY+2GAgCwkyQcbVJeLSBmqqsIcJcrlw4a4xoC+P9NnmNVg8ls2mMNkhknttw7AACSZlJgx0Cc8xzy42/HrLHnAi2DdQofiViGSDqTk9B0dBDnEkU3xI6ldpECn2/ULy71dO26tu7us6X6jS8AAGx11pOqX4bDnj9Rz4Gkty5qIW7yBO/SwaG/eKpfqy4KiLnFHidc8wBgPTp7aViYkgaGqxmKc7b4fiLQNRgRgeOlpcfI1PmL79tXi3ycM71er7A7ryPFPghYTZT5qmvpi9o2nRAOnUTReQnvQ1MFt0q2CYm4rCoAgAlo0UImjQtYIxIiMHnjor8cHEuHKrzoelOns4bdljghIurNh/zqqr+9FudqztP2m034p/dVcKrVYgrbzZrrUjOR2x8ATPEbJbhjXYswWW1T/L77Fhz+Tf+4qUOXrMZwXZqLFPUYTxX8HDUM1mk5Wl8s7yi6wcSySDCBBICpaHFp0XfaTSYIgKM+Fi2ahXlGywvHZd9+7YjjdkdvU5yfMPXNlpVZaknZr/v2kP2SbHg1r8ILp0Ui1rgFAHfw/fU8/EbT1NIjlc7LkuNmhZRaCk3LYA6+VmTfvujprjSMGEOEWnRCM4Uii0US6fazfHMDAIV32uXBX1fBIffQt1Edge4EjRDrSl2ealyhQ6e/iuh2VZk3lSDl9bn9OjHTh11jM4lxCwCQkr8sfp/pSysR0XYT3gVp/FRFoAuPbqxxO2C1Wf8cN4p6jJUCX1gy0Qx6+7jtaHeUsFF0grwZ3tL12bwEzs+iKtbbYZxHAAjrtIvzuaidUZjsqC/iqL+AaX2wqyIMJZke7P+WvLz0Qjgc1DI7aT+ZL5xXCPRB43aZtHYAsFRHaKl+jXJTFnWk3+0ENj/crZZ7ZHRaBus0CjvXKPCJMTE6UXThSUqsC7sP8lZf3k6f929YM7KofpTKVZX8m4tRiKIDgKgO+yA6aVWZRye5wBGO+nh02mTQSywRgM5rQS2NcSu1f+QZf9NgdY+zNtZ+CPQvspvmuAUAiOkne7r23UrIrx7XIdaNHaJkUcic6Lb2c13qVpsa2oZB56GmA4cKRyEbRxgWeXSyCUAKzRpE7W+GuZlEKMJ5XEh82tsEfYGtRbipmrCKSAcAcenenZN734aiqYTc0xtayIAXx4kIGFemrLKp7XeY0f4M6s5NisA/8veFlNfJ9hOnbV0Vv7lDXETwbSLKA4Cl2kEzph95bjhDT2f1yeKp8S/eZC4k8yDxoTeImkvlvMrz91bAaoXsmltUkU4uslJ39Ihol7AdXcNgLNaFDCEOFOhSuMkOQ0dXAEjaaTd5RpXWUY/SfdSx8dGZMKGXN+1reXRT1QKzbHdSU4TL/n5RN2e6/VwV6I8LnzM+AMBS33hNRSsF9cLPTfODtY8qyw6CXKbntxNwbuUZVS3aOSlqumvDYB0XQ+2TuAFNwigNVt+gTAW0465fYS4aeYOh1fCzqp8eGze9rMktDgASfbA+byrhUvqrHGsdgW46U1Jdj19Y5SHQ6TEb1BSBunTB9pNze9OxQx80NUGgAwCr0FFWEsl2LSH/uGPgo7YR6LJD2zro+TNbxDlMpYAXnEnDiNuuXSAJ1KIzJUisa4b4rfWojT3k/OpIyarq162LUsCZWnQAkJbT3tb3JxdqVtHF0ZxxE0WJPly0IT14StdiRDoz+60pdwT660k3NQEASMAnlrpzMh+5pZJrYnhkezNK0UiSaP5YQEwCswr3ArmIkXQNg3VaDg5QsUuW9VBeEOsiRNHFjnbUYt26TlldVeHEuiaPMgBI0WEfNJW4WmKnneYQ4VgeeQ5eti36cELX4llduw7M7FdV5RXoB01NmEMBgDWIH6pLLm2pyaUborJh6TGf8Zc1f+n4//cN5WAm4dabm/KCM6jJ5ELRGkhUinbx+R9LQZMHRzumyE0pifTPsDwT61Q4cXQ96WhHiYrTYp28xd42GCctBQCQvtMukyZPpd+pOkvo4hgSXbdsULPM6jTBEYF5ACJdPPuVAelOuEhTGACwTCNoqn5q60pKm2hZdryLWpD8wF9eV88jBheK2s00JqWLpitaJF0joZNUOkbSP/MS60zfWhyleZ50PQBxiM/rCeU4WzR5pAFAhk77TolqVskxeDjqoRmIXIVJE9QirDxLdxUiXVz7FZlB1GeDqFkAsAWd4tlRydWdGzvnsSUASOrs+YvMvd5WkwVJF2sDb6hg7WNZlwcrBIXq7qovwqDc8rMUbEy8m03SZN55V79V8Pzl+OJ0rfMvANhD9+6cpycUswXbdbo4xjvvYrf1Itbu8/ddnp0iOLWoPRjZfjLvuFLA3T8WaKU5BmcSACzyc1sqOMMuifufl6e2oDMJxZ9vhJg3nnWwPr+Mh6BIytWiZNIVRqTTDSPeCFjttu78CSdvYjaJdYVsgwwAkILTLqJNrSC7vK0dde7dANGv+2XtWBZFoL9O7TkAsMy3lcCLdgb30VwFOq19NFQ0IfKq1Gx3cFy8HTSX1dl21lMkkU4mNUHqaN3RenQm9rNFrLtOFBsAwDOnXe7Jr1u+m1epPQeQ2DVfBIFemkM0iJoEAMv82awEOmn808haoNP+ekP763E60+7rOu2ujQ9JBV4IWO2c7Z16hUKIdHrAfsBgTMyWeYp1Eo3RREwFAHjmtMuks2UwsciaXe2oU3sOIPnrvqn6dZRsY1Nf90TNAoBtPqzMR+ZT3lReZZnEN0+y8cVl/zg2HBsjDf/jVsBqUmPQ+rp9RWkc0TBYp8XtKxhLGkwcd4PVFxIAgNNoEcxTdjWVkKY7NIcASO+6l7mYNJXYt2SXZD64Kl1pEegAwEJEyEpToJN7cT1Lgc6wEURUXPSzTRpIFMIuRYmkK03oooW2zTuyTm6IzaIUcQQASBMLalbRHAIg22t+0JRjJcfdIGoWAIrgt7ZVOqUCJHBlPYv01oiNIKLinD5iWCLN+ihD60U6wyKAm76hl7l1xbIzYh0AgB1Oe5516igUD5DPdS+O1HxOmz9H91YAKIC/6vkfWwn+pJRhWvP9z50M9n1Z+9lZ1iMtRGpnwnYuhXZUBJGupUqghqZgF5lMtf2llWR9N8Q6AIDcnXWT6PG02PWd9UXOAkCm17yJU5EmNIcBgKL4wOL3xhW6MvE3h/zqhsrnJcyRf4xnHBwjHQN7n82rc68JRahJt2ww+FwT6Dw98ES8lPpuHX9p6vDZWFhQs06O65Y+pgaPIgBwzFmXe2+eDSQW9D4AQHZ4OW+f+RYAFIU4kWFH2r9dTFOgE19dBxpJ48trKr8o6VlH/WmTl05W28VqkU4PqqBorpaDA290UM3rG8B932YbSVyMiHUAALmwzD4AOD+vy5oFXRsPAMBqdGrq7Qhfle9Uxb9NI4JKouaGGkFISu6KJSZbc3CYtArw3J2K1emuIjj5H0sBq53PIo/cIpvIJOoDg1WP9ABtJWEf0mABANLHd5TbKtt6JeMg5RUgu2u+6n/ct2BXpLMrcywAKII/HOa+mWrduYwbQUTFKb1En5dC60gVyy++IMPuujbglHmEg9wkrvjL21pgiwWRdQAAqTvrcq+uWbArpLwC2Devc2U/AACC/NKO/3EzYDXxVVf9db009AJpBKHr493XPvesxSYjmm48DVt33uZ01+WEjF82wl5kt5MM6UWsAwBwwknGYQfIBlvmMkukvAJAgWhO8UMleq6adAaWTmlt6sYEbyg7XqyasJJE0E6R0D0LgnSKhq37b7NIZ2K0lkuDTbcUDltQfCOlgY9YBwCQLDYJYx6nAyBdLGgUY/M9CABgqi+qxjcIuK2j5xILUrGoEUQcXPSXWwF/l8YaVj73rBTpDMWoTZvb5lpyce2n3fkWsQ4AIBFnXd5wLlm0S0TVAKSPZ9n+INIBQJFYH/E9RaBLxB+0tBHEvva3z6l+tGAYSHkt0HPP1ki6RkJGLxuNFAZmIiDWAQCUzjnGYQdw6xpDnAeAwqADdpr6/4qAFVuIkrr4/iLiX0d8S2VHtLMIclJfb9CdthPBz5+3NWosxfGxo8fFNKxMBbZVpAsaQEdpR4jZhhaewhakbOVwMdgg1jV5bAEAznop9wmgFFgYPct1DwCFw/c7RVATIWYjTpadhY0gxIe+7S/ndPpua+S4WypYgBql4eAQWS/ic886kU4rvEF53i0cuEC2tcqe1w0zT7GuySMLAApGUs76pl4S2SeiagCsmddN43oEZ20SHqcGAAqGRNCFDuDRUXO2NYKQe/mq6je+aAT4862w8zo5ZsfGhsm4aNi20zZG0tHVdcwNJIIDZ4WNchDr9pPu5AMAkCbdu3NJOetXK5cOlmXRE7wk7rdE1QDkN98NYtdfzvvXvMyzpJ7zJtc8ALiGZNj5SzuEbz1oBCFRc7Y0gpCoubpOaW0ZRgVG8Xkbjo2NjsGzsWabeFlEkW5f5xe7RNiL6cg2oSpDsa7JowoAHHPWB476s5B+/9/yDPD033DYASwioVRXceg8/1rf0df8YUIC/WyCLw4AAKxgqBFER1nYCEJHzbVD+tcd/SwIg4sNJEyi6ax67lUsu3gaKjj/u+XgwGqkMBBzIWWxjig6ACgicSYGJxz1Ew94/7/5i0TX3Izx+0ucHgCrrnmZN63613ZDhLkx173MgzwVT6BHpAOAUqBTWuW+2FH9RhDzFu1ee6gRRFTC+r6zDjZZLFzKq22RdKS6vnhj8SLcTNZtP66UxLomjyIAKBI6YiVKcWK5Z16e5KiPOO3y1vRy1PssUTUAieNF/J4Ib4taiJt2zccV6LnmAaDoPnRjqBHEisq/EcQ4VuKmWeroOxpIBOgOKjjicMGmlNeKRReSSej/bp7NEHIi7EW0W6R04ATFOqLoAKCIRHGGB466cdS0Xlec9m0cdoBCXvc3RXjzl06I6z6qQE/KKwAUkqFGEBI1VyvALjcS+I1myPWlBtuiY0PDZM5sTSqwTZF0RNG9eJMR4TJsvnwhbZSAWNdUAADld9avh3XUhxz2jr94+h6btqAAAGOIED0r86G6FtxUhOs+qkDPdQ8ARaSh7EppNdnfuGxE8J2dqk0nzUUMbGTNcw+RrlzOW+FtFFGsI4oOAMrurA8c9WbsB3//N+rKPD2CqBqAfOZ2IqxV/Wu2HfOajyLQc80DQBHJs+yTzKvCNnKYj1sjTqdzhq1Jv6wDglxiw+BcWBFhaIVIZ5jqumnYirhMRFG4W749Cz+xCinWNRUAQPHwsnTUR5x2+S2ZiGwafgWHHSAZTK8liZr1gmpOhrzuZb5UV2YvQEWcX+R0AUDBaOWwTZmnrfq+a1W6tKp8asSF9YdnlWO16QzHhhU2sSWSzmTCsuHSCNIq7kKEr4rY+Yb//UN/WbepAGIUDMQ6ougAoMzO+tWkHfUhh/3QX2QfriYoLADABAyjZ8W5O59E1OyE676t51QmAn2DswYARfMdVfhotigc6e2c87fpjfijYaP5agk0kOio8GUNXEt5batgAdWK+a4tIp3JAHFKpEtgYiSTwCv+ct+/6Hd0h5szBb6oJol1TQUAUDxnXV7EzBs46qmnbehtnFf9hhQTnymkvALEJugaEuFMak7upHzNmwr0XPMAUETSnDvJXGlVfFKJmpvQ1LKl8qmv3gq5vqR3eo6NjUKkvOYu0mnVOChizMVU10aCvyX2lQ43Hd/erSJfjCNi3VWi6ACghPf421k46iNOu2zLU9PfPnucNoBYTLqGxJlbFeEsjajZKdf9QKCfFFkwT8orABTQX5Q5zW7CPyvzo7r/24vif07TJvKqEaf94rCptmuODQ8T7aCR907aEElHqusIunjkbAo/Lb8p3WK3pDW1v6wVNR1Wi3XrCgCgmCxPcdQbWTrqQw67RNfI8+eyGv8GmKgagIhMiZ4VR1JS2lt57JcW6BfVZIG+wdkDgAKShJ8ogpdkcJ3VUXPtFLc/m9A8K+yzZKno5bFCagg7qgAprzaIdCYPf9dSXbMYGDJRfF3102E3ytBsAgCgwM66OOqLeTnqI077hnbaR99CE1UDkOx896bqC3Q7OV/zA4FeUriObHNWAADCoqPKjiJ+XWq7XdaNIJpRMvq0GBS2RlwzgUOPMo9sODY8rE95zVWkI9V1ok2WMt5sqZpNAAAUzFm/6TvIItB1bNlB2RfZJ9V/g+zyRA4gKYbFLnEcL/vX2FoeUbNTrntx7kYFesR5ACgqrQjfOa8bQWzksP3YNeJ0jbywjTNIeQ2eq2f7PLZowjIJGkZkR6maTQAAWIo36qjbuqO6w2RdPX8bTVQNQEhGomcHUbMbll7zA4H+5ph7FgBAkYiS8prYPCdiNF8SWkArxLq3XZvbFSHlNW+RzmQQItLlQ2maTQAAWOSsV/X9VVIgqrY66iNOe1v1m/XIPhNVAxB9bnfdtqjZKde9vDwY1KdscAoBoGjoqLLNnH3xsELhStysNl07b5oINai1dy5Crb2yYHXKa24iHamuY23iqfFFhfOkNM0mAAAsYFk76p5NaW4GDrvUrJJn1FVFNB1AWOTaqevIVFWg616cGJnzHeoXDAAARaMVcv35hGu1tyJ8p5HAdsc9b+Rl6+pQrb0O4yL18xDt+ZvzhCUIoujsgmYTAADxnN71ojnqZdp/gLzmvDoitYjX/ECgP+Q0AkDR0LXl9kN+bS3B7XdUPtF8ctxHepGU1nO61l6LUWF/ymueIh316IbQtd9WCrTLNJsAAAAACJpsFyhqtszHAADOEjbltJawbxt2+xLN14izQZ2N6PlLVae0dhgGL2BtymsuIp0WpII6mDqV6qqKmz5EswkAAAAAAACwkVaE7yQZTddW4aP5Gglsd8cxPSWNcdHIY8fyiqQjii7+jUDCZq9HuODThGYTAAAAAAAAYAVaqLod8mtJB57kHc0HL44La1NeEeksQIdRLoT8WksXfJSL93KEG0+a0GwCAAAAAAAAbCCsSCb+bNINJI5CfqfJaUsdK1NeMxfpSHUdSyPk+vu6COYx8m/JNff/eVb1O+/tWnRsNJsAAAAAAACAXNBRU2F95CRTXkXbCBuEtEwZqdRpGazjZb1TeUTSmRwkXV0jDCa5+P1l3V9E7T2v+tF1RxYdJ80mAAAAAAAAIGvCRtMtJFy+Kcz29yPsL4REi7dBekkj6/2a6fV6mW5QapWp4C6mZ12JpNOdW26F/Nq5MB1a9DZkqVlogl19A9qgsCUAAAAAAACk5HuLvzkb4iu3dcZaUtsXUWhamatt1S9r1eJsZTYmxNZB+tS5LDvk5hFJF5TuuEtX16lshx0gcpH7iyeDS9nbbOIDmk0AAAAAAABASrRCrr+SQQMJieSSDDgRgjwEuswxyeLMtGRXpiKdFmBmE75wCotO91wK+bXI9hFxz+JmE8c3QfW82USTdFgAAAAAAABIiCgppEnWphNffpBeKYEzq/5SlWi9LCO14MQ52VDBKa9elvuUdSQdXV1P0gi5/lFS9ilAs4lrSjeb4NYBAAAAAAAAMX3gjv+xmbLPbvJ7dQmc0RlvlHzKnyDNYSnLJh62iXS7jinIYS/4xOu2jWk2cVPZ1Wyiyj0DAAAAAAAAEqAVcv35+sWlxNIddbBMm9NgFSbnI7OU11NZbcgf2CICzSdgnFJgaI9RUu3worubSDjvmm42IQNxKWdT0dUGAAAAAAAAkvB5N3xfdz+kLy6+sbUZXrqsmER6Ler/5E1YtaMX8ft3SLF9hpzboGaeYtNWFjtzKsMD9wzWaTk0EOSCWFXmXVf3tYiW1c1LzkVL14Vr6GU+pwsGAAAAAAAAIAkkEOT1EOtLumPVBlFLC3KyLOoljI9eG/mtfe1vt7LUGmxDsgt9W0ga9LQApcwi6WZ6vV5Wgymo3fC+bmjgHFoIW9MnftJFdlXSUi24ITRUcIvipEi05TUAAAAAAAC4ja4v9kHIr930fdO1HPZVfPDBUktxU9v+0nQ1Fde3s5zbIOG2noV9MhHpDC8CBJm+rUSoEzuMqrhnbSkqqc+n7KcM5IU0N0W+PgAAAAAAACTs07ZUuOCTI983PZPBfg18bVk8f5nN2DRSo77pWkMLHTh1P8g2WQi1WYl0DRWc43tZt7+F5xen2E0GgeSLL1u6n4vqeTpskjcQZyMrAQAAAMBeunfnliuXDvBbAIrtb3v+x1bIr63qslBJ74v4vQNhrmaBeXb9xXNQqLMi+zMrkU4G8lSV2j/YGW4VhR/UDZVcs4nr/phoYlUAAAAAsAUR6GS+W7l00MAaAIX3X4NEmVF2fR91MaFtV7Xv3FDpZqdFxTmhzj8nUl7sSsBq59KuTVjJ6HiDosA2uUUUH3mroCP+zvnLdX/Zj/FzLSwKAAAAAJaxrDIsIA4AqRK25vuCziSLhGTLSWCLFgcltVJqoC1YahvZr7bO8HOFluEzIFVSF+l0GGlQGmSb+0N5EGVZouB0KGjdX26H/IlN2kEDAAAAgIWIgzarI+oAoNhI2vpRyO80wm5ENBGdXSh1+qUM2EJB7CP72XJlMOgOt0HjwUt7P7KIpFs2vDignAO9rRuCnPWXVdUPm2U8AAAAAECh0MLcbAgfBwDs9lUllbNluLp0P101bRygo+bW/KWj+rXvVgpqpiXd+dQVgrSIpbR3IPWadAZ53onldUMxCGg2kUnXHAAAAACAMHTvzrWGHO2jyqUD5qwAxfdNq2pyV0+JqhLRpmma6aV/r6l01G1JzCR2qLpQn86GpqeVDAZ8UChnm1uDW0gYqbyB0GKcRNcN1yRsYSEAAAAAsJDh6DlSXgHK4Zt2VD9Kbph97aeKMNUwEehE+9AprSL4iZg/WyIzybG4Ek1nIr55ae7AqZQP0EvICKVHF2RcnGAzuSlInbd2CW+KciNraUG3wXgAAAAAANvo3p1bHON0LzN3BSgF0kCipvq11Fth/G7tx4uAda3kNpLU3fWyR9PJ8fnHKSW6pgWbLasURctU0139g5OH1rScXedTG3U4ZUPfFEzY1pOBti5sCAAAAAAAKdK9OydO/JWR/7xfuXRQxToApfDLq2GbF/rfEbGmpcoVNTeN69Ig0oGxIMcYJLqeS6vZZd6RdG2HbwJyQcvDfj7kV2t6EXWXWn4AABCZe1vb8hw5M/S8rupF6f8etvuY1CzZGfOcl/8mb153LtRrh1geAArIuNTWeYmwq1w64MU5QMEJI7jo6LmWyqCJQAJI6u7g2MZFBIehofr19sqOBEUFiXQDPSdxUhPpdHOAWYODd4oEL2hC6wEAwAgtxg0vVRX+JZEJ8twfjgyvjdkX+djWE0ZZ2grxDgAsRqe6zk9xWtewEoAz/vyi9sXnLds1mVvt6GVqqayARo7TmJfvlj2jT47PP86jANt4qmginTJrS9527II+o495IYGfQ6QDAIAXuLe1XdUTh4EgV7NwN2tD+3VN7/e+nljKc7J9oV4jMgUAbKER4PMg0gG44c/blN46KIO1E7Z2vRbZ1nRapwhNKyHvhy7c8zYC7OKlteHUatL5J1xO/DQxat8fHFWHLugkBTrna/kBAECfe1vbZ7ST6OllviSHdqSfm8cLoh0A5EX37lwn4N56npRXgNL78zLXeiPHXZCXmYPa9BsJH1tLmQt1Tug4unfAraDV0mjueSqlAzKpY+NaJFhbJSPQuWg7AAAYQqevLutloaSHKW+pl/QyiLSTZ+nGhXqN5yAAZEL37pw4o0EvP8SZI5oOoKTo9NBWDpve1dvdSKtJgWZNzylNIgTnozTZKCAy1wwS6ZZVCtmhaaW7egbrtB26qJsJO1HtBPetqicWcs7G1RGUG0NHb5OOsgAAOaGFuYaeEMw7aAI5ZnnLu6Lr2m3qCdQG9ewAIEWWDddBpAMopy9/Rs83skpxzUqYe4a/nUP/OCXt9ZrhVzyVj2iZGdomci4WAuyQOLmJdEmHaFp8US+GGOymbCSwX3KOmiq4VtGCXpb094709ltphHYCAMBzEOamMoiyu+Xb6bYiwg4A0qFhsI50ea1WLh10MBdA6VjLYA6WuTA3QWNApDtJW00X6RZExBVBL8mNpiXSBb1x2nbook6648dunEGQQHdZeYNwHMng/5akHjX9/WkpAABIhKEac2uqvKmsSTOIsDvSz7gWNewAIC461dX0PrysUur0BwD5oLPOrqX084Pgl3UbstV0R1PT1auODAE5P1cC1vFUwuXIKikN5CClue3IRd1QyXfV24ixPxKRITeApYT2Rc7zLf93O/pYAQAgIhI15y8t/58fqH4NDAS68MzqydTbvi13/IVnEwDEYTnEutxvAMpHGte1BLqs+ovUdWsUtJxUzYWTb5g5uJz0dtOIpPMM1nElHSWN2hSRbKdFtHWVTi79QKyTbTQcKCIJAJAYWkgiai55xJ6SCruun38SXcfzCQDSctAXSHkFcPoeEIRkEzZtLRmlA3pg/HmbJkp6SW+wksJBBO3kkQvNB3TNt6Qdrki2G2ofnHaxSxm8O/rYAQBgApLS6i9Nf+kooubSRp59kqpyXyIVdZ0/AICpdO/OnYlwb17GcgCl8eerKpladBI5V/f9eM/ymu5rEezjAkFBUvNJ2yIPka7tyMls5DBAxl08DRXcOjhpZ2iL9FcAgBcZiHOq3zX7mqIZRNZI7TpJhW37i4c5AGAKUQQ35r8A5SHuSz2pOXd1683Nqu0NF3UU3UrIr1UdGQcm5y7ROWUlhZPrfD063ZxhJcJFfFO+7i/n/At5Rv9bluuqH2bZjnA+buVkhltE1AEA9Lm3tV0dqjcn4twsVskVifzeQqwDgClEEekWdAQeABSfOCKddGuVyLnEmslItJa/rPmLZK4tJ/i7cs/a4HSPR2cyHgWsluhcMumadCY71+ah/gKbql/L7XBkQLSj2kyHXOZt6w0RCqlRBwCuoju1NlVwZyjIh4FYd1wn5kK91sYkAKCFtqiN1sQPaGFFAGcZCHSHcX9IB900VF9nGU6/l/+/kcDvV/XvhM7ssD06MGHaAc8EL8mNZS3S7btQjy7kSdr1bZJo/YohNTzvSI1ZPUnxFACAQ2hxbk0vRM3Zz7BYt3ahXtvBJABOsxzzuy1MCOAksQU6HSW3rH3o+Sn3mVhNKvV2WsxTjWir6SLdcV26pIKTkq5J5xkcHA/25CYBk5CLzZYi5DXSXgHAJe5tbcukSR7SpLUWDxHr3tYNJqqYA8BZ4szPl0h5BXCWRkyBru1/vKH6pbOmRbfNR+3GKr750HaizlN3HTuvbYN1vKQ2lphIpwfJbAIHV2gM7TBgM+lUUH/7kve+ZJlZmtyvAaDsSG0z3a31dYU4V3RkcryjO/DibAM4RMxU1wF0eQUoPmHFttsJZA2GSWENdZ+Rxo5anNtS/ZeScWi7NBCyrkuXZCSdx8k8ZjGli9DowlN21j2qRVX6AQBsRzeFGEx66NZaHkRolWhIEetwuAHcIQlHi3sGQPEJK7gl4dunJtKpfnpsLSHbtB0cD0HH7CW1oSxFun1HGggspnjhT0SLYOsW24XJCgCUComwkkgr/5/3E5z0gH2I8PqG7gRbxRwApSeJOSsprwDFJ6yvHrtRhNZL9g1XX9CNH0xpJWQX0XVc7AYbdMzzIc/HRLIU6dqOnLzFEBdhIiKdbhQh9rU5vcpTAAAlQVJb9eTtGtZwBhFi75MCC1B6knqxzNwXoMDo2nL7OWw6rWi6pIS1lqNDop3VfT+R7q7Uo7NiwCQl0N3Wv9fR/18ckUV9A4jTjIIoEwAoPFqckcnJEtZwFhFmG/5YaFyo15jbAKRA9+6cl9Omw9SWDqLhH8dhTsexU7l0cMhIAkjEz14xXLea0DZlnmlawkrulUbZdBKlV7+4JKJjnNIsEkXXdHEgaPsdBTwjPJWAiHkqoX32DAe4CxhH0iXRptf/DRkESXRy3Vb9bjTj9kdU96YO32yGuFGN7utiUtGDAABZo+uStRRNIaA/wd3yx8RNeS5eqNdwhgGSp6WKXedzSeXzQudq5dJBm+EDkAgbIXzfwTwxFuIvG4hBz+4zklUXoqOsHE+cGvYNx8dDO+C+7iWxkaTSXYOEKVfq0amQzluscHr/glxTEQWzEaQTjRd0juTv/iIX5mUV3N1kHKQHAUDh0LXnZFITp1U9lBOZ6O7o9GcASAgtMol/sYk1jNn1l/O+7dYxBUAy6Nprpn6vCGZJzQfSSnltxdinVd8ebceHRNDxJ1KXLimRzot5MK6ypuvJhUZ3cn09gX24qoW3sDcrGkEAQOnR0XMdRXorTJmQqX5U3Tq16gCSQ9I1/UXuwasq2sthl5ByNZ5vLzJWAJInjGC2oUuBZblNY79cZ7VFuZ+KZtBiKGRTly62SKeVwqBQdJceGGGKS4rdWmGFOq3QJ/GWTCLoIv2OVtGvc50CQBnR0XMyGSF6DkwZRNUtYgqA5KhcOpB7sVxXu1jjBcTZvuzbqEENOoDUaIZYV+aM7SgRdaKrSKacv7T1/NOUsNsK20BiNapmUDYMRU4v7naSiKQz2Ym2Q+euE3L9pTAXso6g20rAadwMG0E3Bi5WACgdWmSRh/AK1oCQyMu3t6UDLKYASI7KpYOOv8i9mRfEz5F60ou+XTYwBUB66JJQt0N8Rfz0Ld9v3wjy8SXqzl/W/UXmnfdVP1MubMPFWf/7aXR5leCj80TQvUA74O+xX9bO9Hq9WD8gg0pNLz545J9YZ9I/dCOHqI6dPGzl+xujxR/1Bd5UyXRJlQtuMUSByWnH2w6xT3Xy2AHAZrS4cg1LQEIO9DJNJQCSRXd+lfnyvMNmuF65dNBkNABk5uOLntFR0QJlxPfeUSezC+U+lmQ36dthAnD84wkSgeSFyHoSekEJx4L0BQgqO3Y2ju2S6O7qBfy97dh5ixN9UdPLLd0euaP/ezXhichyghfcjkpGOAQAyA1dS2yD+xkkiIyljtQ1vFCvtTEHQDJIU4nu3TlxblvKvXqh4h8sU3sOIFvEd9YZbW9E+Pq8XtK8X3kh19+csD8SMdh0qOlnFHYMz0fkKOdY6a5aUV5I4CDKRFIh5/PquWiXpEB3VedSJ0UYsY+LHQCsQ3fm7CgEOkie45QX0l8BkmWoqcRV5U5TCXGeFxHoAPJBN09ctXT35kM2rBjWLET8l8g5if5qINAFjoO2wWqxUl7j1qQz2XjbsZMmg9rWwrbbKRR9XAxpGwAAa7i3tS0h60nU+QSYxjV/rLXp/gqQLJVLBzKv9VS5m0rQHALAHl+/pewV6hoh1hWR7qbq15yr+kuT1NZQbAf83Yv1bIu5c57BQG47eNJsbKggD/jlFH7XVKSjIxcAWIPu3ioTlNexBmTEIP2V7q8ACSKRZbqpxM2SOoI0hwCwCC3U1VU/As0mvBDHcOgvawln2LlE22DOF/25lvJA2Hb0pMmD1LbQ+0bS6ri0iVbmqbjcAADACrRIIg/XJawBGSMRm9L9tYEpAJKlculgTTvOZUl/leYQnnS25ewC2IUORBp0nLblnrOg/XNIn0BtI6iz79TnWcydW4y78yW9aEUMW7PpIa9z6JMmzDG2uZYBIG90/Tm5Hy1gDciRW/5YbGEGgGSRphKq33Bts8CHIdE5dbq3Atjv8+s0USllISmwty3YrWXOTCa0DdaJnDkRWaTThQlnE9j5sl60LUsmCJty80j6R3XTkEbCAxkAIDV09BL158AWVqhTB5A8BW8qIb7DohYbAcByxCfWXV89ZYdARkmNDNBBWUHlvLzIz7GUB4DrD5iGyrcW264KJ6SFYT2Eo7tP0wgAyBMdtXQLS4BlSM2SNnXqAJKnYE0lRExcFXGR5hAA9iPCnL9IptoHen65ovJ7CSzivkTyHXdn5exkRlDWaPaRdCpYGdx3vUOIPv68JgeyTS+Nc+DfkNb0jciUNtcwAOSBbhDRDnnPAsgSSb1GqANIgYI0lZA5u0TPtThjAIVB7it51TYWUV9Say+rvjC3LFl8dGfNnHbA3+d19mFoTsUcmNOgUYDqC3W6aKAo7bWMNhtKoPP3r6XPp+xje1JHXl2Icj3CDYmOVACQOTqNUO5n1J8D2xk0lFi9UK/hqAMkjDSV6N6dk+dBS9lV8uA6tecAConcT65kuL197VNvTPLVIXNM9C5PRdBCZnq9Xui90YrgBwGrXfUH0Drn7oTd5CF8LeXNhI6g8/ero17s0ro9dAOSwXUmoqN7pItpAgBkxlAHV+rPQdG4eqFeY/4EkALdu3NnVLYvzqc53A1qzwEU2rc/THmeuaueC3M7BbJL1ZVSV/6xBolp16P0B4gaSWeSkkEk3QhygnTUWiulycFNfxtrIQeWnMv5MX+qjXxGpcWZB4AsQaCDgvO6jOEL9VoDUwAki6735nXvzonTdC2n3ZAX4dSeAyg+IqAlXU5lU89hN4oidOmsQZl7Dz4lzfOsI+m3cj+fppd4UX40qkgXuDHCMCfaRS42Tw/mRkIX9vHbuIg291I+ZKIBACAzdAdXGkRA0ZHOrwqhDiA18nQezyDQAZSCJES6I/074sdv2C5s6YxKTz0X5CYJVJ5yo+RVW00X6SLVG04rkm6ba3Y6WlBr6yYMDT2Qw9Z6kxDYdSkUGWNX0mwVvU1XVwDICgQ6KBki1FXlOX2hXsOhB0iWRo7bXujenatWLh0wRwYoNu2I39tXz0U5q4UsnXXnqeeRcvOGXx3Uuy87Qdmjs2LDsOnKaYl0pLoaotXydb0MwkVlqepllI62b+wQWK2Ep1mTo8kZBoAsQKCDkiLPaOn86iHUASSDCGQq/4ZCy4psE4DC+/G+Py3pqSaBNhJc0/aXlq315bQ2MBDjPP3vqKVjPEeGgcm5XFQh9bFTEU/efAI7C+Mv9raKrsrbdPFsk/IMAFlwb2u7pZKvCQJgCyImINQBFGP+G2YfEOkAio9Ei00S6bbV88YPHdt2XBo8qJOCXJIvL2ounHw5r74dJTJymj4WOuU1SiSdyYMNka4YpJnq2sC8AJA2CHTgCAh1AMWY/5qyJJ1mqU0HUHjaI/9fIusGwpxV1/dQxt4gWm425e0tFqkrbQzkGHMX6QI34sjJKANeSr97nVp0AJA2CHTgGAh1ADERYUyFrwGdFiIWtjgrAMVFR1Jd9f/Zsam+nI6SG64nl0dkm2zbFZFu2nMltO3TiKSjaUQB0EUg51P4aUlzbWJhAEgTBDpwFBHqOlqo44UoQHiWLduXFqcEoNj4vm/uqetDDR5kScvPD4vsiwtp/W1/uRZ0fsIEsqURSceksRh4KfzmrmWTHwAoIQh04DiSntJGqAOIhE3zVFJeASA0ukeA+PIDYc7W+m+LjpySxJtHnAo5IKoqOHeZCaObkxQR6Dzbcu8BoFwg0AEcg1AHEBLLUl2H5+Mtzg4ATEJHyQ2nri4UZNfnRT8qexks3eU30eYRYSPpqgbrMFm0/0KXSUqSivttf1lDoAOANEGgAziBCHUtatQBGLNs6T61ODUAMOSreyrDBg8pI8fQceC0Jdo8IqxI5wWtQNOIQiAindQOjCvUiWK8ZlORTAAoJwh0AGOhmQSAOTaKdEucFgB30ZmKnnouyC2U7BDlmFzQChJtHhFWpAtSAGkaUQB0yKk3lM/uhbgpHKl+ccQW4hwAZAECHcBUEOoAzJ3FuMg8uKEdso0kHOru3bnlyqUD5tQADqCj5IZTV+dLfsiu1KVrqwSbRyQt0hFFVyB0euqGGlK39Y1j3ERGzm2HSEkAyJJ7W9viDCHQAUwHoQ5gCiKEqfgpY8cN0iqXDjoDv8j/XelceCXm7y4rNyJNAJyiQA0e0kKy7jqOHGuizSNmer1emEH2QcBqq1tvbra4JAEAIC5aoLuFJQBCiQgIdQAjdO/OiX8S54XP9cqlg+aE3xbnW0S2qCLgkf/bZzhLAMVGN3iQ+8Hgc94xE0hWpYhQbfkse8OIMee/E3DOr/s2aZr8VphIOpNQRaKsAAAgNgh0AJGQiLqWsrP2FkCeRL0mJL1Voufak1aQv3XvzlVVX6iLEikzS8orQCl426FjHZTAkkUEuTan/zhqcJpI55n+UKIiHamQAADl4M7eDbnnnwl4sJxRZi9wJKpn3PNh+IF++E+//L8cryMpewqBDiAqS1LH8UK91sAUALFSXTf9pVG5dBAYmarX8fxtNVVAXaIJkPIKUHySaMxoK7t63n4cKedalJwh7YDzb1yfL0mRbpfzAgBgN3f2blT9D1kGAtuw0Cb/Pa3Q/HEdj66N7Jt6+OkD9Z9OffPo5e4rUsdCnVW/dOoz6uUnP6Ne+blX1BfPvtT7rDrdm+NEAkxn5d7WtkKoAzgmShTd1cqlg/WwX5KU2O7duUG95/mU9xEA7EIErDKIdEfqedqqLDu6lj0En/9pzEo3XxOBM4xIV425UwAAkAF39m4MhLeBCOfpT6vbuotA9xfvv/W4p3qzn8x8fBz18EC9d3KlGe0IqZcev9I785NX1N+vfE59oXtGVec/23sFAQ/gOSLUtS/Uay1MAY4TRgCTF0SSehrZr5Hvdu/OyfNXrr0lw6+R8gpQfNoqfiOZPNhXJ6Pk0HWiYWK3qjJophFGpKslsFMAAJAgOi11Ud/0Pf3v2aIdx9PuE7V3+M2DnjJT2brq6ekHM+/NPxfx/t0zAe9n1eff/Zz6widnetXPvqp++bWfUZ9Xn+l+nsECLnJLR9S1MAW4iG7qYPpMvO0vaybprUHo31j2t9/wP9cN90H2FZEOoLi0C7Kf2+qkKEeUXAJIhFz9YuB7Gc9knBiJdLpTSRCIdAAAKTIkyA2WUtS9EIHuW+//+/c/7n6cSBjcQ/Xha/6i/m6m8+w5WHnppcc/p77w/lzvHz2RqLvPqS8g3IEriFC3c6FeY54GLmISRSepXSLOtZLeuPxm9+6cXHvy2wsG+7rGKQMoJiJ21S8uSVSaTV1dZX+GO662OVOpElSXsGryI6aRdCY/xuQPACBB7uzd8NTJVu6zZTzOv36w8/5HTz9+Nc1tSOTdofrJLxzO/EQdR935/Myplz94tXvu/VfVuVdne9WzpMpCiWlLQxaEOnCQIJFOampLmmknrR3QqbOL3btzElE3LRVuXtJk46TaAkD+z1t/Wclx+zR4yJeguoRGzSNMRbqgH9snTBIAIB5Dopynytsd6gR/fbR7cPDxQS7q2Me9j87+aOa7Z3+kvnucKit17r6gvnTw93pfeQXRDkqGCPwtLdQxXwMn0HXhpkW03KxcOsgsck225e+TOM8tNfmlW0MRTQdQZESkyUqkkyjgtnouyLUxf+50Av5uVB/cVKTzYu4MAACMoDutLqvnwtysS8f/k0fvPH73ox9Zo4RJtN3fqc6XjtNkh0S7L/a+OjervnSa9FgoOAt6Mr+IKcARGlMcW4mey9yhlcYQ3btz8uyX2nPjXsaR8gpQbNK8r0iU3HDqKlG39hF4TqSUXNC5Syrdtc35AAAI5s7ejYEoJ5/zrtrhwSfvqb/68Dunbd7HE6Kdz8++9Pl3f777ay+9NvOrc690v8hghiKycG9ru3WhXmtgCnCAcamuUi9oOYnmEFHR2/a6d+ea/ue1kT+T8gpQYER8qV9ckhcBSbx4p8FD8TDt8JqISBfkSHY4HwAAL3Jn78YZ7SgMxLlZ123y8NMH6jsffOOx/8/ThdpvaUhRect/4L113Iji7/f+0cEX1X/xpc/3vqgqvc8y2KEorOhGEuuYAsrKhFTXq5VLB9aMe39fmkPpr8P72lBE0wEUmaC6ZOOQBg9t9VyQQ6gvIIbNQ+T5NLWTd6BI52/EM9ifDqcEAKDPiDC3hEWeI51c9w6/edBTxS74JlF2P5z59pd+qL59nBr786r6N5IW+2rvl08j2EEBeP3e1nbnQr22gSmgpDRGnN9lG6PTJOVWC4qtofkCKa8AxaatgkU6iZIbTl3tYLbSIOcySKSbikkkXTVoBYoUAoDrIMyZ8b3DPzv4uPtx6ToyDNeyQ7CDgtCi4yuUGE9/bvpLI8/01iD0vi13786JMNdU/ZTXapodZwEgVdrqZCo7DR7cO//TRNpq0A8kIdLtcx4AwFV0jTlZVrDGdKST6+GnR6VvmToQ7Cozz1NiZ7tVBgDYBh1foZToxgyyrFYuHbSKst+SijuU/irzClLSAYqJiHG3VV+saRMl5xxB5zuww6uJSOfF3AkAgFJxZ++GhCk39DKLRYKxrZNrJo7iUEqs1LD7h93fePhFdX7udG+OAQG2IBPFDYO5HkCRkMh2r4jNF2Sfu3fnPK5JgOKiGzw0irbf0nVU3z9N2KGRxUQ6JraeVndwptfrBf2AbGRaTu11fwNNzgUAlJmhdNY1ZfAGBJ4jjSL+4v23HvVU73NYQ6mf7c0e/LK6+LOkw4JFXL9QrzGXAwAAKCH1i0vix4gIVx1ZzsT0a4Zr69GB9rm9ewGrXPZtNbEusEkkHZ1dAcBZdNScCHMi0BE1F5KyNIpIkoczR3O76o+P02H/Qe9XH8z3/svXiK6DnLmmO77SSAIAAKCg1C8uVVVfjBsW5GopbrKmlyt6+1IHtDVNgHKEWB1eTwWcZM9gBzpcDgBQNu7s3WgoouZiU9ZGEUkg6bA/mPmWLM+i6+a6XzmNZSAnaCQBAABQELQg56nnolzNgt2S5nlL/r6JSNVwuElGR8Xo8BoUSReYk0x3EgAoC3f2bsjDrqH64hxRczF558PvHrnQKCIJnkXXvfTS419R3iev9f7z2c90P49hIEtoJAEAAGApQ6LcYJm3eHdl37b8fZYGGmsOpsHKC8/IHV6DRLrFgL/T2RUACs9QSisdWhPiwSfvqR882kfoDIlE1+2pr53em/ma+mLlV/+m2qt9iVRYyBCJHJaOkg1MAQAAkC9amFvWz+UiZveIb7UoGZqOCXUdg/nWRCoBX16MuXEAAGu5s3fD85e2/8+3FQJdYkgduu8efvMjLBEP6Qz7J5V/qf78pf/93Z9WfohBILMJ9b2t7QZmAAAAyIf6xaWGv0g01n1/eV0Vu/yO7HtHN69whR2Dc1yd9Le46a47Dlwgnv/R9JdDfbydwbL15maHWwhA8dD15uS6nscayfOdD9466Pa6hH8lxAfqR699feaP1MsvnT76cu+ffJa6dZAB67qRBPXpAAAAMkCLWGuqnGV35HjaDkXUmcyfqmpC0FuQSBdUfLDjgIG9ITssjVxI8rGv7SAn4nD4kxbEAHaBOJc+Uofup08eItClwEfq8ezuzB8j1kFWk2nq0wEAAGRA/eKSpLSul9xHcaakhuhAWiuahucv7XF/ODVloFQNtu/CG9agaMJ5vdTG2FA+tvX/lRPwTMTzTxxvpwEyAnEuG6hDlw2IdcBkGgAAoPjo6LmWGgkGKjEr/jG3HGk+KjrQtKC3iTrTtEi6qsGGOw4YdzHm92sjn4MLUj6O1EgKrSKVFiAxEOeyY6gO3ctYIxsQ6yCLyfS9re32hXqthSkAAACSo35xSXSGDQf9FJlTVB04zo6aLtJN1JlORfnSAEeEpDQLHM7qEzcpCm9XnUyhbWu7t7mtAUwGcS57vnf4Z9ShywnEOkgZ6tMBAAAkiBbo2qp8tedMmJfGGFtvbrZKfpydgL9XJ/1hmkgXJE7tOjKIFizY9kDEu6Yv6sHfJYTyRB08RSotOIx0a1X9tzOIcxnyw4d//dHhp0cIdDmDWAcpMavvq4uYAgAAIB6OC3QDGnpuUWaCNJmJ/upMr9ebNHhk4EwLz9vcenNzueQXUFX12x4XkUFDi8Ei55NmFlBKtDjXVMHNbiBhHn76QH3r/T/BEBZyVv2Dd/+z3j957ZXuFzEGJMHNC/XaGmYAAACIhq5BJ+INAQVKnStzZqZ0svU/tgJWOz8uwCpOJJ0L0VrVAu/7aEOLQRSeiHdtf9nwB8QG9wYoMnf2bsg1KoXNl7BGPuwdfvPA/yCKzkI+UD967eszf6RefekXDn6t99/Nfab7eYwCcbhyb2t740K91sYUAAAAkWgquwW6QdPLjpqerila0aJeokYEDjralhIpUWbQ4XWs5jZNpAtK83QhIqtawmOSm8KK6ndWkcYVLbk4aFQBReLO3g25oUlExzWskR9/fbR78HH3YwQ6y3lf/WDu3828rqozv3VwTtXmKr3PYhSISuve1vbihXqNqHwAAIAQ6Cy9KznvxqDmfVslVC5LR4w1tMYQBvnOeslPu+gt00RMT5+LE5yaYGiTZglE0hWfWX2juOKf85v+Z5N0WLAd3RRiXbldxyF3Hnzynnr3ox8h0BWITuWtuXfUf3j8ld5/O/Na99fpwgtRkBd9LdV/+w0AAADmNDPclkTEddTzsledtIJydFNLiRqT+cFGCB9twYFzLprZtHJMoSLpTIoDdxwwqktFkkWsa+hOK6TBgnXounPrjtzQreZp94naO3w76M0QWEhXPT39H2fuqL986WtHC73fm6VeHURg6d7W9vKFeo25AgAAgAE6CGolhZ+W+bgIQW39uZNXhpxO7xR/7e0QdvG0yFdW5FxME+nG6k2TRLqqwUnoOHA9nXHs/iEO9xsSVeefX4pDgxXo1Nb1lB5sEIHvHf7ZwZPeE6LoCox0gpV6da+99CsHX+79U+rVQVgGaa8dTAEAABBIkhHom6ovyrXjpKmmgexP/eLS7RB+m6fGpHuWiKB5UqhIumrAj+06cjG5FEk3jKS/nvEvsgb3U8iTO3s3RCxuKiK2rOG9j3786PDTIwS6kvCu+v7c3838i0e/8pL36S8+/W2uMzBFxkpLT64BAABgOnFFum393N0oQHkq8d1MRbpqyc97J+DvYzPEKhNWDhKnXKlb5rLDIo0l1hVADtzZu7HoL/Jm6HWFQGcNkub6lw++VcES5aKrnn5uT31t9k8rNw9+WvkhBgFTave2tom6BwAACMaL+D2Jmju39eampIW2ilA/XmdcmgZ1VUt+3jtBK+iGIieY5GwFpXnuOHIxnRe7+ctVf7mu+gr2tkM3E4moozg0ZIaktvqLiMNSy4Dac5Yhaa7dXpeGAyXl4czRnKTA/tXMmwfdmU8wCJjQvLe1XcUMAAAAUwkbdCC15i5vvbm5XNAyY6Z6UdnnEDtRbBC1cYQTkXRDOd7t0b/p4o9ip9FPMfJ8iczQEnWXrq+QNroxRKtk109pIM3VHaQL7N+oP/vofO93u7Pdc5/DIhDgdMh928MUAAAAL6KbKYRBBDrPtnpzYaeThuuV2u8TDcU//0GrVUf/w6kpk65ptF2/2LRoNbDDxpiLsaoNPliGhbwipe/Jvg7qggEkjm4MIU7eEtawE9JcHTzn6snL35j518eNJb7S/Z25Su+zGAUmcZz2eqFeo0QGAABAfJYLLtDBSST1d1qGWHX0P7wg0tUvLi1ix/josNTOpL8PKerDn2eUnSl+a1Kfjmg6SJo7ezcknbqlqDtnNTrNlSg6B5HGEgeV/5WoOghC0l436PYKAAAQi23f526X4DiqnMpnHIa11bhIuqB6dKokAydXhmz4gi3HpNJWh5Y8QkJFQBmIKQCxIXquOJDmCkTVgeE8Qe7pHqYAAACIzEZJjoP5wHMkKrI25e/V0f8wTqQjki5nQqTSjtbEq6W4W4h0kAi69tyGInrOekhzhWGIqoMAJO11+UK9toEpAAAAIlH4NNf6xaWGosb4MJlE0m1j53wZSqVtT7gwPP1P+VzUS9wLhYgniIWOnmv6yxWsUQz2P/w2aa5wgkFUXXXmtw7OqRpRdTBKS7q9XqjXKI8BAADgGDqYiBq1JwkSXl/QacaJdFXsWGzGpdLqC0ai4dZURMFO6hVSxBKicGfvhgjFLWVnzUUYw4NP3lPvfvQjBDoYi3SA/bHaOfr17urs6R7DBJ4xSHtdxhQAAADHhHlxVS3qQereBmGzpfY5/32tRgdiHVOJMDAQaQqInHR/keYPcn5XVb+1c1hIhYbQ3Nm7IcLw2wqBrlDsHb59hBVgGh+px7N/UvmX6m9f+v8YKzDM0r2tbQ8zAAAAHPvhYfSTatGOT+rp+0tT+3thg4E6DgyBnbDnPYpIRwpD8W8ULX2ed0N+tYr1wBRJb/WXtv/P17FGsXjnw+8ePek9oWYgGLGnvjb79kv/x8GnlQ8xBgyQtNczmAEAAOAY0xeahYlEl+gvLc51/OVaxJ9pl/3E634DQZyYM40T6YLUTyLpyjNYllW0iDqAqejmEHLDrmGNYvHx00fqB4/2EeggFO+rH8z9vzP/4vFR5f4jrAF6LrmGGQAAAI4x1VAWdJkqK5GUVn9Z8xc5nvuqL87NZmCXohOU1nsiY/HUiNFN3noSSVcSJAXWP+frylz55q04BHJn70ZTRX+bAjnzvcNvHvgfFBmD0HTV09ODphK/1LvIGIJr97a2WxfqtQ6mAAAAxxExyjR4oaX6DSBzRWtDi+p5M0r5TPJF/tHWm5uudISXuZBxKvBo44hFww1AeZCbgKmgQk06mIju3rqhiJ4rLO999ONHP33yEHEF4s1CKm/Nvae++/753uqrn+l+HoMwx/AwAwAAOE7bX64YrlurX1xqbb252chq53TTh6r29wfLfMqb3XDo/AcFup2YK50K++vDXSeg+OhoOtPVSXWGsej01rDdfMAinnafqL988K0KloAk+FAdvirpr/+4snr6le4XMYi71O5tbTcu1GstTAEAAA4T1o9e0WmvTd9fbyexA/r3ZBEBToIrPP3/53OySdOx828suoyKdF7A+tQvcxtSneEFdPdWmkMUnP0Pv33Q7XWJooPEkPTXr8/8kfryS//10S8+/W0EfHdZv7e1vXGhXmMOAQAATqIDY6Rp40KIr0l20pb/PalnJsEQIvR0xCcf7hg7JL4N8PRndWiZt8wkNwn+OsHkmnQGlD6SSudeV0O2SgZwDp3e2lIh3gqAnTz89IF696MfIdBBKkj318OX3jn4Svd35iq9z2IQ9xCBtqloJAEAAG4jflOUwAYR2E6kyobIhLORfeVWFJ3QVtNLjJ14mT0q0lW5do5VzC098GUAdYYWEe7kTfCOYStd69H556bwFhyOubN3Y1E/aBawRvH5qwe77/ofr2EJSIt31ffnfjrzrw4W1O/Nne6hBzvIFd1EghegAADgKhIN53r2kWRmLpdFS0kSCRYb2CWsSOfC5GpYtJrXS22MEeVDQlbFkG39n48/k8obzwgvxLpMroH6cyXjJ4/eefzwyUMEOkidhzNHc38684ePf7333/dmu+c+h0WcY13RRAIAABxFp7xuKrezkBqOZix2DNYRHaot/wib7uqC4nkmxLqDKKKBiHccwqgFPFGJn0XeqaGIPMvyr9cSHlxQYqg/Vy6kWcT+T7/3if/P01gDskDq1H1j5l9Tp85NaCIBAACuIy+sXBTpBhF0bRdPeshmnS+IdLWA9TsO2HAxod+ZHbLniTMykko7LORlmkrr70dThSgiSXFHt7mzd0McqxUsUR5+8PD7R096TxBKIHOkTt3Dynvv/0rvv3mVOnVO0aSJBAAAuIqIVA5G00n2YYOa/8dC5TS/K3IkXccB453JaDtBqbTb+v/KiXom4iU1uLVAdy3EV7a5rbqJbhAh45D6cyXi46eP1A8e7SPQQW787czOq0cznfe/2v19hDp3kHmPRGQ3MQUAADiKPAc95UbpoOtbb27yzO8jOs60oLhnOtQzkU637oXkIuniUhv5HJwn+Rik0nZGl2nRbrpz7bKeHIdtw9xmaLiHbhCxoexr2w0x+euj3QP/gwr+kCsfqsNX36rcPPr17uosDSXccU50E4kOpgAAANfQqY8i1N0q8WHe9pcmmXiheFGkU2adXV0IUZwtyD7W1OQovEEqrRo5v3GEljbXjVtoga6taBBROh588p46/PQIRQSs4CP1ePZPK3/4+B/3Vk+/0v0iBnFjniU1eZYxBQAAuMjWm5st328XX+tKiQ5LAokkuANxbjxik2mRdM+CxSohB1Opa4j4F4pXkkMZpNEOL3EEuiNXizy6yp29Gw3/422FQFdK/vLoWwdYAWxCGkp8feaP1EHlO4+xhhMs3dva9jADAAC4iu9fSzTdzRIcitTYW/WXqn9MDQS6iRjbZTiSLijN8wi7OssGJnAHOriWm588eufxx92PiaIDK9md+ePTdH51hqbq1+QBAABwEhHq6heXJFtRIsyLMvcZRMy15bPsgVwZUh38Y1ikC2qY4EKqK5PF8bQwgRvQwbXcPO0+Ufd/+p9msATYzKDz65e7/+xVrFFqave2thsX6jXmGAAA4Cw69bWtfe6ahbso3VlFC5J93KFLa2TEftMadz7LfDyFrU5wBhO8wDapruVHd3CVNzgIdCXmBw+/f9TtdYlQAuuRzq+fvvTw4Cvd35mj82upaSpeBAIAgOPoFFFPl9+SrKalHHZj0Jxy0KByBx0gH4ZFOi9gXRfCGBcZEmMn0FBitEAnN+AFrFFePn76SP3w0TufwRJQFN5V3597VPmD97/a/f1XEepKy/y9re3mhXqNuQYAADiPFsXa9YtLVdVvsOTpJamX7AMh7lA9F+Nk2SFtNX+kmYhEKoaJpHMhrJFIupMQRVdyEOjcYf/Db7/bU73XsAQUiQ/V4avfQKgrO2v3trbXL9RrOAcAAADqWWTdul6UFu1k8YZW88Z8taNONigYCHKHpKnmfk5FfA1a7ViPIt31JEwQnyMqewMzlBcEOneQKLr3Pn4PgQ4KiQh1/2HmXx0sqN+bO92j50kJkeiApuqn9wAAAMAIWrTraN8NSk5l6N9BRQoPHRj8nr/MyOL/37perqt+a+Rt1S+a6ArLtE8uL3f2bizqGz0CnQN87/CbB1gBiszDmaO5P6384ePHMwzlknLl3tZ2FTMAAACAwxyXXyPddQJDaZ7t0b8NhZuOLmLUMhRlXyXNtbxoga5dkrEKATz45D310ycPCT+CwtNVT0+LUPeb3X9+moi6UtJURPADAABAeZHAr2nBcaS7RmUo3HQsUvBPG3jw6ek/1Sw/NElxXUagKy8IdO7R+fA77/ofpLpCKUCoKzUrujYdNXMAAADAWY5FOi0qBUG9NkOGijK2R//m23pYvBv+rPrLfI67vekva6S4lhcEOveQKLqHTx4i0EGpQKgrNVIg28MMAAAA4CBV+Z9BJF1gV1O6gSSDbm3c1v93Y/TvY1Jph4W8NMQVEefWiZ4rNwh0brJ3+PYR5xzKCEJdaand29r2LtRrzEkAAAAKyJCeMcpA1xjFG/xDegSU3Dwyv5mWXXlsN9JdLcMgldYbGcyeHuymDQD2Vb++oAyQDSLnyg8CnZv85NE7j5/0nnDOobQg1JWWpiKaDgAAIDWGynONMu75OwgYGqWq8s0ELC3GkXRgB9MaWugLzjP4LjgCAp277P/0e5/4H6exBJQZhLpSQjQdAAA4zwS/fpJghpBWIgYiXVBNul1MVQwQ4mAAAp27EEUHLoFQV0qaimg6AAAoMfWLS1KHdVGlV9YK7KMT8PfjVNiK4Y/RNAKgQCDQuY2OogNwhoFQ93jmAGOUA4mmW8YMAABQYsRfq+GvOUXHZKUKdgIoFwh0bkMUHbgKQl3pWMcEAAAA4BoDkS4o3ZVIOoACgEAHRNGByyDUlYr5e1vbDcwAAAAlpY0JTjKtvr5DNjgzEOmCGkfsMGQA7ObO3g25jjcUAp2zEEUHgFBXMpqYAAAAAEqCia62eAo79alfXOqofueTfTU5V/hQG7az9eZmC6uBLWiBrq3o3uM0dHQF6CNC3e7Mvzn4DfU/zlV6n8UgxeU4mu5CvcacCwAAAArN1pubh/WLS4HrIdINTQSHPqcJHWLVbX8p3ITRHxBt1S9OKd16J6UwdwYLQmQxGBLoFrCGuxBFB3CShzNHc9+Y+YP3v9r9/VcR6gpNs4hzLgAAAIAoDES6KqYIRSfOl3WutTfmTxKl94J4tvXmZjvh/Z8m5tT0ZyGFSEdpKwQ65yGKDuBFPlSHr36jglBXcIimAwAAAFc4MxDpglLk2tjqBJ2Y3/f85VqI9WcwOYzjzt4NcVoQ6ByHKDqAyYhQ953Kvz34tae/O4c1CktT8eIQAADKBc05X+SMA8e4G+C/L1YYB05RxQTlQQt0K1gC6OgKMJ131ffn9ir/1/tYorBINN0yZgAAgBJBc84XWXTgGAPFWUQ6twYfTQVKwp29G2sKgQ4UUXQApvztzM6rfzXzJi1fi8saJgAAAICyQ+OIfChCGGeH02Qnd/ZuNPyP17EECNSiAwjxYKu8NTfb+4XHc92vcM0Uj9q9rW3vQr3WxhQAAADRXIcJfv7Y2vhqfNkz0TI8fxGflECBFDilmxgEzmvLbATfBmcsv5By8WW4POzjzt4NicK8hSVAIIoOIDy7M398+quV/+HRbPfc57BG4Wiq8Y23AAAASjNVUeaCmaw3Lm32cOvNzUTTaesXlxqqL8zVOEWxCEp3rRpF0vknuFNyQ9mc+9xhHIOgBbo2loABRNEBROPPZ/7Pmd+c+efqdI9eEgWDaDoAACgFW29uyrPM6gaR9YtLVdUvN9FQ6UfN7Tvi64p4ujTl71XSXaNBJxbIlDt7NyTac0MRUgya9z/6sSKKDiAaXfX09Ncr/9tH/1X3f3650vssBikWTUU0HQAAQGpkHDV3219aWrQERU26qNCJBbJGblo0/oBn/O3D77/rf7yGJQCi8VQ9efkblT94/6vd338Voa5QSDRd9UK91sEUAAAAyZBD1Ny66otzBECNgEjnzkV3BisUkzt7N1r+xwKWgAEPPnlPPXzyEIEOICYfqsNXvz/z/7z/5d4/exVrFIqmdiIAAAAgnk7QUETNWYWIdEH12I4wU+JUc9jmImYvHnf2bsjbjBUsAcN0PvwOUXQACfG3Mzuv/uxLXzj6xae/Tfp4cVi5t7XdJJoOAAAgPDlEzbVUX5zjuR3MGRHpgiKsSO1MniKkLRJ2mjN39m4s+x+vYwkY5uOnj4iiA0iYPfW12ZcrZx/Pdb9CI5bi0FRE0wEAABhTv7gk/qWIc1lEzW2qvjC3geVPEKSvLZDuaj+Hlg4eSBHdybWFJWCU/Q+/TRQdQAr8xcwbvd+c+Xt0fC0Oy/e2ts9cqNd4qQgAADABHTXX0EvawUJEzQUTOG9BpOvjWbxviGWOoTu5ys2N1Cs4gUTRvffxewh0ACnQVU8/9+eVW0e/1b0ySyOJQiDPSIkGaGIKAACAk+iouYa/LGWwuW1/WSdqLhkQ6QDsQ25uNIqAF3j30f6RQrwFSI2P1ONZ6fj6G0//JxpJFANEOgAAAE3GUXPil7RUX5zrYP3kQKSLAN1IIC3u7N0QZ6OGJWCUp90n6oeP3iG8ByBlpOPrX828efBLvYvkvdrP7L2t7caFeq2FKQAAwFVyiJqTdFaevSmBSAdgCbpRxDUsAeP48ePOBz3VO4slANKnU3lrbrb3CzSSKAZNRQ1XAABwDKLmyouIdF7AOtRES/ZiOpPTpj2sby80ioAgfviwU8EKANlBI4nCMH9va9u7UK+1MQUAAJQdoubKj0kkHV2zkmURE8AwNIqAIH7y6J3HT3pPGB8AGUIjiULRVLyMBACAkpJD1JzUSJeoOQK2EkZKp/nnc+o6pLvCxMGDFTJjXdEoAqbw48f7D/wP0u4AMkYaSXyn8m8Pfu3p7xJOZze1e1vb1Qv1WgdTAABAWcg4am5X+6UbW29uEqiVI4h0fWyObmtzesrLnb0bctNdwRIwiYefPlAPnzx8DUsA5MO76vtzP1/5849e6/76y1jDaprakQEAACgsRM0BIl2fM5gAskbXoVvHEjCNHzzce9f/QKQDyJH/OHPn5Z+b+YfUp7OblXtb22sX6jXe/gMAQOHIOGpuX/VfbhE1ZyGIdBEGtKjbdDWBOFCHDkz4+Okj9d7H7yHQAVgA9ekKwZp2OgAAAKwn46g54bbqN4JoY317QaQLj1w896cU+5OQ0Wmhop2Q21vU29pB5S4V1KGDQN59tC/3E4RcAAugPl0hECeniRkAAKBAz61rKW9jX/uerTT0hPrFJW/Mf5aAlHElxap6GWVxyOepuy4iItIljwyu2pS/10L+3utDF8C0C68z4W9yIYpouMypsQPq0IEpP3z0DiE7ABZBfTrrmb+3td24UK+1MAUAADjOcdSc1gJEBFsc0ROqarJgNq4cWA2TZgMiXUkmpWp6eOwSJrKDO3s35EZIHToI5CeP3nncUz06ugJYxndm/u8u9emspqGdEgAAANtpq/Qi6VZUMQNDPOV488wK1wWMYRcTpIZ0zyF9EQL58eP9B1gBwD666unndmf+zUF35hOMYSe1e1vbi5gBAAAAioiIdEETmY4DdqgyFE5A7bsUuLN3o6moQwcGPPz0gXr45CENIwBsvUZnjubuq+0DLGEta5gAAAAAioiIdEFRPR0H7DDPUIA0ubN3w1PpFwWFkvCDh3vvYgUAu+lU3pr7aeWHGMJOlu9tbZ/BDAAAAFA0SHcFSJk7ezfEUWhhCTDhafeJev/j938OSwDYzzdmWh+R9mol8gK6gRkAAP5/9u42Nq4sTQzzFdWtlvpjSPWwp7une8xqr6d7dz4s9WR2dnsXNqsY00q8HhfpZDP2AguVks0kMRK0BDuOAxjokg0DAWJkqB8O8stT8o8kyNewgASJQGRY/OEgAYJdCVgsYCyCpbCxnXGYWWlXO93T0yPmHvFSzVaTvLeKt6rux/MA1aUWj8iq997De+5b55wXKKBjtxeTpIPxC4UizNYkk//n/e0/UDACyuGn0Udnf2fmv7fstZgseQWg6Gwz9WlzdT/uknQwRv/jP/lPV6JyVtVhSv7ZH2/7vQwl8oPod+fvz/zej0SicBa+v7nVFAYAimpzo39bFD6l9sWf3AzCmFjmyrD+8MP/L/po9yPVf6FkfvPUf3nqJzN/JBDF0xECAKBMJOk4zLYQ5KIXpRdmgcf++R//X78vClA+D6OfnvvtU/+NZa/Fc1kBCQCgTGqfpGsttw3ePm1bCE4mWebaFgmyelQw4sMffkEkoJx+GP3T+R/M/OYHIlE4HSEAAMrCTDprnsmZZa6MIhSMEAUot9859T8/tOy1cBSQAABK4ykheDRr7PqB/w9Ju6Nm1zUiVTpJ14ssc2VICkZA+T2MfvpsWPb6dvRvzYtGYTwqILHUWhwIBQAFdL+k9453osOrlB52vQ3tDiuSsb250d92CnxS7ZN0yUnRPen3SZbNHjcrr3nM1yQGK8IyV0ahYARUR1j2ujPzO+/PP/zSOdEojM4RNw0AMG0hebU4pu+9dcjfHZkwiw7f9ur25kb/nsM0OWbS5SQ5cY8bAOY+OBxjYnDbET3RjcCWMDCM+z/+fz+Mn86IBFTD70b/eH5392vPi0Qx/HDnwz/35371v/pPnvvxR/YMBCbqr//y+fk/+40X6lBYaH2ptXjbER/JMAmzo/5eIq1CJOlKbBqJQY73F9/6D1dEAYBT37sXrsGLIlEAT8fHI/q/vx3/6bxgABP71TNz6kdf/uKzz9bk7fYc8ZHv6e2dyifYAwkAIH+daG+fGQpg980vGPMCE/XXvjE789nzp+vwVvtLrcVtRxzyYcACAJCz3dW5cMPSFYmCeOsN+34CE/O1F5/eWXrnM2dr8nZ7jjjkR5IOAGAMdlfn1iL7lBbDC89FDz43+/sCAYxbWOb67/+lz9WlyvfdpdbiuqMO+ZGkAwAYn05k2WsxfOVPfUEQgHGr0TLXoOeIQ74k6QAAxsSy1wJZ+Hz0x8889QcCAYxLzZa5Bj1HHfIlSQcAMEaWvRboWCggAYxJzZa5BgpGwBgYqAAAjF8nsux1+hSQAMakZstcg56jDiNpHPdFSToAgDFLlr1eFYkpU0ACGIMaLnNVMAJGt3DcF0OS7k7KN2iKIQDAyeyuzvXip75ITPtu+ucUkAByc+b0qQ/+5rdema/Z215z5GE8QpLunjAAAExEJ37cFYYpevWl6MHZpyw9BnLxt5fnH547e6pub7vnyMN4WO4KADAhu6tz4cPRjkhM2Zf/5ENBAE7qW2+e27nwc+eerdnbvrnUWjTRB8ZEkg4AYIJ2V+cG8dN1kZiit944/5PTM+8LBDCqN547vbP6L8/P1/CtW+oKYyRJBwAwYburc90ofV9gxuWZM9GPX//sHwoEMKq/8c3PzddwmevWUmvxtqMP4yNJBwAwHSvxw95o0/LzX31ZEIBRvPuLcx+8/urTdXzrPUcfxkuSDgBgCnZX57Yj+9NNzwvPRQ/OP/8DgQCG0XzlzM7SO585W8O3fneptdhzBsB4SdIBAEzJ7urcevx0QySm5O23zKYDMnvxmZn7/+7qy/M1ffs9ZwCMnyQdAMAU7a7OXY3sTzcdC5+PHpx9ypJjIJO/u/rybA33odunYARMgCQdAMD02Z9uWr78Jx8KApCmxvvQBTeXWov3nAVwMq3ldiOtTUjSbae0uSiUAADjY3+6KXrrjfM/OT3zvkAAR6nxPnT7zKKDfDTSGmRJ0s2JIwDAeNmfbkqeORP9+Gde/WOBAA7zxnOnd2q8D12wtdRavO1MgMmw3BUAoCCS/em2RGLC/vRb84IAPOnpmVM/+hvf/Nx8jfehC8yigwmSpAMAKBb7003aC89FD74w//sCARz01//M+VM13ocuuLvUWlx3JsDkSNIBABTI7upc2Jy7KRIT9uU/9QVBAPZ9681zO+987flzNQ9D15kAkyVJBwBQMLurc2H/nysiMUGvvhQ9OP/8DwQC+NqLT+/82q+8VPdl8PeXWos9ZwNMVpYkncIRAAATtrs6F26OborEBL391suCAPX20jMzf/Q3v/WKfSrtRQfjcDHl6/dDki6tUssFcQQAmLzd1blOpJDE5Cx8Pnpw9in7AUJNnTl96v3u6ssv1LxQRBB+D0rSQf7SJsHdDkm6e+IEAFBYoZDEHWGYkK/97BlBgHr628vzuzUvFLFvfam1KE8AU2BPOgCAAksKSXQiFV8n4603zplNB/Xz7i/OfXDh5849KxKPdIUApkOSDgCg4JJCEisiMSFfVOgV6uSbC2d/uPTOZ86KxCM3l1qL28IA0yFJBwBQArurc4NIxdfJ+Oqbsz85PfO+QED1/czzp3/4G3/5cy+KxGNdIYCxSS3MGpJ022mNWsvtplgCAEyXiq8T8syZ6MdfWvhQIKDa3nju9M7f+/XPS9B9rG8WHYxVWnXXwczmRl8nBAAoiaTiq0TduJlNB5UWKrn+jW9+bl4l109Q0RWmzHJXAIDyuRqp+DpeZtNBZT09c+pH3/nVV86p5PoJW0utxYEwwHRJ0gEAlExS8bUZSdSN11tvzAoCVM9f/zPnT0nQfUpXCGD6sibpGkIFAFAcSaKuEz/ui8aYvPBc9GDhpR8IBFTH31p88f13vvb8OZH4BLPoYDLS9qS7t5+k20pp2BBLAIBi2V2dux3tzaiTqBuXn//qy4IA1fAbF164L0F3qK4QwESkzdC/bbkrAECJJYm6FZEYE7PpoBK+uXD2h99cOm8J+6eZRQcFIkkHAFByu6tz4QbrikiMidl0UGohQfcbf/lzL4rEobpCAMWRNUk3J1QAAMW1uzrXiyTqxsNsOiitC+ef/oEE3ZHMooMJaS23L2Zo9nhPutspDS8KKQBAsUnUjZHZdFA6P/P86R/+x3/lFX33aF0hgIlJnfy2udF/vCfdPfECACi/JFF3UyRyZjYdlEpI0P29X//8i+fOnhKMw5lFBwVkTzoAgIrZXZ3rRBJ1+TObDkpBgi6TrhBA8WSdSWe5KwBAiUjUjYHZdFB4EnSZmEUHk9dM+frd8J+se9IpVQ0AUDISdWNgNh0U1p949vQPJOgy6QoBFM52+I/lrgAAFSZRl7Mwm+6rb9wXCCiWM6dPvf8f/aXPvSxBl8osOiiwzEm61nJ7TrgAAMpHoi5nX31z9ienZ94XCCiGkKD7zq++cu71V58WjHRdIYCpaGRplHW5a2BfOgCAkpKoy9EzZ6Iff2nhQ4GA6Ttz+tQHEnSZmUUH09NI+fqjvvkoSbe50b8nXgAA1SZRlyOz6WDqQpGI/+LXP39Wgi6zjhBAsQ2zJ53lrgAAJSdRlxOz6WCq9qu4fvb8acHI5uZSa3FbGGBqGlkaHUzS3U1pa7krAEAFSNTl5OtfmX1w9ilFJGDC9hN0ikQMpSsEMFULKV9/tA3dwSTdtpgBANSDRF1OvvazZwQBJkeCbiQ3zKKDwnu0DZ3lrgAANZUk6q6IxAm89cY5s+lgMiToRhJ+P3WFAaantdxuZG07zEw6y10BACpmd3WuF0nUnUzz67OCAGPuZq+c2ZGgG8naUmtRoUiYrkaGNpa7AgAgUXdir74UPTj//A8EAsbjmwtnf3jtr74yL0E3tLDv/JowQPFtbvQtdwUAYE+SqGtFe0ujGNYvfOVlQYD8hQTdb/zlz70oEiPpmkUHhdDI2vBgku52StsL4goAUF27q3OD+KkZSdQNL8ymW3jJbDrI0bu/OPeBBN3I7iy1FnvCAIXQSPn61v4fDibpZNgBAGpud3UufHDbDDd4ojGkn//qyx/NnPqRQMDJ/a3FF99feuczZ0ViZFeFAMpnmOWuoSKF4hEAABUnUTeiF56LPvhy4ycCAaM7c/rU+39/9eXona89f040Rra11FocCAMURjPl648nzT1O0m1u9LN0YvvSAQDUwO7q3L1kUHlTNIbw1TdnPzw984FAwPDOnj714+/86ivnvth4RjBOpiMEUCqPt5+bEQsAAA4TEnXxI9zs3RCNjJ45E334C1/aFQgYzs88f/qHvW+//szrrz4tGCdzY6m1uC0MUCiZJ7w9maS7m9K+KbYAAPWyuzoX9ja6IhIZvfXGuQfnn1dEAjIKFVz/3q9//sVzZ08JxsmEoj9dYYDCSSvEeuRMum2xAwDgSburc734qRWp/JrNL3zlZUGAdN9689xOqOAqQZeL7lJrUUFIKJ9P70mXkcIRAAA1tbs6N4gUlMjm1ZeiBwsvmU0HR3h65tSPQgXXX/uVl+ZFIxd3llqLa8IAxZKxAOuRSbpByj9UOAIAoMYOVH7ti0aKX/7ayz85PfO+QMAnnTl96oO1f+OVZ1VwzdVVIYBCSs2jbW70Ry4cIUkHAFBzSUGJlfiP10XjGM+ciX78pYUPBQI+FgpE/KNvv35WgYhc3VxqLQ6EAQqpMUzjYfekuyC+AAAEu6tz3fhpNbJP3dG+/pXZB2efEh+I9gpE/Gf/9mv2n8tX+P1iFh0UVyPl65/YQkThCAAARra7Orce2afueM2vzwoCdba//1woECEauVMsAootbUXqJ/rvzHFfPExrud0UYwAA9h3Yp+6maBwiFJF49fyOQFBHLz4zc9/+c2OjWAQUX1rhiO2D//OJJN3BzeoAACCrZJ+6TvzHa6JxiNY35hWRoG6ar5zZ+c//zddm7T83Npa5QvltH/yfmRG+wUUxBADgMLurc2FWx9vx465oHBCKSLz9RRtxURvv/uLcB9f+6ivz9p8bG8UioBwWU75+7HLXYCvlG6jwCgDAkZLlr+GD3b5oHPDVN88+eP6sZa9UWlje+g/+yqvR0jufOSsaY6NYBFTHJ1a0mkkHAEDukuWvK5Hlr5+09PPzgkBVWd46MVcVi4Diay23h86fHZakG6T8GzPpAADI5MDyV9Vfg8/ORQ/efM1sOiolVG+1vHVitpZaiz1hgFJIzZ9tbvQHB/9/lJl0DXEGIIuHt+YtxQAOVn+9IRqxr39l/sHZp+4LBFXwxnOnd0L1VstbJ6YjBFAaucykS6vwuiDOAKR5eGs+3JBL0gGPJMtfw++E1WhvP6X6euZMFL3zp60HpPR+7a1n/2jt26/NW946MdeXWovbwgClkTaT7lM1IQ5L0qWubW8ttxtiDUCKsBfVwsNb8/YyBR7bXZ1bj/ZWZtS7qETjtWcfvHresldKKRSH+PurL0ff+gvzL4jGxNxZai12hQFKZSIz6aLIklcA0q088QzwyIGiEvWeVdf6xvyHp2c+cEZQJt9689yj4hBfbDwjGJPVEQIonbSZdIMn/+JTSbrNjX6WKjENsQbgKMnsuf3tESTpgEPVflbdM2eiD//sxYfOBMpgf/bcr/3KS4pDTN6NpdbibWGA0sllJl2QVn2rIdYAHKNz4M8XHt6ad90ADlX7WXWWvVICZs9N1d340RUGKKXZlK8PnvyLo5J0abPp7C8EwHFWUv4f4BNqPavul9+e/2jm1I+cBRSN2XOF0FlqLd4TBiiX1nJ7pLzZUUm6tKm0c0IOwGGSWXNPVgLviAyQ5olZdXdr88ZfeC764GtvzjgDKJLfuPDCfbPnpi4scx0IA5RSat5sc6P/qf5tJh0AeTts1pwlr0Bmyay6MN68UZs3/dU3z1r2ShG88dzpnX/wV16Nvrl0ftbsuamyzBXKrZny9UO3+DgqSTdI+Waz4g3AETpH/L0lr0Bmyay6q/Ef347S90uuBtVemaIzp0+9/+4vzn2w9u3X5l9/9WkBKcB4yjJXqLRDV7COOpMurK9tiikAByWz5S4c8WVJOmBou6tzt+NHmFV3Lap6YQnVXpmSv/Anzv7gH3379XNL73zmrGgUwnXLXKH0milfPzTvdmiSbnOjn6W8s33pAHjScYm4xYe35l07gJHsrs6tRXuFJW5W+o2q9soEhaWtoTDEv/Ovfe5lS1sL485Sa7ErDFB6afc9Q82kC9I+qbQvHQBP6qR83Ww6YGTJEtjweyYsgd2q7Bu17JUxO7i0VWGI0o2lgHK4kPL17cP+8rgkXdpsuoaYA7AvmSWXdjGSpANOLFkC24z/eCWqYhXYsOx1+RuWHTIW33rz3I6lrYV1bam1eFsYoNxay+1Ghmbbh/3lzLD/4ICG0ANwQJYEXNuSVyAvu6tzvWhvdcf1qGr71b36UvTgzdcseyU3zVfO7PzDzmvRr/3KS/OWthbS1lJrcU0YoBIaGdoMvdx1O+UbWu4KwEErObcDSJUsge1GVdyv7utfmX/w/FmJOk7kwvmnfxD2nbv2V1+Z/+z50wJSTOFDho4wQGWk5ss2N/rZC0ck0qbZzoo7AEEyO66dsbkkHZC7A/vVvRFVJVn3zJkoWvr5+Y9mTv3IEWZYLz4zc//v/Csv/ejvdF592b5zhddZai1uCwNURtrKoSP31T0uSXcv7ae2lttNsQcgGi7x5toBjM3u6tx2pYpLfHYu+uBrb844smQVknN/a/HF97/7116fvfBz554VkcK7udRaXBcGqJS0+50j821HXvA3N/qDDD/YvkIABMMk6WYf3po3mw4YqwPFJVpR2ZN1X33z7INXz1v2yrEOJufe+drz50SkFO7Ej6vCAJXTSPn6kStX0z6VS6uWZV86AILmkO0l6YCJ2F2dG1QiWdf6xvyDs0/dd0R5kuRcaT3ah26ptXhPKKByFlK+vn3UF2ZG/YcJSTqAmktmxQ27T6kkHTBRpU/Whf3pml+3JzSPSc6V3tWl1uJtYYBqaS23s+TJto/6QlqSLu2XhuWuAIyScLPkFZiKJ5J15Sow8epL0YOvvmE2Xc1JzlVC2IeuJwxQSY20BsdtL3fSmXSL4g9QeysT/ncAJ5Yk6zpR2arBfv0rsw8++4L96Wrowvmnf/B3/9WXIsm50rMPHVRb2ky6Yz9sO+lMujCVr+EYANTTiEtd90nSAVN3oBrs+fhxPW3wXAiXfsn+dDVy6fWzv//3V1+O/k7n1Zf/9M/KzZWcfeig+tKSdMfm2U46ky5oOAYAtXWSRFtY8mpvU6AQdlfn7sWPbvwI27lcidILqE1P2J/uz79jf7oKO3P61PvfevPczj/svBb9tV/93Be+2HhGUKrBPnRQfWnbwo2epNvc6G9neAFNxwCgtk56DegIIVA0u6tzvfjRiIq8b91n56IHX3/rA0erWvb3m/tH33793K/9ykvznz1/WlCqwz50UA9p28JtH/fFmQw/IK36VcMxAKifZBbcwgm/jSWvQGE9sW9dWApbrNl1X33z7IPG537oSJXf/pLW/f3mzp09JSjVcmeptdgRBqi2jNvBnWi5a7Cd8vWGQwFQS3kMNhcseQWKLtm3rpvMrluNH/3CvLhfevvFBy+clagroTBr7j/4xuwf/Nf/3hcsaa22sA+dDyWhHhoZ2hybpHsqwzfYTvm6Cq8A9ZTXgLMTqXIGlMTu6tx6/LR+6nv3GsnvwfD7a2FqLyjsT3fpl178yfcG7z/904eqChRc2Gvuz732zB/+yi+df/n1V5+2r2BNxktLrcVtYYBaaKZ8/f7mRv/YwjFZknSD+PHecQ3ClL6M+9cBkKOkuuo0ZqLN5XhTuhK/j2lVOVufubRjA2dgaGF2Xfy0Fh6nvncv/B7uJI/JJ15eeC768fI3zj39v/zvDkxBvfPS07+/+KUX5sNS1vh/JVPr49pSa3EgDFAbjZSvp9535DGTbv+FbDseABMXBn4hUXe5xO8hJPvem/DPDEtPrkrQAXnYXZ0Lv0vCjLqrp753byX5vRwek0vYvfrSo0ISz/+f/+SsI1IMbzx3eucvfvn507/8L33m/Lmzp74gIrUTCkWsCQPUSiPl6ydP0oUZcq3ldlqzZnKjCMAEzVzaCTPQOg9vzYffwWvRNGZwlM+dcPMcx25bKIC87S+HDX+eeMIuFJLY+YMfPr/9L150JKZjPzH39peeP//Z86fnRaS+Yw2FIqCWTlTZNXgq4w/aSvlhDccCYHpmLu30kkRduDG8ICJHuh7HqisMwCRMJWHX+oUXH/x3Gz98/o8+kKibkLCU9etvPPu8xByJMFu/KQxQL63ldpYtiHJZ7hpsR8cn6VTmA5iyZGbYxYe35rvR5JePlmHAHGbPDYQCmIYnEnb7e9iFG/n8P1j55uKLD/6H//X+8x98ZHb1GITiD61Xn9l5+2eenb/4pefOWcrKE+ON5lJr8Z5QQO00MrTJLUkXvtFx+x2ZtQFQEGGmWDKrrhdNs+JgcfTDzXCyNBhg6g7sYRclVWKb0d4Mu/B88sRaqPj659+Z/cn/9I9VfM1JWMa6+Ma5n/78V14IVVlDTCXmOMzVpdai/W6hntImr6VWdg2GSdIdK0zti3+gX0gABRBmjD28NR8uFL340a5pGMKn2d04FjZtBgorqRLbSx77s+z2E3aLI3/jz85FP/6zF3ef3vxNQR7Bn3j29A++8fkzH1344vOvfbFxNjp39pRlrKQJlVx7wgC1lZaky5Qvyy1JF+1N7ZOkAyiIZObYysNb852ofkUlQnGIjuqtQNkks+we/+469b17zWgvYXcxGnamXeO1Zx/80ofvP/+//bbZdCkOScq9LCoMQSVXIC1JN8jyTTIl6cKUvNZy+250/LKp8ILWHReAYkmKSoQbvl5Uj+0JbsTv+aojD1TB7urc4ODAPplpt5+wu5j6e/2tN849+Gf/QsXXA2bPzPzBl2ZPP3jr5WfOfOWLz738xcYz4a8l5RjVlkquQJS+zdB2lm/y1BA/cDvlhzYdE4BiSmaUhaIS4VPedyv6NhWHACrvwEy73v7fJbPtQsKukTx/cplsqPi6+X/UMlEXZsi99tzMh/sJuddfORNmyZ2Pv3Te2UQOwsz9FWGAemstt5sZmuW63DUYRCq8ApRamGH28Nb8foXBKi1/3Yr2EnSKQwC18+RsuyApSBEezUfPrV9ofPTf3vryUw8+rOTeaj/7mafunn/m1MyfeunMwzcXnl14cfap6PVXnw5fMkOOcQkrzVRyBYLUfFjWGg7DJOnSvuFsa7k9l6VaBQDTkxSVCDduvagaRSWuKQ4B8ElJQYrwGOz/3ffnXpkL//+72z9+tET2t3/3j3/w04e7H/zmP/3xUz/djT765x88/Mz9Dx8WcoZZSMKF56987umnzp2Z+Sgk4s6dnYmSmXHhS6qZM0mPZu9L0AGJtCTdnazfaNjlrlle2MDxASi2A0Ulwt5t3aics+oUhwAYQkgofH9zq/nFxjNhXD8bPz+aZfavH9L2d7d//PjPd//pB39w78FHf7j////iD386c/cPP3p40tdz+lT01Ndee+ajx/8/c+psWJK6//8HEnCBJBxFERJ0YQad8Qewr5Hy9cy/LzIn6cLUvNZy6oSLZiRJB1AaYQbaw1vz4fd2LypXUYkb8aNreSvAcPYTdcmY/cgPaJJiCvt/tocbfGxFgg54wmLK17cz358N+YO3Ur5uXzqAkklmooUbthsleLnh0+vVsLeeBB3AaJIEQzP5nQpkdyXuPwNhAPa1lttZ8mCZf28Mm6RL+8RAkg6ghELCKyS+4j+uFvimLXxQdDF+neuOGMDJSNTB0EKCricMwBOy5MEyz77NO0m3EIpHOEYA5ZQkwBpR+szpSbsev7Zm/Nh2lADykSTqrooEpJKgA46SlqS7O0yB1WGTdNs5vEAACiyZVdeM/3itAC8nVPN7O349XUcGIH9J4uGKSMCRrkvQAcdIy4ENtYflUEm6zY3+IEOzpmMEUH6hqET81JriSwjVWy+q3gowXhJ1cKSbcf/oCgNwjLSiEeNL0h24aTqOmXQA1dGY5s9WHAJgMiTq4FNCgq4jDMBR8i4aEYySpFM8AqA+Vqb4s2cf3ppfcQgAJkOiDh6ToAOyyLVoRDCOJJ3iEQDV0Z7yz5ekA5ggiTqQoAMyy7VoRDBKkm6QwwsFoOAKMotNkg5gwiTqqDEJOmAYuRaNCIZO0m1u9LP8kKZjBVB6RUiQWfIKMAUSddTQdQk6YEi5Fo0IZkZ8IVspXzeTDqD8VrwOgPqSqKNGrqjiCgyjtdxuZmg2GPb7jpqkS8sGNh0ygPJKZq/NFuTlSNIBTEmSqFuNH/dFg4q6kpznAMPIvWhEMK4k3Wxrud1wzABKq0iJsbDktemQAEzHUmtxPdr7EF6ijqqRoANGlZakuzNs0YhgXEm6LC8YgOJa8XoA2LfUWgzj/2YkUUc1hPN4VYIOOIFmytdvj/JNR0rSJcUj7p/wBQNQQAVb6rpPkg5gyg4k6u6IBiUW7mObyQxRgKG1lttz8dNCSrPJJeky/kAz6QDKqZnj98rrRm7h4a151xWAKZOoo+TuRnsJuttCAZxAlvuSwSjf+CRJurQfuOi4AZRSHrPWwiC4NXNpJ1zAruf0ujoODcD0LbUWwx47zfjRFw1KJCSWL0rQATlopjVIVqAObZxJuqwlaQEoiGS22sIJv024abs4c2nn0XUifu6GS0J08n2MLHkFKIiQqIsf4ffyTdGgBMLYpJkkmAFOqpny9a1Rv/E4l7sGliYBlEvnhP/+2sylnZX48YlBcJKwa0Qnm3VhyStAwSy1FsN144pIUGA3Q0JZgg7IUdo9ycgzdkdO0iWlZNP2omg6dgClMupstXA9eHvm0s7akRecSzv3QgIv/uO1Kbw+AMYkqZC5Gqn8SvFcSRLJALloLbdDgi6tyN5g1O8/c8LXp3gEQEWcYKlrWOrUnLm0k+kToySR93Y02qbjknQABZRUymxGCkpQDCFh3EoSyAB5amZoM/mZdIlBytcXWsvthmMIUAqdEQbAqzOXdjpPLm9NvfjsJfTCBW7YvYwuPLw177oCUEAHKr9uiQZTtF8gYiAUwBikTUa7u7nR3x71m497Jl0UWfIKUBbD/L5+NACeubSzPvIFaG/5ayfa28tomCVSZtMBFFRSUCJcT26IBlPwaHZ/fA5uCwUwpXumwUm++YmSdElJ2bQbK0teAQoumZ12IWPzGzOXdkKCLpcBcPx9esm1IusSqY4jBlBsS63Fq5F96pisa2H/OQUigHFJVoqmbQ90+yQ/YyaH1zlI+XrToQQovCyz0x7t7zJzaedq3j88JPxC4i/KNvPCkleAErBPHROyv//cmlAAY5ZlEtrgRPdFObzItCzhhdZye86xBCi0TsrXw/5CjZlLO4NxvogkAZhl5oUlrwAlcGCfupuiwRg8Gp/Yfw6YkGbK1+8nK05Hvx/K4UUOcngjAExJhqWu12cu7TSHLQ4x8oVpb5+7RnT8xuOSdAAlkexT14mG34MUjnM97H9oeSswQc2Ur98+6Q84cZJuc6M/yNDMvnQAxXVUwutu/Hh75tJOd9IvKCkqES6C149osvjw1rxZ2gAlstRa7EXD7UEKR45P4vOpKxTApCQrRNP28B6c+D4op9ebVma96ZACFFbnkL/rR3vVW29P84UlCcK3kwH5k8ymAyiZUHUzfoRE3XXRYASPxifJMmqASWpmaDM48f1PTi827YUsOp4AxXPIUtewDOnazKWdlUktb029UO0lCi8mA/ODJOkASiqZBdWKDv8QBp4Uxier8XmzYnkrMCXNtAYZV5oef++T04tNfSGt5XbTMQUo9MUmLD8Ke88Vrjpasvw1JOWuRR/vZ9S25BWgvJLN/rNW9qa+wod0jaRaMEAR7psOs5XHD8krSXc7hzcEwOTtz0YLVfea017emnrR2ksghuvJnSdePwAllBSVCJW9zarjSWbPAYUwqf3oHt3v5PFNNjf696L0DWCbDi1AcSSz0MLv5tWZSzudoixvTb1w7SUSw+sOiUVJOoAKMKuOJ5g9BxRJM0ObQR4/6KkcX3R4QcdlFu1LB1AsIUkXikNsl+2FJwnFzsNb85J0ABWRzJa6+v3NrZCYWYvSZy1QPWE25VXJOaBgmmkN8tiP7tF9To4vOvUF2ZcOoDhCcq6MCbon3oNBPEDFhFl1SQXYg/uQUn1hFuVFCTqggJopX9/K6wdNNEkXWfIKAABksNRaDLPpQrLupmhUWri5fTvsTWjvOaBoJrkfXZBbks6+dAAAQJ6WWovb8aMT7RWWuCMilRKWtobCEM34cVs4gIJqZmgzyOuHzeT84tNe2GKShQQAAMjkwBLYK5EqsGUXljBfj4+nwhBAGTTTGuS1H10w6SRdpjcIAADwpKXWYi/aWwJ7PbJfXRmFfedCcq4rFEBJNFO+vpXnD5OkAwAASiPsW5YkeRqRZF1ZhH0F37DvHFAmk96PLsg1SZfsS5eWRWw61AAAwElI1pXCfnKuE/YXFA6gZJoZ2gzy/IEzY3gTaS/wgn3pAACAPEjWFZLkHFAFK2kN8tyPLphGki7TGwUAAMjqkGSdAhOTdT+Ju+QcUBXNlK9v5f0DT+3u7ub+LlrL7bRvenNzo99xvAEAgHH5/uZWuOe4GqXvKcToQjJ0LX707DcHVEVrud2In34vpdm1zY3+Wp4/96kxvZ9+/Ggf8/WmQw4AAIxTUg229/3NrXD/0Ykfl0Ul13u+kJhbFwqggpoZ2gzy/qEzY3ozaS90IclKAgAAjNVSa3EQlmDGfzwfP67FjzuiMpIwa25/SeuKBB1QYWnbtN3f3OjfzvuHjmsm3SDjG15z3AEAgElIlmOGe5C1729uXYz2ZteF+5IF0Tn6RjR+hGRcmDU3EA6gJpopXx/LhxRj2ZMuaC23t1Mudv3Njb4CEgAAwFR9f3Mr3JfsP2ZF5HFibt1sOaBuWsvtZvy0mdLsyuZGv5f3z35qjO9rEB2/50PboQcAAKYtSUQ9SkbVeIbd3eQeTmIOqLtmhjaDcfzgcc6kCxe276Y129zoDxx/AACgaL6/udWI9pJ1zeRRtVl2W9FecjLs2XfbEQd4lM8Kvw+Pqwp+Z3Ojf3EcP3ucM+nCL/u0JF244A2cAgBwcg9vzc/FT52ZSzv2fIX69Ptu3Oe7IjEeS63F7SjZwy78fzLLrpk8wp/LNNPufnLvFW4+B/aXA/i01nI7jKcvpDQb2+/PsSXpNjf69+I3dyflzTWdAgCQm/DhVydSmAlq4eGt+f0+3xWNyUhmm92OPk7ahZu5/cRdeG5kuLmbhLB0dTv6OCl3O0k4ApA+nk4zGNcPf2rMb26QcpG60FpuNzY3+i4YAJDPoOJCfOPemLm049oK9ejzC3Gfvxj3eUsVpyCpFjt48oYtmXG3n8A7+JxlhkYW+0m4gzeL4fmeZasAJ9JMa7C50R/bvp3jTtKFF/5uhgD0nAcAMLpkqWv7wI272XRQffuf9nfix1XhKI4DibLBce2SPe8aGb6l5BvAZK+tR+mP84ePNUkXikK0ltth74PZlAD0nAcAkNuAohlJ0kGlJUtdZw/0eUooWYK6LRIA09dabl+M0gsEDcb5GmYm8D7T3oBBBQCc3MEkXTuZWQdU18Ex9KNl7kICALmNp4+yPs4XMIkkXdobmG0tt1ecCwCQ2w171kEGUJ0bCX0eAPK9tj7p7rhrKhRhJt1hNxYAQEZPLHtzww7V7/NhOc7CE3/dERkAGE1ruZ2lsM/6uF/H2JN0SZbxTkozNxIAMLrDrqOWvEJ1dQ75O0teASDf8fSTBuN+ETMTerNp2caF1nLboAIA8h1U+BAM9HkAYPRr62ObG/3yz6RLrOcREADgk45Y6rqvKUJQuT5/2FJX42kAOJm0cXN/Ei9iIkm6zY3+7fjpfkozgwoAGN6KayvUSueYry1a5g4Aw0mKmc6mNFufxGuZmeD7TntDi8lGfQBAds1jvjabzLQD6tHnA30eAPK9tgaDSbyQIiXpDCoAYAgpy95cW6F6fb4RpVee0+cBYDhp1847SVHUsZtkkm6QQ2AAgI91XFvBTcQTVHYGgIxay+0sH3qvT+r1TCxJt7nRvxelb7TXdIoAQK437Ja8QnV0cvzdAABku2ZWL0mX8Y3NJhv2AQDHyLjU1Q07VKfPN6L0pa76PAAMJ+2aeTcphjoRk07SDQwqACAXnSHaNoULKn8TcVBbuADgeK3ldiNK/wBsfZKvaaJJumSjvTs5DkAAoK6aQ7RdSGbeAeXVGaaxZe4AkCrLtXIwyRc0M4Ug9FK+Ppts3AcAHH7z3YiyL3sb6QYfKFSfnxuhz0vSAcDJxsf3Nzf61Z1Jl1jPIVAAUGcrE/o3gD4PAJXTWm5n+QBsfdKva+JJumTJ612DCgAYWWeEf2PJK5TXKGNjlZ0B4GTX1uon6TK+0QVLXgHg00Zc6rqvI4JQuj4fPukftRCEJB0AjH6NHEz6RU0rSddzIwEAE7/pdsMO+jwA1Fqy1DXtA7D+5kb/3qRf21SSdPEbvR1Z8goAk77pXkhm4gH16POzlrkDwEjX1vVpvLCZKQbFklcAGEKy7G1xijf8wOT7fPuE36YjkgAw9Hi4dkm6nkEFAOQ+oHBthepoFuT3BgBUQpGXugZTS9IlS17vG1QAwERvti9Y8gq16vMqOwPAcNfW9Wm9uJkpB8eSVwDIIKdlb3ne+APFuJHIoiOUAJD52jq1JN1TUw5OeOOXMwwqrjqPACiCh7fme/FTYwo/ei7H79WN38e0EnWdmUs7284kStTnu1E+y05H6fOzefW7Kc6muxr3+dvOJACmrehLXYOpJuniN74eB+l+ygAk3ERI0gFQFOGatBalf8hUZOG6uzjhnxmquq9I0FE28Tkbktqhz7+rzw/d5zsSdAAUSKFn0T0adxQgSJa8AlCmG/Z78aMT/3E1St9blT0348dFN+uUuN+H5HxLn8+sn/T5gVAAUCCSdDkFoONcAqBgN+3h+hU+RNoSjSOFhMaVkNQMyU3hoOR9fhDtLXXX54/v89fiWK3o8wAUSRmWuj4ab0w7UGHJa6TKKwDlvGnfjh/N+I/XReNT7kR7M2l6QjF+KvZOrM/fS/r8NdE4tM834/isCQUABVT4WXSPxhoFCZYlrwCU+ca9Gz+9He3twUQUXY9jctH+cxPVlaibaJ9fS/r8HdF45EbS5y1pB6CoJOmGkOUTt45zCoAC37SHm9PwgVK/xmEIScpWkrRk8gNPKw8m3+eb8eNGjcNwP+nzirwBUFhlWer6aHxRhIDFgbgdpc8+MPAEoOg37WEpXLheXYnqt8G8jeKn5OGt+XDOzRorTa3PhwTVak37fEOfB6AEOhnarBfhhc4UKGhZlrw2nVsAlODGvRftzaqrw1K4/eIQNoqfnv3k3OLDW/NzwjGVPh/GsY2oHkUlFIcAoGw6GdpI0j2hl1NgAaAIN+2hqERI1FW5qITiEMWwcsSfmWyfv1eDQjKKQwBQKq3ldiN+upDSrBBLXR+NJ4oSOEteAajojXs3jA+i6i2Fu6E4xPQ9vDUfEsGzxkqF6/NVLCQT9t5rKg4BQMmUomDE43FEwYLXS/n6bGu5bfAJQNlu2gfR3lK4KhSVsFF8sXSe+P+2Ja+F6PP7hWRuVqTPr4Y+b3krACWUNma9v7nR7xVmDFGw4GUJTMc5BkAJb9r3i0pci8o7q85G8cWzkvHvmE6fD+PWMheV2Er6/LojCkDZtJbb4QOzhZRmhbrGFSpJt7nR347SN9luJ+VzAaCMN+5hL6dmVK6iEjaKL6BkqethA09JumL1+TD4L2MhmdDnm/o8ACXWydBGki5FL0Mbg08AynzTfjspKnGjBC/XRvHlG3i2haZwfb5MhWRCn39bnwegwmOlfWGpqyRdiiwBsg8OAFW4cQ/XsyIXldgvDmGj+GI68kPLh7fmfaBZzD7fTfp8UYtKhD30FIcAoPSSegazKc16hRsrFO0FJUte0zbWvpCU0QWAst+0D6K9ohJbBXpZjzeKd4SK6eGt+XDOHLfHiiRdsfv8xahYhWT2+3zH8lYAKiLLWKhXuHFCQYOZZTZdxzkHQEVu2sMG881or6jEtNkovhoDT0m64vf5cIyuRNOfSRv6/EV9HoCqSOoYXE5pdndzo1+4meNFTtKlDVg6Tj0AKnbjHvaAWp3mzbqN4ksjbRw0a8lrKfp8L5puQvVO0ue3HQ0AKiTLtbWQe68WMkm3udEPNwdpn+YttJbbTeceABUzzWvbReEvvmSp64WcBqhM3zT7XUP4AaigToY2hZxBPlPgoPZyCjwAlMk0Eyth9pVEXXXOEUm66txIjLPPO08AqIykfsFiSrOtpB5C4RQ2SRcHbBClV75aSdYaA0DpJQmyhRonDMj3GEm6Fr/PhxuJC1N+GZJ0ANRtnNQr6oufKXhw06YfzhpYAFAhzQK8BtfVAnt4az58ODlMUqcjavq8Pg9AjaSNfUL9g8IWSyp6km4thwMAAFUZVEzCgtlXhbYy5vYU+3iOgyWvAFRCa7kdrmdpq1LWkzoIhVToJF2yRvhOSrPFZM0xAJRWQZa97es4IoU1bDJF0rW4fT7MimyX9LwCgLKOk3pFfgMzJQiy2XQAGFS4Ya+9EyR1jJP0eX0egEpL6hVcTml2N6l/UFhlSNKFtcL3DT4BqLgiXcvMviqmlQn/O4p5PMdBkREA6nBd7RX9TRQ+SZesFU7b1G8hWXsMAKVTsKWu+5qOTCkHn4eOkyRgCtfni7TUdV/HkQGgxK5maNMr+puYKUmwswTSwAKAsmoW8DW5rhZPu2LnWJ2teE0AkI/Wcjt8GJn2gXc/qXtQaKVI0iVrhu+mDVyTNcgAUNcb9rA9xFZO3+tCMsOPAsih+mZHFAulWcA+b8YlAGWVZRbdehneyEyJgq6ABACVk+Oyt1AN/eLMpZ1w8389p5dnZk1xnPRYSLpW63ju9/lm0uev5fS6jKUBKJVkslbadfX+5ka/V4b3U6YkXZas51WnKAA1vFm/Ed+ohwTd9qOL+6WdbhizROmz0N2w1+s8kXQtgGRW5OxJ+3y0l6C7nfT58GH22zn0eecIAGUcI6VdV3tleTOlSdIla4f7Kc1CAYmmcxSAkg0sRhWWurXiG/RPfUgV/90gfrqY4dp5HLOvCiCnpE7QEc1K9PnV0Ofjx70n+vztpM/fPMH3t+QVgLLJMllrrSxvZqZkwe8ZgAJQFSdc6hr2oWokybjDL/LxTXz8CAmBa8nN/aQTCuQjr2Mg6Vru47m/pH09pc+HsfCVE/R5Y2kASiFjwYg7ZSgYse/U7u5u2Q5CCO5CSrPz8UG455QFoMge3poPN8PfHeGfXkuWtw3zs8IgppdhIPOkrWTPq7ofq1Hjx57ryTLsup9HIUH3vUnEL0nIro9wzt4Jy+edsgAUXWu5HcZml1OaXSnLfnTBTAmPQ5bgdpyuAJRAc8j2Yb+pt4dN0D264O8thQs/b9ilcIvJjL9aOxC/G07boc/ZlgTdY8POors/avzCHpVJsm3Yc9aMSwAKL2vBiKgkVV0fX79LeCx6GdooIAFA1W7Yw95yF/c3ih/pov/xUrjVaLilcJa8fhy/qyPEr672z9mBUDzWHDJ+jZPGLzlnW/o8ABUcR6ft2btetlWWpUvSDVFAwuACgMIaohhAuLG+EvaWe3Kj+BPctIdPFMMMmztu2EeOXyPa2xeQCZyzFenzoc8tZGx+Lec+PxjynO04YgAUXKUKRjy+Zpf0YPQMLgAouSyJr5BEa8Y32L28f/iQS+Halrx+Kn73kr36rovGp87Zi+M4Zysgy9h05CXtOZ+zlrwCUFhDFIy4Xbb3VsokXRzo9WQQc+wNRXzgDC4AKKq0JN2NkEQ7yfLWjDfuWZfCmU13ePy68dPbGcYldXA9OWe3hWKkPhT2i5xEn896zurzABRVJWfRPbpOl/ig9DK06Th3ASialKWuIVm2miTPJjMYyLYUzg370fELSZXwie7NmoZg5OIGNerzxy113V8e3JnU8uAD52zfOBqAMkkKRqRVdL1fpoqun7hGl/jYZAm4AhIAFNFRCa+QJLuY7Hk22QHBx0vhrh3RpO2wpcavE9WvqEQuxQ1qoHPE309teXByzobfRVeOOGcteQWgTNfUg3plfXOlTdIlBSTSPrGebS23O85hAAqmecjfhaWCzWkvFUz2wjp0KVwyA5Dj4zdsUY6yCkmda4pDZHZY37lRhOXBSYKwecQ5q88DUDSVXer66Lpc8oPTy9Cm4xwGoCgOWfYWkmGFWip4zFI4N+zZ4rdflKOqRSX2C5qsOdqZ+nzjiT4/8SXtGft8M/p0IZmmIwhAUbSW2ytReqX0rWRSVznHkWU+QHHgB1H6preLSeUPACiCzoE/hyTYxSIuFTxiKZwk3XAx7EZ7RTmqVFRiIgVNKuZgvwlL2hvTWNKesc+HxOHBJdsqOwNQ1HH0UUr9IeJMBQ5SN0Mbe9MBULQb9lIsFXxiKdysJa9Dx28QpW/QXwb7xSGMqUa/odhf0l70Pr+/ZHvrid9ZADA1reV2I0rfI/nu5kZ/vczvswpJuvUofYPmy0kFEACYmmSpa7hBf7tMSwXDrKlk+eYNN+wjxS9tg/6i25/9NXA0h+7z4YZiLunz3RKds9tJIZnr+jwABZHlg8Je6ceNZX8Dmxv9cLOzntMBBYBxCtesZlmXCiazqLoO48jxCwPHshWVuFaG2V8F7/MXS9znu/o8ANOWTLrqZGha+v1yT+3u7lbhgDXip99LaRamPTac3gDAtD28NR8Gke8W+CWGRGLH3nMAwLS1ltud+Om7Kc1ubm70O2V/r1VY7hollTu2UpotJAcWAGC6A7C9WYmhqEQRl7+GZc1NCToAoCC6GdpUour8TIUOWpYD0nFuAwCFGITt7fHWiIpTVCIkDFdDAtHyVgCgCFrL7bA36kJKs63NjX4lPlysTJIuqeBxN6XZYnyALzrNAYBCDMQ+LipxLZrurLr94hDrjgoAUCC1KBjxeGxYsYO3ltMBBgCY3IBsr9rv9jQHwGbPAQBFktQfWExpFuoP9CozJqzYMQwHJu1T6MvJgQYAKISHt+bD2OTCFF9Cx1EAAAqmm6FNr0pvuFJJus2N/r2MB8hAFAAokpWa/3wAgMday+25+OlyhqZrVXrfMxU8lpmWvCYHHACgCJpT/vkLD2/N27cXACiKLFuV3Uwma1VG5ZJ08QHajtKrpM1GPjEGAArg4a358MFhuwAvpeNoAAAFkSVJ163am56p6MFcq+PBBABKacXrAADY01pud6K9yVXH2UomaVVKJZN08YEaxE93UpotJAceAGCaipIcs+QVACiCbk5tSmemwgc1y2y6jnMfAJiWAi113Wc2HQAwNa3ldhiLLKQ0u5tMzqqcyibp4gPWCwcupdlifAI0dQMAYEpWvB4AgMdquRfdvpmKH9xeTicAAMA4FC0pduHhrfmGwwIATFoyiWoxpdn9ZFJWJVU9SReWvN5PadOOTwSDUQBgGpoFfE1m0wEA09DJ0GatygGodJJuc6N/L8o2m66rLwAAk/Tw1nxIhs3m8K3CB5LX4sfWBAfIAAC5SSZPXc4w5pGkK7ksB/Cy2XQAwITlMWMtVLNvzlzaWYsfzfjP13P4npa8AgCT1s3QZj2ZjFVZlU/SxQdwO366maGpvekAgEk6aZLuxsylnYvx4/bjgd2lnTDAfTtKL5417tcGAJBJxll0QbfqsZipyTHPciA78Ykxp3sAAON2wqWuYanH6sylnUM/YEySdhfjR/8EL7HjKAEAE5Jl3HEzmYRVabVI0iUHMm2fljBQNpsOAJiEUWeqhfFMmD23fuwA79LOvfgRfsaVKL2I1mHCklcfXgIAY5VMlsqSi1mrQzxmanTsuxnaXDWbDgCYgFGSdNfDvnPxYzvzQO/STi/aqyB7Z0KvEQBgGCFBl7a6YGtzo3+7DsGoTZIuPqCDyGw6AGDKHt6ab0bDLXUN+8u1kv3mhh/sXdq5Hfaui/94Y8h/KkkHAIzNELPounWJyUzNzoEsB7ajqwAAYzRM8ivsKxeWtw5OPOjb28NuNcq+/LVtySsAMEZZZ9EN6hKQWiXpkgObVu1sobXc7ugrAMCYZEnShUTatbCvXNhfLreB395edmFW3VaOrxUAYBSdDG3W6hSQmRqeBN2c2gAADOXhrfmQIFtIaRb2jwt7z41lUBr2tAt728V/vJ6huSQdAJC7ZHJU2pjo7uZGf71Ocaldki4+wL3IbDoAYDrSxhdh37iQoBv75sjJHnetlHGRJa8AwDh0c2pTKTNOBicDADAxR81MC8tbV8O+cXkub00dCO7tdRdm9/VHeM0AAEMbYhZdr26xqWWSzmw6AGDSjlnqGpa3Xkz2i5v8YPDSzr2w9138x2tHNJGkAwDy1M2pTeXMOCmcFADARByW7Lo+c2knJOi2pz4o3NsD7+1oL2l4UNOhAwDyYBZdynisxudG+LT6fkobs+kAgLwcTNKFMUgr2ReuOAPDvb3wmvHj5oG/nn14a95sOgAgD92c2lRSbZN0mxv9sN/LmpMDABi3h7fmG/HTheR/w/5vjWQ/uOINDveWv3biP65GH3+gKUkHAJxIxll0YeyxXtcYzdT8HFmLzKYDAMZvP8l1Lez/NsniECMPEvf2yAv76N2JJOkAgJPrZmizlkyqqqVaJ+nMpgMAJqQRP95O9n0rz0Dx0s522DMvjJce3ppvOowAwCiGmEW3Vuc4ndrd3a37iTIXP23Hj9mUplfqunEhAAAAwKhay+3tKD1Jd31zo9+tc5zqvtzVbDoAAACAMTGLLrsZp8sj9qYDAAAAyF83Q5ta70W3T5IuMpsOAAAAIG9m0Q1Hku5jZtMBAAAA5KeboY1ZdAlJuoTZdAAAAAD5MItueJJ0n2Q2HQAAAMDJdTO0MYvuAEm6A8ymAwAAADiZ1nL7amQW3dAk6T4t62y6q0IFAAAA8LHWcnsuyja56apZdJ8kSfeE5ATJcjJ1kxMPAAAAgD1hUtNsSpu7mxv9nlB9kiTdIeITJcymu5vSbDY58QAAAABqL5nMlCVX0hWtT5OkO9kJc9VsOgAAAIBHzKI7AUm6IyQnjNl0AAAAAClay+1GZBbdiUjSnfzEeS85EQEAAADqqhuZRXciknTHyDibbv9EBAAAAKidZPLS5QxNrUY8hiRduk6GNpfNpgMAAABqqpuhzdbmRn9dqI4mSZciPoEG4UTK0HRNtAAAAIA6aS23m1G2WXRd0TqeJF02WU6kdnJiAgAAANRFN0ObrWQSFMeQpMtgiNl0XdECAAAA6iCZrLSYoam96DKQpMuuk6HNYnyCrggVAAAAUAO9DG1ubm70bwtVOkm6jOITajucWBma2psOAAAAqLTWcrsTPy1kaNoVrWwk6YaT5cRaiE9U0zgBAACASmott+eibDmSG8mkJzKQpBtCcmJdz9C0m5ywAAAAAFUTJielzaK7H5lFNxRJuuGtJSfacWYjmyICAAAAFZNMSsqS81jb3OjfE7HsJOmGlJxgWfadey8+cRsiBgAAAFRIyInMprS5G9mzf2iSdCPY3Oh3kxMuTVe0AAAAgCpoLbcvxk+XMzTtmkU3PEm60XUztLkcn8BNoQIAAAAqIMvsuDubG/2eUA1Pkm5EyQm3laFpV7QAAACAMmstt1fip8UMTe3RPyJJupPpZmizGJ/IHaECAAAASizLLLqtzY3+QKhGI0l3AsmJdzND025S/QQAAACgVFrL7TA7biFD045ojU6S7uS6GdqEE9l0TwAAAKBUkklH3QxNb2xu9LdFbHSSdCeUnIDXMzS9Gp/YDREDAAAASiQsc51NaXM/sif/iUnS5XfC3k9pM+uEBQAAAMqitdy+GD9dztB0bXOjf0/ETkaSLgfJiZhlOevl+ARvihgAAABQAlmKRdzd3Oh3herkJOlyEp+QvfjpTk4nOAAAAMDUtJbbK/HTYoam9uDPiSRdvrKcmBeSqigAAAAAhZMUi8gyyWhrc6O/LmL5kKTLUXxiDuKnfoam3eSEBwAAACiaMLloIUO7jlDlR5JuPCeyIhIAAABA6bSW24346b0MTW9sbvS3RSw/knQ5S07QLFNC302qpAAAAAAURZacRpic1BWqfEnSje+EvpvTiQ8AAAAwdq3ldjN+amdoenVzo39PxPIlSTcGyYmapTjEYtwBOiIGAAAAFEAvQ5s7mxv9nlDlT5JuTJLqJlsZmq4pIgEAAABMU2u53Y2yFYu4KlrjIUk3Xp0MbRSRAAAAAKYmKRaRJfl2c3OjPxCx8ZCkG6OkiMSNDE0VkQAAAACmpRftTSI6TigWYRbdGEnSjV83OZHTKCIBAAAATFRrub0SPy1maNpVLGK8JOnGbMgiEjLSAAAAwEQke+RnmTQUikWYXDRmknQTkFQ9yVJEoquIBAAAADAhYbKQYhEFIUk3OZ0MbcL6b5lpAAAAYKySvfHfy9BUsYgJkaSbkKSIxPUMTS/HHaUpYgAAAMAYZZkkpFjEBEnSTb4D3M3QridUAAAAwDgke+IrFlEwknQTNEQRiYW4w3RFDAAAAMhTshd+N0PTLcUiJkuSbsLiE3w9fupnaPpe3HEaIgYAAADkqBft7YmfxjLXCZOkm45wot/P2HEAAAAATizZA7+doemNzY3+bRGbLEm6KUiKSGSZMrqYrBMHAAAAGFmyzLWXoWnYS78rYpMnSTclmxv9cMLfydC0m3QkAAAAgFF148dChnZXFYuYDkm66coySy6sE+8JFQAAADCK1nL7Yvz0boam/WQvfaZAkm6K4hN/ED/dyNC0HXeoFREDAAAARtDL0CbsnW/LrSmSpJu+brS33jvNmmWvAAAAwDBay+1u/HQhQ9Nusoc+UyJJN2XJOu8smeqwbrwrYgAAAEAWreV2I356L0PTO5sb/TURmy5JugJI1nv3MzR9NymXDAAAAJCml7FdR6imT5KuOEKHuJ+lg1n2CgAAAByntdwOq/YWMzS9vrnRvy1i0ydJVxDJstduhqaWvQIAAABHSpa5djM0vbu50e+KWDFI0hVIsv57K0NTy14BAACAo/Tix2yGdh2hKg5JuuIJHeR+xg4HAAAA8NgQy1xvbG70ByJWHJJ0BZOUO+5maLqQlFEGAAAAGGqZa2QrrcKRpCugZNnrnQxN34s74EURAwAAAKIhlrkme+NTIJJ0xdUZogMCAAAANTbEMteblrkWkyRdQSXlj69naHoh7ohrIgYAAAD1NMQy17AH/lURKyZJugJLyiBnWfaq2isAAADUVy+yzLX0JOmKr5O1Q7aW23PCBQAAAPUxxDLX/uZGf13EikuSruCGWPa6EKnMAgAAALUx5DLXjogVmyRdCVj2CgAAAByiF1nmWhmSdOXRydpBLXsFAACAarPMtXok6UpiyGWvqr0CAABARbWW2xfjp+9kaGqZa4lI0pXIEMteL8cddkXEAAAAoJJ6GdutWOZaHpJ05dOJ9jLhqR3WslcAAAColvhevxs/XcjQ9MbmRn8gYuUhSVcyybLXboamYePInogBAABANSTFIt/L0PRulC13QIGc2t3dFYVydsxBlG2DyGubG3171AEAAEC58wBhtVyYuLOQpblZdOVjJl15daJsy167yYaSAAAAQHmFCThZEnSWuZaUJF1JxR1uO366mqGpZa8AAABQYklxyMsZmt7Z3OhfFbFykqQrsbjj9eKnfoamF5KNJQEAAIASie/nG1H2yTcdESsvSbryCx0wy7LX95INJgEAAIDy6EV7q+TSXE+KTVJSknQlF3fAe/HTStaOnWw0CQAAABRcsiouS9HIrc2NflfEyk2SrgKSDSFvZGgaNpjsiRgAAAAUW1IE8r0MTcPquo6IlZ8kXXV048edDO3acUfXeQEAAKCgklVw6xmbd5LikpScJF1FJMteOxmbryUZeQAAAKB41qK91XBp+psb/XXhqgZJugpJNoi8lqFp2HCyJ2IAAABQLMnqt8sZmt6NLHOtlFO7u7uiUL0OPYiybSx5Y3Ojf1XEAAAAoBD38434KUzAyVLNtZXsUU9FmElXTaHa6/0M7d6NfwGsCBcAAAAUQli6miVBd12Crnok6SpoyP3pekmmHgAAAJiS+N487EN3IUPTrfi+vyti1SNJV1HJxpE3MjS1Px0AAABMUbLK7d0MTcOquY6IVZMkXYUl+83dydB0Mf6F0BUxAAAAmKxkdVsvY/NOfK+/LWrVJElXfZ0o2/5078W/GJrCBQAAABOVdR+6G8mqOSpKkq7i4g4cqsJkreC63lpuz4kaAAAAjF+yqi3LPnRhlVxXxKpNkq4GNjf6vfjpZoamIXMvKw8AAABjlqxmey9D00f70CVFIqkwSbr6CLPp7mZoZ386AAAAGKNkH7qsk2SuJqvkqDhJuppIMu4rGZvbnw4AAADGJ+s+dDeT1XHUgCRdjSSZ92tZf2EkmX2gAEJJdn0SAAAqMbZfi7LtQxdWw10Vsfo4tbu7Kwr1+4UQMvbtDE3vbG70L4oYTL3PNuKnkGQPn7Rdjx9r9qMAAIBSju3DCrfvZWz+tmWu9WImXT11omz7011IMvzAdIV+uD8VPmwse9uSdAAAKJfkw/dexubXJOjqx0y6+v5yCDPkfitj8yvWwMPU+upxn7T1I1WeAACgDOP6ufhpEGVb5hr2oeuIWv2YSVdTQ+5Pt5Yk9YDJX8iPm80alq1vx+3sUwEAAMWWdR+6O5F96GpLkq7GNjf64ZfEzQxNwzK7XpIwACanGz8WMvTP78T9cyCZDgAAxROP0zvx0+UMTe9HVsrUmiQdIUN/J0O7kPG3Px1M7kIeEm7vDvFPFuPHb8X/riuhDgAAhRrXfzfr/bl96OpNkq7mkgx9J9rL2Ke5bFkdTExvxH+nsAQAABTAgX3osrhpL3gUjmD/l0cnyp7db8W/PAaiBmPrjyEZ/p0cvlUoLBE+jdsWVQCo9NihET81DvnSPbNyYKp9M9w3L2Zoeifuq7auQZKOT/wCCctZsyyvC7PuLrrxh7H0w/BpW+hbszl9y9Bfu8kelABANcYKzeRxMWsCIH6EZN16/BjY7wrcX1NMknQ8+YskXLwzVZyR6Yex9MEweG6P4VuHwXnHp+kAUNoxwkq0t01NHuOEUDyuZ3UMjK2/hr6adaXaatwX10WNQJKOJ3+ZDDOLJ6yZ74ga5Nb/mvHT5ph/zI1ob2adT9ABoBxj87ANRhhzL4zhR2wl44KBaENu/TZMZhlkvKe+Hve/rqixT5KOkyYKrtjcEnIbhN8e0wD8SXejvb3qfGIHAMUdG4Qb96tRfltgHCck6zqW28FEx/RbcZ9rihoHqe7KpySfpF3L2Py7yScFwMlcjSaToIuSn/O9sLQ22WgaACjOTf5K/NiO9iq2z07ox4Z97W4nxauA0a1nHNOHD81XhIsnmUnHcQOEXvx0OUNTG13CyfpaSHT/1pR+fOi/a6bZA8DUxwON+CmMvxen/FJCdfiOrTFg6D48TKGIpr2iOYyZdBwnfJJ2J0O78AnfejK1FxjeNCuvhv77Xigakyx1BwAmf3PfjfaWyC0W4OWEwhQDs+1hqD7cibIl6B7dZ0vQcRQz6Uj7ZTPMppcKScDwfSwkw79ToJeksAQATG4c0Iz2Zs8tFPDlme0D+d8z34j7lGXlHEmSjiy/dMJa+e9lbH4t/qWzJmqQqW8NU0150oPyjsISADC2MUAj2ptJ3y74S5Wog/zG8wpFkMpyV1IlN+rXMzb/TpLUA9KtRcVL0EXJawqFJSx1AYD8b+rDLJqQ9GqX4OWGMcFAoTg40iDjeF6hCDIxk45hBhS9KHshCZ+4wfH9qRk/bZbgpSosAQD5XfvDB3QXSvjy7yTje9thgPtjxshMOoahkATkp1eS17lfWGJbYQkAGOlGfi65mQ8fzl0o6dsIr3vgaMLjfh3ujS9nbK5QBJlJ0pFZ8slZmKJ7P0PzBRdyOPKi3o2KuUF0Wp/eDDcZEvAAMNSN/PYQN/NFdiF+P/aeRr/e294pa+G3UCiiJ2pkZbkro/xSakbZl+mp+Aqf7D+N+On3Sv42QqL+qgEHABx5vQ97uIWE1mIF396q4lLUvG8Pomz70PXjvmIfOoZiJh1Di3/RhF9KVzI2v5x8ggjs6VXgPYRByXcVlgCAT93AzyWzzX4rqmaC7tFYxqx66tq/46f1KFuCLmwT1RE1hiVJx0iSGTQ3MzZX8RX2Luydig3Yw3v5vWT5LgDU/Tofxrvb8ePdir/VkKDoOeLU0CDKtmVNWHXSUWiFUVjuykkHI4MoW9JBRRvq3lfmkoH7bEXf4t1kMDJwtAGo2TW+Ee0lrRZr9tYte6VO/Tz08ax7S7aMiRmVmXScVPjEUMVXSLcWVTdBF+wXltDPAajLTftcMps87DW7WMMQrLnmU5O+Hvp51gTdFQk6TkKSjhNJpvB2oiEqvrqYU8MLezOaTFW3fvzYmvLbbcePbXtRAlDxa3v4oDqsEHmvxmEIY3vXe6re1ztD9PObCqtxUpa7ktcvr2ak4isc1T/CIP7CmH9MSJQ3QuI8uXEIA4Rpz9wLCcOrlrkDUKFreiPamx3fnuLLCKtYBvHj4H5X4XWF8fjChF9LGH9cjK/1284OKtjfQyXX38o67o37QVPUOClJOvL8JdaJn76bsfmN+JeYT96oQ7/oRpP5lP3KwU/ukhmr4WcXYfPq6+GGxua5AFTgmh7Gr9P4ECzs/RqSg+vHJcSSD87D65zk8lsfwFPF/h4SdIMoeyXXprEueZCkI+9fZiFJMMx6/Z6oUeH+0Ij2lsKMezB/5Cd3yQAj9LMLUw6HwhIAlPV63kyupQtT+PHh+tkddsw8hVn15yUoqFCfDx92DzKOnxVIJFf2pCNXyadoWffE+m4ygICqmtTguHNMn7wdP0Ki7lqUbe/IcTlYWKLh1ACgDDfq4boV7W3pMo1lpNfja3hjlA+1k6qr4Xp7Z0Kv1woZqmQQZf+AW4KOXEnSMQ5ZK74GvWSmD1RtYB/6wSSWmlzPsg9M3CYskQl9rT/l0LQN5AEowXU8XKu2o+nsPRc+8A77vHVP8k2SmW3NaDKJOtd2qtL3e1H2BN0VCTryZrkr4/rl1oiyL/Oz4SxVO//nkoH9uGfR3Q2fsI/w+kICMSTtprVs56IlMQAU+DoeZqFNIzkXrpFXk1lweY9LBtH4t75Yzfu1w4T7fhgfZ93P+fpJE+lwGDPpGIsk4daMsi2vC4mM9WQAAVXQjaa8zDWlf4YBdJhVd2MKsbkqQQdAwa1N4WeGIksXx5HkSq67nWj82150nDqUVVIEMWuC7qYEHeNiJh2T+GWXteLrnWTvLCjzOd+M9vauGbdcKqkly83Dzcgklub249dsH0oAynA9n9RsurC0tTOJFSVDjstHEr+PU84e3LPC6MykY6ySjW6vZGx+IdkDAMpsEp++h0/Cr+bUR28nlWHHXVgit9cMABPQiSZTcOnepLZ8ScblY92bVlE4yubAB9ZZhP0dm6LGOEnSMakBwc2MzS9L1FHii3xIQl2YwI/q5r1kNCks0Rjj4L1r30kASjR+DdfZ7gR+VDuZhT8pnWi8ycems4cSjd1Dgm4QZd9HvWPbFsZNko5JDXTCgGCYRF1H1CjZRb4xocH8VpJQG8sNSbIctRXtbV6dlzvjes0AMMbxa7h2TaIyam+C7ykkGMZ5TbYMkLKM3cN+6GFZe9YEXVMlVyZBko5JujrEQOe7EnWUzFo0mWIR/z97Z3sdNbKE4eac+99sBB4isInAIgJ7I/AQAUMEHiLAROBxBJgIkCPAjoBxBGsi4OplSngw/hhpVK1u6XnO0THLYn20Wt1Vb1dXuW8ZrQyQ0ozsDx2dspNvWVG21bFUxCKFZgAAIKL96s1uNa/NYz2QJby/cTr9AV0GUmet4vHupuMAAh3EApEOomErd0VoJtQVtBxkMNEr+ixGcukPsQwEi6qTEf86rJJat+VTF/dsxtSRGVMfq+M/E+1YsQcAAM/5UI78eYRLzSwqPxZu0XQspEEG6LveNEXNW0vfBBAFRDqIbeg0LQF/gRMOKWOGaIytnDeRrnP/m60LS7wNzXPY6N/PO7oVCXT3IxWPq+Nb9Q6uFHmLUwAAMNq5eKJINM0HTpeYBf8iEjuR5/mF47mx3SHl8UJ9f1OB7hyBDmKDSAfRsaiaYkNjRwZLiVAHCTMPm4fKb0OviWrNQJmEZtEEXd7zU9uNZGidVYe2wp5GjkQAAID+nO3CHO7v1XGi+cAjXYrNZTG2vR7Gqo5qz/SFXgQjGzM0Xhxv+M/PLa86QFQQ6aAvh19C3aaDnoS6C6JkIMGJXuLxuwiX+mLbbfr+bm/NWNmksIQKXFx05YSFzVY8d+x9fK9+pySvJQDAYOdfRU9rXvz6gMPtMvbbYtVlhMc7jWjzXtCbYETjxjxsLtBdItBBXyDSQZ8OvwyDtxv+c0UqlQh1kBiLCNf44eVwbPHtltUxCY8Xluj6ntucS4mrz6zQxJzoOgCA7B3slzaeL8MqevqxAgUHjjmNoxSRiHQdUdKzYCTjh2zJkw3/ufKnH9Fq0BeIdNC3s7+ofrzf8J8rkgahDlKZ7Gdh83wW2zDvc5vrM9/vvPrxKvwdWXBa/b9lV05Z2HzV8zFnR0aZousuKEYDAJDdfDuxLWpLG883STExdZr3tBPkU4THPomxuNTVXA2Q+Bii8eBsw3+unSJFqrY3jANEOkjB0VeS3E3zXEkUITQf+p7sJRzNI1zq0r6PlL/f5b3CEtcm3nVFl9EEqsD71aLrZgj+AABJz7WFbWlVvjkt1uw0+PVjR5FrHp5P+dAFi0hNfU1vgwGPI4qI21Sgkx17hEAHfYNIB6k4+tOwuVB3YCuqAH2xaOgstGWW0TesNpFD1PX2gKnD7SoK42N1XNGVAQCScqhfWr65ZVjlmztIbP6IWUTiIFIRidtMzgnQdDzZD5uL3RLoCouWBeiVFz9//qQVIKXBVANjk5LYU1oNIvfRwhwHb+pw++WI21rOyWfHS7w1cREAAPod7ydhJapJ/OpqEUxO98QrKsai/A6cm8b1Gew5bkPHC4/V/b6gV0PPY4oEurJB336TQpE2AEEkHaRGETYPuz8mog4iT/jaHhmrzyna68oqUY2VqbPjw9Z5AIB+59U635y2tJ6EbsUincszEm0aoYn0DHPH9n8Zut8ZwPZZ6HtcaSrQvUWgg5RApIOksJXCIjQT6ma0HERCfW034vVkXCh59NXYCh5YVMWh4yUuyDkCAJAEx47nnjvarMvweJXzLnlnooMHHrYF2wWhT/tRwnMZmgl0C1oOUgKRDpJjTaj7seGvfLSqPQCek74M5JOeLq8t4Cp4sBhRsQNv8f2UXg0A0LvNtwyb5yRuw65zXjfNJTGKSHjNWR5tU9KzoSdbvalA9wGBDlIEkQ5SNdqaCnVnCHWQqYHcBEUbLEfS1z2f8ZLEwAAAo5lf3RZ9zF6NMScfdD33W8S6RxQjqSQgOmsCXZPc5nNaDlIEkQ6SxZzoIiDUQf8Tvwz8g0RuZ8f6emkG9hDbexp8q+cu6NUAAEnZe5eOlzjwnC8tl9WXCE112nE0vYc4ek4qCejBbmwj0OEzQrIg0kEOhlsREOqg34l/nuCtSTT8PtDCEp7f8A+2NgAAJIf3uOw9V84a2Kpt0eJVJ8Ka2cqHGb5HgIfs9DIg0MGAQKSD5DGhrslWhTPn/CMwPsdhJ+H7U2GJ5VAKS1juvwPn9wkAAGnZehqbPXO7HXvmdLXcejHSYhxvO9/bPOtxr5dUyITINmNTge4agQ5yAJEOcjLe3jZxxB0rYcF4Jn8ZwocZ3Koqzg6lsAQFIwAAxkm2uenMVp2HxItImF1TBp/FxzldGCIj/3BjgS74VDMG6BxEOsiGhkKdjI8SoQ46mPxzoi4sMcuxsU1g9IyC/WLRDgAAsN14ve+Q501zrueW0WmEpolxjb0287z9ztfgI9ARRQexxyCNF5supP8S6MiXCLmASAdZgVAHESf/eVhFqOWG+v1HKyyRW98/ChSMAABIcU58qVQiFrG9rP7qW+g4csocaM/KoLveeYtNqDqP8Ermm0bOm6Cq+/rodC8SVqd8JRBxPJI9t2llYgQ6yI4XP3/+pBUgx8FZxsBZA+OhsNx2AJv0r0n14/tAHudDdZzmYJyY4+cljN5UbTChdwMAbDwma6FHiydFeDhXqArxvOz4mt7zr3JS7Tu3m9pE85l3PltFhx89cx+Knjtxvo/31X2QSgJijUuLgEAHAweRDsYySCPUQZO+VQbf4gWxUY6cacpbUSxPzlecCACA3sbhSVgJcjo2jWx+3bVtVd2Houk888G+8Z4PbWvpxxiv7aFnsQJqmvO8dwQ8KRQC9Oz7TRDoIEfY7grZYtV5Nt1SwNZX2NQAUL86GNhj1YUlLhIuLDF1Pv+C3g0A8NecV1THaXVIaFME25k5wZtGgXkINN4LKt7zTbBFoesIr3Bx731ObKHxc/AX6K4D21wh3li1CM2DMxDoIEuIpIOxDtpE1MFDfSnWFpU+0TcwTymqzNr9P8dLnJuoDwAw9nluEu62sBYdzHcqGFA43KfmYk+R6ZV3IaEIEeI1H1RZ1nLpnkTqStjTgK8H4ASRdJA9RNRBh5yGOALdTY/PmGJhCe9qtAu6NgCM3MmdmvClaDltwzzsaL47cIrQnmc+79RFJD7FmEPt3SLQwRDHLtlwCHQwKhDpYBAg1EEHRkDRwAjYBhns+5EM9ycdq+r4Ztuc+t4CO3U893XKufgAACKhcd4rMq1wsOsW5nC7zTuR5r6583PUdm2savSIIBDTNl8EBDoYIYh0MBgQ6mBLFpGMW201va0OreK/DnFy1jzFu+q4siTTfRhgR87OBcUiAABCuHA8t9f84Tl+7zje97ptqpxYs4H0IUQQiGkfyi5HoINRgkgHgwKhDloaAvMQZxV6tp7EVsZEdaj/vQ/+K+1PoWf/bIUlJpGvPXV2KC7o4QCAffQr/5pXqoXC6bwL52aZR2p7Pcdl5l1IC4r7iCAQyS7XN4NAB6MFkQ6GaIjK6Ueog00NgUmIs8p9aYb6Q31W0QK6jy89N4dyFF1FbvtDx0tcUNkLAOA3pdN5dz0WeExYPHdsj92IUeQ5R9PJNim8C20AmG0oWxmBDkYNIh0MEoQ6aMAixCkWMX2mz2oLrJyFN6HfwhIxt4d6Oy1zuvcfhu/ECoaoCmCRQC5CAIgLW17jz0P1HC8R4VOGfea9bBMWvCCSnSKbHIEORg8iHQwWhDrYwBiQU3EQ4VIfNl2BtiIH6ocfemiSmxBXpJs6nvuSVf+/mFt/VwXAr9XxX/UNXFnxkCNEO4DBUzqeu3Cy5eSAe24VPYiY5mEe+l2Ea4K2t762SH+AGDb5IiDQAfzixc+fP2kFYNBn0B9jv5AgsQz+UXQ3VX+atLxHiXUykA9iNUusSqjVs02rH2eOl3j72PbikfZ39cHvm/RXc+R/HQidAO7zUBFWUWjann8R4Zql15xS3f+LTOeLc1vYjfHO9a4/J941tbA45wuFiOOg7LVN05/gq8HgQaSDsUwAGvyPG/wKDv7w+4TEr3cxLrWt8FXdq7bjyGD2FBS/2HbbWO3v5ijKgKuehaiwP9v7IrTL/ydjuAx3oh1GMcB236IWX47s2Is9Btt88tHp9P96CY3VfS+Db4Gnf2Jt6XSe/7ZBEYszxnmIOB6+NPtir4FNgkAHg+d/NAGMAa2QVhOB/ripUHemf49QN1ijoAhxBLrzLiLTtN3EhObT0Exs3hQZPdPITqqng8L2nL/7e9sCHTv2u4d2LvWVq3An2pW0MMCT398krKLldByFxxdbiki35PnN6hm8ogE1rn90vPd6MSwGmm+/J9RNNa7PsHkh8tiIQAfwCETSwdgmBBkgRNTRD64aGAXbGL2TrlfmTXBRn+wyouB9zLwzLb7Dprxim+Yf7S0j2FMUvTRD+5d4R4Jx4Jv7NU5LkCsazjVRUg5U96dv1CMy+7q6/32ne/ZOUdE6NUXL55mHVX7QvlExiznjNkQeIxHoAJ4AkQ7GODE0FQgQ6ob1/mMZxq79psPnUIGFIrJh5uloRd22m4lY8DXyZZVwfIoxDSP6zibhTpQ73OJUUXKBOS+UuC2SRFjgiWbv2VyoMXK3p26rcXpGNDT0MF4i0AE8A9VdYXQ0rPoqzixpMQzDkZpFuNSlt6FvjtyrsH3Vu1nk1/DUdq8uWNDT/6CPrb8yvMkJCIN2Mq0i8sJypWnrorZiHm556lgLDKXjuQvHc8+d2yXafGiRa33YlhI8FD2/j0AHfYydAYEO4FkQ6WCUtBTqyHOVP3qHOxGuM4vUj5cWBffWDJmmfOjB8PF0sm5iVEfMyBieBv9t3Y+BSAdDZhFWFToV1dVlJNSeObHeeI6TbkKjReh9cbz3PYs+jmWLls7Pcx/ZvZOY6S0A1mwSbYVfBgQ6gGdBpIPR0kKoe2dbLSBP40COw2GES0UXvixqb9KwP9+EyFFW5vx4bu3B8fiTeY/X3qf5YcBkKXKtzRmK4rp2On3hfPve4/w0cl/Sot6PCNdRKogpueegJxtcNkEZNl8oR6CDUYNIB6PGhLoPDX7lGKEuS+PgZYgj4EQXvtadLuvPb+w+nnUMejDWvZ0fvs27Pi/Hb5eWAHChdDx3kfkz7JhD7jXXlRvOcW05ttQYsebuZSS74TBmlCDAmj3SVKDTAsI+Ah2Mmf/RBDB2lNvLcsqcNTDg9HPGimQ2zEMcwaL3VWpzYCZWWGL2iFH0Jfa2UHN6PBN+n/M9/m7rl6HfKDqAp8YBHXLaXtqxiaAjZ03ft+bqZd+5tCSsVM9y4zSvFJEeQ3PAO6dzH9k785zTzxzPPwtx89PNLT2Bt51yGohyhrhjvsaCRWgm0BXYczB2qO4KcDeRTBsafUwkebxXGaTfIlwquaqi5hDLODpY+2ttIdj3qr73xL3IqfKsqvuGJNjR2noTolSpdPxudBT2V8UGv7a0Q6gf3o49CsDE4sJEgeLeONQF19bWZR+5KC1PrZfI9TpG/6me4Tb45Gm9VmGCTO+9nicnMe27iJW435OTDvCrANIGkQ6ACWXo71SOjnfy/OgGfcM2WF/J7MVAt2hVrygBd4cwo/4uYWQZ4hRIeYpsRDprsyM7io7bTnOExqAyrMSk5cD732StLQ8iXlpjsIS601jiqI2rn51OH2Wcrp5BbeaVq/UfzzkxwmLEW+8q7Q88k653HOFb2R/6WAT4UwA5Q046gDXMIHvb4Fck/pQx85dAIyNhFuJUt5ynbFhYlMkk9CfQyZmlYEQc5Lju0Ayb9UsTKf4zZ+LQoe32zOnW+b9LrFYElmfOrp7b8nt1fAxxBbpg703t/K26jzJG7i3n6L1YUdk5P8MiwlgamxhFJHaYM8F5PpgHBDqArSCSDuDhCaYw45UqRPm+w0lYRbB4CxaX1XsvaPEn30Xp6LQnHcXYQ5//nsjtJBtJZyv8ure+C2vUhWYWufbfhNryIb6EVe7YpePzZxuJFmHMOLdiRp73vwi+kWf/9pC/VULdxxiXIkUEJPBNuo8TADlCJB3AA5jhUoTNVzQlBJVDi47InNMQJ6JoRlM/6wR6RtVcIND9Zk4TPNkX900w1gp/CqLSrjnjiq6b27bbXNqyWCu4lGoVYYlnVyYkelE6nruIYOvoHd7kev/BPyIs+vxu0e7XES61YFaAjucF9SkEOoAOQKQDeNxQugrthDomnAQcyOAX3bDOJ6Ine3dy5jTx7wIpx7TEo+2jfqICMgcJ3p7mDuXWWqY+f0hItOgxJbjfzeDVq23PzHn0oHS89yJSG3lFiu16L1za/HvpeImDntKZxBAHd21cBOhiXrgKCHQAnYFIB/C8AShDedNVzdohYOLp0VgIcVaIFX2Agfs8nt/CJcmvf5NajqFJKuOBiUonGbzDev4oU4yqM8FFc+Jhht/HsUe7mo3gFYkWKy9d6XjuIsL9e8/30ed5283xKcKlZuRUhg5sbvXXJvmfPyDQATwNIh3AZka4DM0m2w/OWKHsDa1Ax4jwmLHN8lnjbRp8txwvaOXfkaOpRYhNEmiX2nnITVTSu1ymlD7BvuUy5BE991S7lg7nLZ3udzeGgJJ7AQwr+HXjeInjnkRz2ZAxikgwj0LbeaFeuGki0L3NpfI7QJ8g0gFsZgRKjJEj3ESoO3HcYgOPGwwxIma+xE4mnSmeW3Z+mHMGRHQ+NBa0Wd1PCTnP31KIyrZ7OAvDqBq85zAvD6HKq9eW0ViLB0PMTXcb6boHVoEdoKm9rTm2ycLNW+w2gM1ApANoZjAVYVUxblO0AnuRU0LwzImx5e9HoFjEpgbcXubvOod2PurYEf4xgDbJXaBbp9f0CWsC3ZA4tgqaXVE63msRqU0uHPtQDAFo4Tx29fINmqBxGeFSp9ip0HBe0Li36cKNvs03CHQAm4NIB9DMYLqtDhmc5w1+TVutSgwgd6NBTleMVfs5edA2wlvIxNgz5yrx8/WB+sbegN7xWR9bX20b9dlAv5t5V1tJbQHPqxpnEak9Ssdzuz+DvQPPiMbdHsXyKEUkAouPsNm8MA3NIqsl0BWWZxEANgSRDqCdQahJqklSXzmMVynlGBogMQzM6+rdE8H1vBEnQdozeuILQulvY7nLHGEypheZt4nGgcMBvu6oCz12rSFv6e86F5dXW+2YWOpt0wyhAMZ8ADbGY+8mRhGJE4pIwDPzguzfJgs3GlMK68MA0ABEOoD2hpMMtrcNfmXXHC2EOh/2IxiyU5p543aiYISvsfzSwSmVAT7JuE00Bnwc6CvX9xRTNLsIw8hB9xRd5uIaQl660um8sQpgLEOzdCRN2YshmD6CxvqbCNcZ/dwKj86v6hvvGvyKoov3EegA2oFIB7CdUahJq4lQl0wy8AG+i1sTTt8En61HnzA2NsYz4uCGoh2/27jrKLrco0SH7mAexJg7HPIcpkwnfd7mBq+caEWktvAcV4uc3ucT9GK7RS4igX0K6/PBy+rQ+Hbc4NdkgxfWbwGgBYh0ANsbT3IMXzc00M86TlwNd++jrA5F1Hzo0GnSeea07kYGnZyxXcdLnNLGv6Louh4/TnM2qG083RvB64+R4H1M39huh9FRXiLXXqRtiKXjuaNEA1reK8+Is+O+toTa4hRFJCDmvFpXcG0yt57LBkegA9gORDqAbownrTLJ0G8iCn208HHweSfzsNoC28X2lykGx+Zt5Xx+vpmVQLdDu/52JDy2/qbKTnCMqDGxczfSs2i+lOjw4YHjMvL31AWl4z0WEebMIRTACGGguekiza/1GDOW8RQenwvaCnRTWg9ge178/PmTVgDo1llsOqnJGTlCBHJ9L1rFP23pfF5W76agFTdq50n147vjJUZvAFobX4VuRbrf7WpRRV87OOeP6pwvI7WJHMqTSK/gxsb45QMiRKwtotryPXFqy2XwF+lUHf30ufQBaxGjHqL0ff7Zdg52Hv+ijH3O39KbWBUeq+e4dewzEpcnfdlsEce716T4GK2dobGmaWXvt7azCAA6gEg6gA4xo03OWpMoADl2FJTwfS/aJtKmsISM8SktuDHebUVl3VWEw47DObsmStEBp62/D3FpIoOcc0XWzu8dGvf/Cd1us3+MXY+8UbaY4SnQKar5lbXfs86/5Rmd29h97dymW2/HtMIF16ne34YMoQCG91yxE/lZ7vczfRM3mbchJIqJwE0EOs13CHQAHYNIB9C9AXVrDtt5g19T5B1Cnf97kTP/uoEjdWqOF2zG1PHc12Nf1bdIneOOT3ueeR+PEWX1XmP6c1FAuYlKkb9fteFRm75mv1M4t2lX7Vk63d9ODPtgIAUwhLdgMB/wXFtzQO7k0dkY+m6aRGlqrCgQ6AC6B5EOwM/YlRH1oYkRHqj8GuO9XFlhiffPOCPX5nDDZsaddxQOq/o+bZB7H/d2IhUh0KjdI4lKhw7J3Q+d7vVD0zZ8oE0VpX4U0heQhhCJVjqddy9WQQL7Bs8dL7Frc15fdoze0ZcIl5pTRGIU9ts2FVzZEg3gACIdgK8hJQf4bcNfU+VXBAn/d6M2fqqwBCvIzfBsrx/Ozm8ORrREhK5FlC85R9HZgoZnFF3rLTxrqQ88t74WHball+Bw2dVih/XVudN97nRRtdM551oR6dNiy2v/c96m1/feWr8TWCAbum0hO1hCW5Nc2gh0AM4g0gE4Y07em4bG1Ltq4rxgBdP93Sy1Bcvez3qOl0+xElwPxMiTc+uZNH9BYRUXcSJ352vqeO7zbbfwrEV/eVF0eK79HPqtLa545ePqqg28IpwOItkEZSZ99rm+IgHBs0rwQRfC7jb2S6Qx/NgWiWB4ttuRfe9NdkFobtzHJgPwBZEOII4xVZpx2sS5UNRM2acROLL3IwetTvo+p1Ua4R1RMOqVfHOQuhZBL3MWop2F4R9d9WlrYy+hoEj0XDU3Tn3MazzoSqTz/K4K729rIAUwYs0dvdoKFqV6PYB2hPhzqOa4z6FZNPqHGFWmAQCRDiCmMXUVmicUV/j5FQUloryfW6vS+JIVwsZ4Gm2XFO+ImotukkmbeDr7s47HAC9Hfq/Dc3nMMV7bJhdO591P/Lld+72iapRqozqWHfetdXZi2jNW2d2zEupxAjseYmy73aOIxHCwAhEfG/7aW/I0A8QDkQ4gImt5ipokNKagBKRs7E2Db16wBe3bucP8VBTdJJOm8RoPb7quVGdtfe3UP7oSPDy+YZd8RTaPekQnvuzo/pbBTxgquuw7El6qQxH7P8MqquZd8C0A1OkzbMigc9PZ+HIe4VJzdnZkb0+0KRChyPLXVHAFiAsiHUB8g+q2ReVXQUEJSBFPB+UGw9AlCmuec4OYo+gV6bPI7LwvO2jPwunelo7doHQ456TDc3lF0+22FWbNQZ8qisai5b6FVTTNQeRPOPaW10XwLbAwTWQepogEPPX979uYTIEIgAxApAPoibXKr00LSpQUlICEjL49x0ssRt6+cry6jmq5iZWLzlH8KRxv28sJLTNsi5TxaM/dDN53o3du0XJzi575rzrOwiqKZrfHd3cQ04axyEvPuWS3750O9ozzCJc6pIhElrbE1MakJhHTilZGoAPoCUQ6gH4Nq4UZ3E2EOq16k6cOUsB7m89irA1rTqyH0zUfQPN4ReJ88cpHaY7OjwBdkbrjWDqeu3hi3JhYtJyqw6svK1ruJPgupnT6DE4MesurjTF6xhhFJEY7L2dqS6hfSJxvItCpgmtBfmaA/kCkA+jfsJKzMWloXGkVvLTy6QB9GH4SkTz735eRF4yYhe7zhA1l+7CXg3/hfN+pCkvZRWZv4TwqV9ylHZ/CKu3Eew1pdnR5f15VfQ/vjcV1wQf1r+/mkB8G31yh23IUub9oLvnieIm9RCLMphGuocjBOVZQ+jaadt6EVZ7JJrylgitA//yPJgBIw+EwA08rXpsmdJUB/rn6vQ9UXIKenAFPJ3C0uW9MAPWIzJgPoG32HftdDJGu6/xf+4mc4yEmzu15udaeWuSqhbvSfi7tCLG2eD/Qnw6cvoNFWImrh5l+ykUP1zx1bq9Z8I2g3MSW1C4Lic/vnC91oj5I5fWk50mNP022tSvS+6insRIA7oFIB5AItvI+tYTOJw2NJU3IU0LTISLeBSPGbCjOA1F0sZ37ywjjp8f5u4iC83K0J87tOU1cJPAcw44z/44VjTWJ+f40p1TXlJjrtfX3MPYzPTF/TIN/JOUijDcnZrJY/rnThu//2sZT8s8BJALbXQESo2VBCa0Ok6cOYhmBMsw9E4+POYpuEnyiIIbSpl5jXBnh3lNdRFlm9q7quXKZckclD+Gz9JGuYwy56W4j3ccBKVeSsx/a5J/TNnAKRAAkBiIdQJrG/SKsVihvGvxanaduSguCM959bDHitp07nPPHgNq0cDpvGeHex+YEFQEuaIJ0+ofZVp7C6TRm5dpnnvMywqVOU3jesbNF/rlPVV85YhcOQHog0gEkiq1q7Tc0tLR6dmaraQAexuAk+G61Oh+rwWiRsB5tezqENjVn0CWCkzw8LuwQaRPoV4/TVz49T/tINtg0kfaNEU23m9DzjtUmk93QNN+phGoViJjRggBpgkgHkDByrFUGPayq0DXhnSq9scIJDngb5GMWmD2e/Udgq+tzXEe6/4nDOZeJnOMxxi7SEUn3BD1VRB38llezHyXcfHC+jM6/oCf39v3IHvsWmi1eaYdOMZActQCDBZEOIANstettw19TcuRlT0YwDJep47mvx5oXxb5Tj0qQTaPoUs5rmXM+uvo6782x1aHFl8u1ow3LDuaXpeMzH495DrJv7zrAYxz19E7OHS+xm1AEqQTJG4fzarx6pRzKbJXsxV54aRWez1q8t33yzwGkD9VdAfIx9heKjgvNyqpr68XX6vfeV7/PFljY1jCcBgpGeDFPpE27jL4tQrcCmJdIt4w0hi83fR+2hal+F5PwZxRe4XDvN47ftuau/RE785qz9wI8Nkb0gb5Dz7QNs5BAFKW+uerb07187nCcmFXnJUK0Pzts0nJM+cT2VoB8QKQDyAitfpnzpgm6SdTNR4tmmLLqCVswdTz3jzDSrWEWdeERRTe0/H4Tp/MmF1XQQ6TDMviJdHVRo2Kk809ZHSdMHw+yJ9EhdqVes6UuncZdcWDCdO9jiwS1jp5Vkb9EzvVvKyxCs+qtsq1mbG8FyAu2uwJkxhZ56pSkuRb5AJoahxNHh0YsRmz8e0UQzgfWTi5jF0UjfuEtJijqo7RxZGxzdhl8K4rmTjGwcbcmpail6Ra/K4HvtaKwEOh6tcHUXxUR2USgI/8cQKYg0gHka/jXeeqaGP91RMOUFoTEHI5RbnV13EJ8Hjs6xbmdXjZ0TjYF8WRFjIgfCXVaKJqPsH1Lutij9JK/zbZs3jhe4jiV4l02FzQtIlFXAC3IYdbv3Gepbt41/FXyzwFkDCIdQMbY6lgRmiWmlqN7pqSzVH+FTY3E4LvV9XJIglLDdp07nX4+sObyigDGgVlRRrqO5p+Tqu8vR7ZYRA6vxyl6vPZooulU5CFsLkpqp8aECKzebQR9G7KNmuaf+2DiKpGPAJmCSAeQObZKpon8S8NfVdLkku2vsAFHwSeKqWasjoAcOKLoNmPidN4ln/fvSJubiJdUv9dikRLbn45gHiozve8fZlsoat+rIupOj+9/EXyjaVNL1D995v9rwfcNW1v7xyKOv4bm+ef+NUEWADIGkQ5gGA6W8tRJSHnf8FfrPEFTWhF6cjRuxrhab1F0Xu06xPacOJ13yef9mz6iveSAahvXN4uuG6Rg14MIug0SarQ1UnnIXsq2sDHac1zpa8vrrfNz7aRkX1l+xIcWdCXuvK/+/z45Ovu3DapD7+CkxXe7T+VdgGGASAcwLEdAWzfehGYrw2x/hacMRjnMe46XWIy0aWfBJzrxcqBO1sTpvGx3TedbVHTdumC3sGqGQyFV51nioaLk/q2Of0yomd/PZeVcAKPP9zymAhL1/ay/R737idmP0K+9pe9gGZoX6dI7LMaYNgRgqCDSAQwMM6Tl0F42/FVtf6X6K8R2MBZja1CrcOnVrvOBNtvE6bxs6bqbOyTKpBLttWtz0mfbEjsEwa5M6F5kHyjyXtFyEmimisDZYIuj1zPs9bVIaMLGF8dL7FlusVS+cz3vqX3rb+zdMw72bxe0qd5aF/fgHQIMjP/RBACDdLY0WRc26TepCCXHSFEM71lVBXOajh0v8WWkK7/zMI4oupeJnmudJV/6H2jc/5jYPe3YOKRqmXJKFZGmfn6Rk2MqEay6/74uf1O325bb4dTuXg9RhP6iDU8dn0vMQkIireUsmzPcJWFnTazfN92xoO2tU6q3AgwTIukABoyS/4bVFpamW1Q+VobDBdtfR880gmM0RoPcS/jswunq8pvvMirXZcs124P+YhF8E+lvSy3YnVXHfzZPTTOaqy4jXWe94MMri5abdZCvylNE6y1S0hY3rh0vcWhjP8C6PaA+f9ViftO3XSDQAQwXRDqAgWNG+X4LA1SrysuUtmlAdLwLRpQjbFMvYfK6o/bcG9G7+MEn/td8cRvyEs81T60LdrPExRBPkUvRcp/Cagvj74IPXQrRzgUw+rY1xpabDnrCikMsQvPtreK9fdtsbwUYMIh0AONwvJZKBm0GfBNkPHy1UvAwLiNSDtNuxg5Rqm16SHs2breJ06mJQnh4vtB4f5Phrevb0lbd76qOmGiEXel47guLliudn8FLaNztMyeuVbD1FO6n7E4A6+Oae5pG1GtMfk0qGoBxgEgHMC7nq+3215PKsLhiu8aooGBE98ydzntjDuZQYdyJzzTz+1d1xDrCbpFKRLhzcY5Y20VLx3P3/Z48BZCdAXxXsAWK9K1+fAvNF0C1vXWf7a0A4wGRDmBkrG1/bZobR9vgJNRhZA7fkJwE3yTaQlupT8ci/JpIcOB0+jm9tl0fpAkenSfK0DzyOlUUsfLVoutSqBBbOp13N8Z42kFeu6fo+/2w5RU85n9tb9V337QoT129le2tACMDkQ5gnA6Ytr9KNPjQ8Fe1EnxGUYnBM41wDfUlVR7+bv3paOBtunA679Cj6ITXFrhlS4dL29aKtWOQY6FFXl8O6JEkkn+2qPCix/sYgsh16fiO+uzzEkLOHS+xO4K5Dv6cL45srmnat5VHuhjB/A4AD/A/mgBgvCj3kK3uyWlokry2LipxNNLk/0NnGvl66k+qfqdtYDJIT4e0amzRp175/eYj6I8vE/w+Du694/qPN+FP8W99fNRWpbpfLzOpLHtkzzCkgiJ6FkXWSWia9vAePOfMIsTJT3kRnAQ1sysueuwfar9jx/PPgq9QC2nM+y+36EsSimdEzwGMF0Q6gJEjkc22yCxCsy2OdVGJTxZxAcMwLCVA7PZ0eV33JKxyIMpIXQxEBJ47O8vQjrYO0OSZPrz+/Rw88a3Vf9SWpvVcQ3+IeeFO9LuNnZNITqJFnek7HFrlX70bRdXNYyZjtza9dmrPItJjeI7LRZ/jmr4xE3C9ovoOVDyA/GKDtqMKs6mb2lKaC6Y9i9QAkAAvfv78SSsAQG1YSGz72OJXr82wwOjMvw+UoectR/dQZNI8rCoX3o7om2qCHMorc5zLbdqput8ujYJL21a/bRtKQHnn8XraiMAdt9E2RBt3LSpETudhGCZfrC1vI40LGtNOvE4fY3GjeoZl8FnQ0Rb+Sc/jtiJIPzte4rx6xikWxyBtqLbftsbzo0wirAHAGXLSAcBvLJrgtRkLTVBEwDczTiBf41KO0UFityUnUFUal1alcT+j9pSwEeOb0Dt7Z07lf5Zz69Ryp/Xp7HZ17X2+zkfH3ShbgSVeKXl5aJ7HNBckPpYR8wsOIS9d6TXm911QyCKZbhwvcUxe38HZT/uae0M7ge5D1ef2EegAoAaRDgDuG6cyMorQrrLfiVXQm9CSWZLytmVtr1Zul2/Wx6aZtOdOD9eVeCPRTuKmCnPUAuc0ssi5O7QPZOyOtfKYhnYLOTmg7yaKUGfz7A+n0xeR2qt0PHeRQH+g0itsOi/oXX4LzbewSwh+Y+MqAMBvEOkA4CEH4tbyzP3bwpGo8/xggOZlZMoxnWZyu+pjqjKs3E7zFEVha89UvgGJZRI4Jdp9s3ZTRd1ZTpGJDixb/E5q7RV9C7gEJkV9hFVU3Y+B9YloQl3wE7n2It3/EKIBn2Lh3L+xkfK3myaWIqRNSgttsd+n+BoAPAQiHQA85YzJCJ+EVc6rJih66CNRddkhp+Emo/tVP9PWku8mOh0ldG+noZ8ouk3b7dAcC4l2P+1bnY9sfFsO4Bmuerz23OaHoYl1EupiJG7PWuSy/H1eEZVFAt+Wnm/hOQ5nEhEOD2AL0Rp/m6YI0Vj5VukDqN4KAI+BSAcAzxqqlvz9fSCqbujveWEJu99Ux3lmjyDR6bNt7Zz1uS3RhOnjzNpP3+pJwvcG6Y4b8zA8se4ggmhdOp67iNROXkLjjlXI7BvPLa9aECMvXWbci55ruhCnBW9Fzy1oSQB4CkQ6ANjUGTs1w7/pynkdVXdBouRs3nVplef+Mcc7p+i6XTOe/7M8bH04enN60WApaIIHx4xfYl11aIx/G1ZbuXLnxDMS3CI5vSLRYkUVXwz5W7N31HVfllCjSKqJ2VWQCVtEzwkVhygoDgEAm4BIBwBNDNb1XERNUaTTMrEtibCZ4y1H9d8MHW9Fs321aqfTGCKx5Xg7pvdABC5TvCmLyNU4/yqsIrBzLjKxcD5/6XTenRj5Jp0LYKRiK3QlpCk6/Y0JNYsA2bBl9JzGv9cUhwCAJiDSAUAbw1zGhrZENo2wknHz2aLqJrRkVu/8Ys3x/hTy2tamHFMqmlBXOfXse0RG5ME1TeA+ZiwVKWQLO4rKrSPscho7DpyjcYdQfKH0GrdTiL63xP5txwv1dS1qvlJ0OkUC8mPL6LlPGv/6zB0KAHmCSAcA2xiucr4+tfh1RdWRqy5fx3u2tq3tMqPbl0isKLfvVihh2rExXwTyp+VC24Td+zRdq3Gjznl5ZGPH67CKsstBtJs6tkvpeN9FpPYZepVX0XTx5cbmx4lFoy8ZBfJiy+g5vX9FTWLjAkArXvz8+ZNWAIBtjZnCDPU21Swl8kwxYrN+/xIuZuZQ7WR2+xII9rvof2bQI9KtUbXriw7a1cNQubSCODm/409DcQJtDCnsOEzwFv/xqsSoyHLHZ/7Hu4KkRSZ/dzr9ueVHTaGP3m4wv8memRMxl/14pHF13tKe+WR9gMqtANAaIukAoAtHXAapDPU2OcuoAJv/+78yR0p9QNEDORWaWHYk0E0DAt1D7bK/5e8XtOKjDMYJtDHk1CLtJOz+a85uKmPJ1PHcpeO5iwjvTuNn7gUwNuGxaDot9Cjf3CvLN1cGyHW+2iZ6Tv3gX9tpgEAHAFuBSAcAXRnqt5az7N/QfPtSXQG2jJHsGlz7wMIKTbwxxyV1usohN6cHPMhLngdajCUX5uxqLHltY0mf22ILx3OTl+4J2yAhm+D+XCEBWfnmJpZvbsmXmy9VP9Mc3jb33BfrBxe0JAB0ASIdAHTuXIXtouq+mbEEefeD0qLrXpkjk2J03Y8uHGSLotvlrY8CRUhchjTyqI0iWiORSN1Dx+dbOj5TEal9SsdzF4n0Q31v5/b9v5WAbPnmiJrKGInAqgBf/fEktI+eO6IfAECXkJMOADyNH63iL0K7vB7aPjNj68jg+oO2NQ8mp5dVH5SBj0j3SBNt8w3bdtevDvfVKifdE31g/xFRQX9f//+dlNo287FkGlaRTTu59OVnnkfz5LHTfb+KEeXllDuy028V4N64rfn/pOUptBA9RZwDAA/+RxMAgBeKqrOk0nJAmkYi7OkU1e+ThHdA/aH6UfcJGcfT0G+hiS62uuo5EOjG3a81NpVrf1U+4BDq78hZ2F2bL6zgQpu5pS1F8IsY07N4iXRHobtt/U/xxeldHEhQwQaArrDFn0XLuVvRc1O2tgKAJ2x3BQB3B3aLXHXiXVgVljiiNQfTJ5aWb0or2dq+dt3DbVxuG12ythLvhbbAfeqpfaBbJjSB29zyfgDvsHQ8dxGpfYbwDDBgNGebuK/o7DYCHbnnACAKiHQAEMuhqnPVtSkmIGPqs4wri8KC4fQLFZrQVsDYyeEXHZxDAp1nJODcxEy1zz/hruLlJT0nO3Ydvp2SZv3VDooSiyHUTRyf4dbxu44VaejZHwt6OmyDbZFftvwetGD2htxzABALRDoAiOlM3VoC8DehXaJsGVeKqpvRmoPrG+vJ4d8H3+TwNxIHtzT4dZ8njvf4Y/0e7dupK14W1fHCvqMPIZ1CBgB9jR8S6r44X8Z7u7JbdE6MSHSN4Y7jNpH00Lbv71u6gbPQblFNC2P7LIoAQEzISQcAfThUpQyn6o/zsNrO2gQZWR9tVZTCEsPrG1qllsN9anlj9J67ztW06OAcc+emON3kOwpr0Sv2TRVrxw49CkbELPN+7zmXqV0uIj2DR269XS2MxCiAAcOgg8IQEpyn2JgA0AdE0gFAL1hkkAwoRQO1yblVF5ZYmDEGw+sjpUXXvQqriLGuojQWWxr/k+CX5F0oKu60RXspGvHUtuS8tHZTzr/z4BuZ6En2TrmJzV1DnsK/+/8ydCPAP/Uu9x3v/yr4RcQWkV6DpxBINB1s+p2qr+h7aivQyd4geg4AegORDgD6dqxKy7n1oeUpJJYsLbIOBup8V4fys03CKi/bNrmbvnQQjeFdKfG0i7w31m7K+Te1tnsV7vLaxRJ5im2fwem+9jP/LMiL1M+36b0g5CVy7UXK51qmOpbA8FEft8IQn0O7PKCaF1+bvcEYCwC9wXZXAEgCGUWKigurSIimuX+0velsbQvsFS062H4iA7wuIKJIzGlotr1tKyfeoqI8E7H/CE5Cgwley1oIsAjU9S2yByPqSmwF7tg5DneFFQr7Wfcvsdg2D+Smfby6Fznae5k2ZRn8onSL4BxpKGGjav9Lp7HkkC8NnhiD5qF9MSfNu3PLbQkA0DuIdACQDCYiFFYYYt7C2JJj8K36/U9mcLESOuy+on4yq8XZDRzzmw62r8ydH+00Vr+165R21E7OCb2rczyi9qL0EdveWUePFfZzEu4EuU3FmDJie5chX5FOAvqZ07m1BXARqf0PnPpjwRZEuN8nrF+3raCtgjMz8h0CQEqw3RUAksNWMyehfbU+FaNgC+x4+svCtky/Dqv8a4/ldeoiis472oyV/HjOXawtrx5bJK+82qQ6VEH7p47qr77pE7PjxI5j+w6afAsxtxdn62ybcO61Fb2I9BjkpYMY43e9tVVjUxuBTnla/7UcrktaFABSApEOAJJ1VmQ8hVVhiTZJ7+stsKVT4nZIr89cWaGJSXW8f6DfLLa8xML5Ec57jv5MtQDL5cieN/TcB/Yyb+vc0x2UTufdiSFMD6QABiSK0jRY1Lf6Wdst0NptsW/pMwAAkgORDgCSxgpLTEL7whKK9qAK7Lj6zK1VOVW/kciriMytBDCLytx1vvV5z023P7Kusk+7/sXS6byMvZszhEi03AtgQILcq9raJvdcXRhiRjoUAEgZRDoAyAIVlgir6pRto2rqKrBzWnNU/aa07SzTLU/l3W/O2XLzKF7OVCzhyOM6pdP34tUH92J+87mPWcEvEi2WSNf1O5C4ouinfxknx4dtw1efalu1Vd/Te6XFoLAYAOQAIh0A5OS8LKujkKEe2m+BPamMvSVbYKGBgzALw4+iSxkvpyrWGHDAK4yXA3AgkVal03n3IkWUb3v/ElUUAf22Ol6ZuDJje+LoxgxtbVWe1m9bjKPKUzuhcisA5ATVXQEgO2So26rqPKyKRDRFgou2wCoqb8rKPDzlJASi6PrGK5JuP0L/yXELsaKW9pzaO0YUy8Tx3LGicDS/HTqduwi+W2p/LahVfb9pP7q2+yqp4Aq2OKa5d6flKdSfZvQlAMgRRDoAyBLLJzJTrrmwqojZZpVVv/O9Ooe20czJUQIPMNvCSdiU+YDbr4uoHS9h5FcifeftT1On83rec7aiqDFxnndiILHqo9O5j4KzSGeU4WmR7sb+jY4L5l8QtstBdl3b6PUfZs8ROQcA2cJ2VwDIGqvoKaOu7RZYoWi8pa3cAtTOggQm7z7xZeBRdF0IM57tUzg/v0sOMGdB4yqntoj4Tq8jzmvLLeazvvt8zUNCoKLXVXlbyfu1BVGR7AsEOljLO/c1tBfo2NoKAIMAkQ4ABoHlqpEg0LYKrKKlPlq+uiNaFMxxPLI+del0GZyJ59/D0vH0U0en8yj45zL0wKu9dyNt//Uav2MnnL/I+T3YNsP1gg8vtKBmlbdJ3g/1OPnSdkRsk3dO/eyNib4IvgCQPWx3BYAhOfMyzuZm8C1aGnxyqj9bvro5+UxG36f0/ss1h0LObbF2bLMV9pL+tXlbBZ8CDEqkP3ESAr2iMG+c29pTQFGbTB0d/mnw254eW1jS2PDO6dxFjOdRwQeGLnjkW60j1bdJKcHWVgAYJETSAcDgWKsC+2YLh1aCgIpLLAZSLRC66VtXFglyVB1yMl6HVQXC8xZ9bU6Lboy3cNS1AzoLflVdlxm39ZFXddEIRV7KyGONZ944osWhN0xM1zhzEtoLdIrQZGsrAAwSRDoAGCyKUlLem7Darvij5WmOw6q4xNzLuYSs+9iV5VSaWl97FVainRyIp3JYEUXXDM+2mnYpxNu55hn36dvgl39NDrmXU60299pefNPTFk2vbfYHASAyKgqhlCLVH8+2+Fb1TSin4YytrQAwVBDpAGDwVIacnDc5zudbnEYrvspXN6dF4Ym+tjTRbmZbvf4Jq6Imn+453PSjZpSO5+5MODIh/yL4VwTOub2PLZKmS+df53vneM8XPb0Ht+uSexViYeKcxpRtikIoUv1fy2tITkMAGDSIdAAwCrTiqminsNqe2DY6QY73iRWXmNKqsGG/uzDRTs7Fi7BKcF3SOs3aMfhW1zzc9ps2gU7vdc+5OWL0He9rnHU1hlbnkcB65ny/i566vud7KBhZwBNFFVuOYIlzbaM3tQvig1UDvqBVAWAMINIBwNic/SvLV6foprb56nbNyaQSLLTpgyWt0IqF8/lbC0e2xVXvdW8gffQitE8R0KS9W6cRsOgcRdS8c77Py74id+y6XoVCmLvAhbWKrd/DKmVIW7T7YWK7IQAARgMiHQCMEotukmP9fgtntK4EW8phpFUhc1LPuRgjiuLMij40cUj17yWm7A2sP8Rob6URuDKxbrJBWysyZ7q2dS5Gm/ctEJRO5yWfF3SKiXP6XpZhO3FOux1eWa5X+ikAjI4XP3/+pBUAYPSGpTli20ZkyLCcEykFmX4HHgbBjYnhXd1jLDFM37JyCy6eGDOOgm+xgsf4N8a2L4sS/hz52bRgcmVO/tL+Trkd1d6THtr60iKv+/wup6Gb7bxqW81N6jsqqrRk1IMObaiZHdvk41RKgxk2FACMHUQ6AIA7Q3NiTvfxlqfSFo05ThBk1v9dDALLw9fVPU6Df/6xdWrRaN1pLEK/1TGj5TS0Soy7Y/4s+hYMTAD5r+WvS/SQKHdBsn1w6p8ak5UXchtx7sZspgUtCgCASAcA8JDRKSd83oEjjlgHOfX75EU6u8/bkH/11K2aIKJIJwf8bKTt/EkFXxL5NjeNIJXYob5RR8uxVRA8xwbZSduI+FoEkcB3Sl8FALjjfzQBAMBfooKcnMK2e51uYYQqIu+4Og9iHUB36Js8GfHzRxtHFNliOabGFk2nCLR5Qvcj0e0xke4y3IlyRMuBKx2Jc+KT2UWIcwAA9yCSDgAgnlGKWAcp9/NcIum0/e8qjHQbZtftueH4N6ZoOkX3FCkJXtU7UF6+b/afiparRbmLAIAdBAAwKBDpAAA2Fwa6SIyMkQqp9vEsRDq71z6KGiRBbJHO2rsM/ebhi0VyAt3aO5gGCj5AP/1uHrYX5yisBQCwIYh0AADNDFbEOhhq3y7CqiiCjs4EGS9RqbpfRREdju099STSTcIqenHIuQCTFegAevjmpwFxDgCgFxDpAADaO60yYI87OB1iHaTYx4vqh7bZFXa0EmgcRboct71+CdsJi5dVexY99YchRy8i0AGETsU5KrYCALQEkQ4AYDuDdhIQ62Acfb0W7OqfGzlxnpFfdk9lyCPC6311SFjcpuhFbyLdmgM/tPx0KhJxxLgLIx/fpwFxDgAgCRDpAAC6MXAnAbEOxtfni3An3D1YfdJ7e2YmQt151Q5Tq5SarUi35swPRaj7ULXnnK8ZRjyOTwPiHABAUiDSAQB0a/AWZvB2kdNLYt0pW7Agk76vKLEi3Il29Tfw2rsPJy7U/RLo7D5Pqx/vtjjXp+pcs0Qc+5yFOuXJmjG2wojH6qPQjTj3w+yUOS0LANANiHQAAD5GcBG6E+tIvAw5fwdXVd+9jXAtCXWL8EhEX0/8FujsHsstx4RkIr/s3ap4R07FJIj2gTGPx10WvvolzoWVQHdL6wIAdAciHQCAvyM7D4h1ALGcUH1v7xK4nffVt3p67/7KMBCRbq299YzHiXeNSxMTLvhKYKTjIuIcAEAmINIBAMQxkovQnVhHNAhAvO+tKSpEMH1oK2UHIt3bFL97i2I87am9nxonL0xMWPJVwAjHwUnoLlcu4hwAQCQQ6QAA8hUPbsxoXmA0Azz6vSl65DDC5Z7NzVTdz7ZG15uUI2nXRAHlu+pjG6wi5tQ+F+Sbg5GPe9OAOAcAkCWIdAAA/RnRcma7EOswogGe/t4mYSUcyXHtOmfdtX1/F899f0MX6e49q9q7sMMjT6DafVkdEuNK0gAA4xx2BQDAEECkAwDo36juMtJHFWHnbO8CePSbq6vQ7tvPSWhW4VDOaxnuIraWDa49GpHukbFuYofa/uXa/9af96xt70fALe24tf93S5QcwB/f1jR0U6lVEKEPANAziHQAAGkY2ZPQXe4YQZEJgObf4OSpf9Pl92R53GqhSj/31/53sfZn/f2OXf8FbwoAOi4GIch1CwCQCIh0AADpCQXz0J1Y92srHoY3AAAANsI9EOcAABIDkQ4AIF1DXCvk09DNKjn5ZQAAAPK0CYrQbcVqRdsvEOcAANIDkQ4AIG3DvOstLUJ5607J6wQAAJD0/K8CLPPQTb45QSoMAIDEQaQDAMjHWJ+GlVjXpbHOSjoAAEA68/0kdBtJL1icAwDIBEQ6AID8DPipGfB7HZ1SOWkWga2wAAAAfc3tRei22rvSXFwEKr4DAGQFIh0AQN4G/Tx0l6NGaLV9wVYYAAAA93ncI0qeHLQAABmDSAcAkL+RPwndVnsT12bkX2DkAwAAdDpv74eVMKecc11taaVSKwDAAECkAwAYjtE/CXcr8l0Z/WyXAQAA6GaerufovQ5Pq/yyipq7oIUBAPIHkQ4AYHhOgEdFuNoRoNAEAADA5nPyJHRfCEJQDAIAYIAg0gEADNs5KEL3eesUXbcw52BJKwMAAPw1/07DSpjrev4l3xwAwIBBpAMAGIezMAkrsa7L/DfiV3RdIHcdAAAw13rkmhO/8sQSyQ4AMHwQ6QAAxuVAeFSSE3XuOrbeAADA2ObVo9B9rjlBxXUAgJGBSAcAMF7HQk7FtDoOOz61VvwX5lgQXQcAAEOcQwubQ487PvVNuEspwRwKADAyEOkAAHA0JsEnqbX4ElZiHVXnAABgCPPl1I7djk9PcSYAAECkAwCAPxwQOR4eW3bqYhMLtsMCAEBG82K9nVXz40HHp6cQEwAA/AEiHQAAPOSUeCW/FvV22AucEgAASHQePLI50GsePA0UXQIAgHsg0gEAwFNOimdCbKHtsBc4KgAAkMCcpwWqqc17XW9npcASAAA8CyIdAAA0cV68outq5+WC/HUAABBxbpuEu+2sHotRRM0BAMDGINIBAEBTh8Y7uo5oAwAAYB4DAIDRgUgHAADbODqT4FcZVtyYo0PBCQAA2Ga+qoU5HYdOl6FCKwAAbAUiHQAAdOUA1duFvJwfBDsAAGgyL8UQ5jQ3LWxuWtLqAACwDYh0AADQtVM0CXfbiHadLoNgBwAAD81BMYS5H2tzUEmrAwBAVyDSAQCAp7NUV8rTseN0GQQ7AIBxzzUxhDnxaztroAgEAAA4gUgHAACxnCjv7bACwQ4AYBxzSixhju2sAAAQDUQ6AADoy7Hyqqq37lhJsCsrx+qClgcAyH7+mIQ7Ye7A8VLazroILPgAAEBkEOkAACAFh2safAW7On9QLdqxTQkAII95QmkTipjzBAs7AADQF4h0AACQkiMmJ0yi3a7z5b5UR2nO2JLWBwBIaj7QPFBEnA9qcY4FHAAA6BVEOgAASNFBiynYXYeVYMe2JgCAfsb89fxyRfArNFSDMAcAAEmCSAcAAKk7b3LYpua8eTtubIsFAIgztu+HO2FuL8IltSBzGhDmAAAgYRDpAAAgJ6fuaM2p24lwyctwJ9gRZQcA0H78VrRcEe6i5XYjXFbC3CKQ2gAAADIBkQ4AAHJ1+GpnL8aWWKFqsWW4y2VHJAYAwNPjdOxoOVFvZS0R5gAAIDcQ6QAAYCiO4DTEE+xEnctOgl3JWwAAxuJfFbuLEC+3XA055gAAYBAg0gEAwNCcxD4iN2onsQxsjQWA8Yy39RbWIsRdJKnzh2rMRZgDAIDBgEgHAABDdiAn4U6wO4h46R+18xjYcgUAwxpX6yg5HTEXQuqUAxLlLngTAAAwRBDpAABgLI6lIj5qwU7O5U7Ey6/ns0O0A4Ccxs4i3IlyB5Evr7QC9TZWIpQBAGDwINIBAMCYHc+YhSfWWRftrnA+ASCRcVGLGUoZUIR+RDlB4QcAABgtiHQAAIBj2t+22Jp6e2wZyGkHAPHGvvWccjr2ergNLVrUohzbWAEAYNQg0gEAADzstNbbYnd7upXL8Ge0HYnRAWDb8U1RcuuRcn2Ob7Uwx6IEAACAgUgHAADwtFM7CXeC3WGPt6LcTHJmy8AWWQB4fuy6v3VVf97p6XaIlgMAANgARDoAAIBmjq+c3Vq02+vxVrRF9rdoZ84v0XYA4x2bakGujpbre3zS2ERuOQAAgAYg0gEAALR3iuuKsUXod+tYjaJVrsKfEXcIdwDDG3tqIa4+DhK4rXqLPpVYAQAAWoJIBwAA0J3jPAl3gp3Eu50EbgvhDiDvcSVFQU5oC34dKVfypgAAALYHkQ4AAMDXuS7Wjp1Ebm1duPt1sB0NIIkxQ+OExo1JSEuQExLlynBXhRqxHwAAoGMQ6QAAAOI54PeTuO8mdovaribRbhlWwl3JWwNwGQsm4c/ouFTHgzKQ8xIAACAaiHQAAAD9OupFSCen3UMo6m5pzrp+LhHvABp94/V3Xv/5INHbrUU5tq8CAAD0BCIdAABAOg79y/BnpN1Bwrf7l3gXyHcH4/129b3W3+8kpC3G1d9vnaeypNADAABAGiDSAQAApO38y+mvt8mmuCXuPj/C3ZbZpf35lsgcGMC3OAl3ueJqQU4/9zK4/Xoru75DclACAAAkCiIdAABAfkJBncNKIsFBRrf/oIAXiMCDdL6vWoDLUYirUZRcGe6KwpS8WQAAgDxApAMAAMgcExbWj4NMH+XSfpb3fiLiQZffyroINwl30XE7GT7SeqXmkm8FAAAgbxDpAAAABsiAhLt1rsMq8m5px68oPPt/iBP0+Vp4q0U4UdjPXEW4dRDkAAAABg4iHQAAwEh4QLgbgnBxn3pLbQh322lFaT9vSZKfVZ9dF9wmdoRwFwmX21bUTZEgvQwIcgAAAKMCkQ4AAGDErCXDL8JK+NCf90by+OuCnijX/rwu8AXyenXa12pqoS2EPwW4lyPsg/WxpK8BAACMF0Q6AAAA+Iu1qLtJWAl4+rlLy/zm8t5/L+1YZ3077n2WqVfYtMrCD7Ee3bbO/X9Pn/m7z9T9pAxExwEAAMA9EOkAAABgY0y4mYS7ZPv6uUfLuHLZ4bn0vhDO/FiPjJMAV4YMBFkAAABIA0Q6AAAA2Jq1pP1FuIu0GmLOOwCxnjNuWf+ZyDgAAADYBkQ6AAAAcMWi72rhrv45CUR0QdoogrHeslz/JCoOAAAA3ECkAwAAgN5YKyawLuC9DIh44E+9jXhdhLulcAMAAAD0BSIdAAAAJMuaiHc/Ei8EttPC42g76m34OxKOSr0AAACQLIh0AAAAkDVrQp4o7Of63yHmDYdafBOl/VzagQAHAAAAWYNIBwAAAKNhrcCFeOzP+knFWn/qSqg1dcTbX3+mIAMAAACMAUQ6AAAAgCe4F6kXwp9RejXFA7+qfzPUvHqXD/zd0o51yvX/ININAAAA4HH+L8AAlfbPvmqdHxcAAAAASUVORK5CYII=\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 54,\n height: 54,\n rx: 27,\n fill: \"url(#a73)\"\n});\n\nvar SvgEusbsr = function SvgEusbsr(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 54,\n height: 54,\n viewBox: \"0 0 54 54\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgEusbsr, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/eusbsr.72fbe807.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"pattern\", {\n id: \"b\",\n preserveAspectRatio: \"none\",\n width: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 1518 308\"\n}, /*#__PURE__*/React.createElement(\"image\", {\n width: 1518,\n height: 308,\n xlinkHref: \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAlgCWAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAAlgAAAAEAAQCWAAAAAQAB/+FClWh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4zLWMwMTEgNjYuMTQ1NjYxLCAyMDEyLzAyLzA2LTE0OjU2OjI3ICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL2pwZWc8L2RjOmZvcm1hdD4KICAgICAgICAgPGRjOnRpdGxlPgogICAgICAgICAgICA8cmRmOkFsdD4KICAgICAgICAgICAgICAgPHJkZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij5DbGVhciBzcGFjZSBjb21wb3VuZCB3aXRoIEVSREY8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOnRpdGxlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBHSW1nPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvZy9pbWcvIj4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0wNi0xNFQxOTowMzoyOCswMjowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTYtMDYtMTRUMTc6MDM6MzVaPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTYtMDYtMTRUMTk6MDM6MjgrMDI6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2JlIElsbHVzdHJhdG9yIENTNiAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpUaHVtYm5haWxzPgogICAgICAgICAgICA8cmRmOkFsdD4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDx4bXBHSW1nOndpZHRoPjI1NjwveG1wR0ltZzp3aWR0aD4KICAgICAgICAgICAgICAgICAgPHhtcEdJbWc6aGVpZ2h0PjUyPC94bXBHSW1nOmhlaWdodD4KICAgICAgICAgICAgICAgICAgPHhtcEdJbWc6Zm9ybWF0PkpQRUc8L3htcEdJbWc6Zm9ybWF0PgogICAgICAgICAgICAgICAgICA8eG1wR0ltZzppbWFnZT4vOWovNEFBUVNrWkpSZ0FCQWdFQVNBQklBQUQvN1FBc1VHaHZkRzl6YUc5d0lETXVNQUE0UWtsTkErMEFBQUFBQUJBQVNBQUFBQUVBJiN4QTtBUUJJQUFBQUFRQUIvKzRBRGtGa2IySmxBR1RBQUFBQUFmL2JBSVFBQmdRRUJBVUVCZ1VGQmdrR0JRWUpDd2dHQmdnTERBb0tDd29LJiN4QTtEQkFNREF3TURBd1FEQTRQRUE4T0RCTVRGQlFURXh3Ykd4c2NIeDhmSHg4Zkh4OGZId0VIQndjTkRBMFlFQkFZR2hVUkZSb2ZIeDhmJiN4QTtIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGYvOEFBRVFnQU5BRUFBd0VSJiN4QTtBQUlSQVFNUkFmL0VBYUlBQUFBSEFRRUJBUUVBQUFBQUFBQUFBQVFGQXdJR0FRQUhDQWtLQ3dFQUFnSURBUUVCQVFFQUFBQUFBQUFBJiN4QTtBUUFDQXdRRkJnY0lDUW9MRUFBQ0FRTURBZ1FDQmdjREJBSUdBbk1CQWdNUkJBQUZJUkl4UVZFR0UyRWljWUVVTXBHaEJ4V3hRaVBCJiN4QTtVdEhoTXhaaThDUnlndkVsUXpSVGtxS3lZM1BDTlVRbms2T3pOaGRVWkhURDB1SUlKb01KQ2hnWmhKUkZScVMwVnROVktCcnk0L1BFJiN4QTsxT1QwWlhXRmxhVzF4ZFhsOVdaMmhwYW10c2JXNXZZM1IxZG5kNGVYcDdmSDErZjNPRWhZYUhpSW1LaTR5TmpvK0NrNVNWbHBlWW1aJiN4QTtxYm5KMmVuNUtqcEtXbXA2aXBxcXVzcmE2dm9SQUFJQ0FRSURCUVVFQlFZRUNBTURiUUVBQWhFREJDRVNNVUVGVVJOaElnWnhnWkV5JiN4QTtvYkh3Rk1IUjRTTkNGVkppY3ZFekpEUkRnaGFTVXlXaVk3TENCM1BTTmVKRWd4ZFVrd2dKQ2hnWkpqWkZHaWRrZEZVMzhxT3p3eWdwJiN4QTswK1B6aEpTa3RNVFU1UFJsZFlXVnBiWEYxZVgxUmxabWRvYVdwcmJHMXViMlIxZG5kNGVYcDdmSDErZjNPRWhZYUhpSW1LaTR5TmpvJiN4QTsrRGxKV1dsNWlabXB1Y25aNmZrcU9rcGFhbnFLbXFxNnl0cnErdi9hQUF3REFRQUNFUU1SQUQ4QTlVMUE2NHFnYnJYTkt0SldpdXJoJiN4QTtiZVJkK01sVnFQRmFqNHZveXlPS1I1QkJrQXgrL3dETzA5ek45VTh2V3pYa3g2emxXNEQ1THQ5N1VHWkVOTUFMbWFhems3bEgxNUxBJiN4QTsrdjVqMXlUNnlkeHA5cTNFajJiMHdQNGZQRFhGdENPM2VWNWN5cFhmNWtDSUtsbll0eHArN2t1SE5TdlkwRlNmK0N3eDBkOHlnNVdvJiN4QTsvTy9tS2E1TU5wWXczb1dsWHQxbFpkeFhxVHQ5T0U2YUFGazB2aUZsT2xYK3EzSy82ZHB6V2UyemVvamcvTUNqRDdzeE1rWWprYmJBJiN4QTtUMUNZNVd5ZGlyc1ZTWHp2ZFhGcDVMMSs2dHBHaHViZlRidVdDWkNWWkhTQjJWbEk2RUVWR1hhYUlPV0lQTGlIM3RXWWtRa1IzRjhpJiN4QTsvd0RLemZ6RC93Q3BqMUQvQUtTSlA2NTEzNUxEL05qOG5uL3plWCtjWGY4QUt6ZnpELzZtUFVQK2tpVCt1UDVMRC9OajhsL041ZjV4JiN4QTtkL3lzejh3LytwajFIL3BJay9yaitTdy96WS9KUDV2TC9PS0t0dlBINXFYVnRQZFcrdGFyTGIyd3JQS2swcFZRU0J1UWZmTWZKRFNZJiN4QTs1UmhMZ0VwY2h0dTJReTZpUUpCSkFRdi9BQ3N6OHhLVi93QVJhalR4K3NTZjF5LzhuaC9teCtUWCtieS96aTcvQUpXYitZZi9BRk1lJiN4QTtvZjhBU1JKL1hEK1N3L3pZL0pINXZML09MdjhBbFp2NWgvOEFVeDZoL3dCSkVuOWNmeVdIK2JINUwrYnkvd0E0dmZQK2Nkdk1HdWExJiN4QTs1YzFTZlY3K2UvbWl2QWtjbHc3U01xK2twb0N4TzFUbWg3V3hSaE1DSXJaMitneVNuQW1SdmQ2ZnFEdWtDbENWSm1nVWtlRFRJQ1BwJiN4QTtCelZ3Ry96YzVpWDVtMzV0RjBJTmRKYTIwMTg2WEptMUdmU1lXVVdrektzbDNiZ3VvNXFwQXB1YURNdlJSdmkyczEvTkV1bzZGeHRUJiN4QTtLZ04rdmZ3OUQxU2lIOHc1TlBrZzB5MmxzWmxsbHNFc1N0NU5xSm1pdXBaVXVYanVwWFdTY1JQSHg1Y2ZoT3g3WmFkSnhYSTMxdllSJiN4QTs1VlczUlk1UUtHM1RyZjI5VU5hZm1aNXJDNmExODJtTE5mMjJuWGtGZ3NNNlRYU2FnMUhXMkxUc0syeS9FNUtuMzRqY3psbzhlOWNXJiN4QTt4a0wyMnJ2MjZzSTU1YlhXNEgyOTN1L0ZJUzIvT0R6SEpvY042QnA5MFp2cUp1THkyUXBiMlRYYVROSkRPTGk2Z1F2SDZLaXBuUWZHJiN4QTtQYmxNOW53NHE5UTUrODFYS2dlL3VQSmdOVkxodmJwOEw5NS9TT2E3VmZ6azFxemFGRWpzL3JYMVl5WGxud1dWSTVmcVQzS09sekZlJiN4QTtONnNic0ZBNFJjZHl2cWNoZ2gyZkU5OVgrbXVYRCtuNE1wYWtnL0Q5RjkvNDcyZCtUZGQxalVuMUsyMWI2dTF6WVNRQlpiVkhpUmx1JiN4QTtMV080QUtTUEthcjZ2R3ZMZndHWU9veFJqUmpkRytma2FjakhJbTc2TWt6R2JYWXE3RlhZcTdGWFlxbFd2Q2E5OHUzRFdSUHF2R0pZJiN4QTtTdXpWUWg5cWZ0ZkQ5K1c0cWpNV3hsdUdGV3ZualZwclY0cnExdDc1WUU1dThvQU5LaGFrVm9ldllablMwMFFkaVExRElVTGRlYjliJiN4QTt1cldWWUpJYkNCS1ZodHdJMmJrYWZDZDIrZERrbzZlSU8rNkRNcFpZYWZjNm1WdDdPMmVXN0xscEp1WHc4Q051VmRsM3J2WGZMWlRFJiN4QTtkeWRtSUZzZ2ExOHQ2S0YvU3N4MWJVWWxDTGF4a21LT243Sko4UGYvQUlITWZpblA2ZlNHZEFjOTBQY2VlOVprQWcwK09LeGgrekhGJiN4QTtDZ1p0KzI0cDl5akpEU3hHNTNRY2g2SS9UdEE4NmFuU1M5djU3T0E3L3ZKSDVuNVJnaW4wMHl1ZVhGSGtBV1FqSXNwMDN5M0JaVUxYJiN4QTtsM2NQM01rOGdXditxaFVmZlhNV2VZeTZBZkJzRWFUZktXVHNWU0Q4d2Y4QWxBdk12L2JLdmY4QXFIZk1qU2Yzc1A2dys5cDFIOTNMJiN4QTsrcWZ1ZkVtZHE4dzRDcEE4Zm94VmxrTUdvZVJ0VWdtMUt5dEw0WDFwempnZDRabDlPZGVMSDRmVXA4SlpRZWg5eHRuTlN5NGUyTU1vJiN4QTs0Y21USDRlU2lRSlFQRkEzVy9EZTlXT25MWTd1eWpHV2ttRE9NWmNVZkk4L24rMUk3WFg5V3RiTzlzcmVmMHJYVUtmWElWVlFyMHJRJiN4QTtVcHNCeU93emNadXo4R1RKREpPTnp4ZlNlb3ZuODNFaHFaeGlZZzdTNW82SFZwZFEwU3o4dFc5amJpNE54elM4YjBra2RuMjRGM0NoJiN4QTtRYUp1V3J0MW9hREVub3hoMUU5WEtjK0hncmc5UmlLM3NSRmtubnRYdUY3bTZPWXp4akNJaTc1N2ZqdVFPdjZKZWFKcTF6cGQ0VU05JiN4QTtzNVZqR3l1Q1AyVDhKTktqZWgzSGZNcnMzdERIck1FTStPK0NZc1dDUHY4QXY1ZHpScU1Fc1V6Q1hNSmZtYzB2cEwvbkY3L2xGdFgvJiN4QTtBT1k0ZjhtVXptKzJ2N3lQdWQzMlo5Qjk3MTdVL3dEZVpQOEFqUGIvQVBKOU0xTU9md1AzT3lLVWVjZk5mK0hvOVBiamFmNmZjTmIrJiN4QTt0cUYzOVJ0NCtNTHk4bm05S2ZyNmZFRGoxT1c2ZkI0bDg5aDBGbjd3MVpzdkFCeTM3elNEMGo4eWRDdXJDMW52MitwejNMU0FKRUpiJiN4QTtxRGhIT2JjVC9XSTR3b2drY2ZCTElFQnllVFJ5QklHOWZEcGRWMytTSVpnUUNldjQrUzZiOHgvS1VqaTNqdkZibWFTdE5IY3d4bUFzJiN4QTswYlN4U0dFcEl2SlNBUTNFMFB4YllCcE1uT3Z1L1dueFlsU3NmUHZrSFROTHRMTzF1Sm9yVzJqUzJ0YlQ2cmV2TXNVVVBOUDNUUk5NJiN4QTtVOUZlUWNpaEFKcjF5VXRMbGxJa2pjK1k3L2ZYTmlNc0l4QUhMbHlQOXF2clg1aTZGcDFtOHNYcTNFN1c1dXJPTm9MaUdHNFFSaVg5JiN4QTsxY3ZGNkxmQWEvQ1Njamowa3BINDF6RzN3dTJVc29INC9TeW5NVnRkaXJzVmRpcnNWZGlyc1ZTMndMK3BxTmtybEdobExST0FEeFdkJiN4QTtSSUNBZHRuWnN0bjBQNDJZaGgydFdXalEzakRXN0dhemxjN1hkaVI2RXY4QWxjWHJ4UGlCbVpqbElqMG0vZTFTQTZvTkpQSUZ0OFlqJiN4QTt2TDF1MGNoVlZyNzhmVHlkWmozQkhwVWI3elpmM1VRc2RMZ1hUN1Z0aEJiajQyN2JzQUNhK3d3eHdBYnlObFRNOGdpTkg4Z2F0ZWtTJiN4QTtYbitoUUhzNHJLZmtuYjZjamsxVVk4dDFqakpaenBIbHJTTktVRzFoQm03M0QvRklmcDdmUm1Ea3pTbnpib3hBVFRLbVRzVmRpcnNWJiN4QTtTRDh3ZitVQzh5LzlzcTkvNmgzekkwbjk3RCtzUHZhZFIvZHkvcW43bnhKbmF2TUl6U0xPMnZkVHRyUzZ1VnM3ZWVRSkpkTlFyR0QrJiN4QTswMVNOaDN6RzF1YWVMREtjSW1jb2drUkhPWGtQTnR3UUU1aU1qd2c5VlhYNFk3YlZiaTFodlRmMjhEbFlibXRWZFNhMVUxT3hyMXl2JiN4QTtzL0ljbUdNNVE4T1VoWmoxQjdpejFRcVpBbHhBZFV1ek5jZHRIZEhWMFlxNmtGV0JvUVJ1Q0NNQkFJb3BCcmNKMTVqMHJUcktIVDVyJiN4QTtYVXhxTXQzQUh1QU9zVGRrYmMwSVFxT1BiZk5YMmJxOHVXV1NNOFhoUmhPby93Qklmemg1WGU3bDZyREdJaVJMaUpHL2trbWJWdzMwJiN4QTtsL3ppOS95aTJyLzh4dy81TXBuTjl0ZjNrZmM3dnN6NkQ3M3IycC83ekoveG50LytUNlpxWWMvZ2Z1ZGtVdTh5UDVidDVkT3Z0ZDFDJiN4QTtDd2pzNXBIdGpjelJReFNQSkJKQ3lONnYydmdsWTBCeXpDSm14QUUzM2UrMnZJWWlqSTBrUy9sbjVSMUVXRi9iM1RYVnZib1ZzWEsyJiN4QTtWN0Q5V2FVeXBER2JpQzRIcG9TUWpLZWZIYmwweS84QU9aSTJDS3Zuekcvd0lhemdqS2ozZTc5U1ZhUCtVdDVKY3VubUc2V1hUWUlQJiN4QTtxdGhhMjBoWUNMMVpINDBhR014cHhjRGlXa2IvQUlzcFFaYmsxd3IwRGZtZnhmNnZjaUdFNzhYTDhmanI3MDhzdnkrMEkzanp0cWQzJiN4QTtmMzFxRGF6eXlTd002SzFvWVVoZFk0a1ZlRU0vTmZoNUhseWF0Y29scXAxVkFBNzllLzM5NGJJNHgzMlVFMzVNZVdtbldaNzIrWm80JiN4QTtqQkhWcmNrSTF1TFlyNm5vZW9SeFFNRkxjVmI3SUFKQm4vS0U2cWg5dmZmZXcvTGk3c3MrekFjaDJLcllwWXBvMWxpZFpJbkFaSkVJJiN4QTtaV0I2RUViRVlTS1ZkZ1YyS3V4VjJLcFhiL0I1a3ZWMnBMYTI4aEhlcXZLdVduNkI3eitoaU9hT1NTeXZZbUNOSGN3MUtPQVZrV282JiN4QTtxZW9ya0tNZkpQTkxwL0xmbGxheXpXVUVhZzdzUUVYN3RobGd6VDVBbEhDRWZhNmZZV2dwYTIwVUZkajZhS3RmblFaWEtaUE1wQUFSJiN4QTtHUlM3RlhZcTdGWFlxN0ZVZy9NSC9sQXZNdjhBMnlyMy9xSGZNalNmM3NQNncrOXAxSDkzTCtxZnVmRW1kcTh3N0ZVNzF1MzBHNHViJiN4QTthUHkzSGNTVXR1ZDJzdnhIMVlsTFNsUUZYNFFxRnEvZ00xV2d5YW1FSkhWbUE5ZFI0ZjVwTlJ1ejlWbXErMHVacUlZNUVERloyMytIJiN4QTtQOGZja21iVncwWFoyMGZxVzA5NnNpNmJKTjZVczZiSDRlSms0bWpmRXF1RFNtWStiS2FsSEdSNG9qWUIrTlh5MkpEYmpnTEJsOUYxJiN4QTthcnI3YUsycjNEYUtzaTZhemNyZFppT2FoaFVxYUQ5a21uZjVuS3V6aHFCZ2lOUncrTlhxNGVWK1h2NTlQY0dXcDhQalBoL1NsK1pyJiN4QTtRK2t2K2NYditVVzFmL21PSC9KbE01dnRyKzhqN25kOW1mUWZlOWUxUC9lWlArTTl2L3lmVE5URG44RDl6c2lrbm11MjFUOUxlWDlTJiN4QTtzZFBtMUZOT3VaNUxtRzNlQkpBc3RySkNwSDFpV0JEOFRqOXJMc0Jqd3lpVFZnZC9mNUF0V1M3QkF1djFNTGJ5dCtZa056YVBaR2ZUJiN4QTs3R2FhNHV2cVZtOGNndEpaN3hwZ3JwOWNzWXBGOUlnRWZ2VnJ5b25mTXp4OEpCdmM3Q3oxMi9xeVAzZTlwTUo3VjMvcDk0L1NwWEhsJiN4QTtyODJDa3FOYzNiMjluY3JhMjZ4M1pNdHpaUm00WmJqNGJ1eWIxR01rUWJuT2pmRDNId21RemFmdUc0dmx5TzIzMG56Nk1aUXkxK09XJiN4QTsvbVBMcjBWcC9MUDVnUkpNeFcvdXpPWGN2YVhjVmhPOTErakxDM2d1WitGd1ZLSkxCTUhRTzIveFVaYVpFWnNKN2g3eGUzRklrRGJ6JiN4QTtIN0Y4T1k3ejluU08vUDNvS3cwNzh4TlVXK0Z0YzZnWlk5UXViZlVMMFgvR0dWSTcrRmVGckdaRk1KalJKZHdpVlg0YW1vVVRsUERHJiN4QTtyQStrVUsvb25uMzlPOU1STTN6NTkvbjBUQzk4cS9tUGJ3VHJwbDVmT0pSY3E0bnZtbVl4UjZtdjFWWXVVOFRLNzJBTldFaUUvdE9yJiN4QTtaQ09mQ1NPSURwMC9vNzlQNTNrZmNweDVLMnZyMTg5dXZkL2F2MC95cjUrYVNLYTd2TlNiMFgwMVlZMnV6YmowVGZURy9XU09POHVnJiN4QTs1UzFaQUdhVm1JcFFseGdubnhjZ0kveGRML2hIRC9DT3ZsOWlJNDhuVytuM20rcDZmaTJaK1FkTnZOTDhuYVZwMTdCSmJYZHBBSXBvJiN4QTtaWkJNd1pDUVNIVjVSeGJxbzViTFFVRktERDFVeExJU053WEp3eHFJQlQvTWRzZGlyc1ZkaXFTV1U4VTNtN1U0MWRXa3RyYTJTUlFRJiN4QTtXVDFDN3JVZFJ5eStRckdQTWxnRDZpODd0UHpBaGkwdXdzOVBlYU50YTErVFRCY3FvQlJpWTFKM0lOS3lEcG13bHBia1NmNFlXNDNqJiN4QTtnQVYxbFNDODIrZU5RdE5KODEyRnh6dS84TTNsbkdydElGTXlYblBpR0lVL1k0Zy9QTE1HbUJsQWpiakIreGhsMUhDSmYwYSsxVTg0JiN4QTtmbVpmYWJyV2thUHAxMmIzU3J1eU56RHE2WFVFQW5rTWtpLzM4cnBFRlRoUWd1UDFaSFQ2TVNqS1JGU0I1VWR2Z3VYVThNZ0J1Q09kJiN4QTtoWkI1OTg3YWxQNU4wOTNpczduWGpjcTl6RE1zMFppaVlBU0F3TXlPM0dvcFVIa08yRTZYRkVaRHpFYTZmclVaNUV3SDg2MDUwL3pGJiN4QTs1cG44MStiTFdLWnBiUHlyQkhLc2ZKbWE1bU1ETkhIeHJzSEtOeXBsTThXTVk0SHJQN04yeU9XUm5JZnpXTytUUHpaOHlhdnFGaEpEJiN4QTtDTG1TOGVSSnJTUy90RnJ4RlQ2Y0RPc3dwMUh3YjlxNWthalF3Z0RlMWVSKy9rMVlkVVprYmMvTWYyckIrY1dtdnBscmN6YXplUmF6JiN4QTtjWExSM1dsY0dIb0JHSy9FUlFDdTNUeDZiSEQvQUNmTGlJNFJ3Z2MxR3NpUU45KzU3dm1pZGc3RlVnL01IL2xBdk12L0FHeXIzL3FIJiN4QTtmTWpTZjNzUDZ3KzlwMUg5M0wrcWZ1ZkVtZHE4dzdGVXkwRHpGcTJnM2pYbW1UZWpPNkdOajFCUWtFZ2pwMi9wdm1CMmoyWmcxdVB3JiN4QTs4MGVLTjM4UnkvSHoyY2pUNm1lR1hGQTdxK202NVpXMmxhbmFYV25wZVhkK0FJcjZSanpoSVBJa0RmbFZ1SjYvZmxlcTBPVEpteFRoJiN4QTtrTUlZN3VBRzB1ZzkxYjh2ME04V29qR0VveWp4R1hYdVVwZk0ydFM2REZvTDNESFM0WlBWU0QvSytMdjFwOFhUcDlPU2gyVHA0Nm82JiN4QTtvUkhqU2p3bVhsK092TmhMVlpEakdPL1FFcnpZdU83RlgwbC96aTkveWkyci93RE1jUDhBa3ltYzMyMS9lUjl6dSt6UG9QdmV2YW4vJiN4QTtBTHpKL3dBWjdmOEE1UHBtcGh6K0IrNTJSWTk1ODFMV3JXYlFyYlM1THBIdjcyU0dkTEJiTTNMeHBhVHpVak44REFLTkVDYTlnYWI1JiN4QTtrYVdFU0pHVmJEcmRjd1A0ZDJqUEtRb0M5ejBydVBmc2w5MStZTTJqUXpXdHphVFhWelp6eDJ6dGRUUXBPNWswOXI4dElMZVAwUVZLJiN4QTtla2ZUK0h1RGs0NlhqM0JvRVh0ZGZWdzlkL05mRnJZL2phMERjL21qckxXOXhhUjZSRGJhcUxWN3RDYndORWtBdEZ1dWZOb0J5bFVPJiN4QTtCNmZIalVmYnB2azQ2S05nOFZ4dXVYblhmOXYySU9hVmN0L2YreG51aVhFMXpvMWhjenR6bW10b3BKWG9CVm5RRmpRVUhVNWc1QUJJJiN4QTtnZDdlT1NNeUNYWXE3RlhZcTdGWFlxN0ZYWXE4L3dEeTduTjc1MTgvYWpzUWRRZ3NRUWEvN3d3bU1qN3ptdzFZNGNXT1A5RW41dUhwJiN4QTt6YzhoL3BWOGcxbzJwZmxyZXZlK25wQ1dkbDVmdTVidHIrNGpoamhTN2psOU41RkFkcEVrTHhpbk5GSnB0amtobWpYcXN6RlY1TTRtJiN4QTtCdmJhSisxTTN1Znl6dXJXK3UzRmpOYjZ4RExjYWk3SUdFMGVuQWVxMG9JcldEMUIxM0ZjcXJPQ0J2NmVYK2QrdG1mRDNPMi9QNGZxJiN4QTtTWFdOYS9LdzJNK21YZWp3VDZmb04zYTJmcHRieGlLSDY4VVBxeGQrQTlXcjBvU1FkanNUZmp4NTc0aExlUUo1OXpYS1dPcUkyaVFQJiN4QTtuL2FuVjNMNUR0UEwxcDVydGJDQzZzTkppTGFYSlp4eGd4cEkzQmhBR01hTFZqdlVqS0lqS1puR1NRWmM3L1MySGdBRWdPWEw5aWpvJiN4QTt2bkh5QWxwZCtaRlZOSmJVTG42dGZUVHFpeVNUMndwUjNoYVZHQ0IvdEJpQjQ1TEpwOHRpSDFVTnZpaU00VVpjcjVvV3h2Znk1c1BOJiN4QTtSTU9qUTJlc1RhbEpwY1Y3SGJ4MWFjVzhjN1B5WGRRNG5DMUFyWHJ0VTVLVWMwc2U4cmp3M1YrZGZvUkU0eExZYjNYMld4T3g4aWVUJiN4QTtiM1V0S3VOYjh5WHM0dnAvckZub3Q3TkE3eXlSeW1OUFdsaERjMUxEaXU0L2xCN1pseTFXU01TSXdHdzNJdHE4Q0pJNHBIM1BhczByJiN4QTttdXhWTC9NVTJtUStYOVRtMVdQMWRNanRKM3Y0Z0s4b0ZqWXlyUUVWcWxjc3hDUm1CSDZyRmU5aE1nUk44cWVkVzNsejhsNTQ1bi93JiN4QTs2a2ZvUUc1Y0VjdjNhdUk2Z3h5dXYyajBybXhPYlVqK0w4ZkpvR0hGL05DaGI2UitTTnc3UlIrWGEzUHdmVjdaWXBIa245UXVGOU1JJiN4QTs3RC9kVEg0aUtBVk8yRTVOVVA0dGtlRmgvbWo1S2N0aCtSVVhJdG9BOU5JM2RwUFNrQUR4UXZNOFJCY01zaXJFd0lJQXFLVndpZXFQJiN4QTs4WDQ1SU9QQ1A0UjhrV25sMzhreWJGWk5DaGlrMUF6aTNSdmlQK2pxR2NzWTVYVVZxQXUrNU5NaWN1cDM5WEw5S2ZCdy93QTBidDJ2JiN4QTtsejhrTHZTRzFhMjBXR1d6UzNndW1aVmtxRXVaWGhWU09mMjFraFpXSGJCTE5xaExoTXQ3SStXNnh4WVNMQUMyNDBEOGpyZldKOUltJiN4QTswV0ZMNjNBSmpLeVVhc2l4MFE4OXlDMWFlRlQyd2pMcWpFUzR0bDhMRGRjSVVEcGY1R0MwK3VmNGZyYUJBMGx5SUp6R2p0RDY2d3UvJiN4QTtMaUpHaklJSFRjVk5TTWx4NnE2NHQvZVBjanc4UDgwZkptM2tTRHlYQlpUcDVVdGt0clJ6SE5NSXd3RE5MRUdXdklrOGd1ekRzZHN3JiN4QTtkU2NoSThRMlcvRkdJSHBGQlBkVC93QjVrLzR6Mi84QXlmVEtZYy9nZnViU3JTMnR0TExETExFa2t0dXhlM2taUXpSc3lsQ3lFN3FTJiN4QTtqRmFqc1NNaUpFZkZCQVFkMTVjOHZYZDZiNjYwdTB1TDByd04xTEJFOHZHaFhqelpTMU9MRVVyazQ1cGdVQ2E5NkRDSk4xdXR1dkxQJiN4QTtsdTdUMDdyU3JPNFNxTndsdDRuRllsNFJtaktmc0w4SytBeGptbU9SUHpVd2llWVRDT09PS05Jb2tDUm9BcUlvQVZWQW9BQU9nR1FKJiN4QTt0a3V3SzdGWFlxN0ZYWXE3RlhZcTdGV0ZmbFgvQUlkL1IydC9vWDY1WDlNWFg2Uy9TSHBldDljb25xMDlMNGVIVGptYnJ1TzQ4VmZTJiN4QTtLcnVjWFNjRlM0YitvM2ZleEZ2OEJmcFh6SDljL1RQMS93Q3JqMS9YOUQxZVAxMkwwL1E0ZnZPZjFuaDZmci9SOE5jeS93Qjd3eHJoJiN4QTtxL1B1Ni9EdVI2T0kzZC9qOVBlb2EvOEE0Si9Ra2ZyL0FPSWZybkxXUDBsOVgrcS9YYWVsSCtrdnJkZjlINGNQVCt4dDBwa3NYaThXJiN4QTszQlhwcm5YOUd1dmUxNWVIaDM0cjM3cjg3Nko1Y2Y0Vi9UZHgvd0FkWGgra05EOWZoOVcrcmZYcTIzMVQ3WDcydnArbDZ2YmpYajhXJiN4QTtVRHhPSCtINlo5OTF2ZjZhYkpjTm5uemo4OXEvUmFObC93QUxmOHFxditIMTc5Qit0ZWVwdytyL0FGdm4ra1pQVTlQbCs1cDYxZUhMJiN4QTs5aWxkOGgrODhjY3VMYnZyNmZueVpEaDhNMWRiL2V3WFVmOEFsV24rRHg2MzZiK3AvWHIvQU90ZW4raitmMWo2dEg2M1AvajAvdStQJiN4QTtwK2w4WEt0TjY1blE4YnhOdUM2SDg3bGUzbjgzSGx3Y0IrcnJmTHUrWHk2L0ZtRnIvaHI2M0gramYwcitrZjA3KzY5SDZyejlmOUdSJiN4QTtlci9lL3V2cS93QlY0OCtYeDhxOGN3NWNkZXJocmc4LzV4KzIvZzNqaHZhNzR2MEQ3S2EwUC9EbjZZMGY5Qy9wbjEvcTZmV2ZSK3IrJiN4QTtuOVYrdXplbDlkcnZ4OWIxYWVsdnhyeTJ4eWNmRExpNGVmbnpvY3ZoWE5JcmlGWCtMNS9zZW1aclhKZGlxVithdjBiL0FJWDFqOUtjJiN4QTsvd0JHZlVybjY5Nlg5NTZIcE42dkQvSzRWcGx1RGk0NDhQMVdLOTdESlhDYjVVOCtIK0JlTnR6L0FFbjZkVytzK242UEQ2cjZzUDhBJiN4QTt2UjlXMjlIMXFVNGZIWGwyellmdmQvcC9idnl2clRWNmZOVkgvS3VlY1A2Syt1L1hxVy9vL283KysrczhwdlI1ZnNmV1BUOWV2UDhBJiN4QTszWHk1ZHNqKysvaXF0K2ZkdDluTDRyNkwyNS9qOXFJMDMvbFdQNkcxbjBLK3A5U20rdjhBcjhmMGg2WG9QOVk0ZXArODUvYjU5dWRjJiN4QTtqUHgrS045KzNkejJTT0NqN2tzZi9sVnUzMS82MTlkcEIranZVOUgxYS9XRFQ2cDlYL2Q4dlVwNm50U3UyVy92K2xWdmZ5NjM5akErJiN4QTtIZS9QOGNrMDAzL2xXMzZEMTM2bDYzMUw2allmcExoWGx4OUkvVnZUcHQ2MzgxUDIrdTljcW40M0ZHK2R5cjlQdy9Remp3VWE4a0FmJiN4QTsrVlplcy82USt2ZnBUNnhiZXQ5YnI5Wit0L1c1T0gyZmg1MTVjdUh3K245T1dmditsY05IbHlxdng4V0o0T3ZQOGZqM0tKLzVWbitqJiN4QTttcCtsUDBKNmEvV2FjdnFuMW42bVBTNS84dkgxZmhTbncxNDErTEQrK3Y4QWg0dnRxL3V0SG9yeS9aK3BuUGxUL0RINlI4d2ZvUGw2JiN4QTtuMTQvcEtsZlMrdGNCNm5wZHZ0VjUwL2I1WmhaK1BoanhkMjN1L0gyTjJQaHMxM3A3ZWVqNlMrdFhoNmtWS2Z6ZW92RC9ocVpSRytqJiN4QTtZclpGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcS93RC8yUT09PC94bXBHSW1nOmltYWdlPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L3htcDpUaHVtYm5haWxzPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIgogICAgICAgICAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIj4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo5MzlFNzQ3NzE5MzJFNjExQjE4Njg3NEZDMjk0NjRENjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo5MzlFNzQ3NzE5MzJFNjExQjE4Njg3NEZDMjk0NjRENjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD51dWlkOjVEMjA4OTI0OTNCRkRCMTE5MTRBODU5MEQzMTUwOEM4PC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpSZW5kaXRpb25DbGFzcz5wcm9vZjpwZGY8L3htcE1NOlJlbmRpdGlvbkNsYXNzPgogICAgICAgICA8eG1wTU06RGVyaXZlZEZyb20gcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8c3RSZWY6aW5zdGFuY2VJRD54bXAuaWlkOjkyOUU3NDc3MTkzMkU2MTFCMTg2ODc0RkMyOTQ2NEQ2PC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjkyOUU3NDc3MTkzMkU2MTFCMTg2ODc0RkMyOTQ2NEQ2PC9zdFJlZjpkb2N1bWVudElEPgogICAgICAgICAgICA8c3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPnV1aWQ6NUQyMDg5MjQ5M0JGREIxMTkxNEE4NTkwRDMxNTA4Qzg8L3N0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOnJlbmRpdGlvbkNsYXNzPnByb29mOnBkZjwvc3RSZWY6cmVuZGl0aW9uQ2xhc3M+CiAgICAgICAgIDwveG1wTU06RGVyaXZlZEZyb20+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+c2F2ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDoyN0JEQzYwNjRCQUNFNDExOTc4OUM0MEJFMThDOTBCQTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNS0wMi0wNFQwOTo1MTozNiswMTowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgSWxsdXN0cmF0b3IgQ1M2IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MzBBQjE0Q0REQjVERTUxMTlCQUZFRDZCQ0ExNzYwMjg8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTUtMDktMThUMTA6MDM6NTIrMDI6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIElsbHVzdHJhdG9yIENTNiAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5jb252ZXJ0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnBhcmFtZXRlcnM+ZnJvbSBhcHBsaWNhdGlvbi9wb3N0c2NyaXB0IHRvIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5pbGx1c3RyYXRvcjwvc3RFdnQ6cGFyYW1ldGVycz4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6OEU5RTc0NzcxOTMyRTYxMUIxODY4NzRGQzI5NDY0RDY8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTYtMDYtMTRUMTI6MTk6MjQrMDI6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIElsbHVzdHJhdG9yIENTNiAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjkzOUU3NDc3MTkzMkU2MTFCMTg2ODc0RkMyOTQ2NEQ2PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE2LTA2LTE0VDE5OjAzOjI4KzAyOjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBJbGx1c3RyYXRvciBDUzYgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczppbGx1c3RyYXRvcj0iaHR0cDovL25zLmFkb2JlLmNvbS9pbGx1c3RyYXRvci8xLjAvIj4KICAgICAgICAgPGlsbHVzdHJhdG9yOlN0YXJ0dXBQcm9maWxlPlByaW50PC9pbGx1c3RyYXRvcjpTdGFydHVwUHJvZmlsZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnBkZj0iaHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyI+CiAgICAgICAgIDxwZGY6UHJvZHVjZXI+QWRvYmUgUERGIGxpYnJhcnkgMTAuMDE8L3BkZjpQcm9kdWNlcj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Pv/uAA5BZG9iZQBkwAAAAAH/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAgICAgICAgICAgMDAwMDAwMDAwMBAQEBAQEBAgEBAgICAQICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA//AABEIATQF7gMBEQACEQEDEQH/xAEWAAEAAgIDAQEBAQAAAAAAAAAACQoHCAUGCwQDAgEBAQACAgMBAQEBAAAAAAAAAAAHCAUGAwQJAgEKCxAAAAYCAQIDAwUICwYNDA4LAQIDBAUGAAcIERITFAkhFQoxIha2F0GWN3e3OHgaMiPUtVZ2V9cYOXlRYTMkWBlCUnS0JZXVNtaHuNg6cYFDkzR1l2iYqOiZ8JFy0tM1hSYnp0iIyFmCY3OzhFWGR8coShEAAQMDAgIEBAoUCgYIBQIHAQACAxEEBRIGIQcxQRMIUWEiFHGBkTKTs1R0FTahsdFCUmJykrIjU3PD1DV1FjcYCcGCojM0hLRVdhfSQ9MkpDjwwmODo5TkleHEZWYKJUW1SPFG4uOF/9oADAMBAAIRAxEAPwC/xhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRfO5eNGSYKvHTdokY4JlUcrpIJmUEpjAQDqmIUTiUgj069egDn0xj5DSMFx8QqvwkDiTQL4Pf8ABf8A86iP9smf/wANnL5tc/c3/Wn5i/NbPCPVXKJqJqpkVSORVJUhVE1EzFOmomcoGIchyiJTkOUQEBAeghnCQWmh4EL66eI6F/efiJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRcZKTcNBopuJqXjIdusp4KS8o/ax6Kq3aY/hJqu1USHU7CCPaAiPQBH7mc0NvPcOLbdj3uArRoLjTw8AVxyTRQjVK5rWnwkD5a4P7QqD/DioffLC/u3Ox8GZL3PP7G75i4fPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e35qfaFQf4cVD75YX924+DMl7nn9jd8xPPrL7tF9e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E4tj7XacEmprHH7ZO8cBJNQloDQTojBIaSXOc52nRbzlnyvttkRHIX7mz7hlZpc4esiaeJZHUAknhqeQCaAANFdU2OQIpbTCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiiB9ZP8E/Dv8AtH+In1jsGTNyU/K+a/wzkPsGLUt4f0S0/OMHyypfshlbamETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMIqCnxGuxi3T1F3dVTXA5NRaV1lRVkCLgoVF7MhO7QUOqgXoDd0sy2G37uvU50ipiI9vaAekvdaxZsOVzbwjjfX88wNOkN0W/T1gGB3irXrqvPfvK5Lz7mSbQHhZ2MERFegu1z9HUSJh6VPEs2/DEVAsjy+3rd1USKkqvHZ3AImUIkfyz24bGozpNwj3pmVSciyqbhIDkMX9qVUKPUD+zX+9xfGLZGOx4NDNlA89PERQTCh8VZGmh6wD1LO91mzEm8r+/IqIsaWDxGSaI19GkZFR1EjrV37PPpXrTCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiwrZeNnHS5vPeNw0FpW1yHeqp56y6so0688RYqJVj+ZlIJ0t3qlbpgYe7qYCF6/IHTPWm6tz2DOysclfwx+CO4lYOFacGvA4VPqlYm4wGCu39pdWVpK/wvhjcfVLT4AvwgeMXGuqvAkavx60dW5AopmK+gdTUKHeFMifxEjA6j4BuuApKfOKPd80faHtz6ud27qvGdld5PISxeB9xM4cfE55C+YdvYC2f2lvY2cb/AAthjafVDQs3JppopkSSIRJJIhU000ylImmmQoFIQhCgBSEIUAAAAOgBmAJLjU8SVlwABQdC/vPxfqYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImETCJhEwiYRMImE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\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 266,\n height: 54,\n fill: \"url(#b)\"\n});\n\nvar SvgInterreg = function SvgInterreg(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 266,\n height: 54,\n viewBox: \"0 0 266 54\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgInterreg, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/interreg.ad2b527e.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport { Link as MuiLink, Typography, useMediaQuery } from '@material-ui/core';\nimport i18next from 'i18next';\nimport classNames from 'classnames';\nimport { Link } from 'react-router-dom';\nimport { useGetLink } from '../utils';\nimport { ReactComponent as Eusbsr } from '../assets/eusbsr.svg';\nimport { ReactComponent as Interconnect } from '../assets/interconnect-logo.svg';\nimport { ReactComponent as Interreg } from '../assets/interreg.svg';\n\ninterface Props {\n darkBg?: boolean;\n narrow?: boolean;\n}\n\nconst useStyles = makeStyles({\n footer: {\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n padding: '24px 16px',\n marginTop: 'auto',\n width: '100%',\n },\n switch: {\n width: 250,\n textAlign: 'left',\n },\n switchText: {\n fontSize: 14,\n color: '#37001F',\n },\n copyright: {\n whiteSpace: 'nowrap',\n fontSize: 14,\n color: '#37001F',\n width: 250,\n '@media (max-width: 800px)': {\n width: 'auto',\n margin: '0 auto',\n },\n },\n darkBg: {\n '& $switchText, & $copyright, & $link': {\n color: 'rgba(255, 255, 255, 0.7)',\n },\n },\n links: {\n display: 'flex',\n justifyContent: 'space-between',\n margin: '0 -4px',\n },\n link: {\n margin: '0 8px',\n fontSize: 14,\n color: '#37001F',\n textAlign: 'center',\n cursor: 'pointer',\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline',\n },\n },\n aboutLink: {\n '&:hover + $about, &:focus + $about': {\n display: 'flex',\n },\n },\n about: {\n display: 'none',\n position: 'fixed',\n bottom: 0,\n left: 0,\n width: '100%',\n padding: '16px 32px',\n backgroundColor: 'white',\n zIndex: 1100,\n alignItems: 'center',\n justifyContent: 'center',\n '&:hover': {\n display: 'flex',\n },\n },\n logo: {\n height: 54,\n margin: '0 16px',\n flexShrink: 0,\n },\n disclaimer: {\n fontSize: 14,\n color: '#37001F',\n },\n narrow: {\n '& $switch': {\n width: 'auto',\n },\n '& $copyright': {\n width: 'auto',\n margin: '0 auto',\n },\n '& $links': {\n width: '100%',\n margin: '16px -4px',\n },\n '& $link': {\n margin: '0 4px',\n },\n },\n});\n\nexport default function Footer({ darkBg, narrow }: Props) {\n const classes = useStyles();\n const { t, i18n } = useTranslation();\n const getLink = useGetLink();\n const isMobile = useMediaQuery('(max-width: 800px)');\n return (\n \n {\n i18next.changeLanguage(i18n.language === 'pl' ? 'en' : 'pl');\n }}\n >\n \n {t('footer.switchLanguage')}\n \n \n
\n \n {t('passenger.termsAndConditions')}\n \n \n {t('passenger.privacyPolicy')}\n \n {isMobile ? (\n \n {t('passenger.aboutProject')}\n \n ) : (\n \n {t('passenger.aboutProject')}\n \n )}\n
\n \n \n \n \n {t('passenger.disclaimer')}\n \n
\n
\n \n Copyright © 2020 Innobaltica Sp. z o.o.\n \n \n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { Route } from 'react-router-dom';\nimport background from '../assets/background.jpg';\nimport { ReactComponent as Logo } from '../assets/interconnect-logo.svg';\nimport Register from './Register';\nimport EmailVerified from './EmailVerified';\nimport Login from './Login';\nimport RecoverPassword from './RecoverPassword';\nimport Footer from '../passenger/Footer';\n\nconst useStyles = makeStyles({\n root: {\n minHeight: '100vh',\n backgroundImage: `url(${background})`,\n backgroundSize: 'cover',\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'center',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n },\n content: {\n width: 400,\n height: 800,\n backgroundColor: 'white',\n margin: 'auto 0 43px',\n borderRadius: 3,\n padding: '0 52px',\n maxWidth: '100%',\n '@media (max-width: 800px)': {\n padding: '0 24px',\n },\n '@media (max-height: 950px)': {\n marginTop: 43,\n },\n },\n logo: {\n margin: '76px auto 52px',\n display: 'block',\n },\n switch: {\n position: 'absolute',\n left: 0,\n bottom: 0,\n margin: '21px 33px',\n '@media (max-width: 800px)': {\n position: 'static',\n alignSelf: 'flex-start',\n },\n },\n switchText: {\n fontSize: 12,\n },\n copyright: {\n position: 'absolute',\n right: 0,\n bottom: 0,\n margin: '21px 33px',\n color: '#37001F',\n fontSize: 12,\n '@media (max-width: 800px)': {\n position: 'static',\n alignSelf: 'flex-start',\n },\n },\n});\n\nexport default function Auth() {\n const classes = useStyles();\n return (\n
\n
\n \n \n \n \n \n
\n
\n
\n );\n}\n","import { useContext, useEffect } from 'react';\nimport { RouteComponentProps } from 'react-router-dom';\nimport * as R from 'ramda';\nimport { auth0, axios, useGetLink } from '../utils';\nimport AppContext from '../context';\n\ninterface Props extends RouteComponentProps {}\n\nexport default function Callback({ history }: Props) {\n const getLink = useGetLink();\n const { updateContext } = useContext(AppContext);\n useEffect(() => {\n auth0.parseHash((err, authResult) => {\n if (authResult && authResult.accessToken) {\n const { accessToken } = authResult;\n auth0.client.userInfo(accessToken, (err2, user) => {\n if (user.email_verified) {\n (async () => {\n localStorage.setItem('accessToken', accessToken);\n const [\n { data },\n { data: { interconnectNumber } },\n ] = await Promise.all([\n axios.get('/users/me'),\n axios.get('/user/account'),\n ]);\n const agency = localStorage.getItem('agency');\n updateContext(R.mergeLeft({\n user: {\n ...data,\n agency: data.agency || agency,\n },\n name: user.name,\n interconnectNumber,\n }));\n if (['ADMIN', 'AGENCY_ADMIN', 'AGENCY_EMPL'].includes(data.role)) {\n history.push(getLink('/provider'));\n } else if (['CARD_OFFERS_MANAGER', 'SITE_MANAGER', 'CARD_SELLER'].includes(data.cardRole)) {\n history.push(getLink('/card'));\n } else {\n history.push(getLink('/'));\n }\n })();\n } else {\n history.push(getLink('/auth/login'), {\n notVerified: true,\n accessToken,\n });\n }\n });\n } else {\n // Handle failure\n }\n });\n }, [getLink, history, updateContext]);\n return null;\n}\n","import {\n Redirect, Route, RouteComponentProps, RouteProps,\n} from 'react-router-dom';\nimport React, { useContext } from 'react';\nimport AppContext from '../context';\nimport { useGetLink } from '../utils';\n\ninterface Props extends RouteProps {\n component: React.ComponentType> | React.ComponentType\n}\n\nexport default function LoggedInRoute({ component: Component, ...props }: Props) {\n const { user } = useContext(AppContext);\n const getLink = useGetLink();\n const isLoggedIn = user && (['ADMIN', 'AGENCY_ADMIN', 'AGENCY_EMPL'].includes(user.role || '')\n || ['CARD_OFFERS_MANAGER', 'SITE_MANAGER', 'CARD_SELLER'].includes(user.cardRole || ''));\n return (\n (\n isLoggedIn ? (\n \n ) : (\n \n )\n )}\n />\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(2 2)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n y1: 7.407,\n x2: 4.444,\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 4.444,\n y1: 7.407,\n transform: \"translate(4.444)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y1: 20,\n transform: \"translate(4.444)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(11.11)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x2: 4.444,\n y2: 7.407,\n transform: \"translate(0 12.593)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 4.444,\n y2: 7.407,\n transform: \"translate(4.444 12.593)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 20,\n transform: \"translate(4.444)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgSwap = function SvgSwap(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgSwap, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/swap.9e58d3d9.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57,880v2H44.8l5.6,5.6L49,889l-8-8,8-8,1.4,1.4L44.8,880Z\",\n transform: \"translate(-41 -873)\",\n fill: \"#a1145c\"\n});\n\nvar SvgBackArrow = function SvgBackArrow(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgBackArrow, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/back-arrow.d420d1b8.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0.34 0.5)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0.16)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0)\"\n}, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 3.108,\n cy: 2.999,\n rx: 3.108,\n ry: 2.999,\n transform: \"translate(4.803 4.586)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.128,55.258a7.371,7.371,0,0,0,1.674-4.673,7.907,7.907,0,0,0-15.8,0,7.368,7.368,0,0,0,1.739,4.738\",\n transform: \"translate(-87 -43)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M176.454,607l-6.216,7.651L164,607\",\n transform: \"translate(-162.326 -594.742)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}))), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.9,0a8.144,8.144,0,0,1,7.927,8.345c0,1.4-7.23,12.072-8.127,11.439-.018,0-2.523-9.669-3.03-10.472.071-.091,1.972,1.286,4.157.949,1.6-.689,2.038-1.561,1.983-3.669a4.724,4.724,0,0,0-2.91-1.8A3.481,3.481,0,0,0,4.861,6.877C4.848,8.913,7.9,20,7.9,20S-.191,10.308-.191,8.7C-.191,4.093,3.517,0,7.9,0Z\",\n transform: \"translate(0.191 0)\",\n fill: \"#a1145c\"\n}));\n\nvar SvgMarkerPrimary = function SvgMarkerPrimary(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16.801,\n height: 21.201,\n viewBox: \"0 0 16.801 21.201\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMarkerPrimary, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/marker-primary.b4e856b8.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(28 -2060.5)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90,83.1V63h13.714V83.1l-6.857-5.084Z\",\n transform: \"translate(-112.916 1999.5)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\",\n opacity: 0.999\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,0H14V19.748L7.079,15,0,19.748V0Z\",\n transform: \"translate(-23 2062.608)\",\n fill: \"#fff\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"rgba(0,0,0,0)\"\n});\n\nvar SvgBookmarkFilled = function SvgBookmarkFilled(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgBookmarkFilled, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/bookmark-filled.06f5028f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(3 3)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x2: 14,\n y2: 14,\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 14,\n y2: 14,\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 20,\n height: 20,\n fill: \"none\"\n});\n\nvar SvgDelete = function SvgDelete(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDelete, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/delete.aa9e11fc.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-1067.5 251.5)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1072.291 -247.174)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 7.442,\n cy: 7.442,\n r: 7.442,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 7.442,\n cy: 7.442,\n r: 6.942,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 3.721,\n cy: 3.721,\n r: 3.721,\n transform: \"translate(1076.012 -243.453)\",\n fill: \"#a1145c\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n y1: 3.256,\n transform: \"translate(1079.733 -249.5)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y1: 3.256,\n transform: \"translate(1079.733 -233.221)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 3.256,\n transform: \"translate(1072.756 -239.733) rotate(90)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y1: 3.256,\n transform: \"translate(1089.5 -239.965) rotate(90)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgYourLocation = function SvgYourLocation(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgYourLocation, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/your-location.404161d1.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(4 2)\"\n}, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 3.122,\n cy: 3.013,\n rx: 3.122,\n ry: 3.013,\n transform: \"translate(4.825 4.607)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.192,55.314a7.4,7.4,0,0,0,1.681-4.694A7.943,7.943,0,0,0,87,50.62a7.4,7.4,0,0,0,1.747,4.76\",\n transform: \"translate(-87 -43)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M176.511,607l-6.245,7.686L164,607\",\n transform: \"translate(-162.319 -594.686)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgMarkerOutlined = function SvgMarkerOutlined(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMarkerOutlined, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/marker-outlined.450a6d10.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-19.64 -17.279)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(20 18)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20,28.391,30,18,40,28.391\",\n transform: \"translate(-20 -18)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46,122v11.719H61.938V122.234\",\n transform: \"translate(-43.969 -113.875)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117,161.375V152h4.844v9.375\",\n transform: \"translate(-109.422 -141.531)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n})));\n\nvar SvgHome = function SvgHome(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20.721,\n height: 21.065,\n viewBox: \"0 0 20.721 21.065\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgHome, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/home.58dd0580.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0.135)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.833,93.279c.276-.138.276-.138.69.138.506.386,1.317.858,1.931,1.241.414.276.414.276.966,0,.69-.276,1.931-.828,2.621-1.1.552-.276.552-.276.138-.966-.414-.552-1.1-1.793-1.517-2.345-.414-.69-.414-.69-.138-.828a15.373,15.373,0,0,1,1.517-.828c.276-.138.276-.138,1.1.414,1.439.885,1.739,1.094,3.034,1.793.979.513.828.552,1.793.138.828-.414,2.525-1.209,3.724-1.793a17.751,17.751,0,0,1,1.834-.69,4.082,4.082,0,0,1,1.3-.248,9.355,9.355,0,0,1,1.2,0l.556.138.359.109a3.236,3.236,0,0,1,.372.189,1.64,1.64,0,0,1,.388.5l.081.234c.01.166-.347.48-.969.811l-.372.206-.679.316-1.583.684s-4.426,2.025-6.633,2.991-3.862,1.793-4.69,2.069c-.895.314-.907.292-1.608.52a31.481,31.481,0,0,1-3.219.721c-.69.138-.714.226-1.206-.435-.617-.835-1.277-1.91-1.691-2.462-.552-.69-.563-.651-.276-.828S64.3,93.644,64.833,93.279Z\",\n transform: \"translate(-63.316 -84.727)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,0H21.682V1.469H0Z\",\n transform: \"translate(1.241 18.501)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 23.31,\n fill: \"none\"\n}));\n\nvar SvgFlight = function SvgFlight(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24.135,\n height: 23.31,\n viewBox: \"0 0 24.135 23.31\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFlight, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/flight.d56c365d.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0.135)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.833,93.279c.276-.138.276-.138.69.138.506.386,1.317.858,1.931,1.241.414.276.414.276.966,0,.69-.276,1.931-.828,2.621-1.1.552-.276.552-.276.138-.966-.414-.552-1.1-1.793-1.517-2.345-.414-.69-.414-.69-.138-.828a15.373,15.373,0,0,1,1.517-.828c.276-.138.276-.138,1.1.414,1.439.885,1.739,1.094,3.034,1.793.979.513.828.552,1.793.138.828-.414,2.525-1.209,3.724-1.793a17.751,17.751,0,0,1,1.834-.69,4.082,4.082,0,0,1,1.3-.248,9.355,9.355,0,0,1,1.2,0l.556.138.359.109a3.236,3.236,0,0,1,.372.189,1.64,1.64,0,0,1,.388.5l.081.234c.01.166-.347.48-.969.811l-.372.206-.679.316-1.583.684s-4.426,2.025-6.633,2.991-3.862,1.793-4.69,2.069c-.895.314-.907.292-1.608.52a31.481,31.481,0,0,1-3.219.721c-.69.138-.714.226-1.206-.435-.617-.835-1.277-1.91-1.691-2.462-.552-.69-.563-.651-.276-.828S64.3,93.644,64.833,93.279Z\",\n transform: \"translate(-63.316 -84.727)\",\n fill: \"#37011f\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 21.682,\n height: 0.936,\n transform: \"translate(1.241 19.034)\",\n fill: \"#37011f\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 23.31,\n transform: \"translate(0)\",\n fill: \"none\"\n}));\n\nvar SvgFlightBlack = function SvgFlightBlack(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24.135,\n height: 23.31,\n viewBox: \"0 0 24.135 23.31\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFlightBlack, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/flight-black.f83ea154.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useCallback, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { IconButton, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport debounce from 'debounce-promise';\nimport * as R from 'ramda';\nimport moment, { Moment } from 'moment';\nimport { IFlight, IPlace } from '../../interfaces';\nimport CustomAutocomplete from '../../common/CustomAutocomplete';\nimport { ReactComponent as YourLocation } from '../../assets/your-location.svg';\nimport { ReactComponent as MarkerOutlined } from '../../assets/marker-outlined.svg';\nimport { ReactComponent as Home } from '../../assets/home.svg';\nimport { ReactComponent as Flight } from '../../assets/flight.svg';\nimport { ReactComponent as FlightBlack } from '../../assets/flight-black.svg';\nimport { ReactComponent as Delete } from '../../assets/delete.svg';\nimport { axios } from '../../utils';\nimport CustomDatePicker from '../../common/CustomDatePicker';\n\ninterface Props {\n value: string | IPlace | null;\n onChange: (event: any, value: string | IPlace | null) => void;\n className?: string;\n label?: string;\n myLocation: { lat: number; lon: number; } | null;\n error?: boolean;\n setArrival: (date: Moment) => void;\n isDestination?: boolean;\n}\n\nconst useStyles = makeStyles({\n option: {\n display: 'flex',\n fontSize: 16,\n color: '#37001F',\n fontWeight: 300,\n },\n optionIcon: {\n width: 24,\n marginRight: 12,\n },\n locationOption: {\n paddingLeft: 36,\n color: '#37001F',\n fontWeight: 300,\n },\n placeLocation: {\n fontSize: 12,\n },\n overlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n zIndex: 100,\n backgroundColor: '#A3A2A2AC',\n display: 'flex',\n },\n selectFlight: {\n margin: '16px 32px',\n flexGrow: 1,\n alignSelf: 'flex-start',\n backgroundColor: '#A1145C',\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.29)',\n '@media (max-width: 800px)': {\n margin: '16px 8px',\n },\n },\n flightHeader: {\n width: '100%',\n backgroundColor: 'white',\n position: 'relative',\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.29)',\n },\n closeButton: {\n position: 'absolute',\n top: 0,\n right: 0,\n margin: 4,\n },\n headerText: {\n fontSize: 26,\n fontWeight: 400,\n color: '#37001F',\n padding: '32px 20px 8px',\n display: 'flex',\n alignItems: 'center',\n },\n flightBlack: {\n marginRight: 4,\n },\n datePicker: {\n marginLeft: 48,\n marginBottom: 16,\n },\n flights: {\n marginBottom: 20,\n },\n flight: {\n padding: 8,\n marginTop: 8,\n backgroundColor: 'white',\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.29)',\n width: '100%',\n display: 'flex',\n cursor: 'pointer',\n transition: '300ms',\n '&:hover': {\n backgroundColor: '#F5F5F5',\n },\n },\n flightTime: {\n width: 40,\n fontSize: 14,\n flexShrink: 0,\n },\n destinationContainer: {\n flexGrow: 1,\n marginRight: 4,\n },\n flightDestination: {\n fontWeight: 400,\n fontSize: 14,\n },\n isOnTime: {\n fontWeight: 400,\n fontSize: 14,\n },\n flightNumber: {\n width: 60,\n fontSize: 14,\n marginRight: 4,\n flexShrink: 0,\n },\n airline: {\n width: 90,\n fontSize: 14,\n flexShrink: 0,\n },\n});\n\nconst airportCoords = {\n lat: 54.382428,\n lon: 18.466252,\n};\n\nexport default function LocationSearch(props: Props) {\n const {\n value, onChange, label, className, myLocation, error, setArrival, isDestination,\n } = props;\n const classes = useStyles();\n const { t, i18n } = useTranslation();\n const [results, setResults] = useState([]);\n const [inputValue, setInputValue] = useState('');\n const onInputChange = useCallback(debounce(async (query: string) => {\n if (query.length >= 3) {\n const { data } = await axios.get('/public/find-places', {\n params: {\n query,\n lang: i18n.language,\n ...(myLocation || {}),\n },\n });\n setResults(data);\n } else {\n setResults([]);\n }\n }, 200), [myLocation, i18n.language]);\n const [date, setDate] = useState(moment());\n const [flights, setFlights] = useState([]);\n const [selectedFlight, setSelectedFlight] = useState(null);\n useEffect(() => {\n (async () => {\n if (value === 'flight') {\n const { data } = await axios.get('/public/find-flights', {\n params: {\n date: date.format('YYYY-MM-DD'),\n lang: i18n.language,\n },\n });\n setFlights(data);\n }\n })();\n }, [date, value, i18n.language]);\n useEffect(() => {\n setSelectedFlight(null);\n }, [value]);\n const [focused, setFocused] = useState(false);\n const getFlightName = useCallback((flight: IFlight | null) => {\n if (!flight) return t('planning.flightFromGdansk');\n const { scheduled, estimated } = flight.dateTime;\n const time = moment(estimated || scheduled);\n return t('planning.flightTo', {\n time: time.format('HH:mm'),\n destination: flight.destination,\n });\n }, [t]);\n const getOptionLabel = useCallback((option: string | IPlace) => {\n if (typeof option === 'string') {\n if (option === 'your-location') return t('planning.yourLocation');\n if (option === 'select-on-map') return t('planning.selectOnMap');\n if (option === 'pin-location') return t('planning.pinLocation');\n if (option === 'home') return t('planning.home');\n if (option === 'flight') return getFlightName(selectedFlight);\n return '';\n }\n return option.name;\n }, [t, getFlightName, selectedFlight]);\n useEffect(() => {\n setInputValue((value && (typeof value !== 'string' || !focused)) ? getOptionLabel(value) : '');\n }, [value, focused, getOptionLabel]);\n const options: (string | IPlace)[] = results.length > 0 ? results : [\n 'your-location',\n 'select-on-map',\n // 'home',\n ...(isDestination ? ['flight'] : []),\n ];\n return (\n <>\n {\n setInputValue(query);\n await onInputChange(query);\n }}\n TextFieldProps={{\n error,\n InputProps: {\n onFocus: () => setFocused(true),\n onBlur: () => setFocused(false),\n },\n inputProps: { value: inputValue },\n }}\n blurOnSelect\n filterOptions={R.filter((option) => options.includes(option))}\n options={R.uniq([\n ...options,\n ...(value ? [value] : []),\n ])}\n getOptionSelected={R.equals}\n getOptionLabel={(option) => (typeof option === 'string' ? '' : option.name)}\n renderOption={(option) => {\n if (typeof option === 'string') {\n return (\n
\n {option === 'your-location' && (\n <>\n
\n \n
\n {t('planning.yourLocation')}\n \n )}\n {option === 'select-on-map' && (\n <>\n
\n \n
\n {t('planning.selectOnMap')}\n \n )}\n {option === 'pin-location' && (\n <>\n
\n \n
\n {t('planning.pinLocation')}\n \n )}\n {option === 'home' && (\n <>\n
\n \n
\n {t('planning.home')}\n \n )}\n {option === 'flight' && (\n <>\n
\n \n
\n {getFlightName(selectedFlight)}\n \n )}\n
\n );\n }\n return (\n
\n {option.name}\n
\n {option.location}\n
\n
\n );\n }}\n />\n {value === 'flight' && !selectedFlight && (\n
\n
\n
\n onChange({}, null)}\n >\n \n \n \n \n {t('planning.selectFlight')}\n \n newDate && setDate(newDate)}\n className={classes.datePicker}\n label={t('planning.date')}\n />\n
\n
\n {flights.map((flight) => (\n {\n setSelectedFlight(flight);\n const { scheduled, estimated } = flight.dateTime;\n setArrival(moment(estimated || scheduled).subtract(90, 'minutes'));\n onChange({}, {\n ...airportCoords,\n name: getFlightName(flight),\n type: 'place',\n });\n }}\n >\n \n {moment(flight.dateTime.scheduled).format('HH:mm')}\n \n
\n \n {flight.destination}\n \n \n {(!flight.dateTime.estimated\n || flight.dateTime.estimated === flight.dateTime.scheduled)\n ? t('planning.onTime')\n : `${t('planning.delayed')} ${moment(flight.dateTime.estimated).format('HH:mm')}`}\n \n
\n \n {flight.flightNumber}\n \n \n {flight.airline}\n \n
\n ))}\n
\n
\n \n )}\n \n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(7 3)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M201.72,198.836h.064l.128-.044s-.192.173-.128.237v.129s-.064.257-.193.964c-.129.643-.386,1.736-.514,2.443-.129.771-.193,1.093-.257,1.35a.864.864,0,0,0,.129.514c.129.193.321.579.9,1.479.579.964,1.543,2.443,2.057,3.343a5.037,5.037,0,0,1,.643,1.286.892.892,0,0,1,0,.579,1.2,1.2,0,0,1-.386.45.86.86,0,0,1-.579.064c-.193,0-.321-.129-.514-.386a8.133,8.133,0,0,1-1.093-1.35c-.514-.836-1.35-2.186-1.993-3.279a22.876,22.876,0,0,1-1.479-2.379,2.191,2.191,0,0,1-.193-1.414c.129-.579.321-1.543.386-2.057.129-.45.064-.45-.064-.386a5.56,5.56,0,0,1-.643.45,2.849,2.849,0,0,1-.579.45,1.409,1.409,0,0,0-.193.514,6.947,6.947,0,0,0-.321,1.35,2.9,2.9,0,0,0-.193.836,2.14,2.14,0,0,1-.193.386c-.129.064-.193.064-.257.129H196a1.4,1.4,0,0,1-.321-.193,1.506,1.506,0,0,1-.064-.9c.064-.579.257-1.543.321-2.121a1.61,1.61,0,0,1,.514-1.157c.45-.386,1.286-1.093,1.8-1.479a2.432,2.432,0,0,1,1.029-.579c.257,0,.579-.064.9-.064a4,4,0,0,1,1.029.257c.257.129.289.225.579.771a14.711,14.711,0,0,1,.579,1.414,7.235,7.235,0,0,0,.45.964c.064.257.129.321.45.45.321.193.964.386,1.35.579a3.4,3.4,0,0,1,.964.45.73.73,0,0,1,.193.514.557.557,0,0,1-.257.45c-.129.129-.321.193-.9,0a15.481,15.481,0,0,1-2.121-.964,2.5,2.5,0,0,1-.836-.707,3.589,3.589,0,0,0-.321-.514\",\n transform: \"translate(-195.098 -193.693)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M191.15,289c-.193.643-.321,1.221-.514,1.864s-.386,1.221-.45,1.607a2.668,2.668,0,0,1-.45.836c-.321.386-.771,1.093-1.093,1.543a5.746,5.746,0,0,0-.514.836.693.693,0,0,0-.129.45.482.482,0,0,0,.064.321.5.5,0,0,0,.257.257.643.643,0,0,0,.771,0,4.706,4.706,0,0,0,.579-.579,11.245,11.245,0,0,0,1.029-1.286c.321-.45.579-.771.707-.964a1.726,1.726,0,0,0,.386-.771c.193-.45.45-1.157.707-1.864\",\n transform: \"translate(-188 -278.843)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinecap: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1.736,\n cy: 1.736,\n r: 1.736,\n transform: \"translate(4.307)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgWalk = function SvgWalk(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgWalk, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/walk.904f06fa.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.741,3.49,3.926,0,0,3.49\",\n transform: \"translate(3.863 0.332) rotate(90)\",\n fill: \"none\",\n stroke: \"#9e9e9e\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n});\n\nvar SvgChevronSmall = function SvgChevronSmall(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 4.537,\n height: 8.41,\n viewBox: \"0 0 4.537 8.41\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgChevronSmall, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/chevron-small.9f1f356f.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(4 2)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"ellipse\", {\n cx: 3.122,\n cy: 3.013,\n rx: 3.122,\n ry: 3.013,\n transform: \"translate(4.825 4.607)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M101.192,55.314a7.4,7.4,0,0,0,1.681-4.694A7.943,7.943,0,0,0,87,50.62a7.4,7.4,0,0,0,1.747,4.76\",\n transform: \"translate(-87 -43)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M176.511,607l-6.245,7.686L164,607\",\n transform: \"translate(-162.319 -594.686)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgMarkerOutlinedDark = function SvgMarkerOutlinedDark(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMarkerOutlinedDark, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/marker-outlined-dark.f4a8ba52.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M90,83.1V63h13.714V83.1l-6.857-5.084Z\",\n transform: \"translate(-84.916 -61.108)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\",\n opacity: 0.999\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgBookmark = function SvgBookmark(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgBookmark, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/bookmark.32ca5ff5.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(3 2)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2.5,\n cy: 2.5,\n r: 2.5,\n transform: \"translate(0 7.381)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2.5,\n cy: 2.5,\n r: 2.5,\n transform: \"translate(13.095)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 2.5,\n cy: 2.5,\n r: 2.5,\n transform: \"translate(13.095 15)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M119.81,108,111,113m0,2.381,8.929,5\",\n transform: \"translate(-106.357 -104.31)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgShare = function SvgShare(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgShare, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/share.d5f5dafc.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport { Button, Typography } from '@material-ui/core';\nimport falaLogo from '../../assets/fala.svg';\n\ninterface Props {\n agency: string;\n}\n\nconst useStyles = makeStyles({\n container: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n falaButton: {\n width: 98,\n justifyContent: 'space-between',\n padding: '3px 15px',\n color: '#3571B7',\n borderColor: '#3571B7',\n },\n falaLogo: {\n width: 24,\n height: 26,\n },\n comingUp: {\n marginTop: 4,\n fontSize: 12,\n },\n});\n\nexport default function BuyTicketButton({ agency }: Props) {\n const classes = useStyles();\n const { t } = useTranslation();\n if (agency === 'Stena Line' || agency === 'Blekinge trafiken') {\n return (\n \n {t('planning.buyTicket')}\n \n );\n }\n return (\n
\n \n {t('planning.buy')}\n \n \n \n {t('planning.comingUp')}\n \n
\n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { IconButton, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport { IItinerary } from '../../interfaces';\nimport { ReactComponent as ChevronBig } from '../../assets/chevron-big.svg';\nimport { ReactComponent as Tram } from '../../assets/tram.svg';\nimport { ReactComponent as Bus } from '../../assets/bus.svg';\nimport BuyTicketButton from './BuyTicketButton';\nimport { ReactComponent as Walk } from '../../assets/walk.svg';\nimport { ReactComponent as Train } from '../../assets/train.svg';\n\ninterface Props {\n itinerary: IItinerary;\n goBack: () => void;\n}\n\nconst useStyles = makeStyles({\n root: {\n margin: 16,\n backgroundColor: 'white',\n },\n headerContainer: {\n padding: 16,\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.29)',\n },\n backButton: {\n width: 43,\n marginLeft: -12,\n },\n chevronBack: {\n transform: 'rotate(180deg)',\n },\n header: {\n fontSize: 20,\n fontWeight: 400,\n },\n leg: {\n padding: 16,\n display: 'flex',\n justifyContent: 'space-between',\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.29)',\n },\n top: {\n display: 'flex',\n alignItems: 'center',\n },\n route: {\n fontSize: 14,\n fontWeight: 400,\n borderRadius: 7,\n backgroundColor: '#F5F5F5',\n padding: '1px 6px',\n marginLeft: 4,\n marginRight: 8,\n },\n headsign: {\n fontSize: 12,\n },\n agency: {\n marginLeft: 24,\n },\n});\n\nexport default function BuyTickets({ itinerary, goBack }: Props) {\n const classes = useStyles();\n const { t } = useTranslation();\n return (\n
\n
\n \n \n \n \n {t('planning.buyTicketsHeader')}\n \n
\n {itinerary.legs.filter((x) => x.mode !== 'WALK').map((leg) => (\n
\n
\n
\n {leg.mode === 'WALK' && }\n {leg.mode === 'RAIL' && }\n {leg.mode === 'TRAM' && }\n {leg.mode === 'BUS' && }\n \n {leg.route}\n \n \n {leg.headsign}\n \n
\n \n {leg.agencyName}\n \n
\n \n
\n ))}\n
\n );\n}\n","import React, { Fragment, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Typography, IconButton, Button, useMediaQuery,\n} from '@material-ui/core';\nimport moment, { Moment } from 'moment';\nimport classNames from 'classnames';\nimport * as R from 'ramda';\nimport { IItinerary } from '../../interfaces';\nimport { ReactComponent as Walk } from '../../assets/walk.svg';\nimport { ReactComponent as Train } from '../../assets/train.svg';\nimport { ReactComponent as Tram } from '../../assets/tram.svg';\nimport { ReactComponent as Bus } from '../../assets/bus.svg';\nimport { ReactComponent as Chevron } from '../../assets/chevron-small.svg';\nimport { ReactComponent as Marker } from '../../assets/marker-outlined-dark.svg';\nimport { ReactComponent as ChevronBig } from '../../assets/chevron-big.svg';\nimport { ReactComponent as Bookmark } from '../../assets/bookmark.svg';\nimport { ReactComponent as Share } from '../../assets/share.svg';\nimport { ReactComponent as ChevronPrimary } from '../../assets/chevron-primary.svg';\nimport BuyTicketButton from './BuyTicketButton';\nimport BuyTickets from './BuyTickets';\n\ninterface Props {\n itineraries: IItinerary[];\n openItinerary: number | null;\n setOpenItinerary: (value: number | null) => void;\n from: string;\n to: string;\n date: Moment;\n onBookmark: () => void;\n onShare: () => void;\n onHover: (i: number) => void;\n hoveredItinerary: number;\n}\n\nconst useStyles = makeStyles({\n root: {\n margin: 16,\n },\n itinerary: {\n padding: '4px 12px',\n backgroundColor: 'white',\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.29)',\n marginBottom: 8,\n color: '#37001F',\n cursor: 'pointer',\n border: '4px solid white',\n transition: 'border-color 200ms, transform 200ms',\n },\n hovered: {\n borderColor: '#3571B7',\n transform: 'translateX(8px)',\n },\n top: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n from: {\n fontWeight: 400,\n },\n duration: {\n fontWeight: 400,\n whiteSpace: 'nowrap',\n marginLeft: 8,\n },\n legs: {\n display: 'flex',\n alignItems: 'flex-start',\n marginTop: 8,\n },\n leg: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n time: {\n marginTop: 8,\n fontSize: 14,\n },\n destinationTime: {\n fontWeight: 400,\n },\n chevron: {\n margin: '8px 6px',\n flexShrink: 0,\n },\n destination: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n margin: '0 8px 0 auto',\n },\n route: {\n padding: '1px 6px',\n borderRadius: 7,\n backgroundColor: '#F5F5F5',\n margin: '1px 6px 0 0',\n fontSize: 14,\n fontWeight: 400,\n },\n chevronBig: {\n alignSelf: 'flex-end',\n margin: '0 0 2px 8px',\n flexShrink: 0,\n },\n details: {\n backgroundColor: 'white',\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.29)',\n color: '#37001F',\n },\n detailsHeader: {\n padding: 16,\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.29)',\n },\n buttons: {\n display: 'flex',\n alignItems: 'baseline',\n justifyContent: 'space-between',\n },\n backButton: {\n width: 43,\n marginLeft: -12,\n },\n chevronBack: {\n transform: 'rotate(180deg)',\n },\n bookmark: {\n marginLeft: 'auto',\n '@media (max-width: 800px)': {\n marginLeft: 0,\n },\n },\n share: {\n marginRight: 32,\n '@media (max-width: 800px)': {\n marginRight: 'auto',\n },\n },\n headerBottom: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginTop: 6,\n },\n total: {\n fontWeight: 400,\n '@media (max-width: 800px)': {\n fontSize: 13,\n },\n },\n detailsLegs: {\n padding: 16,\n },\n stop: {\n marginBottom: 8,\n display: 'flex',\n },\n stopTime: {\n marginLeft: 'auto',\n fontSize: 14,\n fontWeight: 400,\n },\n walkLeg: {\n marginBottom: 12,\n display: 'flex',\n alignItems: 'center',\n },\n walkIcon: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n margin: '-12px 8px',\n },\n walkDot: {\n width: 4,\n height: 4,\n borderRadius: '50%',\n margin: 4,\n backgroundColor: '#E4E4E4',\n },\n transitLeg: {\n display: 'flex',\n },\n legText: {\n fontSize: 12,\n },\n legRoute: {\n padding: '1px 6px',\n borderRadius: 7,\n backgroundColor: '#F5F5F5',\n fontSize: 14,\n fontWeight: 400,\n marginRight: 8,\n },\n expandButton: {\n fontSize: 12,\n lineHeight: '1',\n margin: '-4px -4px 8px',\n height: 28,\n color: '#A1145C',\n },\n buttonExpanded: {\n fontWeight: 400,\n },\n expandChevrons: {\n display: 'flex',\n flexDirection: 'column',\n marginRight: 8,\n },\n chevronFlipped: {\n transform: 'rotate(180deg)',\n marginBottom: 2,\n width: 8,\n },\n expandChevron: {\n width: 8,\n },\n shrinkButton: {\n minWidth: 0,\n margin: '8px -4px',\n },\n chevronShrink: {\n transform: 'rotate(180deg)',\n width: 8,\n },\n intermediateStop: {\n fontSize: 12,\n position: 'relative',\n '&:not(:last-of-type)': {\n marginBottom: 16,\n },\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n top: 4,\n left: -24,\n width: 8,\n height: 8,\n borderRadius: '50%',\n backgroundColor: '#3571B7',\n },\n },\n startIcon: {\n width: 14,\n height: 14,\n borderRadius: '50%',\n margin: '4px 13px',\n backgroundColor: '#E4E4E4',\n },\n transitModeIcon: {\n margin: '0 8px',\n },\n transitEndIcon: {\n width: 14,\n height: 14,\n borderRadius: '50%',\n margin: '4px 13px',\n backgroundColor: '#E4E4E4',\n border: '5px solid #3571B7',\n },\n transitLine: {\n width: 4,\n backgroundColor: '#3571B7',\n margin: '-12px 18px -4px',\n },\n destinationIcon: {\n margin: '0 8px',\n },\n transitLegText: {\n fontSize: 12,\n marginBottom: 12,\n },\n hiddenLegs: {\n fontSize: 20,\n lineHeight: '22px',\n },\n resultsButtons: {\n display: 'flex',\n marginBottom: 8,\n marginTop: -8,\n },\n});\n\nconst renderDuration = (duration: number) => {\n const momentDuration = moment.duration(duration, 'seconds');\n const days = momentDuration.days() > 0 ? `${momentDuration.days()} d ` : '';\n const hours = momentDuration.hours() > 0 ? `${momentDuration.hours()} h ` : '';\n const minutes = momentDuration.minutes() > 0 ? `${momentDuration.minutes()} min` : '';\n return `${days}${hours}${minutes}`.trim();\n};\n\nexport default function Results({\n itineraries, openItinerary, setOpenItinerary, from, to, date, onBookmark,\n onShare, onHover, hoveredItinerary,\n}: Props) {\n const classes = useStyles();\n const { t } = useTranslation();\n const [expandedLegs, setExpandedLegs] = useState([]);\n const [buyTickets, setBuyTickets] = useState(false);\n const isMobile = useMediaQuery('(max-width: 800px)');\n useEffect(() => setExpandedLegs([]), [itineraries]);\n if (buyTickets && openItinerary !== null) {\n return (\n setBuyTickets(false)}\n />\n );\n }\n return (\n
\n {openItinerary === null ? (\n <>\n
\n \n \n \n \n \n \n
\n {itineraries.map((itinerary, j) => {\n const significantLegs = itinerary.legs.filter((leg) => leg.mode !== 'WALK' || leg.distance > 100);\n const legWidths = significantLegs.map((leg) => (leg.mode === 'WALK' ? 52 : 94));\n let legsToShow = 0;\n let remainingWidth = (isMobile ? window.innerWidth : 424) - 166;\n for (let i = 0; i < significantLegs.length; i += 1) {\n remainingWidth -= legWidths[i];\n if (remainingWidth > 0) {\n legsToShow += 1;\n } else {\n break;\n }\n }\n return (\n setOpenItinerary(j)}\n onMouseOver={() => onHover(j)}\n onFocus={() => onHover(j)}\n key={itinerary.id}\n >\n
\n \n {itinerary.legs.length > 1 && (\n <>\n \n {t('planning.from')}\n \n {': '}\n {itinerary.legs[0].to.name}\n \n )}\n \n \n {renderDuration(itinerary.duration)}\n \n
\n
\n {R.take(legsToShow, significantLegs).map((leg) => (\n \n
\n {leg.mode === 'WALK' && }\n {leg.mode === 'RAIL' && }\n {leg.mode === 'TRAM' && }\n {leg.mode === 'BUS' && }\n \n {moment(leg.startTime).format('HH:mm')}\n \n
\n {leg.route !== '' && (\n \n {leg.route}\n \n )}\n \n
\n ))}\n {significantLegs.length > legsToShow && (\n <>\n \n +\n {significantLegs.length - legsToShow}\n \n \n \n )}\n
\n \n \n {moment(itinerary.endTime).format('HH:mm')}\n \n
\n \n
\n
\n );\n })}\n \n ) : (() => {\n const itinerary = itineraries[openItinerary];\n const agencies = itinerary.legs.filter((x) => x.mode !== 'WALK').map(({ agencyName }) => (\n (agencyName === 'Stena Line' || agencyName === 'Blekinge trafiken') ? agencyName : 'FALA'\n ));\n const singleTicket = agencies.every((x) => x === agencies[0]);\n return (\n
\n
\n
\n {isMobile ? (\n \n {date.format('MMM. D, YYYY, HH:mm')}\n \n ) : (\n setOpenItinerary(null)}\n className={classes.backButton}\n >\n \n \n )}\n {agencies.length > 0 && (\n singleTicket ? (\n \n ) : (\n setBuyTickets(true)}\n >\n {t('planning.buyTicket')}\n \n )\n )}\n
\n \n {t('planning.total')}\n {': '}\n {renderDuration(itinerary.duration)}\n \n
\n
\n
\n
\n \n {from}\n \n \n {moment(itinerary.legs[0].from.departure).format('HH:mm')}\n \n
\n {itinerary.legs.map((leg, legId) => {\n const minutesDuration = Math.ceil(leg.duration / 60);\n const minutesWaiting = Math.ceil((leg.to.departure - leg.to.arrival) / (1000 * 60));\n return (\n \n {leg.mode === 'WALK' ? (\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {t('planning.walk')}\n {' '}\n {minutesDuration}\n {' '}\n {t('planning.minutes', { count: minutesDuration })}\n {' ('}\n {Math.round(leg.distance)}\n {' m).'}\n \n {minutesWaiting > 0 && (\n \n {t('planning.waitingTime')}\n {' '}\n {minutesWaiting}\n {' '}\n {t('planning.minutes', { count: minutesWaiting })}\n .\n \n )}\n
\n
\n ) : (\n
\n
\n
\n \n \n {leg.route}\n \n {leg.headsign}\n \n {leg.intermediateStops.length > 0 && (\n {\n if (expandedLegs.includes(legId)) {\n setExpandedLegs(expandedLegs.filter((x) => x !== legId));\n } else {\n setExpandedLegs([...expandedLegs, legId]);\n }\n }}\n >\n
\n {!expandedLegs.includes(legId) && (\n \n )}\n \n
\n {leg.intermediateStops.length + 1}\n {' '}\n {t('planning.stops', { count: leg.intermediateStops.length + 1 })}\n \n )}\n {expandedLegs.includes(legId) && (\n <>\n {leg.intermediateStops.map((stop) => (\n \n {stop.name}\n \n ))}\n {\n setExpandedLegs(expandedLegs.filter((x) => x !== legId));\n }}\n >\n \n \n \n )}\n
\n
\n )}\n {leg.to.name !== 'Destination' && (\n
\n {leg.mode === 'WALK' ? (\n
\n {itinerary.legs[legId + 1].mode === 'RAIL' && }\n {itinerary.legs[legId + 1].mode === 'TRAM' && }\n {itinerary.legs[legId + 1].mode === 'BUS' && }\n
\n ) : (\n
\n )}\n \n {leg.to.name}\n \n \n {moment(leg.to.departure).format('HH:mm')}\n \n
\n )}\n \n );\n })}\n
\n \n \n {to}\n \n \n {moment(R.last(itinerary.legs)!.to.arrival).format('HH:mm')}\n \n
\n
\n
\n );\n })()}\n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-1728 -7869)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1710 7853)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(20 18)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20,28.391,30,18,40,28.391\",\n transform: \"translate(-20 -18)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46,122v11.719H61.938V122.234\",\n transform: \"translate(-43.969 -113.875)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117,161.375V152h4.844v9.375\",\n transform: \"translate(-109.422 -141.531)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}))), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1190 7760)\",\n opacity: 0.995\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,4.625l7.981-8.6L16,4.625V16l-5.664-.494V6.531H5.795v8.975L0,16V4.625Z\",\n transform: \"translate(542 115)\",\n fill: \"#a1145c\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(520 93)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(20 18)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20,28.391,30,18,40,28.391\",\n transform: \"translate(-20 -18)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M46,122v11.719H61.938V122.234\",\n transform: \"translate(-43.969 -113.875)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M117,161.375V152h4.844v9.375\",\n transform: \"translate(-109.422 -141.531)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n})))));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgHomeActive = function SvgHomeActive(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgHomeActive, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/home-active.46ae0357.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useContext } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Typography, useMediaQuery } from '@material-ui/core';\nimport { NavLink, Route, Switch } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport logo from '../assets/interconnect-logo.svg';\nimport UserMenu from '../common/UserMenu';\nimport AppContext from '../context';\nimport { useGetLink } from '../utils';\nimport { ReactComponent as HomeActiveIcon } from '../assets/home-active.svg';\nimport { ReactComponent as HomeIcon } from '../assets/home.svg';\n\nconst useStyles = makeStyles({\n nav: {\n width: '100%',\n height: 43,\n flexShrink: 0,\n padding: '0 32px',\n display: 'flex',\n alignItems: 'center',\n backgroundColor: 'rgba(232, 232, 232, 0.5)',\n '@media (max-width: 800px)': {\n padding: '0 8px',\n },\n },\n logo: {\n height: 41,\n marginRight: 'auto',\n },\n navIconLink: {\n display: 'flex',\n justifyContent: 'center',\n width: 100,\n padding: '8px 0',\n '@media (max-width: 800px)': {\n width: 60,\n },\n },\n navLink: {\n color: '#a1145c',\n fontSize: 20,\n textDecoration: 'none',\n marginRight: 36,\n whiteSpace: 'nowrap',\n '@media (max-width: 800px)': {\n marginRight: 12,\n },\n },\n active: {\n fontWeight: 700,\n },\n});\n\nexport default function Nav() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { user, name, interconnectNumber } = useContext(AppContext);\n const getLink = useGetLink();\n const isMobile = useMediaQuery('(max-width: 800px)');\n return (\n
\n \n {!isMobile && (\n <>\n \n \n } />\n } />\n \n \n {(user && name) ? (\n \n {t('touristCard.myCard')}\n \n ) : (\n \n {t('auth.logIn')}\n \n )}\n \n {t('timetables.timetables')}\n \n \n {t('support.help')}\n \n \n )}\n {(name || isMobile) && (\n \n )}\n
\n );\n}\n","import React, {\n useContext, useEffect, useRef, useState, useCallback,\n} from 'react';\nimport {\n Button, ButtonGroup, IconButton, InputAdornment, makeStyles, TextField,\n Typography, useMediaQuery,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport moment, { Moment } from 'moment';\nimport { DateTimePicker } from '@material-ui/pickers';\nimport {\n Map, Marker, Polyline, ScaleControl, TileLayer,\n} from 'react-leaflet';\nimport leaflet from 'leaflet';\nimport 'leaflet-fullscreen';\nimport 'leaflet-fullscreen/dist/leaflet.fullscreen.css';\nimport * as R from 'ramda';\nimport polyline from '@mapbox/polyline';\nimport { useParams, useHistory } from 'react-router-dom';\nimport copy from 'clipboard-copy';\nimport { Base64 } from 'js-base64';\nimport { ReactComponent as Swap } from '../../assets/swap.svg';\nimport { ReactComponent as Calendar } from '../../assets/calendar.svg';\nimport { ReactComponent as BackArrow } from '../../assets/back-arrow.svg';\nimport { ReactComponent as MarkerPrimary } from '../../assets/marker-primary.svg';\nimport { ReactComponent as BookmarkFilled } from '../../assets/bookmark-filled.svg';\nimport { ReactComponent as Delete } from '../../assets/delete.svg';\nimport { ReactComponent as ChevronBig } from '../../assets/chevron-big.svg';\nimport marker from '../../assets/marker.svg';\nimport {\n IFavoriteTrip, IFavoriteTripPoint, IItinerary, IOldFavoriteTrip, IPlace, ISavedFavoriteTrip,\n} from '../../interfaces';\nimport LocationSearch from './LocationSearch';\nimport AppContext from '../../context';\nimport Results from './Results';\nimport { axios, useGetLink } from '../../utils';\nimport Nav from '../Nav';\nimport Footer from '../Footer';\n\nconst useStyles = makeStyles({\n root: {\n minHeight: '100vh',\n backgroundColor: 'white',\n display: 'flex',\n flexDirection: 'column',\n },\n main: {\n flexGrow: 1,\n minHeight: 400,\n display: 'flex',\n height: 'calc(100vh - 43px)',\n '@media (max-width: 800px)': {\n height: 'initial',\n },\n },\n left: {\n width: 424,\n backgroundColor: '#A1145C',\n display: 'flex',\n flexDirection: 'column',\n overflowY: 'auto',\n position: 'relative',\n '@media (max-width: 800px)': {\n width: '100%',\n },\n },\n search: {\n backgroundColor: 'white',\n padding: '16px 64px',\n '@media (max-width: 800px)': {\n padding: '16px 40px',\n },\n },\n header: {\n fontSize: 28,\n fontWeight: 400,\n color: '#37001F',\n marginBottom: 8,\n },\n from: {\n display: 'flex',\n },\n to: {\n display: 'flex',\n marginBottom: 24,\n },\n swapButton: {\n display: 'flex',\n padding: 4,\n margin: '-6px -36px -6px auto',\n },\n timeButtons: {\n display: 'flex',\n justifyContent: 'space-between',\n margin: '16px 0',\n },\n pickerInput: {\n paddingRight: 10,\n },\n datePicker: {\n marginBottom: 16,\n },\n map: {\n flexGrow: 1,\n '@media (max-width: 800px)': {\n height: 200,\n },\n },\n marker: {\n width: 20,\n height: 25,\n left: -10,\n top: -25,\n },\n bottom: {\n flexGrow: 1,\n display: 'flex',\n flexDirection: 'column',\n },\n stopMarker: {\n width: 10,\n height: 10,\n backgroundColor: '#E4E4E4',\n borderRadius: '50%',\n border: '2px solid #37001F',\n },\n intermediateStopMarker: {\n width: 8,\n height: 8,\n backgroundColor: '#316FB9',\n borderRadius: '50%',\n },\n walkDotMarker: {\n width: 8,\n height: 8,\n backgroundColor: '#E4E4E4',\n borderRadius: '50%',\n border: '1px solid #37001F',\n },\n backButton: {\n position: 'absolute',\n left: 0,\n top: 0,\n margin: 8,\n zIndex: 400,\n },\n selectFromMapMarker: {\n position: 'absolute',\n left: '50%',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n width: 30,\n height: 50,\n zIndex: 400,\n },\n selectFromMapRoot: {\n display: 'flex',\n flexDirection: 'column',\n height: '100vh',\n },\n selectFromMapHeader: {\n display: 'flex',\n justifyContent: 'center',\n position: 'relative',\n padding: 10,\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.29)',\n zIndex: 1000,\n },\n selectFromMapBack: {\n position: 'absolute',\n left: 8,\n },\n selectFromMapMap: {\n width: '100%',\n flexGrow: 1,\n },\n noConnections: {\n padding: 24,\n color: 'white',\n fontWeight: 400,\n textAlign: 'center',\n },\n savedSearches: {\n margin: 16,\n },\n savedSearchesHeader: {\n fontSize: 26,\n fontWeight: 400,\n color: 'white',\n display: 'flex',\n alignItems: 'center',\n marginBottom: 16,\n },\n bookmarkIcon: {\n marginRight: 4,\n },\n savedSearch: {\n display: 'flex',\n padding: '8px 8px 8px 32px',\n backgroundColor: 'white',\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.29)',\n marginBottom: 8,\n position: 'relative',\n '&::before': {\n content: '\"\"',\n position: 'absolute',\n left: 8,\n top: 11,\n width: 14,\n height: 14,\n borderRadius: '50%',\n backgroundColor: '#E4E4E4',\n },\n },\n savedSearchText: {\n fontSize: 14,\n },\n savedSearchButtons: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n margin: '-6px 0 -6px auto',\n },\n savedSearchButton: {\n padding: 8,\n },\n savedSearchLabel: {\n fontWeight: 400,\n },\n});\n\nconst getPlaceName = (place: string | IPlace, coords: [number, number]): string => {\n if (typeof place === 'string') {\n return coords.map((x) => String(Math.round(x * 10 ** 5) / 10 ** 5)).join(', ');\n }\n if (!place.location) return place.name;\n return `${place.name}, ${place.location}`;\n};\n\nexport default function TripPlanning() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { showSnackbar, user } = useContext(AppContext);\n const getLink = useGetLink();\n const [myLocation, setMyLocation] = useState<{ lat: number; lon: number; } | null>(null);\n const [locationReady, setLocationReady] = useState(false);\n const [from, setFrom] = useState(null);\n const [to, setTo] = useState(null);\n const [fromError, setFromError] = useState(false);\n const [toError, setToError] = useState(false);\n const [fromCoords, setFromCoords] = useState<[number, number] | null>(null);\n const [toCoords, setToCoords] = useState<[number, number] | null>(null);\n const [isDepart, setIsDepart] = useState(true);\n const [date, setDate] = useState(moment());\n const [dateEdited, setDateEdited] = useState(false);\n const mapRef = useRef();\n const [mapViewport, setMapViewport] = useState<{\n center: [number, number],\n zoom: number,\n } | null>(null);\n const [itineraries, setItineraries] = useState([]);\n const [hoveredItinerary, setHoveredItinerary] = useState(0);\n const [openItinerary, setOpenItinerary] = useState(null);\n const [noConnections, setNoConnections] = useState(false);\n const [savedSearches, setSavedSearches] = (\n useState<(IFavoriteTrip | ISavedFavoriteTrip)[] | null>(null)\n );\n const [triggerSearch, setTriggerSearch] = useState(false);\n const params = useParams<{ search: string }>();\n const history = useHistory();\n const loadSearch = useCallback((searchData: IFavoriteTrip) => {\n const getPlace = (point: IFavoriteTripPoint): string | IPlace | null => {\n if (point.type === 'your-location') return 'your-location';\n if (point.type === 'map-pin') return 'pin-location';\n if (point.name) {\n const split = point.name.split(', ');\n return {\n lat: point.lat,\n lon: point.lon,\n name: split[0],\n location: split[1],\n type: 'place',\n };\n }\n return null;\n };\n const getCoords = (point: IFavoriteTripPoint): [number, number] | null => {\n if (point.type === 'your-location') {\n return myLocation ? [myLocation.lat, myLocation.lon] : null;\n }\n return [point.lat, point.lon];\n };\n setFrom(getPlace(searchData.from));\n setFromCoords(getCoords(searchData.from));\n setTo(getPlace(searchData.to));\n setToCoords(getCoords(searchData.to));\n setIsDepart(searchData.arriveBy ? !searchData.arriveBy : true);\n setDate(\n searchData.dateTime ? moment(searchData.dateTime) : moment(),\n );\n setTriggerSearch(true);\n }, [myLocation]);\n useEffect(() => {\n if (params.search && locationReady) {\n loadSearch(JSON.parse(Base64.decode(params.search)));\n history.push(getLink('/trip-planning'));\n }\n }, [params, getLink, history, loadSearch, locationReady]);\n useEffect(() => {\n (async () => {\n const searchesString = localStorage.getItem('saved-searches');\n const oldLocalSearches: IOldFavoriteTrip[] = searchesString ? JSON.parse(searchesString) : [];\n const localSearches: IFavoriteTrip[] = oldLocalSearches.map((x) => ({\n ...x,\n from: {\n type: x.from.name ? 'search-result' : 'map-pin',\n ...x.from,\n },\n to: {\n type: x.to.name ? 'search-result' : 'map-pin',\n ...x.to,\n },\n }));\n if (user) {\n if (localSearches.length > 0) {\n await axios.post('/user/trips/favorite', localSearches);\n localStorage.removeItem('saved-searches');\n }\n const { data } = await axios.get('/user/trips/favorite');\n setSavedSearches(data);\n } else {\n setSavedSearches(localSearches);\n }\n })();\n }, [user]);\n const isMobile = useMediaQuery('(max-width: 800px)');\n useEffect(() => setOpenItinerary(null), [itineraries]);\n useEffect(() => {\n if (mapRef.current) {\n mapRef.current.leafletElement.fitBounds(\n new leaflet.LatLngBounds([\n [56.464660, 14.408800],\n [53.570577, 19.443904],\n ]),\n );\n }\n }, [savedSearches]);\n const getLocation = (errorCallback?: () => void) => {\n let intervalId: NodeJS.Timeout;\n if (navigator.permissions) {\n intervalId = setInterval(async () => {\n const { state } = await navigator.permissions.query({ name: 'geolocation' });\n if (state === 'granted') {\n if (errorCallback) {\n errorCallback();\n }\n setLocationReady(true);\n clearInterval(intervalId);\n }\n }, 1000);\n }\n navigator.geolocation.getCurrentPosition(({ coords }) => {\n setMyLocation({ lat: coords.latitude, lon: coords.longitude });\n setLocationReady(true);\n setMapViewport({\n center: [coords.latitude, coords.longitude],\n zoom: 15,\n });\n clearInterval(intervalId);\n }, () => {\n if (errorCallback) {\n errorCallback();\n }\n setLocationReady(true);\n clearInterval(intervalId);\n });\n };\n useEffect(() => {\n if (savedSearches) {\n getLocation();\n }\n }, [savedSearches]);\n useEffect(() => {\n if (from === 'your-location' || to === 'your-location') {\n if (myLocation === null) {\n getLocation(() => {\n showSnackbar(t('planning.locationError'));\n if (from === 'your-location') {\n setFrom(null);\n }\n if (to === 'your-location') {\n setTo(null);\n }\n });\n } else {\n const location: [number, number] = [myLocation.lat, myLocation.lon];\n if (from === 'your-location' && !R.equals(fromCoords, location)) {\n setFromCoords(location);\n }\n if (to === 'your-location' && !R.equals(toCoords, location)) {\n setToCoords(location);\n }\n }\n }\n }, [from, to, myLocation, showSnackbar, t, fromCoords, toCoords]);\n useEffect(() => {\n if ((fromCoords || toCoords) && mapRef.current) {\n mapRef.current.leafletElement.fitBounds(\n new leaflet.LatLngBounds([\n (fromCoords || toCoords) as [number, number],\n (toCoords || fromCoords) as [number, number],\n ]),\n { padding: [32, 32] },\n );\n }\n }, [fromCoords, toCoords, openItinerary]);\n useEffect(() => {\n setItineraries([]);\n setNoConnections(false);\n setOpenItinerary(null);\n }, [from, to, isDepart, date]);\n const onSearch = useCallback(async () => {\n if (!fromCoords) {\n setFromError(true);\n }\n if (!toCoords) {\n setToError(true);\n }\n if (fromCoords && toCoords) {\n const { data } = await axios.get('/public/plan-trip', {\n params: {\n fromLat: fromCoords[0],\n fromLon: fromCoords[1],\n toLat: toCoords[0],\n toLon: toCoords[1],\n dateTime: date.format('YYYY-MM-DDTHH:mm:ss'),\n arriveBy: !isDepart,\n },\n });\n if (data.plan) {\n setNoConnections(false);\n setHoveredItinerary(0);\n setItineraries(data.plan.itineraries.map((x: IItinerary) => ({\n ...x,\n id: Math.round(Math.random() * 10 ** 10),\n })));\n } else {\n setNoConnections(true);\n setItineraries([]);\n }\n }\n }, [fromCoords, toCoords, date, isDepart]);\n useEffect(() => {\n if (triggerSearch) {\n onSearch();\n setTriggerSearch(false);\n }\n }, [triggerSearch, onSearch]);\n if (!savedSearches) {\n return null;\n }\n const mobileSelectFromMap = isMobile && ((from === 'select-on-map' && !fromCoords) || (to === 'select-on-map' && !toCoords));\n const map = (\n {\n if (center && zoom) {\n setMapViewport({ center, zoom });\n }\n }}\n onclick={({ latlng }) => {\n if (isMobile) return;\n if (from === 'select-on-map') {\n setFromCoords([latlng.lat, latlng.lng]);\n setFrom('pin-location');\n }\n if (to === 'select-on-map') {\n setToCoords([latlng.lat, latlng.lng]);\n setTo('pin-location');\n }\n }}\n zoomControl={!isMobile}\n // @ts-ignore\n fullscreenControl={{ position: 'topright' }}\n >\n \n \n {isMobile && !mobileSelectFromMap && (\n setOpenItinerary(null)}\n >\n \n \n )}\n {mobileSelectFromMap && (\n \n )}\n {fromCoords && (\n {\n const { lat, lng: lon } = event.target.getLatLng();\n setFrom('pin-location');\n setFromCoords([lat, lon]);\n }}\n />\n )}\n {itineraries.length > 0 && hoveredItinerary !== null && (() => {\n const itinerary = itineraries[hoveredItinerary];\n return (\n <>\n {R.init(itinerary.legs).map((leg) => (\n ',\n iconSize: [10, 10],\n })}\n />\n ))}\n {R.chain(R.prop('intermediateStops'), itinerary.legs).map((stop) => (\n ',\n iconSize: [8, 8],\n })}\n />\n ))}\n {itinerary.legs.map((leg) => {\n const points = polyline.decode(leg.legGeometry.points) as [number, number][];\n if (leg.mode === 'WALK') {\n return (\n <>\n \n \n \n );\n }\n return (\n \n );\n })}\n \n );\n })()}\n {toCoords && (\n {\n const { lat, lng: lon } = event.target.getLatLng();\n setTo('pin-location');\n setToCoords([lat, lon]);\n }}\n />\n )}\n \n );\n if (mobileSelectFromMap) {\n return (\n
\n
\n {\n if (from === 'select-on-map') {\n setFrom(null);\n }\n if (to === 'select-on-map') {\n setTo(null);\n }\n }}\n >\n \n \n {\n if (!mapViewport) return;\n if (from === 'select-on-map') {\n setFromCoords(mapViewport.center);\n setFrom('pin-location');\n }\n if (to === 'select-on-map') {\n setToCoords(mapViewport.center);\n setTo('pin-location');\n }\n }}\n >\n {t('planning.selectThis')}\n \n
\n {map}\n
\n );\n }\n return (\n
\n
\n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Link, Typography } from '@material-ui/core';\nimport { Trans, useTranslation } from 'react-i18next';\nimport Nav from './Nav';\nimport Footer from './Footer';\nimport headerArrow from '../assets/header-arrow.svg';\n\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n minHeight: '100vh',\n },\n header: {\n fontSize: 22,\n fontWeight: 700,\n color: '#38001F',\n margin: '64px 100px 32px',\n display: 'flex',\n alignItems: 'center',\n '&::before': {\n content: '\"\"',\n display: 'block',\n width: 22,\n height: 32,\n backgroundImage: `url('${headerArrow}')`,\n marginRight: 13,\n },\n '@media (max-width: 800px)': {\n margin: '64px 16px 32px',\n },\n },\n content: {\n flexGrow: 1,\n padding: '16px 100px',\n background: '#F5F5F5',\n '& li': {\n margin: '4px 0',\n },\n '& ol': {\n marginBottom: 24,\n },\n '@media (max-width: 800px)': {\n padding: 16,\n },\n },\n subheader: {\n fontSize: 18,\n fontWeight: 700,\n color: '#38001F',\n display: 'flex',\n alignItems: 'center',\n '&::before': {\n content: '\"\"',\n display: 'block',\n width: 22,\n height: 32,\n backgroundImage: `url('${headerArrow}')`,\n marginRight: 13,\n },\n },\n footerContainer: {\n marginTop: 'auto',\n background: '#F5F5F5',\n },\n});\n\nexport default function PrivacyPolicy() {\n const classes = useStyles();\n const { t } = useTranslation();\n return (\n
\n
\n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Link, Typography } from '@material-ui/core';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { Link as RouterLink } from 'react-router-dom';\nimport Nav from './Nav';\nimport Footer from './Footer';\nimport headerArrow from '../assets/header-arrow.svg';\nimport { useGetLink } from '../utils';\n\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n minHeight: '100vh',\n },\n header: {\n fontSize: 22,\n fontWeight: 700,\n color: '#38001F',\n margin: '64px 100px 32px',\n display: 'flex',\n alignItems: 'center',\n '&::before': {\n content: '\"\"',\n display: 'block',\n width: 22,\n height: 32,\n backgroundImage: `url('${headerArrow}')`,\n marginRight: 13,\n flexShrink: 0,\n },\n '@media (max-width: 800px)': {\n margin: '64px 16px 32px',\n },\n },\n content: {\n flexGrow: 1,\n padding: '16px 100px',\n background: '#F5F5F5',\n '& li': {\n margin: '4px 0',\n },\n '& > ol': {\n marginBottom: 24,\n },\n '& ol ol': {\n listStyleType: 'lower-alpha',\n },\n '@media (max-width: 800px)': {\n padding: 16,\n },\n },\n subheader: {\n fontSize: 18,\n fontWeight: 700,\n color: '#38001F',\n display: 'flex',\n alignItems: 'center',\n '&::before': {\n content: '\"\"',\n display: 'block',\n width: 22,\n height: 32,\n backgroundImage: `url('${headerArrow}')`,\n marginRight: 13,\n },\n },\n footerContainer: {\n marginTop: 'auto',\n background: '#F5F5F5',\n },\n terms2: {\n fontStyle: 'italic',\n },\n terms3: {\n fontWeight: 300,\n },\n term: {\n display: 'inline-block',\n width: 220,\n flexShrink: 0,\n },\n definitions: {\n paddingLeft: 0,\n '& li': {\n display: 'flex',\n '@media (max-width: 800px)': {\n flexWrap: 'wrap',\n },\n },\n },\n});\n\nexport default function Terms() {\n const classes = useStyles();\n const { t } = useTranslation();\n const getLink = useGetLink();\n return (\n
\n
\n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { IconButton, Typography } from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport Nav from './Nav';\nimport { ReactComponent as BackArrow } from '../assets/back-arrow.svg';\nimport { ReactComponent as Eusbsr } from '../assets/eusbsr.svg';\nimport { ReactComponent as Interconnect } from '../assets/interconnect-logo.svg';\nimport { ReactComponent as Interreg } from '../assets/interreg.svg';\nimport Footer from './Footer';\n\nconst useStyles = makeStyles({\n root: {\n backgroundColor: 'white',\n minHeight: '100vh',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n maxWidth: '100%',\n },\n back: {\n margin: 8,\n },\n content: {\n margin: '0 32px',\n },\n row: {\n display: 'flex',\n },\n logo: {\n height: 60,\n margin: 16,\n },\n disclaimer: {\n fontSize: 12,\n color: '#37001F',\n marginTop: 16,\n },\n});\n\nexport default function About() {\n const classes = useStyles();\n const { t } = useTranslation();\n return (\n
\n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1.892 5.084)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.655,90H81.562A1.565,1.565,0,0,1,83.1,91.537v10.64a1.565,1.565,0,0,1-1.537,1.537H64.655a1.49,1.49,0,0,1-1.537-1.537L63,91.537A1.673,1.673,0,0,1,64.655,90Z\",\n transform: \"translate(-63 -90)\",\n fill: \"#37001f\",\n stroke: \"#37001f\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 5.793,\n transform: \"translate(11.823 3.665)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 5.793,\n transform: \"translate(11.823 7.094)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(2.246 2.956)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1.655,\n cy: 1.655,\n r: 1.655,\n transform: \"translate(2.01)\",\n fill: \"#37001f\",\n stroke: \"#fff\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82,153.055c.118-.236.118-.355.236-.355a4.373,4.373,0,0,1,6.266-.591,6.757,6.757,0,0,1,.828.946\",\n transform: \"translate(-82 -146.789)\",\n fill: \"#37001f\",\n stroke: \"#fff\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82,165a1.7,1.7,0,0,0,.236.355,4.59,4.59,0,0,0,6.266.591c.236-.355.591-.591.828-.946\",\n transform: \"translate(-82 -159.089)\",\n fill: \"#37001f\",\n stroke: \"#fff\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"line\", {\n x2: 5.793,\n transform: \"translate(10.877 3.665)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 5.793,\n transform: \"translate(10.877 7.094)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n transform: \"translate(0 0)\",\n fill: \"none\"\n}));\n\nvar SvgCard = function SvgCard(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCard, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/card.3ebfa5f8.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.421,12.859,13.625,16l-1.381-5.92,4.6-3.983-6.055-.514L8.421,0,6.055,5.583,0,6.1,4.6,10.08,3.217,16Z\",\n fill: \"#fdd600\"\n});\n\nvar SvgStar = function SvgStar(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16.842,\n height: 16,\n viewBox: \"0 0 16.842 16\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgStar, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/star.52705bd1.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-695.74 -463.897)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M614.968,445.168l3.526-3.149a14.2,14.2,0,0,1-.645-2.4,19.216,19.216,0,0,1-.218-2.719h-4.844a15.873,15.873,0,0,0,1.705,8.271,21.16,21.16,0,0,0,4,5.645,18.938,18.938,0,0,0,14.247,5.93v-4.814a22.083,22.083,0,0,1-3-.109,13.044,13.044,0,0,1-2.495-.57l-2.884,3.494\",\n transform: \"translate(85 29)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgPhone = function SvgPhone(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPhone, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/phone.7259bcb4.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-596 -461)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(598 463)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10,\n cy: 10,\n r: 10,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 10,\n cy: 10,\n r: 9.5,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M475.728,468.242H492.6\",\n transform: \"translate(124 0.758)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M474.584,473.027h18.749\",\n transform: \"translate(124)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M475.728,477.032H492.6\",\n transform: \"translate(124)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M483.191,463.459a15.122,15.122,0,0,0-2.747,9.2,18,18,0,0,0,2.747,9.576\",\n transform: \"translate(124 0.185)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M480.443,463.459a15.122,15.122,0,0,1,2.747,9.2,18,18,0,0,1-2.747,9.576\",\n transform: \"translate(128.557 0.185)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgWebsite = function SvgWebsite(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgWebsite, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/website.17676f6e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-681.5 -388.84)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M547.224,403.693v5.729h20v-5.729\",\n transform: \"translate(136.276 -0.313)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(687.881 391.84)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,0,5.347,5.543,0,11.086\",\n transform: \"translate(11.086 6.373) rotate(90)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 0.023,\n y1: 11.364,\n transform: \"translate(5.556 0)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n})));\n\nvar SvgDownload = function SvgDownload(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDownload, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/download.3cfea1a5.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11070.37,1944.675l4.248-1.76,4.658,1.977,2.849-1.207,2.787,2.767-.152,7.648v.29l-5.748,2.268-4.67-2.037-5.044,2.037-.354-.379v-5.1l.719-.27,2.11-2.225v-2.337l-1.4-1.047-.625-.407Z\",\n transform: \"translate(-11068.943 -1942.915)\",\n fill: \"none\",\n stroke: \"#707070\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"b\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11075.872,1943.568l3.312,1.363,1.908-.641.431.4,2.019,2.456.958-1.127.309,2.457-.149,5.937s-5.715,2.4-5.785,2.352-4.637-2.143-4.637-2.143l-4.393,1.832h-1.086l.264-11.762,5.467-1.758Z\",\n transform: \"translate(-11068.758 -1942.934)\",\n fill: \"none\",\n stroke: \"#707070\",\n strokeWidth: 1\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-265 -388)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0.059)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(267 391)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n y2: 10.177,\n transform: \"translate(11.943 7.433)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 10.177,\n transform: \"translate(7.193 5.482)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M77.419,126.19a10.972,10.972,0,0,0,1.446,0,1.737,1.737,0,0,0,.707-.163,1.244,1.244,0,0,0,.594-.678c.17-.339.254-.933.424-1.357a2.26,2.26,0,0,1,.449-.774,1.761,1.761,0,0,1,.5-.444s-.146.1.007,0a1.016,1.016,0,0,1,.4-.136,3.638,3.638,0,0,1,.706,0,2.241,2.241,0,0,1,.6.085,2.362,2.362,0,0,1,.517.261,3.636,3.636,0,0,1,.9.757,5.925,5.925,0,0,1,.848,1.1c.445.657.509,1.272.933,1.527a1.563,1.563,0,0,0,1.7-.254,3.95,3.95,0,0,0,.509-1.7,2.819,2.819,0,0,1,.339-1.1,1.354,1.354,0,0,1,.763-.594,10.4,10.4,0,0,1,1.622-.085\",\n transform: \"translate(-75.093 -113.251)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(12.734)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1.372,\n cy: 1.372,\n r: 1.372,\n transform: \"translate(2.217 2.058)\",\n fill: \"rgba(255,255,255,0)\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M86.386,68.542a3.315,3.315,0,0,0,.739-2.111A3.586,3.586,0,0,0,83.589,63,3.634,3.634,0,0,0,80,66.431a3.363,3.363,0,0,0,.792,2.111\",\n transform: \"translate(-80 -63)\",\n fill: \"rgba(255,255,255,0)\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.594,168l-2.8,3.431L95,168\",\n transform: \"translate(-94.208 -162.458)\",\n fill: \"rgba(255,255,255,0)\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 6.999)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 0.906,\n cy: 0.906,\n r: 0.906,\n transform: \"translate(1.464 1.359)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M84.217,66.659a2.189,2.189,0,0,0,.488-1.394A2.368,2.368,0,0,0,82.37,63,2.4,2.4,0,0,0,80,65.265a2.22,2.22,0,0,0,.523,1.394\",\n transform: \"translate(-80 -63)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M98.694,168l-1.847,2.265L95,168\",\n transform: \"translate(-94.477 -164.341)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1.675 4.678)\",\n clipPath: \"url(#a)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-0.106 0.011)\",\n clipPath: \"url(#b)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63,89.128V78.951L67.834,77l1.536.631,3.213,1.32L74.932,78l2.486-1V87.177l-4.834,1.951-4.749-1.951Z\",\n transform: \"translate(-62.21 -76.207)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n})))), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2424.044,3965.242h1.549l1.615,1.142.826,2-.49,1.872-1.951,2.17-.995,1.2-.554-.406-2.1-2.533-.9-1.152,2.145-.35.847.7h1.353l.445-1.032-.25-1.17-.995-.926h-.554Z\",\n transform: \"translate(-2141.093 -3574.002)\",\n fill: \"#a1145c\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2424.542,3965v2h-1.2l-.2.932v1.289l-.541.625h-1.228l-.408-.625v-1.289l.408-1.249.789-.7.8-.65.633-.327Z\",\n transform: \"translate(-2141.092 -3574)\",\n fill: \"#a1145c\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2410.45,3971.916v1.673l.67.36.231.763-.74.545h-.719l-.98.32-.305.4,1.843,1.938,1.13-1.54.933-1.435v-.887l-.412-1.183-.628-.6Z\",\n transform: \"translate(-2141.005 -3574.049)\",\n fill: \"#a1145c\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2409.966,3975.329l-1.288.357-.534-.5-.2-1.426.737-.94.78-.6.893-.172.661.172-.156,1-.889.234-.4.524-.106.59Z\",\n transform: \"translate(-2141 -3574.05)\",\n fill: \"#a1145c\"\n})), /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n transform: \"translate(265 388)\",\n fill: \"none\"\n}));\n\nvar SvgMap = function SvgMap(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgMap, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/map.c84ee0fe.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"a\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M241.453,692.815l1.649,2.41,1.527,5.357,7.664,1.271-1.966,3.523-5.342,1.992-4.993-2.4-2.419-4.385.936-4.717Z\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-349 -685)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1.222,\n cy: 1.222,\n r: 1.222,\n transform: \"translate(358 687.6)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(114 1)\",\n clipPath: \"url(#a)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(239 693)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 6.5,\n cy: 6.5,\n r: 6.5,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 6.5,\n cy: 6.5,\n r: 6,\n fill: \"none\"\n}))), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M250.984,701.925l.159-.415\",\n transform: \"translate(114 1)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M243.752,690.987a1.617,1.617,0,0,1,1.472-.78c1.134-.042,1.454.485,1.454.485l.215,1.8h3.1a.846.846,0,0,1,.633.895.813.813,0,0,1-.633.872h-3.1l.13,1.4h4.526l3.331,5.763s.041.46-.633.849a.928.928,0,0,1-1.1,0l-2.52-4.386H245.45a1.657,1.657,0,0,1-.913-.375,2.065,2.065,0,0,1-.454-.957Z\",\n transform: \"translate(114 1)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M242.212,694.475l.264-.155\",\n transform: \"translate(114 1)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}));\n\nvar SvgAccessible = function SvgAccessible(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgAccessible, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/accessible.57473ef4.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-261 -683)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(263 685)\",\n fill: \"#fff\",\n stroke: \"#37011f\",\n strokeWidth: 1\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 20,\n height: 20,\n rx: 3,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.5,\n y: 0.5,\n width: 19,\n height: 19,\n rx: 2.5,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(3 -30.7)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1.222,\n cy: 1.222,\n r: 1.222,\n transform: \"translate(265.313 717.7)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M797.254,331.56H797.2v9.695a.778.778,0,0,1-.765.577.917.917,0,0,1-.858-.577v-5.747h0v5.747a.72.72,0,0,1-.782.577.641.641,0,0,1-.723-.577V331.56h0v3.581a.984.984,0,0,1-.818.414.747.747,0,0,1-.707-.414v-4.694a1.021,1.021,0,0,1,.284-.653,1.315,1.315,0,0,1,.749-.264s.93-.1,2-.1,2.161.1,2.161.1a1.253,1.253,0,0,1,.68.264.98.98,0,0,1,.3.653v4.694a.816.816,0,0,1-.674.414,1.027,1.027,0,0,1-.787-.414Z\",\n transform: \"translate(-529.216 391.88)\",\n fill: \"#fff\",\n stroke: \"#37001f\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 1)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(274 688)\",\n fill: \"none\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.5,0,7,5H0Z\",\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 3.5 1.743788480758667 L 1.920651912689209 4 L 5.079348087310791 4 L 3.5 1.743788480758667 M 3.5 0 L 7 5 L 0 5 L 3.5 0 Z\",\n stroke: \"none\",\n fill: \"#37011f\"\n})), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(281 700) rotate(180)\",\n fill: \"none\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.5,0,7,5H0Z\",\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 3.5 1.743788480758667 L 1.920651912689209 4 L 5.079348087310791 4 L 3.5 1.743788480758667 M 3.5 0 L 7 5 L 0 5 L 3.5 0 Z\",\n stroke: \"none\",\n fill: \"#37011f\"\n}))));\n\nvar SvgElevator = function SvgElevator(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgElevator, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/elevator.55d7d12e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-324.106 -683)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M299.745,703.295h-3.922a2.332,2.332,0,0,1-1.718-2.47,2.357,2.357,0,0,1,1.718-2.47h2.447l9.872-9.689h4.18s1.729-.006,1.782,2.322a2.384,2.384,0,0,1-1.782,2.649h-2.2Z\",\n transform: \"translate(32 0.06)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1.542,\n cy: 1.542,\n r: 1.542,\n transform: \"translate(332.3 687)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M299.9,696.253v-4.426s.125-1.048,1.673-1.045,1.681,1.045,1.681,1.045v.994\",\n transform: \"translate(32.162 0.419)\",\n fill: \"none\",\n stroke: \"#37011f\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}));\n\nvar SvgEscalator = function SvgEscalator(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgEscalator, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/escalator.25c775c1.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useRef } from 'react';\n// @ts-ignore\nimport bwipjs from 'bwip-js';\n\ninterface Props {\n text: string;\n scale?: number;\n className?: string;\n}\n\nexport default function AztecCode({ text, scale, className }: Props) {\n const aztecRef = useRef(null);\n useEffect(() => {\n bwipjs.toCanvas(aztecRef.current, {\n bcid: 'azteccode',\n text,\n scale: scale || 4,\n });\n }, [text, scale]);\n return (\n \n );\n}\n","import React, { useRef } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useDrag, useDrop, DropTargetMonitor } from 'react-dnd';\nimport { XYCoord } from 'dnd-core';\nimport { Typography } from '@material-ui/core';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport { ICard, IAvailableCard } from './Card';\nimport AztecCode from '../common/AztecCode';\n\ninterface Props {\n card: ICard | IAvailableCard;\n onClick: () => void;\n labels?: boolean;\n moveCard: (dragIndex: number, hoverIndex: number) => void;\n index: number;\n}\n\nconst useStyles = makeStyles({\n card: {\n width: 328,\n height: 211,\n borderRadius: 18,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n display: 'flex',\n alignItems: 'flex-start',\n cursor: 'pointer',\n position: 'relative',\n userSelect: 'none',\n margin: '-170px auto 0',\n '&:first-child': {\n marginTop: 0,\n },\n },\n cardLabel: {\n marginLeft: 'auto',\n padding: '2px 16px',\n color: 'white',\n borderRadius: 18,\n },\n expired: {\n backgroundColor: '#C41515',\n },\n get: {\n backgroundColor: '#188D15',\n },\n cardTextRow: {\n position: 'absolute',\n top: 147,\n left: 0,\n width: '100%',\n display: 'flex',\n justifyContent: 'space-between',\n padding: '0 8px',\n },\n cardText: {\n fontSize: 11,\n fontWeight: 700,\n },\n cardAztec: {\n position: 'absolute',\n top: 65,\n left: 243,\n },\n});\n\nconst splitCardNumber = (id: string) => id.match(/.{4}/g)?.join(' ');\n\ninterface DragItem {\n index: number;\n id: string;\n type: string;\n}\n\nexport default function DraggableCard(props: Props) {\n const { t } = useTranslation();\n const classes = useStyles();\n const {\n card, onClick, labels, moveCard, index,\n } = props;\n const ref = useRef(null);\n const id = 'id' in card ? card.id : card.packageName;\n const [, drop] = useDrop({\n accept: 'card',\n hover(item: DragItem, monitor: DropTargetMonitor) {\n if (!ref.current) {\n return;\n }\n const dragIndex = item.index;\n const hoverIndex = index;\n\n // Don't replace items with themselves\n if (dragIndex === hoverIndex) {\n return;\n }\n\n // Determine rectangle on screen\n const hoverBoundingRect = ref.current?.getBoundingClientRect();\n\n // Get vertical middle\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n\n // Determine mouse position\n const clientOffset = monitor.getClientOffset();\n\n // Get pixels to the top\n const hoverClientY = (clientOffset as XYCoord).y - hoverBoundingRect.top;\n\n // Only perform the move when the mouse has crossed half of the items height\n // When dragging downwards, only move when the cursor is below 50%\n // When dragging upwards, only move when the cursor is above 50%\n\n // Dragging downwards\n if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY - 85) {\n return;\n }\n\n // Dragging upwards\n if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {\n return;\n }\n\n // Time to actually perform the action\n moveCard(dragIndex, hoverIndex);\n\n // Note: we're mutating the monitor item here!\n // Generally it's better to avoid mutations,\n // but it's good here for the sake of performance\n // to avoid expensive index searches.\n // eslint-disable-next-line no-param-reassign\n item.index = hoverIndex;\n },\n });\n\n const [{ isDragging }, drag] = useDrag({\n item: { type: 'card', id, index },\n collect: (monitor: any) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n\n const opacity = isDragging ? 0 : 1;\n drag(drop(ref));\n return (\n \n {labels && 'packages' in card && card.packages[0].expired && (\n \n {t('touristCard.expired')}\n \n )}\n {labels && !('id' in card) && (\n \n {t('touristCard.get')}\n \n )}\n {'id' in card && (\n <>\n
\n \n {card.holder}\n \n \n {splitCardNumber(card.id)}\n \n
\n \n \n )}\n
\n );\n}\n","import React, {\n useContext, useEffect, useRef, useState, Fragment,\n} from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Button, Dialog, IconButton, InputAdornment, TextField, Typography, useMediaQuery, Tabs, Tab,\n} from '@material-ui/core';\nimport {\n Map, Marker, Polyline, ScaleControl, TileLayer, Tooltip,\n} from 'react-leaflet';\nimport leaflet from 'leaflet';\nimport { useHistory } from 'react-router-dom';\nimport * as R from 'ramda';\nimport { Base64 } from 'js-base64';\nimport classNames from 'classnames';\nimport moment from 'moment';\nimport Nav from './Nav';\nimport { axios, useGetLink } from '../utils';\nimport { ReactComponent as CardIcon } from '../assets/card.svg';\nimport { ReactComponent as ChevronBig } from '../assets/chevron-big.svg';\nimport { ReactComponent as Delete } from '../assets/delete.svg';\nimport AppContext from '../context';\nimport Footer from './Footer';\nimport markerPrimary from '../assets/marker-primary.svg';\nimport markerDark from '../assets/marker.svg';\nimport { ReactComponent as Search } from '../assets/search.svg';\nimport { ReactComponent as BackArrow } from '../assets/back-arrow.svg';\nimport { ReactComponent as Star } from '../assets/star.svg';\nimport { ReactComponent as MarkerOutlined } from '../assets/marker-outlined.svg';\nimport { ReactComponent as Phone } from '../assets/phone.svg';\nimport { ReactComponent as Website } from '../assets/website.svg';\nimport { ReactComponent as Download } from '../assets/download.svg';\nimport { ReactComponent as MapIcon } from '../assets/map.svg';\nimport { ReactComponent as Accessible } from '../assets/accessible.svg';\nimport { ReactComponent as Elevator } from '../assets/elevator.svg';\nimport { ReactComponent as Escalator } from '../assets/escalator.svg';\nimport AztecCode from '../common/AztecCode';\nimport DraggableCard from './DraggableCard';\n\ninterface IPeriod {\n from: string;\n to: string;\n}\n\ninterface IPath {\n name: string;\n start: string;\n end: string;\n points: {\n lat: number;\n lon: number;\n }[];\n}\n\ninterface IAttraction {\n site: {\n name: string;\n description: string;\n };\n name: string;\n description: string;\n accessible: boolean;\n elevator: boolean;\n escalator: boolean;\n address: string;\n website: string;\n phone: string;\n image: string | null;\n discount: {\n type: 'FREE_ENTRY' | 'PERCENTAGE' | 'PLN';\n entries: number;\n savings: number;\n price: number;\n };\n rating: {\n stars: number | null;\n ratings: number;\n };\n openingHours: {\n hours: IPeriod[];\n days: string[];\n periods: IPeriod[];\n excluded: string[];\n remarks: string;\n }[];\n openSoon: IPeriod[];\n resources: {\n name: string;\n file: string;\n }[];\n paths: IPath[];\n locations: {\n lat: number;\n lon: number;\n name: string;\n }[];\n}\n\nexport interface ICard {\n id: string;\n holder: string;\n image: string | null;\n packages: {\n name: string;\n price: number | null;\n expired: boolean;\n validFrom: string;\n validTill: string;\n attractions: IAttraction[];\n }[];\n}\n\nexport interface IAvailableCard {\n packageName: string;\n price: number | null;\n image: string | null;\n website: string;\n attractions: IAttraction[];\n}\n\nconst useStyles = makeStyles({\n root: {\n minHeight: '100vh',\n backgroundColor: 'white',\n display: 'flex',\n flexDirection: 'column',\n },\n main: {\n flexGrow: 1,\n minHeight: 400,\n display: 'flex',\n height: 'calc(100vh - 43px)',\n '@media (max-width: 800px)': {\n height: 'initial',\n },\n },\n left: {\n width: 424,\n display: 'flex',\n flexDirection: 'column',\n overflowY: 'auto',\n '@media (max-width: 800px)': {\n width: '100%',\n },\n },\n map: {\n flexGrow: 1,\n '@media (max-width: 800px)': {\n height: 200,\n },\n },\n addCard: {\n padding: '40px 64px',\n },\n headerContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: 16,\n },\n header: {\n fontSize: 26,\n fontWeight: 400,\n display: 'flex',\n alignItems: 'center',\n color: '#37001F',\n },\n icon: {\n marginRight: 4,\n },\n text: {\n marginBottom: 16,\n color: '#37001F',\n },\n name: {\n fontWeight: 400,\n },\n textField: {\n marginBottom: 24,\n },\n buttons: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n bottom: {\n flexGrow: 1,\n backgroundColor: '#A1145C',\n display: 'flex',\n flexDirection: 'column',\n },\n cardInfo: {\n padding: '24px 32px',\n },\n deleteCard: {\n marginLeft: -12,\n },\n chevron: {\n transform: 'rotate(90deg)',\n transition: '0.4s',\n width: 19,\n height: 19,\n },\n chevronFlipped: {\n transform: 'rotate(-90deg)',\n transition: '0.4s',\n width: 19,\n height: 19,\n },\n dialog: {\n padding: 24,\n },\n dialogText: {\n color: '#37001F',\n marginBottom: 16,\n },\n dialogButtons: {\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: -8,\n },\n benefits: {\n margin: 16,\n },\n benefit: {\n width: '100%',\n height: 80,\n marginBottom: 8,\n display: 'flex',\n backgroundColor: 'white',\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.29)',\n transition: '0.4s',\n zIndex: 1,\n },\n benefitActive: {\n transform: 'translateX(10px)',\n },\n imagePreview: {\n width: 105,\n height: '100%',\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n flexShrink: 0,\n },\n benefitRight: {\n flexGrow: 1,\n display: 'flex',\n justifyContent: 'space-between',\n padding: '8px 16px',\n width: 'calc(100% - 105px)',\n },\n benefitTextContainer: {\n width: 'calc(100% - 60px)',\n },\n benefitText: {\n fontSize: 14,\n color: '#37001F',\n marginRight: 8,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n },\n benefitButtons: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n },\n goButton: {\n minWidth: 0,\n padding: '2px 18px',\n },\n detailsButton: {\n marginTop: 'auto',\n marginRight: -8,\n padding: 4,\n width: 27,\n },\n expandedBenefit: {\n width: 424,\n display: 'flex',\n flexDirection: 'column',\n overflowY: 'auto',\n position: 'relative',\n },\n benefitImage: {\n width: '100%',\n height: 250,\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n flexShrink: 0,\n },\n closeButton: {\n position: 'absolute',\n top: 0,\n right: 0,\n margin: 8,\n },\n expandedDetails: {\n margin: 24,\n },\n nameContainer: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: 16,\n },\n expandedName: {\n fontSize: 20,\n fontWeight: 400,\n color: '#37001F',\n marginRight: 16,\n },\n address: {\n fontWeight: 400,\n marginBottom: 16,\n color: '#37001F',\n },\n expandable: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: 'fit-content',\n marginBottom: 8,\n },\n subheader: {\n fontWeight: 400,\n color: '#37001F',\n },\n description: {\n marginTop: 16,\n '& p': {\n margin: 0,\n },\n },\n search: {\n width: '100%',\n marginBottom: 16,\n marginTop: 8,\n '& > div': {\n background: 'white',\n },\n '& fieldset': {\n border: 'none',\n },\n '& legend': {\n display: 'none',\n },\n },\n cardsBottom: {\n padding: '16px 48px',\n '@media (max-width: 800px)': {\n padding: '16px',\n },\n },\n cardDetails: {\n width: 424,\n overflowY: 'auto',\n padding: '16px 36px',\n },\n backButton: {\n margin: 8,\n alignSelf: 'flex-start',\n },\n bottomCard: {\n margin: '24px auto 8px',\n },\n detailsAztec: {\n display: 'block',\n margin: '0 auto',\n },\n detailsClose: {\n marginTop: 40,\n marginLeft: 'auto',\n display: 'block',\n },\n backContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n paddingRight: 16,\n },\n expandedAttractionName: {\n fontSize: 17,\n color: '#37001F',\n },\n expandedEntries: {\n fontSize: 14,\n fontWeight: 400,\n color: '#37001F',\n marginBottom: 8,\n },\n youSaveFree: {\n fontSize: 12,\n fontWeight: 300,\n marginLeft: 16,\n },\n youSave: {\n marginLeft: 16,\n },\n expandedText: {\n fontSize: 14,\n color: '#37001F',\n fontWeight: 300,\n '& > p': {\n margin: 0,\n },\n },\n rating: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 8,\n },\n stars: {\n margin: '-3px 8px 0',\n display: 'flex',\n },\n star: {\n margin: '0 2px',\n },\n openNow: {\n color: '#188D15',\n },\n closedNow: {\n color: 'red',\n },\n hours: {\n margin: '10px 0',\n },\n hoursElement: {\n marginBottom: 10,\n },\n period: {\n fontSize: 16,\n fontWeight: 400,\n color: '#37001F',\n marginBottom: 4,\n },\n hoursHours: {\n marginLeft: 16,\n },\n expandButton: {\n marginLeft: 8,\n },\n resourcesRow: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 4,\n },\n resourcesIcon: {\n marginRight: 12,\n },\n resource: {\n margin: '16px 0',\n fontWeight: 400,\n color: '#A1145C',\n textDecoration: 'none',\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n },\n resourceIcon: {\n marginLeft: 12,\n marginTop: -2,\n },\n starGray: {\n filter: 'grayscale(1)',\n },\n tooltip: {\n boxShadow: 'none',\n },\n tooltipText: {\n fontSize: 18,\n padding: '0 4px',\n },\n closedContainer: {\n display: 'flex',\n flexWrap: 'wrap',\n },\n closedElement: {\n fontSize: 14,\n color: '#37001F',\n width: '50%',\n },\n accessibility: {\n display: 'flex',\n marginBottom: 10,\n },\n accessibilityIcon: {\n marginRight: 8,\n },\n searchLabel: {\n color: 'white !important',\n top: -8,\n fontWeight: 300,\n },\n tabs: {\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.16)',\n },\n tabIndicator: {\n backgroundColor: 'white',\n height: 4,\n },\n tab: {\n fontSize: 16,\n fontWeight: 300,\n color: 'white',\n textTransform: 'none',\n },\n});\n\nconst splitCardNumber = (id: string) => id.match(/.{4}/g)?.join(' ');\n\nexport default function Card() {\n const classes = useStyles();\n const { t, i18n } = useTranslation();\n const { showSnackbar, name } = useContext(AppContext);\n const getLink = useGetLink();\n const isMobile = useMediaQuery('(max-width: 800px)');\n const history = useHistory();\n const mapRef = useRef();\n const [mapViewport, setMapViewport] = useState<{\n center: [number, number],\n zoom: number,\n } | null>(null);\n const [ready, setReady] = useState(false);\n const [cards, setCards] = useState([]);\n const [availableCards, setAvailableCards] = useState([]);\n const [nearestCards, setNearestCards] = useState([]);\n const [cardList, setCardList] = useState<(ICard | IAvailableCard)[]>([]);\n const [openCard, setOpenCard] = useState(null);\n const [openPackageIndex, setOpenPackageIndex] = useState(0);\n const openAttractions = (() => {\n if (openCard) {\n if ('packages' in openCard) {\n return openCard.packages[openPackageIndex].attractions;\n }\n return openCard.attractions;\n }\n return null;\n })();\n const [code, setCode] = useState('');\n const [deleteDialog, setDeleteDialog] = useState(false);\n const [expandedBenefitId, setExpandedBenefitId] = useState(null);\n const [hoursExpanded, setHoursExpanded] = useState(false);\n const [resourcesExpanded, setResourcesExpanded] = useState(false);\n const [addCard, setAddCard] = useState(false);\n const [search, setSearch] = useState('');\n const [cardDetailsOpen, setCardDetailsOpen] = useState(false);\n const [selectedPath, setSelectedPath] = useState(null);\n const expandedBenefit = (openAttractions && expandedBenefitId !== null)\n ? openAttractions[expandedBenefitId]\n : null;\n useEffect(() => {\n (async () => {\n const { data } = await axios.get(\n '/user/cards/v2',\n { params: { lang: i18n.language } },\n );\n setCards(data);\n setReady(true);\n })();\n }, [i18n.language]);\n useEffect(() => {\n navigator.geolocation.getCurrentPosition(async ({ coords }) => {\n const { data } = await axios.get(\n '/user/card/nearest',\n { params: { lang: i18n.language, lat: coords.latitude, lon: coords.longitude } },\n );\n setNearestCards(data);\n });\n }, [i18n.language]);\n useEffect(() => {\n if (availableCards.length > 0) {\n setCardList(availableCards);\n } else {\n setCardList([...nearestCards, ...cards]);\n }\n }, [availableCards, nearestCards, cards]);\n useEffect(() => {\n if (mapRef.current) {\n if (openAttractions && openAttractions.length > 1) {\n mapRef.current.leafletElement.fitBounds(\n new leaflet.LatLngBounds(openAttractions.map(\n ({ locations: [{ lat, lon }] }) => [lat, lon],\n )),\n {\n padding: [32, 32],\n },\n );\n } else {\n mapRef.current.leafletElement.fitBounds(\n new leaflet.LatLngBounds([\n [56.464660, 14.408800],\n [53.570577, 19.443904],\n ]),\n );\n }\n }\n }, [ready, openAttractions]);\n useEffect(() => {\n if (mapRef.current) {\n mapRef.current.leafletElement.invalidateSize();\n }\n if (expandedBenefit) {\n setMapViewport({\n center: [expandedBenefit.locations[0].lat, expandedBenefit.locations[0].lon],\n zoom: 15,\n });\n }\n }, [expandedBenefit, cardDetailsOpen]);\n useEffect(() => {\n if (mapRef.current && selectedPath && selectedPath.points.length > 1) {\n mapRef.current.leafletElement.fitBounds(\n new leaflet.LatLngBounds(selectedPath.points.map(({ lat, lon }) => [lat, lon])),\n {\n padding: [32, 32],\n },\n );\n }\n }, [selectedPath]);\n const goToPlace = (benefit: IAttraction) => () => {\n const searchData = {\n from: {\n type: 'your-location',\n },\n to: {\n ...benefit.locations[0],\n name: benefit.name,\n type: 'search-result',\n },\n };\n history.push(getLink(\n `/trip-planning/${Base64.encodeURI(JSON.stringify(searchData))}`,\n ));\n };\n if (!ready) return null;\n return (\n
\n
\n setDeleteDialog(false)}\n >\n \n {t('touristCard.deleteConfirm')}\n \n
\n setDeleteDialog(false)}\n >\n {t('touristCard.cancel')}\n \n {\n if (!openCard || !('id' in openCard)) return;\n await axios.delete(`/user/card?id=${openCard.id}`);\n setOpenCard(null);\n setCards(cards.filter((x) => x.id !== openCard.id));\n setDeleteDialog(false);\n setExpandedBenefitId(null);\n }}\n >\n {t('touristCard.delete')}\n \n
\n \n
\n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { Button, Typography } from '@material-ui/core';\nimport { Link } from 'react-router-dom';\nimport { useGetLink } from './utils';\n\ninterface Props {\n onAccept: () => void;\n}\n\nconst useStyles = makeStyles({\n root: {\n position: 'fixed',\n bottom: 0,\n left: 0,\n zIndex: 1200,\n width: '100%',\n backgroundColor: 'rgba(0, 0, 0, 0.88)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 16,\n '@media (max-width: 800px)': {\n flexWrap: 'wrap',\n },\n },\n text: {\n color: 'white',\n },\n link: {\n color: 'white',\n },\n button: {\n flexShrink: 0,\n marginLeft: 40,\n '@media (max-width: 800px)': {\n marginLeft: 'auto',\n marginTop: 8,\n },\n },\n});\n\nexport default function CookieDisclaimer({ onAccept }: Props) {\n const classes = useStyles();\n const { t } = useTranslation();\n const getLink = useGetLink();\n return (\n
\n \n ]}\n />\n \n \n {t('common.accept')}\n \n
\n );\n}\n","import React, {\n useContext, useEffect, useState, useCallback,\n} from 'react';\nimport {\n Button, IconButton, InputAdornment, makeStyles, MenuItem, TextField, Typography,\n} from '@material-ui/core';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames';\nimport * as R from 'ramda';\nimport { createFilterOptions, FilterOptionsState } from '@material-ui/lab';\nimport AppContext, { CardContext } from '../context';\nimport CustomAutocomplete from '../common/CustomAutocomplete';\nimport {\n ICardRole, ICardUser, IOrganization, IRolesSite, NameOrId,\n} from '../interfaces';\nimport { axios } from '../utils';\nimport { ReactComponent as ChevronWhite } from '../assets/chevron-white.svg';\nimport { ReactComponent as ChevronPrimary } from '../assets/chevron-primary.svg';\nimport { ReactComponent as ChevronBig } from '../assets/chevron-big.svg';\nimport { ReactComponent as Search } from '../assets/search.svg';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n width: '100%',\n },\n header: {\n fontSize: 24,\n fontWeight: 700,\n color: '#37001F',\n marginBottom: 24,\n },\n search: {\n width: 600,\n backgroundColor: 'white',\n },\n content: {\n backgroundColor: '#F5F5F5',\n padding: 16,\n margin: '16px -16px',\n },\n table: {\n borderCollapse: 'collapse',\n backgroundColor: 'white',\n width: '100%',\n },\n cell: {\n fontSize: 16,\n fontWeight: 300,\n color: '#37001F',\n padding: '16px 20px',\n border: '1px solid #37001F',\n textAlign: 'left',\n position: 'relative',\n '&:nth-child(1)': {\n width: 60,\n },\n '&:nth-child(4)': {\n width: 250,\n },\n '&:nth-child(5)': {\n width: 400,\n },\n },\n headerCell: {\n fontWeight: 400,\n },\n numberCell: {\n textAlign: 'right',\n },\n iconCell: {\n textAlign: 'center',\n },\n roleSelect: {\n width: '100%',\n },\n agencySelect: {\n width: '100%',\n },\n nextPageButton: {\n minWidth: 20,\n width: 20,\n height: 20,\n borderRadius: '50%',\n padding: 0,\n position: 'absolute',\n bottom: 0,\n right: 0,\n transform: 'translate(50%, 50%)',\n zIndex: 2,\n '&$pageButtonDisabled': {\n backgroundColor: '#b9b9b9',\n },\n },\n pageButtonDisabled: {},\n chevronFlipped: {\n transform: 'rotate(180deg)',\n },\n legend: {\n marginTop: 32,\n },\n legendElement: {\n display: 'flex',\n marginBottom: 4,\n },\n legendTerm: {\n width: 200,\n flexShrink: 0,\n fontWeight: 400,\n fontSize: 14,\n color: '#37001F',\n },\n legendDescription: {\n fontSize: 14,\n color: '#37001F',\n },\n saveContainer: {\n display: 'flex',\n margin: '8px 0 24px',\n },\n discardButton: {\n marginLeft: 'auto',\n marginRight: 16,\n },\n sortButton: {\n width: 28,\n height: 28,\n padding: 4,\n margin: '-4px -6px -4px 4px',\n },\n addUser: {\n display: 'flex',\n marginBottom: 24,\n },\n addUserEmail: {\n width: 300,\n marginRight: 16,\n },\n addUserName: {\n width: 300,\n marginRight: 16,\n },\n addUserRole: {\n width: 235,\n marginRight: 16,\n },\n addUserAgency: {\n width: 300,\n marginRight: 16,\n },\n smallIcon: {\n width: 16,\n height: 16,\n marginLeft: 8,\n },\n addUserOption: {\n display: 'flex',\n alignItems: 'center',\n },\n selectBorder: {\n border: 'none',\n },\n selectCell: {\n padding: '0 8px',\n },\n selectError: {\n border: '1px solid #f44336',\n margin: -1,\n padding: '1px 0',\n zIndex: 1,\n width: 'calc(100% + 2px)',\n },\n selectIconContainer: {\n display: 'flex',\n alignItems: 'center',\n padding: '4px 8px',\n },\n selectIcon: {\n transform: 'rotate(90deg)',\n },\n selectInput: {\n fontWeight: 300,\n color: 'inherit',\n },\n});\n\nconst filter = createFilterOptions();\nconst filterOptions = (options: NameOrId[], params: FilterOptionsState) => {\n const filtered = filter(options, params);\n if (params.inputValue !== '') {\n return [\n ...filtered,\n {\n name: params.inputValue,\n },\n ];\n }\n return filtered;\n};\n\nexport default function Roles() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { showSnackbar } = useContext(AppContext);\n const { user: loggedInUser } = useContext(CardContext);\n const [users, setUsers] = useState(null);\n const [originalUsers, setOriginalUsers] = useState(null);\n const [organizations, setOrganizations] = useState([]);\n const [sites, setSites] = useState([]);\n const getData = useCallback(async () => {\n const [\n { data },\n { data: organizationsData },\n { data: sitesData },\n ] = await Promise.all<{ data: any }>([\n axios.get('/card/users'),\n (loggedInUser.cardRole === 'CARDS_ADMIN' ? axios.get('/card/organizations') : { data: [] }),\n (loggedInUser.cardRole === 'CARD_OFFERS_MANAGER' ? axios.get('/card/sites') : { data: [] }),\n ]);\n const newUsers = data.map((user: any) => ({\n ...user,\n organization: user.organization ? { id: user.organization } : null,\n site: user.site ? { id: user.site } : null,\n }));\n setOrganizations(organizationsData);\n setSites(sitesData);\n setUsers(newUsers);\n setOriginalUsers(newUsers);\n }, [loggedInUser.cardRole]);\n useEffect(() => {\n getData();\n }, [getData]);\n const [page, setPage] = useState(0);\n const [search, setSearch] = useState('');\n const [saveLoading, setSaveLoading] = useState(false);\n const [sortColumn, setSortColumn] = useState('name');\n const [sortDescending, setSortDescending] = useState(false);\n const [addUserEmail, setAddUserEmail] = useState('');\n const [addUserName, setAddUserName] = useState('');\n const [addUserRole, setAddUserRole] = useState('');\n const [addUserOrganization, setAddUserOrganization] = useState(null);\n const [addUserSite, setAddUserSite] = useState(null);\n const [agencyErrors, setAgencyErrors] = useState>({});\n if (!users || !originalUsers) return null;\n const getRoleText = (role: ICardRole) => {\n switch (role) {\n case 'CARD_OFFERS_MANAGER':\n return t('card.offersManager');\n case 'SITE_MANAGER':\n return t('card.siteManager');\n case 'CARD_SELLER':\n return t('card.cardSeller');\n case 'CARD_INSPECTOR':\n return t('card.cardInspector');\n default:\n return '';\n }\n };\n const searchLower = search.toLowerCase();\n const getOrganizationName = (organization?: NameOrId | null) => {\n if (organization) {\n return 'id' in organization\n ? organizations.find(R.whereEq({ id: organization.id }))?.name || ''\n : organization.name;\n }\n return '';\n };\n const getSiteName = (site?: NameOrId | null) => {\n if (site) {\n return 'id' in site\n ? sites.find(R.whereEq({ id: site.id }))?.name || ''\n : site.name;\n }\n return '';\n };\n const renderOption = (getOptionLabel: (option: NameOrId) => string) => (option: NameOrId) => {\n if ('id' in option) {\n return getOptionLabel(option);\n }\n return t('card.addOption', { option: option.name });\n };\n const filteredUsers = R.sort(\n (sortDescending ? R.ascend : R.descend)(R.compose(R.defaultTo(''), (user: ICardUser) => {\n switch (sortColumn) {\n case 'role':\n return getRoleText(user.role);\n case 'organization':\n return getOrganizationName(user.organization);\n case 'site':\n return getSiteName(user.site);\n default:\n return user[sortColumn];\n }\n })),\n users.filter((user) => (\n user.name.toLowerCase().includes(searchLower)\n || user.email.toLowerCase().includes(searchLower)\n || getRoleText(user.role).toLowerCase().includes(searchLower)\n || getOrganizationName(user.organization)?.toLowerCase().includes(searchLower)\n || getSiteName(user.site)?.toLowerCase().includes(searchLower)\n )),\n );\n const pageSize = 10;\n const renderSortButton = (column: keyof ICardUser) => (\n {\n if (sortColumn === column) {\n setSortDescending(R.not);\n } else {\n setSortColumn(column);\n setSortDescending(false);\n }\n }}\n >\n \n \n );\n const roleOptions = [\n (loggedInUser.cardRole === 'CARDS_ADMIN' || loggedInUser.cardRole === 'CARD_OFFERS_MANAGER') ? (\n \n {t('card.offersManager')}\n \n ) : null,\n (loggedInUser.cardRole === 'CARD_OFFERS_MANAGER' || loggedInUser.cardRole === 'SITE_MANAGER') ? (\n \n {t('card.siteManager')}\n \n ) : null,\n loggedInUser.cardRole === 'CARD_OFFERS_MANAGER' ? (\n \n {t('card.cardSeller')}\n \n ) : null,\n loggedInUser.cardRole === 'SITE_MANAGER' ? (\n \n {t('card.cardInspector')}\n \n ) : null,\n \n {t('roles.none')}\n ,\n ];\n const getChangedUsers = (currentUsers: ICardUser[]) => currentUsers.map((user) => ({\n ...user,\n role: user.role || null,\n })).filter((user) => (\n !R.equals(originalUsers.find(R.whereEq({ email: user.email })), user)\n ));\n const saveUsers = async (currentUsers: ICardUser[]) => {\n const changedUsers = getChangedUsers(currentUsers);\n let valid = true;\n changedUsers.forEach((user) => {\n if ((loggedInUser.cardRole === 'CARDS_ADMIN' && user.role && user.organization === null)\n || ((loggedInUser.cardRole === 'CARD_OFFERS_MANAGER' && user.role === 'SITE_MANAGER') && user.site === null)) {\n setAgencyErrors(R.set(R.lensProp(user.email), true));\n valid = false;\n }\n });\n if (!valid) return;\n setSaveLoading(true);\n try {\n await axios.post('/card/users', changedUsers);\n await getData();\n showSnackbar(t('roles.success'));\n } catch {\n showSnackbar(t('roles.failure'));\n }\n setSaveLoading(false);\n };\n const prevPageButton = (\n setPage((x) => x - 1)}\n disabled={page === 0}\n classes={{\n contained: classes.nextPageButton,\n disabled: classes.pageButtonDisabled,\n }}\n >\n \n \n );\n const nextPageButton = (\n setPage(R.add(1))}\n disabled={(page + 1) * pageSize >= filteredUsers.length}\n classes={{\n contained: classes.nextPageButton,\n disabled: classes.pageButtonDisabled,\n }}\n >\n \n \n );\n return (\n
\n \n {t('roles.assignRoles')}\n \n
\n setAddUserName(target.value)}\n className={classes.addUserName}\n variant=\"outlined\"\n size=\"small\"\n label={t('roles.addName')}\n id=\"add-name\"\n />\n setAddUserEmail(target.value)}\n className={classes.addUserEmail}\n variant=\"outlined\"\n size=\"small\"\n label={t('roles.addEmail')}\n id=\"add-email\"\n />\n {\n setAddUserRole(value as ICardRole);\n if (value === 'CARD_OFFERS_MANAGER' || value === 'CARD_SELLER') {\n setAddUserSite(null);\n }\n }}\n className={classes.addUserRole}\n variant=\"outlined\"\n size=\"small\"\n label={t('roles.addRole')}\n id=\"add-role\"\n >\n {roleOptions}\n \n {loggedInUser.cardRole === 'CARDS_ADMIN' && (\n {\n setAddUserOrganization(typeof value === 'string' ? { name: value } : value);\n }}\n className={classes.addUserAgency}\n label={t('card.addOrganization')}\n getOptionLabel={getOrganizationName}\n renderOption={renderOption(getOrganizationName)}\n filterOptions={filterOptions}\n freeSolo\n forcePopupIcon\n />\n )}\n {(loggedInUser.cardRole === 'CARD_OFFERS_MANAGER') && (\n {\n setAddUserSite(typeof value === 'string' ? { name: value } : value);\n }}\n className={classes.addUserAgency}\n label={t('card.addSite')}\n getOptionLabel={getSiteName}\n renderOption={renderOption(getSiteName)}\n filterOptions={filterOptions}\n disabled={addUserRole !== 'SITE_MANAGER'}\n freeSolo\n forcePopupIcon\n />\n )}\n {\n if (addUserEmail && addUserName && addUserRole) {\n await saveUsers(R.append(\n {\n email: addUserEmail,\n name: addUserName,\n role: addUserRole,\n organization: addUserOrganization,\n site: addUserSite,\n },\n users,\n ));\n setAddUserEmail('');\n setAddUserName('');\n setAddUserRole('');\n setAddUserOrganization(null);\n setAddUserSite(null);\n }\n }}\n >\n {t('roles.add')}\n \n
\n
\n
\n {\n setSearch(target.value);\n setPage(0);\n }}\n label={t('roles.search')}\n className={classes.search}\n variant=\"outlined\"\n size=\"small\"\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n {\n setUsers(originalUsers);\n setAgencyErrors({});\n }}\n disabled={getChangedUsers(users).length === 0}\n >\n {t('roles.discardChanges')}\n \n saveUsers(users)}\n >\n {t('roles.save')}\n \n
\n \n \n \n \n \n \n \n {loggedInUser.cardRole === 'CARDS_ADMIN' && (\n \n )}\n {loggedInUser.cardRole === 'CARD_OFFERS_MANAGER' && (\n \n )}\n \n \n \n {R.slice(page * pageSize, (page + 1) * pageSize, filteredUsers).map((user, i, arr) => (\n \n \n \n \n \n {loggedInUser.cardRole === 'CARDS_ADMIN' && (\n \n )}\n {loggedInUser.cardRole === 'CARD_OFFERS_MANAGER' && (\n \n )}\n \n ))}\n \n
\n {t('roles.no')}\n \n {t('roles.name')}\n {renderSortButton('name')}\n \n {t('roles.email')}\n {renderSortButton('email')}\n \n {t('roles.role')}\n {renderSortButton('role')}\n {loggedInUser.cardRole === 'SITE_MANAGER' && prevPageButton}\n \n {t('roles.organization')}\n {renderSortButton('organization')}\n {prevPageButton}\n \n {t('card.site')}\n {renderSortButton('site')}\n {prevPageButton}\n
\n {filteredUsers.indexOf(user) + 1}\n \n {user.name}\n \n {user.email}\n \n setUsers(\n R.map((x) => (\n x.email === user.email ? {\n ...x,\n role: (value || null) as ICardRole,\n organization: value === '' ? null : x.organization,\n site: (loggedInUser.cardRole === 'CARD_OFFERS_MANAGER' && value !== 'SITE_MANAGER')\n ? null\n : x.site,\n } : x\n ), users),\n )}\n className={classes.roleSelect}\n variant=\"outlined\"\n size=\"small\"\n InputProps={{\n className: classes.selectInput,\n classes: { notchedOutline: classes.selectBorder },\n }}\n SelectProps={{\n // eslint-disable-next-line react/prop-types\n IconComponent: ({ className, ...rest }) => (\n \n \n \n ),\n }}\n >\n {roleOptions}\n \n {loggedInUser.cardRole === 'SITE_MANAGER' && i === arr.length - 1 && nextPageButton}\n \n {\n setUsers(\n R.map((x) => (\n x.email === user.email\n ? { ...x, organization: typeof value === 'string' ? { name: value } : value }\n : x\n ), users),\n );\n setAgencyErrors(R.set(R.lensProp(user.email), false));\n }}\n className={classNames(classes.agencySelect, {\n [classes.selectError]: agencyErrors[user.email],\n })}\n TextFieldProps={{\n InputProps: {\n classes: { notchedOutline: classes.selectBorder },\n },\n }}\n getOptionLabel={getOrganizationName}\n renderOption={renderOption(getOrganizationName)}\n filterOptions={filterOptions}\n freeSolo\n noAdornment\n popupIcon={(\n
\n \n
\n )}\n forcePopupIcon\n disabled={user.role === null}\n />\n {i === arr.length - 1 && nextPageButton}\n
\n {user.role === 'SITE_MANAGER' && (\n {\n setUsers(\n R.map((x) => (\n x.email === user.email\n ? { ...x, site: typeof value === 'string' ? { name: value } : value }\n : x\n ), users),\n );\n setAgencyErrors(R.set(R.lensProp(user.email), false));\n }}\n className={classNames(classes.agencySelect, {\n [classes.selectError]: agencyErrors[user.email],\n })}\n TextFieldProps={{\n InputProps: {\n className: classes.selectInput,\n classes: { notchedOutline: classes.selectBorder },\n },\n }}\n getOptionLabel={getSiteName}\n renderOption={renderOption(getSiteName)}\n filterOptions={filterOptions}\n freeSolo\n noAdornment\n popupIcon={(\n
\n \n
\n )}\n forcePopupIcon\n disabled={user.role === null}\n />\n )}\n {i === arr.length - 1 && nextPageButton}\n
\n
\n {(loggedInUser.cardRole === 'CARDS_ADMIN' || loggedInUser.cardRole === 'CARD_OFFERS_MANAGER') && (\n \n \n {t('card.offersManager')}\n \n \n {t('card.offersManagerDescription')}\n \n \n )}\n {(loggedInUser.cardRole === 'CARD_OFFERS_MANAGER' || loggedInUser.cardRole === 'SITE_MANAGER') && (\n \n \n {t('card.siteManager')}\n \n \n {t('card.siteManagerDescription')}\n \n \n )}\n {loggedInUser.cardRole === 'CARD_OFFERS_MANAGER' && (\n \n \n {t('card.cardSeller')}\n \n \n {t('card.cardSellerDescription')}\n \n \n )}\n {loggedInUser.cardRole === 'SITE_MANAGER' && (\n \n \n {t('card.cardInspector')}\n \n \n {t('card.cardInspectorDescription')}\n \n \n )}\n
\n
\n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-717.787 -365)\"\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 31,\n cy: 31,\n r: 31,\n transform: \"translate(726 365)\",\n fill: \"#f8f8f8\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6067.787,5871.076v51.239h303.229v-106.95l-70.023-64.323-97.352,84.37-39.049-32.925-96.8,68.589\",\n transform: \"translate(-5350 -5386)\",\n fill: \"#f8f8f8\"\n}));\n\nvar SvgImagePlaceholder = function SvgImagePlaceholder(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 303.229,\n height: 171.315,\n viewBox: \"0 0 303.229 171.315\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgImagePlaceholder, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/image-placeholder.92377b8d.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport { FormHelperText, IconButton, Typography } from '@material-ui/core';\nimport classNames from 'classnames';\nimport { useDropzone } from 'react-dropzone';\nimport { ReactComponent as Clear } from '../assets/clear.svg';\nimport { ReactComponent as ImagePlaceholder } from '../assets/image-placeholder.svg';\n\ninterface Props {\n onChange: (file: File | null, imageUrl: string | null) => void;\n imageUrl: string | null;\n}\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginBottom: 24,\n },\n dropzone: {\n width: 320,\n height: 200,\n backgroundColor: 'white',\n border: '1px solid #9E9E9E',\n borderRadius: 4,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n transition: theme.transitions.create('background-color'),\n overflow: 'hidden',\n position: 'relative',\n marginBottom: 8,\n '&:focus': {\n outline: 'none',\n },\n },\n dropzoneActive: {\n backgroundColor: 'rgba(0, 0, 0, 0.03)',\n },\n dragAndDrop: {\n color: '#666666',\n marginBottom: 34,\n zIndex: 10,\n },\n selectFile: {\n color: '#A1145C',\n cursor: 'pointer',\n zIndex: 10,\n },\n imagePreview: {\n maxWidth: '100%',\n maxHeight: '100%',\n },\n removeImage: {\n position: 'absolute',\n top: 0,\n right: 0,\n margin: 4,\n },\n removeIcon: {\n background: 'white',\n borderRadius: '50%',\n },\n placeholder: {\n position: 'absolute',\n left: 0,\n bottom: 0,\n margin: 8,\n },\n}));\n\nexport default function ImageUpload(props: Props) {\n const { onChange, imageUrl } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n const [error, setError] = useState(false);\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop: (files) => {\n const file = files[0];\n if (file.size > 3 * 1024 ** 2) {\n setError(true);\n } else {\n onChange(files[0], URL.createObjectURL(files[0]));\n setError(false);\n }\n },\n });\n useEffect(() => {\n setError(false);\n }, [imageUrl]);\n return (\n
\n \n \n {imageUrl ? (\n <>\n \"\"\n {\n event.stopPropagation();\n URL.revokeObjectURL(imageUrl);\n onChange(null, null);\n }}\n >\n \n \n \n ) : (\n <>\n \n {t('card.dragAndDrop')}\n \n \n {t('card.selectFile')}\n \n \n \n )}\n
\n {error && (\n \n {t('card.fileSizeError')}\n \n )}\n
\n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Typography, TextField, IconButton, Button, FormControlLabel, Checkbox, Collapse,\n} from '@material-ui/core';\nimport ReactQuill from 'react-quill';\nimport { Link, useHistory } from 'react-router-dom';\nimport * as R from 'ramda';\nimport 'react-quill/dist/quill.snow.css';\nimport SelectLocation from '../common/SelectLocation';\nimport { ReactComponent as Clear } from '../assets/clear.svg';\nimport NewHeader from '../provider/NewHeader';\nimport ImageUpload from '../common/ImageUpload';\nimport { axios, fileToBase64, useGetLink } from '../utils';\nimport {\n IAttraction, ISite, ISiteCoords, ISiteUpdate,\n} from '../interfaces';\nimport AppContext from '../context';\nimport DeleteDialog from '../provider/DeleteDialog';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n width: '100%',\n },\n header: {\n fontSize: 24,\n fontWeight: 700,\n color: '#37001F',\n marginBottom: 24,\n },\n container: {\n display: 'flex',\n },\n left: {\n width: '50%',\n marginRight: 27,\n },\n right: {\n width: '50%',\n },\n row: {\n width: 'calc(50% + 12px)',\n display: 'flex',\n margin: '0 -12px 24px',\n },\n shortField: {\n width: 'calc(50% - 24px)',\n margin: '0 12px',\n backgroundColor: 'white',\n },\n description: {\n height: 160,\n marginBottom: 64,\n },\n descriptionLabel: {\n fontSize: 14,\n fontWeight: 400,\n margin: '0 0 8px 12px',\n },\n subheader: {\n fontWeight: 400,\n marginBottom: 6,\n },\n saveRow: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n margin: '24px 0',\n },\n discardChanges: {\n marginRight: 16,\n },\n attractions: {\n marginTop: 40,\n },\n attraction: {\n width: 543,\n display: 'flex',\n alignItems: 'center',\n backgroundColor: '#F5F5F5',\n borderRadius: 15,\n marginBottom: 8,\n textDecoration: 'none',\n },\n numberOf: {\n width: 40,\n fontSize: 20,\n color: '#37001F',\n marginLeft: 16,\n },\n attractionName: {\n fontSize: 20,\n color: '#37001F',\n marginRight: 'auto',\n },\n location: {\n display: 'flex',\n margin: '0 -16px',\n padding: 16,\n backgroundColor: '#F5F5F5',\n },\n locationRow: {\n display: 'flex',\n margin: '0 -12px 24px',\n },\n coords: {\n border: '1px solid #9E9E9E',\n borderRadius: 15,\n display: 'flex',\n alignItems: 'center',\n paddingLeft: 24,\n cursor: 'pointer',\n marginBottom: 8,\n },\n coordsName: {\n fontSize: 20,\n color: '#37001F',\n marginRight: 'auto',\n },\n coordsMain: {\n fontSize: 20,\n color: '#37001F',\n fontWeight: 400,\n marginRight: 16,\n },\n address: {\n width: 300,\n margin: '52px 0 20px',\n display: 'flex',\n },\n rightField: {\n width: 300,\n margin: '20px 0',\n display: 'flex',\n },\n});\n\nexport default function Site() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { showSnackbar } = useContext(AppContext);\n const getLink = useGetLink();\n const history = useHistory();\n const [site, setSite] = useState(null);\n const [namePL, setNamePL] = useState('');\n const [nameEN, setNameEN] = useState('');\n const [website, setWebsite] = useState('');\n const [descPL, setDescPL] = useState('');\n const [descEN, setDescEN] = useState('');\n const [address, setAddress] = useState('');\n const [phone, setPhone] = useState('');\n const [email, setEmail] = useState('');\n const [coordinates, setCoordinates] = useState([]);\n const [selectedCoords, setSelectedCoords] = useState(null);\n const [lat, setLat] = useState('');\n const [lon, setLon] = useState('');\n const [coordsDescPL, setCoordsDescPL] = useState('');\n const [coordsDescEN, setCoordsDescEN] = useState('');\n const [isMain, setIsMain] = useState(false);\n const [imageFile, setImageFile] = useState(null);\n const [imageUrl, setImageUrl] = useState(null);\n const [attractions, setAttractions] = useState([]);\n const [deleteId, setDeleteId] = useState(null);\n const [deleteName, setDeleteName] = useState('');\n const loadData = (currentSite: ISite) => {\n setNamePL(currentSite.namePL);\n setNameEN(currentSite.nameEN);\n setWebsite(currentSite.website || '');\n setDescPL(currentSite.descPL);\n setDescEN(currentSite.descEN);\n setAddress(currentSite.address || '');\n setPhone(currentSite.phone || '');\n setEmail(currentSite.email || '');\n setCoordinates(currentSite.coordinates);\n setImageFile(null);\n setImageUrl(currentSite.image);\n setAttractions(currentSite.attractions);\n };\n const loadCoords = (coords: ISiteCoords | null, coordsIsMain?: boolean) => {\n if (coords) {\n setLat(String(coords.lat));\n setLon(String(coords.lon));\n setCoordsDescPL(coords.descPL);\n setCoordsDescEN(coords.descEN);\n setIsMain(coordsIsMain || false);\n } else {\n setLat('');\n setLon('');\n setCoordsDescPL('');\n setCoordsDescEN('');\n setIsMain(false);\n }\n };\n useEffect(() => {\n (async () => {\n const { data } = await axios.get('/card/site');\n setSite(data);\n loadData(data);\n })();\n }, []);\n if (!site) return null;\n const multipleCoords = (coordinates.length + (selectedCoords === 'new' ? 1 : 0)) > 1;\n return (\n
\n \n {t('card.site')}\n \n
\n setNamePL(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n setNameEN(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n
\n
\n setWebsite(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n
\n
\n
\n \n {t('card.descriptionInPolish')}\n \n \n \n {t('card.descriptionInEnglish')}\n \n \n
\n
\n \n {t('card.image')}\n \n {\n setImageFile(file);\n setImageUrl(url);\n }}\n imageUrl={imageUrl}\n />\n setAddress(target.value)}\n variant=\"outlined\"\n size=\"small\"\n multiline\n rows={3}\n />\n setPhone(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n setEmail(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n
\n
\n
\n
\n {\n setSelectedCoords('new');\n loadCoords(null);\n }}\n small\n bigMargin\n />\n {coordinates.map((coords, i) => (\n {\n setSelectedCoords(i);\n loadCoords(coords, i === 0);\n }}\n >\n \n {coords.descPL}\n \n {i === 0 && (\n \n {t('card.main')}\n \n )}\n {\n event.stopPropagation();\n if (selectedCoords === i) {\n setSelectedCoords(null);\n }\n setCoordinates(R.remove(i, 1));\n }}\n >\n \n \n
\n ))}\n
\n
\n \n
\n \n
\n setCoordsDescPL(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n setCoordsDescEN(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n
\n setIsMain(target.checked)}\n color=\"primary\"\n disabled={!multipleCoords}\n />\n )}\n label={t('card.main')}\n />\n
\n {selectedCoords !== 'new' && (\n {\n if (selectedCoords !== null) {\n loadCoords(coordinates[selectedCoords], selectedCoords === 0);\n }\n }}\n >\n {t('card.discardChanges')}\n \n )}\n {\n const newCoords = {\n lat: Number(lat),\n lon: Number(lon),\n descPL: coordsDescPL,\n descEN: coordsDescEN,\n };\n if (selectedCoords === 'new') {\n if (isMain) {\n setCoordinates([newCoords, ...coordinates]);\n } else {\n setCoordinates([...coordinates, newCoords]);\n }\n } else if (typeof selectedCoords === 'number') {\n if (isMain) {\n setCoordinates([newCoords, ...R.remove(selectedCoords, 1, coordinates)]);\n } else {\n setCoordinates(R.update(selectedCoords, newCoords, coordinates));\n }\n }\n setSelectedCoords(null);\n }}\n >\n {selectedCoords === 'new' ? t('card.add') : t('card.update')}\n \n
\n
\n
\n
\n
\n
\n loadData(site)}\n >\n {t('card.discardChanges')}\n \n {\n const siteUpdate: ISiteUpdate = {\n namePL,\n nameEN,\n website: website || null,\n descPL,\n descEN,\n address: address || null,\n phone: phone || null,\n email: email || null,\n coordinates,\n };\n if (imageFile) {\n siteUpdate.image = {\n name: imageFile.name,\n type: imageFile.type,\n content: await fileToBase64(imageFile),\n };\n }\n if (!imageUrl && site?.image) {\n siteUpdate.image = null;\n }\n const { data } = await axios.post('/card/site', siteUpdate);\n const newSite: ISite = {\n ...siteUpdate,\n image: imageFile ? data : imageUrl,\n attractions,\n };\n setSite(newSite);\n if (imageFile) {\n setImageFile(null);\n setImageUrl(data);\n }\n showSnackbar(t('card.siteUpdated'));\n }}\n >\n {t('card.save')}\n \n
\n history.push(getLink('/card/site/attraction/new'))}\n />\n
\n {attractions.map((attraction, i) => (\n \n \n {i + 1}\n \n \n {attraction.namePL}\n \n {\n event.preventDefault();\n event.stopPropagation();\n setDeleteId(attraction.id);\n setDeleteName(attraction.namePL);\n }}\n >\n \n \n \n ))}\n
\n setDeleteId(null)}\n text={t('card.attractionDeleteConfirm', { name: deleteName })}\n onDelete={async () => {\n await axios.delete(`/card/attraction/${deleteId}`);\n setAttractions(R.filter((x) => x.id !== deleteId));\n setDeleteId(null);\n }}\n canDelete\n />\n
\n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Button, Checkbox, FormControlLabel, IconButton, TextField, Typography,\n} from '@material-ui/core';\nimport ReactQuill from 'react-quill';\nimport moment, { Moment } from 'moment';\nimport * as R from 'ramda';\nimport classNames from 'classnames';\nimport { useParams, useHistory } from 'react-router-dom';\nimport { TimePicker } from '@material-ui/pickers';\nimport sanitizeHtml from 'sanitize-html';\nimport ImageUpload from '../common/ImageUpload';\nimport NewHeader from '../provider/NewHeader';\nimport { ReactComponent as Clear } from '../assets/clear.svg';\nimport { ReactComponent as ClearWhite } from '../assets/clear-white.svg';\nimport {\n IAttractionAttachment, IAttractionAttachmentUpdate, IAttractionPath, IAttractionPathUpdate,\n IAttractionUpdate, IOpeningHours, IOpeningHoursUpdate, IShapePoint, ISiteAttraction, IWeekDay,\n} from '../interfaces';\nimport CustomDatePicker from '../common/CustomDatePicker';\nimport { axios, fileToBase64, useGetLink } from '../utils';\nimport AppContext, { CardContext } from '../context';\nimport DeleteDialog from '../provider/DeleteDialog';\nimport PathSelect from '../common/PathSelect';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginTop: 32,\n width: '100%',\n },\n header: {\n fontSize: 24,\n fontWeight: 700,\n color: '#37001F',\n marginBottom: 24,\n },\n container: {\n display: 'flex',\n },\n left: {\n width: '50%',\n marginRight: 24,\n },\n right: {\n width: '50%',\n },\n row: {\n display: 'flex',\n margin: '0 -12px 24px',\n },\n shortField: {\n width: 'calc(50% - 24px)',\n margin: '0 12px',\n },\n description: {\n height: 200,\n paddingBottom: 42,\n marginBottom: 24,\n backgroundColor: 'white',\n },\n descriptionLabel: {\n fontSize: 14,\n fontWeight: 400,\n margin: '0 0 8px 12px',\n },\n subheader: {\n fontWeight: 400,\n marginBottom: 8,\n },\n checkboxRow: {\n display: 'flex',\n marginBottom: 24,\n },\n formControlLabel: {\n marginRight: 24,\n },\n saveRow: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n marginBottom: 24,\n },\n discardChanges: {\n marginRight: 16,\n },\n section: {\n padding: 16,\n margin: '16px -16px',\n backgroundColor: '#F5F5F5',\n },\n guide: {\n display: 'flex',\n alignItems: 'center',\n borderRadius: 15,\n marginBottom: 8,\n border: '1px solid #9E9E9E',\n transition: theme.transitions.create('background-color'),\n },\n numberOf: {\n width: 40,\n fontSize: 20,\n color: '#37001F',\n marginLeft: 16,\n flexShrink: 0,\n transition: theme.transitions.create('color'),\n },\n guidePreview: {\n backgroundSize: 'contain',\n backgroundPosition: 'center',\n backgroundRepeat: 'no-repeat',\n width: 30,\n alignSelf: 'stretch',\n flexShrink: 0,\n margin: '4px 16px 4px 0',\n },\n guideName: {\n fontSize: 20,\n color: '#37001F',\n margin: '4px auto 4px 0',\n transition: theme.transitions.create('color'),\n },\n sectionNameField: {\n width: 'calc(50% - 24px)',\n margin: '0 12px',\n backgroundColor: 'white',\n },\n guideRow: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n addButton: {\n marginLeft: 24,\n },\n openingHoursSection: {\n padding: 20,\n margin: '16px -16px',\n backgroundColor: '#F5F5F5',\n },\n hoursData: {\n padding: 16,\n border: '1px solid #707070',\n borderRadius: 15,\n position: 'relative',\n marginBottom: 16,\n },\n deleteOpeningHours: {\n position: 'absolute',\n top: 0,\n right: 0,\n margin: 4,\n },\n hoursSubheader: {\n fontWeight: 400,\n marginBottom: 16,\n },\n elements: {\n display: 'flex',\n flexWrap: 'wrap',\n margin: '-8px -8px 16px -8px',\n '&:last-child': {\n marginBottom: 0,\n },\n },\n outlinedElement: {\n padding: '6px 14px',\n border: '1px solid #9E9E9E',\n borderRadius: 15,\n fontSize: 20,\n color: '#37001F',\n display: 'flex',\n alignItems: 'center',\n margin: 8,\n },\n elementContent: {\n fontSize: 'inherit',\n color: 'inherit',\n },\n weekDays: {\n fontSize: 24,\n fontWeight: 400,\n color: '#37001F',\n marginBottom: 24,\n },\n remarks: {\n fontSize: 16,\n color: '#37001F',\n marginBottom: 24,\n },\n hoursDataRight: {\n width: 'calc(50% - 12px)',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n fieldRow: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 24,\n },\n timePicker: {\n width: 85,\n backgroundColor: 'white',\n },\n hoursDash: {\n margin: '0 16px',\n },\n removeElement: {\n margin: '-8px -12px -8px 4px',\n },\n dayButton: {\n fontSize: 24,\n fontWeight: 400,\n marginRight: 8,\n marginBottom: 32,\n borderRadius: 15,\n padding: '1px 18px',\n backgroundColor: '#F5F5F5',\n },\n buttonSelected: {\n backgroundColor: '#A1145C',\n color: 'white',\n '&:hover': {\n backgroundColor: '#c62e8a',\n },\n },\n datePicker: {\n marginRight: 16,\n backgroundColor: 'white',\n },\n openingHoursRow: {\n display: 'flex',\n },\n map: {\n width: '100%',\n height: 300,\n marginBottom: 24,\n },\n guideSelected: {\n backgroundColor: '#a1145c',\n },\n guideSelectedText: {\n color: 'white',\n },\n}));\n\nconst formatDate = (date: string) => moment(date).format('DD.MM.YYYY');\nconst formatTimeISO = (date: Moment) => date.format('HH:mm');\nconst formatDateISO = (date: Moment) => date.format('YYYY-MM-DD');\n\nexport default function Attraction() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { showSnackbar } = useContext(AppContext);\n const { user } = useContext(CardContext);\n const getLink = useGetLink();\n const [mainCoords, setMainCoords] = useState();\n const [namePL, setNamePL] = useState('');\n const [nameEN, setNameEN] = useState('');\n const [descPL, setDescPL] = useState('');\n const [descEN, setDescEN] = useState('');\n const [imageFile, setImageFile] = useState(null);\n const [imageUrl, setImageUrl] = useState(null);\n const [accessible, setAccessible] = useState(false);\n const [elevator, setElevator] = useState(false);\n const [escalator, setEscalator] = useState(false);\n const [newGuide, setNewGuide] = useState(false);\n const [guideNamePL, setGuideNamePL] = useState('');\n const [guideNameEN, setGuideNameEN] = useState('');\n const [guideImage, setGuideImage] = useState(null);\n const [guideUrl, setGuideUrl] = useState(null);\n const [guides, setGuides] = useState([]);\n const [selectedPath, setSelectedPath] = useState(null);\n const [pathNamePL, setPathNamePL] = useState('');\n const [pathNameEN, setPathNameEN] = useState('');\n const [pathStartPL, setPathStartPL] = useState('');\n const [pathStartEN, setPathStartEN] = useState('');\n const [pathEndPL, setPathEndPL] = useState('');\n const [pathEndEN, setPathEndEN] = useState('');\n const [pathPoints, setPathPoints] = useState([]);\n const [paths, setPaths] = useState([]);\n const [selectedHours, setSelectedHours] = useState(null);\n const [from, setFrom] = useState(null);\n const [to, setTo] = useState(null);\n const [hours, setHours] = useState<{ from: string; to: string; }[]>([]);\n const [remarksPL, setRemarksPL] = useState('');\n const [remarksEN, setRemarksEN] = useState('');\n const [days, setDays] = useState([]);\n const [periodFrom, setPeriodFrom] = useState(null);\n const [periodTo, setPeriodTo] = useState(null);\n const [periods, setPeriods] = useState<{ from: string; to: string; }[]>([]);\n const [excluded, setExcluded] = useState([]);\n const [openingHours, setOpeningHours] = useState([]);\n const [deleteType, setDeleteType] = useState<'guide' | 'hours' | 'path' | null>(null);\n const [deleteId, setDeleteId] = useState(null);\n const [deleteName, setDeleteName] = useState('');\n const [saving, setSaving] = useState(false);\n const [guideSaving, setGuideSaving] = useState(false);\n const [pathSaving, setPathSaving] = useState(false);\n const [hoursSaving, setHoursSaving] = useState(false);\n const loadData = (attraction: ISiteAttraction | null) => {\n if (attraction) {\n setNamePL(attraction.namePL);\n setNameEN(attraction.nameEN);\n setDescPL(attraction.descPL);\n setDescEN(attraction.descEN);\n setAccessible(attraction.accessible);\n setElevator(attraction.elevator);\n setEscalator(attraction.escalator);\n setImageUrl(attraction.image);\n setGuides(attraction.resources);\n setOpeningHours(attraction.openingHours);\n setPaths(attraction.paths);\n } else {\n setNamePL('');\n setNameEN('');\n setDescPL('');\n setDescEN('');\n setAccessible(false);\n setElevator(false);\n setEscalator(false);\n setImageUrl(null);\n setGuides([]);\n setOpeningHours([]);\n setPaths([]);\n }\n };\n const [ready, setReady] = useState(false);\n const params = useParams<{ id: string; }>();\n const history = useHistory();\n useEffect(() => {\n (async () => {\n if (params.id !== 'new') {\n const id = Number(params.id);\n const { data } = await axios.get('/card/site');\n if (data.coordinates.length > 0) {\n setMainCoords(data.coordinates[0]);\n }\n loadData(data.attractions.find((x: ISiteAttraction) => x.id === id));\n }\n setReady(true);\n })();\n }, [params.id]);\n const loadHours = (newHours: IOpeningHours | null) => {\n if (newHours) {\n setSelectedHours(newHours.id);\n setHours(newHours.hours);\n setRemarksPL(newHours.remarksPL);\n setRemarksEN(newHours.remarksEN);\n setDays(newHours.days);\n setPeriods(newHours.periods);\n setExcluded(newHours.excluded);\n } else {\n setSelectedHours('new');\n setHours([]);\n setRemarksPL('');\n setRemarksEN('');\n setDays([]);\n setPeriods([]);\n setExcluded([]);\n }\n };\n const loadPath = (newPath: IAttractionPath | null) => {\n if (newPath) {\n setSelectedPath(newPath.id);\n setPathNamePL(newPath.namePL);\n setPathNameEN(newPath.nameEN);\n setPathStartPL(newPath.startPL);\n setPathStartEN(newPath.startEN);\n setPathEndPL(newPath.endPL);\n setPathEndEN(newPath.endEN);\n setPathPoints(newPath.points);\n } else {\n setSelectedPath('new');\n setPathNamePL('');\n setPathNameEN('');\n setPathStartPL('');\n setPathStartEN('');\n setPathEndPL('');\n setPathEndEN('');\n setPathPoints([]);\n }\n };\n if (!ready) return null;\n return (\n
\n \n {t('card.attraction')}\n \n
\n
\n
\n setNamePL(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n setNameEN(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n
\n \n {t('card.descriptionInPolish')}\n \n \n \n {t('card.descriptionInEnglish')}\n \n \n
\n
\n \n {t('card.image')}\n \n {\n setImageFile(file);\n setImageUrl(url);\n }}\n imageUrl={imageUrl}\n />\n \n {t('card.accessibility')}\n \n
\n setAccessible(target.checked)}\n color=\"primary\"\n />\n )}\n label={t('card.accessible')}\n className={classes.formControlLabel}\n />\n setElevator(target.checked)}\n color=\"primary\"\n />\n )}\n label={t('card.elevator')}\n className={classes.formControlLabel}\n />\n setEscalator(target.checked)}\n color=\"primary\"\n />\n )}\n label={t('card.escalator')}\n className={classes.formControlLabel}\n />\n
\n
\n
\n
\n \n {t('card.discardChanges')}\n \n {\n const requestData: IAttractionUpdate = {\n site: user.cardSite as number,\n namePL,\n nameEN,\n descPL,\n descEN,\n accessible,\n elevator,\n escalator,\n };\n if (imageFile) {\n requestData.image = {\n name: imageFile.name,\n type: imageFile.type,\n content: await fileToBase64(imageFile),\n };\n } else if (!imageUrl && params.id !== 'new') {\n requestData.image = null;\n }\n try {\n setSaving(true);\n if (params.id === 'new') {\n const { data } = await axios.post('/card/attraction', requestData);\n history.push(getLink(`/card/site/attraction/${data.id}`));\n } else {\n const { data } = await axios.put(`/card/attraction/${params.id}`, requestData);\n if (data) {\n setImageUrl(data);\n }\n }\n setImageFile(null);\n showSnackbar(t('card.attractionSaved'));\n } finally {\n setSaving(false);\n }\n }}\n >\n {t('card.save')}\n \n
\n
\n setNewGuide(true)}\n small\n bigMargin\n />\n
\n
\n {guides.map((guide, i) => (\n
\n \n {i + 1}\n \n \n \n {guide.namePL}\n {', '}\n {guide.nameEN}\n \n {\n setDeleteType('guide');\n setDeleteId(guide.id);\n setDeleteName(guide.namePL);\n }}\n >\n \n \n
\n ))}\n
\n
\n {newGuide && (\n <>\n
\n setGuideNamePL(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n setGuideNameEN(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n
\n \n {t('card.attachFile')}\n \n
\n {\n setGuideImage(file);\n setGuideUrl(url);\n }}\n imageUrl={guideUrl}\n />\n {\n if (!guideImage) return;\n const requestData: IAttractionAttachmentUpdate = {\n attraction: Number(params.id),\n namePL: guideNamePL,\n nameEN: guideNameEN,\n file: {\n name: guideImage.name,\n type: guideImage.type,\n content: await fileToBase64(guideImage),\n },\n };\n try {\n setGuideSaving(true);\n const { data } = await axios.post('/card/attraction/attachment', requestData);\n setGuides([...guides, data]);\n setNewGuide(false);\n setGuideNamePL('');\n setGuideNameEN('');\n setGuideImage(null);\n setGuideUrl(null);\n } finally {\n setGuideSaving(false);\n }\n }}\n >\n {t('card.add')}\n \n
\n \n )}\n
\n
\n
\n
\n loadPath(null)}\n small\n bigMargin\n />\n
\n
\n {paths.map((path, i) => {\n const isSelected = selectedPath === path.id;\n return (\n loadPath(path)}\n >\n \n {i + 1}\n \n \n {path.namePL}\n {', '}\n {path.nameEN}\n \n {\n event.stopPropagation();\n setDeleteType('path');\n setDeleteId(path.id);\n setDeleteName(path.namePL);\n }}\n >\n {isSelected ? : }\n \n
\n );\n })}\n
\n
\n {selectedPath !== null && (\n <>\n
\n setPathNamePL(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n setPathNameEN(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n
\n
\n setPathStartPL(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n setPathStartEN(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n
\n
\n setPathEndPL(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n setPathEndEN(target.value)}\n variant=\"outlined\"\n size=\"small\"\n />\n
\n \n
\n {selectedPath !== 'new' && (\n loadPath(\n paths.find((x) => x.id === selectedPath) as IAttractionPath,\n )}\n >\n {t('card.discardChanges')}\n \n )}\n {\n const requestData: IAttractionPathUpdate = {\n attraction: Number(params.id),\n namePL: pathNamePL,\n nameEN: pathNameEN,\n startPL: pathStartPL,\n startEN: pathStartEN,\n endPL: pathEndPL,\n endEN: pathEndEN,\n points: pathPoints,\n };\n try {\n setPathSaving(true);\n if (selectedPath === 'new') {\n const { data } = await axios.post('/card/attraction/path', requestData);\n setPaths([...paths, data]);\n } else {\n await axios.put(`/card/attraction/path/${selectedPath}`, requestData);\n setPaths(R.map((x) => (\n x.id === selectedPath ? {\n ...x,\n ...requestData,\n } : x\n )));\n }\n setSelectedPath(null);\n } finally {\n setPathSaving(false);\n }\n }}\n >\n {t('card.save')}\n \n
\n \n )}\n
\n
\n
\n
\n loadHours(null)}\n small\n bigMargin\n />\n
\n
\n {openingHours.map((hoursData) => (\n loadHours(hoursData)}\n key={hoursData.id}\n >\n {\n event.stopPropagation();\n setDeleteType('hours');\n setDeleteId(hoursData.id);\n }}\n >\n \n \n
\n
\n \n {t('card.openingHours')}\n \n
\n {hoursData.hours.map((currentHours) => (\n \n {currentHours.from}\n {' - '}\n {currentHours.to}\n \n ))}\n
\n \n {t('card.effective')}\n \n \n {hoursData.days.map((day) => t(`data.${day}`)).join(', ')}\n \n
\n
\n \n
\n
\n
\n
\n \n {t('card.periods')}\n \n
\n {hoursData.periods.map((period) => (\n \n {formatDate(period.from)}\n {' - '}\n {formatDate(period.to)}\n \n ))}\n
\n
\n
\n \n {t('card.excludedDates')}\n \n
\n {hoursData.excluded.map((date) => (\n \n {formatDate(date)}\n \n ))}\n
\n
\n
\n
\n ))}\n
\n
\n {selectedHours && (\n <>\n \n {t('card.openingHours')}\n \n
\n (\n \n )}\n cancelLabel={t('common.cancel')}\n ampm={false}\n value={from}\n onChange={(newFrom) => {\n if (newFrom && to) {\n setHours(R.append({\n from: formatTimeISO(newFrom),\n to: formatTimeISO(to),\n }));\n setTo(null);\n } else {\n setFrom(newFrom);\n }\n }}\n />\n \n -\n \n (\n \n )}\n cancelLabel={t('common.cancel')}\n ampm={false}\n value={to}\n onChange={(newTo) => {\n if (from && newTo) {\n setHours(R.append({\n from: formatTimeISO(from),\n to: formatTimeISO(newTo),\n }));\n setFrom(null);\n } else {\n setTo(newTo);\n }\n }}\n />\n
\n
\n {hours.map((hoursElement) => (\n \n \n {hoursElement.from}\n {' - '}\n {hoursElement.to}\n \n setHours(R.filter((x) => x !== hoursElement))}\n >\n \n \n
\n ))}\n
\n \n {t('card.remarksPL')}\n \n \n \n {t('card.remarksEN')}\n \n \n \n {t('card.effective')}\n \n {(\n ['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY'] as IWeekDay[]\n ).map((day) => (\n setDays(\n days.includes(day) ? R.filter((x) => x !== day) : R.append(day),\n )}\n key={day}\n >\n {t(`data.${day}`)}\n \n ))}\n \n {t('card.periods')}\n \n
\n {\n if (newFrom && periodTo) {\n setPeriods(R.append({\n from: formatDateISO(newFrom),\n to: formatDateISO(periodTo),\n }));\n setPeriodTo(null);\n } else {\n setPeriodFrom(newFrom);\n }\n }}\n maxDate={periodTo || undefined}\n />\n {\n if (periodFrom && newTo) {\n setPeriods(R.append({\n from: formatDateISO(periodFrom),\n to: formatDateISO(newTo),\n }));\n setPeriodFrom(null);\n } else {\n setPeriodTo(newTo);\n }\n }}\n minDate={periodFrom || undefined}\n />\n
\n
\n {periods.map((period) => (\n
\n \n {formatDate(period.from)}\n {' - '}\n {formatDate(period.to)}\n \n setPeriods(R.filter((x) => x !== period))}\n >\n \n \n
\n ))}\n
\n \n {t('card.excludedDates')}\n \n
\n newDate && setExcluded(R.append(formatDateISO(newDate)))}\n />\n
\n
\n {excluded.map((date) => (\n
\n \n {formatDate(date)}\n \n setExcluded(R.filter((x) => x !== date))}\n >\n \n \n
\n ))}\n
\n
\n {selectedHours !== 'new' && (\n loadHours(\n openingHours.find((x) => x.id === selectedHours) as IOpeningHours,\n )}\n >\n {t('card.discardChanges')}\n \n )}\n {\n const requestData: IOpeningHoursUpdate = {\n attraction: Number(params.id),\n remarksPL,\n remarksEN,\n days,\n hours,\n periods,\n excluded,\n };\n try {\n setHoursSaving(true);\n if (selectedHours === 'new') {\n const { data } = await axios.post('/card/attraction/opening-hours', requestData);\n setOpeningHours([...openingHours, data]);\n } else {\n await axios.put(`/card/attraction/opening-hours/${selectedHours}`, requestData);\n setOpeningHours(R.map((x) => (\n x.id === selectedHours ? {\n ...x,\n ...requestData,\n } : x\n )));\n }\n setSelectedHours(null);\n } finally {\n setHoursSaving(false);\n }\n }}\n >\n {t('card.save')}\n \n
\n \n )}\n
\n
\n
\n setDeleteId(null)}\n text={t(\n (() => {\n switch (deleteType) {\n case 'guide': return 'card.guideDeleteConfirm';\n case 'path': return 'card.pathDeleteConfirm';\n default: return 'card.hoursDeleteConfirm';\n }\n })(),\n { name: deleteName },\n )}\n onDelete={async () => {\n if (deleteType === 'guide') {\n await axios.delete(`/card/attraction/attachment/${deleteId}`);\n setGuides(R.filter((x) => x.id !== deleteId));\n } else if (deleteType === 'path') {\n await axios.delete(`/card/attraction/path/${deleteId}`);\n if (selectedPath === deleteId) {\n setSelectedPath(null);\n }\n setPaths(R.filter((x) => x.id !== deleteId));\n } else {\n await axios.delete(`/card/attraction/opening-hours/${deleteId}`);\n if (selectedHours === deleteId) {\n setSelectedHours(null);\n }\n setOpeningHours(R.filter((x) => x.id !== deleteId));\n }\n setDeleteId(null);\n }}\n canDelete\n />\n \n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Button, IconButton, InputAdornment, TextField, Typography,\n} from '@material-ui/core';\nimport * as R from 'ramda';\nimport NewHeader from '../provider/NewHeader';\nimport { IOrganization } from '../interfaces';\nimport { axios, fileToBase64 } from '../utils';\nimport { ReactComponent as Search } from '../assets/search.svg';\nimport ButtonList from '../provider/ButtonList';\nimport DeleteDialog from '../provider/DeleteDialog';\nimport AppContext from '../context';\nimport { ReactComponent as Clear } from '../assets/clear.svg';\nimport ImageUpload from '../common/ImageUpload';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n width: '100%',\n display: 'flex',\n },\n left: {\n flexGrow: 1,\n marginRight: 48,\n },\n right: {\n flexShrink: 0,\n width: 650,\n marginRight: 20,\n },\n search: {\n width: 300,\n marginBottom: 24,\n },\n fieldRow: {\n display: 'flex',\n margin: '0 -12px 24px',\n },\n shortField: {\n width: 'calc(50% - 24px)',\n margin: '0 12px',\n },\n saveRow: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n marginBottom: 24,\n },\n discardChanges: {\n marginRight: 16,\n },\n subheader: {\n fontWeight: 400,\n },\n templates: {\n margin: '10px -10px',\n display: 'flex',\n flexWrap: 'wrap',\n },\n template: {\n width: 164,\n height: 105,\n backgroundSize: 'contain',\n backgroundRepeat: 'no-repeat',\n borderRadius: 5,\n margin: 10,\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'flex-end',\n },\n removeImage: {\n margin: 4,\n },\n removeIcon: {\n background: 'white',\n borderRadius: '50%',\n },\n uploadRow: {\n display: 'flex',\n alignItems: 'flex-start',\n },\n add: {\n marginLeft: 24,\n },\n templatesSection: {\n margin: '0 -30px',\n padding: '18px 30px 0',\n backgroundColor: '#F5F5F5',\n },\n});\n\nexport default function Organizations() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { showSnackbar } = useContext(AppContext);\n const [organizations, setOrganizations] = useState(null);\n useEffect(() => {\n (async () => {\n const { data } = await axios.get('/card/organizations');\n setOrganizations(data);\n })();\n }, []);\n const [selectedOrganization, setSelectedOrganization] = useState(null);\n const [search, setSearch] = useState('');\n const [fullName, setFullName] = useState('');\n const [name, setName] = useState('');\n const [address, setAddress] = useState('');\n const [email, setEmail] = useState('');\n const [website, setWebsite] = useState('');\n const [phone, setPhone] = useState('');\n const [imageFile, setImageFile] = useState(null);\n const [imageUrl, setImageUrl] = useState(null);\n const loadData = (organization: IOrganization | null) => {\n if (organization) {\n setFullName(organization.fullName);\n setName(organization.name);\n setAddress(organization.address || '');\n setEmail(organization.email || '');\n setWebsite(organization.website || '');\n setPhone(organization.phone || '');\n } else {\n setFullName('');\n setName('');\n setAddress('');\n setEmail('');\n setWebsite('');\n setPhone('');\n }\n setImageFile(null);\n setImageUrl('');\n };\n const [deleteId, setDeleteId] = useState(null);\n const [deleteName, setDeleteName] = useState('');\n if (!organizations) return null;\n return (\n
\n
\n {\n setSelectedOrganization('new');\n loadData(null);\n }}\n bigMargin\n />\n setSearch(target.value)}\n label={t('card.searchOrganizations')}\n className={classes.search}\n variant=\"outlined\"\n size=\"small\"\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n id=\"search\"\n />\n (\n organization.name.includes(search)\n )).map((organization) => ({\n id: organization.id,\n name: organization.name,\n onClick: () => {\n setSelectedOrganization(organization.id);\n loadData(organization);\n },\n onDelete: () => {\n setDeleteId(organization.id);\n setDeleteName(organization.name);\n },\n }))}\n selected={selectedOrganization}\n />\n
\n
\n {selectedOrganization && (\n <>\n
\n setName(target.value)}\n variant=\"outlined\"\n size=\"small\"\n className={classes.shortField}\n id=\"short-name\"\n />\n setFullName(target.value)}\n variant=\"outlined\"\n size=\"small\"\n className={classes.shortField}\n id=\"full-name\"\n />\n
\n
\n setAddress(target.value)}\n variant=\"outlined\"\n size=\"small\"\n className={classes.shortField}\n id=\"address\"\n />\n setEmail(target.value)}\n variant=\"outlined\"\n size=\"small\"\n className={classes.shortField}\n id=\"email\"\n />\n
\n
\n setWebsite(target.value)}\n variant=\"outlined\"\n size=\"small\"\n className={classes.shortField}\n id=\"website\"\n />\n setPhone(target.value)}\n variant=\"outlined\"\n size=\"small\"\n className={classes.shortField}\n id=\"phone\"\n />\n
\n
\n {selectedOrganization !== 'new' && (\n loadData(\n organizations.find((x) => x.id === selectedOrganization) || null,\n )}\n >\n {t('card.discardChanges')}\n \n )}\n {\n const requestData = {\n name,\n fullName,\n address: address || null,\n website: website || null,\n email: email || null,\n phone: phone || null,\n templates: [],\n };\n if (selectedOrganization === 'new') {\n const { data } = await axios.post('/card/organization', requestData);\n setOrganizations(R.sortBy(R.prop('name'), [...organizations, data]));\n } else {\n await axios.put(`/card/organization/${selectedOrganization}`, requestData);\n setOrganizations((orgs) => orgs!.map((x) => (\n x.id === selectedOrganization ? ({\n ...x,\n ...requestData,\n }) : x\n )));\n }\n setSelectedOrganization(null);\n }}\n disabled={!name}\n >\n {t('card.save')}\n \n
\n {selectedOrganization !== 'new' && (\n
\n \n {t('card.cardTemplates')}\n \n
\n {organizations.find(R.propEq('id', selectedOrganization))!.templates\n .map((template) => (\n \n {\n await axios.delete(`/card/template/${template.id}`);\n setOrganizations(organizations.map((x) => (\n x.id === selectedOrganization ? {\n ...x,\n templates: x.templates.filter((y) => y.id !== template.id),\n } : x\n )));\n }}\n >\n \n \n
\n ))}\n
\n
\n {\n setImageFile(file);\n setImageUrl(url);\n }}\n imageUrl={imageUrl}\n />\n {\n if (!imageFile) return;\n const { data } = await axios.post('/card/template', {\n organization: selectedOrganization,\n name: imageFile.name,\n type: imageFile.type,\n content: await fileToBase64(imageFile),\n });\n setOrganizations(organizations.map((x) => (\n x.id === selectedOrganization ? {\n ...x,\n templates: [...x.templates, data],\n } : x\n )));\n setImageUrl('');\n setImageFile(null);\n }}\n >\n {t('card.add')}\n \n
\n
\n )}\n \n )}\n
\n setDeleteId(null)}\n text={t('card.organizationDeleteConfirm', { name: deleteName })}\n onDelete={async () => {\n try {\n await axios.delete(`/card/organization/${deleteId}`);\n if (selectedOrganization === deleteId) {\n setSelectedOrganization(null);\n }\n setOrganizations((orgs) => orgs!.filter((x) => x.id !== deleteId));\n } catch {\n showSnackbar(t('card.organizationDeleteFailed'));\n }\n setDeleteId(null);\n setDeleteName('');\n }}\n canDelete\n />\n \n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-103.993 -550.066)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1372.274,4195.2l10.5-3.136,10.861,3.136v12.282l-10.861,2.926-10.5-3.192Z\",\n transform: \"translate(-1267 -3639)\",\n fill: \"#188d13\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-176 8)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1915.359,3326.241l10.6,3.08,10.644-3.08v-11.919l-10.644,3.058-10.6-3.058Z\",\n transform: \"translate(-1633.99 -2765.909)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1936.993,3314.25l-11.488-3.128-10.512,3.128\",\n transform: \"translate(-1634 -2766)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1925.5,3317.3v11.959\",\n transform: \"translate(-1633.701 -2765.824)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1922.176,3312.1l11.05,3.1v5.073l-3.54,1.032v-5.008l-11.085-3.1\",\n transform: \"translate(-1633.897 -2765.972)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgPackageOnSale = function SvgPackageOnSale(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPackageOnSale, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/package-on-sale.ea06c8ec.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-103.993 -550.066)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1372.274,4195.2l10.5-3.136,10.861,3.136v12.282l-10.861,2.926-10.5-3.192Z\",\n transform: \"translate(-1267 -3639)\",\n fill: \"#ebb114\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-176 8)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1915.359,3326.241l10.6,3.08,10.644-3.08v-11.919l-10.644,3.058-10.6-3.058Z\",\n transform: \"translate(-1633.99 -2765.909)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1936.993,3314.25l-11.488-3.128-10.512,3.128\",\n transform: \"translate(-1634 -2766)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1925.5,3317.3v11.959\",\n transform: \"translate(-1633.701 -2765.824)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1922.176,3312.1l11.05,3.1v5.073l-3.54,1.032v-5.008l-11.085-3.1\",\n transform: \"translate(-1633.897 -2765.972)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgPackageOnSaleStarting = function SvgPackageOnSaleStarting(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPackageOnSaleStarting, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/package-on-sale-starting.5f3d5934.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-103.993 -550.066)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1372.274,4195.2l10.5-3.136,10.861,3.136v12.282l-10.861,2.926-10.5-3.192Z\",\n transform: \"translate(-1267 -3639)\",\n fill: \"#9b9b9b\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-176 8)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1915.359,3326.241l10.6,3.08,10.644-3.08v-11.919l-10.644,3.058-10.6-3.058Z\",\n transform: \"translate(-1633.99 -2765.909)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1936.993,3314.25l-11.488-3.128-10.512,3.128\",\n transform: \"translate(-1634 -2766)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1925.5,3317.3v11.959\",\n transform: \"translate(-1633.701 -2765.824)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1922.176,3312.1l11.05,3.1v5.073l-3.54,1.032v-5.008l-11.085-3.1\",\n transform: \"translate(-1633.897 -2765.972)\",\n fill: \"none\",\n stroke: \"#38001f\",\n strokeWidth: 1\n})));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar SvgPackageArchived = function SvgPackageArchived(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPackageArchived, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/package-archived.523a57d4.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Button, FormControlLabel, Radio, RadioGroup, Typography,\n} from '@material-ui/core';\nimport CustomAutocomplete from '../common/CustomAutocomplete';\nimport { IDiscountType, IPackageDiscount, ISimpleAttraction } from '../interfaces';\nimport NumberField from '../common/NumberField';\n\ninterface Props {\n attractions: ISimpleAttraction[];\n packageName: string;\n discount: IPackageDiscount | null;\n onClose: () => void;\n onSave: (discount: IPackageDiscount) => void;\n disabled: boolean;\n}\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n width: '100%',\n },\n header: {\n fontSize: 24,\n fontWeight: 700,\n color: '#37001F',\n },\n package: {\n fontSize: 20,\n fontWeight: 400,\n color: '#37001F',\n marginBottom: 24,\n },\n saveRow: {\n width: 520,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n marginBottom: 24,\n },\n discardChanges: {\n marginRight: 16,\n },\n attraction: {\n width: 300,\n marginBottom: 32,\n },\n subheader: {\n fontWeight: 400,\n marginBottom: 16,\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 32,\n },\n field: {\n width: 300,\n },\n fieldInfo: {\n fontWeight: 300,\n color: '#37001F',\n marginLeft: 8,\n },\n formControlLabel: {\n marginBottom: 24,\n },\n radioRow: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 24,\n },\n radioField: {\n width: 180,\n },\n});\n\nexport default function PackageAttraction(props: Props) {\n const {\n attractions, packageName, discount, onClose, onSave, disabled,\n } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n const [attraction, setAttraction] = useState(\n discount\n ? attractions.find((x) => x.id === discount.attraction) as ISimpleAttraction\n : null,\n );\n const [numberOfEntries, setNumberOfEntries] = useState(discount ? String(discount.entries) : '');\n const [basePrice, setBasePrice] = useState(discount ? String(discount.basePrice) : '');\n const [discountType, setDiscountType] = useState(\n discount ? discount.type : null,\n );\n const [percentage, setPercentage] = useState(\n discount?.type === 'PERCENTAGE' ? String(discount.amount) : '',\n );\n const [amount, setAmount] = useState(\n discount?.type === 'PLN' ? String(discount.amount) : '',\n );\n return (\n
\n \n {t('card.attractionDiscount')}\n \n \n {`${t('card.discountPackage')}: ${packageName}`}\n \n setAttraction(value)}\n label={t('card.attractionName')}\n className={classes.attraction}\n getOptionLabel={(x) => `${x.site}, ${x.name}`}\n disabled={disabled}\n />\n
\n setNumberOfEntries(target.value)}\n variant=\"outlined\"\n size=\"small\"\n className={classes.field}\n disabled={disabled}\n />\n
\n
\n setBasePrice(target.value)}\n variant=\"outlined\"\n size=\"small\"\n className={classes.field}\n disabled={disabled}\n />\n \n PLN\n \n
\n \n {t('card.discount')}\n \n setDiscountType(target.value as IDiscountType)}\n >\n \n )}\n label={(\n
\n {\n setPercentage(target.value);\n setDiscountType('PERCENTAGE');\n }}\n variant=\"outlined\"\n size=\"small\"\n className={classes.radioField}\n disabled={disabled}\n />\n \n %\n \n
\n )}\n className={classes.formControlLabel}\n disabled={disabled}\n />\n \n )}\n label={(\n
\n {\n setAmount(target.value);\n setDiscountType('PLN');\n }}\n variant=\"outlined\"\n size=\"small\"\n className={classes.radioField}\n disabled={disabled}\n />\n \n PLN\n \n
\n )}\n className={classes.formControlLabel}\n disabled={disabled}\n />\n \n )}\n label={(\n
\n \n {t('card.freeEntrance')}\n \n
\n )}\n className={classes.formControlLabel}\n disabled={disabled}\n />\n \n
\n \n {t('card.discardChanges')}\n \n {\n if (!attraction || !discountType) {\n return;\n }\n const data: any = {\n attraction: attraction.id,\n type: discountType,\n entries: Number(numberOfEntries),\n basePrice: Number(basePrice),\n };\n if (discountType === 'PERCENTAGE') {\n data.amount = Number(percentage);\n } else if (discountType === 'PLN') {\n data.amount = Number(amount);\n }\n onSave(data);\n }}\n >\n {t('card.saveToPackage')}\n \n
\n
\n );\n}\n","import React from 'react';\nimport { IPackageStatus } from '../interfaces';\nimport { ReactComponent as PackageOnSale } from '../assets/package-on-sale.svg';\nimport { ReactComponent as PackageOnSaleStarting } from '../assets/package-on-sale-starting.svg';\nimport { ReactComponent as PackageArchived } from '../assets/package-archived.svg';\n\ninterface Props {\n status: IPackageStatus;\n className?: string;\n}\n\nexport default function PackageIcon({ status, className }: Props) {\n switch (status) {\n case 'ON_SALE':\n return ;\n case 'DRAFT':\n return ;\n case 'ARCHIVED':\n return ;\n default:\n return null;\n }\n}\n","import React, { useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Typography, RadioGroup, FormControlLabel, Radio, TextField, IconButton, Checkbox, Button,\n} from '@material-ui/core';\nimport moment, { Moment } from 'moment';\nimport * as R from 'ramda';\nimport classNames from 'classnames';\nimport NewHeader from '../provider/NewHeader';\nimport CustomDatePicker from '../common/CustomDatePicker';\nimport { ReactComponent as Clear } from '../assets/clear.svg';\nimport { ReactComponent as ClearWhite } from '../assets/clear-white.svg';\nimport { ReactComponent as PackageOnSale } from '../assets/package-on-sale.svg';\nimport { ReactComponent as PackageOnSaleStarting } from '../assets/package-on-sale-starting.svg';\nimport { ReactComponent as PackageArchived } from '../assets/package-archived.svg';\nimport CustomAutocomplete from '../common/CustomAutocomplete';\nimport {\n ICardTemplate,\n IPackage, IPackageDiscount, ISimpleAttraction, IValidityType,\n} from '../interfaces';\nimport PackageAttraction from './PackageAttraction';\nimport PackageIcon from './PackageIcon';\nimport { axios } from '../utils';\nimport DeleteDialog from '../provider/DeleteDialog';\nimport NumberField from '../common/NumberField';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 32,\n width: '100%',\n display: 'flex',\n },\n left: {\n width: '50%',\n marginRight: 32,\n display: 'flex',\n flexDirection: 'column',\n },\n right: {\n width: '50%',\n },\n subheader: {\n fontWeight: 400,\n marginBottom: 16,\n },\n radioGroup: {\n marginBottom: 24,\n },\n radioRow: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: 32,\n },\n from: {\n width: 160,\n marginRight: 16,\n },\n to: {\n width: 160,\n },\n radioNumber: {\n width: 160,\n marginRight: 16,\n },\n radioText: {\n fontWeight: 400,\n color: '#37001F',\n },\n formControlLabel: {\n marginBottom: 24,\n },\n attractions: {\n marginBottom: 32,\n },\n attraction: {\n display: 'flex',\n alignItems: 'center',\n backgroundColor: '#F5F5F5',\n borderRadius: 15,\n marginBottom: 8,\n textDecoration: 'none',\n cursor: 'pointer',\n },\n numberOf: {\n width: 40,\n fontSize: 20,\n color: '#37001F',\n marginLeft: 16,\n },\n attractionName: {\n fontSize: 20,\n color: '#37001F',\n marginRight: 'auto',\n },\n row: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 32,\n },\n price: {\n width: 300,\n },\n currency: {\n width: 40,\n margin: '0 32px 0 8px',\n color: '#37001F',\n },\n limit: {\n width: 300,\n marginRight: 80,\n },\n saleDates: {\n fontWeight: 400,\n color: '#37001F',\n marginRight: 24,\n },\n packageStatus: {\n fontWeight: 400,\n color: '#37001F',\n marginRight: 8,\n },\n onSale: {\n fontWeight: 700,\n color: '#188D13',\n },\n saveRow: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n marginBottom: 24,\n },\n discardChanges: {\n marginRight: 16,\n },\n copyRow: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 24,\n },\n copyPackage: {\n width: 300,\n margin: '0 16px',\n },\n fieldRow: {\n display: 'flex',\n alignItems: 'center',\n margin: '0 -12px 24px',\n },\n shortField: {\n width: '50%',\n margin: '0 12px',\n },\n package: {\n borderRadius: 15,\n display: 'flex',\n alignItems: 'center',\n paddingLeft: 16,\n marginBottom: 8,\n backgroundColor: '#F5F5F5',\n cursor: 'pointer',\n height: 43,\n },\n packageName: {\n fontSize: 20,\n marginRight: 'auto',\n },\n legend: {\n marginTop: 'auto',\n },\n legendStatus: {\n fontSize: 14,\n color: '#37001F',\n marginBottom: 8,\n },\n legendItem: {\n fontSize: 14,\n color: '#37001F',\n marginRight: 32,\n display: 'flex',\n alignItems: 'center',\n },\n packageIcon: {\n marginRight: 16,\n },\n selectedPackage: {\n backgroundColor: '#a1145c',\n },\n selectedPackageText: {\n color: 'white',\n },\n saleStarting: {\n color: '#ebb114',\n fontWeight: 700,\n },\n archived: {\n color: '#9b9b9b',\n fontWeight: 700,\n },\n images: {\n display: 'flex',\n marginBottom: 32,\n },\n image: {\n borderRadius: 5,\n marginRight: 24,\n padding: 0,\n },\n selectedImage: {\n '&::before': {\n content: '\"\"',\n width: '100%',\n height: '100%',\n border: '5px solid #A1145C',\n position: 'absolute',\n borderRadius: 5,\n },\n },\n template: {\n width: 82,\n height: 52,\n },\n limitRow: {\n display: 'flex',\n alignItems: 'flex-start',\n marginBottom: 32,\n },\n});\n\nconst formatISO = (date: Moment) => date.format('YYYY-MM-DD');\n\nexport default function Packages() {\n const classes = useStyles();\n const { t, i18n: { language } } = useTranslation();\n const [packages, setPackages] = useState([]);\n const [templates, setTemplates] = useState([]);\n const [selectedPackage, setSelectedPackage] = useState(null);\n const [copyPackage, setCopyPackage] = useState(null);\n const [namePL, setNamePL] = useState('');\n const [nameEN, setNameEN] = useState('');\n const [template, setTemplate] = useState(null);\n const [validType, setValidType] = useState(null);\n const [from, setFrom] = useState(null);\n const [to, setTo] = useState(null);\n const [daysFromPurchase, setDaysFromPurchase] = useState('');\n const [daysFromFirstUse, setDaysFromFirstUse] = useState('');\n const [discounts, setDiscounts] = useState([]);\n const [openAttraction, setOpenAttraction] = useState(null);\n const [price, setPrice] = useState('');\n const [invalidPrice, setInvalidPrice] = useState(false);\n const [free, setFree] = useState(false);\n const [limit, setLimit] = useState('');\n const [limitError, setLimitError] = useState(false);\n const [noLimit, setNoLimit] = useState(false);\n const [saleFrom, setSaleFrom] = useState(null);\n const [saleTo, setSaleTo] = useState(null);\n const [attractions, setAttractions] = useState([]);\n const [deleteId, setDeleteId] = useState(null);\n const [deleteName, setDeleteName] = useState('');\n const [saving, setSaving] = useState(false);\n useEffect(() => {\n (async () => {\n const [{ data }, { data: attractionsData }, { data: templatesData }] = await Promise.all([\n axios.get('/card/packages'),\n axios.get('/card/attractions/simple'),\n axios.get('/card/templates'),\n ]);\n setPackages(data.map((pkg: any) => ({\n ...pkg,\n discounts: pkg.discounts.map((discount: any, i: number) => ({\n id: i,\n ...discount,\n })),\n })));\n setAttractions(attractionsData);\n setTemplates(templatesData);\n })();\n }, []);\n const status = packages.find((x) => x.id === selectedPackage)?.status;\n const onSale = status === 'ON_SALE';\n const archived = status === 'ARCHIVED';\n const soldPackages = packages.find((x) => x.id === selectedPackage)?.sales.sold || 0;\n const loadData = async (pkg: IPackage | null, copy?: boolean) => {\n if (pkg) {\n if (!copy) {\n setSelectedPackage(pkg.id);\n }\n setNamePL(pkg.namePL);\n setNameEN(pkg.nameEN);\n setTemplate(templates.find(R.propEq('file', pkg.image)) || null);\n setValidType(pkg.validity.type);\n setFrom(pkg.validity.from ? moment(pkg.validity.from) : null);\n setTo(pkg.validity.to ? moment(pkg.validity.to) : null);\n if (pkg.validity.type === 'DAYS_SINCE_ASSIGNED') {\n setDaysFromPurchase(String(pkg.validity.days));\n setDaysFromFirstUse('');\n } else if (pkg.validity.type === 'DAYS_SINCE_ACTIVATED') {\n setDaysFromFirstUse(String(pkg.validity.days));\n setDaysFromPurchase('');\n } else {\n setDaysFromFirstUse('');\n setDaysFromPurchase('');\n }\n setDiscounts(pkg.discounts);\n if (!pkg.price) {\n setFree(true);\n setPrice('');\n } else {\n setFree(false);\n setPrice(String(pkg.price));\n }\n if (!pkg.sales.limit) {\n setLimit('');\n setNoLimit(true);\n } else {\n setLimit(String(pkg.sales.limit));\n setNoLimit(false);\n }\n setSaleFrom(moment(pkg.sales.from));\n setSaleTo(moment(pkg.sales.to));\n } else {\n setSelectedPackage('new');\n setNamePL('');\n setNameEN('');\n setTemplate(null);\n setValidType(null);\n setFrom(null);\n setTo(null);\n setDaysFromPurchase('');\n setDaysFromFirstUse('');\n setDiscounts([]);\n setFree(false);\n setPrice('');\n setLimit('');\n setNoLimit(false);\n setSaleFrom(null);\n setSaleTo(null);\n }\n setOpenAttraction(null);\n setInvalidPrice(false);\n setLimitError(false);\n };\n if (openAttraction !== null) {\n return (\n x.id === openAttraction) as IPackageDiscount}\n onClose={() => setOpenAttraction(null)}\n onSave={(newDiscountNoId) => {\n const newId = R.last(discounts) ? R.last(discounts)!.id + 1 : 0;\n const newDiscount = {\n ...newDiscountNoId,\n id: openAttraction === 'new' ? newId : openAttraction,\n };\n if (openAttraction === 'new') {\n setDiscounts([...discounts, newDiscount]);\n } else {\n setDiscounts(discounts.map((x) => (x.id === openAttraction ? newDiscount : x)));\n }\n setOpenAttraction(null);\n }}\n disabled={onSale || archived}\n />\n );\n }\n return (\n
\n
\n loadData(null)}\n bigMargin\n />\n {packages.map((pkg) => {\n const isSelected = pkg.id === selectedPackage;\n return (\n loadData(pkg)}\n >\n \n \n {language === 'pl' ? pkg.namePL : pkg.nameEN}\n \n {pkg.status === 'DRAFT' && (\n {\n event.stopPropagation();\n setDeleteName(language === 'pl' ? pkg.namePL : pkg.nameEN);\n setDeleteId(pkg.id);\n }}\n data-testid=\"delete\"\n >\n {isSelected ? : }\n \n )}\n
\n );\n })}\n
\n \n {t('card.packageStatus')}\n :\n \n
\n \n \n {t('card.onSale')}\n \n \n \n {t('card.saleStarting')}\n …\n \n \n \n {t('card.archived')}\n \n
\n
\n
\n
\n {selectedPackage !== null && (\n <>\n
\n \n {t('card.copyPackageFrom')}\n \n setCopyPackage(value)}\n label={t('card.packageName')}\n className={classes.copyPackage}\n getOptionLabel={R.prop(language === 'pl' ? 'namePL' : 'nameEN')}\n disabled={onSale || archived}\n />\n {\n if (!copyPackage) return;\n loadData(copyPackage, true);\n setCopyPackage(null);\n }}\n >\n {t('data.copy')}\n \n
\n
\n setNamePL(target.value)}\n variant=\"outlined\"\n size=\"small\"\n disabled={archived}\n />\n setNameEN(target.value)}\n variant=\"outlined\"\n size=\"small\"\n disabled={archived}\n />\n
\n \n {t('card.defaultCardTemplate')}\n \n
\n {templates.map((x) => (\n setTemplate(x)}\n className={classNames(classes.image, {\n [classes.selectedImage]: template === x,\n })}\n disabled={archived}\n >\n \n \n ))}\n
\n \n {t('card.valid')}\n \n setValidType(target.value as IValidityType)}\n className={classes.radioGroup}\n >\n }\n label={(\n
\n {\n setFrom(newFrom);\n setValidType('FIXED_PERIOD');\n }}\n label={t('card.from')}\n className={classes.from}\n disabled={onSale || archived}\n />\n {\n setTo(newTo);\n setValidType('FIXED_PERIOD');\n }}\n label={t('card.to')}\n className={classes.to}\n disabled={onSale || archived}\n />\n
\n )}\n className={classes.formControlLabel}\n disabled={onSale || archived}\n />\n }\n label={(\n
\n {\n setDaysFromPurchase(target.value);\n setValidType('DAYS_SINCE_ASSIGNED');\n }}\n variant=\"outlined\"\n size=\"small\"\n className={classes.radioNumber}\n disabled={onSale || archived}\n />\n \n {t('card.daysFromPurchase')}\n \n
\n )}\n className={classes.formControlLabel}\n disabled={onSale || archived}\n />\n }\n label={(\n
\n {\n setDaysFromFirstUse(target.value);\n setValidType('DAYS_SINCE_ACTIVATED');\n }}\n variant=\"outlined\"\n size=\"small\"\n className={classes.radioNumber}\n disabled={onSale || archived}\n />\n \n {t('card.daysFromFirstUse')}\n \n
\n )}\n className={classes.formControlLabel}\n disabled={onSale || archived}\n />\n \n setOpenAttraction('new')}\n small\n bigMargin\n disabled={onSale || archived}\n />\n
\n {discounts.map((discount, i) => (\n setOpenAttraction(discount.id)}\n >\n \n {i + 1}\n \n \n {attractions.find((x) => x.id === discount.attraction)!.name}\n \n {\n event.stopPropagation();\n setDiscounts(discounts.filter((x) => x.attraction !== discount.attraction));\n }}\n disabled={onSale || archived}\n >\n \n \n
\n ))}\n
\n
\n {\n setPrice(target.value);\n setInvalidPrice(false);\n }}\n type=\"number\"\n variant=\"outlined\"\n size=\"small\"\n className={classes.price}\n disabled={free || onSale || archived}\n inputProps={{\n step: 0.01,\n }}\n error={invalidPrice}\n helperText={invalidPrice ? t('common.invalidValue') : ''}\n />\n \n PLN\n \n {\n setFree(target.checked);\n if (target.checked) {\n setPrice('');\n setInvalidPrice(false);\n }\n }}\n color=\"primary\"\n disabled={onSale || archived}\n />\n )}\n label={t('card.freePackage')}\n />\n
\n
\n {\n setLimit(target.value);\n setLimitError(false);\n }}\n variant=\"outlined\"\n size=\"small\"\n className={classes.limit}\n disabled={noLimit || archived}\n error={limitError}\n helperText={limitError ? t('card.salesLimitError') : ''}\n />\n {\n setNoLimit(target.checked);\n if (target.checked) {\n setLimit('');\n setLimitError(false);\n }\n }}\n color=\"primary\"\n />\n )}\n label={t('card.noLimit')}\n disabled={archived}\n />\n
\n
\n \n {t('card.packageSaleDates')}\n :\n \n \n \n
\n
\n \n {t('card.packageStatus')}\n :\n \n {(() => {\n switch (status) {\n case 'ON_SALE':\n return (\n \n {t('card.onSale')}\n \n );\n case 'DRAFT':\n return (\n \n {`${t('card.saleStarting')} ${saleFrom?.format('DD.MM.Y')}`}\n \n );\n case 'ARCHIVED':\n return (\n \n {t('card.archived')}\n \n );\n default:\n return (\n \n -\n \n );\n }\n })()}\n
\n
\n {selectedPackage !== 'new' && (\n loadData(\n packages.find((x) => x.id === selectedPackage) as IPackage,\n )}\n >\n {t('card.discardChanges')}\n \n )}\n {\n if (!saleFrom || !saleTo) {\n return;\n }\n if (!free && (Number(price) * 100) % 1 !== 0) {\n setInvalidPrice(true);\n return;\n }\n if (onSale && !noLimit && Number(limit) < soldPackages) {\n setLimitError(true);\n return;\n }\n const requestData: any = {\n namePL,\n nameEN,\n price: Number(price) || undefined,\n validity: {\n type: validType,\n days: Number(daysFromFirstUse || daysFromPurchase) || null,\n from: from ? formatISO(from) : null,\n to: to ? formatISO(to) : null,\n },\n sales: {\n limit: noLimit ? null : Number(limit),\n from: formatISO(saleFrom),\n to: formatISO(saleTo),\n sold: soldPackages,\n },\n discounts,\n image: template ? template.id : null,\n };\n const newPackage = {\n ...requestData,\n image: template ? template.file : null,\n };\n try {\n setSaving(true);\n if (selectedPackage === 'new') {\n const { data } = await axios.post('/card/package', requestData);\n setPackages([...packages, data]);\n } else {\n const { data } = await axios.put(`/card/package/${selectedPackage}`, requestData);\n setPackages(packages.map((x) => (\n x.id === selectedPackage ? {\n ...x,\n ...newPackage,\n status: data,\n } : x\n )));\n }\n setSelectedPackage(null);\n } finally {\n setSaving(false);\n }\n }}\n >\n {t('card.save')}\n \n
\n \n )}\n \n setDeleteId(null)}\n text={t('card.packageDeleteConfirm', { name: deleteName })}\n onDelete={async () => {\n await axios.delete(`/card/package/${deleteId}`);\n if (selectedPackage === deleteId) {\n setSelectedPackage(null);\n }\n setPackages(packages.filter((x) => x.id !== deleteId));\n setDeleteId(null);\n }}\n canDelete\n />\n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport { Button, Typography } from '@material-ui/core';\nimport classNames from 'classnames';\nimport * as R from 'ramda';\nimport { Bar } from 'react-chartjs-2';\nimport moment from 'moment';\nimport PackageIcon from './PackageIcon';\nimport {\n IPackage, IPackageAdmissionStats, IPackageStatus, IPackageUtilizationStats,\n} from '../interfaces';\nimport PeriodSelect, { IDateRange } from '../common/PeriodSelect';\nimport { axios } from '../utils';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 16,\n display: 'flex',\n },\n left: {\n flexGrow: 1,\n marginRight: 24,\n },\n right: {\n width: 800,\n flexShrink: 0,\n },\n header: {\n fontSize: 24,\n fontWeight: 700,\n marginBottom: 40,\n },\n package: {\n borderRadius: 15,\n display: 'flex',\n alignItems: 'center',\n paddingLeft: 16,\n marginBottom: 8,\n backgroundColor: '#F5F5F5',\n cursor: 'pointer',\n width: '100%',\n justifyContent: 'flex-start',\n },\n packageName: {\n fontSize: 20,\n padding: '1px 0',\n },\n packageIcon: {\n marginRight: 16,\n },\n selectedButton: {\n backgroundColor: '#a1145c',\n color: 'white',\n '&:hover': {\n backgroundColor: '#c62e8a',\n },\n },\n totalSection: {\n padding: '16px 32px 24px',\n backgroundColor: '#F5F5F5',\n marginBottom: 24,\n },\n subheader: {\n fontWeight: 400,\n marginBottom: 16,\n },\n chartOuterContainer: {\n display: 'inline-flex',\n flexDirection: 'column',\n marginBottom: 24,\n },\n chartInnerContainer: {\n display: 'flex',\n },\n chart: {\n width: 350,\n },\n yLabel: {\n paddingTop: 12,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n },\n chartButton: {\n whiteSpace: 'nowrap',\n fontSize: 14,\n padding: 4,\n lineHeight: 1,\n '&:disabled': {\n color: '#37001F',\n },\n },\n xLabel: {\n textAlign: 'right',\n },\n chartLabel: {\n fontSize: 14,\n color: '#37001F',\n },\n table: {\n border: '1px solid #37001F',\n borderCollapse: 'collapse',\n backgroundColor: 'white',\n width: '100%',\n marginBottom: 12,\n },\n tableCell: {\n fontSize: 16,\n fontWeight: 300,\n padding: '14px 12px',\n border: '1px solid #37001F',\n color: '#37001F',\n },\n tableHeader: {\n fontWeight: 400,\n textAlign: 'left',\n },\n usageHeader: {\n textAlign: 'center',\n },\n percentCell: {\n borderRight: 0,\n textAlign: 'right',\n width: 100,\n },\n usageCell: {\n borderLeft: 0,\n textAlign: 'right',\n paddingRight: 50,\n width: 120,\n },\n tableNote: {\n fontSize: 13,\n fontWeight: 400,\n },\n packagesSold: {\n fontWeight: 400,\n marginBottom: 24,\n },\n soldValue: {\n display: 'inline-block',\n paddingLeft: 8,\n fontSize: 24,\n fontWeight: 700,\n },\n numberCell: {\n textAlign: 'center',\n },\n periodTable: {\n width: 460,\n },\n exportReport: {\n marginTop: 16,\n },\n periodContainer: {\n display: 'flex',\n marginBottom: 16,\n },\n periodText: {\n fontWeight: 400,\n marginRight: 24,\n paddingTop: 8,\n },\n});\n\nexport default function PackageUsage() {\n const classes = useStyles();\n const { t } = useTranslation();\n const [packages, setPackages] = useState([]);\n useEffect(() => {\n (async () => {\n const { data } = await axios.get('/card/packages');\n setPackages(data.filter((x: IPackage) => x.status !== 'DRAFT'));\n })();\n }, []);\n const [selectedPackage, setSelectedPackage] = useState(null);\n const [utilizationStats, setUtilizationStats] = useState(null);\n useEffect(() => {\n (async () => {\n if (selectedPackage) {\n const { data } = await axios.get(`/card/statistics/package/${selectedPackage}/usage`);\n setUtilizationStats(data);\n } else {\n setUtilizationStats(null);\n }\n })();\n }, [selectedPackage]);\n const [chartPercent, setChartPercent] = useState(false);\n const [dateRange, setDateRange] = useState(null);\n const [admissionStats, setAdmissionStats] = useState(null);\n useEffect(() => {\n (async () => {\n if (dateRange && dateRange.from && dateRange.to) {\n const { data } = await axios.get(`/card/statistics/package/${selectedPackage}/admissions`, {\n params: {\n from: dateRange.from.format('YYYY-MM-DD'),\n to: dateRange.to.format('YYYY-MM-DD'),\n },\n });\n setAdmissionStats(data);\n } else {\n setAdmissionStats(null);\n }\n })();\n }, [dateRange, selectedPackage]);\n return (\n
\n
\n \n {t('card.package')}\n \n {packages.map((pkg) => (\n {\n setSelectedPackage(pkg.id);\n setDateRange(null);\n }}\n key={pkg.id}\n >\n \n \n {pkg.namePL}\n \n \n ))}\n
\n
\n {utilizationStats && (\n <>\n
\n \n {`${t('card.usage')} (${\n moment(utilizationStats.salesFrom).format('MM.Y')} - ${t('card.now')})`}\n \n
\n
\n
\n \n {`${chartPercent ? '%' : '#'} ${t('card.visitors')}`}\n \n setChartPercent(R.not)}\n color=\"primary\"\n className={classes.chartButton}\n >\n {`${chartPercent ? '#' : '%'} ${t('card.visitors')}`}\n \n
\n
\n (value === 0 ? '' : value),\n },\n }],\n },\n }}\n legend={{ display: false }}\n data={{\n labels: [0, 25, 50, 75, 100],\n datasets: [{\n data: utilizationStats.buckets.map(R.prop(chartPercent ? 'percentage' : 'visitors')),\n backgroundColor: ['#E06307', '#120C9B', '#99319D', '#EFD828'],\n barThickness: 36,\n }],\n }}\n />\n
\n
\n
\n \n {`${t('card.singlePackageUsage')} [%]`}\n \n
\n
\n \n \n \n \n \n {`${t('card.packageUsage')} [%]*`}\n \n \n \n \n \n {utilizationStats.attractions.map((attraction) => (\n \n \n \n \n \n \n ))}\n \n
\n {t('card.attraction')}\n \n {t('card.discount')}\n
\n {attraction.name}\n \n {`${Math.round((attraction.usage.used / attraction.usage.available) * 100)}%`}\n \n {`(${attraction.usage.used}/${attraction.usage.available})`}\n \n {attraction.discount.type === 'PERCENTAGE' && (\n t('card.discountValue', { value: `${attraction.discount.amount}%` })\n )}\n {attraction.discount.type === 'PLN' && (\n t('card.discountValue', { value: `${attraction.discount.amount} PLN` })\n )}\n {attraction.discount.type === 'FREE_ENTRY' && t('card.freeEntranceLower')}\n
\n \n {`*(${t('card.usageDesc')})`}\n \n
\n
\n \n {t('card.salesAndAdmissionsFor')}\n \n \n
\n {admissionStats && (\n <>\n \n {`${t('card.packagesSold')}: `}\n \n {admissionStats.sold}\n \n \n \n \n \n \n \n {t('card.admissions')}\n \n \n \n \n {admissionStats.attractions.map((attraction) => (\n \n \n \n \n ))}\n \n \n \n \n \n {R.sum(admissionStats.attractions.map(R.prop('admissions')))}\n \n \n \n
\n {t('card.attraction')}\n
\n {attraction.name}\n \n {attraction.admissions}\n
\n {t('card.total')}\n
\n \n {t('card.exportReport')}\n \n \n )}\n \n )}\n
\n
\n );\n}\n","import React, {\n useEffect, useRef, useState, Fragment,\n} from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from '@material-ui/core';\nimport {\n Map, Marker, Popup, ScaleControl, TileLayer,\n} from 'react-leaflet';\nimport MarkerClusterGroup from 'react-leaflet-markercluster';\nimport * as R from 'ramda';\nimport leaflet from 'leaflet';\nimport classNames from 'classnames';\nimport { Bar } from 'react-chartjs-2';\nimport PeriodSelect, { getPeriod, IDateRange } from '../common/PeriodSelect';\nimport { IAdmissionStats } from '../interfaces';\nimport { axios } from '../utils';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 16,\n },\n row: {\n display: 'flex',\n marginBottom: 24,\n },\n header: {\n fontSize: 24,\n fontWeight: 700,\n marginRight: 50,\n },\n markerIcon: {\n borderRadius: '50%',\n fontSize: 35,\n fontWeight: 700,\n fontFamily: '\"Roboto\"',\n color: 'white',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n map: {\n width: '100%',\n height: 'calc(100vh - 260px)',\n },\n color1: {\n backgroundColor: 'rgb(0, 141, 202, 0.7)',\n },\n color2: {\n backgroundColor: 'rgb(75, 195, 230, 0.7)',\n },\n color3: {\n backgroundColor: 'rgb(112, 129, 17, 0.7)',\n },\n color4: {\n backgroundColor: 'rgb(243, 149, 63, 0.7)',\n },\n color5: {\n backgroundColor: 'rgb(215, 53, 52, 0.7)',\n },\n popup: {\n backgroundColor: 'white',\n maxHeight: 600,\n overflow: 'auto',\n paddingRight: 8,\n '& > :first-child': {\n boxShadow: 'none',\n padding: 0,\n '& > div': {\n margin: '16px 24px',\n '& p': {\n margin: 0,\n },\n },\n },\n '& > :last-child': {\n display: 'none',\n },\n },\n site: {\n fontWeight: 700,\n margin: '0 0 8px 0 !important',\n color: '#37001F',\n },\n attraction: {\n fontWeight: 700,\n margin: '0 0 4px 0 !important',\n color: '#37001F',\n },\n admissions: {\n fontWeight: 400,\n color: '#37001F',\n margin: '0 0 4px 0 !important',\n },\n admissionsValue: {\n fontSize: 20,\n fontWeight: 700,\n },\n chartOuterContainer: {\n display: 'inline-flex',\n flexDirection: 'column',\n marginBottom: 24,\n },\n chartInnerContainer: {\n display: 'flex',\n },\n chart: {\n width: 250,\n },\n yLabel: {\n paddingTop: 5,\n },\n xLabel: {\n textAlign: 'right',\n paddingRight: 10,\n },\n chartLabel: {\n fontSize: 9,\n color: '#37001F',\n whiteSpace: 'nowrap',\n },\n});\n\nexport default function VisitorAttendance() {\n const classes = useStyles();\n const { t } = useTranslation();\n const [dateRange, setDateRange] = useState(null);\n const [stats, setStats] = useState([]);\n const mapRef = useRef();\n const [dataMax, setDataMax] = useState(0);\n const [maxCount, setMaxCount] = useState(0);\n useEffect(() => {\n (async () => {\n if (dateRange && dateRange.from && dateRange.to) {\n const { data }: { data: IAdmissionStats[] } = await axios.get('/card/statistics/admissions', {\n params: {\n from: dateRange.from.format('YYYY-MM-DD'),\n to: dateRange.to.format('YYYY-MM-DD'),\n },\n });\n const filteredData = data.filter((x) => x.attractions);\n setStats(filteredData);\n const max = R.reduce(Math.max, 0, filteredData.map((x) => R.sum(\n x.attractions.map(R.prop('admissionsTotal')),\n )));\n setMaxCount(max);\n setDataMax(max);\n if (filteredData.length > 1) {\n mapRef.current.leafletElement.fitBounds(\n new leaflet.LatLngBounds(filteredData.map(({ site: { lat, lon } }) => [lat, lon])),\n {\n padding: [64, 64],\n },\n );\n }\n } else {\n mapRef.current.leafletElement.fitBounds(\n new leaflet.LatLngBounds([\n [56.464660, 14.408800],\n [53.570577, 19.443904],\n ]),\n );\n }\n })();\n }, [dateRange]);\n const makeIcon = (count: number) => {\n const percent = (count / maxCount) * 100;\n return leaflet.divIcon({\n className: classNames(classes.markerIcon, {\n [classes.color1]: percent < 20,\n [classes.color2]: percent >= 20 && percent < 40,\n [classes.color3]: percent >= 40 && percent < 60,\n [classes.color4]: percent >= 60 && percent < 80,\n [classes.color5]: percent >= 80,\n }),\n html: `${count}`,\n iconSize: [100, 100],\n });\n };\n const periodText = (() => {\n switch (getPeriod(dateRange)) {\n case 'today':\n return t('card.mapToday');\n case 'yesterday':\n return t('card.mapYesterday');\n case 'last7Days':\n return t('card.mapLastDays', { days: 7 });\n case 'last30Days':\n return t('card.mapLastDays', { days: 30 });\n case 'last90Days':\n return t('card.mapLastDays', { days: 90 });\n case 'custom':\n if (dateRange && dateRange.from && dateRange.to) {\n return t('card.mapFromTo', {\n from: dateRange.from.format('DD.MM.YYYY'),\n to: dateRange.to.format('DD.MM.YYYY'),\n });\n }\n return '';\n default:\n return '';\n }\n })();\n return (\n
\n
\n \n {t('card.period')}\n \n \n
\n {\n const markerPane = mapRef.current.leafletElement.getPane('markerPane');\n const counts = [...markerPane.children].map((x) => Number(x.textContent));\n setMaxCount(R.reduce(Math.max, dataMax, counts));\n }}\n >\n \n \n (\n makeIcon(R.sum(cluster.getAllChildMarkers().map((x) => (\n Number((x.options.icon!.options as { html: string }).html)\n ))))\n )}\n animate={false}\n >\n {stats.map((x) => {\n const siteAdmissions = R.sum(x.attractions.map(R.prop('admissionsTotal')));\n return (\n \n \n \n {x.site.name}\n \n {x.attractions.map((attraction) => (\n \n \n {attraction.name}\n \n \n \n {attraction.admissionsTotal}\n \n {` ${t('card.mapAdmissions', {\n count: attraction.admissionsTotal,\n })} ${periodText}`}\n \n
\n
\n
\n \n {`# ${t('card.visitors')}`}\n \n
\n
\n (value === 0 ? '' : value),\n // @ts-ignore\n precision: 0,\n },\n }],\n },\n }}\n legend={{ display: false }}\n data={{\n labels: [\n ...attraction.admissionsByHour.map(R.prop('from')),\n R.last(attraction.admissionsByHour)?.to || '',\n ],\n datasets: [{\n data: attraction.admissionsByHour.map(R.prop('visits')),\n backgroundColor: '#034EA2',\n barThickness: 25,\n }],\n }}\n />\n
\n
\n
\n \n {t('card.time')}\n \n
\n
\n
\n ))}\n \n \n );\n })}\n \n \n
\n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n useHistory, useParams, Switch, Redirect, Route,\n} from 'react-router-dom';\nimport { Tab, Tabs } from '@material-ui/core';\nimport { useGetLink } from '../utils';\nimport PackageUsage from './PackageUsage';\nimport VisitorAttendance from './VisitorAttendance';\n\nconst useStyles = makeStyles({\n root: {\n width: '100%',\n },\n tabs: {\n margin: '0 -32px',\n backgroundColor: '#F5F5F5',\n paddingTop: 16,\n },\n tab: {\n textTransform: 'none',\n fontSize: 16,\n fontWeight: 300,\n width: 400,\n },\n});\n\nexport default function Statistics() {\n const classes = useStyles();\n const { t } = useTranslation();\n const history = useHistory();\n const getLink = useGetLink();\n const { tab } = useParams<{ tab: string; }>();\n if (!tab) {\n return (\n \n );\n }\n return (\n
\n history.push(getLink(`/card/statistics/${value}`))}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n centered\n className={classes.tabs}\n >\n \n \n \n \n \n \n \n
\n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Button, Dialog, FormControlLabel, InputAdornment, Radio, RadioGroup, TextField, Typography,\n} from '@material-ui/core';\nimport classNames from 'classnames';\nimport * as R from 'ramda';\nimport { ICardTemplate, IDiscountType } from '../interfaces';\nimport CustomAutocomplete from '../common/CustomAutocomplete';\nimport { ReactComponent as Search } from '../assets/search.svg';\nimport { axios } from '../utils';\nimport AppContext from '../context';\n\ninterface IUserInfo {\n id: string;\n number: string;\n name: string;\n email: string;\n cards: {\n number: number;\n packages: string[];\n }[];\n}\n\ninterface IAttraction {\n site: string;\n attraction: string;\n discount: {\n entries: number;\n type: IDiscountType;\n savings: number;\n entryFee: number;\n };\n}\n\ninterface IPackage {\n id: number;\n name: string;\n price: number;\n value: number;\n discounts: IAttraction[];\n image: number | null;\n}\n\nconst useStyles = makeStyles({\n root: {\n flexGrow: 1,\n marginTop: 32,\n },\n header: {\n fontSize: 24,\n fontWeight: 700,\n color: '#37001F',\n marginBottom: 8,\n },\n searchContainer: {\n margin: '0 -24px',\n padding: '16px 24px 4px',\n width: 'calc(100% + 48px)',\n backgroundColor: '#F5F5F5',\n },\n searchRow: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 8,\n },\n search: {\n width: 440,\n backgroundColor: 'white',\n },\n searchButton: {\n marginLeft: 24,\n },\n name: {\n fontWeight: 700,\n },\n userInfo: {\n color: '#37001F',\n fontSize: 20,\n marginBottom: 12,\n height: 30,\n },\n cards: {\n display: 'flex',\n flexWrap: 'wrap',\n minHeight: 57,\n },\n card: {\n padding: '4px 12px',\n color: '#37001F',\n marginRight: 12,\n marginBottom: 12,\n border: '1px solid #9E9E9E',\n borderRadius: 15,\n fontSize: 20,\n '&:hover': {\n borderColor: '#9E9E9E',\n },\n },\n cardSelected: {\n color: 'white',\n },\n radioGroup: {\n margin: '16px 0',\n },\n formControlLabel: {\n marginRight: 60,\n },\n images: {\n display: 'flex',\n marginBottom: 32,\n },\n image: {\n borderRadius: 5,\n marginRight: 24,\n padding: 0,\n },\n selectedImage: {\n '&::before': {\n content: '\"\"',\n width: '100%',\n height: '100%',\n border: '5px solid #A1145C',\n position: 'absolute',\n borderRadius: 5,\n },\n },\n field: {\n width: 440,\n marginBottom: 24,\n display: 'flex',\n },\n dialog: {\n padding: '24px 32px',\n },\n dialogText: {\n color: '#37001F',\n marginBottom: 40,\n },\n dialogButtons: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n generateButton: {\n width: 250,\n },\n bottom: {\n display: 'flex',\n },\n packageInfo: {\n flexGrow: 1,\n padding: '16px 24px',\n backgroundColor: '#F5F5F5',\n marginLeft: 40,\n },\n row: {\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: 8,\n '& > :last-child': {\n textAlign: 'right',\n },\n },\n text: {\n color: '#37001F',\n fontSize: 20,\n },\n boldText: {\n color: '#37001F',\n fontSize: 20,\n fontWeight: 700,\n },\n packageName: {\n color: '#37001F',\n fontSize: 24,\n fontWeight: 700,\n },\n template: {\n width: 82,\n height: 52,\n },\n});\n\nexport default function Cards() {\n const classes = useStyles();\n const { t } = useTranslation();\n const { showSnackbar } = useContext(AppContext);\n const [search, setSearch] = useState('');\n const [user, setUser] = useState(null);\n const [card, setCard] = useState(null);\n const [isNew, setIsNew] = useState(true);\n const [image, setImage] = useState(null);\n const [cardNumber, setCardNumber] = useState('');\n const [newPackage, setNewPackage] = useState(null);\n const [name, setName] = useState('');\n const [interconnectNumber, setInterconnectNumber] = useState('');\n const [dialogOpen, setDialogOpen] = useState(false);\n const [packages, setPackages] = useState(null);\n const [templates, setTemplates] = useState(null);\n const [noResults, setNoResults] = useState(false);\n const [saving, setSaving] = useState(false);\n useEffect(() => {\n (async () => {\n const [{ data }, { data: templatesData }] = await Promise.all([\n axios.get('/card/packages/on-sale'),\n axios.get('/card/templates'),\n ]);\n setPackages(data);\n setTemplates(templatesData);\n })();\n }, []);\n if (!packages || !templates) return null;\n const resetState = () => {\n setSearch('');\n setUser(null);\n setIsNew(true);\n setImage(null);\n setCardNumber('');\n setNewPackage(null);\n setName('');\n setInterconnectNumber('');\n };\n return (\n
\n \n {t('card.card')}\n \n
\n {\n event.preventDefault();\n const { data } = await axios.get('/card/tourists', {\n params: { query: search },\n });\n if (data[0]) {\n setNoResults(false);\n const newUser = data[0];\n setUser(newUser);\n setName(newUser.name);\n setInterconnectNumber(newUser.number);\n } else {\n setNoResults(true);\n setUser(null);\n }\n }}\n >\n setSearch(target.value)}\n label={t('card.interconnectNumberOrEmail')}\n variant=\"outlined\"\n size=\"small\"\n className={classes.search}\n />\n \n {t('card.search')}\n \n \n \n {noResults && t('card.noResults')}\n {user && (\n <>\n \n {user.name}\n \n {` #${user.number} ${user.email}`}\n \n )}\n \n
\n {user && user.cards.map((x) => (\n {\n if (x.number === card) {\n setCard(null);\n setIsNew(true);\n setCardNumber('');\n } else {\n setCard(x.number);\n setIsNew(false);\n setCardNumber(String(x.number));\n }\n }}\n >\n {`${x.number}: ${x.packages.join(', ')}`}\n \n ))}\n
\n
\n {\n setIsNew(target.value === 'new');\n if (target.value === 'new') {\n setCardNumber('');\n }\n }}\n className={classes.radioGroup}\n row\n >\n }\n label={t('card.new')}\n className={classes.formControlLabel}\n />\n }\n label={t('card.existing')}\n className={classes.formControlLabel}\n />\n \n
\n {templates.map((x) => (\n setImage(x.id)}\n className={classNames(classes.image, {\n [classes.selectedImage]: x.id === image,\n })}\n >\n \n \n ))}\n
\n
\n
\n setCardNumber(target.value)}\n label={t('card.cardNumber')}\n variant=\"outlined\"\n size=\"small\"\n className={classes.field}\n disabled={isNew}\n />\n {\n setNewPackage(value);\n if (value && value.image) {\n setImage(value.image);\n }\n }}\n label={t('card.addPackage')}\n getOptionLabel={R.prop('name')}\n className={classes.field}\n />\n setName(target.value)}\n label={t('card.firstAndLastName')}\n variant=\"outlined\"\n size=\"small\"\n className={classes.field}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n setInterconnectNumber(target.value)}\n label={t('card.interconnectNumber')}\n variant=\"outlined\"\n size=\"small\"\n className={classes.field}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n {\n if (!newPackage) return;\n if (isNew) {\n try {\n setSaving(true);\n await axios.post('/card', {\n package: newPackage.id,\n ownerName: name,\n ownerId: interconnectNumber || null,\n image,\n });\n showSnackbar(t('card.cardGenerated'));\n resetState();\n } finally {\n setSaving(false);\n }\n } else {\n setDialogOpen(true);\n }\n }}\n >\n {isNew ? t('card.generateNewCard') : t('card.addPackageToCard')}\n \n
\n {newPackage && (\n
\n
\n \n {newPackage.name}\n \n
\n \n {`${t('card.price')}: `}\n {newPackage.price\n ? `${newPackage.price.toFixed(2)} PLN`\n : t('card.free')}\n \n \n {`${t('card.packageWorth')}: ${newPackage.value.toFixed(2)} PLN`}\n \n
\n
\n {newPackage.discounts.map((attraction) => {\n const { savings, entryFee } = attraction.discount;\n return (\n
\n
\n \n {attraction.site}\n \n \n {attraction.attraction}\n \n
\n
\n \n {`${attraction.discount.entries}x `}\n {entryFee === 0\n ? t('card.freeEntrance')\n : t('card.entry', { price: `${entryFee.toFixed(2)} PLN` })}\n \n \n {`${t('card.youSave')} ${savings.toFixed(2)} PLN`}\n \n
\n
\n );\n })}\n
\n )}\n
\n setDialogOpen(false)}\n PaperProps={{ className: classes.dialog }}\n >\n \n {t('card.confirmAdd')}\n \n
\n setDialogOpen(false)}\n >\n {t('common.cancel')}\n \n {\n if (!newPackage) return;\n try {\n setSaving(true);\n await axios.post(`/card/${cardNumber}/package`, {\n package: newPackage.id,\n ownerName: name,\n ownerId: interconnectNumber || null,\n image,\n });\n showSnackbar(t('card.packageAdded'));\n resetState();\n setDialogOpen(false);\n } finally {\n setSaving(false);\n }\n }}\n >\n {t('data.add')}\n \n
\n \n
\n );\n}\n","import React, { useContext } from 'react';\nimport { Link as MuiLink, makeStyles, Typography } from '@material-ui/core';\nimport {\n NavLink, Redirect, Route, Switch,\n} from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport i18next from 'i18next';\nimport logo from '../assets/interconnect-logo.svg';\nimport { useGetLink } from '../utils';\nimport AppContext, { CardContext } from '../context';\nimport Roles from './Roles';\nimport UserMenu from '../common/UserMenu';\nimport Site from './Site';\nimport Attraction from './Attraction';\nimport Organizations from './Organizations';\nimport Packages from './Packages';\nimport Statistics from './Statistics';\nimport Cards from './Cards';\n\nconst useStyles = makeStyles({\n root: {\n minHeight: '100vh',\n backgroundColor: 'white',\n padding: '0 32px',\n display: 'flex',\n flexDirection: 'column',\n '@media (max-width: 1000px)': {\n padding: '0 16px',\n },\n '@media (max-width: 1000px), (max-height: 800px)': {\n height: 'auto',\n minHeight: '100vh',\n },\n },\n nav: {\n height: 43,\n flexShrink: 0,\n padding: '0 32px',\n margin: '0 -32px',\n display: 'flex',\n alignItems: 'center',\n backgroundColor: 'rgba(232, 232, 232, 0.5)',\n },\n logo: {\n height: 41,\n marginRight: 'auto',\n },\n navIconLink: {\n display: 'flex',\n justifyContent: 'center',\n width: 100,\n padding: '8px 0',\n },\n navLink: {\n color: '#a1145c',\n fontSize: 20,\n textDecoration: 'none',\n textAlign: 'center',\n width: 200,\n whiteSpace: 'nowrap',\n margin: '0 16px',\n },\n active: {\n fontWeight: 700,\n },\n main: {\n flexGrow: 1,\n minHeight: 400,\n display: 'flex',\n },\n footer: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: '24px 0',\n '@media (max-width: 1000px)': {\n flexDirection: 'column',\n alignItems: 'center',\n },\n },\n switch: {\n '@media (max-width: 1000px)': {\n marginBottom: 16,\n },\n },\n switchText: {\n fontSize: 12,\n },\n copyright: {\n whiteSpace: 'nowrap',\n fontSize: 12,\n color: '#37001F',\n },\n});\n\nexport default function Card() {\n const classes = useStyles();\n const { t, i18n } = useTranslation();\n const getLink = useGetLink();\n const { name, user, interconnectNumber } = useContext(AppContext);\n if (!name || !user) return null;\n return (\n \n
\n
\n \n {user.role === 'ADMIN' && (\n \n {t('card.organizations')}\n \n )}\n {(user.role === 'ADMIN' || ['CARD_OFFERS_MANAGER', 'SITE_MANAGER'].includes(user.cardRole || '')) && (\n \n {t('card.roles')}\n \n )}\n {user.cardRole === 'CARD_OFFERS_MANAGER' && (\n \n {t('card.packages')}\n \n )}\n {user.cardRole === 'SITE_MANAGER' && (\n \n {t('card.site')}\n \n )}\n {user.cardRole === 'CARD_SELLER' && (\n \n {t('card.cards')}\n \n )}\n {user.cardRole === 'CARD_OFFERS_MANAGER' && (\n \n {t('card.statistics')}\n \n )}\n \n
\n
\n \n {user.cardRole === 'CARDS_ADMIN' && (\n \n )}\n {(['CARDS_ADMIN', 'CARD_OFFERS_MANAGER', 'SITE_MANAGER'].includes(user.cardRole || '')) && (\n \n )}\n {user.cardRole === 'CARD_OFFERS_MANAGER' && (\n \n )}\n {user.cardRole === 'CARD_OFFERS_MANAGER' && (\n \n )}\n {user.cardRole === 'SITE_MANAGER' && (\n \n )}\n {user.cardRole === 'SITE_MANAGER' && (\n \n )}\n {user.cardRole === 'CARD_SELLER' && (\n \n )}\n {user.cardRole === 'CARD_SELLER' && (\n \n )}\n {(['CARDS_ADMIN', 'CARD_OFFERS_MANAGER', 'SITE_MANAGER'].includes(user.cardRole || '')) && (\n \n )}\n \n
\n
\n {\n i18next.changeLanguage(i18n.language === 'pl' ? 'en' : 'pl');\n }}\n >\n \n {t('footer.switchLanguage')}\n \n \n \n Copyright © 2020 Innobaltica Sp. z o.o.\n \n
\n
\n \n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Nav from './Nav';\nimport Footer from './Footer';\nimport SupportContent from '../common/SupportContent/SupportContent';\n\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n minHeight: '100vh',\n },\n footerContainer: {\n marginTop: 'auto',\n },\n});\n\nexport default function Support() {\n const classes = useStyles();\n return (\n
\n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 2,\n height: 3,\n transform: \"translate(14 2)\",\n fill: \"#37001f\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(5 2)\",\n fill: \"#fff\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 2,\n height: 3,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n x: 0.5,\n y: 0.5,\n width: 1,\n height: 2,\n fill: \"none\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 17,\n height: 16,\n transform: \"translate(2 3)\",\n fill: \"#37001f\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-118.775 -382.6)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53,125.627h3.387V123\",\n transform: \"translate(69.726 268.997)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 0.55,\n transform: \"translate(132.542 396.562)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6934.484,159.746h3.257v10.378\",\n transform: \"translate(-6799.762 226.112)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(120.775 384.6)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x2: 7.673,\n transform: \"translate(4.647 1.244)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 1.758,\n height: 3.164,\n transform: \"translate(12.112)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 17.282,\n transform: \"translate(0.084 5.115)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,0H9.678\",\n transform: \"translate(5.338 10.024)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 9.75,\n transform: \"translate(2.02 12.512)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 5.323,\n transform: \"translate(5.407 10.024)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 7.95,\n transform: \"translate(8.518 7.397)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 4.565,\n transform: \"translate(11.767 7.397)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M53,125.627h3.387V123\",\n transform: \"translate(-51.05 -115.603)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(10.343 10.535)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#37001f\",\n stroke: \"#36001e\",\n strokeWidth: 1\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4.829,\n cy: 4.829,\n r: 4.829,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 4.829,\n cy: 4.829,\n r: 4.329,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6916.572,284.154v3.316l-1.766,1.493\",\n transform: \"translate(-6911.744 -282.421)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6924.565,159.746h-2.789v15.716h11.049\",\n transform: \"translate(-6921.776 -158.488)\",\n fill: \"none\",\n stroke: \"#37001f\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 1.758,\n height: 3.164,\n transform: \"translate(2.987)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n})));\n\nvar SvgTimetable = function SvgTimetable(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTimetable, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/timetable.7d8f9a4a.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(0 0)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n transform: \"translate(0 0)\",\n fill: \"rgba(0,0,0,0)\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(1.807 2.868)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63,63.556v-15.8A2.762,2.762,0,0,1,65.778,45h11a2.762,2.762,0,0,1,2.778,2.751v15.8\",\n transform: \"translate(-61.083 -45)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63,332.815h3.192V331H76.36v1.815h3.192\",\n transform: \"translate(-61.083 -314.259)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 16.552,\n transform: \"translate(1.917 16.741)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.811,\n height: 1.372,\n transform: \"translate(4.105 13.171)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.811,\n height: 1.372,\n transform: \"translate(13.445 13.171)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.468,\n height: 1.924,\n transform: \"translate(1.924 6.655) rotate(90)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.468,\n height: 1.924,\n transform: \"translate(20.412 6.655) rotate(90)\",\n fill: \"rgba(0,0,0,0)\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 16.552,\n transform: \"translate(1.917 3.395)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 16.552,\n transform: \"translate(1.917 10.537)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 7.141,\n transform: \"translate(10.193 3.395)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n})));\n\nvar SvgBusWhite = function SvgBusWhite(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgBusWhite, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/bus-white.240f0729.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 3,\n height: 1,\n transform: \"translate(4 21)\",\n fill: \"none\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-247.807 -135)\"\n}, /*#__PURE__*/React.createElement(\"rect\", {\n width: 3,\n height: 1,\n transform: \"translate(264.807 156)\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 1,\n height: 2,\n transform: \"translate(267.807 146)\",\n fill: \"#a1145c\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2,\n height: 2,\n transform: \"translate(249.807 146)\",\n fill: \"none\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.812,42l11.607.168,1.755.841.679,1.4V58.2H63V44.8l.566-1.626Z\",\n transform: \"translate(188.643 97.558)\",\n fill: \"none\",\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(249.807 139.726)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63,62.774V47.635A2.645,2.645,0,0,1,65.661,45H76.193a2.645,2.645,0,0,1,2.661,2.635V62.774\",\n transform: \"translate(-61.163 -45)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63,332.738h3.058V331H75.8v1.738h3.058\",\n transform: \"translate(-61.163 -314.964)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 15.854,\n transform: \"translate(1.837 16.036)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.692,\n height: 1.314,\n transform: \"translate(3.932 12.615)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.692,\n height: 1.314,\n transform: \"translate(12.878 12.615)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.364,\n height: 1.843,\n transform: \"translate(1.843 6.375) rotate(90)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.364,\n height: 1.843,\n transform: \"translate(19.552 6.375) rotate(90)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 15.854,\n transform: \"translate(1.837 3.252)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 15.854,\n transform: \"translate(1.837 10.092)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 6.84,\n transform: \"translate(9.764 3.252)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n})), /*#__PURE__*/React.createElement(\"line\", {\n y1: 3,\n x2: 2.5,\n transform: \"translate(256.654 136.5)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y1: 3,\n x2: 2.5,\n transform: \"translate(262.366 136.5)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}));\n\nvar SvgTrolleybusWhite = function SvgTrolleybusWhite(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTrolleybusWhite, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/trolleybus-white.72a2a31c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.739,47.65a1.637,1.637,0,0,1,.059-.532c0-.118.059-.118.3-.118h1c.236.059.236.059.236.177v.532c0,.059,0,.059.768.118.768,0,2.305,0,3.192.059a2.49,2.49,0,0,1,1.3.177,6.443,6.443,0,0,1,.768.65,5.105,5.105,0,0,1,.591.946,8.8,8.8,0,0,1,.118,2.6v7.567a12.936,12.936,0,0,1-.059,2.365,4.667,4.667,0,0,1-.177.768,5.2,5.2,0,0,1-.355.591,4.515,4.515,0,0,1-.532.532,1.968,1.968,0,0,1-.591.355,2.125,2.125,0,0,1-.65.118,13.583,13.583,0,0,1-2.246.059H80.079a14.953,14.953,0,0,1-2.187-.118,5.759,5.759,0,0,1-.65-.3,5.33,5.33,0,0,1-.532-.591,3.133,3.133,0,0,1-.473-.887,5.007,5.007,0,0,1-.236-1v-9.99a5.412,5.412,0,0,1,.118-1.892,3.54,3.54,0,0,1,.473-.946,2.045,2.045,0,0,1,.65-.591,3.089,3.089,0,0,1,.887-.414,12.915,12.915,0,0,1,1.655-.059c.709-.059,1.6-.059,2.069-.059h.709C82.621,47.768,82.68,47.768,82.739,47.65Z\",\n transform: \"translate(-71.507 -44.222)\",\n fill: \"none\",\n fillRule: \"evenodd\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(4.493 1.005)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x2: 15.074,\n transform: \"translate(0 5.379)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M331,109v11.054\",\n transform: \"translate(-315.926 -103.562)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76,74.01V62.9A2.729,2.729,0,0,1,78.542,60H88.591a2.724,2.724,0,0,1,2.483,2.9\",\n transform: \"translate(-76 -57.458)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"line\", {\n x1: 10.167,\n transform: \"translate(2.483 19.389)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 15.074,\n transform: \"translate(0 12.887)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M123.759,18.123V17.65c0-.355-.591-.65-1.241-.65h-8.335c-.65,0-1.182.3-1.182.65v.473\",\n transform: \"translate(-110.813 -17)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M76,287.532a2.729,2.729,0,0,0,2.542,2.9H88.591a2.724,2.724,0,0,0,2.483-2.9V287\",\n transform: \"translate(-76 -271.039)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M82.365,345a5.166,5.166,0,0,1-.887,1.419,6.906,6.906,0,0,1-1.241.946l-.236.177\",\n transform: \"translate(-79.764 -325.611)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M287,345a5.166,5.166,0,0,0,.887,1.419,6.907,6.907,0,0,0,1.241.946l.3.177\",\n transform: \"translate(-274.527 -325.611)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.405,\n height: 2.405,\n transform: \"translate(2.601 14.66)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 2.405,\n height: 2.405,\n transform: \"translate(10.108 14.66)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"rect\", {\n width: 1.574,\n height: 0.802,\n transform: \"translate(6.739 1.773)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}));\n\nvar SvgTramWhite = function SvgTramWhite(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTramWhite, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/tram-white.24905c58.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M61.015,24.128c.65-.059,1.714-.059,2.246-.059.473,0,.473,0,.473-.236a6.079,6.079,0,0,1,.059-1,1,1,0,0,1,.118-.532.416.416,0,0,1,.3-.236A8.314,8.314,0,0,1,65.271,22h2.9c.768.059.887.118,1,.236a.925.925,0,0,1,.236.591v1c0,.236,0,.236.414.236h1.655a6.973,6.973,0,0,1,1.3.118,3.414,3.414,0,0,1,1,.355,10.567,10.567,0,0,1,.828.768,1.822,1.822,0,0,1,.414.828c.118.236.118.532.118,2.66.059,2.128,0,6.03,0,7.98-.059,2.01-.059,2.01-.118,2.128a2.491,2.491,0,0,1-.414.768,2.679,2.679,0,0,1-1,.768c-.355.236-.828.355-3.074.355-2.187.059-6.207.059-8.394-.059-2.187-.059-2.6-.236-2.9-.473a2.6,2.6,0,0,1-.828-.946,6.189,6.189,0,0,1-.355-2.542C58,35.123,58,32.167,58,30.335s0-2.66.059-3.251a2.644,2.644,0,0,1,.3-1.3,2.338,2.338,0,0,1,.591-.887,3.255,3.255,0,0,1,.828-.532A3.741,3.741,0,0,1,61.015,24.128Z\",\n transform: \"translate(-54.571 -20.7)\",\n fill: \"none\",\n fillRule: \"evenodd\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(3.429 1.3)\"\n}, /*#__PURE__*/React.createElement(\"line\", {\n x2: 17.202,\n transform: \"translate(0 4.847)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n x2: 17.202,\n transform: \"translate(0 12.355)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M349,106v11.054\",\n transform: \"translate(-331.798 -101.034)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58,70.951V59.9A2.889,2.889,0,0,1,60.837,57H72.305a2.9,2.9,0,0,1,2.9,2.9\",\n transform: \"translate(-58 -54.931)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1.3,\n cy: 1.3,\n r: 1.3,\n transform: \"translate(7.271 13.714)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M160.675,24.069V22.65a.656.656,0,0,0-.65-.65H155.65a.656.656,0,0,0-.65.65v1.419\",\n transform: \"translate(-149.266 -22)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58,293a2.889,2.889,0,0,0,2.837,2.9H72.305a2.9,2.9,0,0,0,2.9-2.9\",\n transform: \"translate(-58 -276.98)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.365,342a4.888,4.888,0,0,1-.887,1.36,5.411,5.411,0,0,1-1.241,1l-.236.177\",\n transform: \"translate(-65.527 -323.084)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M300,342a4.888,4.888,0,0,0,.887,1.36,5.411,5.411,0,0,0,1.241,1l.3.177\",\n transform: \"translate(-285.695 -323.084)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1,\n fillRule: \"evenodd\"\n}));\n\nvar SvgTrainWhite = function SvgTrainWhite(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgTrainWhite, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/train-white.ffced0a5.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.379,2.309h5.2V5.148h2.647V9.519l2.877,1.4-2.366,6.975H5.682L3.822,10.918,6.8,9.519V5.148h2.58Z\",\n fill: \"none\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"none\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-432.919 -394)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5082.79,9167l-8.21,3.649,1.987,7.3h12.5l1.938-7.3Z\",\n transform: \"translate(5527.693 -8765.984)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5085,9167.105V9163h10.947v4.105\",\n transform: \"translate(5524.429 -8763.808)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5079,9159.193V9156h5.474v3.193\",\n transform: \"translate(5521.167 -8760)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5087,9191\",\n transform: \"translate(5525.517 -8779.037)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5123.51,9179.507a4.19,4.19,0,0,1,2.448-1.119,2.97,2.97,0,0,1,2.15,1.119\",\n transform: \"translate(5557.43 -8767.544)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5082.79,9167l-8.21,3.649,1.987,7.3h12.5l1.938-7.3Z\",\n transform: \"translate(5527.693 -8765.984)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5085,9167.105V9163h10.947v4.105\",\n transform: \"translate(5524.429 -8763.808)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5079,9159.193V9156h5.474v3.193\",\n transform: \"translate(5521.167 -8760)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5087,9191\",\n transform: \"translate(5525.517 -8779.037)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5123.51,9179.507a4.19,4.19,0,0,1,2.448-1.119,2.97,2.97,0,0,1,2.15,1.119\",\n transform: \"translate(5557.43 -8767.544)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5118.913,9179.506a4.186,4.186,0,0,0-2.448-1.119,2.972,2.972,0,0,0-2.15,1.119\",\n transform: \"translate(5574.762 -8767.543)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"line\", {\n y2: 4.105,\n transform: \"translate(444.903 401.245)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(443.306 406.49)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}, /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1.596,\n cy: 1.596,\n r: 1.596,\n stroke: \"none\"\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 1.596,\n cy: 1.596,\n r: 1.096,\n fill: \"none\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5123.51,9179.507a4.2,4.2,0,0,1,2.448-1.119,2.863,2.863,0,0,1,2.107,1.058\",\n transform: \"translate(5557.886 -8764.263)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5122.6,9178.612a2.474,2.474,0,0,0,1.886.737,2.562,2.562,0,0,0,1.921-.737\",\n transform: \"translate(5561.497 -8763.473)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5123.345,9179.445a3.955,3.955,0,0,1,2.373-1.059,2.866,2.866,0,0,1,2.106,1.059\",\n transform: \"translate(5566.005 -8764.262)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5122.6,9178.612a2.474,2.474,0,0,0,1.886.737,2.562,2.562,0,0,0,1.921-.737\",\n transform: \"translate(5569.707 -8763.473)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M-5123.345,9179.445a3.955,3.955,0,0,1,2.373-1.059,2.866,2.866,0,0,1,2.106,1.059\",\n transform: \"translate(5574.214 -8764.262)\",\n fill: \"none\",\n stroke: \"#fff\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1\n}));\n\nvar SvgFerryWhite = function SvgFerryWhite(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgFerryWhite, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/ferry-white.db9ec680.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-226.823 -148.2)\"\n}, /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(227.323 148.7)\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.752,10.329H1.978A1.865,1.865,0,0,1,0,8.607V1.721A1.865,1.865,0,0,1,1.978,0H17.807a1.866,1.866,0,0,1,1.979,1.721V8.607a1.866,1.866,0,0,1-1.979,1.721H16V5.612H3.752v4.716Z\",\n transform: \"translate(0 5.789)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0,0H12.245V5.77H0Z\",\n transform: \"translate(3.752)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 0.765,\n cy: 0.765,\n r: 0.765,\n transform: \"translate(17.129 7.188)\",\n fill: \"#a1145c\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M192,162.14v3.642h12.255v-4.54\",\n transform: \"translate(-188.248 -145.783)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M193.9,159.972h8.014\",\n transform: \"translate(-187.605 -145.992)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M193.9,159.972h6.221\",\n transform: \"translate(-187.647 -144.383)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n}), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M193.9,159.972h8.014\",\n transform: \"translate(-187.605 -142.718)\",\n fill: \"none\",\n stroke: \"#a1145c\",\n strokeLinecap: \"round\",\n strokeWidth: 1\n})));\n\nvar SvgPrint = function SvgPrint(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20.786,\n height: 21,\n viewBox: \"0 0 20.786 21\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgPrint, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/print.889629fc.svg\";\nexport { ForwardRef as ReactComponent };","import React, {\n useCallback, useEffect, useRef, useState,\n} from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Map, Marker, Polyline, Popup, ScaleControl, TileLayer,\n} from 'react-leaflet';\nimport {\n Typography, useMediaQuery, Button, IconButton, TextField, MenuItem, InputAdornment, Tabs, Tab,\n} from '@material-ui/core';\nimport classNames from 'classnames';\nimport * as R from 'ramda';\nimport leaflet from 'leaflet';\nimport debounce from 'debounce-promise';\nimport moment from 'moment';\nimport { DatePicker } from '@material-ui/pickers';\nimport natsort from 'natsort';\nimport pdfMake from 'pdfmake/build/pdfmake';\nimport Nav from './Nav';\nimport Footer from './Footer';\nimport { ReactComponent as Timetable } from '../assets/timetable.svg';\nimport { ReactComponent as BusWhite } from '../assets/bus-white.svg';\nimport { ReactComponent as TrolleybusWhite } from '../assets/trolleybus-white.svg';\nimport { ReactComponent as TramWhite } from '../assets/tram-white.svg';\nimport { ReactComponent as TrainWhite } from '../assets/train-white.svg';\nimport { ReactComponent as FerryWhite } from '../assets/ferry-white.svg';\nimport bus, { ReactComponent as Bus } from '../assets/bus.svg';\nimport trolleybus, { ReactComponent as Trolleybus } from '../assets/trolleybus.svg';\nimport tram, { ReactComponent as Tram } from '../assets/tram.svg';\nimport train, { ReactComponent as Train } from '../assets/train.svg';\nimport ferry, { ReactComponent as Ferry } from '../assets/ferry.svg';\nimport { ReactComponent as DirectionArrow } from '../assets/direction-arrow.svg';\nimport { ReactComponent as Swap } from '../assets/swap.svg';\nimport { ReactComponent as Print } from '../assets/print.svg';\nimport { ReactComponent as Chevron } from '../assets/chevron-big.svg';\nimport { ReactComponent as BackArrow } from '../assets/back-arrow.svg';\nimport CustomAutocomplete from '../common/CustomAutocomplete';\nimport {\n IRouteDetails, IRouteSocket, IStop, IStopArrivals, IStopTimetable, ITimetableSearch,\n} from '../interfaces';\nimport { axios } from '../utils';\nimport VehicleIcon from '../provider/VehicleIcon';\nimport tramDelayed from '../assets/tram-delayed.svg';\nimport trainDelayed from '../assets/train-delayed.svg';\nimport trolleybusDelayed from '../assets/trolleybus-delayed.svg';\nimport busDelayed from '../assets/bus-delayed.svg';\nimport robotoLight from '../assets/Roboto-Light.ttf';\nimport robotoLightItalic from '../assets/Roboto-LightItalic.ttf';\nimport robotoRegular from '../assets/Roboto-Regular.ttf';\nimport robotoItalic from '../assets/Roboto-Italic.ttf';\n\npdfMake.fonts = {\n Roboto: {\n normal: window.location.origin + robotoLight,\n bold: window.location.origin + robotoRegular,\n italics: window.location.origin + robotoLightItalic,\n bolditalics: window.location.origin + robotoItalic,\n },\n};\n\nconst useStyles = makeStyles({\n root: {\n minHeight: '100vh',\n backgroundColor: 'white',\n display: 'flex',\n flexDirection: 'column',\n },\n main: {\n flexGrow: 1,\n display: 'flex',\n minHeight: 'calc(100vh - 43px)',\n },\n left: {\n width: 424,\n display: 'flex',\n flexDirection: 'column',\n overflowY: 'auto',\n flexShrink: 0,\n '@media (max-width: 800px)': {\n width: '100%',\n },\n },\n map: {\n flexGrow: 1,\n },\n bottom: {\n flexGrow: 1,\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: '#A1145C',\n paddingTop: 10,\n },\n top: {\n margin: 36,\n },\n header: {\n fontSize: 28,\n fontWeight: 400,\n marginBottom: 16,\n display: 'flex',\n alignItems: 'center',\n },\n headerIcon: {\n marginRight: 4,\n },\n search: {\n margin: '0 16px 16px 16px',\n width: 'calc(100% - 32px)',\n },\n meansContainer: {\n display: 'flex',\n justifyContent: 'center',\n marginBottom: 90,\n },\n means: {\n backgroundColor: '#F5F5F5',\n borderRadius: 16,\n minWidth: 60,\n padding: '3px 16px',\n margin: '0 4px',\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.15)',\n },\n },\n meansSelected: {\n backgroundColor: '#A1145C',\n '&:hover': {\n backgroundColor: '#700e40',\n },\n },\n optionTop: {\n display: 'flex',\n alignItems: 'center',\n marginBottom: 4,\n },\n optionVehicle: {\n margin: '5px 8px 5px 16px',\n display: 'flex',\n },\n optionName: {\n color: '#37001F',\n },\n optionAddress: {\n fontSize: 12,\n color: '#37001F',\n },\n directionContainer: {\n display: 'flex',\n alignItems: 'flex-start',\n marginBottom: 4,\n },\n directionArrow: {\n margin: '2px 12px 0 20px',\n flexShrink: 0,\n },\n optionDirection: {\n fontSize: 12,\n color: '#37001F',\n },\n optionRoute: {\n borderRadius: 7,\n fontSize: 14,\n fontWeight: 400,\n color: '#37001F',\n backgroundColor: '#F5F5F5',\n lineHeight: 1,\n padding: '2px 8px',\n margin: '1px 2px 1px 0',\n display: 'inline-block',\n },\n tile: {\n margin: '5px 16px',\n backgroundColor: 'white',\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.29)',\n padding: '12px 0',\n },\n optionNameBig: {\n fontSize: 23,\n fontWeight: 400,\n },\n optionTextBig: {\n fontSize: 14,\n },\n optionTopBig: {\n alignItems: 'flex-start',\n },\n right: {\n flexGrow: 1,\n backgroundColor: '#E4E4E4',\n padding: 20,\n display: 'flex',\n alignItems: 'flex-start',\n },\n departures: {\n width: 390,\n backgroundColor: 'white',\n },\n departuresHeader: {\n padding: '13px 23px',\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.16)',\n marginBottom: 25,\n },\n departuresHeaderText: {\n fontSize: 23,\n fontWeight: 400,\n },\n table: {\n marginBottom: 70,\n width: '100%',\n borderCollapse: 'collapse',\n },\n tableCell: {\n fontSize: 16,\n color: '#37001F',\n fontWeight: 300,\n padding: '4px 16px',\n '&:first-child': {\n textAlign: 'center',\n },\n '&:nth-child(2)': {\n textAlign: 'left',\n },\n '&:last-child': {\n textAlign: 'right',\n whiteSpace: 'nowrap',\n },\n },\n tableHeader: {\n fontSize: 14,\n color: '#666666',\n },\n tableRow: {\n cursor: 'pointer',\n '&:nth-child(odd)': {\n backgroundColor: '#F5F5F5',\n },\n },\n message: {\n fontWeight: 400,\n color: '#37001F',\n margin: '0 16px 50px 16px',\n },\n optionAgency: {\n fontSize: 14,\n fontWeight: 300,\n },\n switchDirection: {\n padding: 6,\n marginLeft: 12,\n },\n agencyBig: {\n fontSize: 16,\n },\n stopMarker: {\n width: 10,\n height: 10,\n backgroundColor: '#E4E4E4',\n borderRadius: '50%',\n border: '2px solid #37001F',\n },\n intermediateStopMarker: {\n width: 8,\n height: 8,\n backgroundColor: '#316FB9',\n borderRadius: '50%',\n },\n myLocationMarker: {\n width: 20,\n height: 20,\n backgroundColor: '#A1145C',\n borderRadius: '50%',\n border: '4px solid #37011F',\n },\n popup: {\n backgroundColor: 'white',\n borderRadius: 4,\n '& > :first-child': {\n boxShadow: 'none',\n padding: 0,\n '& > div': {\n margin: 6,\n '& p': {\n margin: 0,\n },\n },\n },\n '& > :last-child': {\n display: 'none',\n },\n },\n stopPopup: {\n '& > :first-child': {\n '& > div': {\n margin: '16px 24px',\n },\n },\n },\n popupStopName: {\n fontSize: 18,\n fontWeight: 400,\n },\n showDepartures: {\n marginTop: 12,\n marginLeft: 'auto',\n display: 'flex',\n },\n timetable: {\n flexGrow: 1,\n maxWidth: 600,\n backgroundColor: 'white',\n marginLeft: 16,\n },\n timetableTop: {\n padding: '13px 23px 6px',\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.16)',\n position: 'relative',\n },\n timetableHeaderRow: {\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: 16,\n },\n timetableHeader: {\n fontSize: 23,\n fontWeight: 400,\n },\n timetableRoutes: {\n display: 'flex',\n flexWrap: 'wrap',\n margin: -4,\n paddingBottom: 8,\n },\n timetableRoute: {\n backgroundColor: '#F5F5F5',\n borderRadius: 16,\n minWidth: 0,\n padding: '2px 16px',\n margin: 4,\n fontSize: 14,\n fontWeight: 400,\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.15)',\n },\n },\n timetableRouteSelected: {\n backgroundColor: '#A1145C',\n color: 'white',\n '&:hover': {\n backgroundColor: '#700e40',\n },\n },\n timetableOptions: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexWrap: 'wrap',\n },\n directionWrapper: {\n display: 'flex',\n alignItems: 'center',\n marginRight: 8,\n },\n directionLabel: {\n fontSize: 14,\n },\n direction: {\n marginLeft: 4,\n },\n directionSelect: {\n fontSize: 14,\n fontWeight: 300,\n },\n selectRoot: {\n paddingLeft: 8,\n },\n selectIcon: {\n display: 'flex',\n alignItems: 'center',\n padding: 2,\n transform: 'rotate(90deg)',\n },\n selectNoBorder: {\n border: 'none',\n },\n dateInput: {\n width: 110,\n fontSize: 14,\n fontWeight: 300,\n padding: '10px 3px 10px 0',\n },\n dateNativeInput: {\n padding: 0,\n },\n hourRow: {\n display: 'flex',\n alignItems: 'center',\n padding: '2px 16px',\n '&:nth-child(odd)': {\n backgroundColor: '#F5F5F5',\n },\n },\n hour: {\n fontSize: 20,\n fontWeight: 400,\n marginRight: 16,\n },\n minute: {\n fontSize: 14,\n marginRight: 12,\n },\n mobileHeaderContainer: {\n display: 'flex',\n padding: '0 20px 12px',\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.16)',\n alignItems: 'baseline',\n },\n mobileStopIcon: {\n flexShrink: 0,\n display: 'flex',\n },\n mobileStopHeader: {\n fontSize: 23,\n fontWeight: 400,\n lineHeight: '1',\n margin: '0 8px',\n },\n mobileStopTown: {\n fontSize: 14,\n alignSelf: 'flex-end',\n },\n tabs: {\n marginBottom: 8,\n },\n tab: {\n textTransform: 'none',\n fontWeight: 300,\n fontSize: 16,\n borderBottom: '1px solid rgba(0, 0, 0, 0.1)',\n },\n departuresContentWrapper: {\n margin: '0 16px',\n },\n mobileRouteContainer: {\n display: 'flex',\n alignItems: 'center',\n padding: 8,\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.16)',\n zIndex: 1000,\n },\n mobileMapContainer: {\n display: 'flex',\n flexDirection: 'column',\n flexGrow: 1,\n },\n goBack: {\n marginBottom: 5,\n marginRight: -12,\n },\n vehicleMarker: {\n transition: '250ms',\n },\n popupHeader: {\n fontSize: 12,\n color: '#37001F',\n marginBottom: 4,\n },\n popupText: {\n fontSize: 11,\n color: '#37001F',\n marginBottom: 4,\n },\n bottomHeader: {\n fontSize: 26,\n fontWeight: 400,\n color: 'white',\n padding: '10px 32px',\n boxShadow: '0 3px 6px rgba(0, 0, 0, 0.16)',\n margin: '5px 16px',\n },\n nearestTile: {\n display: 'flex',\n alignItems: 'flex-end',\n justifyContent: 'space-between',\n },\n nearestButton: {\n width: 32,\n height: 32,\n padding: 2,\n marginRight: 6,\n marginBottom: -8,\n },\n optionContainer: {\n marginRight: 8,\n },\n});\n\nconst sorter = natsort();\n\nexport default function Timetables() {\n const classes = useStyles();\n const { t } = useTranslation();\n const mapRef = useRef();\n const isMobile = useMediaQuery('(max-width: 800px)');\n const [selectedMeans, setSelectedMeans] = useState({\n bus: true,\n trolleybus: true,\n tram: true,\n train: true,\n ferry: true,\n });\n const [myLocation, setMyLocation] = useState<{ lat: number; lon: number; } | null>(null);\n useEffect(() => {\n if (mapRef.current) {\n mapRef.current.leafletElement.fitBounds(\n new leaflet.LatLngBounds([\n [56.464660, 14.408800],\n [53.570577, 19.443904],\n ]),\n );\n navigator.geolocation.getCurrentPosition(({ coords }) => {\n setMyLocation({ lat: coords.latitude, lon: coords.longitude });\n mapRef.current.leafletElement.setView([coords.latitude, coords.longitude], 15);\n });\n }\n }, []);\n const [searchResults, setSearchResults] = useState([]);\n const onInputChange = useCallback(debounce(async (event, query) => {\n if (query) {\n const { data } = await axios.get('/public/find-routes-stops', {\n params: {\n query,\n vehicles: Object.entries(selectedMeans)\n .filter(R.prop('1'))\n .flatMap(([type]) => {\n switch (type) {\n case 'bus':\n return [3, 700];\n case 'trolleybus':\n return [800];\n case 'tram':\n return [0, 900];\n case 'train':\n return [2, 106, 109];\n case 'ferry':\n return [4];\n default:\n return [];\n }\n })\n .join(','),\n limit: 4,\n ...(myLocation || {}),\n },\n });\n setSearchResults(data);\n } else {\n setSearchResults([]);\n }\n }, 200), [selectedMeans, myLocation]);\n const [selectedItem, setSelectedItem] = useState(null);\n const [departures, setDepartures] = useState(null);\n const [timetables, setTimetables] = useState(null);\n const [selectedRoute, setSelectedRoute] = useState(null);\n const [selectedDirection, setSelectedDirection] = useState('all');\n const [date, setDate] = useState(moment());\n const [routeDetails, setRouteDetails] = useState(null);\n const [routeRTData, setRouteRTData] = useState(null);\n const [oppositeDirection, setOppositeDirection] = useState(false);\n const [nearestStops, setNearestStops] = useState([]);\n useEffect(() => {\n (async () => {\n if (myLocation) {\n const { data } = await axios.get('/public/find-nearest-stops', {\n params: {\n limit: 4,\n ...myLocation,\n },\n });\n setNearestStops(data.map((x: any) => ({ type: 'stop', ...x })));\n }\n })();\n }, [myLocation]);\n const renderOption = (option: ITimetableSearch, big?: boolean) => (\n
\n \n
\n \n
\n
\n \n {option.type === 'stop' ? option.name : `${t('timetables.route')} ${option.name}, `}\n {option.type === 'route' && (\n \n {option.agency.name}\n \n )}\n \n {option.type === 'stop' && (\n \n {option.agency.name}\n \n )}\n
\n {big && option.type === 'route' && (\n setOppositeDirection(R.not)}\n >\n \n \n )}\n
\n {option.type === 'stop' && option.routes && (\n <>\n
\n \n \n {R.intersperse(', ', option.routes.map((route) => (\n <>\n \n {route.name}\n \n {route.headsigns.join(', ')}\n \n )))}\n \n
\n \n )}\n \n );\n const stopsOnMap = routeDetails ? routeDetails.stops[oppositeDirection ? 'opposite' : 'default'] : [];\n useEffect(() => {\n if (stopsOnMap.length >= 2) {\n mapRef.current.leafletElement.fitBounds(\n new leaflet.LatLngBounds(stopsOnMap.map(({ lat, lon }) => [lat, lon])),\n );\n }\n }, [stopsOnMap]);\n const directionTrips = routeDetails ? routeDetails.trips\n .filter((x) => x.direction === (oppositeDirection ? 1 : 0)) : null;\n const shapesOnMap = (() => {\n if (routeDetails && directionTrips) {\n const shapeIds = directionTrips.map(R.prop('shapeId')).filter((x) => x !== null);\n if (shapeIds.length > 0) {\n return routeDetails.shapes\n .filter((x) => shapeIds.includes(x.id))\n .map(({ shape }) => (\n shape.map(({ lat, lon }) => ({ lat, lng: lon }))\n ));\n }\n return directionTrips.map(({ stops }) => (\n stops.map(({ id }) => {\n const { lat, lon } = stopsOnMap.find((x) => x.id === id) as IStop;\n return { lat, lng: lon };\n })\n ));\n }\n return [];\n })();\n const vehiclesOnMap = (routeRTData && directionTrips) ? routeRTData.vehicles\n .filter((vehicle) => directionTrips.some((trip) => trip.pattern === vehicle.pattern)) : [];\n useEffect(() => {\n setSelectedDirection('all');\n if (selectedItem?.type === 'stop') {\n setRouteDetails(null);\n setRouteRTData(null);\n const { agency: { id: agencyId }, id: stopId } = selectedItem;\n const getDepartures = async () => {\n const { data } = await axios.get(`/public/${agencyId}/stop/${stopId}/arrivals`);\n setDepartures(data);\n };\n getDepartures();\n const intervalId = setInterval(getDepartures, 30 * 1000);\n return () => clearInterval(intervalId);\n }\n if (selectedItem?.type === 'route') {\n setDepartures(null);\n setTimetables(null);\n const { agency: { id: agencyId }, id: routeId } = selectedItem;\n const stringDate = moment().format('YYYY-MM-DD');\n axios.get(`/public/${agencyId}/route/${routeId}/trips?date=${stringDate}`)\n .then(({ data }) => {\n setRouteDetails(data);\n });\n const getRTData = async () => {\n const { data } = await axios.get(`/public/${agencyId}/route/${routeId}/rtdata`);\n setRouteRTData(data);\n };\n getRTData();\n const intervalId = setInterval(getRTData, 30 * 1000);\n return () => clearInterval(intervalId);\n }\n if (!selectedItem) {\n setRouteDetails(null);\n setRouteRTData(null);\n setDepartures(null);\n setTimetables(null);\n }\n return () => {};\n }, [selectedItem]);\n useEffect(() => {\n (async () => {\n if (selectedItem?.type === 'stop') {\n const stringDate = date.format('YYYY-MM-DD');\n const { agency: { id: agencyId }, id: stopId } = selectedItem;\n const { data }: { data: IStopTimetable[] } = (\n await axios.get(`/public/${agencyId}/stop/${stopId}/timetable?date=${stringDate}`)\n );\n const sorted = data.sort((a, b) => sorter(a.route, b.route));\n setTimetables(sorted);\n if (sorted.length > 0) {\n setSelectedRoute(sorted[0].route);\n }\n }\n })();\n }, [selectedItem, date]);\n const selectedTimetable = (timetables && selectedRoute)\n ? timetables.find((x) => x.route === selectedRoute)\n : null;\n const selectedTimes = (() => {\n if (!selectedTimetable) return null;\n if (selectedDirection === 'all') {\n return selectedTimetable.destinations.flatMap(R.prop('times'));\n }\n return selectedTimetable.destinations\n .find(({ headsign }) => headsign === selectedDirection)!.times;\n })();\n const departuresContent = (departures && timetables) ? (\n <>\n \n \n \n \n \n \n \n \n \n {departures.arrivals.map((x) => (\n setSelectedItem({\n type: 'route',\n id: x.routeId,\n name: x.route,\n vehicles: selectedItem!.vehicles,\n agency: selectedItem!.agency,\n })}\n >\n \n \n \n \n ))}\n \n
\n {t('timetables.route')}\n \n {t('timetables.direction')}\n \n {t('timetables.departsIn')}\n
\n {x.route}\n \n {x.headsign}\n \n {(() => {\n if (x.arrivalIn === undefined) {\n return x.time;\n }\n if (x.arrivalIn < 1) {\n return t('timetables.now');\n }\n return `${x.arrivalIn} min`;\n })()}\n
\n \n {departures.message}\n \n \n ) : null;\n const [stopTab, setStopTab] = useState<'departures' | 'timetable'>('departures');\n const timetableHeader = (departures && timetables) ? (\n <>\n
\n {timetables.map(({ route }) => (\n {\n setSelectedRoute(route);\n setSelectedDirection('all');\n }}\n >\n {route}\n \n ))}\n
\n
\n
\n \n {t('timetables.direction')}\n :\n \n setSelectedDirection(target.value)}\n variant=\"outlined\"\n size=\"small\"\n className={classes.direction}\n select\n SelectProps={{\n className: classes.directionSelect,\n classes: { root: classes.selectRoot },\n // eslint-disable-next-line react/prop-types\n IconComponent: ({ className, ...rest }) => (\n
\n \n
\n ),\n }}\n InputProps={{\n classes: {\n notchedOutline: classes.selectNoBorder,\n },\n }}\n >\n \n {t('timetables.all')}\n \n {selectedTimetable && selectedTimetable.destinations.map(({ headsign }) => (\n \n {headsign}\n \n ))}\n \n
\n {\n if (value) {\n setDate(value);\n setSelectedDirection('all');\n }\n }}\n inputVariant=\"outlined\"\n TextFieldComponent={(TextFieldProps) => (\n // @ts-ignore\n \n
\n \n
\n \n ),\n className: classes.dateInput,\n }}\n // eslint-disable-next-line react/jsx-no-duplicate-props\n inputProps={{\n className: classes.dateNativeInput,\n }}\n />\n )}\n cancelLabel={t('common.cancel')}\n format=\"MMM. D, Y\"\n />\n
\n \n ) : null;\n const timetableArray = (selectedTimetable && selectedTimes)\n ? R.sortBy(R.prop('0'), Object.entries(R.groupBy(\n (x) => x.substring(0, 2),\n selectedTimes,\n ))).map(([hour, times]) => ({\n hour,\n times: R.sortBy(R.identity, times.map((time) => time.substring(3))),\n }))\n : null;\n const timetableContent = (selectedTimetable && selectedTimes && timetableArray) ? (\n
\n {timetableArray.map(({ hour, times }) => (\n
\n \n {hour}\n \n {times.map((time) => (\n \n {time}\n \n ))}\n
\n ))}\n
\n ) : null;\n const getVehicleIcon = (delay: number = 0) => {\n const delayed = delay >= 180;\n switch (selectedItem?.vehicles[0]) {\n case 0:\n case 900:\n return delayed ? tramDelayed : tram;\n case 2:\n case 101:\n case 102:\n case 106:\n case 109:\n return delayed ? trainDelayed : train;\n case 800:\n return delayed ? trolleybusDelayed : trolleybus;\n case 1200:\n return ferry;\n case 3:\n case 700:\n case 702:\n default:\n return delayed ? busDelayed : bus;\n }\n };\n const openPdf = async () => {\n if (!selectedItem || !selectedRoute || !timetableArray) return;\n const direction = selectedDirection === 'all' ? t('timetables.all') : selectedDirection;\n pdfMake.createPdf({\n content: [\n {\n table: {\n body: [\n [\n {\n margin: [-4, -3],\n border: [true, true, true, true],\n borderColor: ['#DEDEDE', '#DEDEDE', '#DEDEDE', '#DEDEDE'],\n table: {\n body: [\n [\n {\n border: [false, false, false, false],\n columns: [\n {\n svg: (\n await axios.get(`${window.location.origin}/${getVehicleIcon()}`)\n ).data,\n width: 16,\n height: 16,\n },\n {\n text: selectedItem.name,\n fontSize: 15,\n bold: true,\n },\n ],\n columnGap: 6,\n margin: [8, 8, 8, 4],\n },\n ],\n [\n {\n border: [false, false, false, false],\n columns: [\n {\n width: 'auto',\n stack: [\n {\n canvas: [\n {\n type: 'rect',\n x: 0,\n y: 0,\n w: 19 + 5 * selectedRoute.length,\n h: 19,\n r: 10,\n color: '#A1145C',\n },\n ],\n },\n {\n color: 'white',\n fontSize: 9,\n bold: true,\n text: selectedRoute,\n absolutePosition: { x: 66, y: 84 },\n },\n ],\n },\n {\n fontSize: 9,\n text: `${t('timetables.direction')}: ${direction}`,\n width: 'auto',\n margin: [0, 4],\n },\n {\n fontSize: 9,\n text: date.format('MMM. D, Y'),\n margin: [10, 4, 0, 4],\n width: 'auto',\n },\n ],\n columnGap: 6,\n margin: [8, 0, 8, 5],\n },\n ],\n [\n {\n border: [false, false, false, false],\n margin: [-6, -3],\n table: {\n widths: ['*'],\n body: [\n ...timetableArray.map(({ hour, times }, i) => (\n [\n {\n margin: [5, 0],\n border: [false, false, false, false],\n columns: [\n {\n text: hour,\n fontSize: 13,\n bold: true,\n width: 16,\n },\n ...times.map((time) => ({\n text: time,\n fontSize: 9,\n margin: [0, 3, 0, 0],\n width: 'auto',\n })),\n ],\n columnGap: 6,\n fillColor: i % 2 === 0 ? '#F5F5F5' : 'white',\n },\n ]\n )),\n ],\n },\n },\n ],\n ],\n },\n },\n ],\n ],\n },\n },\n ],\n defaultStyle: {\n font: 'Roboto',\n },\n pageMargins: 43,\n }).open();\n };\n const map = (\n \n \n \n {myLocation && (\n \n )}\n {stopsOnMap.map((stop, i) => {\n const isFirstOrLast = i === 0 || i === stopsOnMap.length - 1;\n return (\n \n \n \n {stop.name}\n \n {\n setSelectedItem({\n type: 'stop',\n id: stop.id,\n name: stop.name,\n vehicles: selectedItem!.vehicles,\n agency: selectedItem!.agency,\n lat: stop.lat,\n lon: stop.lon,\n });\n setRouteDetails(null);\n setRouteRTData(null);\n }}\n >\n {t('timetables.showDepartures')}\n \n \n \n );\n })}\n {shapesOnMap.map((shape, i) => (\n \n ))}\n {vehiclesOnMap.map((vehicle) => (\n \n \n {vehicle.headsign && (\n \n {`${t('timetables.direction')}: ${vehicle.headsign}`}\n \n )}\n {vehicle.nextStop && (\n <>\n \n {`${t('timetables.nextStop')}:`}\n \n \n {vehicle.nextStop}\n \n \n )}\n \n {t('map.delay')}\n {': '}\n {vehicle.delay >= 60 && `${Math.floor(vehicle.delay / 60)} ${t('map.minutes')} `}\n {vehicle.delay % 60}\n {' '}\n {t('map.seconds')}\n \n \n \n ))}\n
\n );\n return (\n
\n
\n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport moment from 'moment';\nimport { IStops, ITrip } from '../../interfaces';\nimport { ProviderContext } from '../../context';\nimport { getRouteData } from '../common';\nimport Trips from './Trips';\n\nexport default function TripsPrintView() {\n const [trips, setTrips] = useState(null);\n const [stops, setStops] = useState(null);\n const location = useLocation();\n const {\n provider, date, route, direction,\n } = Object.fromEntries(new URLSearchParams(location.search).entries());\n const { version, user } = useContext(ProviderContext);\n useEffect(() => {\n (async () => {\n const providerVersion = (provider === user.agency) ? version : undefined;\n const data = await getRouteData(provider, moment(date, 'YYYY-MM-DD'), route, providerVersion);\n setTrips(data.trips);\n setStops(data.stops);\n })();\n }, [provider, date, route, user.agency, version]);\n if (!trips || !stops) return null;\n return (\n {}}\n stops={stops}\n trips={trips}\n provider={provider}\n date={date}\n route={route}\n print\n direction={direction === '1' ? 1 : 0}\n />\n );\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from '@material-ui/core';\nimport { useLocation } from 'react-router-dom';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport * as R from 'ramda';\nimport { axios } from '../../../utils';\nimport { ICrewAssignment, ICrewVehicle, IDriver } from '../../../interfaces';\nimport AppContext from '../../../context';\n\nconst useStyles = makeStyles({\n root: {\n padding: 32,\n },\n topRow: {\n display: 'flex',\n },\n text: {\n color: '#37011F',\n marginRight: 40,\n },\n label: {\n color: '#666666',\n },\n table: {\n marginTop: 32,\n width: 800,\n borderCollapse: 'collapse',\n border: '1px solid #37001F',\n },\n cell: {\n padding: '4px 8px',\n color: '#37001F',\n fontSize: 16,\n fontWeight: 300,\n border: '1px solid #37001F',\n textAlign: 'center',\n '&:first-child': {\n textAlign: 'left',\n },\n },\n headerCell: {\n fontWeight: 400,\n },\n emptyCell: {\n width: 37,\n border: '1px solid #37001F',\n },\n});\n\nexport default function AssignPrint() {\n const classes = useStyles();\n const { t } = useTranslation();\n const location = useLocation();\n const { user } = useContext(AppContext);\n const { date, depot } = Object.fromEntries(new URLSearchParams(location.search).entries());\n const [vehicles, setVehicles] = useState(null);\n const [drivers, setDrivers] = useState(null);\n const [table, setTable] = useState([]);\n useEffect(() => {\n (async () => {\n if (date && depot) {\n const agency = user?.agency || localStorage.getItem('agency');\n const [\n { data: vehiclesData },\n { data: driversData },\n { data },\n ] = await Promise.all([\n axios.get(`/${agency}/vehicles`),\n axios.get(`/${agency}/drivers`),\n axios.get(`/${agency}/crew/assignment`, {\n params: { date, depot },\n }),\n ]);\n setVehicles(vehiclesData);\n setDrivers(driversData);\n setTable(data);\n }\n })();\n }, [date, depot, user]);\n if (!vehicles || !drivers) return null;\n return (\n
\n
\n \n \n {t('data.date')}\n {': '}\n \n {moment(date).format('DD.MM.YYYY')}\n \n \n \n {t('data.depot')}\n {': '}\n \n {depot}\n \n
\n \n \n \n \n \n \n \n {t('data.firstShift')}\n \n \n {t('data.secondShift')}\n \n \n \n \n {table.map((row) => (\n \n \n \n \n \n \n \n ))}\n \n
\n {t('common.route')}\n \n {t('data.startTime')}\n \n {t('data.vehicleID')}\n
\n {row.task}\n \n {moment(row.start, 'HH:mm').format('H:mm')}\n \n {vehicles.find(R.propEq('id', row.vehicle))?.number}\n \n {drivers.find(R.propEq('id', row.driverFirst))?.name}\n \n \n {drivers.find(R.propEq('id', row.driverSecond))?.name}\n \n
\n
\n );\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Typography, TextField, InputAdornment, FormControlLabel, Checkbox, IconButton,\n} from '@material-ui/core';\nimport classNames from 'classnames';\nimport {\n Map, Marker, Popup, ScaleControl, TileLayer,\n} from 'react-leaflet';\nimport moment from 'moment';\nimport leaflet, { LatLngBounds } from 'leaflet';\nimport * as R from 'ramda';\nimport { ReactComponent as Search } from '../assets/search.svg';\nimport { ReactComponent as BusWhite } from '../assets/bus-white.svg';\nimport { ReactComponent as ChevronPrimary } from '../assets/chevron-primary.svg';\nimport { IBeacon } from '../interfaces';\nimport { axios } from '../utils';\n\nconst useStyles = makeStyles({\n root: {\n flexGrow: 1,\n },\n top: {\n display: 'flex',\n height: 90,\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n header: {\n fontSize: 35,\n fontWeight: 700,\n color: '#37001F',\n },\n percents: {\n display: 'flex',\n alignItems: 'baseline',\n },\n percentHeader: {\n fontSize: 35,\n fontWeight: 700,\n marginRight: 8,\n },\n percentText: {\n fontSize: 20,\n fontWeight: 700,\n marginRight: 24,\n },\n bottom: {\n display: 'flex',\n },\n left: {\n width: 800,\n backgroundColor: '#F5F5F5',\n padding: 16,\n },\n map: {\n flexGrow: 1,\n height: 490,\n },\n filters: {\n display: 'flex',\n alignItems: 'center',\n },\n search: {\n width: 310,\n marginRight: 24,\n },\n checkboxRow: {\n display: 'flex',\n },\n checkboxContainer: {\n width: 140,\n '&:first-child': {\n width: 165,\n },\n '&:last-child': {\n width: 120,\n },\n },\n checkbox: {\n padding: 4,\n },\n table: {\n width: '100%',\n borderCollapse: 'collapse',\n marginTop: 24,\n border: '1px solid #37001F',\n },\n cell: {\n padding: '8px 16px',\n fontSize: 16,\n color: '#37001F',\n fontWeight: 300,\n border: '1px solid #37001F',\n borderWidth: '0 1px',\n '&:first-child': {\n textAlign: 'right',\n width: 140,\n fontWeight: 700,\n },\n '&:last-child': {\n width: 200,\n },\n },\n headerCell: {\n fontWeight: 400,\n padding: 16,\n border: '1px solid #37001F',\n '&:first-child': {\n fontWeight: 400,\n },\n },\n marker: {\n borderRadius: '50%',\n },\n markerOperational: {\n backgroundColor: '#188D15',\n },\n markerNeedAttention: {\n backgroundColor: '#FF8022',\n },\n markerMalfunction: {\n backgroundColor: '#C41515',\n },\n tableRow: {\n '&:nth-child(even)': {\n backgroundColor: 'white',\n },\n },\n popup: {\n backgroundColor: 'white',\n borderRadius: 3,\n '& > :first-child': {\n boxShadow: 'none',\n padding: 0,\n '& > div': {\n margin: '16px 24px',\n },\n },\n '& > :last-child': {\n display: 'none',\n },\n },\n popupHeader: {\n backgroundColor: '#37001F',\n color: 'white',\n fontSize: 16,\n fontWeight: 400,\n margin: '0 0 12px -24px !important',\n padding: '4px 16px 4px 24px',\n borderRadius: '0 15px 15px 0',\n display: 'inline-block',\n },\n line: {\n margin: '0 !important',\n fontSize: 14,\n fontWeight: 400,\n color: '#37001F',\n },\n operational: {\n color: '#188D15',\n },\n needAttention: {\n color: '#FF8022',\n },\n malfunction: {\n color: '#C41515',\n },\n chevronFlipped: {\n transform: 'rotate(180deg)',\n },\n sortButton: {\n marginRight: -12,\n },\n});\n\nexport default function Dashboard() {\n const classes = useStyles();\n const { t } = useTranslation();\n const mapRef = useRef(null);\n const [beacons, setBeacons] = useState([]);\n useEffect(() => {\n (async () => {\n const { data } = await axios.get('/beacons/status');\n setBeacons(data);\n })();\n }, []);\n const [search, setSearch] = useState('');\n const [operational, setOperational] = useState(true);\n const [malfunction, setMalfunction] = useState(true);\n const [mobile, setMobile] = useState(true);\n const [needAttention, setNeedAttention] = useState(true);\n const [stationary, setStationary] = useState(true);\n const all = operational && malfunction && mobile && needAttention && stationary;\n const [sortColumn, setSortColumn] = useState<'id' | 'issue' | 'assignment'>('id');\n const [sortAsc, setSortAsc] = useState(true);\n const getIssueText = (beacon: IBeacon) => {\n const lastData = moment(beacon.timestamp);\n const time = lastData.format('H:mm');\n if (beacon.issue?.kind === 'oldData') {\n return `${t('beacon.lastData')} ${lastData.format('MMM D')} ${t('beacon.at')}\n ${time} (${moment().diff(lastData, 'days')} ${t('beacon.daysAgo')})`;\n }\n if (beacon.issue?.kind === 'batteryLevel') {\n return `${t('beacon.batteryLevelTable')} ${beacon.powerValue}% ${t('beacon.todayAt')} ${time}`;\n }\n return t('beacon.tableOperational');\n };\n const filteredBeacons = beacons.filter((beacon) => (\n (((operational && !beacon.issue)\n || (malfunction && beacon.issue?.alertLevel === 2)\n || (needAttention && beacon.issue?.alertLevel === 1)\n ) && (\n (mobile && beacon.category === 'mobile')\n || (stationary && beacon.category === 'stationary'))\n ) && (String(beacon.id).includes(search) || beacon.assignment.includes(search)\n || getIssueText(beacon).includes(search))\n ));\n const beaconsOnMap = filteredBeacons.filter((beacon) => beacon.lat && beacon.lon);\n useEffect(() => {\n if (mapRef.current && beaconsOnMap.length >= 2) {\n mapRef.current.leafletElement.fitBounds(\n new LatLngBounds(beaconsOnMap.map(({ lat, lon }) => [lat, lon])),\n { padding: [16, 16] },\n );\n }\n }, [beaconsOnMap]);\n const operationalCount = beacons.filter((x) => !x.issue).length;\n const needAttentionCount = beacons.filter((x) => x.issue?.alertLevel === 1).length;\n const malfunctionCount = beacons.filter((x) => x.issue?.alertLevel === 2).length;\n if (beacons.length === 0) return null;\n return (\n
\n
\n \n {t('beacon.beaconStatus')}\n \n
\n \n {`${Math.round((operationalCount / beacons.length) * 100)}%`}\n \n \n {t('beacon.operational')}\n \n \n {`${Math.round((needAttentionCount / beacons.length) * 100)}%`}\n \n \n {t('beacon.needAttention')}\n \n \n {`${Math.round((malfunctionCount / beacons.length) * 100)}%`}\n \n \n {t('beacon.malfunction')}\n \n
\n
\n
\n
\n
\n setSearch(target.value)}\n className={classes.search}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"outlined\"\n size=\"small\"\n />\n
\n
\n setOperational(target.checked)}\n color=\"primary\"\n className={classes.checkbox}\n />\n )}\n label={t('beacon.operational')}\n className={classes.checkboxContainer}\n />\n setMalfunction(target.checked)}\n color=\"primary\"\n className={classes.checkbox}\n />\n )}\n label={t('beacon.malfunction')}\n className={classes.checkboxContainer}\n />\n setMobile(target.checked)}\n color=\"primary\"\n className={classes.checkbox}\n />\n )}\n label={t('beacon.mobile')}\n className={classes.checkboxContainer}\n />\n
\n
\n setNeedAttention(target.checked)}\n color=\"primary\"\n className={classes.checkbox}\n />\n )}\n label={t('beacon.needAttention')}\n className={classes.checkboxContainer}\n />\n setStationary(target.checked)}\n color=\"primary\"\n className={classes.checkbox}\n />\n )}\n label={t('beacon.stationary')}\n className={classes.checkboxContainer}\n />\n {\n setOperational(target.checked);\n setMalfunction(target.checked);\n setMobile(target.checked);\n setNeedAttention(target.checked);\n setStationary(target.checked);\n }}\n color=\"primary\"\n className={classes.checkbox}\n />\n )}\n label={t('beacon.all')}\n className={classes.checkboxContainer}\n />\n
\n
\n
\n \n \n \n \n \n \n \n \n \n {R.sort((() => {\n const sortFn = sortAsc ? R.ascend : R.descend;\n if (sortColumn === 'issue') {\n return sortFn((x: IBeacon) => (\n `${x.issue?.alertLevel || 0}${getIssueText(x)}`\n ));\n }\n return sortFn((x: IBeacon) => x[sortColumn]);\n })(), filteredBeacons).map((beacon) => (\n \n \n {beacon.id}\n \n \n \n \n ))}\n \n
\n {t('beacon.beaconID')}\n (sortColumn === 'id' ? setSortAsc(!sortAsc) : setSortColumn('id'))}\n >\n \n \n \n {t('beacon.issue')}\n (sortColumn === 'issue' ? setSortAsc(!sortAsc) : setSortColumn('issue'))}\n >\n \n \n \n {t('beacon.assignedTo')}\n (\n sortColumn === 'assignment' ? setSortAsc(!sortAsc) : setSortColumn('assignment')\n )}\n >\n \n \n
\n {getIssueText(beacon)}\n \n {beacon.assignment}\n
\n
\n \n \n \n {beaconsOnMap.map((beacon) => {\n const lastData = moment(beacon.timestamp);\n const time = lastData.format('H:mm');\n return (\n ',\n iconSize: [10, 10],\n })}\n >\n \n \n {`ID: ${beacon.id}`}\n
\n {beacon.category === 'stationary'\n ? `${beacon.type === 'info' ? 'POI: ' : ''}${beacon.assignment}`\n : }\n
\n \n {`${t('beacon.supply')}: ${t('beacon.battery')}`}\n \n \n {`${t('beacon.batteryLevel')}: ${beacon.powerValue}%`}\n \n \n {`${t('beacon.dataReceivedOn')} ${lastData.format('MMM D')} ${t('beacon.at')}\n ${time} (${moment().diff(lastData, 'days')} ${t('beacon.daysAgo')})`}\n \n \n \n );\n })}\n \n
\n
\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n IconButton, InputAdornment, TextField, Typography,\n} from '@material-ui/core';\nimport moment from 'moment';\nimport classNames from 'classnames';\nimport * as R from 'ramda';\nimport { ReactComponent as Search } from '../assets/search.svg';\nimport { ReactComponent as ChevronPrimary } from '../assets/chevron-primary.svg';\nimport { axios } from '../utils';\n\nconst useStyles = makeStyles({\n root: {\n flexGrow: 1,\n marginTop: 32,\n },\n search: {\n width: 500,\n marginLeft: 32,\n },\n table: {\n width: '100%',\n borderCollapse: 'collapse',\n marginTop: 24,\n backgroundColor: '#F5F5F5',\n border: '1px solid #37001F',\n },\n cell: {\n padding: '6px 12px',\n fontSize: 16,\n color: '#37001F',\n fontWeight: 300,\n border: '1px solid #37001F',\n borderWidth: '0 1px',\n '&:nth-child(4), &:nth-child(7), &:nth-child(8), &:nth-child(10)': {\n textAlign: 'right',\n },\n },\n headerCell: {\n fontWeight: 400,\n border: '1px solid #37001F',\n '&:nth-child(n)': {\n textAlign: 'left',\n },\n },\n headerCellContent: {\n display: 'flex',\n alignItems: 'center',\n },\n tableRow: {\n '&:nth-child(even)': {\n backgroundColor: 'white',\n },\n },\n sortButton: {\n marginRight: -4,\n marginLeft: 4,\n },\n chevronFlipped: {\n transform: 'rotate(180deg)',\n },\n noLogs: {\n marginTop: 24,\n },\n});\n\ninterface ILog {\n timestamp: string;\n servicePerson: string;\n beaconAssignment: string;\n beaconId: number;\n buildVersion: string;\n supply: 'MAINS' | 'BATTERY';\n powerValue: number;\n lastReset: string;\n lastOutage?: string;\n transmitPower: {\n initial: number;\n changed?: number;\n };\n}\n\nexport default function Logs() {\n const classes = useStyles();\n const { t } = useTranslation();\n const [search, setSearch] = useState('');\n const [sortColumn, setSortColumn] = useState('datetime');\n const [sortAsc, setSortAsc] = useState(false);\n const [logs, setLogs] = useState(null);\n useEffect(() => {\n (async () => {\n const { data } = await axios.get('/beacons/logs');\n setLogs(data);\n })();\n }, []);\n if (!logs) return null;\n const tableData = logs.map((x) => ({\n serviceDateTime: x.timestamp,\n servicePerson: x.servicePerson,\n beaconNameAssigned: x.beaconAssignment,\n beaconID: x.beaconId,\n buildID: x.buildVersion,\n supply: x.supply === 'BATTERY' ? t('beacon.battery') : t('beacon.mains'),\n batteryLevel: x.powerValue,\n uptime: moment().diff(moment(x.lastReset), 'days'),\n lastPowerOutage: x.lastOutage || '-',\n receivedPowerLevel: '-',\n transmitPowerLevel: `${x.transmitPower.initial}${x.transmitPower.changed\n ? ` → ${x.transmitPower.changed}` : ''} `,\n }))\n .sort((sortAsc ? R.ascend : R.descend)(R.prop(sortColumn)))\n .map((x) => ({\n ...x,\n beaconID: String(x.beaconID),\n batteryLevel: `${x.batteryLevel}%`,\n uptime: `${x.uptime} d`,\n serviceDateTime: moment(x.serviceDateTime).format('DD.MM.YY HH:mm'),\n lastPowerOutage: x.lastPowerOutage === '-'\n ? '-'\n : moment(x.lastPowerOutage).format('DD.MM.YY HH:mm'),\n }))\n .filter((row) => (\n Object.values(row).some((cell) => cell.toLowerCase().includes(search.toLowerCase()))\n ));\n const columns = tableData[0] ? Object.keys(tableData[0]) : null;\n return (\n
\n setSearch(target.value)}\n className={classes.search}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"outlined\"\n size=\"small\"\n />\n {columns ? (\n \n \n \n {columns.map((column) => (\n \n
\n {t(`beacon.${column}`)}\n (\n sortColumn === column ? setSortAsc(!sortAsc) : setSortColumn(column)\n )}\n >\n \n \n
\n \n ))}\n
\n \n \n {tableData.map((row, i) => (\n // eslint-disable-next-line react/no-array-index-key\n \n {Object.entries(row).map(([key, cell]) => (\n \n ))}\n \n ))}\n \n
\n {cell}\n
\n ) : (\n \n {t('beacon.noLogs')}\n .\n \n )}\n
\n );\n}\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.637,12l4.749,4.561L18.82,8.229\",\n transform: \"translate(-5.291 -7.874)\",\n fill: \"none\",\n stroke: \"#36011f\",\n strokeWidth: 1\n});\n\nvar SvgCheckmark = function SvgCheckmark(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 13.881,\n height: 9.385,\n viewBox: \"0 0 13.881 9.385\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCheckmark, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/checkmark.39a3179c.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n IconButton, InputAdornment, TextField, Checkbox, FormControlLabel, Button, Typography,\n} from '@material-ui/core';\nimport classNames from 'classnames';\nimport * as R from 'ramda';\nimport NewHeader from '../provider/NewHeader';\nimport { ReactComponent as Search } from '../assets/search.svg';\nimport { ReactComponent as ChevronPrimary } from '../assets/chevron-primary.svg';\nimport { ReactComponent as Clear } from '../assets/clear.svg';\nimport { ReactComponent as Checkmark } from '../assets/checkmark.svg';\nimport SelectLocation from '../common/SelectLocation';\nimport DeleteDialog from '../provider/DeleteDialog';\nimport { axios } from '../utils';\nimport { IProvider, IStop } from '../interfaces';\nimport CustomAutocomplete from '../common/CustomAutocomplete';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 24,\n display: 'flex',\n },\n search: {\n width: 400,\n marginTop: 16,\n },\n table: {\n width: '100%',\n borderCollapse: 'collapse',\n marginTop: 24,\n backgroundColor: '#F5F5F5',\n border: '1px solid #37001F',\n },\n cell: {\n padding: '6px 12px',\n fontSize: 16,\n color: '#37001F',\n fontWeight: 300,\n border: '1px solid #37001F',\n borderWidth: '0 1px',\n '&:first-child': {\n textAlign: 'right',\n },\n '&:last-child': {\n textAlign: 'center',\n },\n },\n headerCell: {\n fontWeight: 400,\n textAlign: 'left',\n border: '1px solid #37001F',\n },\n headerCellContent: {\n display: 'flex',\n alignItems: 'center',\n },\n tableRow: {\n cursor: 'pointer',\n '&:nth-child(odd)': {\n backgroundColor: 'white',\n },\n },\n sortButton: {\n marginRight: -4,\n marginLeft: 4,\n },\n chevronFlipped: {\n transform: 'rotate(180deg)',\n },\n left: {\n flexGrow: 1,\n },\n right: {\n width: 620,\n flexShrink: 0,\n marginLeft: 24,\n },\n fieldRow: {\n display: 'flex',\n marginBottom: 24,\n },\n beaconID: {\n width: 160,\n marginRight: 24,\n },\n name: {\n width: 300,\n },\n field: {\n marginBottom: 24,\n },\n saveRow: {\n display: 'flex',\n alignItems: 'center',\n },\n poiContainer: {\n marginBottom: 16,\n },\n discard: {\n marginLeft: 'auto',\n marginRight: 24,\n },\n dataSource: {\n width: 300,\n marginRight: 16,\n },\n stop: {\n width: 300,\n },\n add: {\n display: 'flex',\n marginLeft: 'auto',\n marginBottom: 16,\n },\n stopRow: {\n width: '100%',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: 10,\n backgroundColor: '#F5F5F5',\n borderRadius: 15,\n },\n stopName: {\n fontSize: 20,\n color: '#37001F',\n marginLeft: 16,\n },\n assignedTo: {\n fontWeight: 400,\n color: '#37001F',\n margin: '-8px 0 16px',\n },\n organization: {\n width: 300,\n marginRight: 16,\n },\n site: {\n width: 300,\n },\n});\n\ninterface IStationaryBeacon {\n id: number;\n name: string;\n site?: number;\n lat: number;\n lon: number;\n type: 'stop' | 'info';\n welcomePL?: string;\n welcomeEN?: string;\n stops?: {\n agency: string;\n stopId: string;\n }[];\n}\n\ninterface ISite {\n id: number;\n name: string;\n organization: string;\n}\n\nexport default function Stationary() {\n const classes = useStyles();\n const { t } = useTranslation();\n const [beacons, setBeacons] = useState(null);\n const [providers, setProviders] = useState(null);\n const [sites, setSites] = useState(null);\n const [providerStops, setProviderStops] = useState>({});\n useEffect(() => {\n (async () => {\n const [\n { data },\n { data: providersData },\n { data: sitesData },\n ] = await Promise.all([\n axios.get('/beacons?category=stationary'),\n axios.get('/providers'),\n axios.get('/card/sites'),\n ]);\n setBeacons(data);\n setProviders(providersData);\n setSites(sitesData);\n const stopProviders: string[] = R.uniq(data.flatMap((x: IStationaryBeacon) => (\n x.stops?.map(R.prop('agency')) || []\n )));\n const responses = await Promise.all(stopProviders.map((x) => axios.get(`/${x}/stops`)));\n setProviderStops(R.fromPairs(\n stopProviders.map((provider, i) => [provider, responses[i].data]),\n ));\n })();\n }, []);\n const [search, setSearch] = useState('');\n const [sortColumn, setSortColumn] = useState('id');\n const [sortAsc, setSortAsc] = useState(false);\n const [selectedBeacon, setSelectedBeacon] = useState(null);\n const [poi, setPoi] = useState(false);\n const [id, setId] = useState('');\n const [idError, setIdError] = useState(false);\n const [name, setName] = useState('');\n const [organization, setOrganization] = useState(null);\n const [site, setSite] = useState(null);\n const [lat, setLat] = useState('');\n const [lon, setLon] = useState('');\n const [welcomeMessagePL, setWelcomeMessagePL] = useState('');\n const [welcomeMessageEN, setWelcomeMessageEN] = useState('');\n const [provider, setProvider] = useState(null);\n const [stop, setStop] = useState(null);\n const [stops, setStops] = useState<{ agency: string; stopId: string; }[]>([]);\n const [deleteDialog, setDeleteDialog] = useState(false);\n if (!beacons || !providers || !sites) return null;\n const loadData = (beacon: IStationaryBeacon | null) => {\n if (beacon) {\n setSelectedBeacon(beacon.id);\n setPoi(beacon.type === 'info');\n setId(String(beacon.id));\n setName(beacon.name);\n setLat(String(beacon.lat));\n setLon(String(beacon.lon));\n setWelcomeMessagePL(beacon.welcomePL || '');\n setWelcomeMessageEN(beacon.welcomeEN || '');\n setStops(beacon.stops || []);\n } else {\n setSelectedBeacon('new');\n setPoi(false);\n setId('');\n setName('');\n setLat('');\n setLon('');\n setWelcomeMessagePL('');\n setWelcomeMessageEN('');\n setStops([]);\n }\n if (beacon?.site) {\n const siteObj = sites.find(R.propEq('id', beacon.site)) as ISite;\n setOrganization(siteObj.organization);\n setSite(siteObj);\n } else {\n setOrganization(null);\n setSite(null);\n }\n setIdError(false);\n };\n const columnNames = {\n id: 'beacon.beaconID',\n name: 'beacon.name',\n lat: 'common.latitude',\n lon: 'common.longitude',\n poi: 'beacon.poi',\n };\n const tableData = beacons\n .filter((row) => Object.values(row).some((cell) => (\n String(cell).toLowerCase().includes(search.toLowerCase())\n )))\n .sort((sortAsc ? R.ascend : R.descend)((x) => x[sortColumn]));\n return (\n
\n
\n loadData(null)}\n />\n setSearch(target.value)}\n className={classes.search}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"outlined\"\n size=\"small\"\n />\n \n \n \n {Object.entries(columnNames).map(([property, columnName]) => (\n \n
\n {t(columnName)}\n (\n sortColumn === property\n ? setSortAsc(!sortAsc)\n : setSortColumn(property as keyof IStationaryBeacon)\n )}\n >\n \n \n
\n \n ))}\n
\n \n \n {tableData.map((row) => (\n loadData(row)}\n >\n {Object.keys(columnNames).map((property) => (\n \n ))}\n \n ))}\n \n
\n {property === 'poi' ? (\n <>\n {row.type === 'info' && (\n \n )}\n \n ) : row[property as keyof IStationaryBeacon]}\n
\n
\n
\n {selectedBeacon !== null && (\n <>\n setPoi(checked))}\n color=\"primary\"\n />\n )}\n label={t('beacon.locatedAtPoint')}\n className={classes.poiContainer}\n />\n
\n {\n setId(target.value);\n setIdError(false);\n }}\n label={t('beacon.beaconID')}\n variant=\"outlined\"\n size=\"small\"\n className={classes.beaconID}\n error={idError}\n helperText={idError ? t('beacon.idError', { from: 0, to: 32767 }) : ''}\n />\n setName(target.value)}\n label={t('beacon.beaconName')}\n variant=\"outlined\"\n size=\"small\"\n className={classes.name}\n />\n
\n {poi ? (\n <>\n \n {t('beacon.assignedTo')}\n \n
\n {\n setOrganization(value);\n setSite(null);\n }}\n label={t('beacon.organization')}\n className={classes.organization}\n />\n setSite(value)}\n label={t('beacon.site')}\n className={classes.site}\n getOptionLabel={R.prop('name')}\n />\n
\n \n ) : (\n <>\n
\n {\n setProvider(value);\n setStop(null);\n if (value && !providerStops[value.id]) {\n const { data } = await axios.get(`/${value.id}/stops`);\n setProviderStops(R.set(\n R.lensProp(value.id),\n data,\n ));\n }\n }}\n label={t('beacon.dataSource')}\n getOptionLabel={R.prop('name')}\n className={classes.dataSource}\n />\n setStop(value)}\n label={t('beacon.stop')}\n getOptionLabel={R.prop('name')}\n className={classes.stop}\n />\n
\n {\n if (!provider || !stop) return;\n setStops(R.append({ agency: provider.id, stopId: stop.id }));\n setProvider(null);\n setStop(null);\n }}\n >\n {t('beacon.add')}\n \n {stops.map(({ agency, stopId }) => {\n const agencyName = providers.find(R.propEq('id', agency))!.name;\n const stopName = providerStops[agency].find(R.propEq('id', stopId))!.name;\n return (\n
\n \n {`${agencyName}, ${stopName}`}\n \n setStops(stops.filter(\n (x) => !(x.agency === agency && x.stopId === stopId),\n ))}\n >\n \n \n
\n );\n })}\n \n )}\n \n {poi && (\n <>\n setWelcomeMessagePL(target.value)}\n label={t('beacon.welcomeMessagePL')}\n variant=\"outlined\"\n size=\"small\"\n fullWidth\n className={classes.field}\n />\n setWelcomeMessageEN(target.value)}\n label={t('beacon.welcomeMessageEN')}\n variant=\"outlined\"\n size=\"small\"\n fullWidth\n className={classes.field}\n />\n \n )}\n
\n {selectedBeacon !== 'new' && (\n setDeleteDialog(true)}\n >\n {t('beacon.deleteBeacon')}\n \n )}\n loadData(beacons.find(R.propEq('id', selectedBeacon)) || null)}\n className={classes.discard}\n >\n {t('common.discardChanges')}\n \n {\n const numberId = Number(id);\n if (Number.isNaN(numberId) || numberId < 0 || numberId > 32767) {\n setIdError(true);\n return;\n }\n const data: IStationaryBeacon = {\n id: numberId,\n name,\n type: poi ? 'info' : 'stop',\n lat: Number(lat),\n lon: Number(lon),\n ...(poi ? {\n welcomePL: welcomeMessagePL,\n welcomeEN: welcomeMessageEN,\n site: site?.id,\n } : { stops }),\n };\n await axios.put('/beacon', data);\n if (selectedBeacon === 'new') {\n setBeacons([...beacons, data]);\n } else {\n setBeacons(beacons.map((x) => (x.id === numberId ? data : x)));\n }\n setSelectedBeacon(null);\n }}\n >\n {t('common.save')}\n \n
\n \n )}\n
\n setDeleteDialog(false)}\n text={t('beacon.deleteBeaconConfirm')}\n onDelete={async () => {\n await axios.delete('/beacon', { params: { id: selectedBeacon } });\n setDeleteDialog(false);\n setSelectedBeacon(null);\n setBeacons(beacons.filter((x) => x.id !== selectedBeacon));\n }}\n canDelete\n />\n
\n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n IconButton, InputAdornment, TextField, Button,\n} from '@material-ui/core';\nimport classNames from 'classnames';\nimport * as R from 'ramda';\nimport NewHeader from '../provider/NewHeader';\nimport { ReactComponent as Search } from '../assets/search.svg';\nimport { ReactComponent as ChevronPrimary } from '../assets/chevron-primary.svg';\nimport DeleteDialog from '../provider/DeleteDialog';\nimport { IProvider } from '../interfaces';\nimport { axios } from '../utils';\nimport CustomAutocomplete from '../common/CustomAutocomplete';\n\nconst useStyles = makeStyles({\n root: {\n marginTop: 24,\n display: 'flex',\n },\n search: {\n width: 400,\n marginTop: 16,\n },\n table: {\n width: '100%',\n borderCollapse: 'collapse',\n marginTop: 24,\n backgroundColor: '#F5F5F5',\n border: '1px solid #37001F',\n },\n cell: {\n padding: '6px 12px',\n fontSize: 16,\n color: '#37001F',\n fontWeight: 300,\n border: '1px solid #37001F',\n borderWidth: '0 1px',\n '&:first-child, &:last-child': {\n textAlign: 'right',\n width: 130,\n },\n },\n headerCell: {\n fontWeight: 400,\n textAlign: 'left',\n border: '1px solid #37001F',\n },\n headerCellContent: {\n display: 'flex',\n alignItems: 'center',\n },\n tableRow: {\n cursor: 'pointer',\n '&:nth-child(odd)': {\n backgroundColor: 'white',\n },\n },\n sortButton: {\n marginRight: -4,\n marginLeft: 4,\n },\n chevronFlipped: {\n transform: 'rotate(180deg)',\n },\n left: {\n flexGrow: 1,\n },\n right: {\n width: 720,\n flexShrink: 0,\n marginLeft: 24,\n },\n fieldRow: {\n display: 'flex',\n marginBottom: 24,\n },\n beaconID: {\n width: 160,\n marginRight: 24,\n },\n provider: {\n width: 300,\n marginRight: 24,\n },\n vehicleID: {\n width: 210,\n },\n saveRow: {\n display: 'flex',\n alignItems: 'center',\n },\n discard: {\n marginLeft: 'auto',\n marginRight: 24,\n },\n});\n\ninterface IMobileBeacon {\n id: number;\n vehicleOwner: string;\n vehicle: string;\n}\n\nexport default function Mobile() {\n const classes = useStyles();\n const { t } = useTranslation();\n const [beacons, setBeacons] = useState([]);\n const [search, setSearch] = useState('');\n const [sortColumn, setSortColumn] = useState('id');\n const [sortAsc, setSortAsc] = useState(false);\n const [selectedBeacon, setSelectedBeacon] = useState(null);\n const [id, setId] = useState('');\n const [idError, setIdError] = useState(false);\n const [provider, setProvider] = useState(null);\n const [vehicle, setVehicle] = useState(null);\n const [deleteDialog, setDeleteDialog] = useState(false);\n const [providers, setProviders] = useState();\n const [vehicles, setVehicles] = useState([]);\n useEffect(() => {\n (async () => {\n const [\n { data },\n { data: beaconData },\n ] = await Promise.all([\n axios.get('/providers'),\n axios.get('/beacons?category=mobile'),\n ]);\n setProviders(data);\n setBeacons(beaconData);\n })();\n }, []);\n useEffect(() => {\n (async () => {\n if (provider) {\n const { data } = await axios.get(`/${provider.id}/vehicles`);\n setVehicles(data.map(R.prop('number')));\n } else {\n setVehicles([]);\n }\n })();\n }, [provider]);\n if (!providers || !beacons) return null;\n const getProvider = (searchId: string) => providers.find(R.propEq('id', searchId)) as IProvider;\n const loadData = (beacon: IMobileBeacon | null) => {\n if (beacon) {\n setSelectedBeacon(beacon.id);\n setId(String(beacon.id));\n setProvider(getProvider(beacon.vehicleOwner));\n setVehicle(beacon.vehicle);\n } else {\n setSelectedBeacon('new');\n setId('');\n setProvider(null);\n setVehicle(null);\n }\n setIdError(false);\n };\n const columnNames = {\n id: 'beacon.beaconID',\n vehicleOwner: 'beacon.assignedTo',\n vehicle: 'beacon.vehicleID',\n };\n const tableData = beacons\n .filter((row) => Object.entries(row).some(([property, cell]) => (\n String(property === 'owner' ? getProvider(cell).name : cell)\n .toLowerCase().includes(search.toLowerCase())\n )))\n .sort((sortAsc ? R.ascend : R.descend)((x) => String(x[sortColumn])));\n return (\n
\n
\n loadData(null)}\n />\n setSearch(target.value)}\n className={classes.search}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"outlined\"\n size=\"small\"\n />\n \n \n \n {Object.entries(columnNames).map(([property, columnName]) => (\n \n
\n {t(columnName)}\n (\n sortColumn === property\n ? setSortAsc(!sortAsc)\n : setSortColumn(property as keyof IMobileBeacon)\n )}\n >\n \n \n
\n \n ))}\n
\n \n \n {tableData.map((row) => (\n loadData(row)}\n >\n {Object.keys(columnNames).map((property) => (\n \n ))}\n \n ))}\n \n
\n {property === 'vehicleOwner'\n ? getProvider(row.vehicleOwner).name\n : row[property as keyof IMobileBeacon]}\n
\n
\n
\n {selectedBeacon !== null && (\n <>\n
\n {\n setId(target.value);\n setIdError(false);\n }}\n label={t('beacon.beaconID')}\n variant=\"outlined\"\n size=\"small\"\n className={classes.beaconID}\n error={idError}\n helperText={idError ? t('beacon.idError', { from: 32768, to: 65536 }) : ''}\n />\n {\n setProvider(value);\n setVehicle(null);\n }}\n label={t('beacon.provider')}\n getOptionLabel={R.prop('name')}\n className={classes.provider}\n />\n setVehicle(value)}\n label={t('beacon.vehicleID')}\n className={classes.vehicleID}\n />\n
\n
\n {selectedBeacon !== 'new' && (\n setDeleteDialog(true)}\n >\n {t('beacon.deleteBeacon')}\n \n )}\n loadData(beacons.find(R.propEq('id', selectedBeacon)) || null)}\n className={classes.discard}\n >\n {t('common.discardChanges')}\n \n {\n if (!vehicle) return;\n const numberId = Number(id);\n if (Number.isNaN(numberId) || numberId < 32768 || numberId > 65536) {\n setIdError(true);\n return;\n }\n const data = {\n id: numberId,\n vehicle,\n vehicleOwner: provider!.id,\n };\n await axios.put('/beacon', data);\n if (selectedBeacon === 'new') {\n setBeacons([...beacons, data]);\n } else {\n setBeacons(beacons.map((x) => (x.id === selectedBeacon ? data : x)));\n }\n setSelectedBeacon(null);\n }}\n >\n {t('common.save')}\n \n
\n \n )}\n
\n setDeleteDialog(false)}\n text={t('beacon.deleteBeaconConfirm')}\n onDelete={async () => {\n await axios.delete('/beacon', { params: { id: selectedBeacon } });\n setDeleteDialog(false);\n setSelectedBeacon(null);\n setBeacons(beacons.filter((x) => x.id !== selectedBeacon));\n }}\n canDelete\n />\n
\n );\n}\n","import React from 'react';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useTranslation } from 'react-i18next';\nimport {\n Redirect, Route, Switch, useHistory, useParams,\n} from 'react-router-dom';\nimport { Tab, Tabs } from '@material-ui/core';\nimport { useGetLink } from '../utils';\nimport Stationary from './Stationary';\nimport Mobile from './Mobile';\n\nconst useStyles = makeStyles({\n root: {\n flexGrow: 1,\n },\n tabs: {\n margin: '0 -32px',\n backgroundColor: '#F5F5F5',\n paddingTop: 16,\n },\n tab: {\n textTransform: 'none',\n fontSize: 16,\n fontWeight: 300,\n width: 400,\n },\n});\n\nexport default function Assignment() {\n const classes = useStyles();\n const { t } = useTranslation();\n const history = useHistory();\n const getLink = useGetLink();\n const { tab } = useParams<{ tab: string; }>();\n if (!tab) {\n return (\n \n );\n }\n return (\n
\n history.push(getLink(`/beacon/assignment/${value}`))}\n indicatorColor=\"primary\"\n textColor=\"primary\"\n centered\n className={classes.tabs}\n >\n \n \n \n \n \n \n \n
\n );\n}\n","import React, { useContext } from 'react';\nimport { Link as MuiLink, makeStyles, Typography } from '@material-ui/core';\nimport {\n NavLink, Route, Switch,\n} from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport i18next from 'i18next';\nimport logo from '../assets/interconnect-logo.svg';\nimport { useGetLink } from '../utils';\nimport AppContext, { CardContext } from '../context';\nimport UserMenu from '../common/UserMenu';\nimport Dashboard from './Dashboard';\nimport Logs from './Logs';\nimport Assignment from './Assignment';\n\nconst useStyles = makeStyles({\n root: {\n minHeight: '100vh',\n backgroundColor: 'white',\n padding: '0 32px',\n display: 'flex',\n flexDirection: 'column',\n '@media (max-width: 1000px)': {\n padding: '0 16px',\n },\n '@media (max-width: 1000px), (max-height: 800px)': {\n height: 'auto',\n minHeight: '100vh',\n },\n },\n nav: {\n height: 43,\n flexShrink: 0,\n padding: '0 32px',\n margin: '0 -32px',\n display: 'flex',\n alignItems: 'center',\n backgroundColor: 'rgba(232, 232, 232, 0.5)',\n },\n logo: {\n height: 41,\n marginRight: 'auto',\n },\n navIconLink: {\n display: 'flex',\n justifyContent: 'center',\n width: 100,\n padding: '8px 0',\n },\n navLink: {\n color: '#a1145c',\n fontSize: 20,\n textDecoration: 'none',\n textAlign: 'center',\n width: 200,\n whiteSpace: 'nowrap',\n margin: '0 16px',\n },\n active: {\n fontWeight: 700,\n },\n main: {\n flexGrow: 1,\n minHeight: 400,\n display: 'flex',\n },\n footer: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: '24px 0',\n '@media (max-width: 1000px)': {\n flexDirection: 'column',\n alignItems: 'center',\n },\n },\n switch: {\n '@media (max-width: 1000px)': {\n marginBottom: 16,\n },\n },\n switchText: {\n fontSize: 12,\n },\n copyright: {\n whiteSpace: 'nowrap',\n fontSize: 12,\n color: '#37001F',\n },\n});\n\nexport default function Beacon() {\n const classes = useStyles();\n const { t, i18n } = useTranslation();\n const getLink = useGetLink();\n const { name, user, interconnectNumber } = useContext(AppContext);\n if (!name || !user) return null;\n return (\n \n
\n
\n \n \n {t('beacon.dashboard')}\n \n \n {t('beacon.beaconAssignment')}\n \n \n {t('beacon.serviceLogs')}\n \n \n
\n
\n \n \n \n \n \n
\n
\n {\n i18next.changeLanguage(i18n.language === 'pl' ? 'en' : 'pl');\n }}\n >\n \n {t('footer.switchLanguage')}\n \n \n \n Copyright © 2020 Innobaltica Sp. z o.o.\n \n
\n
\n \n );\n}\n","import React, {\n SyntheticEvent, MouseEvent, useEffect, useState,\n} from 'react';\nimport {\n useHistory, useLocation, useRouteMatch, Route, Redirect, Switch,\n} from 'react-router-dom';\nimport {\n createMuiTheme, CssBaseline, IconButton, Snackbar, ThemeProvider,\n} from '@material-ui/core';\nimport { Close } from '@material-ui/icons';\nimport { useTranslation } from 'react-i18next';\nimport * as R from 'ramda';\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport MomentUtils from '@date-io/moment';\nimport jwtDecode from 'jwt-decode';\nimport moment from 'moment';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport 'leaflet/dist/leaflet.css';\nimport 'react-leaflet-markercluster/dist/styles.min.css';\nimport Provider from './provider/Provider';\nimport Auth from './auth/Auth';\nimport { auth0, axios, useGetLink } from './utils';\nimport Callback from './auth/Callback';\nimport AppContext, { IValue } from './context';\nimport LoggedInRoute from './common/LoggedInRoute';\nimport TripPlanning from './passenger/trip-planning/TripPlanning';\nimport PrivacyPolicy from './passenger/PrivacyPolicy';\nimport Terms from './passenger/Terms';\nimport About from './passenger/About';\nimport TouristCard from './passenger/Card';\nimport CookieDisclaimer from './CookieDisclaimer';\nimport Card from './card/Card';\nimport Support from './passenger/Support';\nimport Timetables from './passenger/Timetables';\nimport TripsPrintView from './provider/home/TripsPrintView';\nimport AssignPrint from './provider/data/crew/AssignPrint';\nimport Beacon from './beacon/Beacon';\nimport './global.css';\n\nfunction useLanguageRedirect() {\n const { i18n: { language } } = useTranslation();\n const match = useRouteMatch<{ language: string }>('/:language?');\n const pathLanguage = match ? match.params.language : null;\n const history = useHistory();\n const getLink = useGetLink();\n const { pathname } = useLocation();\n useEffect(() => {\n if (pathname === '/auth/callback') {\n return;\n }\n if (!pathLanguage) {\n history.push(getLink('/'));\n } else if (pathLanguage !== language) {\n history.replace(pathname.replace(/^\\/[a-z]+/, `/${language}`));\n }\n }, [language, pathLanguage, history, getLink, pathname]);\n}\n\nconst isTokenValid = (token: string) => (\n moment().isBefore(moment.unix((jwtDecode(token) as any).exp))\n);\n\nexport default function App() {\n useLanguageRedirect();\n const { i18n: { language } } = useTranslation();\n useEffect(() => {\n moment.locale(language);\n }, [language]);\n const getLink = useGetLink();\n const [contextValue, setContextValue] = useState({\n snackbarOpen: false,\n });\n const [ready, setReady] = useState(false);\n const [cookiesAccepted, setCookiesAccepted] = useState(localStorage.getItem('cookies-accepted') !== null);\n useEffect(() => {\n const accessToken = localStorage.getItem('accessToken');\n if (accessToken && isTokenValid(accessToken)) {\n auth0.client.userInfo(accessToken, (err, user) => {\n (async () => {\n if (user) {\n const [\n { data },\n { data: { interconnectNumber } },\n ] = await Promise.all([\n axios.get('/users/me'),\n axios.get('/user/account'),\n ]);\n const agency = localStorage.getItem('agency');\n setContextValue(R.mergeLeft({\n user: {\n ...data,\n agency: data.agency || agency,\n },\n name: user.name,\n interconnectNumber,\n }));\n } else {\n localStorage.removeItem('accessToken');\n }\n setReady(true);\n })();\n });\n } else {\n localStorage.removeItem('accessToken');\n setReady(true);\n }\n }, []);\n useEffect(() => {\n axios.interceptors.request.use((config) => new Promise((resolve) => {\n if (config.url?.startsWith('/public/') || config.url?.startsWith('https://')) {\n resolve(config);\n return;\n }\n const accessToken = localStorage.getItem('accessToken');\n const setToken = (token: string) => resolve(R.set(\n R.lensPath(['headers', 'Authorization']),\n `Bearer ${token}`,\n config,\n ));\n if (accessToken && isTokenValid(accessToken)) {\n setToken(accessToken);\n } else {\n auth0.checkSession({}, (err, authResult) => {\n if (err) {\n setContextValue(R.set(R.lensProp('name'), null));\n localStorage.removeItem('accessToken');\n } else {\n const { accessToken: newAccessToken } = authResult;\n localStorage.setItem('accessToken', newAccessToken);\n setToken(newAccessToken);\n }\n });\n }\n }));\n }, []);\n const closeSnackbar = (event: SyntheticEvent | MouseEvent, reason?: string) => {\n if (reason !== 'clickaway') {\n setContextValue(R.mergeLeft({ snackbarOpen: false }));\n }\n };\n if (!ready) {\n return null;\n }\n const { user } = contextValue;\n const isOrganizer = user && (user.role === 'ADMIN' || user.role === 'AGENCY_ADMIN' || user.role === 'AGENCY_EMPL');\n return (\n \n \n \n setContextValue(R.mergeLeft({\n snackbarMessage: message,\n snackbarOpen: true,\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 {!cookiesAccepted && (\n {\n localStorage.setItem('cookies-accepted', 'true');\n setCookiesAccepted(true);\n }}\n />\n )}\n \n \n \n \n );\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport i18next from 'i18next';\nimport languageDetector from 'i18next-browser-languagedetector';\nimport { initReactI18next } from 'react-i18next';\nimport { safeLoad } from 'js-yaml';\nimport { BrowserRouter } from 'react-router-dom';\nimport moment from 'moment';\nimport 'moment/locale/pl';\nimport pl from './translations/pl.yaml';\nimport en from './translations/en.yaml';\nimport App from './App';\n\ni18next\n .use(languageDetector)\n .use(initReactI18next)\n .init({\n resources: {\n pl: {\n translation: safeLoad(pl) as string,\n },\n en: {\n translation: safeLoad(en) as string,\n },\n },\n detection: {\n order: ['localStorage', 'navigator', 'path'],\n },\n whitelist: ['pl', 'en'],\n fallbackLng: 'en',\n }, () => {});\ni18next.on('languageChanged', (lng) => {\n moment.locale(lng);\n});\n\nconst render = (Component: React.FC) => {\n ReactDOM.render(\n (\n \n \n \n ),\n document.getElementById('root'),\n );\n};\n\nrender(App);\n\nif (module.hot) {\n module.hot.accept('./App', () => {\n // eslint-disable-next-line global-require\n const NextApp = require('./App').default;\n render(NextApp);\n });\n}\n","export default \"---\\r\\nnav:\\r\\n signedInAs: Zalogowany jako\\r\\n assignRoles: Przypisz role\\r\\n logOut: Wyloguj się\\r\\n analysis: Analiza\\r\\n statistics: Statystyka\\r\\n import: Import\\r\\n export: Eksport\\r\\n impactArea: Obszar oddziaływania\\r\\n pp: Portal pasażera\\r\\n data: Dane\\r\\n setDataSource: Ustaw źródło danych\\r\\n switchDataView: Przełącz widok danych\\r\\n dataView: Widok danych\\r\\n current: obecny\\r\\n draft: Wersja robocza\\r\\n orgs: Organizacje\\r\\n cardPortal: Portal kart\\r\\n tripPlanner: Planer podróży\\r\\n beacons: Beacony\\r\\n number: \\\"Nr Interconnect: \\\"\\r\\nmain:\\r\\n dataSource: Źródło danych\\r\\n date: Rozkład na dzień\\r\\n route: Dla linii\\r\\n switchDirection: Zmień kierunek\\r\\n trip: Trasa\\r\\n arrival: przyjazd\\r\\n departure: odjazd\\r\\n noTrips: Brak tras.\\r\\n restoreCurrentState: Przywróć stan bieżący\\r\\n printView: Widok do druku\\r\\nmap:\\r\\n route: Linia\\r\\n direction: Kierunek\\r\\n departure: Odjazd za\\r\\n minutes: min\\r\\n seconds: sec\\r\\n showVehicles: pokaż pojazdy\\r\\n vehicleCode: Numer boczny\\r\\n vehicleService: Zadanie przewozowe\\r\\n tripCode: Kod trasy\\r\\n speed: Prędkość\\r\\n delay: Opóźnienie\\r\\nfooter:\\r\\n switchLanguage: Switch to English\\r\\nauth:\\r\\n register: Rejestracja\\r\\n continueWithGoogle: Kontynuuj z Google\\r\\n continueWithFacebook: Kontynuuj z Facebookiem\\r\\n or: lub\\r\\n email: Email\\r\\n password: Hasło\\r\\n repeatPassword: Powtórz hasło\\r\\n registerAgreement: \\\"Rejestrując się akceptujesz <0>Regulamin i\\\\xa0<1>Politykę Prywatności.\\\"\\r\\n registerButton: Zarejestruj się\\r\\n alreadyRegistered: Masz już konto? <0>Zaloguj się\\r\\n verifyEmail: Zweryfikuj adres email\\r\\n weHaveSent: Wysłaliśmy maila na adres {{email}}.\\r\\n pleaseOpen: Otwórz tego maila i kliknij na link aktywacyjny aby ukończyć rejestrację.\\r\\n toResend: Aby wysłać maila ponownie, <0>zaloguj się.\\r\\n goToLogin: Przejdź do logowania\\r\\n invalidEmail: Nieprawidłowy email.\\r\\n invalidPassword: Hasło musi zawierać małą literę, wielką literę i cyfrę.\\r\\n passwordsDontMatch: Hasła nie są takie same.\\r\\n emailVerified: Email zweryfikowany\\r\\n verifiedText: Twój email został zweryfikowany. Możesz kontynuuować używanie aplikacji.\\r\\n logIn: Logowanie\\r\\n loginAgreement: \\\"Logując się akceptujesz <0>Regulamin i\\\\xa0<1>Politykę Prywatności.\\\"\\r\\n logInButton: Zaloguj się\\r\\n dontHaveAccount: Nie masz konta? <0>Zarejstruj się\\r\\n wrongEmailOrPassword: Nieprawidłowy email lub hasło.\\r\\n forgotLink: Zapomniałeś hasła?\\r\\n recoverPassword: Odzyskaj hasło\\r\\n recoverText: Podaj swój adres email aby otrzymać link do resetu hasła.\\r\\n sendResetLink: Wyślij link do resetu\\r\\n linkSent: Link do resetu hasła został wysłany na adres <0>{{email}}.\\r\\n notVerified: Email nie jest zweryfikowany.\\r\\n resendLink: Wysłać link aktywacyjny ponownie?\\r\\n linkResent: Link został wysłany.\\r\\n alreadyExists: Konto z tym adresem email już istnieje.\\r\\n accessDenied: Odmowa dostępu.\\r\\nstats:\\r\\n header: dane transportowe\\r\\n sources_0: źródło\\r\\n sources_1: źródła\\r\\n sources_2: źródeł\\r\\n routes_0: linia\\r\\n routes_1: linie\\r\\n routes_2: linii\\r\\n other: Inne\\r\\n selectRoutes: Linie\\r\\n selectStops: Przystanki\\r\\n show: Pokaż\\r\\n stops_0: przystanek\\r\\n stops_1: przystanki\\r\\n stops_2: przystanków\\r\\n findDataSource: Znajdź źródło danych\\r\\nimpact:\\r\\n inRadius: W promieniu {{radius}}m\\r\\n inMarkerRadius: W promieniu {{radius}}m od wybranej lokalizacji\\r\\n noStops: Brak przystanków\\r\\n impactArea: Obszar oddziaływania\\r\\n stop: Przystanek\\r\\n edit: Edytuj\\r\\n finishEditing: Zakończ edycję\\r\\n stopName: Nazwa\\r\\n deleteStop: Usuń przystanek\\r\\n restoreCurrentState: Przywróć stan bieżący\\r\\n restoreLocation: Przywróć pozycję\\r\\nimport:\\r\\n fileType: Typ pliku\\r\\n selectFile: Wybierz plik\\r\\n fileImported: Plik <0>{{name}} został pomyślnie zaimportowany.\\r\\n importFailed: Import się nie powiódł.\\r\\n importQueued: Inny import jest w tej chwili przetwarzany. Twój import zacznie się za kilka minut.\\r\\nexport:\\r\\n dataSource: Źródło danych\\r\\n dataFormat: Format danych\\r\\n downloadFile: Pobierz plik\\r\\nanalysis:\\r\\n transfersForStop: Przesiadki dla przystanku\\r\\n transfersForRoute: Przesiadki dla linii\\r\\n synchronization: Synchronizacja\\r\\nsynchronization:\\r\\n defineSegment: Zdefiniuj wiązkę\\r\\n stop: Przystanek\\r\\n date: Rozkład na dzień\\r\\n from: Od\\r\\n to: Do\\r\\n routes: Wiązka lini\\r\\n parameters: Parametry synchronizacji wiązki\\r\\n average: Średni czas oczekiwania\\r\\n deviation: Średnie odchylenie równomierności\\r\\n overlapping: Ilość odjazdów pokrywających się\\r\\n min: min\\r\\n sec: sec\\r\\n wheelchair: pokaż tylko dostępne dla niepełnosprawnych\\r\\n modifySchedule: Modyfikuj rozkład\\r\\n route: Linia\\r\\n firstTrip: Pierwszy kurs\\r\\n interval: Interwał\\r\\n clear: wyczyść\\r\\n add: Dodaj\\r\\n undoAll: usuń wszystkie zmiany\\r\\nstopTransfer:\\r\\n transfer: Przesiadka\\r\\n from: z\\r\\n to: na\\r\\n arrival: przyjazd\\r\\n departure: odjazd\\r\\n transferTime: czas przesiadki\\r\\n minTransferTime: Minimalny czas przesiadki\\r\\n averageTransfer: Średni czas przesiadki\\r\\n longestTransfer: Najdłuższa przesiadka\\r\\n shortTransfers: Przesiadki krótsze niż {{time}} min.\\r\\n modifyDepartures: Modyfikuj odjazdy\\r\\n firstTrip: Pierwszy kurs\\r\\n interval: Interwał\\r\\n clear: wyczyść zmiany\\r\\nrouteTransfers:\\r\\n transfer: Przesiadka\\r\\n from: z\\r\\n toRoutes: na linie\\r\\n firstStopDeparture: Odjazd z przystanku początkowego\\r\\n changeDeparture: Zmień czas\\r\\n reset: wyzeruj\\r\\n switchDirection: Zmień kierunek\\r\\n pattern: Trasa\\r\\n arrival: Przyjazd\\r\\n departure: Odjazd\\r\\n transferTime: Przesiadka [min.]\\r\\n difference: Różnica [min.]\\r\\n averageTransferTime: Średni czas przesiadki\\r\\n longestTransfer: Najdłuższa przesiadka\\r\\n minTransfer: Minimalny czas przesiadki\\r\\n departureTime: Godzina odjazdu\\r\\n optimize: Optymalizuj\\r\\ndata:\\r\\n routes: Linie\\r\\n patterns: Trasy\\r\\n stops: Przystanki\\r\\n trips: Przejazdy\\r\\n calendars: Kalendarze\\r\\n timetables: Tablice przystankowe\\r\\n manage: Zarządzaj\\r\\n dataView: Widok danych\\r\\n newRoute: Nowa linia\\r\\n routeName: Nazwa linii\\r\\n transportMode: Rodzaj transportu\\r\\n deleteRoute: Usuń linię\\r\\n save: Zapisz\\r\\n bus: Autobus\\r\\n train: Pociąg\\r\\n tram: Tramwaj\\r\\n trolleybus: Trolejbus\\r\\n forRoute: Dla linii\\r\\n forPattern: Dla trasy\\r\\n stopName: Nazwa przystanku\\r\\n newStop: Nowy przystanek\\r\\n timeZone: Strefa czasowa\\r\\n accessibility: Dostępność dla niepełnosprawnych\\r\\n accessible: Dostępny\\r\\n elevator: Winda\\r\\n escalator: Schody ruchome\\r\\n discardChanges: Odrzuć zmiany\\r\\n deleteStop: Usuń przystanek\\r\\n patternsFor: Trasy dla\\r\\n newPattern: Nowa trasa\\r\\n patternName: Nazwa trasy\\r\\n direction: Kierunek\\r\\n forward: Naprzód\\r\\n backward: Wstecz\\r\\n addStopsFrom: Dodaj przystanki z\\r\\n add: Dodaj\\r\\n no: Lp.\\r\\n deletePattern: Usuń trasę\\r\\n deletePatternConfirm: Czy na pewno chcesz usunąć trasę \\\"{{name}}\\\"?\\r\\n cancel: Anuluj\\r\\n delete: Usuń\\r\\n effectiveCalendars: Obowiązujące kalendarze\\r\\n newCalendar: Nowy kalendarz\\r\\n forTrip: Dla przejazdu\\r\\n calendarName: Nazwa kalendarza\\r\\n copyCalendarFrom: Skopiuj kalendarz z\\r\\n copy: Skopiuj\\r\\n scheduleEffective: Rozkład obowiązuje w\\r\\n periods: Okresy\\r\\n from: Od\\r\\n to: Do\\r\\n fromHour: Od godz.\\r\\n toHour: Do godz.\\r\\n additionalDates: Dodatkowe daty\\r\\n excludedDates: Wyłączone daty\\r\\n date: Data\\r\\n calendar: Kalendarz\\r\\n MONDAY: Pon\\r\\n TUESDAY: Wt\\r\\n WEDNESDAY: Śr\\r\\n THURSDAY: Czw\\r\\n FRIDAY: Pt\\r\\n SATURDAY: So\\r\\n SUNDAY: Nd\\r\\n deleteCalendar: Usuń kalendarz\\r\\n deleteCalendarConfirm: Czy na pewno chcesz usunąć kalendarz \\\"{{name}}\\\"?\\r\\n newTrip: Nowy przejazd\\r\\n type: Typ\\r\\n copyScheduleFrom: Skopiuj rozkład z\\r\\n schedule: Rozkład\\r\\n stop: Przystanek\\r\\n arrival: Przyjazd\\r\\n departure: Odjazd\\r\\n shape: Kształt\\r\\n addShape: Dodaj kształt\\r\\n totalDistance: Łączna odległość\\r\\n deleteTrip: Usuń przejazd\\r\\n singleTrip: Pojedynczy przejazd\\r\\n tripBlock: Blok przejazdów\\r\\n trip: Przejazd\\r\\n deleteTripConfirm: Czy na pewno chcesz usunąć przejazd \\\"{{name}}\\\"?\\r\\n back: Powrót\\r\\n start: Początek\\r\\n end: Koniec\\r\\n shapes: Kształty\\r\\n newShape: Nowy kształt\\r\\n shapeName: Nazwa kształu\\r\\n importShape: Importuj kształt\\r\\n findShape: Znajdź kształt\\r\\n distance: Odległość\\r\\n deleteShape: Usuń kształt\\r\\n deleteShapeConfirm: Czy na pewno chcesz usunąć kształt \\\"{{name}}\\\"?\\r\\n firstTrip: Pierwszy przejazd\\r\\n interval: Interwał (min.)\\r\\n masterSchedule: Szablon rozkładu\\r\\n copyDataFrom: Kopiuj dane z\\r\\n toDraft: do wersji roboczej\\r\\n publish: Publikuj\\r\\n releaseName: Nazwa wydania\\r\\n publishDraft: Publikuj wersję roboczą\\r\\n changesSummary: Podsumowanie zmian w wersji roboczej w porównaniu do obecnie opublikowanych danych\\r\\n added: dodano\\r\\n edited: zmieniono\\r\\n deleted: usunięto\\r\\n renamed: przemianowano\\r\\n route: linię\\r\\n pattern: trasę\\r\\n changeStop: przystanek\\r\\n changeTrip: przejazd\\r\\n changeShape: kształt\\r\\n changeCalendar: kalendarz\\r\\n changeForRoute: dla linii\\r\\n changeForPattern: dla trasy\\r\\n forStops: dla przystanków\\r\\n changeTripBlock: blok przejazdów\\r\\n copiedToDraft: Skopiowano do wersji roboczej.\\r\\n draftPublished: Kopia robocza została opublikowana.\\r\\n noChanges: Brak zmian.\\r\\n renamedTo: na\\r\\n draft: Wersja robocza\\r\\n editedBy: edytowana przez\\r\\n takeOverEditing: Przejmij edycję\\r\\n takeoverConfirm: Czy chcesz przejąć edycję wersji roboczej od {{author}}?\\r\\n proceed: Kontynuuj\\r\\n routeDeleteError: Nie można usunąć tej linii, ponieważ jest ona używana w jakichś trasach. Usuń najpierw te trasy.\\r\\n deleteRouteConfirm: Czy na pewno chcesz usunąć linię \\\"{{name}}\\\"?\\r\\n patternDeleteError: Nie można usunąć tej trasy, ponieważ jest ona używana w jakichś przejazdach. Usuń najpierw te przejazdy.\\r\\n deleteStopConfirm: Czy na pewno chcesz usunąć przystanek \\\"{{name}}\\\"?\\r\\n stopDeleteError: Nie można usunąć tego przystanku, ponieważ jest on używany w jakichś trasach. Usuń najpierw te trasy.\\r\\n shapeDeleteError: Nie można usunąć tego kształtu, ponieważ jest on używany w jakichś przejazdach.\\r\\n calendarDeleteError: Nie można usunąć tego kalendarza, ponieważ jest on używany w jakichś przejazdach. Usuń najpierw te przejazdy.\\r\\n routeExists: Linia \\\"{{name}}\\\" już istnieje.\\r\\n patternExists: Trasa \\\"{{name}}\\\" już istnieje.\\r\\n stopExists: Przystanek \\\"{{name}}\\\" już istnieje.\\r\\n shapeExists: Kształt \\\"{{name}}\\\" już istnieje.\\r\\n calendarExists: Kalendarz \\\"{{name}}\\\" już istnieje.\\r\\n crew: Brygady\\r\\n depot: Zajezdnia\\r\\n printableVersion: Wersja do druku\\r\\n copyCrew: Skopuj przypisanie brygady z\\r\\n startTime: Godz. rozp.\\r\\n vehicleID: Nr wozu\\r\\n driversName: Nazwisko kierowcy\\r\\n firstShift: Kierowca - I zmiana\\r\\n secondShift: Kierowca - II zmiana\\r\\n reports: Raporty\\r\\n period: Okres\\r\\n thisYear: Bieżący rok\\r\\n lastYear: Poprzedni rok\\r\\n thisMonth: Bieżący miesiąc\\r\\n lastMonth: Poprzedni miesiąc\\r\\n custom: Niestandardowy\\r\\n showVehicleKilometre: Pokaż wozo-kilometry\\r\\n month: Miesiąc\\r\\n total: RAZEM\\r\\n heading: Kierunek na wyświetlaczu\\r\\n tickets: Bilety\\r\\n importTickets: Importuj bilety\\r\\n pasteReport: Wklej raport sprzedaży biletów tutaj\\r\\n import: Importuj\\r\\n ticketSearch: Szukaj nazwiska, numeru biletu lub daty\\r\\n passengerName: Nazwisko pasażera\\r\\n ticketNumber: Numer biletu\\r\\n valid: Ważny\\r\\n importedTickets: Zaimportowano {{success}} z {{total}} biletów.\\r\\n close: Zamknij\\r\\n cipher: Szyfr\\r\\n ticketFrom: od\\r\\n ticketTo: do\\r\\n passenger: Pasażer\\r\\n relation: Relacja\\r\\n ticketNo: nr\\r\\n noTickets: Brak biletów.\\r\\n timetablesForStops: Dla przystanków\\r\\n selectAll: Zaznacz wszystko\\r\\n deselectAll: Odznacz wszystko\\r\\n forRoutes: Dla linii\\r\\n forPeriod: Dla okresu\\r\\n viewAll: Pokaż wszystko\\r\\n routeDescriptionTo: 'Opis (kierunek: TAM)'\\r\\n routeDescriptionFrom: 'Opis (kierunek: Z POWROTEM)'\\r\\n timetableDirection: KIERUNEK\\r\\n timetableStop: PRZYSTANEK\\r\\n timetableDescription: TRASA\\r\\n WORKWEEK: Dni powszednie\\r\\n SATURDAYS: Soboty\\r\\n SUNDAYS: Niedziele i święta\\r\\n patternRemarks: Uwagi widoczne na rozkładzie jazdy\\r\\n availableToPassengers: Dostępny dla pasażerów\\r\\n assign: Przypisz\\r\\n drivers: Kierowcy\\r\\n vehicles: Pojazdy\\r\\n crews: Brygady\\r\\n newCrew: Nowa brygada\\r\\n crewName: Nazwa brygady\\r\\n copyTrips: Skopiuj przejazdy z brygady\\r\\n addTrip: Dodaj przejazd\\r\\n or: lub\\r\\n startingStop: Przystanek początkowy\\r\\n departureTime: Godzina odjazdu\\r\\n deleteCrew: Usuń brygadę\\r\\n deleteCrewConfirm: Czy na pewno chcesz usunąć tę brygadę?\\r\\n newDriver: Nowy kierowca\\r\\n deleteDriver: Usuń kierowcę\\r\\n deleteDriverConfirm: Czy na pewno chcesz usunąć tego kierowcę?\\r\\n newVehicle: Nowy pojazd\\r\\n deleteVehicle: Usuń pojazd\\r\\n deleteVehicleConfirm: Czy na pewno chcesz usunąć ten pojazd?\\r\\n ferry: Prom\\r\\nroles:\\r\\n assignRoles: Przypisz role\\r\\n search: Wyszukaj nazwiska, organizacje lub role\\r\\n no: Lp.\\r\\n name: Imię i nazwisko\\r\\n email: Email\\r\\n login: Login\\r\\n role: Rola\\r\\n organization: Organizacja\\r\\n admin: administrator systemu\\r\\n agencyAdmin: administrator organizacji\\r\\n agencyEmployee: pracownik organizacji\\r\\n technician: technik\\r\\n ticketInspector: kontroler biletów\\r\\n none: żadna\\r\\n adminDescription: >\\r\\n może zarządzać wszystkimi użytkownikami, może zarządzać danymi beacon'ów, może odczytywać niepubliczne dane\\r\\n beacon'ów, może odczytywać i zapisywać dane transportowe wszystkich organizacji\\r\\n agencyAdminDescription: >\\r\\n może zarządzać użytkownikami organizacji, może odczytywać dane transportowe,\\r\\n może zapisywać dane transportowe organizacji\\r\\n agencyEmployeeDescription: może odczytywać dane transportowe\\r\\n technicianDescription: może odczytywać niepubliczne dane beacon'ów\\r\\n ticketInspectorDescription: może sprawdzać bilety używając aplikacji mobilnej\\r\\n discardChanges: Odrzuć zmiany\\r\\n save: Zapisz\\r\\n success: Użytkownicy zostali zapisani.\\r\\n failure: Zapisywanie użytkowników nie powiodło się.\\r\\n addEmail: Dodaj email\\r\\n addName: Dodaj imię i nazwisko\\r\\n addRole: Dodaj rolę\\r\\n addAgency: Dodaj organizację\\r\\n add: Dodaj\\r\\norgs:\\r\\n orgs: Organizacje\\r\\n newOrg: Nowa organizacja\\r\\n search: Szukaj organizacji\\r\\n fullName: Pełna nazwa organizacji\\r\\n shortName: Krótka nazwa organizacji\\r\\n website: Strona internetowa\\r\\n timeZone: Strefa czasowa\\r\\n dataMgmt: Zarządzanie danymi\\r\\n manual: Ręczne\\r\\n gtfs: Automatyczne (GTFS)\\r\\n netex: Automatyczne (NeTEx)\\r\\n other: Import przez API lub portal\\r\\n importUrl: URL pliku źródłowego\\r\\n tripPlanning: Użyj danych w planowaniu podróży\\r\\n delete: Usuń organizację\\r\\n confirmDelete: Czy na pewno chcesz usunąć organizację \\\"{{name}}\\\"?\\r\\n discard: Odrzuć zmiany\\r\\n save: Zapisz\\r\\n alreadyExists: Organizacja \\\"{{name}}\\\" już istnieje.\\r\\n invalidUrl: Niepoprawny URL.\\r\\nplanning:\\r\\n findRoute: Znajdź trasę\\r\\n from: Z\\r\\n to: Do\\r\\n depart: Odjazd\\r\\n arrive: Przyjazd\\r\\n now: Teraz\\r\\n dateAndTime: Data i czas\\r\\n search: Wyszukaj\\r\\n yourLocation: Twoja lokalizacja\\r\\n selectOnMap: Wybierz na mapie\\r\\n home: Dom\\r\\n locationError: Nie udało się pobrać lokalizacji.\\r\\n buyTicket: Kup bilet\\r\\n buy: Kup\\r\\n comingUp: Już wkrótce!\\r\\n buyTicketsHeader: Kup bilety\\r\\n total: Całkowity czas\\r\\n walk: Idź\\r\\n minutes_0: minuta\\r\\n minutes_1: minuty\\r\\n minutes_2: minut\\r\\n waitingTime: Czas oczekiwania\\r\\n stops_0: przystanek\\r\\n stops_1: przystanki\\r\\n stops_2: przystanków\\r\\n selectThis: Wybierz tę lokalizację\\r\\n noConnections: Brak połączeń.\\r\\n savedSearches: Zapisane wyszukania\\r\\n arriveAt: Przyjazd o\\r\\n departAt: Odjazd o\\r\\n arriveOn: Przyjazd\\r\\n departOn: Odjazd\\r\\n copied: Link skopiowany do schowka.\\r\\n bookmarked: Wyszukanie zapisane.\\r\\n dateFormat: D MMMM YYYY, HH:mm\\r\\n flightFromGdansk: Lot z Gdańska (GDN)\\r\\n selectFlight: Wybierz odlot\\r\\n date: Data\\r\\n onTime: na czas\\r\\n delayed: 'opóźniony: rzeczywisty'\\r\\n flightTo: 'lot o {{time}} do {{destination}}'\\r\\n pinLocation: Położenie znacznika\\r\\npassenger:\\r\\n privacyPolicy: Polityka prywatności\\r\\n termsAndConditions: Regulamin\\r\\n aboutProject: O projekcie\\r\\n disclaimer: >\\r\\n Zawartość tej strony stanowi wyłączną odpowiedzialność jej autora i w żaden sposób\\r\\n nie odzwierciedla poglądów Unii Europejskiej, Instytucji Zarządzającej,\\r\\n czy Połączonego Sekretariatu Programu Interreg South Baltic na lata 2014-2020.\\r\\nprivacy:\\r\\n header1: Zagadnienia ogólne\\r\\n li1: >\\r\\n Niniejsza polityka prywatności dotyczy usług oferowanych w ramach strony\\r\\n <0>https://opendata.info.pl/. Polityka w zakresie <1>cookies sporządzona została zgodnie\\r\\n z obowiązkami wynikającymi z nowelizacji Prawa Telekomunikacyjnego, które weszły w życie\\r\\n 22 marca 2013 roku, pozostając tym samym w zgodzie z zapisami dyrektywy europejskiej.\\r\\n li2: >\\r\\n <0>Portal Pasażera Interconnect wykorzystuje pliki <1>cookies oraz przechowuje kluczowe informacje\\r\\n bezpośrednio na urządzeniu użytkownika.\\r\\n li3: >\\r\\n Dzięki plikom <0>cookies i lokalnie przechowywanym danym użytkownicy nie muszą się logować\\r\\n za każdym razem, gdy otwierają witrynę Portalu Pasażera Interconnect, a ich poprzednie\\r\\n ustawienia dotyczące przeglądania danych transportowych, języka i organizacji są również\\r\\n zachowane, więc nie ma potrzeby ich każdorazowego ustawiania.\\r\\n li4: >\\r\\n W ramach serwisu stosowane są następujące rodzaje plików <0>cookies:\\r\\n li4li1: >\\r\\n Pliki <0>cookies ustawiane przez Aut0 do zarządzania sesją użytkownika,\\r\\n li4li2: >\\r\\n Pliki <0>cookies ustawiany przez Microsoft (Azure) – a w szczególności plik cookie\\r\\n ARRAffinity, który służy do przypisania klienta do określonej instancji aplikacji.\\r\\n li5: >\\r\\n Portal Pasażera Interconnect korzysta z przestrzeni „Local Storage” w przeglądarce\\r\\n zainstalowanej na urządzeniu użytkownika serwisów Interconnect w celu przechowywania:\\r\\n li5li1: >\\r\\n informacji o języku, który był ostatnio używany w aplikacji,\\r\\n li5li2: >\\r\\n parametrów wyszukiwania podróży zapisanych przez użytkownika, jeśli się nie zalogował\\r\\n w serwisie,\\r\\n li5li3: >\\r\\n tokena dostępu Auth0, jeśli użytkownik jest zalogowany w serwisie,\\r\\n li5li4: >\\r\\n identyfikatora ostatnio ustawionej organizacji transportowej, jeżeli użytkownik jest\\r\\n administratorem systemu,\\r\\n li5li5: >\\r\\n identyfikatora ostatnio ustawionego widoku danych (dla konkretnej organizacji), jeśli\\r\\n użytkownik jest administratorem systemu, administratorem organizacji lub organizatorem\\r\\n (w organizacji wykorzystującej ręczne wprowadzanie danych).\\r\\n li6: >\\r\\n Jedną z form kontaktu z administratorem systemu (Innobaltica So. z o.o.) jest możliwość\\r\\n przesłania swoich spostrzeżeń w formie elektronicznej za pośrednictwem poczty\\r\\n elektronicznej. W każdym momencie można wystąpić o wykreślenie danych z naszej bazy\\r\\n i zaprzestanie ich dalszego gromadzenia.\\r\\n header2: Ochrona danych osobowych\\r\\n li7: >\\r\\n Ta część polityki prywatności dotyczy ochrony danych osobowych udostępnianych przez\\r\\n użytkowników logujących się do serwisów Interconnect albo kontaktujących się\\r\\n z administratorem serwisów (Innobaltica Sp. z o.o.) za pośrednictwem formularzy lub poczty\\r\\n elektronicznej. W przypadku użytkowników, którzy nie logują się do serwisów i nie\\r\\n korespondują z nami za pomocą formularzy lub poczty elektronicznej, nie zachodzi czynność\\r\\n udostępniania danych osobowych.\\r\\n li8: >\\r\\n Na podstawie Rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia\\r\\n 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych\\r\\n osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy\\r\\n 95/46/WE (ogólne rozporządzenie o ochronie danych, dalej RODO) oraz Ustawy z 10 maja\\r\\n 2018 roku o ochronie danych osobowych, informujemy, że podanie nam przez Ciebie Twoich\\r\\n danych osobowych jest dobrowolne (nie jest wymogiem ustawowym lub umownym), ale ich\\r\\n niepodanie może skutkować utrudnieniem lub niemożnością nawiązania kontaktu z Tobą, na\\r\\n przykład w celu przekazania informacji zwrotnej o przysługujących Ci prawach, udzielenia\\r\\n odpowiedzi na zapytanie, załatwienia zgłoszonej przez Ciebie sprawy, rozpatrzenia Twojego\\r\\n wniosku lub zawarcia umowy.\\r\\n li9: >\\r\\n Kategorie przetwarzanych danych to dane do kontaktu z użytkownikiem usług świadczonych\\r\\n przez Innobaltica sp. z o.o.: <0>imię, nazwisko, adres e-mail, ewentualnie inne dane, jeśli\\r\\n nam je podasz.\\r\\n li10: >\\r\\n Administratorem Danych Osobowych (ADO) jest InnoBaltica Sp. z o.o.\\r\\n li10li1: >\\r\\n dane teleadresowe: 80-067 Gdańsk, ul. Równa 19/21; NIP: 957-100-34-04; REGON:\\r\\n 220639884; KRS 0000311943.\\r\\n li10li2: >\\r\\n dane kontaktowe do osoby odpowiedzialnej za ochronę danych osobowych:\\r\\n <0>wieslaw.telepski@innobaltica.pl, tel. 720-810-344.\\r\\n li11: >\\r\\n Dane osobowe będą przetwarzane w celu utrzymywania kontaktu z użytkownikiem oraz\\r\\n przekazywania tą drogą informacji, a także w celu realizacji celów Spółki InnoBaltica\\r\\n w zakresie wdrożenia na obszarze województwa pomorskiego jednolitego systemu poboru\\r\\n opłat za przewozy w publicznym transporcie zbiorowym oraz systemu jednolitej informacji\\r\\n pasażerskiej, w tym w celu:\\r\\n li11li1: >\\r\\n utrzymywania kontaktu z użytkownikiem w celu udzielenia odpowiedzi na zapytanie lub\\r\\n zgłoszonej przez niego sprawy, w tym między innymi rozpatrzenia wniosków i zapytań\\r\\n dotyczących realizacji przysługujących praw do prywatności i ochrony danych osobowych\\r\\n (podstawa prawna: art. 6 ust. 1. lit d RODO);\\r\\n li11li2: >\\r\\n zawarcia i wykonania umowy (podstawa prawna: art. 6 ust. 1. lit b) RODO);\\r\\n li11li3: >\\r\\n podjęcia działań na żądanie użytkownika przed zawarciem umowy np. w celu rozpatrzenia\\r\\n Twojego wniosku, w którym wyraziłeś chęć nawiązania współpracy z nami lub gdy\\r\\n dopytujesz o szczegóły naszej oferty, którą się interesujesz (podstawa prawna: art. 6 ust.\\r\\n 1. lit b) RODO);\\r\\n li11li4: >\\r\\n wypełnienia obowiązku prawnego ciążącego na administratorze danych, np. obowiązku\\r\\n przechowywania określonych przepisami prawa danych przez określony czas (np.\\r\\n dokumentacja z zakresu rachunkowości), zebrania informacji w celu dokonania\\r\\n identyfikacji lub weryfikacji osoby fizycznej, przekazania danych uprawnionym organom\\r\\n lub podmiotom, np. policja, prokurator itp. (podstawa prawna: art. 6 ust. 1. lit c) RODO);\\r\\n li11li5: >\\r\\n realizacji celów wynikających z prawnie uzasadnionych interesów realizowanych przez\\r\\n administratora danych lub przez stronę trzecią, np. ustalenie, dochodzenie oraz obrona\\r\\n przez nas w przypadku ewentualnych roszczeń z tytułu prowadzonej przez nas\\r\\n działalności (podstawa prawna: art. 6 ust. 1. lit f) RODO).\\r\\n li12: >\\r\\n Dane osobowe nie będą udostępniane odbiorcom lub osobom trzecim, za wyjątkiem sytuacji,\\r\\n gdy:\\r\\n li12li1: >\\r\\n będzie to niezbędne do realizacji prawnie uzasadnionych celów działalności realizowanych\\r\\n przez InnoBaltica Sp. z o. o. i będzie zgodne z obowiązującymi w tym zakresie przepisami\\r\\n prawa lub jeśli wyrazisz na to stosowną zgodę;\\r\\n li12li2: >\\r\\n przy wykonywaniu zadań związanych z przetwarzaniem Twoich danych zajdzie\\r\\n konieczność skorzystania z usług podmiotów zewnętrznych, w zakresie niezbędnym do\\r\\n realizacji naszych statutowych celów i zadań, na przykład w sytuacji konieczności\\r\\n skorzystania z usług podmiotów zapewniających nam pomoc techniczną w serwisowaniu\\r\\n narzędzi (sprzętu, urządzeń i oprogramowania), niezbędnych w procesie przetwarzania\\r\\n danych.\\r\\n li13: >\\r\\n Powierzając Twoje dane osobowe odbiorcom, zawsze dokładamy należytej staranności, aby\\r\\n były one chronione i przetwarzane zgodnie z obowiązującym prawem, czyli w ściśle\\r\\n określonym i prawnie uzasadnionym celu oraz przez czas nie dłuższy niż niezbędny do\\r\\n realizacji tego celu.\\r\\n li14: >\\r\\n Dane osobowe nie będą przekazywane do państw trzecich lub organizacji międzynarodowych.\\r\\n li15: >\\r\\n Dane osobowe będą przetwarzane przez czas niezbędny do realizacji celów, w jakich zostały\\r\\n one pozyskane, wydłużony o okres biegu przedawnienia wzajemnych roszczeń mogących\\r\\n wynikać z realizacji tych celów lub każdorazowo na czas nie dłuższy niż wynikający\\r\\n z obowiązujących przepisów prawa.\\r\\n li16: >\\r\\n Przysługujące Ci prawa w odniesieniu do procesów przetwarzania, dotyczą:\\r\\n li16li1: >\\r\\n żądania od administratora danych dostępu do Twoich danych osobowych oraz ich\\r\\n sprostowania, usunięcia lub ograniczenia przetwarzania;\\r\\n li16li2: >\\r\\n wniesienia sprzeciwu wobec przetwarzania Twoich danych osobowych przez\\r\\n administratora danych;\\r\\n li16li3: >\\r\\n żądania od administratora danych osobowych przenoszenia Twoich danych;\\r\\n li16li4: >\\r\\n cofnięcia zgody na przetwarzanie danych osobowych – o ile przetwarzanie tych danych\\r\\n odbywa się na podstawie Twojej zgody – w dowolnym momencie. Cofnięcie zgody\\r\\n pozostaje bez wpływu na zgodność z prawem przetwarzania Twoich danych osobowych,\\r\\n którego dokonano na podstawie zgody przed jej cofnięciem;\\r\\n li16li5: >\\r\\n złożenie skargi do Prezesa Urzędu Ochrony Danych Osobowych.\\r\\n li17: >\\r\\n Źródło danych osobowych, powstaje w następujący sposób:\\r\\n li17li1: >\\r\\n gdy podajesz nam swoje dane osobiście, np. poprzez wypełnienie formularza\\r\\n kontaktowego;\\r\\n li17li2: >\\r\\n za pośrednictwem mediów społecznościowych, pocztą elektroniczną, pocztą tradycyjną,\\r\\n telefonicznie lub w inny sposób;\\r\\n li17li3: >\\r\\n gdy zostaną nam one przekazane zgodnie z obowiązującym prawem, na przykład przez\\r\\n podmioty trzecie z którymi współpracujemy, i którym już swoje dane udostępniłeś, np.\\r\\n <0>Auth0, to jest autoryzowanej platformie potwierdzania tożsamości na podstawie konta\\r\\n <1>Google lub <2>Facebook, zgodnie z zasadami tych serwisów społecznościowych lub np.\\r\\n organizacji turystycznej, będącej emitentem Twojej Karty Podróżnego, Karty Turystycznej,\\r\\n Karty Mieszkańca – a karta ta jest powiązana systemowo z naszymi usługami.\\r\\n li18: >\\r\\n Twoje dane osobowe będą przetwarzane w stosowanych przez nas systemach\\r\\n informatycznych, ale nie będą przetwarzane automatycznie.\\r\\n li19: >\\r\\n Pełna treść dokumentu pod nazwą Polityka bezpieczeństwa danych osobowych w <0>InnoBaltica\\r\\n Sp. z o.o. jest dostępna pod adresem:\\r\\n <1>http://innobaltica.pl/index.php?fdownload=file-politykabezpieczenstwadanychosobowych.pdf\\r\\nterms:\\r\\n terms1: Regulamin korzystania z serwisu informacji o rozkładach jazdy\\r\\n terms2: „Portal Pasażera Interconnect”\\r\\n terms3: (bez konieczności logowania się przez użytkownika)\\r\\n header1: §1 Zasady ogólne\\r\\n li1: >\\r\\n Niniejszy regulamin określa zasady korzystania z serwisu informacji o rozkładach jazdy <0>„Portal\\r\\n Pasażera Interconnect”(dalej Portal), dostępnego pod adresem: <1>https://opendata.info.pl.\\r\\n li2: >\\r\\n Każdy użytkownik <0>Portalu zobowiązany jest do przestrzegania postanowień niniejszego regulaminu.\\r\\n li3: >\\r\\n <0>Portal do 30 listopada 2020 roku będzie udostępniony użytkownikom w wersji rozwojowej (beta).\\r\\n Oznacza to, że w tym czasie następować będą istotne ulepszenia funkcjonowania <1>Portalu oraz\\r\\n zasobu prezentowanych w nim danych transportowych. Po tej dacie <2>Portal funkcjonować będzie już\\r\\n w pełnych funkcjonalnościach, na tych samych zasadach ogólnych i z zachowaniem dotychczasowej\\r\\n dostępności dla użytkowników.\\r\\n li4: >\\r\\n Właścicielem i administratorem <0>Portalu jest publiczna spółka InnoBaltica Sp. z o.o. (InnoBaltica\\r\\n Spółka z ograniczoną odpowiedzialnością wpisana do Krajowego Rejestru Sądowego prowadzonego\\r\\n przez Sąd Rejonowy Gdańsk-Północ w Gdańsku, VII Wydział Gospodarczy Krajowego Rejestru\\r\\n Sądowego pod numerem KRS: 0000311943, NIP: 9571003404, REGON: 220639884) z siedzibą\\r\\n przy ul. Równej 19/21 w Gdańsku, realizująca zadania powierzone przez organizatorów publicznego\\r\\n transportu zbiorowego.\\r\\n li5: >\\r\\n Zasady korzystania z rozszerzonych funkcjonalności <0>Portalu Pasażera Interconnect, dostępnych dla\\r\\n zalogowanego użytkownika, określa dodatkowo <1>Regulamin Konta Użytkownika.\\r\\n li6: >\\r\\n <0>Portal Pasażera Interconnect nie wymaga udostępniania danych osobowych przez niezalogowanego\\r\\n pasażera.\\r\\n li7: >\\r\\n Udostępnianie przez anonimowego pasażera lokalizacji urządzenia oraz łączności Bluetooth\\r\\n wykorzystywane są wyłącznie do ułatwienia mu korzystania z wyszukiwarki połączeń, a także do\\r\\n automatycznego odbioru przez aplikację informacji dotyczących podróży np. o przystankach\\r\\n transportowych znajdujących się w pobliżu, odjazdach środków transportu.\\r\\n li8: >\\r\\n Brak zgody użytkownika na udostępnianie danych lokalizacyjnych jego urządzenia w istotny sposób\\r\\n zmniejsza funkcjonalności informacyjne serwisu.\\r\\n li9: >\\r\\n Zarówno w czasie rzeczywistym, jak i w późniejszym terminie nie ma możliwości połączenia\\r\\n informacji o lokalizacji urządzenia z pasażerem, który nie zdecydował się na logowanie w serwisie -\\r\\n zgodnie z <0>Polityką prywatności.\\r\\n li10: >\\r\\n Korzystanie z serwisu jako pasażer logujący się jest łatwe i intuicyjne, a prawa pasażera do ochrony\\r\\n jego danych osobowych są najwyższym priorytetem administratora systemu (Innobaltica Sp. z o.o.).\\r\\n li11: >\\r\\n Pasażer zawsze może zmienić swoją decyzję w zakresie chęci korzystania z <0>Konta Użytkownika\\r\\n i w dowolnym momencie zarejestrować się w systemie lub przeciwnie - jako logujący się użytkownik\\r\\n może zażądać całkowitej likwidacji swojego <1>Konta Użytkownika w systemie, z tym jednak\\r\\n zastrzeżeniem, że w sytuacji likwidacji <2>Konta Użytkownika wszystkie dane dotyczące tego konta\\r\\n zostaną trwale utracone w systemie i użytkownik nie będzie ich mógł odzyskać.\\r\\n header2: §2 Przeznaczenie i dostępność usługi\\r\\n li12: >\\r\\n <0>Portal Pasażera Interconnect to serwis informacyjny, prezentujący informacje o rozkładach jazdy\\r\\n środków transportu zbiorowego, z których może skorzystać każdy pasażer przebywający lub\\r\\n planujący pobyt w województwie pomorskim. <1>Portal stworzony został w ramach projektu\\r\\n Interconnect dofinansowanego ze środków UE z programu Interreg Południowy Bałtyk 2014-2020,\\r\\n z myślą o pasażerach podróżujących w relacji Karlskrona – Pomorskie z wykorzystaniem promu\\r\\n Stena Line oraz środków publicznego transportu zbiorowego, zarówno w Szwecji, jak i w Polsce.\\r\\n li13: >\\r\\n <0>Portal dostępny jest za pośrednictwem strony www lub z wykorzystaniem aplikacji mobilnej możliwej\\r\\n do pobrania w Sklepie Play (dla urządzeń mobilnych z systemem operacyjnym Android) oraz\\r\\n w AppStore (dla urządzeń mobilnych z systemem iOS).\\r\\n li14: >\\r\\n <0>Portal dostępny jest dla użytkowników posługujących się językiem polskim lub językiem angielskim.\\r\\n li15: >\\r\\n Korzystanie z <0>Portalu jest nieodpłatne w celach niekomercyjnych.\\r\\n li16: >\\r\\n W przypadku chęci korzystania z <0>Portalu na zasadach komercyjnych, użytkownik powinien\\r\\n z wyprzedzeniem uzyskać na to pisemną zgodę InnoBaltica Sp. z o.o.\\r\\n li17: >\\r\\n Użytkownicy korzystający z serwisu niezgodnie z zasadami określonymi w Regulaminie lub\\r\\n podejmujący próby wywarcia negatywnego zdanego wpływu na dostępność serwisu - będą\\r\\n automatycznie powstrzymywani poprzez ich zablokowanie w systemie Usługodawcy.\\r\\n li18: >\\r\\n Usługodawca stara się zapewnić nieprzerwane funkcjonowanie portalu, jednak nie może zapewnić\\r\\n niezakłóconej jego dostępności i działania, co może być związane na przykład z zakłóceniami\\r\\n w dostępie do sieci Internet lub chwilowym brakiem dostępności do danych niektórych\\r\\n organizatorów publicznego transportu zbiorowego.\\r\\n header3: §3 Funkcjonalności Portalu\\r\\n li19: >\\r\\n <0>Portal Pasażera Interconnect korzysta z następujących definicji:\\r\\n li19li1: >\\r\\n <0>Usługodawca – właściciel serwisu (InnoBaltica Sp. z o.o.) korzystający z danych\\r\\n o rozkładach jazdy udostępnionych mu przez organizatorów\\r\\n publicznego transportu zbiorowego i przewoźników,\\r\\n li19li2: >\\r\\n <0>Użytkownik (pasażer) – każda osoba korzystająca w jakikolwiek sposób z Portalu\\r\\n Pasażera Interconnect,\\r\\n li19li3t: Twoja lokalizacja –\\r\\n li19li3d: >\\r\\n funkcjonalność pozwalająca ustalić punkt, w jakim znajduje się\\r\\n urządzenie, z którego korzystasz (na podstawie takich źródeł,\\r\\n jak: GPS, Wi-Fi i sygnał stacji bazowej – co wymaga\\r\\n udostępnienia przeglądarce lub aplikacji Interconnect\\r\\n dodatkowych zasobów urządzenia, zgodnie z <0>Polityką\\r\\n prywatności)\\r\\n li19li4: >\\r\\n <0>Wybierz na mapie – funkcjonalność wskazywania lokalizacji jednym kliknięciem\\r\\n w wybranym miejscu na mapie,\\r\\n li19li5: >\\r\\n <0>Wyszukaj – polecenie przeszukania udostępnionych przez Usługodawcę\\r\\n rozkładów jazdy z uwzględnieniem parametrów określonych\\r\\n przez Użytkownika,\\r\\n li19li6: >\\r\\n <0>Zapisane wyszukania – parametry wyszukiwania trasy, które zostały zapisane przez\\r\\n Użytkownika w pamięci przeglądarki na urządzeniu,\\r\\n li19li7: >\\r\\n <0>Wyszukanie zapisane – komunikat o poprawnym zapisaniu parametrów wyszukiwania\\r\\n trasy w pamięci przeglądarki,\\r\\n li19li8: >\\r\\n <0>Link skopiowany do schowka – komunikat o zapisaniu parametrów wyszukiwania trasy\\r\\n w pamięci podręcznej urządzenia w celu udostępnienia go przez\\r\\n Użytkownika w innych aplikacjach,\\r\\n li19li9: >\\r\\n <0>Beacon – urządzenie zainstalowane w przestrzeni publicznej, nadające\\r\\n komunikaty, które mogą zostać wyświetlone w naszej aplikacji\\r\\n li19li10: >\\r\\n <0>Odjazd – moment, w którym pojazd opuszcza przystanek,\\r\\n li19li11: >\\r\\n <0>Przyjazd – moment, w którym pojazd pojawia się na przystanku,\\r\\n li19li12: >\\r\\n <0>Teraz – funkcjonalność pozwalająca na ustalenie aktualnego czasu\\r\\n li19li13: >\\r\\n <0>Data i czas – funkcjonalność pozwalająca Użytkownikowi na wybór dnia\\r\\n i godziny odjazdu/przyjazdu środka transportu.\\r\\n li20: >\\r\\n Wykorzystując dostępne funkcjonalności <0>Portalu, pasażer posiadający urządzenie z dostępem do\\r\\n sieci Internet - może wyszukać połączenie komunikacyjne na całej trasie, to jest: z miejsca wyjazdu\\r\\n - do miejsca docelowego.\\r\\n li21: >\\r\\n Przez naciśnięcie na przeznaczony do tego przycisk aplikacji, pasażer może zapisać parametry\\r\\n wyszukiwanej przez siebie trasy w pamięci przeglądarki.\\r\\n li22: >\\r\\n Przez naciśnięcie na przeznaczony do tego przycisk aplikacji, pasażer może skopiować parametry\\r\\n wyszukiwanej przez siebie trasy do pamięci podręcznej swojego urządzenia i następnie wysłać je\\r\\n w treści wiadomości innej osobie (za pomocą dowolnego klienta poczty elektronicznej).\\r\\n li23: >\\r\\n Pasażer może wyszukać połączenie, które planuje zrealizować w przyszłości, jednak powinien\\r\\n pamiętać, że: dane w systemie <0>Portalu Pasażera Interconnect aktualizowane są na bieżąco\\r\\n i w najbliższych dniach mogą zostać wprowadzone zmiany w rozkładzie jazdy, które wpłyną na\\r\\n pierwotny plan podróży tego pasażera, oraz, że dla zadanego terminu w przyszłości dane\\r\\n o rozkładzie jazdy mogą jeszcze nie być dostępne w serwisie.\\r\\n li24: >\\r\\n Jeśli pasażer nie odnalazł oczekiwanego połączenia w <0>Portalu Pasażera Interconnect, zaleca się\\r\\n kontakt z informacją pasażerską wybranego przewoźnika, w celu zasięgnięcia szczegółowych\\r\\n informacji o jego ofercie transportowej.\\r\\n li25: >\\r\\n Pasażer może otrzymywać wiadomości, w formie notyfikacji na smartfonie, gdy znajdzie się\\r\\n w okolicy aktywnego beaconu systemu Interconnect. Pasażer poprzez taką informację będzie\\r\\n wiedział, że znajduje się w okolicy danego przystanku. Funkcja ta działa tylko w przypadku wydania\\r\\n zgody na dostęp do lokalizacji przez pasażera.\\r\\n header4: §4 Zakres prezentowanych danych\\r\\n li26: >\\r\\n <0>Portal prezentuje informacje publiczne, w tym przede wszystkim rozkłady jazdy przewoźników\\r\\n o znaczeniu lokalnym i regionalnym: autobusowych, trolejbusowych, tramwajowych, kolejowych,\\r\\n promowych - oraz godziny przylotów i odlotów przewoźników lotniczych do/z Portu Lotniczego\\r\\n im. Lecha Wałęsy w Gdańsku.\\r\\n li27: >\\r\\n W odniesieniu do informacji dotyczących przylotów i odlotów samolotów, precyzuje się, że:\\r\\n li27li1: >\\r\\n Informacje te pochodzą z tabel przylotów i odlotów, przekazywanych spółce Port Lotniczy\\r\\n Gdańsk Sp. z o.o. przez przewoźników lotniczych i agentów handlingowych i nie mają\\r\\n charakteru komercyjnego;\\r\\n li27li2: >\\r\\n Informacje dotyczące przylotów/odlotów nie są modyfikowane przez InnoBaltica Sp. z o.o.,\\r\\n przekazywane są w czasie rzeczywistym oraz odświeżane co około 5 minut;\\r\\n li27li3: >\\r\\n Port Lotniczy Gdańsk Sp. z o.o. nie ponosi odpowiedzialności za treść informacji oraz za jej\\r\\n przetworzenie, dalsze udostępnianie i wykorzystywanie.\\r\\n li28: >\\r\\n W odniesieniu do informacji dotyczących komunikacji miejskiej w Gdańsku, precyzuje się, że:\\r\\n li28li1: >\\r\\n Informacje te pochodzą z Zarządu Transportu Miejskiego w Gdańsku - serwisu Otwarte dane\\r\\n ZTM w Gdańsku: <0>http://www.ztm.gda.pl/otwarty_ztm\\r\\n li28li2: >\\r\\n Informacje dotyczące planowanego rozkładu jazdy aktualizowane są automatycznie codziennie\\r\\n w godzinach wczesnoporannych.\\r\\n li28li3: >\\r\\n Miasto Gdańsk i podległe jednostki organizacyjne nie ponoszą odpowiedzialności za ewentualne\\r\\n szkody wynikające z korzystania z danych udostępnionych na <0>Portalu.\\r\\n li29: >\\r\\n W odniesieniu do informacji dotyczących komunikacji miejskiej w Gdyni, precyzuje się, że:\\r\\n li29li1: >\\r\\n Informacje te dostarczane są przez Zarząd Dróg i Zieleni i pochodzą z serwisu Otwarte dane:\\r\\n <0>http://otwartedane.gdynia.pl/pl/dataset?groups=transport\\r\\n li29li2: >\\r\\n Informacje dotyczące planowanego rozkładu jazdy aktualizowane są automatycznie codziennie\\r\\n w godzinach wczesnoporannych.\\r\\n li29li3: >\\r\\n Urząd Miasta w Gdyni nie ponosi odpowiedzialności za zbiory danych dodane przez\\r\\n użytkowników portalu Otwarte dane, nie będącymi własnością urzędu.\\r\\n li30: >\\r\\n W odniesieniu do informacji o rozkładach jazdy pozostałych organizatorów publicznego transportu\\r\\n zbiorowego dostępnego w serwisie, precyzuje się, że:\\r\\n li30li1: >\\r\\n Informacje wprowadzane są przez każdego organizatora samodzielnie przez osoby do tego\\r\\n upoważnione,\\r\\n li30li2: >\\r\\n Osoby te dołożą wszelkich starań, aby dane przetwarzane w systemie <0>Portalu były na bieżąco\\r\\n aktualizowane,\\r\\n li30li3: >\\r\\n Alternatywnie informacje te mogą pochodzić z otwartych zasobów danych publicznych,\\r\\n dostępnych na podstawie licencji <0>CC0 1.0.\\r\\n li31: >\\r\\n Prezentowane w <0>Portalu rozkłady jazdy nie uwzględniają zmian incydentalnych, związanych z awarią\\r\\n środka transportu, gwałtownymi zjawiskami atmosferycznymi, blokadą trasy itp. – powodujących\\r\\n konieczność natychmiastowej, awaryjnej zmiany rozkładu jazdy lub wycofania środka transportu\\r\\n z trasy.\\r\\n li32: >\\r\\n Usługodawca postara się, aby wszystkie zmiany w kursowaniu i rozkładach pojazdów komunikacji\\r\\n były aktualizowane na bieżąco.\\r\\n li33: >\\r\\n Ponowne wykorzystanie informacji dostępnych w serwisie następuje na odpowiedzialność podmiotu\\r\\n pobierającego te informacje, a Usługodawca nie ponosi odpowiedzialności za sposób, aktualność\\r\\n i ewentualną szkodę wynikającą z ponownego ich wykorzystania.\\r\\n li34: >\\r\\n Usługodawca zastrzega sobie prawo do wykonywania czynności konserwacyjnych i naprawczych\\r\\n w ramach serwisu.\\r\\n header5: §5 Postanowienia końcowe\\r\\n li35: >\\r\\n Korzystanie z danych <0>Portalu odbywa się na własną odpowiedzialność użytkownika serwisu\\r\\n i w sytuacjach istotnych dla pasażera zaleca się dodatkową weryfikację oferty transportowej\\r\\n wybranego przewoźnika.\\r\\n li36: >\\r\\n W przypadku zagadnień nieuregulowanych w regulaminie używane są przepisy polskiego prawa.\\r\\n li37: >\\r\\n Prawa autorskie do poszczególnych elementów graficznych, układu i kompozycji tych elementów\\r\\n należą do usługodawcy. Zabronione jest wykorzystywanie elementów graficznych oraz ich układu\\r\\n i kompozycji bez pisemnej zgody InnoBaltica Sp. z o.o.\\r\\n li38: >\\r\\n Użytkownicy chcący uczestniczyć w rozwoju serwisu i poprawianiu jego jakości proszeni są\\r\\n o kierowanie wszelkich uwag, sugestii, komentarzy związanych z działaniem Portalu w formie\\r\\n elektronicznej na adres <0>planer@opendata.info.pl\\r\\ntouristCard:\\r\\n myCard: Moja karta\\r\\n addCard: Dodaj kartę\\r\\n cardHolder: Posiadacz karty\\r\\n cardNumber: Wpisz numer karty\\r\\n cancel: Anuluj\\r\\n save: Zapisz\\r\\n cardSaved: Zapisano kartę.\\r\\n failedToSave: Nie udało się zapisać karty.\\r\\n card: Karta\\r\\n delete: Usuń\\r\\n deleteConfirm: Czy chcesz usunąć tę kartę z aplikacji?\\r\\n go: Idź\\r\\n address: Adres\\r\\n openingHours: Godziny otwarcia\\r\\n tickets: Bilety\\r\\n cards: Karty\\r\\n search: Szukaj miejsc, atrakcji, aktywności\\r\\n get: Zdobądź\\r\\n expired: Przedawniona\\r\\n valid: Ważna\\r\\n cardPrice: Cena karty\\r\\n validTo: do\\r\\n fromActivation: od aktywacji\\r\\n free: bezpłatna\\r\\n buyCard: Kup kartę\\r\\n freeEntry_0: darmowe wejście\\r\\n freeEntry_1: darmowe wejścia\\r\\n freeEntry_2: darmowych wejść\\r\\n discountedEntry_0: wejście ze zniżką\\r\\n discountedEntry_1: wejścia ze zniżką\\r\\n discountedEntry_2: wejść ze zniżką\\r\\n admission: Wejście\\r\\n youSave: oszczędzasz\\r\\n openNow: Otwarte\\r\\n closes: Zamknięte od\\r\\n closedNow: Zamknięte\\r\\n opens: Otwarte od\\r\\n closed: Zamknięte\\r\\n mondayFriday: poniedziałek - piątek\\r\\n saturdaySunday: sobota - niedziela\\r\\n mondaySunday: poniedziałek - niedziela\\r\\n and: i\\r\\n MONDAY: poniedziałek\\r\\n TUESDAY: wtorek\\r\\n WEDNESDAY: środa\\r\\n THURSDAY: czwartek\\r\\n FRIDAY: piątek\\r\\n SATURDAY: sobota\\r\\n SUNDAY: niedziela\\r\\n visitorResources: Zasoby dla odwiedzających\\r\\ndataSource:\\r\\n info: aby móc edytować dane transportowe (w sekcji Dane) wybranego źródła.\\r\\ncard:\\r\\n organizations: Organizacje\\r\\n roles: Role\\r\\n packages: Pakiety\\r\\n site: Lokalizacja\\r\\n cards: Karty\\r\\n statistics: Statystyka\\r\\n offersManager: zarządzający ofertą karty\\r\\n siteManager: zarządzający lokalizacją\\r\\n cardSeller: sprzedawca kart\\r\\n cardInspector: kontroler kart\\r\\n addOrganization: Dodaj organizację\\r\\n addSite: Dodaj lokalizację\\r\\n offersManagerDescription: >\\r\\n zarządzający lokalną lub regionalną organizacją turystyczną; tworzy i zarządza pakietami atrakcji z których\\r\\n użytkownik karty może skorzystać po obniżonej cenie; może zarządzać innymi zarzadzającymi ofertą karty oraz\\r\\n sprzedawcami kart wewnątrz organizacji, może zarządzać zarządzającymi lokalizacją z lokalizacji powiązanych\\r\\n z organizacją\\r\\n siteManagerDescription: >\\r\\n zarządza szczegółowymi informacjami dotyczącymi wszystkich atrakcji w lokalizacji (np. aktualizuje godziny\\r\\n otwarcia, publikuje mapy lokalizacji, itp.); może zarządzać innymi zarządzającymi lokalizacją oraz\\r\\n kontrolerami kart wewnątrz lokalizacji\\r\\n cardSellerDescription: >\\r\\n pracownik lokalnej lub regionalnej organizcji turystycznej; sprzedaje pakiety i przypisuje je do nowych\\r\\n lub istniejących kart\\r\\n cardInspectorDescription: >\\r\\n używa aplikacji mobilnej do weryfikowania karty i pozwala lub odmawia wejścia użytkownikowi karty\\r\\n do atrakcji wewnątrz danej lokalizacji\\r\\n nameInPolish: Nazwa po polsku\\r\\n nameInEnglish: Nazwa po angielsku\\r\\n website: Strona internetowa\\r\\n descriptionInPolish: Opis po polsku\\r\\n descriptionInEnglish: Opis po angielsku\\r\\n address: Adres\\r\\n telephoneNumber: Numer telefonu\\r\\n emailAddress: Adres e-mail\\r\\n image: Obrazek\\r\\n dragAndDrop: Przeciągnij plik tutaj lub\\r\\n selectFile: Wybierz plik\\r\\n discardChanges: Odrzuć zmiany\\r\\n save: Zapisz\\r\\n attractions: Atrakcje\\r\\n newAttraction: Nowa atrakcja\\r\\n attraction: Atrakcja\\r\\n accessibility: Dostępność\\r\\n accessible: Dostępna\\r\\n elevator: Winda\\r\\n escalator: Schody ruchome\\r\\n guides: Przewodniki\\r\\n newGuide: Nowy przewodnik\\r\\n attachFile: Dołącz plik\\r\\n add: Dodaj\\r\\n openingHours: Godziny otwarcia\\r\\n newOpeningHours: Nowe godziny otwarcia\\r\\n remarksPL: Uwagi po polsku\\r\\n remarksEN: Uwagi po angielsku\\r\\n effective: Obowiązują\\r\\n periods: Okresy\\r\\n excludedDates: Wyłączone daty\\r\\n remarks: Uwagi\\r\\n addOption: Dodaj \\\"{{option}}\\\"\\r\\n from: Od\\r\\n to: Do\\r\\n date: Data\\r\\n siteUpdated: Lokalizacja została zaktualizowana.\\r\\n fileSizeError: Rozmiar pliku nie może przekraczać 3 MB.\\r\\n newOrganization: Nowa organizacja\\r\\n searchOrganizations: Wyszukaj organizacje\\r\\n organizationFullName: Pełna nazwa organizacji\\r\\n organizationShortName: Skrócona nazwa organizacji\\r\\n organizationDeleteConfirm: Czy na pewno chcesz usunąć organizację \\\"{{name}}\\\"?\\r\\n organizationDeleteFailed: Usunięcie organizacji nie powiodło się.\\r\\n landmarks: Punkty orientacyjne\\r\\n newLandmark: Nowy punkt orientacyjny\\r\\n main: Główny\\r\\n newPackage: Nowy pakiet\\r\\n valid: Ważny\\r\\n number: Liczba\\r\\n daysFromPurchase: dni od daty zakupu\\r\\n daysFromFirstUse: dni od momentu pierwszego użycia\\r\\n packageContents: Zawartość pakietu\\r\\n packagePrice: Cena pakietu\\r\\n freePackage: Darmowy pakiet\\r\\n packagesForSale: Liczba pakietów do sprzedania\\r\\n noLimit: Bez limitu\\r\\n packageSaleDates: Daty sprzedaży pakietu\\r\\n packageStatus: Status pakietu\\r\\n onSale: W sprzedaży\\r\\n copyPackageFrom: Skopuj pakiet z\\r\\n packageName: Nazwa pakietu po polsku\\r\\n copy: Skopiuj\\r\\n cardTemplate: Wzór karty\\r\\n saleStarting: Sprzedaż od\\r\\n archived: Zarchiwizowany\\r\\n attractionDiscount: Zniżka na atrakcję\\r\\n discountPackage: pakiet\\r\\n attractionName: Nazwa atrakcji po polsku\\r\\n discount: Zniżka\\r\\n percentageDiscount: Zniżka procentowa\\r\\n amountOfDiscount: Kwota zniżki\\r\\n freeEntrance: Darmowe wejście\\r\\n baseAdmissionPrice: Bazowa cena wejścia\\r\\n numberOfEntries: Liczba wejść\\r\\n saveToPackage: Dodaj do pakietu\\r\\n packageUsage: Wykorzystanie pakietów\\r\\n visitorAttendance: Frekwencja odwiedzających\\r\\n package: Pakiet\\r\\n usage: Użycie\\r\\n now: teraz\\r\\n visitors: odwiedzających\\r\\n singlePackageUsage: Wykorzystanie pakietu\\r\\n usageDesc: liczba wykorzystanych wejśc / liczba sprzedanych wejść\\r\\n salesAndAdmissionsFor: Sprzedaż i wejścia dla\\r\\n period: Okres\\r\\n today: Dzisiaj\\r\\n yesterday: Wczoraj\\r\\n lastDays: Ostatnie {{days}} dni\\r\\n custom: Niestandardowy\\r\\n packagesSold: Sprzedane pakiety\\r\\n admissions: Wejścia\\r\\n total: Razem\\r\\n exportReport: Wyeksportuj raport\\r\\n discountValue: \\\"zniżka {{value}}\\\"\\r\\n freeEntranceLower: darmowe wejście\\r\\n mapAdmissions_0: wejście\\r\\n mapAdmissions_1: wejścia\\r\\n mapAdmissions_2: wejść\\r\\n mapYesterday: wczoraj\\r\\n mapToday: dzisiaj\\r\\n mapLastDays: przez ostatnie {{days}} dni\\r\\n mapFromTo: od {{from}} do {{to}}\\r\\n time: Czas\\r\\n attractionDeleteConfirm: Czy na pewno chcesz usunąć atrakcję \\\"{{name}}\\\"?\\r\\n attractionSaved: Atrakacja została zapisana.\\r\\n guideDeleteConfirm: Czy na pewno chcesz usunąć przewodnik \\\"{{name}}\\\"?\\r\\n hoursDeleteConfirm: Czy na pewno chcesz usunąć te godziny otwarcia?\\r\\n paths: Trasy\\r\\n newPath: Nowa trasa\\r\\n pathStartPL: Początek trasy po polsku\\r\\n pathStartEN: Początek trasy po angielsku\\r\\n pathEndPL: Koniec trasy po polsku\\r\\n pathEndEN: Koniec trasy po angielsku\\r\\n pathDeleteConfirm: Czy na pewno chcesz usunąć tę trasę?\\r\\n packageDeleteConfirm: Czy na pewno chcesz usunąć ten pakiet?\\r\\n card: Karta\\r\\n interconnectNumberOrEmail: Numer Interconnect lub adres e-mail\\r\\n search: Szukaj\\r\\n new: Nowa\\r\\n existing: Istniejąca\\r\\n cardNumber: Numer karty\\r\\n addPackage: Dodaj pakiet\\r\\n firstAndLastName: Imię i nazwisko\\r\\n interconnectNumber: Numer Interconnect\\r\\n generateNewCard: Wygeneruj nową kartę\\r\\n addPackageToCard: Dodaj pakiet do karty\\r\\n price: Cena\\r\\n packageWorth: wartość pakietu\\r\\n youSave: oszczędzasz\\r\\n confirmAdd: Czy na pewno chcesz dodać pakiet do tej karty?\\r\\n entry: wejście za {{price}}\\r\\n free: darmowy\\r\\n cardGenerated: Wygenerowano kartę.\\r\\n packageAdded: Dodano pakiet do karty.\\r\\n noResults: Brak wyników.\\r\\n cardTemplates: Szablony kart\\r\\n defaultCardTemplate: Domyślny szablon karty\\r\\n salesLimitError: Liczba nie może być mniejsza niż liczba już sprzedanych pakietów.\\r\\n update: Aktualizuj\\r\\ncommon:\\r\\n noOptions: Brak opcji\\r\\n dataSource: Źródło danych\\r\\n route: Linia\\r\\n cancel: Anuluj\\r\\n cookieDisclaimer: >\\r\\n Stosujemy ciasteczka, by ułatwić korzystanie z tego serwisu. Zakładamy, że dalej przeglądając tę stronę\\r\\n zgadzasz się na używanie przez nas ciasteczek oraz naszą <0>Politykę Prywatności.\\r\\n accept: Zaakceptuj\\r\\n location: Lokalizacja\\r\\n latitude: Szerokość geograficzna\\r\\n longitude: Długość geograficzna\\r\\n invalidValue: Nieprawidłowa wartość.\\r\\n discardChanges: Odrzuć zmiany\\r\\n save: Zapisz\\r\\n close: Zamknij\\r\\nsupport:\\r\\n needHelp: Potrzebujesz pomocy?\\r\\n pleaseDescribe: Opisz swój problem poniżej\\r\\n issueConcerns: Problem dotyczy ...\\r\\n passengerPortal: Portalu pasażera\\r\\n mobileApps: Aplikacji mobilnych\\r\\n touristCard: Karty turysty\\r\\n providerPortal: Portalu organizatora\\r\\n serviceApps: Aplikacji serwisowych\\r\\n cardManagementPortal: Portalu zarządzania kartami\\r\\n inspectorApp: Aplikacji kontrolera\\r\\n otherApp: Innej aplikacji\\r\\n yourEmail: Twój email\\r\\n subject: Temat\\r\\n description: Opisz swój problem.\\r\\n submit: Wyślij\\r\\n pleaseFill: Proszę wypełnić to pole.\\r\\n help: Pomoc\\r\\n agreement: \\\"Przeczytałem i akceptuję <0>Regulamin i\\\\xa0<1>Politykę Prywatności.\\\"\\r\\n sent: Wiadomość wysłana.\\r\\n contactUs: Kontakt\\r\\n faq: Najczęściej zadawane pytania\\r\\n manageFaq: Zarządzaj pytaniami\\r\\n haveAQuestion: Masz pytanie?\\r\\n searchFaq: Szukaj pytania\\r\\n newQuestion: Nowe pytanie\\r\\n portals: Portale\\r\\n passenger: Pasażera\\r\\n provider: Organizatora\\r\\n card: Kart\\r\\n beacon: Beaconów\\r\\n questionPL: Pytanie po polsku\\r\\n questionEN: Pytanie po angielsku\\r\\n answerPL: Odpowiedź po polsku\\r\\n answerEN: Odpowiedź po angielsku\\r\\n deleteConfirm: Czy na pewno chcesz usunąć to pytanie?\\r\\n delete: Usuń\\r\\ntimetables:\\r\\n timetables: Rozkłady\\r\\n search: Szukaj przystanków lub linii\\r\\n departures: Odjazdy\\r\\n route: Linia\\r\\n direction: Kierunek\\r\\n departsIn: Odjeżdża za\\r\\n showDepartures: Pokaż odjazdy\\r\\n timetable: Rozkład\\r\\n all: Wszystkie\\r\\n nextStop: Następny przystanek\\r\\n now: teraz\\r\\n nearestStops: Najbliższe przystanki\\r\\ntrips:\\r\\n trips: Przejazdy\\r\\n vehicleOccupancy: Napełnienie pojazdów\\r\\n passengerStreams: Potoki pasażerów\\r\\n tickets: Bilety\\r\\n export: Eksportuj dane o przejazdach\\r\\n fromHour: Od godziny\\r\\n toHour: Do godziny\\r\\n maxPassengers: Maksymalna liczba pasażerów w pojeździe\\r\\n meanPassengers: Średnia liczba pasażerów w pojeździe\\r\\n medianPassengers: Mediana liczby pasażerów w pojeździe\\r\\n entering: wsiadających\\r\\n leaving: wysiadających\\r\\n mean: średnia\\r\\n median: mediana\\r\\n timeMean: średni\\r\\n timeMin: minimalny\\r\\n timeMax: maksymalny\\r\\n timeMedian: mediana\\r\\n min: minimalna\\r\\n max: maksymalna\\r\\n passengerCount: liczba pasażerów w pojeździe\\r\\n waitTime: czas oczekiwania na pojazd\\r\\n sec: sek\\r\\n stream: Potok\\r\\n passengerCountTable: Liczba pasażerów\\r\\n hub: Węzeł\\r\\n transferTime: czas przesiadki\\r\\n withValidTicket: Z ważnym biletem\\r\\n withInvalidTicket: Z nieważnym biletem\\r\\n noTicket: Brak biletu\\r\\n total: Razem\\r\\nbeacon:\\r\\n dashboard: Strona główna\\r\\n beaconAssignment: Przypisanie beaconów\\r\\n serviceLogs: Logi serwisowe\\r\\n beaconStatus: Status beaconów\\r\\n dashboardSearch: Szukaj ID, problemu, przypisania\\r\\n operational: działające\\r\\n malfunction: awaria\\r\\n mobile: mobilne\\r\\n needAttention: potrzebują uwagi\\r\\n stationary: stacjonarne\\r\\n all: wszystkie\\r\\n beaconID: ID beaconu\\r\\n issue: Problem\\r\\n assignedTo: Przypisany do\\r\\n supply: Zasilanie\\r\\n batteryLevel: Poziom baterii\\r\\n dataReceivedOn: Dane otrzymane\\r\\n daysAgo: dni temu\\r\\n lastData: ostatnie dane otrzymane\\r\\n batteryLevelTable: poziom baterii\\r\\n todayAt: dzisiaj o\\r\\n battery: bateria\\r\\n at: o\\r\\n logsSearch: Wyszukaj datę, czas, serwisanta, nazwę beaconu, ID\\r\\n serviceDateTime: Data i czas serwisu\\r\\n servicePerson: Serwisant\\r\\n beaconNameAssigned: Nazwa beaconu / przypisany do\\r\\n buildID: ID buildu\\r\\n mains: sieć\\r\\n uptime: Czas działania\\r\\n lastPowerOutage: Ostatni brak zasilania\\r\\n receivedPowerLevel: Poziom mocy odebranej\\r\\n transmitPowerLevel: Poziom mocy nadawania\\r\\n noLogs: Brak logów\\r\\n stationaryBeacons: Beacony stacjonarne\\r\\n mobileBeacons: Beacony mobilne\\r\\n newBeacon: Nowy beacon\\r\\n name: Nazwa\\r\\n locatedAtPoint: Zlokalizowany w punkcie zainteresowania (POI)\\r\\n beaconName: Nazwa beaconu\\r\\n stationarySearch: Szukaj ID lub nazwy\\r\\n welcomeMessagePL: POI Wiadomość powitalna po polsku\\r\\n welcomeMessageEN: POI Wiadomość powitalna po angielsku\\r\\n deleteBeacon: Usuń beacon\\r\\n vehicleID: ID pojazdu\\r\\n mobileSearch: Szukaj ID, przypisania lub ID pojazdu\\r\\n provider: Organizator\\r\\n poi: POI\\r\\n deleteBeaconConfirm: Czy na pewno chcesz usunąć ten beacon?\\r\\n tableOperational: działający\\r\\n dataSource: Źródło danych\\r\\n stop: Przystanek\\r\\n add: Dodaj\\r\\n idError: ID musi być liczbą od {{from}} do {{to}}.\\r\\n organization: Organizacja\\r\\n site: Lokalizacja\\r\\n\";","export default \"---\\r\\nnav:\\r\\n signedInAs: Signed in as\\r\\n assignRoles: Assign roles\\r\\n logOut: Log out\\r\\n analysis: Analysis\\r\\n statistics: Statistics\\r\\n import: Import\\r\\n export: Export\\r\\n impactArea: Impact area\\r\\n pp: Passenger portal\\r\\n data: Data\\r\\n setDataSource: Set data source\\r\\n switchDataView: Switch data view\\r\\n dataView: Data view\\r\\n current: current\\r\\n draft: Draft\\r\\n orgs: Organizations\\r\\n cardPortal: Card portal\\r\\n tripPlanner: Trip planner\\r\\n beacons: Beacons\\r\\n number: \\\"Interconnnect #\\\"\\r\\nmain:\\r\\n dataSource: Data source\\r\\n date: Date\\r\\n route: Route\\r\\n switchDirection: Switch direction\\r\\n trip: Trip\\r\\n arrival: arrival\\r\\n departure: dep.\\r\\n noTrips: No trips.\\r\\n restoreCurrentState: Restore current state\\r\\n printView: Printable version\\r\\nmap:\\r\\n route: Route\\r\\n direction: Direction\\r\\n departure: Departure\\r\\n minutes: min\\r\\n seconds: sec\\r\\n showVehicles: show vehicles\\r\\n vehicleCode: Vehicle code\\r\\n vehicleService: Service\\r\\n tripCode: Trip code\\r\\n speed: Speed\\r\\n delay: Delay\\r\\nfooter:\\r\\n switchLanguage: Przełącz na polski\\r\\nauth:\\r\\n register: Register\\r\\n continueWithGoogle: Continue with Google\\r\\n continueWithFacebook: Continue with Facebook\\r\\n or: or\\r\\n email: Email\\r\\n password: Password\\r\\n repeatPassword: Repeat password\\r\\n registerAgreement: >\\r\\n By signing up, you are indicating that you agree to the <0>Terms and Conditions\\r\\n and <1>Privacy Policy.\\r\\n registerButton: Register\\r\\n alreadyRegistered: Already registered? <0>Log in\\r\\n verifyEmail: Verify email address\\r\\n weHaveSent: We have sent an email to {{email}}.\\r\\n pleaseOpen: Please open this email and click on the activation link to complete your registeration.\\r\\n toResend: To resend the email, please <0>sign in.\\r\\n goToLogin: Go to Login\\r\\n invalidEmail: Invalid email address.\\r\\n invalidPassword: Password must contain a lower case character, an upper case character and a number.\\r\\n passwordsDontMatch: Passwords don't match.\\r\\n emailVerified: Email verified\\r\\n verifiedText: Your email was verified. You can continue using the application.\\r\\n logIn: Log in\\r\\n loginAgreement: >\\r\\n By signing in, you are indicating that you agree to the <0>Terms and Conditions\\r\\n and <1>Privacy Policy.\\r\\n logInButton: Log in\\r\\n dontHaveAccount: Don't have an account? <0>Register\\r\\n wrongEmailOrPassword: Wrong email or password.\\r\\n forgotLink: Forgot your password?\\r\\n recoverPassword: Recover password\\r\\n recoverText: \\\"Enter your email address to get a\\\\xa0password reset link.\\\"\\r\\n sendResetLink: Send reset link\\r\\n linkSent: Password reset link has been sent to <0>{{email}}.\\r\\n notVerified: Email is not verified.\\r\\n resendLink: Resend activation link?\\r\\n linkResent: Link has been resent.\\r\\n alreadyExists: An account with this email address already exists.\\r\\n accessDenied: Access denied.\\r\\nstats:\\r\\n header: transport data\\r\\n sources: sources\\r\\n routes: routes\\r\\n other: Other\\r\\n selectRoutes: Routes\\r\\n selectStops: Stops\\r\\n show: Show\\r\\n stops: stops\\r\\n findDataSource: Find data source\\r\\nimpact:\\r\\n inRadius: In {{radius}}m radius\\r\\n inMarkerRadius: In {{radius}}m radius of the selected location\\r\\n noStops: No stops\\r\\n impactArea: Impact area\\r\\n stop: Stop\\r\\n edit: Edit\\r\\n finishEditing: Finish editing\\r\\n stopName: Name\\r\\n deleteStop: Delete stop\\r\\n restoreCurrentState: Restore current state\\r\\n restoreLocation: Restore location\\r\\nimport:\\r\\n fileType: File type\\r\\n selectFile: Select file\\r\\n fileImported: File <0>{{name}} imported successfully.\\r\\n importFailed: Import failed.\\r\\n importQueued: Another import is being processed right now. Your import will start in a few minutes.\\r\\nexport:\\r\\n dataSource: Data source\\r\\n dataFormat: Data format\\r\\n downloadFile: Download file\\r\\nanalysis:\\r\\n transfersForStop: Transfers for stop\\r\\n transfersForRoute: Transfers for route\\r\\n synchronization: Synchronization\\r\\nsynchronization:\\r\\n defineSegment: Define segment\\r\\n stop: Stop\\r\\n date: Schedule for day\\r\\n from: From\\r\\n to: To\\r\\n routes: Routes in segment\\r\\n parameters: Segment synchronization parameters\\r\\n average: Average waiting time\\r\\n deviation: Average regularity deviation\\r\\n overlapping: Number of overlapping departures\\r\\n min: min\\r\\n sec: sec\\r\\n wheelchair: show only wheelchair accessible\\r\\n modifySchedule: Modify schedule\\r\\n route: Route\\r\\n firstTrip: First trip\\r\\n interval: Interval\\r\\n clear: clear\\r\\n add: Add\\r\\n undoAll: undo all changes\\r\\nstopTransfer:\\r\\n transfer: Transfer\\r\\n from: from\\r\\n to: to\\r\\n arrival: arrival\\r\\n departure: departure\\r\\n transferTime: transfer time\\r\\n minTransferTime: Minimum transfer time\\r\\n averageTransfer: Average transfer time\\r\\n longestTransfer: Longest transfer\\r\\n shortTransfers: Transfers shorter than {{time}} min.\\r\\n modifyDepartures: Modify departures\\r\\n firstTrip: First trip\\r\\n interval: Interval\\r\\n clear: clear changes\\r\\nrouteTransfers:\\r\\n transfer: Transfer\\r\\n from: from\\r\\n toRoutes: to routes\\r\\n firstStopDeparture: First stop departure\\r\\n changeDeparture: Change departure\\r\\n reset: reset\\r\\n switchDirection: Switch direction\\r\\n pattern: Pattern\\r\\n arrival: Arrival\\r\\n departure: Departure\\r\\n transferTime: Transfer [min.]\\r\\n difference: Difference [min.]\\r\\n averageTransferTime: Average transfer time\\r\\n longestTransfer: Longest transfer\\r\\n minTransfer: Minimum transfer time\\r\\n departureTime: Departure time\\r\\n optimize: Optimize\\r\\ndata:\\r\\n routes: Routes\\r\\n patterns: Patterns\\r\\n stops: Stops\\r\\n trips: Trips\\r\\n calendars: Calendars\\r\\n timetables: Stop timetables\\r\\n manage: Manage\\r\\n dataView: Data view\\r\\n newRoute: New route\\r\\n routeName: Route name\\r\\n transportMode: Transport mode\\r\\n deleteRoute: Delete route\\r\\n save: Save\\r\\n bus: Bus\\r\\n train: Train\\r\\n tram: Tram\\r\\n trolleybus: Trolleybus\\r\\n forRoute: For route\\r\\n forPattern: For pattern\\r\\n stopName: Stop name\\r\\n newStop: New stop\\r\\n timeZone: Time zone\\r\\n accessibility: Accessibility\\r\\n accessible: Accessible\\r\\n elevator: Elevator\\r\\n escalator: Escalator\\r\\n discardChanges: Discard changes\\r\\n deleteStop: Delete stop\\r\\n patternsFor: Patterns for\\r\\n newPattern: New pattern\\r\\n patternName: Pattern name\\r\\n direction: Direction\\r\\n forward: Forward\\r\\n backward: Backward\\r\\n addStopsFrom: Add stops from\\r\\n add: Add\\r\\n no: No.\\r\\n deletePattern: Delete pattern\\r\\n deletePatternConfirm: Are you sure you want to delete pattern \\\"{{name}}\\\"?\\r\\n cancel: Cancel\\r\\n delete: Delete\\r\\n effectiveCalendars: Effective calendars\\r\\n newCalendar: New calendar\\r\\n forTrip: For trip\\r\\n calendarName: Calendar name\\r\\n copyCalendarFrom: Copy calendar from\\r\\n copy: Copy\\r\\n scheduleEffective: Schedule effective\\r\\n periods: Periods\\r\\n from: From\\r\\n to: To\\r\\n fromHour: From\\r\\n toHour: To\\r\\n additionalDates: Additional dates\\r\\n excludedDates: Excluded dates\\r\\n date: Date\\r\\n calendar: Calendar\\r\\n MONDAY: Mo\\r\\n TUESDAY: Tu\\r\\n WEDNESDAY: We\\r\\n THURSDAY: Th\\r\\n FRIDAY: Fr\\r\\n SATURDAY: Sa\\r\\n SUNDAY: Su\\r\\n deleteCalendar: Delete calendar\\r\\n deleteCalendarConfirm: Are you sure you want to delete calendar \\\"{{name}}\\\"?\\r\\n newTrip: New trip\\r\\n type: Type\\r\\n copyScheduleFrom: Copy schedule from\\r\\n schedule: Schedule\\r\\n stop: Stop\\r\\n arrival: Arrival\\r\\n departure: Departure\\r\\n shape: Shape\\r\\n addShape: Add shape\\r\\n totalDistance: Total distance\\r\\n deleteTrip: Delete trip\\r\\n singleTrip: Single trip\\r\\n tripBlock: Trip block\\r\\n trip: Trip\\r\\n deleteTripConfirm: Are you sure you want to delete trip \\\"{{name}}\\\"?\\r\\n back: Back\\r\\n start: Start\\r\\n end: End\\r\\n shapes: Shapes\\r\\n newShape: New shape\\r\\n shapeName: Shape name\\r\\n importShape: Import shape\\r\\n findShape: Find shape\\r\\n distance: Distance\\r\\n deleteShape: Delete shape\\r\\n deleteShapeConfirm: Are you sure you want to delete shape \\\"{{name}}\\\"?\\r\\n firstTrip: First trip\\r\\n interval: Interval (min.)\\r\\n masterSchedule: Master schedule\\r\\n copyDataFrom: Copy data from\\r\\n toDraft: to draft\\r\\n publish: Publish\\r\\n releaseName: Release name\\r\\n publishDraft: Publish draft\\r\\n changesSummary: Summary of changes in draft as compared to current published data\\r\\n added: added\\r\\n edited: edited\\r\\n deleted: deleted\\r\\n renamed: renamed\\r\\n route: route\\r\\n pattern: pattern\\r\\n changeStop: stop\\r\\n changeTrip: trip\\r\\n changeShape: shape\\r\\n changeCalendar: calendar\\r\\n changeForRoute: for route\\r\\n changeForPattern: for pattern\\r\\n forStops: for stops\\r\\n changeTripBlock: trip block\\r\\n copiedToDraft: Copied to draft.\\r\\n draftPublished: Draft has been published.\\r\\n noChanges: No changes.\\r\\n renamedTo: to\\r\\n draft: Draft\\r\\n editedBy: edited by\\r\\n takeOverEditing: Take over editing\\r\\n takeoverConfirm: Do you want to take over the draft editing from {{author}}?\\r\\n proceed: Proceed\\r\\n routeDeleteError: Could not delete this route because it is used in some patterns. Please delete those patterns first.\\r\\n deleteRouteConfirm: Are you sure you want to delete route \\\"{{name}}\\\"?\\r\\n patternDeleteError: Could not delete this pattern because it is used in some trips. Please delete those trips first.\\r\\n deleteStopConfirm: Are you sure you want to delete stop \\\"{{name}}\\\"?\\r\\n stopDeleteError: Could not delete this stop because it is used in some patterns. Please delete those patterns first.\\r\\n shapeDeleteError: Could not delete this shape because it is used in some trips.\\r\\n calendarDeleteError: Could not delete this calendar because it is used in some trips. Please delete those trips first.\\r\\n routeExists: Route \\\"{{name}}\\\" already exists.\\r\\n patternExists: Pattern \\\"{{name}}\\\" already exists.\\r\\n stopExists: Stop \\\"{{name}}\\\" already exists.\\r\\n shapeExists: Shape \\\"{{name}}\\\" already exists.\\r\\n calendarExists: Calendar \\\"{{name}}\\\" already exists.\\r\\n crew: Crews\\r\\n depot: Depot\\r\\n printableVersion: Printable version\\r\\n copyCrew: Copy crew assignment from\\r\\n startTime: Start time\\r\\n vehicleID: 'Vehicle #'\\r\\n driversName: Driver's name\\r\\n firstShift: Driver - 1st shift\\r\\n secondShift: Driver - 2nd shift\\r\\n reports: Reports\\r\\n period: Period\\r\\n thisYear: This year\\r\\n lastYear: Last year\\r\\n thisMonth: This month\\r\\n lastMonth: Last month\\r\\n custom: Custom\\r\\n showVehicleKilometre: Show vehicle-kilometre\\r\\n month: Month\\r\\n total: TOTAL\\r\\n heading: Heading\\r\\n tickets: Tickets\\r\\n importTickets: Import tickets\\r\\n pasteReport: Paste ticket sale report here\\r\\n import: Import\\r\\n ticketSearch: Search for name, ticket number or date\\r\\n passengerName: Passenger's name\\r\\n ticketNumber: Ticket number\\r\\n valid: Valid\\r\\n importedTickets: Imported {{success}} of {{total}} tickets.\\r\\n close: Close\\r\\n cipher: Cipher\\r\\n ticketFrom: from\\r\\n ticketTo: to\\r\\n passenger: Passenger\\r\\n relation: Relation\\r\\n ticketNo: nr\\r\\n noTickets: No tickets.\\r\\n timetablesForStops: For stops\\r\\n selectAll: Select all\\r\\n deselectAll: Deselect all\\r\\n forRoutes: For routes\\r\\n forPeriod: For period\\r\\n viewAll: View all\\r\\n routeDescriptionTo: 'Description (direction: FORWARD)'\\r\\n routeDescriptionFrom: 'Description (direction: BACKWARD)'\\r\\n timetableDirection: HEADSIGN\\r\\n timetableStop: STOP\\r\\n timetableDescription: ROUTE\\r\\n WORKWEEK: Workweek\\r\\n SATURDAYS: Saturdays\\r\\n SUNDAYS: Sundays and holidays\\r\\n patternRemarks: Remarks shown on timetables\\r\\n availableToPassengers: Available to passengers\\r\\n assign: Assign\\r\\n drivers: Drivers\\r\\n vehicles: Vehicles\\r\\n crews: Crews\\r\\n newCrew: New crew\\r\\n crewName: Crew name\\r\\n copyTrips: Copy trips from crew\\r\\n addTrip: Add trip\\r\\n or: or\\r\\n startingStop: Starting stop\\r\\n departureTime: Departure time\\r\\n deleteCrew: Delete crew\\r\\n deleteCrewConfirm: Are you sure you want to delete this crew?\\r\\n newDriver: New driver\\r\\n deleteDriver: Delete driver\\r\\n deleteDriverConfirm: Are you sure you want to delete this driver?\\r\\n newVehicle: New vehicle\\r\\n deleteVehicle: Delete vehicle\\r\\n deleteVehicleConfirm: Are you sure you want to delete this vehicle?\\r\\n ferry: Ferry\\r\\nroles:\\r\\n assignRoles: Assign roles\\r\\n search: Search for names, organizations or roles\\r\\n no: No.\\r\\n name: Name\\r\\n email: Email\\r\\n login: Login\\r\\n role: Role\\r\\n organization: Organization\\r\\n admin: system administrator\\r\\n agencyAdmin: organizer administrator\\r\\n agencyEmployee: organizer\\r\\n technician: technician\\r\\n ticketInspector: ticket inspector\\r\\n none: none\\r\\n adminDescription: >\\r\\n can manage all users, can manage beacon data, can read non-public beacon data,\\r\\n can read and write transport data for all organizations\\r\\n agencyAdminDescription: >\\r\\n can manage users within organization, can read transport data, can write transport data within organization\\r\\n agencyEmployeeDescription: can read transport data\\r\\n technicianDescription: can read non-public beacon data\\r\\n ticketInspectorDescription: can inspect tickets using a mobile app\\r\\n discardChanges: Discard changes\\r\\n save: Save\\r\\n success: Users have been saved.\\r\\n failure: Failed to save users.\\r\\n addEmail: Add email\\r\\n addName: Add name\\r\\n addRole: Add role\\r\\n addAgency: Add organization\\r\\n add: Add\\r\\norgs:\\r\\n orgs: Organizations\\r\\n newOrg: New organization\\r\\n search: Search for organizations\\r\\n fullName: Organization full name\\r\\n shortName: Organization short name\\r\\n website: Website\\r\\n timeZone: Time zone\\r\\n dataMgmt: Data management\\r\\n manual: Manual\\r\\n gtfs: Automatic (GTFS)\\r\\n netex: Automatic (NeTEx)\\r\\n other: API or portal import\\r\\n importUrl: Source file URL\\r\\n tripPlanning: Use data in trip planning\\r\\n delete: Delete organization\\r\\n confirmDelete: Are you sure you want to delete organization \\\"{{name}}\\\"?\\r\\n discard: Discard changes\\r\\n save: Save\\r\\n alreadyExists: Organization \\\"{{name}}\\\" already exists.\\r\\n invalidUrl: Invalid URL.\\r\\nplanning:\\r\\n findRoute: Find route\\r\\n from: From\\r\\n to: To\\r\\n depart: Depart\\r\\n arrive: Arrive\\r\\n now: Now\\r\\n dateAndTime: Date and time\\r\\n search: Search\\r\\n yourLocation: Your location\\r\\n selectOnMap: Select on map\\r\\n home: Home\\r\\n locationError: Couldn't retrieve location.\\r\\n buyTicket: Buy ticket\\r\\n buy: Buy\\r\\n comingUp: Coming up soon!\\r\\n buyTicketsHeader: Buy tickets\\r\\n total: Total time\\r\\n walk: Walk\\r\\n minutes: minute\\r\\n minutes_plural: minutes\\r\\n waitingTime: Waiting time\\r\\n stops: stop\\r\\n stops_plural: stops\\r\\n selectThis: Select this location\\r\\n noConnections: No connections.\\r\\n savedSearches: Saved searches\\r\\n arriveAt: Arrive at\\r\\n departAt: Depart at\\r\\n arriveOn: Arrive on\\r\\n departOn: Depart on\\r\\n copied: Link copied to clipboard.\\r\\n bookmarked: Search bookmarked.\\r\\n dateFormat: MMM. D, YYYY, HH:mm\\r\\n flightFromGdansk: Flight from Gdansk (GDN)\\r\\n selectFlight: Select departing flight\\r\\n date: Date\\r\\n onTime: on time\\r\\n delayed: 'delayed: actual'\\r\\n flightTo: '{{time}} flight to {{destination}}'\\r\\n pinLocation: Pin location\\r\\npassenger:\\r\\n privacyPolicy: Privacy policy\\r\\n termsAndConditions: Terms and conditions\\r\\n aboutProject: About project\\r\\n disclaimer: >\\r\\n The content of this website is the sole responsibility of the author and can in no way be taken\\r\\n to reflect the views of the European Union, the Managing Authority\\r\\n or the Joint Secretariat of the Interreg South Baltic Programme 2014-2020.\\r\\nprivacy:\\r\\n header1: General considerations\\r\\n li1: >\\r\\n This privacy policy applies to services offered on the <0>https://opendata.info.pl/. The <1>cookie policy was prepared in accordance with the obligations arising from the amendment of the Telecommunications Law, which entered into force on 22 March 2013, thus remaining in accordance with the provisions of the European Directive.\\r\\n li2: >\\r\\n <0>The Interconnect Passenger Portal uses <1>cookies and stores key information directly on the user's device.\\r\\n li3: >\\r\\n Thanks to <0>cookies and locally stored data, users do not have to log-in every time they open the Interconnect Passenger Portal website, and their previous settings for viewing transport data, language and organization are also retained, so there is no need to set them every time.\\r\\n li4: >\\r\\n The following types of <0>cookies are used within the website:\\r\\n li4li1: >\\r\\n <0>Cookies set by Aut0 to manage the user's session,\\r\\n li4li2: >\\r\\n Microsoft (Azure) <0>cookie – specifically the ARRAffinity cookie, which is used to assign a customer to a specific instance of the application.\\r\\n li5: >\\r\\n The Interconnect Passenger Portal uses the \\\"Local Storage\\\" space in the browser installed on the Interconnect user's device to store:\\r\\n li5li1: >\\r\\n the language you last used in the app,\\r\\n li5li2: >\\r\\n travel search parameters saved by the user if you have not logged-in to the service,\\r\\n li5li3: >\\r\\n Auth0 access token, if the user is logged-in to the site,\\r\\n li5li4: >\\r\\n the ID of the most recently set transport organization, if the user is a system administrator,\\r\\n li5li5: >\\r\\n ID of the most recently set data view (for a specific organization) if you are a system administrator, organization administrator, or organizer (in an organization that uses manual data entry).\\r\\n li6: >\\r\\n One form of contact with the system administrator (Innobaltica Sp. z o.o.) is the ability to send your observations in electronic form via e-mail. You can request that the data from our database be deleted at any time and that they cease to be collected further.\\r\\n header2: Protection of personal data\\r\\n li7: >\\r\\n This part of the privacy policy concerns the protection of personal data provided by users logging into Interconnect services or contacting the administrator of services (Innobaltica Sp. z o.o.) via forms or e-mail. For users, who do not log-in to the services and do not correspond with us via forms or e-mail, there is no act of sharing personal data.\\r\\n li8: >\\r\\n On the basis of Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of individuals with regard to the processing of personal data and on the free movement of such data and repealing Directive 95/46/EC (General Data Protection Regulation, hereinafter the GDPR) and the Act of May 10, 2018 on the protection of personal data, we inform you that the provision of your personal data to us is voluntary (it is not a statutory or contractual requirement), but failure to provide it may result in difficult or inability to contact you, for example, in order to provide feedback about your rights, respond to your request, settle your case, process your application or contract.\\r\\n li9: >\\r\\n The categories of data processed are dane to contact the user of the services provided by Innobaltica Sp. z o.o.: <0>name, e-mail address, or other data if you provide it to us.\\r\\n li10: >\\r\\n The Administrator of Personal Data (ADO) is InnoBaltica Sp. z o.o.\\r\\n li10li1: >\\r\\n contact details: 80-067 Gdańsk, ul. Równa 19/21;TAX ID: 957-100-34-04; REGON: 220639884; KRS 0000311943.\\r\\n li10li2: >\\r\\n contact details of the person responsible for the protection of personal data: <0>wieslaw.telepski@innobaltica.pl, tel. 720-810-344.\\r\\n li11: >\\r\\n Personal information will be processed in order to maintain contact with the user and to provide information, as well as to achieve the objectives of the InnoBaltica Company in the implementation of a uniform system for the collection of services in public public transport and a single passenger information system in the Pomeranian Voivodeship, including for the purpose of:\\r\\n li11li1: >\\r\\n maintain contact with you in order to respond to your inquiry or the matter you have reported, including, but not limited to, processing requests and inquiries regarding the exercise of your privacy and personal data protection rights (legal basis: Article 6(1)(b) of the Basic Regulation). 1. point (d) GDPR); \\r\\n li11li2: >\\r\\n conclusion and performance of the contract (legal basis: Article 6(1)(b) of the 1. point (b) GDPR);\\r\\n li11li3: >\\r\\n take action at your request prior to entering into a contract e.g. to process your request in which you have expressed your willingness to cooperate with us or when you inquire about the details of our offer you are interested in (legal basis: Article 6(1)(b) of the Basic Regulation). 1. point (b) GDPR);\\r\\n li11li4: >\\r\\n compliance with the legal obligation on the controller, e.g. the obligation to store legally defined data for a certain period of time (e.g. accounting documentation), to collect information for the purpose of identifying or verifying a natural person, to provide data to authorised authorities or entities, e.g. police, prosecutor, etc. (legal basis: Article 6(1)(b) of Regulation (EC) No 1782/2003 1. (c) GDPR);\\r\\n li11li5: >\\r\\n to pursue the objectives arising from legitimate interests pursued by the controller or by a third party, e.g. by the determination, investigation and defence by us in the event of possible claims for our activities (legal basis: Article 6(1)(b) of the Basic Regulation). 1. point (f) GDPR).\\r\\n li12: >\\r\\n Personal information shall not be made available to recipients or third parties, except where:\\r\\n li12li1: >\\r\\n this will be necessary to achieve the legitimate business objectives pursued by InnoBaltica Sp. z o.o. and will comply with applicable laws or if you give your consent;\\r\\n li12li2: >\\r\\n when performing tasks related to the processing of your data, it will be necessary to use the services of third parties, to the extent necessary to fulfill our statutory purposes and tasks, for example, in the case of the need to use the services of entities providing us with technical assistance in servicing tools (hardware, equipment and software) necessary for the processing process.\\r\\n li13: >\\r\\n By entrusting your personal data to recipients, we always exercise due diligence to ensure that they are protected and processed in accordance with applicable law, that is, for a strictly defined and legitimate purpose and for no longer than necessary to achieve this purpose.\\r\\n li14: >\\r\\n Personal data will not be transferred to third countries or international organisations.\\r\\n li15: >\\r\\n Personal data will be processed for the time necessary to achieve the purposes for which they were obtained, extended by the limitation period of mutual claims which may result from the achievement of these purposes or for a period no longer than those resulting from the applicable law.\\r\\n li16: >\\r\\n Your rights with regard to processing processes relate to:\\r\\n li16li1: >\\r\\n request from the data controller access to your personal data and their rectification, deletion or restriction of processing;\\r\\n li16li2: >\\r\\n object to the processing of your personal data by the data controller;\\r\\n li16li3: >\\r\\n requests the controller to transfer your data;\\r\\n li16li4: >\\r\\n withdraw your consent to the processing of your personal data – insofar as the processing of such data is based on your consent – at any time. Withdrawal of consent does not affect the lawfulness of the processing of your personal data, which was carried out on the basis of consent before its withdrawal;\\r\\n li16li5: >\\r\\n lodge a complaint with the President of the Office for Personal Data Protection.\\r\\n li17: >\\r\\n The source of personal data is created as follows:\\r\\n li17li1: >\\r\\n when you provide us with your data in person, e.g. by filling in the contact form;\\r\\n li17li2: >\\r\\n by social media, e-mail, post, telephone or otherwise;\\r\\n li17li3: >\\r\\n when they are provided to us in accordance with applicable law, for example by third parties with whom we cooperate and to whom you have already provided your data, e.g. <0>Auth0, that is, an authorized identity confirmation platform based on your <1>Google or <2>Facebook account, in accordance with the policies of these social networks or e.g. the travel organization that is the issuer of your Passenger Card, Travel Card, the Resident Card – provided that this card is linked to our services in the IT system.\\r\\n li18: >\\r\\n Your personal data will be processed in the IT systems we use, but will not be processed automatically.\\r\\n li19: >\\r\\n The full text of the document under the name Personal Data Security Policy in <0>InnoBaltica Sp. z o.o. is available at:\\r\\n <1>http://innobaltica.pl/index.php?fdownload=file-politykabezpieczenstwadanychosobowych.pdf\\r\\nterms:\\r\\n terms1: Terms and conditions for the use of timetable information\\r\\n terms2: >\\r\\n \\\"Interconnect Passenger Portal\\\"\\r\\n terms3: (for every user – also not logged-in)\\r\\n header1: §1 General principles\\r\\n li1: >\\r\\n These regulations define the rules for the use of the service information about timetables <0>\\\"Interconnect Passenger Portal\\\"<0> (hereinafter Portal), available at: <1>https://opendata.info.pl.\\r\\n li2: >\\r\\n Each user of the Portal is obliged to comply with the provisions of these regulations.\\r\\n li3: >\\r\\n <0>The portal will be available to users in development version (beta) until November 30, 2020. What is important, during this time there will be significant improvements in the functioning of <1>the Portal and the resource of transport data presented in it. After this date, <2>the Portal will be functioning in full functionality, on the same general principles and with the current availability to users.\\r\\n li4: >\\r\\n The owner and administrator of <0>the Portal is the public company InnoBaltica Sp. z o.o. (InnoBaltica Limited Liability Company entered in the National Court Register kept by the District Court Gdańsk-North in Gdańsk, VII Commercial Division of the National Court Register under the number KRS: 0000311943, NIP: 9571003404, REGON: 220639884) with its registered office at ul.Równa 19/21 in Gdansk, carrying out the tasks entrusted by the organisers of public transport.\\r\\n li5: >\\r\\n The rules for the use of the extended functionalities of the <0>Interconnect Passenger Portal, available to the logged-in user, are additionally set out in the <1>Terms and Conditions of the User Account.\\r\\n li6: >\\r\\n <0>The Interconnect Passenger Portal does not require the sharing of personal data by a not-logged-in passenger.\\r\\n li7: >\\r\\n The sharing by an anonymous passenger of the location of the device and Bluetooth connectivity are used only to facilitate the use of the call search engine, as well as to the automatic reception by the application of travel information e.g. on transport stops located nearby, departures of means of transport.\\r\\n li8: >\\r\\n The lack of consent of the user to share the location data of his device significantly reduces the information functionality of the service.\\r\\n li9: >\\r\\n Both in real time and at a later date, it is not possible to combine the location of the device with the passenger who has not decided to log-in to the service - in accordance with the <0>Privacy Policy.\\r\\n li10: >\\r\\n Using the service as a logging-in passenger is easy and intuitive, and the passenger's rights to protect his/her personal data are of the highest priority to the system administrator (Innobaltica Sp. z o.o.).\\r\\n li11: >\\r\\n You may always change your decision regarding your wish to use your <0>User Account and register with the system at any time, or on the contrary, as a logging-in user, you may request the total liquidation of your <1>User Account in the system, but provided that in the event of the termination of the <2>User Account all your account data will be permanently lost in the system and you will not be able to recover it.\\r\\n header2: §2 Purpose and availability of the service\\r\\n li12: >\\r\\n <0>The Interconnect Passenger Portal is an information service, presenting information about the timetables of public transportation lines, which can be used by any passenger staying or planning to stay in the Pomeranian Voivodeship. <1>The portal was created as part of the INTERCONNECT project funded by the EU from Interreg South Baltic 2014-2020 programme, for passengers travelling in Karlskrona - Pomorskie relations using the Stena Line ferry, and public transport - both in Sweden and Poland.\\r\\n li13: >\\r\\n <0>The portal is available via the website or using the mobile application that can be downloaded in the Play Store (for mobile devices running the Android operating system) and in the AppStore (for iOS mobile devices).\\r\\n li14: >\\r\\n <0>The portal is available to users who speak Polish or English.\\r\\n li15: >\\r\\n Use of <0>the Portal is free of charge for non-commercial purposes.\\r\\n li16: >\\r\\n If you wish to use the <0>Portal on a commercial basis, you should obtain the written consent of InnoBaltica Sp. z o.o. in advance.\\r\\n li17: >\\r\\n Users who use the service in violation of the rules set out in these Terms and Conditions or attempting to make a negative impact on the availability of the service - will be automatically prevented by blocking them in the Service Provider's system.\\r\\n li18: >\\r\\n The Service Provider strives to ensure the uninterrupted operation of the portal, but cannot ensure its availability and operation without interruption, which may be related, for example, to disruptions in access to the Internet or the temporary lack of availability of data of some public transport providers.\\r\\n header3: §3 Portal Functionality\\r\\n li19: >\\r\\n <0>The Interconnect Passenger Portal uses the following definitions:\\r\\n li19li1: >\\r\\n <0>Service provider – the owner of the service (InnoBaltica Sp. z o.o.) using the timetable data provided to him by public transport organizers and carriers,\\r\\n li19li2: >\\r\\n <0>User (passenger) – any person using the Interconnect Passenger Portal in any way,\\r\\n li19li3t: Your location –\\r\\n li19li3d: >\\r\\n functionality to determine the point at which the device you are using is located (based on sources such as GPS, Wi-Fi and base station signal – which requires additional device resources to be provided to your browser or Interconnect app, in accordance with <0>the Privacy Policy,\\r\\n li19li4: >\\r\\n <0>Select on the map – one-click location functionality at the selected location on the map,\\r\\n li19li5: >\\r\\n <0>Search – an order to search the timetables made available by the Service Provider taking into account the parameters specified by the User,\\r\\n li19li6: >\\r\\n <0>Saved searches – Route search parameters that have been stored by the User in the browser memory on the device,\\r\\n li19li7: >\\r\\n <0>Search saved – a message that the route search parameters have been correctly saved in the browser's memory,\\r\\n li19li8: >\\r\\n <0>Link copied to clipboard – a message that the route search parameters have been stored in the device cache for the user to share it in other applications,\\r\\n li19li9: >\\r\\n <0>Beacon – installed in a public space, giving messages that may be displayed in the application\\r\\n li19li10: >\\r\\n <0>Departure – the moment the vehicle leaves the stop,\\r\\n li19li11: >\\r\\n <0>Arrival – the moment the vehicle appears at the stop,\\r\\n li19li12: >\\r\\n <0>Now – functionality that allows you to determine the current time\\r\\n li19li13: >\\r\\n <0>Date and time – functionality allowing the User to choose the date and time of departure/arrival of the means of transport.\\r\\n li20: >\\r\\n Using the available functionalities of <0>the Portal, a passenger with a device with access to the Internet - can search for a transport connection along the entire route, that is: from the place of departure - to the destination.\\r\\n li21: >\\r\\n By pressing on the dedicated application button, the passenger can store the parameters of the route he/she was searching for, in the browser memory.\\r\\n li22: >\\r\\n By pressing the dedicated application button, the passenger can copy the parameters of the route he/she was searching for, to the cache of his/her device and then send them in the body of the message to another person (using any email client).\\r\\n li23: >\\r\\n The passenger can search for a connection that he plans to make in the future, but please note that: the data in the <0>Interconnect Passenger Portal system is updated on an ongoing basis and in the coming days changes may be made to the timetable that will affect the original travel plan of that passenger, and that for the deadline in the future, the timetable data may not yet be available on the service.\\r\\n li24: >\\r\\n If the passenger has not found the expected connection on the <0>Interconnect Passenger Portal, it is recommended to contact the passenger information of the selected carrier for detailed information about his transport offer.\\r\\n li25: >\\r\\n You may receive messages in the form of a notification on your smartphone when you are in the vicinity of the active Interconnect beacon. The passenger will know that he is in the vicinity of the stop. This feature only works if a passenger allows to indicate his/her location.\\r\\n header4: §4 Scope of presented data\\r\\n li26: >\\r\\n <0>The portal presents public information, including in particular the timetables of carriers of local and regional importance: bus, trolleybus, tram, rail, ferry - and the arrival and departure times of air carriers to/from Lech Walesa Airport in Gdansk.\\r\\n li27: >\\r\\n With regard to information on arrivals and departures of aircraft, it shall be clarified that:\\r\\n li27li1: >\\r\\n This information comes from the arrivals and departure tables provided to The Airport Gdańsk Sp. z o.o. by air carriers and handling agents and is not of a commercial nature;\\r\\n li27li2: >\\r\\n Arrival/departure information is not modified by InnoBaltica Sp. z o.o., transmitted in real time and refreshed approximately every 5 minutes;\\r\\n li27li3: >\\r\\n Gdańsk Airport Sp. z o.o. is not responsible for the content of the information and for its processing, further sharing and use.\\r\\n li28: >\\r\\n With regard to information on public transport in Gdansk, it is clarified that:\\r\\n li28li1: >\\r\\n This information comes from the Municipal Transport Board in Gdańsk - ZTM Open Data service in Gdansk: <0>http://www.ztm.gda.pl/otwarty_ztm\\r\\n li28li2: >\\r\\n The planned timetable information is automatically updated daily during early morning times.\\r\\n li28li3: >\\r\\n The City of Gdańsk and its subordinate organizational units are not responsible for any damages resulting from the use of the data made available on <0>the Portal.\\r\\n li29: >\\r\\n With regard to information on public transport in Gdynia, it is clarified that:\\r\\n li29li1: >\\r\\n This information is provided by the Road and Green Management Board and comes from the Open Data service:\\r\\n <0>http://otwartedane.gdynia.pl/pl/dataset?groups=transport\\r\\n li29li2: >\\r\\n The planned timetable information is automatically updated daily during early morning times.\\r\\n li29li3: >\\r\\n The City Of Gdynia is not responsible for datasets added by users of the Open Data portal, not owned by the office.\\r\\n li30: >\\r\\n With regard to the timetables information of the other organisers of public public transport available on the website, it shall be clarified that:\\r\\n li30li1: >\\r\\n The information shall be entered by each organiser himself by persons authorized to do so,\\r\\n li30li2: >\\r\\n These persons will make every effort to ensure that the data processed in <0>the Portal system are kept up to date,\\r\\n li30li3: >\\r\\n Alternatively, this information may come from open public data resources available under <0>CC0 1.0.\\r\\n li31: >\\r\\n The timetables presented in <0>the Portal do not take into account incidental changes, related to the breakdown of the means of transport, violent weather phenomena, road blocking, etc. - causing the need for an immediate, emergency change of timetable or withdrawal of the means of transport from the route.\\r\\n li32: >\\r\\n The service provider will try to ensure that all changes in the route and timetables of the communication vehicles are updated on an ongoing basis.\\r\\n li33: >\\r\\n The re-use of the information available on the website is the responsibility of the entity collecting this information, and the Service Provider is not responsible for the manner, timeliness and possible damage resulting from its reuse.\\r\\n li34: >\\r\\n The Service Provider reserves the right to perform maintenance and repair activities within the service.\\r\\n header5: §5 Final provisions\\r\\n li35: >\\r\\n The use of <0>the Portal data is carried out at the own responsibility of the user of the service and in situations relevant to the passenger it is recommended to additionally verify the transport offer of the selected carrier.\\r\\n li36: >\\r\\n In the case of issues not regulated in the regulations, the provisions of Polish law are used.\\r\\n li37: >\\r\\n The copyright of the individual graphic elements, layout and composition of these elements belongs to the service provider. It is forbidden to use graphic elements and their layout and composition without the written consent of InnoBaltica Sp. z o.o.\\r\\n li38: >\\r\\n Users wishing to participate in the development of the website and improving its quality are asked to direct any comments, suggestions, comments related to the operation of the Portal in electronic form to the address <0>planer@opendata.info.pl\\r\\ntouristCard:\\r\\n myCard: My card\\r\\n addCard: Add card\\r\\n cardHolder: Card holder\\r\\n cardNumber: Type in card number\\r\\n cancel: Cancel\\r\\n save: Save\\r\\n cardSaved: Card saved.\\r\\n failedToSave: Failed to save card.\\r\\n card: Card\\r\\n delete: Delete\\r\\n deleteConfirm: Do you want to delete this card from the app?\\r\\n go: Go\\r\\n address: Address\\r\\n openingHours: Opening hours\\r\\n tickets: Tickets\\r\\n cards: Cards\\r\\n search: Search for places, attractions, activites\\r\\n get: Get\\r\\n expired: Expired\\r\\n valid: Valid\\r\\n cardPrice: Card price\\r\\n validTo: to\\r\\n fromActivation: from activation\\r\\n free: free\\r\\n buyCard: Buy card\\r\\n freeEntry: free entry\\r\\n freeEntry_plural: free entries\\r\\n discountedEntry: discounted entry\\r\\n discountedEntry_plural: discounted entries\\r\\n admission: Admission\\r\\n youSave: you save\\r\\n openNow: Open now\\r\\n closes: Closes\\r\\n closedNow: Closed now\\r\\n opens: Opens\\r\\n closed: Closed\\r\\n mondayFriday: Monday - Friday\\r\\n saturdaySunday: Saturday - Sunday\\r\\n mondaySunday: Monday - Sunday\\r\\n and: and\\r\\n MONDAY: Monday\\r\\n TUESDAY: Tuesday\\r\\n WEDNESDAY: Wednesday\\r\\n THURSDAY: Thursday\\r\\n FRIDAY: Friday\\r\\n SATURDAY: Saturday\\r\\n SUNDAY: Sunday\\r\\n visitorResources: Visitor resources\\r\\ndataSource:\\r\\n info: in order to edit transport data (in Data section) for the selected source.\\r\\ncard:\\r\\n organizations: Organizations\\r\\n roles: Roles\\r\\n packages: Packages\\r\\n site: Site\\r\\n cards: Cards\\r\\n statistics: Statistics\\r\\n offersManager: card offers manager\\r\\n siteManager: site manager\\r\\n cardSeller: card seller\\r\\n cardInspector: card inspector\\r\\n addOrganization: Add organization\\r\\n addSite: Add site\\r\\n offersManagerDescription: >\\r\\n local or regional tourism organization; creates and manages packages of attractions that can be accessed\\r\\n by the card user at a discounted rate; can manage other card offers managers and card sellers within\\r\\n the organization, can manage site managers from the sites related to the organization.\\r\\n siteManagerDescription: >\\r\\n manages detailed information regarding all of the attractions on a site (ex. updates opening hours,\\r\\n publishes site maps, etc.); can manage other site managers and card controllers within the site.\\r\\n cardSellerDescription: >\\r\\n part of a local or regional tourism organization; sells packages and assigns them to new or existing cards.\\r\\n cardInspectorDescription: >\\r\\n uses mobile app to verify the card and to validate / deny entry of the card user to attraction(s)\\r\\n within a given site\\r\\n nameInPolish: Name in Polish\\r\\n nameInEnglish: Name in English\\r\\n website: Website\\r\\n descriptionInPolish: Description in Polish\\r\\n descriptionInEnglish: Description in English\\r\\n address: Address\\r\\n telephoneNumber: Telephone number\\r\\n emailAddress: E-mail address\\r\\n image: Image\\r\\n dragAndDrop: Drag and drop your file or\\r\\n selectFile: Select a file\\r\\n discardChanges: Discard changes\\r\\n save: Save\\r\\n attractions: Attractions\\r\\n newAttraction: New attraction\\r\\n attraction: Attraction\\r\\n accessibility: Accessibility\\r\\n accessible: Accessible\\r\\n elevator: Elevator\\r\\n escalator: Escalator\\r\\n guides: Guides\\r\\n newGuide: New guide\\r\\n attachFile: Attach a file\\r\\n add: Add\\r\\n openingHours: Opening hours\\r\\n newOpeningHours: New opening hours\\r\\n remarksPL: Remarks in Polish\\r\\n remarksEN: Remarks in English\\r\\n effective: Effective\\r\\n periods: Periods\\r\\n excludedDates: Excluded dates\\r\\n remarks: Remarks\\r\\n addOption: Add \\\"{{option}}\\\"\\r\\n from: From\\r\\n to: To\\r\\n date: Date\\r\\n siteUpdated: Site has been updated.\\r\\n fileSizeError: File size cannot exceed 3 MB.\\r\\n newOrganization: New organization\\r\\n searchOrganizations: Search for organizations\\r\\n organizationFullName: Organization full name\\r\\n organizationShortName: Organization short name\\r\\n organizationDeleteConfirm: Are you sure you want to delete organization \\\"{{name}}\\\"?\\r\\n organizationDeleteFailed: Failed to delete organization.\\r\\n landmarks: Landmarks\\r\\n newLandmark: New landmark\\r\\n main: Main\\r\\n newPackage: New package\\r\\n valid: Valid\\r\\n number: Number\\r\\n daysFromPurchase: days from date of purchase\\r\\n daysFromFirstUse: days from the moment of the first use\\r\\n packageContents: Package contents\\r\\n packagePrice: Package price\\r\\n freePackage: Free package\\r\\n packagesForSale: Total number of packages to sale\\r\\n noLimit: No limit\\r\\n packageSaleDates: Package sale dates\\r\\n packageStatus: Package status\\r\\n onSale: On sale\\r\\n copyPackageFrom: Copy package from\\r\\n packageName: Package's name in Polish\\r\\n copy: Copy\\r\\n cardTemplate: Card template\\r\\n saleStarting: On sale starting\\r\\n archived: Archived\\r\\n attractionDiscount: Attraction discount\\r\\n discountPackage: package\\r\\n attractionName: Attraction's name in Polish\\r\\n discount: Discount\\r\\n percentageDiscount: Percentage discount\\r\\n amountOfDiscount: Amount of discount\\r\\n freeEntrance: Free entrance\\r\\n baseAdmissionPrice: Base admission price\\r\\n numberOfEntries: Number of entries\\r\\n saveToPackage: Add to package\\r\\n packageUsage: Package usage\\r\\n visitorAttendance: Visitor attendance\\r\\n package: Package\\r\\n usage: Usage\\r\\n now: now\\r\\n visitors: visitors\\r\\n singlePackageUsage: Package usage\\r\\n usageDesc: no. used admissions / no. sold admissions\\r\\n salesAndAdmissionsFor: Sales and admissions for\\r\\n period: Period\\r\\n today: Today\\r\\n yesterday: Yesterday\\r\\n lastDays: Last {{days}} days\\r\\n custom: Custom\\r\\n packagesSold: Packages sold\\r\\n admissions: Admissions\\r\\n total: Total\\r\\n exportReport: Export report\\r\\n discountValue: \\\"{{value}} discount\\\"\\r\\n freeEntranceLower: free entrance\\r\\n mapAdmissions: admission\\r\\n mapAdmissions_plural: admissions\\r\\n mapYesterday: yesterday\\r\\n mapToday: today\\r\\n mapLastDays: during last {{days}} days\\r\\n mapFromTo: from {{from}} to {{to}}\\r\\n time: Time\\r\\n attractionDeleteConfirm: Are you sure you want to delete attraction \\\"{{name}}\\\"?\\r\\n attractionSaved: Attraction has been saved.\\r\\n guideDeleteConfirm: Are you sure you want to delete guide \\\"{{name}}\\\"?\\r\\n hoursDeleteConfirm: Are you sure you want to delete these opening hours?\\r\\n paths: Paths\\r\\n newPath: New path\\r\\n pathStartPL: Path start in Polish\\r\\n pathStartEN: Path start in English\\r\\n pathEndPL: Path end in Polish\\r\\n pathEndEN: Path end in English\\r\\n pathDeleteConfirm: Are you sure you want to delete this path?\\r\\n packageDeleteConfirm: Are you sure want to delete this package?\\r\\n card: Card\\r\\n interconnectNumberOrEmail: Interconnect number or email address\\r\\n search: Search\\r\\n new: New\\r\\n existing: Existing\\r\\n cardNumber: Card number\\r\\n addPackage: Add package\\r\\n firstAndLastName: First and last name\\r\\n interconnectNumber: Interconnect number\\r\\n generateNewCard: Generate new card\\r\\n addPackageToCard: Add package to card\\r\\n price: Price\\r\\n packageWorth: package worth\\r\\n youSave: you save\\r\\n confirmAdd: Are you sure you want to add package to this card?\\r\\n entry: \\\"{{price}} entry\\\"\\r\\n free: free\\r\\n cardGenerated: Card generated.\\r\\n packageAdded: Package added to card.\\r\\n noResults: No results.\\r\\n cardTemplates: Card templates\\r\\n defaultCardTemplate: Default card template\\r\\n salesLimitError: Number cannot be lower than the number of already sold packages.\\r\\n update: Update\\r\\ncommon:\\r\\n noOptions: No options\\r\\n dataSource: Data source\\r\\n route: Route\\r\\n cancel: Cancel\\r\\n cookieDisclaimer: >\\r\\n We use cookies to improve your online experience. By continuing browsing this website,\\r\\n we assume you agree our use of cookies and <0>Privacy Policy.\\r\\n accept: Accept\\r\\n location: Location\\r\\n latitude: Latitude\\r\\n longitude: Longitude\\r\\n invalidValue: Invalid value\\r\\n discardChanges: Discard changes\\r\\n save: Save\\r\\n close: Close\\r\\nsupport:\\r\\n needHelp: Need help?\\r\\n pleaseDescribe: Please describe your issue below\\r\\n issueConcerns: The issue concerns ...\\r\\n passengerPortal: Passenger portal\\r\\n mobileApps: Mobile apps\\r\\n touristCard: Tourist card\\r\\n providerPortal: Provider portal\\r\\n serviceApps: Service apps\\r\\n cardManagementPortal: Card management portal\\r\\n inspectorApp: Inspector app\\r\\n otherApp: Other\\r\\n yourEmail: Your email\\r\\n subject: Subject\\r\\n description: Please describe your issue.\\r\\n submit: Submit\\r\\n pleaseFill: Please fill in this field.\\r\\n help: Help\\r\\n agreement: \\\"I have read and agree to the <0>Terms and Conditions and <1>Privacy Policy.\\\"\\r\\n sent: Message sent.\\r\\n contactUs: Contact us\\r\\n faq: FAQ\\r\\n manageFaq: Manage FAQ\\r\\n haveAQuestion: Have a question?\\r\\n searchFaq: Search FAQ\\r\\n newQuestion: New question\\r\\n portals: Portals\\r\\n passenger: Passenger\\r\\n provider: Provider\\r\\n card: Card\\r\\n beacon: Beacon\\r\\n questionPL: Question in Polish\\r\\n questionEN: Question in English\\r\\n answerPL: Answer in Polish\\r\\n answerEN: Answer in English\\r\\n deleteConfirm: Are you sure you want to delete this question?\\r\\n delete: Delete\\r\\ntimetables:\\r\\n timetables: Timetables\\r\\n search: Search for stops or routes\\r\\n departures: Departures\\r\\n route: Route\\r\\n direction: Direction\\r\\n departsIn: Departs in\\r\\n showDepartures: Show departures\\r\\n timetable: Timetable\\r\\n all: All\\r\\n nextStop: Next stop\\r\\n now: now\\r\\n nearestStops: Nearest stops\\r\\ntrips:\\r\\n trips: Trips\\r\\n vehicleOccupancy: Vehicle occupancy\\r\\n passengerStreams: Passenger streams\\r\\n tickets: Tickets\\r\\n export: Export trip data\\r\\n fromHour: From hour\\r\\n toHour: To hour\\r\\n maxPassengers: Maximum number of passengers in a vehicle\\r\\n meanPassengers: Mean number of passengers in a vehicle\\r\\n medianPassengers: Median number of passengers in a vehicle\\r\\n entering: entering\\r\\n leaving: leaving\\r\\n mean: mean\\r\\n median: median\\r\\n timeMean: mean\\r\\n timeMin: minimum\\r\\n timeMax: maximum\\r\\n timeMedian: median\\r\\n min: minimum\\r\\n max: maximum\\r\\n passengerCount: number of passengers in a vehicle\\r\\n waitTime: time spent waiting for a vehicle\\r\\n sec: sec\\r\\n stream: Stream\\r\\n passengerCountTable: Passenger count\\r\\n hub: Hub\\r\\n transferTime: transfer time\\r\\n withValidTicket: With valid ticket\\r\\n withInvalidTicket: With invalid ticket\\r\\n noTicket: No ticket\\r\\n total: Total\\r\\nbeacon:\\r\\n dashboard: Dashboard\\r\\n beaconAssignment: Beacon assignment\\r\\n serviceLogs: Service logs\\r\\n beaconStatus: Beacon status\\r\\n dashboardSearch: Search for beacon ID, issue, assigned to\\r\\n operational: operational\\r\\n malfunction: malfuncion\\r\\n mobile: mobile\\r\\n needAttention: need attention\\r\\n stationary: stationary\\r\\n all: all\\r\\n beaconID: Beacon ID\\r\\n issue: Issue\\r\\n assignedTo: Assigned to\\r\\n supply: Supply\\r\\n batteryLevel: Battery level\\r\\n dataReceivedOn: Data received on\\r\\n daysAgo: days ago\\r\\n lastData: last data recevied on\\r\\n batteryLevelTable: battery level\\r\\n todayAt: today at\\r\\n battery: battery\\r\\n at: at\\r\\n logsSearch: Search for date, time, service person, beacon name, ID\\r\\n serviceDateTime: Service date & time\\r\\n servicePerson: Service person\\r\\n beaconNameAssigned: Beacon name / assigned to\\r\\n buildID: Build ID\\r\\n mains: mains\\r\\n uptime: Uptime\\r\\n lastPowerOutage: Last power outage\\r\\n receivedPowerLevel: Received power level\\r\\n transmitPowerLevel: Transmit power level\\r\\n noLogs: No logs\\r\\n stationaryBeacons: Stationary beacons\\r\\n mobileBeacons: Mobile beacons\\r\\n newBeacon: New beacon\\r\\n name: Name\\r\\n locatedAtPoint: Located at point of interest (POI)\\r\\n beaconName: Beacon name\\r\\n stationarySearch: Search for ID or name\\r\\n welcomeMessagePL: POI Welcome message in Polish\\r\\n welcomeMessageEN: POI Welcome message in English\\r\\n deleteBeacon: Delete beacon\\r\\n vehicleID: Vehicle ID\\r\\n mobileSearch: Search for ID, assigned to, or vehicle ID\\r\\n provider: Provider\\r\\n poi: POI\\r\\n deleteBeaconConfirm: Are you sure you want to delete this beacon?\\r\\n tableOperational: operational\\r\\n dataSource: Data source\\r\\n stop: Stop\\r\\n add: Add\\r\\n idError: ID should be a number between {{from}} and {{to}}.\\r\\n organization: Organization\\r\\n site: Site\\r\\n\";"],"sourceRoot":""}