1!function(){const t=window.GSProfileStimulus;t&&t.register("tabs",class extends window.Stimulus.Controller{static get targets(){return["tab","panel"]}static get values(){return{hash:Boolean}}connect(){const t=this.tabTargets.find(t=>"true"===t.getAttribute("aria-selected"));this.current=t?t.dataset.tabKey:null,this.hashValue&&(this.onHashChange=()=>{const t=this.keyFromHash();t&&this.show(t)},window.addEventListener("hashchange",this.onHashChange),this.onHashChange())}disconnect(){this.onHashChange&&window.removeEventListener("hashchange",this.onHashChange)}select(t){const e=t.currentTarget.dataset.tabKey;this.show(e),this.hashValue&&this.writeHash(e)}navigate(t){const e=this.tabTargets,a=e.indexOf(t.currentTarget);let s;switch(t.key){case"ArrowRight":s=e[(a+1)%e.length];break;case"ArrowLeft":s=e[(a-1+e.length)%e.length];break;case"Home":s=e[0];break;case"End":s=e[e.length-1];break;default:return}t.preventDefault(),s.focus(),s.click()}show(t){t!==this.current&&this.tabTargets.some(e=>e.dataset.tabKey===t)&&(this.tabTargets.forEach(e=>{const a=e.dataset.tabKey===t;e.setAttribute("aria-selected",String(a)),e.tabIndex=a?0:-1}),this.panelTargets.forEach(e=>{e.hidden=e.dataset.tabKey!==t}),this.current=t,this.dispatch("change",{detail:{key:t}}))}keyFromHash(){try{return decodeURIComponent(window.location.hash.slice(1)).split(",")[0]}catch(t){return""}}writeHash(t){const e=new URL(window.location.href);e.hash=t,window.history.replaceState(window.history.state,"",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.