1var u=" daum[ /]| deusu/|(?:^|[^g])news(?!sapphire)|(?<! (?:channel/|google/))google(?!(app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!(?:lib))http|(?<![hg]m)score|(?<!cam)scan|24x7|@[a-z][\\w-]+\\.|\\(\\)|\\.com\\b|\\bperl\\b|\\btime/|\\||^[\\w \\.\\-\\(?:\\):%]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[^ ]{50,}$|^\\d+\\b|^\\W|^\\w*search\\b|^\\w+/[\\w\\(\\)]*$|^active|^ad muncher|^amaya|^avsdevicesdk/|^azure|^biglotron|^bot|^bw/|^clamav[ /]|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^email|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^igetter/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d\\s[\\w\\.-]+$|^mozilla/\\d\\.\\d\\s\\(compatible;?(?:\\s\\w+\\/\\d+\\.\\d+)?\\)$|^navermailapp|^netsurf|^offline|^openai/|^owler|^php|^postman|^python|^rank|^read|^reed|^rest|^rss|^snapchat|^space bison|^svn|^swcd |^taringa|^thumbor/|^track|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|agent\\b|analyzer|archive|ask jeeves/teoma|audit|bit\\.ly/|bluecoat drtr|browsex|burpcollaborator|capture|catch|check\\b|checker|chrome-lighthouse|chromeframe|classifier|cloudflare|convertify|crawl|cypress/|dareboost|datanyze|dejaclick|detect|dmbrowser|download|evc-batch/|exaleadcloudview|feed|fetcher|firephp|functionize|grab|headless|httrack|hubspot marketing grader|hydra|ibisbrowser|infrawatch|insight|inspect|iplabel|java(?!;)|library|linkcheck|mail\\.ru/|manager|measure|neustar wpm|node\\b|nutch|offbyone|onetrust|optimize|pageburst|pagespeed|parser|phantomjs|pingdom|powermarks|preview|proxy|ptst[ /]\\d|retriever|rexx;|rigor|rss\\b|scrape|server|sogou|sparkler/|speedcurve|spider|splash|statuscake|supercleaner|synapse|synthetic|tools|torrent|transcoder|url|validator|virtuoso|wappalyzer|webglance|webkit2png|whatcms/|xtate/",l=/bot|crawl|http|lighthouse|scan|search|spider/i,o;function p(){if(o instanceof RegExp)return o;try{o=new RegExp(u,"i")}catch{o=l}return o}function b(e){return!!e&&p().test(e)}const s="filestudio-attribution";function n(e){return e.toLowerCase().replace(/[^a-z0-9.-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").slice(0,64)||"direct"}function g(){if(typeof window>"u")return{source:"direct",sourceType:"direct",trafficType:"human",trackingAllowed:!1};const e=b(navigator.userAgent)?"bot":"human",t=navigator.doNotTrack!=="1"&&e==="human";if(!t)return{source:"direct",sourceType:"direct",trafficType:e,trackingAllowed:t};try{const a=sessionStorage.getItem(s);if(a)return{...JSON.parse(a),trafficType:e,trackingAllowed:t}}catch{}const r=new URLSearchParams(location.search).get("utm_source");let c=r?n(r):"direct",i=r?"utm":"direct";if(!r&&document.referrer)try{const a=new URL(document.referrer);a.origin!==location.origin&&(c=n(a.hostname),i="referral")}catch{}const d={source:c,sourceType:i,trafficType:e,trackingAllowed:t};if(t)try{sessionStorage.setItem(s,JSON.stringify({source:c,sourceType:i}))}catch{}return d}function h(e,t={}){const r=g();!r.trackingAllowed||!window.gtag||window.gtag("event",e,{source:r.source,source_type:r.sourceType,traffic_type:r.trafficType,distribution:"direct",...t})}export{g as c,h as t};
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.