1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[18638],{17054:(e,t,n)=>{n.d(t,{Po:()=>a,ko:()=>s});var l=n(70309),r=n(12115);function s(){return(0,l.U$)().map}function a(e){let t=s();return(0,r.useEffect)(function(){return t.on(e),function(){t.off(e)}},[t,e]),t}},18638:(e,t,n)=>{n.r(t),n.d(t,{default:()=>y});var l=n(95155),r=n(12115),s=n(61314),a=n(47650),i=n(18955),o=n(93342),c=n(29608),u=n(64292),d=n(42861);let p=new Map,f=null;var g=n(39307);let m={summary:null,updatedAt:null,stale:!1,sanctioned:!1,destination:null,etaText:null},h=new Map;async function v(e){if(h.has(e))return h.get(e);try{var t,n;let l=await fetch("/api/ports-map/live/vessel/".concat(e,"?peek=1"));if(!l.ok)return h.set(e,m),m;let r=await l.json(),s=null==r?void 0:r.staticData,a={summary:null!=(n=null==r?void 0:r.vesselFull)?n:null,updatedAt:"number"==typeof(null==r?void 0:r.updatedAt)&&Number.isFinite(r.updatedAt)?r.updatedAt:null,stale:!!(null==r?void 0:r.stale),sanctioned:!!((null==r?void 0:r.sanctioned)||(null==r||null==(t=r.sanctions)?void 0:t.sanctioned)),destination:"string"==typeof(null==s?void 0:s.destination)&&s.destination.trim()?s.destination.trim():null,etaText:function(e){var t,n;if(!e)return null;let l=null!=(t=e.etaMonth)?t:0,r=null!=(n=e.etaDay)?n:0;if(l<1||l>12||r<1||r>31)return null;let s=e=>String(e).padStart(2,"0"),a=e.etaHour,i=e.etaMinute,o=null!=a&&a>=0&&a<=23&&null!=i&&i>=0&&i<=59?" ".concat(s(a),":").concat(s(i)," UTC"):"";return"".concat(s(l),"-").concat(s(r)).concat(o)}(s)};if(h.size>=200){let e=h.keys().next().value;void 0!==e&&h.delete(e)}return h.set(e,a),a}catch(e){return m}}function x(e){if("number"==typeof e)return Number.isFinite(e)?e:null;if("string"==typeof e&&e.trim()){let t=Number(e);return Number.isFinite(t)?t:null}return null}function y(e){let{layers:t=["vessels-icon","vessels-live-icon","selected-vessel-icon"],isMobile:n,portContextOpen:m=!1}=e,{map:y,styleReady:b}=(0,c.V)(),k=(0,i.c)("portsMap"),{isAuthenticated:w}=(0,o.A)(),[j,N]=(0,r.useState)(null),[C,S]=(0,r.useState)(null),L=(0,r.useRef)(!1),T=e=>{L.current=!n&&(e>=9||m)},F=(0,r.useRef)(null),M=(0,r.useRef)(null);(0,r.useEffect)(()=>{if(!(0,s.D)(y)||!b)return;T(y.getZoom());let e=()=>
1{M.current=null;let e=F.current;if(!e)return;if(!L.current||y.isMoving()||y.isZooming()){j&&N(null);return}if(!(0,s.D)(y))return;let n=t.filter(e=>y.getLayer(e));if(0===n.length){j&&N(null);return}let l=y.queryRenderedFeatures(e.point,{layers:n})[0];if(!l){j&&N(null);return}let r=l.properties,a=r?x(r.mmsi):null;if(!r||null==a){j&&N(null);return}let i=l.geometry.coordinates;N({mmsi:a,props:r,lngLat:{lng:i[0],lat:i[1]},point:{x:e.point.x,y:e.point.y}})},l=t=>{F.current=t,null==M.current&&(M.current=requestAnimationFrame(e))},r=()=>{F.current=null,N(null)},a=()=>T(y.getZoom()),i=()=>{if(n)return;let e=y.getBounds();!function(e,t){if(t<9)return;let n=function(e){let t=e=>Math.round(10*e)/10;return"".concat(t(e.south),",").concat(t(e.west),",").concat(t(e.north),",").concat(t(e.east))}(e);n!==f&&(f=n,(async()=>{try{let t=new URLSearchParams({south:String(e.south),west:String(e.west),north:String(e.north),east:String(e.east)}),n=await fetch("/api/ports-map/live/identity?".concat(t.toString()));if(!n.ok)return;let l=(await n.json()).id;if(!l)return;for(let e in l){let[t,n]=l[e];p.set(Number(e),{name:t,imo:n})}if(p.size>4e4){let e=p.size-4e4;for(let t of p.keys()){if(e--<=0)break;p.delete(t)}}}catch(e){}finally{f===n&&(f=null)}})())}({south:e.getSouth(),west:e.getWest(),north:e.getNorth(),east:e.getEast()},y.getZoom())};return y.on("mousemove",l),y.on("mouseout",r),y.on("zoomend",a),y.on("moveend",i),i(),()=>{y.off("mousemove",l),y.off("mouseout",r),y.off("zoomend",a),y.off("moveend",i),null!=M.current&&(cancelAnimationFrame(M.current),M.current=null)}},[y,b,t,n,m]),(0,r.useEffect)(()=>{if(!j)return void S(null);let{mmsi:e}=j;if(h.has(e))return void S({mmsi:e,entry:h.get(e)});S(null);let t=window.setTimeout(()=>{v(e).then(t=>{S(n=>(null==n?void 0:n.mmsi)===e?n:{mmsi:e,entry:t})})},300);return()=>window.clearTimeout(t)},[j]);let A=(0,r.useMemo)(()=>{var e;if(!j||!y)return null;let t=(null==C?void 0:C.mmsi)===j.mmsi?C.entry:null,n=function(e,t,n){var l,r,s,a,i,o,c;let u=null!=(r=x(e.mmsi))?r:0,d=p.get(u),f=null!=(s=x(e.shipType))?s:void 0,m=x(e.navStatus),h=null!=(a=x(e.sog))?a:0,v=null!=(i=x(e.rot))?i:0,y=x(e.t),b=null!=y&&y>0?1e3*y:null,k=null!=(o=null==n?void 0:n.summary)?o:null;return{mmsi:u,name:(null==k||null==(l=k.name)?void 0:l.trim())||(null==d?void 0:d.name)||(null!==(0,g.p)(u)?"MMSI ".concat(u):""),imo:(null==d?void 0:d.imo)&&d.imo>0?d.imo:null,lat:t.lat,lon:t.lng,sog:h,cog:v,heading:v,navStatus:null==m||m<0?null:m,navStatusLabel:"",updatedAt:null!=(c=null!=b?b:null==n?void 0:n.updatedAt)?c:Date.now(),stale:1===x(e.stale)||!!(null==n?void 0:n.stale),shipType:f,forOrders:1===x(e.forOrders),sanctioned:1===x(e.sanctioned)||!!(null==n?void 0:n.sanctioned),vesselFull:k}}(j.props,j.lngLat,t),r=(null==t||null==(e=t.summary)?void 0:e.matchCase)==="case2",s=(0,d.kZ)(n);return(0,l.jsx)("div",{className:r?"pointer-events-none absolute z-[500]":"pointer-events-none absolute z-[500] rounded-md border border-slate-200 bg-white/95 px-2.5 py-2 shadow-lg backdrop-blur-sm",style:{left:j.point.x+12,top:j.point.y+12,maxWidth:280},children:r&&n.vesselFull?(0,l.jsx)(u.$O,{v:n,vf:n.vesselFull,t:k,canViewDetails:w,destination:null==t?void 0:t.destination,etaText:null==t?void 0:t.etaText}):(0,l.jsx)(u.GK,{v:n,t:k,dotColor:s})})},[j,C,y,k,w]);return A&&y?(0,a.createPortal)(A,y.getContainer()):null}},26264:(e,t,n)=>{n.d(t,{p:()=>i});var l=n(70055),r=n(80514),s=n(70309),a=n(55027);let i=(0,l.Nq)(function({position:e,...t},n){let l=new a.Marker(e,t);return(0,r.Q)(l,(0,s.W4)(n,{overlayContainer:l}))},function(e,t,n){t.position!==n.position&&e.setLatLng(t.position),null!=t.icon&&t.icon!==n.icon&&e.setIcon(t.icon),null!=t.zIndexOffset&&t.zIndexOffset!==n.zIndexOffset&&e.setZIndexOffset(t.zIndexOffset),null!=t.opacity&&t.opacity!==n.opacity&&e.setOpacity(t.opacity),null!=e.dragging&&t.draggable!==n.draggable&&(!0===t.draggable?e.dragging.enable():e.dragging.disable())})},30525:(e,t,n)=>{n.d(t,{m:()=>i});var l=n(70055),r=n(80514),s=n(55027),a=n(12115);let i=(0,l.wk)(function(e,t){let n=new s.Tooltip(e,t.overlayContainer);return(0,r.Q)(n,t)},function(e,t,{position:n},l){(0,a.useEffect)(function(){let r=t.overlayContainer;if(null==r)return;let{instance:s}=e,a=e=>{e.tooltip===s&&(null!=n&&s.setLatLng(n),s.update(),l(!0))},i=e=>{e.tooltip===s&&l(!1)};return r.on({tooltipopen:a,tooltipclose:i}),r.bindTooltip(s),function(){r.off({tooltipopen:a,tooltipclose:i}),null!=r._map&&r.unbindTooltip()}},[e,t,l,n])})},42861:(e,t,n)=>{n.d(t,{MY:()=>r,_C:()=>a,kZ:()=>s});var l=n(96917);let r={tanker:"#dc2626",bulk:"#ca8a04",cargo:"#16a34a",container:"#0d9488",passenger:"#3b82f6",roro:"#c026d3",fishing:"#f97316",service:"#475569",other:"#6b7280",unknown:"#94a3b8"};function s(e){return r[(0,l.BW)(e.shipType,e.vesselType)]}function a(e){return!e.stale&&"number"==typeof e.sog&&Number.isFinite(e.sog)&&e.sog>.5?"triangle":5===e.navStatus?"square":"dot"}},64292:(e,t,n)=>{n.d(t,{GK:()=>L,$O:()=>T,Ay:()=>S});var l=n(95155),r=n(12115),s=n(76313),a=n(18955),i=n(51567),o=n(17054),c=n(65761),u=n(26264),d=n(30525),p=n(55027),f=n.n(p),g=n(78435),m=n(70125),h=n(64199),v=n(13217),x=n(49175),y=n(93342),b=n(42861),k=n(39307),w=n(95704);let j=new Map,N="1"===w.env.NEXT_PUBLIC_SHOW_AIS_SOURCE;function C(e){return(0,b.kZ)(e)}function S(e){let{vessels:t,trackedVessel:n,activeMmsi:s,onSelect:i,showTrails:p,isMobileView:g}=e,v=(0,a.c)("portsMap"),{isAuthenticated:x}=(0,y.A)(),k=(0,o.ko)(),[w,S]=(0,r.useState)(()=>k.getZoom()),F=(0,r.useMemo)(()=>{var e;return p&&(null==n||null==(e=n.trail)?void 0:e.length)?n.trail.map(e=>[e.lat,e.lon]):null},[p,n]),M=w<=7,A=w<=7?"medium":"full",O=w>=8&&!g,B=(0,r.useMemo)(()=>M?t.filter(e=>e.mmsi===s||null!==e.navStatus):t,[t,M,s]);return(0,r.useEffect)(()=>{let e=()=>S(k.getZoom());return k.on("zoomend",e),()=>{k.off("zoomend",e)}},[k]),(0,l.jsxs)(l.Fragment,{children:[F&&(0,l.jsx)(c.R,{positions:F,color:"#f97316",weight:2,opacity:.7,dashArray:"6 4"}),B.map(e=>{var t,n;let r=(0,b.kZ)(e),a=e.mmsi===s,o=(0,h.bT)(e.shipType),c=N&&null!=(n=e.kind)?n:null,p=(0,b._C)(e),g=function(e){var t;let n="dot"!==e.shape&&Number.isFinite(e.heading)?Math.round(e.heading):0,l="".concat(e.shape,":").concat(n,":").concat(e.color,":").concat(+!!e.selected,":").concat(e.classKind,":").concat(+!!e.isCargo,":").concat(e.density,":").concat(e.accentColor,":").concat(null!=(t=e.sourceBadge)?t:"-",":").concat(+!!e.stale),r=j.get(l);if(r)return r;let{html:s,size:a}=function(e){var t,n,l;let r,s=e.selected?32:"B"===e.classKind?17:"medium"===e.density?21:26,{color:a,width:i}=e.selected?{color:"#0f172a",width:2.35}:"B"===e.classKind?{color:"#475569",width:1}:{color:"#1c1917",width:1.55},o=e.isCargo&&!e.selected&&null!=(t=e.accentColor)?t:null,c=e.stale?.5:1;if("dot"===e.shape||"square"===e.shape){let t="dot"===e.shape?(n=e.fillColor,'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" style="display:block" fill="none">\n<circle cx="12" cy="12" r="6" fill="'.concat(n,'" stroke="').concat(a,'" stroke-width="').concat(i,'" paint-order="stroke fill"/>\n</svg>')):(l=e.fillColor,'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" style="display:block" fill="none">\n<rect x="6" y="6" width="12" height="12" rx="2.2" ry="2.2" fill="'.concat(l,'" stroke="').concat(a,'" stroke-width="').concat(i,'" paint-order="stroke fill"/>\n</svg>'));r='<div style="width:'.concat(s,"px;height:").concat(s,"px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 1px 2px rgba(0,0,0,0.22));opacity:").concat(c,';">').concat(t,"</div>")}else{let t=e.headingDeg>=0&&e.headingDeg<360?e.headingDeg:0,n=function(e,t,n,l){let r=Math.max(1.15,.55*n),s=l?'<path\n d="M12 3.1 Q12.35 2.85 12.7 3.15 L20.4 18.85 Q20.55 19.25 20.15 19.35 L12.15 18.15 Q12 18.1 11.85 18.15 L3.85 19.35 Q3.45 19.25 3.6 18.85 L11.3 3.15 Q11.65 2.85 12 3.1 Z"\n fill="none"\n stroke="'.concat(l,'"\n stroke-width="').concat(n+1.6,'"\n stroke-linejoin="round"\n stroke-linecap="round"\n opacity="0.85"\n/>'):"";return'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" style="display:block" fill="none">\n'.concat(s,'\n<path\n d="M12 3.1 Q12.35 2.85 12.7 3.15 L20.4 18.85 Q20.55 19.25 20.15 19.35 L12.15 18.15 Q12 18.1 11.85 18.15 L3.85 19.35 Q3.45 19.25 3.6 18.85 L11.3 3.15 Q11.65 2.85 12 3.1 Z"\n fill="').concat(e,'"\n stroke="').concat(t,'"\n stroke-width="').concat(n,'"\n stroke-linejoin="round"\n stroke-linecap="round"\n paint-order="stroke fill"\n/>\n<path\n d="M12 17.9 C11.25 14.8 12.75 11.6 12 8.6 C11.35 6.1 12.55 4.2 12 2.95"\n fill="none"\n stroke="').concat(t,'"\n stroke-width="').concat(r,'"\n stroke-linecap="round"\n stroke-linejoin="round"\n/>\n</svg>')}(e.fillColor,a,i,o);r='<div style="width:'.concat(s,"px;height:").concat(s,"px;display:flex;align-items:center;justify-content:center;transform:rotate(").concat(t,"deg);filter:drop-shadow(0 1px 2px rgba(0,0,0,0.28));opacity:").concat(c,';">').concat(n,"</div>")}let u=e.sourceBadge?'<div style="position:absolute;top:-4px;right:-4px;width:11px;height:11px;border-radius:50%;background:'.concat("S"===e.sourceBadge?"#14b8a6":"#0ea5e9",';color:#fff;font:700 8px/11px system-ui,sans-serif;text-align:center;border:1px solid #fff;box-shadow:0 1px 2px rgba(0,0,0,0.35);pointer-events:none;">').concat(e.sourceBadge,"</div>"):"";return{html:e.sourceBadge?'<div style="position:relative;width:'.concat(s,"px;height:").concat(s,'px;">').concat(r).concat(u,"</div>"):r,size:s}}({fillColor:e.color,selected:e.selected,headingDeg:n,classKind:e.classKind,isCargo:e.isCargo,density:e.density,accentColor:e.accentColor,sourceBadge:e.sourceBadge,shape:e.shape,stale:e.stale}),i=f().divIcon({className:"",iconSize:[a,a],iconAnchor:[a/2,a/2],html:s});
1return j.set(l,i),i}({heading:e.heading,color:r,selected:a,classKind:(0,m.BY)(e),isCargo:(0,h.xm)(e.shipType),density:A,accentColor:o.color,sourceBadge:c,shape:p,stale:!!e.stale}),y=(null==(t=e.vesselFull)?void 0:t.matchCase)==="case2",k=a?1e3:200*("triangle"===p);return(0,l.jsx)(u.p,{position:[e.lat,e.lon],icon:g,zIndexOffset:k,eventHandlers:{click:()=>i(e)},children:O&&y&&e.vesselFull?(0,l.jsx)(d.m,{direction:"top",offset:[0,-10],opacity:1,sticky:!0,className:"vessel-full-tooltip [&_.leaflet-tooltip-content]:!m-0",children:(0,l.jsx)(T,{v:e,vf:e.vesselFull,t:v,canViewDetails:x})}):O?(0,l.jsx)(d.m,{direction:"top",offset:[0,-10],opacity:1,sticky:!0,className:"!rounded-md !border !border-slate-200 !bg-white !px-2.5 !py-2 !text-slate-800 !shadow-md [&_.leaflet-tooltip-content]:!m-0",children:(0,l.jsx)(L,{v:e,t:v,dotColor:C(e)})}):null},e.mmsi)})]})}function L(e){var t,n,r,s,a,o,c;let{v:u,t:d,dotColor:p}=e,f=(0,i.Ym)(),g=null!=(c=null==(n=u.vesselFull)||null==(t=n.flagCountry)?void 0:t.trim())?c:"",h=(0,v.KR)(g);return(0,l.jsxs)("div",{className:"max-w-[220px] text-left text-xs leading-snug",children:[(0,l.jsxs)("p",{className:"flex items-center gap-1.5 font-semibold text-slate-900",children:[(0,l.jsx)("span",{className:"truncate",children:(null==(s=u.vesselFull)||null==(r=s.name)?void 0:r.trim())||u.name||(null!==(0,k.p)(u.mmsi)?"MMSI ".concat(u.mmsi):d("live.vesselFallbackTitle"))}),u.forOrders&&(0,l.jsx)("span",{className:"shrink-0 rounded bg-amber-500 px-1 py-px text-[9px] font-semibold uppercase leading-tight text-white",title:d("live.forOrdersHubsHint"),children:d("live.layerForOrders")}),u.sanctioned&&(0,l.jsx)("span",{className:"shrink-0 rounded bg-rose-600 px-1 py-px text-[9px] font-semibold uppercase leading-tight text-white",title:d("live.vesselFull.sanctionedTagTitle"),children:d("live.vesselFull.sanctionedTag")})]}),(0,l.jsxs)("p",{className:"mt-0.5 flex items-center gap-1 text-[11px] text-slate-600",children:[(0,l.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full",style:{backgroundColor:p}}),(0,m.Y5)(u,d),Number.isFinite(u.sog)?" \xb7 ".concat(u.sog.toFixed(1)," ").concat(d("knotsShort")):""]}),(0,l.jsx)("p",{className:"mt-0.5 text-[11px] text-slate-500",children:(0,m.j8)(u,d,f)}),u.imo||(null==(a=u.vesselFull)?void 0:a.imo)?(0,l.jsxs)("p",{className:"mt-0.5 text-[10px] text-slate-400",children:["IMO ",u.imo||(null==(o=u.vesselFull)?void 0:o.imo)]}):null===(0,k.p)(u.mmsi)&&(0,l.jsx)("p",{className:"mt-0.5 text-[10px] text-slate-400",children:d("live.identifiersAfterLogin")}),u.vesselFull&&(0,l.jsxs)("div",{className:"mt-1 space-y-0.5 border-t border-slate-100 pt-1 text-[10px] text-slate-500",children:[g&&(0,l.jsxs)("p",{children:[(0,l.jsx)("span",{className:"text-slate-400",children:"Flag:"})," ",h||d("live.flagUnknown")]}),u.vesselFull.yearBuilt&&(0,l.jsxs)("p",{children:[(0,l.jsx)("span",{className:"text-slate-400",children:"Built:"})," ",u.vesselFull.yearBuilt]}),u.vesselFull.grossTonnage&&(0,l.jsxs)("p",{children:[(0,l.jsx)("span",{className:"text-slate-400",children:"GT:"})," ",u.vesselFull.grossTonnage]})]}),(0,l.jsxs)("p",{className:"mt-1 text-[10px] text-slate-400",children:["AIS \xb7 ",(0,m.uW)(u.updatedAt,d)]}),u.stale&&(0,l.jsx)("p",{className:"mt-1 text-[10px] font-medium text-amber-600",children:d("live.staleWarning")})]})}function T(e){var t,n,r,a,i,o,c,u,d;let{v:p,vf:f,t:v,canViewDetails:y,destination:b,etaText:w}=e,j=(null==(t=f.name)?void 0:t.trim())||p.name||(null!==(0,k.p)(p.mmsi)?"MMSI ".concat(p.mmsi):v("live.vesselFallbackTitle")),N=null===(0,k.p)(p.mmsi),S=null!=(o=p.shipType)?o:0,L=(0,h.bT)(S),T=L.color,A=function(e,t,n){var l,r;let s=null!=(l=null==e?void 0:e.trim())?l:"";if(s&&!(0,h.oJ)(s))return s;let a=null!=(r=null==t?void 0:t.trim())?r:"";return a&&!(0,h.oJ)(a)?a:n}(f.shipType,p.vesselType,L.label),O=null!=(c=f.flagCode)?c:null,B=(0,m.Y5)(p,v),I=C(p),R=(null==(n=f.grossTonnage)?void 0:n.trim())||p.grossTonnage||"",E=(null==(r=f.deadweightTonnage)?void 0:r.trim())||"",z=(null==(a=f.yearBuilt)?void 0:a.trim())||p.yearBuilt||"",H=!!(R||E||z),U=null!=(u=(0,s.RF)(f.registeredOwner))?u:"",P=null!=(d=(0,s.RF)(f.managementCompany))?d:"",_=(null==(i=f.classificationSociety)?void 0:i.trim())||"",D=!!(U||P&&P!==U||_);return(0,l.jsxs)("div",{className:"w-[280px] overflow-hidden rounded-xl border border-slate-200 bg-white text-left font-sans",children:[(0,l.jsx)("div",{className:"h-1 w-full",style:{backgroundColor:T}}),(0,l.jsxs)("div",{className:"px-3 pb-2 pt-2.5",children:[(0,l.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,l.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,l.jsxs)("p",{className:"flex items-center gap-1.5 text-sm font-bold leading-tight text-slate-900",children:[(0,l.jsx)("span",{className:"truncate",children:j}),p.sanctioned&&(0,l.jsx)("span",{className:"shrink-0 rounded bg-rose-600 px-1 py-px text-[9px] font-semibold uppercase leading-tight text-white",title:v("live.vesselFull.sanctionedTagTitle"),children:v("live.vesselFull.sanctionedTag")})]}),(0,l.jsx)("p",{className:"mt-0.5 text-[10px] leading-tight text-slate-500",children:N?v("live.identifiersAfterLogin"):(0,l.jsxs)(l.Fragment,{children:["IMO ",f.imo,null!==(0,k.p)(f.mmsi)?" \xb7 MMSI ".concat(f.mmsi):""]})})]}),O&&(0,l.jsxs)("span",{className:"flex shrink-0 items-center gap-1 rounded-md border border-slate-200/80 bg-slate-50 px-1.5 py-0.5 text-[10px] font-medium text-slate-700",children:[(0,l.jsx)(x.i,{code:O,className:"inline-block h-3 w-[18px] rounded-[1px]"}),(0,l.jsx)("span",{children:O.toUpperCase()})]})]}),(0,l.jsxs)("div",{className:"mt-2 flex flex-wrap items-center gap-1.5",children:[A&&(0,l.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[10px] font-semibold",style:{color:T,backgroundColor:"".concat(T,"1A")},children:[(0,l.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full",style:{backgroundColor:T}}),A]}),(0,l.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-full bg-slate-100 px-2 py-0.5 text-[10px] font-medium text-slate-700",children:[(0,l.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full",style:{backgroundColor:I}}),B]})]})]}),(b||w)&&(0,l.jsxs)("div",{className:"space-y-0.5 border-t border-slate-100 px-3 py-1.5 text-[11px]",children:[b&&(0,l.jsxs)("div",{className:"flex gap-1.5",children:[(0,l.jsx)("span",{className:"shrink-0 text-[10px] uppercase tracking-wide text-slate-400",children:v("live.destination")}),(0,l.jsx)("span",{className:"truncate font-medium text-slate-700",children:b})]}),w&&(0,l.jsxs)("div",{className:"flex gap-1.5",children:[(0,l.jsx)("span",{className:"shrink-0 text-[10px] uppercase tracking-wide text-slate-400",children:v("voyageStrip.eta")}),(0,l.jsx)("span",{className:"font-medium text-slate-700",children:w})]})]}),H&&(0,l.jsxs)("div",{className:"grid grid-cols-3 gap-px border-t border-slate-100 bg-slate-100 text-center",children:[(0,l.jsx)(F,{label:"GT",value:R}),(0,l.jsx)(F,{label:"DWT",value:E}),(0,l.jsx)(F,{label:v("live.yearBuilt"),value:z})]}),D&&(0,l.jsxs)("div",{className:"space-y-1 border-t border-slate-100 px-3 py-2 text-[11px]",children:[U&&(0,l.jsxs)("div",{className:"flex gap-1.5",children:[(0,l.jsx)("span",{className:"shrink-0 text-[10px] uppercase tracking-wide text-slate-400",children:v("live.owner")}),(0,l.jsx)(M,{value:U,canView:y})]}),P&&P!==U&&(0,l.jsxs)("div",{className:"flex gap-1.5",children:[(0,l.jsx)("span",{className:"shrink-0 text-[10px] uppercase tracking-wide text-slate-400",children:v("live.manager")}),(0,l.jsx)(M,{value:P,canView:y})]}),_&&(0,l.jsxs)("div",{className:"flex gap-1.5",children:[(0,l.jsx)("span",{className:"shrink-0 text-[10px] uppercase tracking-wide text-slate-400",children:"Class"}),(0,l.jsx)(M,{value:_,canView:y})]})]}),(0,l.jsxs)("div",{className:"flex items-center justify-between gap-2 border-t border-slate-100 bg-slate-50/60 px-3 py-1.5",children:[(0,l.jsxs)("span",{className:"text-[10px] text-slate-400",children:["AIS \xb7 ",(0,m.uW)(p.updatedAt,v)]}),(0,l.jsxs)("span",{className:"inline-flex items-center gap-1 text-[9px] font-semibold uppercase tracking-wide text-emerald-600",children:[(0,l.jsx)(g.A,{className:"h-3 w-3"}),"Registry"]})]}),p.stale&&(0,l.jsx)("div",{className:"border-t border-amber-200 bg-amber-50 px-3 py-1 text-[10px] font-medium text-amber-700",children:v("live.staleWarning")})]})}function F(e){let{label:t,value:n}=e;return(0,l.jsxs)("div",{className:"bg-white px-2 py-1.5",children:[(0,l.jsx)("p",{className:"text-[9px] uppercase tracking-wider text-slate-400",children:t}),(0,l.jsx)("p",{className:"mt-0.5 truncate text-xs font-semibold text-slate-800",children:n||"â"})]})}function M(e){let{value:t,canView:n}=e;return n?(0,l.jsx)("span",{className:"min-w-0 flex-1 truncate text-slate-700",children:t}):(0,l.jsx)("span",{className:"min-w-0 flex-1 pt-0.5",children:(0,l.jsx)("span",{className:"block h-3.5 max-w-[150px] rounded bg-slate-300/80 blur-[4px]","aria-hidden":!0})})}},65761:(e,t,n)=>{n.d(t,{R:()=>i});var l=n(70055),r=n(80514),s=n(70309),a=n(55027);let i=(0,l.Lt)(function({positions:e,...t},n){let l=new a.Polyline(e,t);return(0,r.Q)(l,(0,s.W4)(n,{overlayContainer:l}))},function(e,t,n){t.positions!==n.positions&&e.setLatLngs(t.positions)})},70055:(e,t,n)=>{n.d(t,{Nq:()=>f,wk:()=>g,Lt:()=>m,X3:()=>h});var l=n(12115),r=n(47650),s=n(70309);function a(e){return(0,l.forwardRef)(function(t,n){let{instance:r,context:a}=e(t).current;(0,l.useImperativeHandle)(n,()=>r);let{children:i}=t;return null==i?null:l.createElement(s.dk,{value:a},i)})}function i(e,t){let n=(0,l.useRef)(t);(0,l.useEffect)(function(){t!==n.current&&null!=e.attributionControl&&(null!=n.current&&e.attributionControl.removeAttribution(n.current),null!=t&&e.attributionControl.addAttribution(t)),n.current=t},[e,t])}function o(e,t){let n=(0,l.useRef)(void 0);(0,l.useEffect)(function(){return null!=t&&e.instance.on(t),n.current=t,function(){null!=n.current&&e.
1instance.off(n.current),n.current=null}},[e,t])}var c=n(85452),u=n(80514);function d(e,t){(0,l.useEffect)(function(){return(t.layerContainer??t.map).addLayer(e.instance),function(){t.layerContainer?.removeLayer(e.instance),t.map.removeLayer(e.instance)}},[t,e])}function p(e){return function(t){let n=(0,s.U$)(),l=e((0,c.P)(t,n),n);return i(n.map,t.attribution),o(l.current,t.eventHandlers),d(l.current,n),l}}function f(e,t){return a(p((0,u.K)(e,t)))}function g(e,t){var n,a;return n=(0,u.K)(e),a=function(e,l){let r=(0,s.U$)(),a=n((0,c.P)(e,r),r);return i(r.map,e.attribution),o(a.current,e.eventHandlers),t(a.current,r,e,l),a},(0,l.forwardRef)(function(e,t){let[n,s]=(0,l.useState)(!1),{instance:i}=a(e,s).current;(0,l.useImperativeHandle)(t,()=>i),(0,l.useEffect)(function(){n&&i.update()},[i,n,e.children]);let o=i._contentNode;return o?(0,r.createPortal)(e.children,o):null})}function m(e,t){var n;return a((n=(0,u.K)(e,t),function(e){let t=(0,s.U$)(),r=n((0,c.P)(e,t),t);o(r.current,e.eventHandlers),d(r.current,t);var a=r.current;let i=(0,l.useRef)(void 0);return(0,l.useEffect)(function(){if(e.pathOptions!==i.current){let t=e.pathOptions??{};a.instance.setStyle(t),i.current=t}},[a,e]),r}))}function h(e,t){var n;return n=p((0,u.K)(e,t)),(0,l.forwardRef)(function(e,t){let{instance:r}=n(e).current;return(0,l.useImperativeHandle)(t,()=>r),null})}},70125:(e,t,n)=>{n.d(t,{BY:()=>s,Bv:()=>d,Tp:()=>a,Y5:()=>c,fc:()=>i,j8:()=>o,uW:()=>p});var l=n(64199),r=n(82033);function s(e){return null===e.navStatus?"B":"A"}function a(e){return null==e?"all":1===e?"anchored":5===e?"moored":0===e||8===e?"underway":"all"}function i(e,t){switch(e){case"WIG":return t("live.shipCategory.WIG");case"Special":return t("live.shipCategory.Special");case"HSC":return t("live.shipCategory.HSC");case"Passenger":return t("live.shipCategory.Passenger");case"Cargo":return t("live.shipCategory.Cargo");case"Tanker":return t("live.shipCategory.Tanker");case"Other":return t("live.shipCategory.Other");default:return t("live.shipCategory.Unknown")}}function o(e,t){var n,s,a,o,c,u,d;let p=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"en",f=null!=(o=null==(s=e.vesselFull)||null==(n=s.shipType)?void 0:n.trim())?o:"";if(f&&!(0,l.oJ)(f))return null!=(c=(0,r.V1)(f,p))?c:f;let g=(0,l.bT)(e.shipType),m=null!=(u=null==(a=e.vesselType)?void 0:a.trim())?u:"";
1return m&&!(0,l.oJ)(m)?null!=(d=(0,r.V1)(m,p))?d:m:i(g.category,t)}function c(e,t){let n=a(e.navStatus);return"anchored"===n?t("live.anchored"):"moored"===n?t("live.moored"):"underway"===n?t("live.underway"):null!=e.navStatus&&Number.isInteger(e.navStatus)&&e.navStatus>=0&&e.navStatus<=15?t("live.navStatusName.".concat(e.navStatus)):e.navStatusLabel}let u=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function d(e,t){var n,l,r,s;let a=null!=(n=null==e?void 0:e.month)?n:0,i=null!=(l=null==e?void 0:e.day)?l:0;if(a<1||a>12||i<1||i>31)return null;let o=String(i).padStart(2,"0"),c="ru"===t?"".concat(o,".").concat(String(a).padStart(2,"0")):"".concat(o," ").concat(u[a-1]),d=null!=(r=null==e?void 0:e.hour)?r:24,p=null!=(s=null==e?void 0:e.minute)?s:60;return d<0||d>23||p<0||p>59?c:"".concat(c," ").concat(String(d).padStart(2,"0"),":").concat(String(p).padStart(2,"0")," UTC")}function p(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Date.now(),l=Math.floor((n-e)/1e3);if(l<5)return t("live.positionAgeJustNow");{if(l<60)return t("live.positionAgeSeconds",{count:l});if(l<3600)return t("live.positionAgeMinutes",{count:Math.floor(l/60)});let e=Math.floor(l/3600),n=Math.floor(l%3600/60);return 0===n?t("live.positionAgeHours",{count:e}):t("live.positionAgeHoursMinutes",{hours:e,minutes:n})}}},70309:(e,t,n)=>{n.d(t,{U$:()=>i,W4:()=>s,dk:()=>a,fB:()=>r});var l=n(12115);function r(e){return Object.freeze({__version:1,map:e})}function s(e,t){return Object.freeze({...e,...t})}let a=(0,l.createContext)(null);function i(){let e=(0,l.use)(a);if(null==e)throw Error("No context provided: useLeafletContext() can only be used in a descendant of <MapContainer>");return e}},76313:(e,t,n)=>{n.d(t,{RF:()=>r});let l=/^(unknown|owner unknown|not applicable|n\/a|rptd sold|reported sold|various|no ism)/i;function r(e){var t;let n=(null!=e?e:"").trim();return!(!n||!(t=n)||l.test(t.trim()))?n:null}},78435:(e,t,n)=>{n.d(t,{A:()=>l});let l=(0,n(71847).A)("BadgeCheck",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},80514:(e,t,n)=>{n.d(t,{K:()=>s,Q:()=>r});var l=n(12115);function r(e,t,n){return Object.freeze({instance:e,context:t,container:n})}function s(e,t){return null==t?function(t,n){let r=(0,l.useRef)(void 0);return r.current||(r.current=e(t,n)),r}:function(n,r){let s=(0,l.useRef)(void 0);s.current||(s.current=e(n,r));let a=(0,l.useRef)(n),{instance:i}=s.current;return(0,l.useEffect)(function(){a.current!==n&&(t(i,n,a.current),a.current=n)},[i,n,t]),s}}},82033:(e,t,n)=>{n.d(t,{V1:()=>i,nQ:()=>o});let l={"general cargo ship":"ÑÑÑ
огÑÑз","bulk carrier":"балкеÑ",tug:"бÑкÑиÑ","oil products tanker":"ÑанкеÑ-пÑодÑкÑовоз","container ship":"конÑейнеÑовоз","chemical/oil products tanker":"Ñ
имовоз-пÑодÑкÑовоз","crude oil tanker":"ÑÐ°Ð½ÐºÐµÑ Ð´Ð»Ñ ÑÑÑой неÑÑи","passenger ship":"паÑÑажиÑÑкое ÑÑдно","offshore supply ship":"ÑÑдно ÑÐ½Ð°Ð±Ð¶ÐµÐ½Ð¸Ñ Ð¼Ð¾ÑÑкиÑ
плаÑÑоÑм","fishing vessel":"ÑÑболовное ÑÑдно","offshore tug/supply ship":"бÑкÑиÑ-ÑнабженеÑ","patrol vessel":"паÑÑÑлÑное ÑÑдно","lpg tanker":"газовоз LPG","refrigerated cargo ship":"ÑеÑÑижеÑаÑоÑное ÑÑдно","landing craft":"гÑÑзовое ÑÑдно Ñ Ð½Ð¾Ñовой аппаÑелÑÑ","research vessel":"наÑÑно-иÑÑледоваÑелÑÑкое ÑÑдно","fish carrier":"ÑÑбоÑÑанÑпоÑÑное ÑÑдно","chemical tanker":"Ñ
имовоз","vehicles carrier":"авÑомобилевоз",yacht:"ÑÑ
Ñа","passenger/ro-ro ship (vehicles)":"паÑÑажиÑÑкий паÑом","ro-ro cargo ship":"ÑолкеÑ","hopper dredger":"ÑамооÑвознÑй земÑнаÑÑд","offshore support vessel":"ÑÑдно обеÑпеÑÐµÐ½Ð¸Ñ Ð¼Ð¾ÑÑкиÑ
плаÑÑоÑм","lng tanker":"газовоз LNG","passenger (cruise) ship":"кÑÑизное ÑÑдно","aggregates carrier":"ÑÑдно Ð´Ð»Ñ Ð¿ÐµÑевозки неÑÑднÑÑ
маÑеÑиалов","deck cargo ship":"ÑÑдно Ð´Ð»Ñ Ð¿Ð°Ð»ÑбнÑÑ
гÑÑзов","pusher tug":"бÑкÑиÑ-ÑолкаÑ","bunkering tanker":"бÑнкеÑовÑик","ore carrier":"ÑÑдовоз","cement carrier":"ÑеменÑовоз","passenger/general cargo ship":"гÑÑзопаÑÑажиÑÑкое ÑÑдно","utility vessel":"вÑпомогаÑелÑное ÑÑдно","motor hopper":"ÑамоÑ
Ð¾Ð´Ð½Ð°Ñ Ñаланда","fish factory ship":"ÑÑбопеÑеÑабаÑÑваÑÑее ÑÑдно","asphalt/bitumen tanker":"биÑÑмовоз","wood chips carrier":"Ñеповоз","livestock carrier":"ÑкоÑовоз","self-discharging bulk carrier":"балкеÑ-ÑамовÑгÑÑжаÑелÑ","heavy load carrier":"ÑÑжеловоз","offshore processing ship":"плавÑÑÐ°Ñ ÑÑÑановка добÑÑи и пеÑеÑабоÑки","fso, oil":"плавÑÑее неÑÑеÑ
ÑанилиÑе (FSO)","water tanker":"водоналивное ÑÑдно","ore/oil carrier":"неÑÑеÑÑдовоз","bulk/oil carrier":"неÑÑенавалоÑное ÑÑдно","passenger/ro-ro cargo ship":"гÑÑзопаÑÑажиÑÑкий паÑом","work/repair vessel":"ÑемонÑное ÑÑдно","fishing support vessel":"ÑÑдно обеÑпеÑÐµÐ½Ð¸Ñ Ð¿ÑомÑÑла","anchor hoy":"ÑÑдно Ð´Ð»Ñ Ð¿Ð¾ÑÑановки ÑкоÑей","supply vessel":"ÑÑдно ÑнабжениÑ","standby-safety vessel":"дежÑÑно-ÑпаÑаÑелÑное ÑÑдно","crane ship":"плавкÑан",dredger:"земÑнаÑÑд","buoy/lighthouse vessel":"ÑÑдно навигаÑионного обеÑпеÑениÑ","accommodation ship offshore support vessel":"жилое ÑÑдно Ð´Ð»Ñ Ð¼Ð¾ÑÑкиÑ
плаÑÑоÑм","pollution control vessel":"ÑÑдно Ð´Ð»Ñ Ð»Ð¸ÐºÐ²Ð¸Ð´Ð°Ñии Ñазливов неÑÑи","limestone carrier":"ÑÑдно Ð´Ð»Ñ Ð¿ÐµÑевозки извеÑÑнÑка","training ship":"ÑÑебное ÑÑдно","search & rescue vessel":"поиÑково-ÑпаÑаÑелÑное ÑÑдно","palletised cargo ship":"паллеÑовоз","drilling ship":"бÑÑовое ÑÑдно","passenger/landing craft":"паÑÑажиÑÑкое ÑÑдно Ñ Ð½Ð¾Ñовой аппаÑелÑÑ","vegetable oil tanker":"ÑÐ°Ð½ÐºÐµÑ Ð´Ð»Ñ ÑаÑÑиÑелÑного маÑла","pipe-layer":"ÑÑÑбоÑкладÑик","mooring vessel":"ÑваÑÑовное ÑÑдно","vessel (function unknown)":"ÑÑдно","pilot vessel":"лоÑманÑкое ÑÑдно","cable-layer":"кабелеÑкладÑик","salvage ship":"ÑпаÑаÑелÑное ÑÑдно","barge carrier":"лиÑ
ÑеÑовоз","well-stimulation vessel":"ÑÑдно Ð´Ð»Ñ Ð¸Ð½ÑенÑиÑикаÑии Ñкважин","wine tanker":"ÑÐ°Ð½ÐºÐµÑ Ð´Ð»Ñ Ð²Ð¸Ð½Ð°","bunkering tanker (lng)":"бÑнкеÑовÑик LNG","edible oil tanker":"ÑÐ°Ð½ÐºÐµÑ Ð´Ð»Ñ Ð¿Ð¸ÑевÑÑ
маÑел","waste disposal vessel":"ÑÑдно Ð´Ð»Ñ ÑбоÑа оÑÑ
одов",crewboat:"ÑÑдно Ð´Ð»Ñ Ð¿ÐµÑевозки пеÑÑонала",icebreaker:"ледокол","fruit juice carrier- refrigerated":"Ñоковоз","bulk dry storage ship":"плавÑÑий Ñклад ÑÑпÑÑиÑ
гÑÑзов","whale-catcher":"киÑобойное ÑÑдно","power station vessel":"плавÑÑÐ°Ñ ÑлекÑÑоÑÑанÑиÑ","container ro-ro cargo ship":"конÑейнеÑовоз-ÑолкеÑ","production testing vessel":"ÑÑдно Ð´Ð»Ñ Ð¸ÑпÑÑаний Ñкважин","fire-fighting vessel":"пожаÑное ÑÑдно","mining vessel":"добÑваÑÑее ÑÑдно","cable repair ship":"кабелÑное ÑÑдно","exhibition vessel":"вÑÑÑавоÑное ÑÑдно","tank-cleaning vessel":"ÑÑдно Ð´Ð»Ñ Ð·Ð°ÑиÑÑки Ñанков","combination gas tanker (lng/lpg)":"газовоз LNG/LPG","co2 tanker":"ÑÐ°Ð½ÐºÐµÑ Ð´Ð»Ñ CO2","powder carrier":"ÑÑдно Ð´Ð»Ñ Ð¿Ð¾ÑоÑковÑÑ
гÑÑзов","molasse
1s tanker":"ÑÐ°Ð½ÐºÐµÑ Ð´Ð»Ñ Ð¼ÐµÐ»Ð°ÑÑÑ","urea carrier":"ÑÑдно Ð´Ð»Ñ ÐºÐ°Ñбамида","water injection dredger":"водоÑÑÑÑйнÑй земÑнаÑÑд","pipe burying vessel":"ÑÑдно Ð´Ð»Ñ Ð·Ð°Ð³Ð»ÑÐ±Ð»ÐµÐ½Ð¸Ñ ÑÑÑбопÑоводов","bulk/caustic soda carrier (cabu)":"балкеÑ-ÑÐ°Ð½ÐºÐµÑ Ð´Ð»Ñ ÐºÐ°ÑÑÑиÑеÑкой ÑодÑ","passenger/container ship":"паÑÑажиÑÑкое ÑÑдно-конÑейнеÑовоз","seal-catcher":"звеÑобойное ÑÑдно","bunkering tanker (lng/oil)":"бÑнкеÑовÑик (LNG и неÑÑепÑодÑкÑÑ)","wind turbine installation vessel":"ÑÑдно Ð´Ð»Ñ ÑÑÑановки веÑÑогенеÑаÑоÑов","hospital vessel":"гоÑпиÑалÑное ÑÑдно","trans-shipment vessel":"ÑÑдно-пеÑегÑÑжаÑелÑ","pulp carrier":"ÑеллÑлозовоз","nuclear fuel carrier":"ÑÑдно Ð´Ð»Ñ Ð¿ÐµÑевозки ÑдеÑного Ñоплива","caprolactam tanker":"ÑÐ°Ð½ÐºÐµÑ Ð´Ð»Ñ ÐºÐ°Ð¿ÑолакÑама","sailing vessel":"паÑÑÑное ÑÑдно","beer tanker":"ÑÐ°Ð½ÐºÐµÑ Ð´Ð»Ñ Ð¿Ð¸Ð²Ð°","refined sugar carrier":"ÑаÑ
аÑовоз","bulk/sulphuric acid carrier":"балкеÑ-ÑÐ°Ð½ÐºÐµÑ Ð´Ð»Ñ ÑеÑной киÑлоÑÑ","fso, gas":"плавÑÑее газоÑ
ÑанилиÑе (FSO)","bulk/oil/chemical carrier":"неÑÑеÑÑдоÑ
имовоз","general cargo":"ÑÑÑ
огÑÑз","sail training ship":"паÑÑÑное ÑÑебное ÑÑдно","trenching support vessel":"ÑÑдно Ð´Ð»Ñ ÑÑанÑейнÑÑ
ÑабоÑ","oil-sludge tanker":"ÑÐ°Ð½ÐºÐµÑ Ð´Ð»Ñ Ð½ÐµÑÑеÑлама","coal/oil mixture tanker":"ÑÐ°Ð½ÐºÐµÑ Ð´Ð»Ñ Ð²Ð¾Ð´Ð¾ÑголÑной ÑмеÑи","launch (unspecified)":"каÑеÑ","kelp dredger":"ÑÑдно Ð´Ð»Ñ Ð´Ð¾Ð±ÑÑи водоÑоÑлей","not otherwise specified":"не клаÑÑиÑиÑиÑовано","chemical/products tanker":"Ñ
имовоз-пÑодÑкÑовоз","passenger/ro-ro ship":"паÑÑажиÑÑкий паÑом","general dry cargo ship":"ÑÑÑ
огÑÑз","cargo ship":"гÑÑзовое ÑÑдно","oil tanker":"неÑÑÑной ÑанкеÑ","tanker for oil":"неÑÑÑной ÑанкеÑ","multi-purpose dry cargo ship":"многоÑелевой ÑÑÑ
огÑÑз","general cargo (single deck)":"однопалÑбнÑй ÑÑÑ
огÑÑз","tanker for chemicals and oil products":"Ñ
имовоз-пÑодÑкÑовоз","tanker for oil and chemicals":"неÑÑеÑ
имовоз","oil/chemical tanker":"неÑÑеÑ
имовоз","liquefied gas carrier":"газовоз","liquefied gas carrier (lng)":"газовоз LNG","liquefied gas carrier (lpg)":"газовоз LPG","vehicle carrier":"авÑомобилевоз","multi purpose offshore vessel":"многоÑелевое ÑÑдно обеÑпеÑÐµÐ½Ð¸Ñ Ð¿Ð»Ð°ÑÑоÑм","high-speed craft":"ÑкоÑоÑÑное ÑÑдно","refrigerated cargo carrier":"ÑеÑÑижеÑаÑоÑное ÑÑдно","tug boat":"бÑкÑиÑ","roro ship":"ÑолкеÑ","bitumen tanker":"биÑÑмовоз"};function r(e){return(null!=e?e:"").split("|")[0].trim().toLowerCase().replace(/\s+/g," ")}function s(e){var t;let n=r(e);return n&&null!=(t=l[n])?t:null}let a=e=>e.charAt(0).toUpperCase()+e.slice(1);function i(e,t){let n=(null!=e?e:"").split("|")[0].trim();if(!n)return null;if("ru"!==t)return n;let l=s(n);return l?a(l):n}function o(e,t,n){let i,o=!(!(i=(null!=e?e:"").trim())||!(i=(i=(i=i.replace(/^\d{2,4}\s*-\s*/,"")).replace(/\s*'[^']*'/g,"").replace(/\s*\((?:CSR|FBC|ESP|DOUBLE HULL|SINGLE HULL)\)/gi,"")).replace(/\s+/g," ").trim().toLowerCase())||/^standard type/.test(i))?i:null;if(!o||o===r(t))return null;if("ru"===n){let e=l[o];return e&&e!==s(t)?a(e):null}return a(o)}},85452:(e,t,n)=>{n.d(t,{P:()=>l});function l(e,t){let n=e.pane??t.pane;return n?{...e,pane:n}:e}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.