vendor: 3,063 bytes, line 1
1var G,oe=-1,B=function(e){addEventListener("pageshow",(function(t){t.persisted&&(oe=t.timeStamp,e(t))}),!0)},J=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},$=function(){var e=J();return e&&e.activationStart||0},_=function(e,t){var i=J(),r="navigate";return oe>=0?r="back-forward-cache":i&&(document.prerendering||$()>0?r="prerender":document.wasDiscarded?r="restore":i.type&&(r=i.type.replace(/_/g,"-"))),{name:e,value:t===void 0?-1:t,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:r}},N=function(e,t,i){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver((function(n){Promise.resolve().then((function(){t(n.getEntries())}))}));return r.observe(Object.assign({type:e,buffered:!0},i||{})),r}}catch{}},k=function(e,t,i,r){var n,a;return function(u){t.value>=0&&(u||r)&&((a=t.value-(n||0))||n===void 0)&&(n=t.value,t.delta=a,t.rating=(function(l,f){return l>f[1]?"poor":l>f[0]?"needs-improvement":"good"})(t.value,i),e(t))}},V=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},F=function(e){document.addEventListener("visibilitychange",(function(){document.visibilityState==="hidden"&&e()}))},z=function(e){var t=!1;return function(){t||(e(),t=!0)}},L=-1,Y=function(){return document.visibilityState!=="hidden"||document.prerendering?1/0:0},M=function(e){document.visibilityState==="hidden"&&L>-1&&(L=e.type==="visibilitychange"?e.timeStamp:0,fe())},Z=function(){addEventListener("visibilitychange",M,!0),addEventListener("prerenderingchange",M,!0)},fe=function(){removeEventListener("visibilitychange",M,!0),removeEventListener("prerenderingchange",M,!0)},ae=function(){return L<0&&(L=Y(),Z(),B((function(){setTimeout((function(){L=Y(),Z()}),0)}))),{get firstHiddenTime(){return L}}},D=function(e){document.prerendering?addEventListener("prerenderingchange",(function(){return e()}),!0):e()},ee=[1800,3e3],se=function(e,t){t=t||{},D((function(){var i,r=ae(),n=_("FCP"),a=N("paint",(function(u){u.forEach((function(l){l.name==="first-contentful-paint"&&(a.disconnect(),l.startTime<r.firstHiddenTime&&(n.value=Math.max(l.startTime-$(),0),n.entries.push(l),i(!0)))}))}));a&&(i=k(e,n,ee,t.reportAllChanges),B((function(u){n=_("FCP"),i=k(e,n,ee,t.reportAllChanges),V((function(){n.value=performance.now()-u.timeStamp,i(!0)}))})))}))},te=[.1,.25],ge=function(e,t){t=t||{},se(z((function(){var i,r=_("CLS",0),n=0,a=[],u=function(f){f.forEach((function(h){if(!h.hadRecentInput){var I=a[0],s=a[a.length-1];n&&h.startTime-s.startTime<1e3&&h.startTime-I.startTime<5e3?(n+=h.value,a.push(h)):(n=h.value,a=[h])}})),n>r.value&&(r.value=n,r.entries=a,i())},l=N("layout-shift",u);l&&(i=k(e,r,te,t.reportAllChanges),F((function(){u(l.takeRecords()),i(!0)})),B((function(){n=0,r=_("CLS",0),i=k(e,r,te,t.reportAllChanges),V((function(){return i()}))})),setTimeout(i,0))}
1)))},ce=0,O=1/0,q=0,ve=function(e){e.forEach((function(t){t.interactionId&&(O=Math.min(O,t.interactionId),q=Math.max(q,t.interactionId),ce=q?(q-O)/7+1:0)}))},le=function(){return G?ce:performance.interactionCount||0},he=function(){"interactionCount"in performance||G||(G=N("event",ve,{type:"event",buffered:!0,durationThreshold:0}))},C=[],P=new Map,ue=0,ye=function(){var e=Math.min(C.length-1,Math.floor((le()-ue)/50));return C[e]},be=[],xe=function(e){if(be.forEach((function(n){return n(e)})),e.interactionId||e.entryType==="first-input"){var t=C[C.length-1],i=P.get(e.interactionId);if(i||C.length<10||e.duration>t.latency){if(i)e.duration>i.latency?(i.entries=[e],i.latency=e.duration):e.duration===i.latency&&e.startTime===i.entries[0].startTime&&i.entries.push(e);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};P.set(r.id,r),C.push(r)}C.sort((function(n,a){return a.latency-n.latency})),C.length>10&&C.splice(10).forEach((function(n){return P.delete(n.id)}))}}},de=function(e){var t=self.requestIdleCallback||self.setTimeout,i=-1;return e=z(e),document.visibilityState==="hidden"?e():(i=t(e),F(e)),i},ne=[200,500],we=function(e,t){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(t=t||{},D((function(){var i;he();var r,n=_("INP"),a=function(l){de((function(){l.forEach(xe);var f=ye();f&&f.latency!==n.value&&(n.value=f.latency,n.entries=f.entries,r())}))},u=N("event",a,{durationThreshold:(i=t.durationThreshold)!==null&&i!==void 0?i:40});r=k(e,n,ne,t.reportAllChanges),u&&(u.observe({type:"first-input",buffered:!0}),F((function(){a(u.takeRecords()),r(!0)})),B((function(){ue=le(),C.length=0,P.clear(),n=_("INP"),r=k(e,n,ne,t.reportAllChanges)})))})))},re=[2500,4e3],K={},Ee=function(e,t){t=t||{},D((function(){var i,r=ae(),n=_("LCP"),a=function(f){t.reportAllChanges||(f=f.slice(-1)),f.forEach((function(h){h.startTime<r.firstHiddenTime&&(n.value=Math.max(h.startTime-$(),0),n.entries=[h],i())}))},u=N("largest-contentful-paint",a);if(u){i=k(e,n,re,t.reportAllChanges);var l=z((function(){K[n.id]||(a(u.takeRecords()),u.disconnect(),K[n.id]=!0,i(!0))}));["keydown","click"].forEach((function(f){addEventListener(f,(function(){return de(l)}),{once:!0,capture:!0})})),F(l),B((function(f){n=_("LCP"),i=k(e,n,re,t.reportAllChanges),V((function(){n.value=performance.now()-f.timeStamp,K[n.id]=!0,i(!0)}))}))}}))},ie=[800,1800],Ce=function e(t){document.prerendering?D((function(){return e(t)})):document.readyState!=="complete"?addEventListener("load",(function(){return e(t)}),!0):setTimeout(t,0)},_e=function(e,t){t=t||{};var i=_("TTFB"),r=k(e,i,ie,t.reportAllChanges);Ce((function(){var n=J();n&&(i.value=Math.max(n.responseStart-$(),0),i.entries=[n],r(!0),B((function(){i=_("TTFB",0),(r=k(e,i,ie,t.reportAllChanges))(!0)})))}))};const ke=document.querySelector('meta[name="csrf-token"]')?.getAttribute("content"),Ie=window.siteI18n??{},p=(e,t)=>e.split(".").reduce((r,n)=>r&&r[n]!==void 0?r[n]:void 0,Ie)??t,Te=()=>{const e=document.getElementById("subdomainForm");if(!e)return;const t=document.getElementById("ip"),i=document.getElementById("hostname"),r=document.getElementById("result"),n=document.getElementById("submit"),a=n?.textContent??p("preview_link.default_button","Create a Preview URL"),u=n?.innerHTML??a,l=document.getElementById("spinner-icon-template"),f=l?l.innerHTML.trim():"",h=e.querySelectorAll("[data-clear-for]"),I=o=>{n&&(n.disabled=o,n.setAttribute("aria-busy",o?"true":"false"),n.innerHTML=o?`<span class="inline-flex items-center justify-center gap-2"> 2 ${f} 3 <span>${p("preview_link.loading","Creating...")}</span> 4 </span>`:u)},s=(o,m)=>{!o||!m||(o.value.trim().length>0?m.classList.remove("hidden"):m.classList.add("hidden"))},y=(o,m)=>{if(!o||!m)return;const g=()=>s(o,m);o.addEventListener("input",g),g(),m.addEventListener("click",()=>{o.value="",o.dispatchEvent(new Event("input",{bubbles:!0})),o.focus()})};h.forEach(o=>{const m=o.getAttribute("data-clear-for");if(!m)return;const g=e.querySelector(`#${CSS.escape(m)}`);y(g,o)});const c=(o,m)=>{if(!r)return;r.replaceChildren();const g=document.createElement("div");g.className="mt-4 rounded-none border border-red-200 bg-red-50 p-3 text-base text-red-700",g.textContent=o,r.appendChild(g)},d=(o,m,g)=>{if(!r)return;r.replaceChildren();const b=document.createElement("div");b.className="mt-4 rounded-none border border-slate-200 bg-slate-50 p-4 text-base text-slate-700";const x=document.createElement("div");
4x.className="flex flex-wrap items-center gap-2 font-semibold";const w=document.createElement("span");w.textContent=p("preview_link.success_label","Your preview link is live! ");const Q=`https://${o}`,T=document.createElement("a");T.href=Q,T.textContent=o,T.className="text-[#0d6efd] underline break-all",T.target="_blank",T.rel="noopener noreferrer";const E=document.createElement("button");E.type="button",E.className="inline-flex items-center gap-1 text-[#0d6efd] hover:text-[#0a58ca]",E.setAttribute("aria-label",p("preview_link.copy_aria","Copy preview link"));const W=document.getElementById("copy-icon-template"),me=W?W.innerHTML.trim():"";E.innerHTML=`${me}<span class="text-base">${p("preview_link.copy","Copy")}</span>`,E.addEventListener("click",async()=>{try{await navigator.clipboard.writeText(Q),E.querySelector("span").textContent=p("preview_link.copied","Copied"),setTimeout(()=>{E.querySelector("span").textContent=p("preview_link.copy","Copy")},1500)}catch{E.querySelector("span").textContent=p("preview_link.copy_failed","Failed"),setTimeout(()=>{E.querySelector("span").textContent=p("preview_link.copy","Copy")},1500)}}),x.append(w,T,E);const H=document.createElement("div");H.className="mt-2 text-base text-slate-600",H.textContent=p("preview_link.expires","Expires in 10 minutes.");const U=document.createElement("div");U.className="mt-2 text-base text-slate-600";const S=document.createElement("a"),pe=new URLSearchParams({domain:m??"",ip:g??""});S.href=`/diag?${pe.toString()}`,S.className="text-[#0d6efd] underline",S.textContent=p("preview_link.troubleshoot_cta","Run our troubleshooting script!"),S.target="_blank",S.rel="noopener noreferrer",U.append(`${p("preview_link.troubleshoot_prefix","Having trouble?")} `,S);const j=document.createElement("div");j.className="mt-3 rounded-none border border-amber-200 bg-amber-50 px-3 py-2 text-sm text-amber-900";const X=document.createElement("span");X.textContent=`${p("preview_link.pro_upsell_prefix","Need this link to last for days?")} `;const A=document.createElement("a");A.href="/pro?utm_source=success_panel&utm_medium=upsell&utm_campaign=pro_funnel",A.className="font-semibold underline decoration-amber-400 underline-offset-2 hover:text-amber-950",A.dataset.hcTrack="upsell_click_success_panel",A.textContent=p("preview_link.pro_upsell_cta","Get hosts.click Pro for $5/mo"),j.append(X,A),b.append(x,H,U,j),r.appendChild(b)},v=async()=>!window.recaptchaSiteKey||!window.grecaptcha?null:new Promise(o=>{window.grecaptcha.ready(()=>{window.grecaptcha.execute(window.recaptchaSiteKey,{action:"create_preview_link"}).then(m=>o(m)).catch(()=>o(null))})});e.addEventListener("submit",async o=>{o.preventDefault();const m=t?.value?.trim(),g=i?.value?.trim();if(!m||!g){c(p("preview_link.error_missing","Please enter both an IP address and a domain name."));return}I(!0);try{const b=await v(),x=await fetch("/preview-links",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","X-CSRF-TOKEN":ke??""},body:JSON.stringify({ip:m,hostname:g,recaptcha:b})}),w=await x.json().catch(()=>({}));if(!x.ok){c(w.error||w.message||p("preview_link.error_create","Unable to create preview link."),"error");return}w.subdomain?d(w.subdomain,g,m):c(p("preview_link.error_create","Unable to create preview link."),"error")}catch{c(p("preview_link.error_create","Unable to create preview link."))}finally{I(!1)}})},Se=()=>{const e=document.getElementById("mappings"),t=document.getElementById("output");if(!e||!t)return;const i=e.querySelector(".mapping-row");if(!i)return;const r=()=>{const s=i.cloneNode(!0);return s.querySelectorAll("input").forEach(y=>{y.value=""}),s},n=()=>Array.from(e.querySelectorAll(".mapping-row")).map(s=>{const y=s.querySelector('input[name="ip[]"]')?.value.trim()??"",c=s.querySelector('input[name="domain[]"]')?.value.trim()??"";return{ip:y,domain:c}}).filter(s=>s.ip&&s.domain),a=()=>{const s=n().map(y=>`${y.ip} ${y.domain}`);t.value=s.join(` 5`)},u=()=>{const s=Array.from(e.querySelectorAll(".mapping-row"));if(s.length===0){e.appendChild(r());return}const y=s[s.length-1],c=y.querySelector('input[name="ip[]"]')?.value.trim()??"",d=y.querySelector('input[name="domain[]"]')?.value.trim()??"";(c||d)&&e.appendChild(r())};e.addEventListener("input",s=>{s.target instanceof HTMLInputElement&&(s.target.name!=="ip[]"&&s.target.name!=="domain[]"||(u(),a()))}
5),e.addEventListener("click",s=>{const y=s.target.closest(".remove-row");if(!y)return;const c=y.closest(".mapping-row");c&&(c.remove(),u(),a())});const l=document.getElementById("copyBtn");l&&l.addEventListener("click",async()=>{if(t.value.trim())try{await navigator.clipboard.writeText(t.value);const s=l.textContent;l.textContent=p("hostsfile.copied","Copied!"),setTimeout(()=>{l.textContent=s},1500)}catch{t.select(),document.execCommand("copy")}});const f=document.getElementById("saveCsvBtn");f&&f.addEventListener("click",()=>{const s=n();if(s.length===0)return;const y=s.map(o=>`${o.ip},${o.domain}`).join(` 6`),c=new Blob([y],{type:"text/csv;charset=utf-8;"}),d=URL.createObjectURL(c),v=document.createElement("a");v.href=d,v.download="hosts-entries.csv",document.body.appendChild(v),v.click(),v.remove(),URL.revokeObjectURL(d)});const h=document.getElementById("loadCsvBtn"),I=document.getElementById("csvFileInput");h&&I&&h.addEventListener("click",async()=>{const s=I.files?.[0];if(!s)return;const c=(await s.text()).split(/\r?\n/).map(d=>d.trim()).filter(Boolean);e.replaceChildren(),c.forEach(d=>{const[v,o]=d.split(",").map(x=>x?.trim());if(!v||!o)return;const m=r(),g=m.querySelector('input[name="ip[]"]'),b=m.querySelector('input[name="domain[]"]');g&&(g.value=v),b&&(b.value=o),e.appendChild(m)}),u(),a()}),u(),a()},Le=()=>{const e=document.getElementById("diagnosticsForm");if(!e)return;const t=document.getElementById("diagnostics-domain"),i=document.getElementById("diagnostics-ip"),r=document.getElementById("diagnostics-error"),n=document.getElementById("diagnostics-results"),a=document.getElementById("diagnostics-submit"),u=["port443","httpsreq","http443","hosthdr","proxyhdr","origin_redirect","waf","dnsmatch","contenterror","redirloop","tlshandshake","tls_chain","tls_sans","robots","secfile","caa","hsts","ssl_subject","ssl_issuer","ssl_expiry","ssl_domainmatch"],l=["bg-emerald-50 text-emerald-700 border-emerald-200","bg-amber-50 text-amber-700 border-amber-200","bg-red-50 text-red-700 border-red-200"],f=c=>{if(r){if(!c){r.classList.add("hidden"),r.textContent="";return}r.textContent=c,r.classList.remove("hidden")}},h=c=>{a&&(a.disabled=c,a.textContent=c?p("diagnostics.running","Running..."):p("diagnostics.run","Run diagnostics"))},I=c=>{const d=document.createElement("li");d.className="px-3 py-2 text-sm text-slate-900";const v=document.createElement("div");v.className="flex flex-wrap items-center justify-between gap-2";const o=document.createElement("div");o.className="text-sm font-semibold",o.textContent=c;const m=document.createElement("span");m.className="inline-flex items-center rounded-none border border-slate-200 bg-slate-50 px-2 py-0.5 text-xs font-semibold text-slate-600",m.textContent=p("diagnostics.running","Running..."),v.append(o,m),d.appendChild(v);const g=document.createElement("div");return g.className="mt-1 text-xs text-slate-600",d.appendChild(g),{item:d,badge:m,details:g,title:o}},s=(c,d)=>{c.title.textContent=d.label||p("diagnostics.diagnostic","Diagnostic");const v=Number.isFinite(d.severity)?d.severity:0;if(c.badge.className=`inline-flex items-center rounded-none border px-2 py-0.5 text-xs font-semibold ${l[v]||l[0]}`,c.badge.textContent=d.status||"Unknown",c.details.replaceChildren(),d.badge){const o=document.createElement("div");o.className="text-xs font-semibold text-slate-700",o.textContent=d.badge,c.details.appendChild(o)}if(d.explanation){const o=document.createElement("div");o.className="mt-1 text-xs text-slate-600",o.textContent=d.explanation,c.details.appendChild(o)}if(d.fix){const o=document.createElement("div");o.className="mt-1 text-xs font-semibold text-slate-700",o.textContent=`${p("diagnostics.how_to_fix","How to fix:")} ${d.fix}`,c.details.appendChild(o)}},y=async(c,d)=>{n.replaceChildren(),f(""),h(!0);const v=document.getElementById("diagnostics-results-section");v&&v.scrollIntoView({behavior:"smooth",block:"start"});let o=0;const m=async()=>{if(o>=u.length){h(!1);return}const g=u[o++],b=I(g);n.appendChild(b.item);try{const x=await fetch(`/diagnostics/run?domain=${encodeURIComponent(c)}&ip=${encodeURIComponent(d)}&test=${encodeURIComponent(g)}`),w=await x.json().catch(()=>({}));!x.ok||w.error?s(b,{label:g,status:p("diagnostics.error_status","Error"),severity:2,badge:w.error||w.message||p("diagnostics.error_badge","Diagnostics failed."),explanation:p("diagnostics.error_explanation","The diagnostic test c
6ould not be completed."),fix:""}):s(b,w)}catch{s(b,{label:g,status:p("diagnostics.error_status","Error"),severity:2,badge:p("diagnostics.error_network_badge","Diagnostics failed to run."),explanation:p("diagnostics.error_network_explanation","Network error while running diagnostics."),fix:""})}m()};m()};e.addEventListener("submit",c=>{c.preventDefault();const d=t?.value?.trim()??"",v=i?.value?.trim()??"";if(!d||!v){f(p("diagnostics.error_missing","Please enter both domain and IP address."));return}y(d,v)})},Be=()=>{const e=Array.from(document.querySelectorAll('input[name="pro-carousel"]'));if(e.length<2)return;let t=e.findIndex(r=>r.checked);t<0&&(t=0,e[0].checked=!0),e.forEach((r,n)=>{r.addEventListener("change",()=>{r.checked&&(t=n)})}),setInterval(()=>{t=(t+1)%e.length,e[t].checked=!0},5e3)},Ae=()=>{const e=Array.from(document.querySelectorAll("[data-contact-form]"));e.length!==0&&e.forEach(t=>{const i=t.querySelector('input[name="started_at"]'),r=t.querySelector('input[name="recaptcha"]');let n=!1;const a=()=>{!i||i.value||(i.value=Math.floor(Date.now()/1e3).toString())};a(),t.addEventListener("focusin",a,{once:!0}),t.addEventListener("submit",async u=>{if(a(),!(!r||!window.recaptchaSiteKey||!window.grecaptcha)&&!(n||r.value)){u.preventDefault(),n=!0;try{const l=await new Promise(f=>{window.grecaptcha.ready(()=>{window.grecaptcha.execute(window.recaptchaSiteKey,{action:"contact"}).then(h=>f(h)).catch(()=>f(null))})});l&&(r.value=l)}finally{t.submit()}}})})},Ne=()=>{document.addEventListener("click",e=>{const t=e.target.closest("[data-hc-track]");if(!t||typeof window.gtag!="function")return;const i=t.dataset.hcTrack;if(!i)return;const r={engagement_time_msec:1};try{const n=t.getAttribute("href")||"",a=new URL(n,window.location.origin);["utm_source","utm_medium","utm_campaign"].forEach(u=>{const l=a.searchParams.get(u);l&&(r[u]=l)}),r.link_url=a.href}catch{}try{window.gtag("event",i,r)}catch{}},{capture:!0})};document.addEventListener("DOMContentLoaded",()=>{Te(),Se(),Le(),Be(),Ae(),Ne()});const R=({name:e,value:t,id:i,rating:r})=>{typeof window.gtag=="function"&&window.gtag("event",e,{value:Math.round(e==="CLS"?t*1e3:t),metric_id:i,metric_value:t,metric_rating:r,non_interaction:!0})};ge(R);we(R);Ee(R);se(R);_e(R);
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.