1(function($){if(updateUtm()){utm=getUtmParams();$.each(utm,function(i,val){updateFirst(i,val);updateCurrent(i,val)})} 2setUtmCookie()})(jQuery);function updateUtm(){var utmSession=getCookie('frontend_utm');if(!utmSession){regenerateUtmCookie();return!0} 3var now=tStamp();if(now-utmSession>3600){regenerateUtmCookie();return!0} 4return!1} 5function updateFirst(param,value){param='first_'+param;if(!localStorage.getItem(param)){localStorage.setItem(param,value)}} 6function updateCurrent(param,value){param='current_'+param;localStorage.setItem(param,value)} 7function getUtmParams(){return{"utm_source":getParamValue('utm_source'),"utm_medium":getParamValue('utm_medium'),"utm_campaign":getParamValue('utm_campaign'),"utm_content":getParamValue('utm_content'),"utm_term":getParamValue('utm_term')}} 8function getParamValue(param){hasUtmSource=getUrlParameter('utm_source');hasGclid=getUrlParameter('gclid');if(!hasUtmSource){if(hasGclid){return'paid search'} 9return'none'} 10value=getUrlParameter(param);if(value){return value} 11return'none'} 12function regenerateUtmCookie(){document.cookie="frontend_utm="+tStamp()+"; path=/"} 13function getSavedUtmValues(){utm=getUtmParams();saved={};jQuery.each(utm,function(i,val){i='first_'+i;saved[i]=localStorage.getItem(i)});jQuery.each(utm,function(i,val){i='current_'+i;saved[i]=localStorage.getItem(i)});return saved} 14function getFirstUtmValues(){utm=getUtmParams();saved={};jQuery.each(utm,function(i,val){i='first_'+i;key=i.replace('first_utm_','') 15saved[key]=key+'='+localStorage.getItem(i)});return saved} 16function clearUtm(){utm=getUtmParams();jQuery.each(utm,function(i,val){localStorage.removeItem('first_'+i);localStorage.removeItem('current_'+i)});document.cookie="frontend_utm=0; path=/";return'cleared'} 17function clearUtmSes(){document.cookie="frontend_utm=0; path=/";return'cleared'} 18function setUtmCookie(){document.cookie="utm_data="+btoa(JSON.stringify(getSavedUtmValues()))+"; path=/"}
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.