1(function(){const input_el=document.getElementById('login-account') 2if(!input_el){return} 3const submit_button_el=input_el.closest('form').querySelector('input[type="submit"]') 4const wrapper_el=document.getElementById('login-account-wrapper') 5const clear_errors=function(){wrapper_el.classList.remove('has-error') 6wrapper_el.querySelectorAll('.form-error').forEach(function(el){el.remove()}) 7submit_button_el.disabled=false} 8const show_error=function(message){const existing=document.getElementById('form-error-login-account') 9if(existing&&existing.textContent===message){return} 10clear_errors() 11wrapper_el.classList.add('has-error') 12const error_el=document.createElement('div') 13error_el.id='form-error-login-account' 14error_el.textContent=message 15error_el.classList.add('form-error') 16wrapper_el.insertAdjacentElement('beforeend',error_el) 17submit_button_el.disabled=true} 18const get_error_message=function(value){if(!value){return null} 19if(value.includes('@')){return input_el.dataset.atError} 20if(value.includes('.')){return input_el.dataset.dotError} 21return null} 22const validate=function(value){const message=get_error_message(value) 23if(message){show_error(message)}else{clear_errors()}} 24input_el.addEventListener('input',function(e){validate(e.target.value)}) 25validate(input_el.value)}());
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.