1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3185],{65531:function(e,t,s){"use strict";s.d(t,{Z:function(){return u}});var n=s(2265);/** 2 * @license lucide-react v0.511.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */let r=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),a=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,s)=>s?s.toUpperCase():t.toLowerCase()),i=e=>{let t=a(e);return t.charAt(0).toUpperCase()+t.slice(1)},o=(...e)=>e.filter((e,t,s)=>!!e&&""!==e.trim()&&s.indexOf(e)===t).join(" ").trim(),l=e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0};/** 7 * @license lucide-react v0.511.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */var c={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** 12 * @license lucide-react v0.511.0 - ISC 13 * 14 * This source code is licensed under the ISC license. 15 * See the LICENSE file in the root directory of this source tree. 16 */let d=(0,n.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:s=2,absoluteStrokeWidth:r,className:a="",children:i,iconNode:d,...u},m)=>(0,n.createElement)("svg",{ref:m,...c,width:t,height:t,stroke:e,strokeWidth:r?24*Number(s)/Number(t):s,className:o("lucide",a),...!i&&!l(u)&&{"aria-hidden":"true"},...u},[...d.map(([e,t])=>(0,n.createElement)(e,t)),...Array.isArray(i)?i:[i]])),u=(e,t)=>{let s=(0,n.forwardRef)(({className:s,...a},l)=>(0,n.createElement)(d,{ref:l,iconNode:t,className:o(`lucide-${r(i(e))}`,`lucide-${e}`,s),...a}
16));return s.displayName=i(e),s}},68004:function(e,t,s){"use strict";s.d(t,{Z:function(){return r}});var n=s(65531);let r=(0,n.Z)("menu",[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]])},82549:function(e,t,s){"use strict";s.d(t,{Z:function(){return r}});var n=s(65531);let r=(0,n.Z)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},490:function(e,t,s){Promise.resolve().then(s.bind(s,49636)),Promise.resolve().then(s.t.bind(s,70955,23)),Promise.resolve().then(s.bind(s,86185)),Promise.resolve().then(s.bind(s,99954)),Promise.resolve().then(s.bind(s,20612)),Promise.resolve().then(s.bind(s,71379)),Promise.resolve().then(s.t.bind(s,68326,23))},26127:function(e,t,s){"use strict";s.d(t,{C:function(){return r},c:function(){return n}});let n=async(e,t,n)=>{var r;t({webRtc:!0});let a=await s.e(250).then(s.t.bind(s,50250,23)),i=null!==(r=a.default)&&void 0!==r?r:a,o=!1;i.DetectLocalIPAddress(t=>{if(!o){if(void 0===t){o=!0,e(null);return}-1!==t.indexOf("Local")?e({title:"Your WebRTC Private IP Address",response:t}):e({title:"Your WebRTC Public IP Address",response:t}),o=!0,n&&(n.getTracks().forEach(e=>e.stop()),n=void 0)}}),t({webRtc:!1})},r=async(e,t,r)=>{var a;let i=await s.e(250).then(s.t.bind(s,50250,23)),o=null!==(a=i.default)&&void 0!==a?a:i;o.load(async function(){let s=o.hasSpeakers?"YEP\n":"NOPE\n";if(o.audioOutputDevices.length>0){s+=" Found speaker devices: "+o.audioOutputDevices.length+"\n";let e=[];o.audioOutputDevices.forEach(function(t){"Edge"===o.browser.name&&t.isCustomLabel&&(t.label="Microsoft Edge is unable to detect label for this speaker device.\n"),e.push(t.label)}),s+=" "+e.join(", \n")}let a=o.hasMicrophone?"YEP\n":"NOPE\n";if(o.audioInputDevices.length>0){a+=" Found microphone devices: "+o.audioInputDevices.length+"\n";let e=[];o.audioInputDevices.forEach(function(t){e.push(t.label)}),a+=" "+e.join(",\n")}let i=o.hasWebcam?"YEP\n":"NOPE\n";if(o.videoInputDevices.length>0){i+=" Found webcam devices: "+o.videoInputDevices.length+"\n";let e=[];o.videoInputDevices.forEach(function(t){e.push(t.label)}),i+=" "+e.join(",\n")}let l=o.isWebSocketsBlocked?"YEP\n":"NOPE\n";o.checkWebSocketsSupport(()=>{l=o.isWebSocketsBlocked?"YEP":"NOPE"});let c=[{title:"Is Browser Supports Promises?",response:o.isPromisesSupported?"YEP":"NOPE"},{title:"Is Browser Supports Stream Capturing from Video?",response:o.isVideoSupportsStreamCapturing?"YEP":"NOPE"},{title:"Is Browser Supports Stream Capturing from Canvas?",response:o.isVideoSupportsStreamCapturing?"YEP":"NOPE"},{title:"Is it a mobile device?",response:o.isMobileDevice?"YEP":"NOPE"},{title:"Is this browser supports multi-monitor selection & capturing screen of any monitor?",response:o.isMultiMonitorScreenCapturingSupported?"YEP":"NOPE"},{title:"This page Supports Screen Capturing API?",response:o.isScreenCapturingSupported?"YEP":"NOPE"},{title:"Browser Supports RTP Data Channels?",response:o.isRtpDataChannelsSupported?"YEP":"NOPE"},{title:"Browser Supports SCTP Data Channels?",response:o.isSctpDataChannelsSupported?"YEP":"NOPE"},{title:"Browser Supports WebAudio API?",response:o.isAudioContextSupported?"YEP":"NOPE"},{title:"Your system blocked WebSockets protocol or WebSockets server is not accessible?",response:l},{title:"Browser Supports WebSockets API?",response:o.isWebSocketsSupported?"YEP":"NOPE"},{title:"Can your browser record remote audio or process remote audio stream in WebAudio API?",response:o.isRemoteStreamProcessingSupported?"YEP":"NOPE"},{title:"Can you replace tracks without renegotiating peers?",response:o.isRTPSenderReplaceTracksSupported?"YEP":"NOPE"},{title:"Browser Supports ORTC (WebRTC 1.1)?",response:o.isORTCSupported?"YEP":"NOPE"},{title:"Browser Supports WebRTC (Either 1.0 or 1.1)?",response:o.isWebRTCSupported?"YEP":"NOPE"},{title:"Can you change camera resolutions without making new getUserMedia request?",response:o.isApplyConstraintsSupported?"YEP":"NOPE"},{title:"Can you change output audio devices?",response:o.isSetSinkIdSupported?"YEP":"NOPE"},{title:"Browser allows getUserMedia on this page?",response:o.isGetUserMediaSupported?"YEP":"NOPE"},{title:"Website has microphone permissions?",response:o.isWebsiteHasMicrophonePermissions?"YEP":"NOPE"},{title:"Website has webcam permissions?",response:o.isWebsiteHasWebcamPermissions?"YEP":"NOPE"},{title:"System has Webcam?",response:i},{title:"System has Microphone?",response:a},{title:"System has Speakers?",response:s},{title:"Display aspect ratio",response:o.displayAspectRatio}
16,{title:"Display resolutions",response:o.displayResolution},{title:"Browser",response:"".concat(o.browser.name,", version: ").concat(o.browser.fullVersion)},{title:"Operating System",response:"".concat(o.osName,", version: ").concat(o.osVersion)}];if(t(c),"Edge"===o.browser.name)try{let t=await navigator.mediaDevices.getUserMedia({video:!0});await n(e,r,t)}catch(t){await n(e,r)}else await n(e,r)})}},403:function(e,t,s){"use strict";s.d(t,{QZ:function(){return i},Vn:function(){return o},YO:function(){return a},r_:function(){return l}});var n=s(43917),r=s(49636);let a=async(e,t)=>{try{let s=new AbortController,r=setTimeout(()=>s.abort(),5e3);t({ip4:!0});let a=await Promise.any([fetch(n.GH[0],{signal:s.signal}),fetch(n.GH[1],{signal:s.signal})]);clearTimeout(r);let i=await a.text();e(i)}catch(t){e(null)}t({ip4:!1})},i=async(e,t)=>{try{let s=new AbortController,r=setTimeout(()=>s.abort(),5e3);t({ip6:!0});let a=await fetch(n.QV,{signal:s.signal});clearTimeout(r);let i=await a.text();e(i)}catch(t){e(null)}t({ip6:!1})},o=async(e,t,s)=>{t({self:!0});let a=await s(r.Methods.post,n.Wn,null);if((null==a?void 0:a.retcode)===200){var i;let t=null==a?void 0:a.ip[0];e({ip:t,data:null==a?void 0:null===(i=a.data)||void 0===i?void 0:i[t]})}else(null==a?void 0:a.error)&&e(null);t({self:!1})},l=e=>{setTimeout(async()=>{try{await fetch("".concat("https://api2.ip8.com").concat(n.qu),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({result:e})})}catch(e){}},5e3)}},86185:function(e,t,s){"use strict";s.r(t),s.d(t,{AddGa:function(){return l}});var n=s(57437),r=s(49636),a=s(2265);let i="ca-pub-1031368385756464",o="G-KGGP201HGL",l=()=>{let{state:e}=(0,a.useContext)(r.AppContext),{isPremium:t}=e;return(0,a.useEffect)(()=>{let e=document.createElement("script"),s=document.createElement("script"),n=document.createElement("script");return void 0!==o&&o&&(e.async=!0,e.src="https://www.googletagmanager.com/gtag/js?id=".concat(o),s.textContent="\n window.dataLayer = window.dataLayer || [];\n function gtag() {\n dataLayer.push(arguments);\n }\n gtag('js', new Date());\n gtag('config', '".concat(o,"');\n "),document.body.appendChild(e),document.body.appendChild(s)),void 0!==i&&i&&!t&&(n.async=!0,n.src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js",n.crossOrigin="anonymous",n.id="pagead",n.setAttribute("data-ad-client",i),document.head.appendChild(n)),()=>{e.remove(),s.remove(),n.remove()}},[t]),(0,n.jsx)(n.Fragment,{})}},71379:function(e,t,s){"use strict";s.r(t),s.d(t,{Navigation:function(){return j}});var n=s(57437),r=s(2265),a=s(65531);let i=(0,a.Z)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]),o=(0,a.Z)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),l=(0,a.Z)("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]),c=(0,a.Z)("log-out",[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]),d=(0,a.Z)("log-in",[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]]);var u=s(82549),m=s(68004),p=s(49636),h=s(61396),x=s.n(h);let f=e=>{let{onClick:t}=e;return(0,n.jsx)(x(),{href:"/",className:"flex items-center gap-2",onClick:t,children:(0,n.jsx)("img",{src:"/ip8.svg",alt:"IP8 Logo",className:"h-8 w-auto"})})};var b=s(24033),g=s(73830),v=s(64239),y=s(26127),w=s(403),N=s(57042);let j=e=>{let{items:t}=e,[s,a]=(0,r.useState)(!1),[h,j]=(0,r.useState)(!1),[P,S]=(0,r.useState)(!1),C=(0,r.useRef)(null),{state:O,dispatch:D,fetchCommon:A}=(0,r.useContext)(p.AppContext),{isAuthenticated:I}=O,Y=(0,b.useRouter)(),W=(0,b.usePathname)(),_=e=>{D({type:v.cS,payload:e})},R=e=>{D({type:v.rA,payload:e})},M=e=>{D({type:v.cQ,payload:e})},T=e=>{D({type:v.$D,payload:e})},L=e=>{D({type:v.zm,payload:e})},Z=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];D({type:v.Ic}),(0,y.c)(L,_),(0,w.YO)(R,_),e||((0,w.Vn)(T,_,A),(0,w.QZ)(M,_),D({type:v.QU}))},B=async()=>{await (0,p.logout)(D,Y)};(0,r.useEffect)(()=>{let e=()=>{j(window.scrollY>0)},t=e=>{C.current&&!C.current.contains(e.target)&&S(!1)};return window.addEventListener("scroll",e),document.addEventListener("mousedown",t),()=>{window.removeEventListener("scroll",e),document.removeEventListener("mousedown",t)}},[]);let H=t.filter(e=>"sign-in"!==e.id);return(0,n.jsxs)("nav",{className:(0,N.Z)("fixed top-0 left-0 right-0 z-50 transition-all duration-200 bg-slate-50",{"shadow-md":h}),children:[(0,n.jsx)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:(0,n.jsxs)("div",{className:"flex justify-between h-16",children:[(0,n.jsx)("div",{className:"flex-shrink-0 flex items-center",children:(0,n.jsx)(f,{onClick:()=>{a(!1),Z()}})}),(0,n.jsxs)("div",{className:"hidden md:flex md:items-center md:space-x-4",children:[(0,n.jsx)("ul",{className:"flex space-x-1",children:H.map(e=>(0,n.jsx)(k,{item:e,pathname:W,onClickHandler:"privacy-tests"===e.id||"home"===e.id?()=>Z("home"!==e.id):null},e.id))}),I?(0,n.jsxs)("div",{className:"relative",ref:C,children:[(0,n.jsxs)("button",{onClick:()=>S(!P),"data-test":"user-menu-button",className:"flex items-center gap-2 px-4 py-2 rounded-md text-gray-700 hover:text-blue-600 hover:bg-gray-50 transition-colors duration-150",children:[(0,n.jsx)(i,{className:"h-5 w-5"}),(0,n.jsx)("span",{className:"font-medium ".concat(W===g.yV?"active":""),children:" Account"}),(0,n.jsx)(o,{className:"h-4 w-4 transition-transform duration-200 ".concat(P?"rotate-180":"")})]}),P&&(0,n.jsx)("div",{className:"absolute right-0 mt-2 w-48 rounded-md shadow-lg bg-[#00AAD9] ring-1 ring-black ring-opacity-5",children:(0,n.jsxs)("div",{className:"py-1",children:[(0,n.jsxs)(x(),{href:g.yV,onClick:()=>{S(!1)},"data-test":"dashboard-button",className:"flex items-center gap-2 px-4 py-2 text-sm text-white hover:bg-blue-600",children:[(0,n.jsx)(l,{className:"h-4 w-4"}),"Dashboard"]}),(0,n.jsxs)("button",{"data-test":"logout-button",onClick:()=>{B(),S(!1)},className:"flex items-center gap-2 w-full text-left px-4 py-2 text-sm text-white hover:bg-blue-600",children:[(0,n.jsx)(c,{className:"h-4 w-4"}),"Logout"]})]})})]}):(0,n.jsxs)(x(),{href:g.ym,"data-test":"sign-in-button",className:(0,N.Z)("flex items-center gap-2 px-4 py-2 rounded-md text-gray-700 hover:text-blue-600 hover:bg-gray-50 transition-colors duration-150",{active:W===g.ym}),children:[(0,n.jsx)(d,{className:"h-5 w-5"}),(0,n.jsx)("span",{className:"font-medium",children:"Sign In"})]})]}),(0,n.jsx)("div",{className:"flex items-center md:hidden",children:(0,n.jsxs)("button",{type:"button","data-test":"mobile-menu-button",className:"inline-flex items-center justify-center p-2 rounded-md text-gray-700 hover:text-gray-900 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-blue-500","aria-expanded":s,onClick:()=>{a(!s)},children:[(0,n.jsx)("span",{className:"sr-only",children:s?"Close main menu":"Open main menu"}),s?(0,n.jsx)(u.Z,{className:"block h-6 w-6","aria-hidden":"true","data-test":"mobile-menu-close-button"}):(0,n.jsx)(m.Z,{className:"block h-6 w-6","aria-hidden":"true","data-test":"mobile-menu-open-button"})]})})]})}),(0,n.jsx)("div",{className:"".concat(s?"translate-x-0":"-translate-x-full"," fixed inset-0 z-40 w-full bg-white transform transition-transform duration-300 ease-in-out md:hidden"),style:{to
16p:"64px"},children:(0,n.jsx)("div",{className:"h-full overflow-y-auto pb-12 pt-2",children:(0,n.jsxs)("div",{className:"space-y-1 px-4",children:[H.map(e=>(0,n.jsx)(E,{item:e,closeMenu:()=>a(!1),pathname:W,onClickHandler:"privacy-tests"===e.id||"home"===e.id?()=>Z("home"!==e.id):null},e.id)),I?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(x(),{href:g.yV,onClick:()=>{a(!1)},className:(0,N.Z)("text-gray-900 hover:text-blue-600 font-medium block px-3 py-2 text-base flex items-center gap-2",{active:W===g.yV}),children:[(0,n.jsx)(l,{className:"h-5 w-5"}),"Dashboard"]}),(0,n.jsxs)("button",{"data-test":"logout-button",onClick:B,className:"w-full text-left text-gray-900 hover:text-blue-600 font-medium block px-3 py-2 text-base flex items-center gap-2",children:[(0,n.jsx)(c,{className:"h-5 w-5"}),"Logout"]})]}):(0,n.jsxs)(x(),{"data-test":"login-button",href:g.ym,onClick:()=>{a(!1)},className:"text-gray-900 hover:text-blue-600 font-medium block px-3 py-2 text-base flex items-center gap-2",children:[(0,n.jsx)(d,{className:"h-5 w-5"}),"Sign In"]})]})})})]})},k=e=>{var t;let{item:s,onClickHandler:a,pathname:i}=e,[l,c]=(0,r.useState)(!1),d=(0,r.useRef)(null),u=(0,r.useRef)(null),m=s.children&&s.children.length>0;(0,r.useEffect)(()=>{let e=e=>{u.current&&!u.current.contains(e.target)&&c(!1)};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[]);let p=s.children&&s.children.length>0?s.children.some(e=>i===e.url):i===s.url;return(0,n.jsxs)("li",{className:"relative group",ref:u,onMouseEnter:()=>{d.current&&window.clearTimeout(d.current),c(!0)},onMouseLeave:()=>{d.current=window.setTimeout(()=>{c(!1)},150)},onClick:()=>{"home"===s.id&&a&&a()},children:[m?(0,n.jsxs)("div",{"data-test":"".concat(s.id,"-button"),className:(0,N.Z)("px-4 py-2 rounded-md text-base font-medium flex items-center gap-1 transition-colors duration-150 ".concat(l?"text-blue-600 bg-gray-50":"text-gray-900 hover:text-blue-600"),p?"active":""),children:[s.label,(0,n.jsx)(o,{size:16,className:"transition-transform duration-200 ".concat(l?"rotate-180 text-blue-600":"text-gray-400")})]}):(0,n.jsx)(x(),{href:s.url,"data-test":"".concat(s.id,"-button"),className:(0,N.Z)("px-4 py-2 rounded-md text-base font-medium flex items-center gap-1 transition-colors duration-150 ".concat(l?"text-blue-600 bg-gray-50":"text-gray-900 hover:text-blue-600"),p?"active":""),children:s.label}),m&&l&&(0,n.jsx)("div",{className:"absolute top-full left-0 z-10 w-56 mt-1 bg-[#00AAD9] rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none",style:{animation:"fadeIn 0.2s ease-out",transformOrigin:"top center"},children:(0,n.jsx)("div",{className:"py-2 grid gap-1",children:null===(t=s.children)||void 0===t?void 0:t.map(e=>(0,n.jsx)(x(),{"data-test":"".concat(e.id,"-button"),onClick:()=>{("webrtc-leak-test"===e.id||"account-leak-test"===e.id)&&a&&a()},href:e.url,className:"px-4 py-2 text-sm text-white hover:bg-blue-600 transition-colors duration-150 flex items-center gap-2",children:e.label},e.id))})})]})},E=e=>{var t,s;let{item:a,closeMenu:i,onClickHandler:l,pathname:c}=e,[d,u]=(0,r.useState)(!1),m=a.children&&a.children.length>0,p=m?null===(t=a.children)||void 0===t?void 0:t.some(e=>c===e.url):c===a.url;return(0,n.jsxs)("div",{className:"py-2",children:[(0,n.jsxs)("div",{className:"flex justify-between items-center",children:[m?(0,n.jsx)("div",{onClick:()=>{u(!d)},className:(0,N.Z)("text-gray-900 cursor-pointer hover:text-blue-600 font-medium block px-3 py-2 text-base flex items-center gap-2",{active:p}),children:a.label}):(0,n.jsx)(x(),{href:a.url,onClick:()=>{i(),u(!1),"home"===a.id&&l&&l()},className:(0,N.Z)("text-gray-900 hover:text-blue-600 font-medium block px-3 py-2 text-base flex items-center gap-2",{active:p}),children:a.label}),m&&(0,n.jsx)("button",{className:"p-2 text-gray-500 hover:text-gray-900 focus:outline-none",onClick:()=>u(!d),children:(0,n.jsx)(o,{className:"h-5 w-5 transform transition-transform duration-200 ".concat(d?"rotate-180":"")})})]}),m&&d&&(0,n.jsx)("div",{className:"mt-2 space-y-2 pl-6 bg-[#00AAD9] rounded-lg",children:null===(s=a.children)||void 0===s?void 0:s.map(e=>(0,n.jsx)(x(),{href:e.url,onClick:()=>{i(),u(!1),("webrtc-leak-test"===e.id||"account-leak-test"===e.id)&&l&&l()},className:"text-white hover:bg-blue-600 block px-3 py-2 text-sm font-medium",children:e.label},e.id))})]})}},99954:function(e,t,s){"use strict";s.r(t);var n=s(57437),r=s(2265),a=s(61396),i=s.n(a),o=s(24033),l=s(73830);let c="ext_banner_dismissed_at";t.default=()=>{let e=(0,o.usePathname)(),[t,s]=(0,r.useState)(!0);return((0,r.useEffect)(()=>
16{if(e===l.gj){s(!0);return}try{let e=localStorage.getItem(c);if(e){let t=parseInt(e,10);if(!Number.isNaN(t)&&Date.now()-t<6048e5){s(!0);return}}s(!1)}catch(e){s(!1)}},[e]),t)?null:(0,n.jsx)("div",{className:"banner-gradient banner-shine relative w-full mb-4 rounded-xl shadow-md overflow-hidden text-white bg-gradient-to-r from-indigo-600 via-blue-500 to-cyan-500",children:(0,n.jsxs)("div",{className:"relative z-10 flex items-center justify-between gap-3 px-3 sm:px-4 py-2 sm:py-2.5",children:[(0,n.jsxs)(i(),{href:l.gj,className:"flex items-center gap-3 min-w-0 group",children:[(0,n.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:"w-7 h-7 flex-none drop-shadow","aria-hidden":"true",children:(0,n.jsx)("path",{d:"M20.5 13H19v-2.5a1.5 1.5 0 0 0-1.5-1.5H14v-1a2 2 0 1 0-4 0v1H6.5A1.5 1.5 0 0 0 5 10.5V14h1a2 2 0 1 1 0 4H5v3.5A1.5 1.5 0 0 0 6.5 23H10v-1.5a2 2 0 1 1 4 0V23h3.5a1.5 1.5 0 0 0 1.5-1.5V18h1.5a2 2 0 1 0 0-4v-1z"})}),(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsxs)("div",{className:"text-sm sm:text-base font-semibold leading-tight",children:[(0,n.jsx)("span",{className:"hidden sm:inline",children:"ip8 in your browser â "}),(0,n.jsx)("span",{children:"IP, DNS & WebRTC tools, one click away"})]}),(0,n.jsx)("div",{className:"hidden sm:block text-xs text-white/85 mt-0.5",children:"Free Chrome & Firefox extension. No account needed."})]})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 flex-none",children:[(0,n.jsxs)(i(),{href:l.gj,className:"banner-cta px-3 sm:px-4 py-1.5 bg-white text-blue-700 text-sm font-semibold rounded-full hover:bg-blue-50 transition-colors whitespace-nowrap shadow",children:[(0,n.jsx)("span",{className:"sm:hidden",children:"Get it"}),(0,n.jsx)("span",{className:"hidden sm:inline",children:"Get the extension"})]}),(0,n.jsx)("button",{type:"button",onClick:()=>{try{localStorage.setItem(c,String(Date.now()))}catch(e){}s(!0)},"aria-label":"Dismiss banner for 7 days",title:"Dismiss for 7 days",className:"w-8 h-8 flex items-center justify-center rounded-full text-white/85 hover:bg-white/15 hover:text-white transition-colors text-xl leading-none",children:"\xd7"})]})]})})}},20612:function(e,t,s){"use strict";s.r(t);var n=s(57437),r=s(2265),a=s(61396),i=s.n(a),o=s(24033),l=s(73830);let c="movers_banner_dismissed",d=Date.parse("2026-08-24T00:00:00Z");t.default=()=>{let e=(0,o.usePathname)(),[t,s]=(0,r.useState)(!0);return((0,r.useEffect)(()=>{if(Date.now()>=d||(null==e?void 0:e.startsWith(l.BC))){s(!0);return}try{if("1"===localStorage.getItem(c)){s(!0);return}s(!1)}catch(e){s(!1)}},[e]),t)?null:(0,n.jsx)("div",{className:"banner-gradient banner-shine relative w-full mb-4 rounded-xl shadow-md overflow-hidden text-white bg-gradient-to-r from-emerald-600 via-teal-500 to-sky-500",children:(0,n.jsxs)("div",{className:"relative z-10 flex items-center justify-between gap-3 px-3 sm:px-4 py-2 sm:py-2.5",children:[(0,n.jsxs)(i(),{href:l.BC,className:"flex items-center gap-3 min-w-0 group",children:[(0,n.jsxs)("span",{className:"flex items-center gap-1.5 flex-none",children:[(0,n.jsx)("span",{className:"movers-bob-up text-emerald-100 text-base font-bold leading-none","aria-hidden":"true",children:"â²"}),(0,n.jsxs)("svg",{viewBox:"0 0 40 24",className:"w-10 h-7 flex-none drop-shadow","aria-hidden":"true",children:[(0,n.jsx)("polyline",{points:"2,20 11,14 18,17 27,7 38,4",fill:"none",stroke:"currentColor",strokeWidth:"2.2",strokeLinecap:"round",strokeLinejoin:"round"}),(0,n.jsx)("circle",{className:"movers-dot",cx:"38",cy:"4",r:"2.8",fill:"#fff"})]}),(0,n.jsx)("span",{className:"movers-bob-down text-rose-100 text-base font-bold leading-none","aria-hidden":"true",children:"â¼"})]}),(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsxs)("div",{className:"text-sm sm:text-base font-semibold leading-tight",children:[(0,n.jsx)("span",{className:"hidden sm:inline",children:"New â "}),(0,n.jsx)("span",{children:"Domain Movers: whoâs rising & falling on the web"})]}),(0,n.jsx)("div",{className:"hidden sm:block text-xs text-white/85 mt-0.5",children:"Daily risers & fallers across the top 1M domains. Search any domainâs rank history."})]})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 flex-none",children:[(0,n.jsxs)(i(),{href:l.BC,className:"banner-cta px-3 sm:px-4 py-1.5 bg-white text-teal-700 text-sm font-semibold rounded-full hover:bg-teal-50 transition-colors whitespace-nowrap shadow",children:[(0,n.jsx)("span",{className:"sm:hidden",children:"Explore"}),(0,n.jsx)("span",{className:"hidden sm:inline",children:"Explore movers"})]}),(0,n.jsx)("button",{type:"button",onClick:()=>{try{localStorage.setItem(c,"1")}catch(e){}s(!0)},"aria-label":"Dismiss banner",title:"Dismiss",className:"w-8 h-8 flex items-center justify-center rounded-full text-white/85 hover:bg-white/15 hover:text-white transition-colors text-xl leading-none",children:"\xd7"})]})]})})}},70955:function(){},30622:function(e,t,s){"use strict";
16var n=s(2265),r=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,o=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,s){var n,a={},c=null,d=null;for(n in void 0!==s&&(c=""+s),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(d=t.ref),t)i.call(t,n)&&!l.hasOwnProperty(n)&&(a[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps)void 0===a[n]&&(a[n]=t[n]);return{$$typeof:r,type:e,key:c,ref:d,props:a,_owner:o.current}}t.Fragment=a,t.jsx=c,t.jsxs=c},57437:function(e,t,s){"use strict";e.exports=s(30622)},61396:function(e,t,s){e.exports=s(68326)},24033:function(e,t,s){e.exports=s(50094)},57042:function(e,t,s){"use strict";t.Z=function(){for(var e,t,s=0,n="";s<arguments.length;)(e=arguments[s++])&&(t=function e(t){var s,n,r="";if("string"==typeof t||"number"==typeof t)r+=t;else if("object"==typeof t){if(Array.isArray(t))for(s=0;s<t.length;s++)t[s]&&(n=e(t[s]))&&(r&&(r+=" "),r+=n);else for(s in t)t[s]&&(r&&(r+=" "),r+=s)}return r}(e))&&(n&&(n+=" "),n+=t);return n}}},function(e){e.O(0,[8326,9636,2971,2472,1744],function(){return e(e.s=490)}),_N_E=e.O()}]);
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.