1(()=>{var C=Object.defineProperty;var L=Object.getOwnPropertySymbols;var F=Object.prototype.hasOwnProperty,N=Object.prototype.propertyIsEnumerable;var S=(i,t,e)=>t in i?C(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,A=(i,t)=>{for(var e in t||(t={}))F.call(t,e)&&S(i,e,t[e]);if(L)for(var e of L(t))N.call(t,e)&&S(i,e,t[e]);return i};var r=(i,t,e)=>S(i,typeof t!="symbol"?t+"":t,e);var m=class{constructor(t,e,s=100){this.signals=t,this.onFirstInteraction=e,this.maxSamples=s,this._state={lastKeydownTime:null,lastKeyupTime:null,keydowns:{}},this._handlers={}}_isModifierKey(t){return["Shift","Control","Alt","Meta","CapsLock"].indexOf(t)!==-1}_isCorrectionKey(t){return["Backspace","Delete","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown"].indexOf(t)!==-1}_handleKeydown(t){let e=Date.now(),s=t.key;this.onFirstInteraction(),!this._isModifierKey(s)&&(typeof this._state.keydowns[s]=="undefined"&&(this._state.keydowns[s]=e),this._state.lastKeydownTime=e)}_handleKeyup(t){let e=Date.now(),s=t.key;if(this._isModifierKey(s))return;let l=this._state.keydowns[s],n=0;typeof l!="undefined"&&(n=e-l,delete this._state.keydowns[s]);let o=0;this._state.lastKeyupTime!==null&&(o=e-this._state.lastKeyupTime),this._state.lastKeyupTime=e,this.signals.keypress_count++,this.signals.keypress_timings.length<this.maxSamples&&this.signals.keypress_timings.push([n,o]),this._isCorrectionKey(s)&&this.signals.correction_keys.length<this.maxSamples&&this.signals.correction_keys.push(this.signals.keypress_count-1),(t.shiftKey||t.ctrlKey||t.altKey||t.metaKey)&&this.signals.modifier_keys.length<this.maxSamples&&this.signals.modifier_keys.push(this.signals.keypress_count-1)}_handleFocusIn(t){let e=t.target;if(!e||!e.tagName)return;let s=e.tagName.toUpperCase();s!=="INPUT"&&s!=="TEXTAREA"&&s!=="SELECT"||s==="INPUT"&&e.type==="hidden"||(this._state.lastKeyupTime=null,this._state.keydowns={})}attach(t){this._handlers.keydown=this._handleKeydown.bind(this),this._handlers.keyup=this._handleKeyup.bind(this),this._handlers.focusin=this._handleFocusIn.bind(this),t.addEventListener("keydown",this._handlers.keydown,!1),t.addEventListener("keyup",this._handlers.keyup,!1),t.addEventListener("focusin",this._handlers.focusin,!1),this._form=t}detach(){this._form&&this._handlers.keydown&&(this._form.removeEventListener("keydown",this._handlers.keydown,!1),this._form.removeEventListener("keyup",this._handlers.keyup,!1),this._form.removeEventListener("focusin",this._handlers.focusin,!1)),this._form=null,this._handlers={},this._state={lastKeydownTime:null,lastKeyupTime:null,keydowns:{}}}};var h=class h{constructor(t,e){this.signals=t,this.onFirstInteraction=e,this._state={lastMoveTime:null,lastPosition:null,path:[],lastClickTime:null,mousedownTime:null,lastThrottled:0},this._handlers={}}_handleMousedown(){this._state.mousedownTime=Date.now(),this.onFirstInteraction()}_handleMouseup(){let t=Date.now();if(this._state.mousedownTime===null)return;let e=t-this._state.mousedownTime,s=0;this._state.lastClickTime!==null&&(s=t-this._state.lastClickTime),this.signals.click_timings.length<h.MAX_CLICK_TIMINGS&&this.signals.click_timings.push([e,s]),this.signals.click_count++,this._state.lastClickTime=t,this._state.mousedownTime=null}_handleMouseMove(t){let e=Date.now();if(e-this._state.lastThrottled<h.THROTTLE_INTERVAL)return;this._state.lastThrottled=e,this.onFirstInteraction();let s={x:t.clientX,y:t.clientY,time:e},l=0;if(this._state.lastPosition){let o=s.x-this._state.lastPosition.x,a=s.y-this._state.lastPosition.y;l=Math.sqrt(o*o+a*a)}let n=0;this._state.lastMoveTime&&(n=e-this._state.lastMoveTime),this.signals.move_count++,this._state.lastMoveTime!==null&&this.signals.move_timings.length<h.MAX_MOVE_TIMINGS&&this.signals.move_timings.push([Math.round(n),Math.round(l*10)/10]),this._state.path.length<h.MAX_PATH_POINTS&&this._state.path.push(s),this._state.lastMoveTime=e,this._state.lastPosition=s}getPath(){return this._state.path}calculateEfficiency(){let t=this._state.path;if(t.length<2)return null;let e=t[0],s=t[t.length-1],l=Math.sqrt(Math.pow(s.x-e.x,2)+Math.pow(s.y-e.y,2));if(l===0)return null;let n=0;for(let a=1;a<t.length;a++)n+=Math.sqrt(Math.pow(t[a].x-t[a-1].x,2)+Math.pow(t[a].y-t[a-1].y,2));let o=l/n;return Math.round(o*1e3)/1e3}attach(t){this._handlers.mousedown=this._handleMousedown.bind(this),this._handlers.mouseup=this._handleMouseup.bind(this),this._handlers.mousemove=this._handleMouseMove.bind(this),t.addEventListener("mousedown",this._handlers.mousedown,{passive:!0}),t.addEventListener("mouseup",this._handlers.mouseup,{passive:!0}),t.addEventListener("mousemove",this._handlers.mousemove,{passive:!0}),this._form=t}detach(){this._form&&(this._handlers.mousedown&&this._form.removeEventListener("mousedown",this._handlers.mousedown,{passive:!0}),this._handlers.mouseup&&this._form.removeEventListener("mouseup",this._handlers.mouseup,{passive:!0}),this._handlers.mousemove&&this._form.removeEventListener("mousemove",this._handlers.mousemove,{passive:!0})),this._form=null,this._handlers={},this._state={lastMoveTime:null,lastPosition:null,path:[],lastClickTime:null,mousedownTime:null,lastThrottled:0}}};r(h,"THROTTLE_INTERVAL",50),r(h,"MAX_PATH_POINTS",500),r(h,"MAX_CLICK_TIMINGS",200),r(h,"MAX_MOVE_TIMINGS",500);var f=h;var g=class g{constructor(t,e){this.signals=t,this.onFirstInteraction=e,this._state={lastTouchTime:null,lastTouchmoveTime:null,touchStartTime:null,lastThrottled:0},this._handlers={}}_handleTouchstart(){let t=Date.now();this._state.touchStartTime=t,this.onFirstInteraction()}_handleTouchend(){let t=Date.now();if(this._state.touchStartTime===null)return;let e=t-this._state.touchStartTime,s=0;this._state.lastTouchTime!==null&&(s=t-this._state.lastTouchTime),this.signals.touch_timings.push([e,s]),this.signals.touch_count++,this._state.lastTouchTime=t,this._state.touchStartTime=null}_handleTouchmove(){let t=Date.now();t-this._state.lastThrottled<g.THROTTLE_INTERVAL||(this._state.lastThrottled=t,this.signals.touchmove_count++,this._state.lastTouchmoveTime=t)}attach(t){this._handlers.touchstart=this._handleTouchstart.bind(this),this._handlers.touchend=this._handleTouchend.bind(this),this._handlers.touchmove=this._handleTouchmove.bind(this),t.addEventListener("touchstart",this._handlers.touchstart,{passive:!0}),t.addEventListener("touchend",this._handlers.touchend,{passive:!0}),t.addEventListener("touchmove",this._handlers.touchmove,{passive:!0}),this._form=t}detach(){this._form&&(this._handlers.touchstart&&this._form.removeEventListener("touchstart",this._handlers.touchstart,{passive:!0}),this._handlers.touchend&&this._form.removeEventListener("touchend",this._handlers.touchend,{passive:!0}),this._handlers.touchmove&&this._form.removeEventListener("touchmove",this._handlers.touchmove,{passive:!0})),this._form=null,this._handlers={},this._state={lastTouchTime:null,lastTouchmoveTime:null,touchStartTime:null,lastThrottled:0}}};r(g,"THROTTLE_INTERVAL",50);var p=g;var u=class u{constructor(t,e){this.signals=t,this.onFirstInteraction=e,this._state={lastScrollTime:null,lastThrottled:0,scrollSessionTimeout:null,isInScrollSession:!1},this._handlers={}}_handleScroll(){let t=Date.now();if(t-this._state.lastThrottled<u.THROTTLE_INTERVAL)return;this._state.lastThrottled=t,this.onFirstInteraction(),this._state.lastScrollTime=t,this._state.isInScrollSession||(this._state.isInScrollSession=!0),this._state.scrollSessionTimeout&&clearTimeout(this._state.scrollSessionTimeout);let e=this;this._state.scrollSessionTimeout=setTimeout(function(){e._state.isInScrollSession&&(e.signals.scroll_count++,e._state.isInScrollSession=!1)},u.SCROLL_SESSION_GAP)}attach(){this._handlers.scroll=this._handleScroll.bind(this),document.addEventListener("scroll",this._handlers.scroll,{passive:!0})}detach(){this._handlers.scroll&&document.removeEventListener("scroll",this._handlers.scroll,{passive:!0}),this._state.scrollSessionTimeout&&clearTimeout(this._state.scrollSessionTimeout),this._handlers={},this._state={lastScrollTime:null,lastThrottled:0,scrollSessionTimeout:null,isInScrollSession:!1}}};r(u,"THROTTLE_INTERVAL",50),r(u,"SCROLL_SESSION_GAP",150);var y=u;var v=class{constructor(t,e){this.signals=t,this.onFirstInteraction=e,this._handlers={}}_handleFocus(t){let e=t.target;if(!e||!e.tagName)return;let s=e.tagName.toUpperCase();s!=="INPUT"&&s!=="TEXTAREA"&&s!=="SELECT"||s==="INPUT"&&e.type==="hidden"||(this.signals.focus_count++,this.onFirstInteraction())}attach(t){this._handlers.focusin=this._handleFocus.bind(this),t.addEventListener("focusin",this._handlers.focusin,!1),this._form=t}detach(){this._form&&this._handlers.focusin&&this._form.removeEventListener("focusin",this._handlers.focusin,!1),this._form=null,this._handlers={}}};function I(i,t){let e=null;return function(...s){e&&clearTimeout(e),e=setTimeout(()=>{i.apply(this,s),e=null},t)}}function M(i){if(!Array.isArray(i)||i.length<2)return null;let t=i.length,e=i.reduce((n,o)=>n+o,0)/t,l=i.map(n=>Math.pow(n-e,2)).reduce((n,o)=>n+o,0)/t;return Math.round(l*100)/100}var T=class{constructor(t,e,s){this.signals=t,this.onFirstInteraction=e,this.logError=s,this._form=null,this._handlers={}}_handlePageClick(t){this._form&&!this._form.contains(t.target)&&(this.signals.page_click_count++,this.onFirstInteraction())}_handleSelection(){let t=this;try{let e=window.getSelection();e&&e.toString().length>0&&(t.signals.text_selection_count++,t.onFirstInteraction())}catch(e){t.logError("_handleSelection","Failed to track selection: "+e.message)}}attach(t){this._form=t,this._handlers.pageClick=this._handlePageClick.bind(this),this._handlers.selection=I(this._handleSelection.bind(this),200),document.addEventListener("click",this._handlers.pageClick,!1),document.addEventListener("selectionchange",this._handlers.selection)}detach(){this._handlers.pageClick&&document.removeEventListener("click",this._handlers.pageClick,!1),this._handlers.selection&&document.removeEventListener("selectionchange",this._handlers.selection),this._form=null,this._handlers={}}};var w=class{constructor(t,e){this.signals=t,this.logError=e}collect(){this._collectScreenInfo(),this._collectTimezone(),this._collectTouchCapability(),this._collectHardwareConcurrency(),this._collectDeviceMemory(),this._collectConnectionType()}_collectScreenInfo(){try{this.signals.screen_info={width:window.screen.width,height:window.screen.height,availWidth:window.screen.availWi
1dth,availHeight:window.screen.availHeight,colorDepth:window.screen.colorDepth,pixelRatio:window.devicePixelRatio||1}}catch(t){this.logError("_collectScreenInfo","Failed to get screen info")}}_collectTimezone(){try{this.signals.timezone=new Date().getTimezoneOffset()}catch(t){this.logError("_collectTimezone","Failed to get timezone")}}_collectTouchCapability(){this.signals.has_touch="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0}_collectHardwareConcurrency(){try{this.signals.hardware_concurrency=navigator.hardwareConcurrency||null}catch(t){this.signals.hardware_concurrency=null}}_collectDeviceMemory(){try{this.signals.device_memory=navigator.deviceMemory||null}catch(t){this.signals.device_memory=null}}_collectConnectionType(){try{let t=navigator.connection||navigator.mozConnection||navigator.webkitConnection;t&&t.effectiveType?(this.signals.connection_type=t.effectiveType,this.signals.connection_downlink=t.downlink||null,this.signals.connection_rtt=t.rtt||null):(this.signals.connection_type=null,this.signals.connection_downlink=null,this.signals.connection_rtt=null)}catch(t){this.signals.connection_type=null,this.signals.connection_downlink=null,this.signals.connection_rtt=null}}};var k=class k{constructor(t){this.signals=t,this._handlers={},this._field=null}_handleFocus(){this.signals.honeypot_focused=!0,this.signals.honeypot_focus_time=Date.now()}_handleInput(t){this.signals.honeypot_filled=!0,this.signals.honeypot_value=t.target.value,this.signals.honeypot_input_time=Date.now()}attach(t){this._field=t.querySelector("."+k.FIELD_CLASS),this._field&&(this._handlers.focus=this._handleFocus.bind(this),this._handlers.input=this._handleInput.bind(this),this._field.addEventListener("focus",this._handlers.focus,!1),this._field.addEventListener("input",this._handlers.input,!1),this._field.value&&(this.signals.honeypot_filled=!0,this.signals.honeypot_value=this._field.value,this.signals.honeypot_prefilled=!0))}detach(){this._field&&this._handlers.focus&&(this._field.removeEventListener("focus",this._handlers.focus,!1),this._field.removeEventListener("input",this._handlers.input,!1)),this._field=null,this._handlers={}}};r(k,"FIELD_CLASS","activelayer-hp-field");var E=k;var c=class c{constructor(){this._form=null,this._initialized=!1,this._trackers={},this.signals=this._createEmptySignals()}_createEmptySignals(){return{input_begin:null,form_submit:null,keypress_count:0,keypress_timings:[],modifier_keys:[],correction_keys:[],keystroke_variance:null,click_count:0,click_timings:[],move_count:0,move_timings:[],mouse_efficiency:null,touch_count:0,touch_timings:[],touchmove_count:0,scroll_count:0,focus_count:0,page_click_count:0,text_selection_count:0,screen_info:null,timezone:null,has_touch:!1,collection_errors:[],honeypot_filled:!1,honeypot_value:null,honeypot_prefilled:!1,honeypot_focused:!1,honeypot_focus_time:null,honeypot_input_time:null}}_markInputBegin(){this.signals.input_begin===null&&(this.signals.input_begin=Date.now())}_logError(t,e){this.signals.collection_errors.push({method:t,message:e,timestamp:Date.now()})}init(t){if(!t||!(t instanceof HTMLFormElement))return this._logError("init","Invalid form element provided"),!1;this._initialized&&this.destroy(),this._form=t,this.signals=this._createEmptySignals();try{let e=this._markInputBegin.bind(this),s=this._logError.bind(this);return this._trackers.keypress=new m(this.signals,e,c.MAX_TIMING_SAMPLES),this._trackers.keypress.attach(t),this._trackers.mouse=new f(this.signals,e),this._trackers.mouse.attach(t),this._trackers.touch=new p(this.signals,e),this._trackers.touch.attach(t),this._trackers.scroll=new y(this.signals,e),this._trackers.scroll.attach(),this._trackers.focus=new v(this.signals,e),this._trackers.focus.attach(t),this._trackers.pageInteraction=new T(this.signals,e,s),this._trackers.pageInteraction.attach(t),this._trackers.deviceInfo=new w(this.signals,s),this._trackers.deviceInfo.collect(),this._trackers.honeypot=new E(this.signals),this._trackers.honeypot.attach(t),this._initialized=!0,!0}catch(e){return this._logError("init",e.message),!1}}destroy(){this._initialized&&(Object.values(this._trackers).forEac
1h(t=>{t&&typeof t.detach=="function"&&t.detach()}),this._trackers={},this._form=null,this._initialized=!1)}getFingerprint(){if(this.signals.form_submit=Date.now(),this.signals.keypress_timings.length>=3&&(this.signals.keystroke_variance=M(this.signals.keypress_timings.map(e=>e[0]))),this._trackers.mouse){let e=this._trackers.mouse.calculateEfficiency();e!==null&&(this.signals.mouse_efficiency=e)}let t=A({},this.signals);return t.keypress_timings=this.prepareTimingArray(this.signals.keypress_timings,c.MAX_TIMING_SAMPLES),t.click_timings=this.prepareTimingArray(this.signals.click_timings,c.MAX_TIMING_SAMPLES),t.move_timings=this.prepareTimingArray(this.signals.move_timings,c.MAX_TIMING_SAMPLES),t.touch_timings=this.prepareTimingArray(this.signals.touch_timings,c.MAX_TIMING_SAMPLES),t.modifier_keys=this.prepareTimingArray(this.signals.modifier_keys,c.MAX_TIMING_SAMPLES),t.correction_keys=this.prepareTimingArray(this.signals.correction_keys,c.MAX_TIMING_SAMPLES),t}prepareTimingArray(t,e=100){if(!Array.isArray(t)||t.length===0)return[];if(t.length<=e)return t.slice();let s=[],l=(t.length-1)/(e-1);for(let n=0;n<e;n++){let o=Math.round(n*l);s.push(t[o])}return s}};r(c,"MAX_TIMING_SAMPLES",100);var d=c;typeof window.ActiveLayer=="undefined"&&(window.ActiveLayer={});window.ActiveLayer.BehavioralCollector=d;window.ActiveLayer._collectors=window.ActiveLayer._collectors||new Map;window.ActiveLayer._behavioralCleanup=window.ActiveLayer._behavioralCleanup||[];function x(i){if(!i||!(i instanceof HTMLFormElement))return null;if(!window.ActiveLayer._collectors.has(i)){let t=new d;t.init(i),window.ActiveLayer._collectors.set(i,t)}return window.ActiveLayer._collectors.get(i)}function _(i){!i||!(i instanceof HTMLFormElement)||!i.querySelector("input.activelayer-behavioral-signals")||x(i)}function b(){document.querySelectorAll("form").forEach(function(s){_(s)});var t=function(s){let l=s.target;if(!l||l.tagName!=="FORM")return;let n=l.querySelector("input.activelayer-behavioral-signals");if(n){let o=window.ActiveLayer._collectors.get(l);o&&o._initialized&&(n.value=JSON.stringify(o.getFingerprint()))}};document.addEventListener("submit",t,!0);var e=function(s){let l=s.target.closest('button[type="submit"], input[type="submit"]');if(!l)return;let n=l.closest("form");if(!n)return;let o=n.querySelector("input.activelayer-behavioral-signals");if(o){let a=window.ActiveLayer._collectors.get(n);a&&a._initialized&&(o.value=JSON.stringify(a.getFingerprint()))}};document.addEventListener("click",e,!0),window.ActiveLayer._behavioralCleanup.push(function(){document.removeEventListener("submit",t,!0)},function(){document.removeEventListener("click",e,!0)})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",b):b();typeof jQuery!="undefined"&&jQuery(document).on("nfFormReady",function(i,t){if(t&&t.el){let e=jQuery(t.el).closest("form")[0];e&&_(e)}else document.querySelectorAll(".nf-form-cont form").forEach(function(s){_(s)})});if(typeof MutationObserver!="undefined"){let i=new MutationObserver(function(t){t.forEach(function(e){e.addedNodes.length&&e.addedNodes.forEach(function(s){if(s.nodeType===1){s.tagName==="FORM"&&_(s),(s.querySelectorAll?s.querySelectorAll("form"):[]).forEach(function(o){_(o)});let n=s.querySelectorAll?s.querySelectorAll("input.activelayer-behavioral-signals"):[];n.length>0&&n.forEach(function(o){let a=o.closest("form");a&&_(a)})}})})});i.observe(document.body||document.documentElement,{childList:!0,subtree:!0}),window.ActiveLayer._behavioralCleanup.push(function(){i.disconnect()})}window.addEventListener("pagehide",function(){window.ActiveLayer&&window.ActiveLayer._behavioralCleanup&&(window.ActiveLayer._behavioralCleanup.forEach(function(i){i()}),window.ActiveLayer._behavioralCleanup=[])});})(); 2/** 3 * KeypressTracker - Tracks keyboard input patterns. 4 * 5 * Monitors keydown/keyup events to measure typing patterns including 6 * timing, modifier keys, and correction keys. These signals help 7 * distinguish human typing from automated input. 8 * 9 * @since 1.1.0 10 * @license GPL-2.0-or-later 11 */ 12/** 13 * MouseTracker - Tracks mouse click and movement patterns. 14 * 15 * Monitors mouse events to measure click patterns, movement paths,
16 * and path efficiency. These signals help distinguish human interaction 17 * from automated mouse control. 18 * 19 * @since 1.1.0 20 * @license GPL-2.0-or-later 21 */ 22/** 23 * TouchTracker - Tracks touch interaction patterns. 24 * 25 * Monitors touch events to detect mobile devices and measure 26 * touch interaction patterns. These signals help identify 27 * device type and distinguish human touch from automated input. 28 * 29 * @since 1.1.0 30 * @license GPL-2.0-or-later 31 */ 32/** 33 * ScrollTracker - Tracks scroll interaction patterns. 34 * 35 * Monitors scroll events to detect user engagement and 36 * distinguish from automated scrolling. Uses session-based 37 * counting to measure scroll "actions" not individual events. 38 * 39 * @since 1.1.0 40 * @license GPL-2.0-or-later 41 */ 42/** 43 * FocusTracker - Tracks form field focus patterns. 44 * 45 * Monitors field focus events to measure form navigation patterns. 46 * This is a CleanTalk-inspired signal that helps identify human 47 * interaction with form fields. 48 * 49 * @since 1.1.0 50 * @license GPL-2.0-or-later 51 */ 52/** 53 * Behavioral Collector Utility Functions 54 * 55 * Common utility functions used across behavioral trackers. 56 * 57 * @since 1.1.0 58 * @license GPL-2.0-or-later 59 */ 60/** 61 * PageInteractionTracker - Tracks page-level interaction patterns. 62 * 63 * Monitors clicks outside the form and text selection events. 64 * These CleanTalk-inspired signals help identify user engagement 65 * with the broader page beyond just the form. 66 * 67 * @since 1.1.0 68 * @license GPL-2.0-or-later 69 */ 70/** 71 * DeviceInfoCollector - Collects static device/environment data. 72 * 73 * Gathers device information like screen dimensions, timezone, 74 * and touch capability. This data helps identify device characteristics 75 * and potential automation environments. 76 * 77 * @since 1.1.0 78 * @license GPL-2.0-or-later 79 */ 80/** 81 * HoneypotTracker - Tracks interactions with honeypot field. 82 * 83 * Monitors if the honeypot field receives any interaction (focus, 84 * input, value changes). Any interaction indicates bot behavior. 85 * 86 * @since 1.1.0 87 * @license GPL-2.0-or-later 88 */ 89/** 90 * ActiveLayer Behavioral Collector 91 * 92 * Collects client-side behavioral signals (keystrokes, mouse movements, touch events, 93 * scroll patterns, etc.) to help identify automated bots. Signals are sent to the API 94 * for ML classification rather than making local bot decisions. 95 * 96 * Inspired by Akismet and CleanTalk behavioral analysis approaches. 97 * 98 * @since 1.1.0 99 * @license GPL-2.0-or-later 100 */ 101/** 102 * ActiveLayer Behavioral Collector Entry Point 103 * 104 * Exports BehavioralCollector to window.ActiveLayer and sets up form listeners. 105 * 106 * @since 1.1.0 107 * @license GPL-2.0-or-later 108 */
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.