1var e={shownAt:`aw_consult_nudge_at`,fab:`aw_consult_fab`,booked:`aw_consult_booked`,fabLifted:`aw_consult_fab_lifted`,emptyAt:e=>`aw_consult_nudge_empty_${e}`},t=25e3,n=864e5,r=36e5,i=9e5,a=14,o=9e5,s=3,c=70,l={a:1/6,c:1/6,fab:1/3,control:1/3},u=`aw_consult_nudge`,d=document.getElementById(`consult-nudge`),f=e=>{try{return window[e]}catch{return null}},p=()=>f(`localStorage`),m=()=>f(`sessionStorage`),h=(e,t)=>{let n=Number(e?.getItem(t));return Number.isFinite(n)&&n>0?n:null},g=(e,t)=>{p()?.getItem(`admin`)||(window.posthog?.capture?.(e,t),window.gtag?.(`event`,e,t))},_=e=>e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `),v=(e,t,n)=>n===`c`?{eyebrow:`Free · 15 min`,heading:`Plan it with a local`,line:`A free 15-minute call with the Insider who will handle your booking. No obligation.`}:{eyebrow:`Free consultation`,heading:`Questions about this ${e}?`,line:`Talk to a ${t} Insider. They answer your questions and handle the booking for you.`},y=e=>document.cookie.split(`; `).find(t=>t.startsWith(`${e}=`))?.split(`=`)[1],b=e=>!!e&&Object.hasOwn(l,e),x=()=>{let e=new URLSearchParams(window.location.search).get(`consult`);if(b(e))return e;let t=y(u);if(b(t))return t;let n=Math.random(),r=`control`;for(let[e,t]of Object.entries(l))if(n-=t,n<0){r=e;break}let i=new Date(Date.now()+3024e6).toUTCString();return document.cookie=`${u}=${r}; expires=${i}; path=/; SameSite=Lax`,r},S=t=>{let r=p();if(!r||r.getItem(`admin`)||r.getItem(e.booked))return!1;let i=h(r,e.shownAt);return i===null||t-i>=n},C=()=>!!document.querySelector(`iframe[data-book-call]`),w=e=>new Intl.DateTimeFormat(`en-CA`,{year:`numeric`,month:`2-digit`,day:`2-digit`}).format(e),T=new Intl.DateTimeFormat(`en-US`,{hour:`numeric`,minute:`2-digit`}),E=(e,t)=>{let n=t.getTime()+i,r=e.filter(e=>new Date(e).getTime()>=n).sort();if(!r.length)return null;let a=w(new Date(r[0]));return{day:a,slots:r.filter(e=>w(new Date(e))===a).slice(0,s),soonest:r[0]}},D=(e,t)=>{let n=w(t),r=w(new Date(t.getTime()+864e5));if(e===n)return`today`;if(e===r)return`tomorrow`;let[i,a,o]=e.split(`-`).map(Number);return new Intl.DateTimeFormat(`en-US`,{weekday:`short`,month:`short`,day:`numeric`,timeZone:`UTC`}).format(new Date(Date.UTC(i,a-1,o,12)))},O=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" aria-hidden="true"><path d="M18 6 6 18M6 6l12 12"></path></svg>`,k=`<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m9 6 6 6-6 6"></path></svg>`,A=`<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 7a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z"></path><path d="M16 3v4M8 3v4M4 11h16"></path><path d="M8 15h2v2H8z"></path></svg>`,j=e=>{let t=document.createElement(`div`);t.innerHTML=e.trim();let n=t.firstElementChild;return n.hidden=!0,document.body.appendChild(n),n},M=e=>j(` 2 <section class="cn-card" role="dialog" aria-labelledby="cn-heading"> 3 <div class="cn-grab" aria-hidden="true"></div> 4 <button type="button" class="cn-close" aria-label="Close" data-cn-close>${O}</button> 5 <div class="cn-who"> 6 ${e.length?`<span class="cn-faces" aria-hidden="true">${e.map(e=>`<img alt="" width="38" height="38" src="${encodeURI(e)}">`).join(``)}</span>`:``} 7 <div class="cn-titles"> 8 <p class="cn-eyebrow" data-cn-eyebrow></p> 9 <h2 id="cn-heading" class="cn-heading" data-cn-heading></h2> 10 </div> 11 </div> 12 <p class="cn-line" data-cn-line></p> 13 <div class="cn-when-row"> 14 <p class="cn-when" data-cn-when></p> 15 <button type="button" class="cn-more" data-cn-more>More times ${k}</button> 16 </div> 17 <div class="cn-chips" data-cn-chips></div> 18 </section>`),N=()=>j(` 19 <div class="cn-fab"> 20 <div class="cn-fab-lift" data-cn-lift> 21 <div class="cn-fab-float"> 22 <button type="button" class="cn-fab-btn" data-cn-fab>${A} Free consultation</button> 23 </div> 24 </div> 25 </div>`);if(d){let n=d.dataset.apiOrigin,i=d.dataset.country||`costa-rica`,s=JSON.parse(d.dataset.faces||`[]`),l=null,f=null,b=!1,w=!1,O=!1,k=()=>{let t=p();return!t||t.getItem(e.booked)?null:t.getItem(e.fab)||null},A=e=>e?`consult-nudge-${e}`:void 0,j=()=>{let e={entry_source:`fab`,entry_campaign:A(y(u))};g(`Booking FAB - Clicked`,e),g(`Booking Sheet - Opened`,e),window.anywhereConsult?.open({source:`fab`,campaign:e.entry_campaign,country:k()||i})},P=()=>{let t=!!k()&&!b&&!w&&!C();if(t&&!f&&(f=N(),f.querySelector(`[data-cn-fab]`).addEventListener(`click`,j)),t&&f.hidden){f.hidden=!1;let t=p();t?.getItem(e.fabLifted)||(f.querySelector(`[data-cn-lift]`).classList.add(`is-lifting`),t?.setItem(e.fabLifted,`1`)),O||(O=!0,g(`Booking FAB - Shown`,{entry_source:`fab`,entry_campaign:A(y(u))}))}else!t&&f&&(f.hidden=!0)},F=t=>{let n=p();n&&!n.getItem(e.booked)&&(n.setItem(e.fab,t),P())};document.addEventListener(`anywhere:consult:open`,()=>{b=!0,P()}),document.addEventListener(`anywhere:consult:close`,()=>{b=!1,P()}),document.addEventListener(`anywhere:consult:booked`,()=>{l&&(l.hidden=!0),w=!1,P()}),P();let I=document.querySelector(`[data-consult-nudge]`)?.getAttribute(`data-consult-nudge`);if((I===`tour`||I===`hotel`)&&S(Date.now())&&!C()){let e=()=>L(I);typeof window.requestIdleCallback==`function`?window.requestIdleCallback(e):setTimeout(e,2e3)}function L(n){let a=i,o=h(m(),e.emptyAt(a));if(o!==null&&Date.now()-o<r)return;let s=!1,c=!1,l=()=>{window.scrollY<window.innerHeight/2||(c=!0,window.removeEventListener(`scroll`,l),s&&R(n,a))};setTimeout(()=>{s=!0,c&&R(n,a)},Math.max(0,t-performance.now())),window.addEventListener(`scroll`,l,{passive:!0}),l()}async function R(t,r){if(!S(Date.now())||b||w)return;let i=new Date(Math.floor(Date.now()/o)*o),s=new Date(i.getTime()+a*864e5),c=new URL(`/api/public/staff_booking/country/${r}`,n);c.searchParams.set(`from`,i.toISOString()),c.searchParams.set(`to`,s.toISOString()),c.searchParams.set(`slot`,`15`);let l;try{let e=await fetch(c);if(!e.ok)return;l=((await e.json()).slots||[]).map(e=>e.starts)}catch{return}if(b||w)return;let u=new Date,d=E(l,u);if(!d){m()?.setItem(e.emptyAt(r),String(Date.now()));return}let f=x();if(p()?.setItem(e.shownAt,String(Date.now())),window.posthog?.register?.({consult_nudge_arm:f}),g(`Consult Nudge Test: Exposed`,{arm:f,kind:t}),f!==`control`){if(f===`fab`){F(r);return}z(t,r,f,d,u)}}function z(e,t,n,r,i){let a=`${e}-nudge`,o=A(n),u={entry_source:a,entry_campaign:o,country:t},d=v(e,_(t),n),f=`Viewing: ${document.querySelector(`main h1, h1`)?.textContent?.replace(/\s+/g,` `).trim()||document.title}\n${window.location.origin}${window.location.pathname}`;l||=M(s),l.querySelector(`[data-cn-eyebrow]`).textContent=d.eyebrow,l.querySelector(`[data-cn-heading]`).textContent=d.heading,l.querySelector(`[data-cn-line]`).textContent=d.line,l.querySelector(`[data-cn-w
25hen]`).textContent=`Next available · ${D(r.day,i)}`,l.querySelector(`[data-cn-chips]`).replaceChildren(...r.slots.map((e,t)=>{let n=document.createElement(`button`);if(n.type=`button`,n.className=`cn-chip`,n.textContent=T.format(new Date(e)),e===r.soonest){let e=document.createElement(`span`);e.className=`cn-soonest`,e.textContent=`Soonest`,n.prepend(e)}return n.addEventListener(`click`,()=>{g(`Booking Nudge - Slot Picked`,{...u,rank:String(t)}),y(e)}),n}));let p=e=>{m(),g(`Booking Nudge - Closed`,{...u,method:e}),F(t)},m=()=>{l.hidden=!0,w=!1,document.removeEventListener(`keydown`,h)},h=e=>{e.key===`Escape`&&!b&&p(`escape`)},y=e=>{m(),F(t),g(`Booking Sheet - Opened`,{entry_source:a,entry_campaign:o}),window.anywhereConsult?.open({source:a,campaign:o,country:t,start:e,context:f})};l.querySelector(`[data-cn-close]`).onclick=()=>p(`close`),l.querySelector(`[data-cn-more]`).onclick=()=>{g(`Booking Nudge - More Times`,u),y()};let x=null,S=0;l.onpointerdown=e=>{e.pointerType===`touch`&&(x=e.clientY)},l.onpointermove=e=>{x!==null&&(S=Math.max(0,e.clientY-x),l.style.transform=S?`translateY(${S}px)`:``)},l.onpointerup=l.onpointercancel=()=>{x!==null&&(x=null,l.style.transform=``,S>c&&p(`swipe`),S=0)},document.addEventListener(`keydown`,h),w=!0,l.hidden=!1,P(),g(`Booking Nudge - Shown`,u)}}
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.