/* * Copyright (c) 2011, Yahoo! Inc. All rights reserved. * Copyright (c) 2011-2012, Log-Normal, Inc. All rights reserved. * Copyright (c) 2012-2017, SOASTA, Inc. All rights reserved. * Copyright (c) 2017, Akamai Technologies, Inc. All rights reserved. * Copyrights licensed under the BSD License. See the accompanying LICENSE.txt file for terms. */ /* JavaScript MD5 1.0.1 Copyright 2011, Sebastian Tschan. Licensed under the MIT license. */ /* Boomerang Version: 1.632.0 139f333a35e2484b05a07930423f1e230719cb95 */ function BOOMR_check_doc_domain(a){if(window){if(!a){if(window.parent===window||!document.getElementById("boomr-if-as"))return;if(window.BOOMR&&BOOMR.boomerang_frame&&BOOMR.window)try{BOOMR.boomerang_frame.document.domain!==BOOMR.window.document.domain&&(BOOMR.boomerang_frame.document.domain=BOOMR.window.document.domain)}catch(b){BOOMR.isCrossOriginError(b)||BOOMR.addError(b,"BOOMR_check_doc_domain.domainFix")}a=document.domain}if(a&&-1!==a.indexOf(".")&&window.parent){try{window.parent.document;return}catch(b){try{document.domain=a}catch(c){return}}try{window.parent.document;return}catch(b){a=a.replace(/^[\w\-]+\./,"")}BOOMR_check_doc_domain(a)}}}BOOMR_start=(new Date).getTime();BOOMR_check_doc_domain();!function(a){var b,c,d,e,f,g,h,i=a;a.parent!==a&&document.getElementById("boomr-if-as")&&"script"===document.getElementById("boomr-if-as").nodeName.toLowerCase()&&(a=a.parent);d=a.document;a.BOOMR||(a.BOOMR={});BOOMR=a.BOOMR;if(!BOOMR.version){BOOMR.version="1.632.0";BOOMR.window=a;BOOMR.boomerang_frame=i;BOOMR.plugins||(BOOMR.plugins={});!function(){try{void 0!==new a.CustomEvent("CustomEvent")&&(e=function(b,c){return new a.CustomEvent(b,c)})}catch(b){}try{!e&&d.createEvent&&d.createEvent("CustomEvent")&&(e=function(a,b){var c=d.createEvent("CustomEvent");b=b||{cancelable:!1,bubbles:!1};c.initCustomEvent(a,b.bubbles,b.cancelable,b.detail);return c})}catch(b){}!e&&d.createEventObject&&(e=function(a,b){var c=d.createEventObject();c.type=c.propertyName=a;c.detail=b.detail;return c});e||(e=function(){})}();f=function(a,b,c){function f(){try{d.dispatchEvent?d.dispatchEvent(g):d.fireEvent&&d.fireEvent("onpropertychange",g)}catch(b){BOOMR.debug("Error when dispatching "+a)}}var g=e(a,{detail:b});g&&(c?BOOMR.setImmediate(f):f())};if(void 0!==d.hidden){g="visibilityState";h="visibilitychange"}else if(void 0!==d.mozHidden){g="mozVisibilityState";h="mozvisibilitychange"}else if(void 0!==d.msHidden){g="msVisibilityState";h="msvisibilitychange"}else if(void 0!==d.webkitHidden){g="webkitVisibilityState";h="webkitvisibilitychange"}b={beacon_url:"",beacon_url_force_https:!0,beacon_urls_allowed:["^//[a-z0-9]+\\.akstat\\.io/?$"],beacon_type:"AUTO",beacon_auth_key:"Authorization",beacon_auth_token:void 0,beacon_with_credentials:!1,beacon_disable_sendbeacon:!1,site_domain:a.location.hostname.replace(/.*?([^.]+\.[^.]+)\.?$/,"$1").toLowerCase(),user_ip:"",autorun:!0,hasSentPageLoadBeacon:!1,r:void 0,events:{page_ready:[],page_unload:[],before_unload:[],dom_loaded:[],visibility_changed:[],prerender_to_visible:[],before_beacon:[],beacon:[],page_load_beacon:[],xhr_load:[],click:[],form_submit:[],config:[],xhr_init:[],spa_init:[],spa_navigation:[],spa_cancel:[],xhr_send:[],xhr_error:[],error:[],netinfo:[],rage_click:[]},public_events:{before_beacon:"onBeforeBoomerangBeacon",beacon:"onBoomerangBeacon",onboomerangloaded:"onBoomerangLoaded"},translate_events:{onbeacon:"beacon",onconfig:"config",onerror:"error",onxhrerror:"xhr_error"},unloadEventsCount:0,unloadEventCalled:0,listenerCallbacks:{},vars:{},singleBeaconVars:{},varPriority:{"-1":{},1:{}},errors:{},disabled_plugins:{},localStorageSupported:!1,LOCAL_STORAGE_PREFIX:"_boomr_",nativeOverwrites:[],xb_handler:function(c){return function(d){var e;d||(d=a.event);d.target?e=d.target:d.srcElement&&(e=d.srcElement);3===e.nodeType&&(e=e.parentNode);e&&e.nodeName&&"OBJECT"===e.nodeName.toUpperCase()&&"application/x-shockwave-flash"===e.type||b.fireEvent(c,e)}},clearEvents:function(){var a;for(a in this.events)this.events.hasOwnProperty(a)&&(this.events[a]=[])},clearListeners:function(){var a;for(a in b.listenerCallbacks)if(b.listenerCallbacks.hasOwnProperty(a))for(;b.listenerCallbacks[a].length;)BOOMR.utils.removeListener(b.listenerCallbacks[a][0].el,a,b.listenerCallbacks[a][0].fn);b.listenerCallbacks={}},fireEvent:function(a,b){var c,d,e,g;a=a.toLowerCase();this.translate_events[a]&&(a=this.translate_events[a]);if(this.events.hasOwnProperty(a)){this.public_events.hasOwnProperty(a)&&f(this.public_events[a],b);e=this.events[a];"before_beacon"!==a&&"beacon"!==a&&BOOMR.real_sendBeacon();g=e.length;for(c=0;c")}for(c=0;c0&&null!==a[d]&&"object"==typeof a[d]?e.push(this.objectToString(a[d],b+("\n\t"===b?"\t":""),c-1)):"&"===b?e.push(encodeURIComponent(a[d])):e.push(a[d]);b=","}else for(d in a)Object.prototype.hasOwnProperty.call(a,d)&&(c>0&&null!==a[d]&&"object"==typeof a[d]?e.push(encodeURIComponent(d)+"="+this.objectToString(a[d],b+("\n\t"===b?"\t":""),c-1)):"&"===b?e.push(encodeURIComponent(d)+"="+encodeURIComponent(a[d])):e.push(d+"="+a[d]));return e.join(b)},getCookie:function(a){if(!a)return null;a=" "+a+"=";var b,c;c=" "+d.cookie+";";if((b=c.indexOf(a))>=0){b+=a.length;c=c.substring(b,c.indexOf(";",b)).replace(/^"/,"").replace(/"$/,"");return c}},setCookie:function(a,b,c){var e,f,g,h,i;if(!a||!BOOMR.session.domain||void 0===b){BOOMR.debug("Invalid parameters or site domain: "+a+"/"+b+"/"+BOOMR.session.domain);BOOMR.addVar("nocookie",1);return!1}e=this.objectToString(b,"&");f=a+'="'+e+'"';if(f.length<500){h=[f,"path=/","domain="+BOOMR.session.domain];if("number"==typeof c){i=new Date;i.setTime(i.getTime()+1e3*c);i=i.toGMTString();h.push("expires="+i)}d.cookie=h.join("; ");g=this.getCookie(a);if(e===g||void 0===g&&"number"==typeof c&&c<=0)return!0;BOOMR.warn("Saved cookie value doesn't match what we tried to set:\n"+e+"\n"+g)}else BOOMR.warn("Cookie too long: "+f.length+" "+f);BOOMR.addVar("nocookie",1);return!1},getSubCookies:function(a){var b,c,d,e,f=!1,g={};if(!a)return null;if("string"!=typeof a){BOOMR.debug("TypeError: cookie is not a string: "+typeof a);return null}b=a.split("&");for(c=0,d=b.length;c=e.expires))return e.items;this.removeLocalStorage(c)},setLocalStorage:function(c,d,e){var f,g,h;if(!c||!b.localStorageSupported||"object"!=typeof d)return!1;f={items:d};"number"==typeof e&&(f.expires=BOOMR.now()+1e3*e);g=a.JSON.stringify(f);if(g.length<5e4){try{a.localStorage.setItem(b.LOCAL_STORAGE_PREFIX+c,g);h=a.localStorage.getItem(b.LOCAL_STORAGE_PREFIX+c);if(g===h)return!0}catch(i){}BOOMR.warn("Saved storage value doesn't match what we tried to set:\n"+g+"\n"+h)}else BOOMR.warn("Storage items too large: "+g.length+" "+g);return!1},removeLocalStorage:function(c){if(!c||!b.localStorageSupported)return!1;try{a.localStorage.removeItem(b.LOCAL_STORAGE_PREFIX+c);return!0}catch(d){}return!1},cleanupURL:function(a,c){if(!a||BOOMR.utils.isArray(a))return"";b.strip_query_string&&(a=a.replace(/\?.*/,"?qs-redacted"));if(void 0!==c&&a&&a.length>c){var d=a.indexOf("?");a=-1!==d&&d10?BOOMR.utils.MD5(b):b)}):a},pluginConfig:function(a,b,c,d){var e,f=0;if(!b||!b[c])return!1;for(e=0;e0},arrayFilter:function(a,b){var c=[];if(!(this.isArray(a)||a&&"number"==typeof a.length)||"function"!=typeof b)return c;if("function"==typeof a.filter)c=a.filter(b);else for(var d,e=-1,f=a.length;++e0&&(k.timer=setTimeout(h,b))}var i,j,k={observer:null,timer:null};if(!this.isMutationObserverSupported()||!e||!b)return null;i=a.MutationObserver;if(a.Zone&&"function"==typeof a.Zone.__symbol__){j=a.Zone.__symbol__("MutationObserver");if(j&&"string"==typeof j&&a.hasOwnProperty(j)&&"function"==typeof a[j]){BOOMR.debug("Detected Zone.js, using native MutationObserver");i=a[j]}}k.observer=new i(h);d&&(k.timer=setTimeout(h,k.timeout));k.observer.observe(b,c);return k},addListener:function(a,c,d,e){var f=!1;if(a.addEventListener){e&&BOOMR.browser.supportsPassive()&&(f={capture:!1,passive:!0});a.addEventListener(c,d,f)}else a.attachEvent&&a.attachEvent("on"+c,d);b.listenerCallbacks[c]=b.listenerCallbacks[c]||[];b.listenerCallbacks[c].push({el:a,fn:d})},removeListener:function(a,c,d){var e;a.removeEventListener?a.removeEventListener(c,d,!1):a.detachEvent&&a.detachEvent("on"+c,d);if(b.listenerCallbacks.hasOwnProperty(c))for(var e=0;e1?decodeURIComponent(f.splice(1).join("=").replace(/\+/g," ")):""}return null},generateUUID:function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0;return("x"===a?b:3&b|8).toString(16)})},generateId:function(a){return"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx".substr(0,a||40).replace(/x/g,function(a){var a=(Math.random()||.01).toString(36);return"0"===a?"0":a.substr(2,1)})},serializeForUrl:function(a){if(BOOMR.utils.Compression&&BOOMR.utils.Compression.jsUrl)return BOOMR.utils.Compression.jsUrl(a);if(window.JSON)return JSON.stringify(a);BOOMR.debug("JSON is not supported");return""},getMyURL:function(){var a,b=document.currentScript||document.getElementById("boomr-if-as")||document.getElementById("boomr-scr-as");if(b)return b.src;var c,d=document.getElementsByTagName("script");for(c=d.length;c--;)if("interactive"===d[c].readyState)return d[c].src;try{throw new Error}catch(e){if("stack"in e){a=this.arrayFilter(e.stack.split(/\n/),function(a){return a.match(/https?:\/\//)});if(a&&a.length)return a[0].replace(/.*(https?:\/\/.+?)(:\d+)+\D*$/m,"$1")}}return""},scroll:function(){var b=void 0!==a.pageXOffset,c="CSS1Compat"===(a.document.compatMode||""),d={x:0,y:0};if(b)if("function"==typeof a.pageXOffset){d.x=a.pageXOffset();d.y=a.pageYOffset()}else{d.x=a.pageXOffset;d.y=a.pageYOffset}else if(c){d.x=a.document.documentElement.scrollLeft;d.y=a.document.documentElement.scrollTop}else{d.x=a.document.body.scrollLeft;d.y=a.document.body.scrollTop}"number"==typeof d.sx&&(d.sx=Math.round(d.sx));"number"==typeof d.sy&&(d.sy=Math.round(d.sy));return d},windowHeight:function(){return a.innerHeight||a.document.documentElement.clientHeight||a.document.body.clientHeight},windowWidth:function(){return a.innerWidth||a.document.documentElement.clientWidth||a.document.body.clientWidth},isNative:function(a){return!!a&&a.toString&&!a.hasOwnProperty("toString")&&/\[native code\]/.test(String(a))},overwriteNative:function(a,c,d){if(a&&d){BOOMR.boomerang_frame!==BOOMR.window&&b.nativeOverwrites.push({obj:a,functionName:c,origFn:a[c]});a[c]=d}},isInteger:function(a){return(Number.isInteger||function(a){return"number"==typeof a&&isFinite(a)&&Math.floor(a)===a})(a)}},browser:{results:{},supportsPassive:function(){if(void 0===BOOMR.browser.results.supportsPassive){BOOMR.browser.results.supportsPassive=!1;if(!Object.defineProperty)return!1;try{var a=Object.defineProperty({},"passive",{get:function(){BOOMR.browser.results.supportsPassive=!0}});window.addEventListener("test",null,a)}catch(b){}}return BOOMR.browser.results.supportsPassive}},init:function(c){var e,f,g=["autorun","beacon_auth_key","beacon_auth_token","beacon_with_credentials","beacon_disable_sendbeacon","beacon_url","beacon_url_force_https","beacon_type","site_domain","strip_query_string","user_ip"];BOOMR_check_doc_domain();c||(c={});void 0!==c.log&&(this.log=c.log);this.log||(this.log=function(){});if(!this.pageId){this.pageId=BOOMR.utils.generateId(8);BOOMR.debug("Generated PageID: "+this.pageId)}if(c.primary&&b.handlers_attached)return this;"string"==typeof c.site_domain&&(this.session.domain=c.site_domain);void 0!==c.autorun&&(b.autorun=c.autorun);for(f in this.plugins)if(this.plugins.hasOwnProperty(f)){if(c[f]&&c[f].hasOwnProperty("enabled")&&!1===c[f].enabled){b.disabled_plugins[f]=1;"function"==typeof this.plugins[f].disable&&this.plugins[f].disable();continue}if(b.disabled_plugins[f]){if(!c[f]||!c[f].hasOwnProperty("enabled")||!0!==c[f].enabled)continue;"function"==typeof this.plugins[f].enable&&this.plugins[f].enable();delete b.disabled_plugins[f]}if("function"==typeof this.plugins[f].init)try{this.plugins[f].init(c)}catch(i){BOOMR.addError(i,f+".init")}}for(e=0;e0||a.BOOMR_onload>0},onloadFired:function(){return b.onloadfired},setImmediate:function(b,c,d,e){var f,g;f=function(){b.call(e||null,c,d||{},g);f=null};a.requestIdleCallback?a.requestIdleCallback(f,{timeout:1e3}):a.setImmediate?a.setImmediate(f):setTimeout(f,10)},now:function(){return Date.now||function(){return(new Date).getTime()}}(),getPerformance:function(){try{if(BOOMR.window)return"performance"in BOOMR.window&&BOOMR.window.performance?BOOMR.window.performance:BOOMR.window.msPerformance||BOOMR.window.webkitPerformance||BOOMR.window.mozPerformance}catch(a){}},hrNow:function(){var a,b,c=BOOMR.getPerformance();if(c&&c.now)a=c.now();else{b=BOOMR.plugins.RT&&BOOMR.plugins.RT.navigationStart&&BOOMR.plugins.RT.navigationStart()||BOOMR.t_lstart||BOOMR.t_start;a=BOOMR.now()-b}return a},visibilityState:void 0===g?function(){return"visible"}:function(){return d[g]},lastVisibilityEvent:{},registerEvent:function(a){if(b.events.hasOwnProperty(a))return this;b.events[a]=[];return this},disable:function(){b.clearEvents();b.clearListeners()},fireEvent:function(a,c){return b.fireEvent(a,c)},subscribe:function(c,d,e,f,g){var h,i,j;c=c.toLowerCase();b.translate_events[c]&&(c=b.translate_events[c]);b.events.hasOwnProperty(c)||(b.events[c]=[]);j=b.events[c];for(h=0;h1?" (*"+b.errors[c]+")":""));f.length>0&&(b.vars.errors=f.join("\n"));b.errors={};b.fireEvent("before_beacon",b.vars);for(c in b.vars)b.vars.hasOwnProperty(c)&&(g[c]=b.vars[c]);BOOMR.removeVar(["qt","pgu"]);for(var j in b.singleBeaconVars)b.singleBeaconVars.hasOwnProperty(j)&&BOOMR.removeVar(j);b.singleBeaconVars={};if(!b.hasSentPageLoadBeacon&&i){b.hasSentPageLoadBeacon=!0;BOOMR.setImmediate(function(){b.fireEvent("page_load_beacon",g)})}if(BOOMR.session.rate_limited){BOOMR.debug("Skipping because we're rate limited");return!1}BOOMR.sendBeaconData(g);return!0},hasSentPageLoadBeacon:function(){return b.hasSentPageLoadBeacon},sendBeaconData:function(c){var d,e,f,g,h,i=[],j=[],k=!0;BOOMR.debug("Ready to send beacon: "+BOOMR.utils.objectToString(c));b.beacon_url=b.beacon_url_override||b.beacon_url;if(!b.beacon_url){BOOMR.debug("No beacon URL, so skipping.");return!1}if(!b.beaconUrlAllowed(b.beacon_url)){BOOMR.debug("Beacon URL not allowed: "+b.beacon_url);return!1}if(0===c.length)return!1;b.fireEvent("beacon",c);i=this.getVarsOfPriority(c,-1);j=this.getVarsOfPriority(c,1);d=i.concat(this.getVarsOfPriority(c,0),j);e=d.join("&");b.beacon_url_force_https&&b.beacon_url.match(/^\/\//)&&(b.beacon_url="https:"+b.beacon_url);f=b.beacon_url+(b.beacon_url.indexOf("?")>-1?"&":"?")+e;if("GET"===b.beacon_type){k=!0;f.length>BOOMR.constants.MAX_GET_LENGTH&&(window.console&&(console.warn||console.log)||function(){})("Boomerang: Warning: Beacon may not be sent via GET due to payload size > 2000 bytes")}else("POST"===b.beacon_type||f.length>BOOMR.constants.MAX_GET_LENGTH)&&(k=!1);if(a&&a.navigator&&"function"==typeof a.navigator.sendBeacon&&BOOMR.utils.isNative(a.navigator.sendBeacon)&&"function"==typeof a.Blob&&"GET"!==b.beacon_type&&void 0===b.beacon_auth_token&&!b.beacon_disable_sendbeacon){var l=new a.Blob([e+"&sb=1"],{type:"application/x-www-form-urlencoded"});if(a.navigator.sendBeacon(b.beacon_url,l))return!0}BOOMR.orig_XMLHttpRequest||a&&a.XMLHttpRequest||(k=!0);if(k){try{g=new Image}catch(m){BOOMR.debug("Image is not a constructor, not sending a beacon");return!1}g.src=f}else{h=new(BOOMR.window.orig_XMLHttpRequest||BOOMR.orig_XMLHttpRequest||BOOMR.window.XMLHttpRequest);try{this.sendXhrPostBeacon(h,e)}catch(m){h=new BOOMR.boomerang_frame.XMLHttpRequest;this.sendXhrPostBeacon(h,e)}}return!0},hasSentPageLoadBeacon:function(){return b.hasSentPageLoadBeacon},sendXhrPostBeacon:function(a,c){a.open("POST",b.beacon_url);a.setRequestHeader("Content-type","application/x-www-form-urlencoded");if(void 0!==b.beacon_auth_token){void 0===b.beacon_auth_key&&(b.beacon_auth_key="Authorization");a.setRequestHeader(b.beacon_auth_key,b.beacon_auth_token)}b.beacon_with_credentials&&(a.withCredentials=!0);a.send(c)},getVarsOfPriority:function(a,c){var d,e=[],f=0!==c?b.varPriority[c]:a;for(d in f)if(f.hasOwnProperty(d)&&a.hasOwnProperty(d)){e.push(this.getUriEncodedVar(d,void 0===a[d]?"":a[d]));0!==c&&delete a[d]}return e},getUriEncodedVar:function(a,b){void 0!==b&&null!==b||(b="");"object"==typeof b&&(b=BOOMR.utils.serializeForUrl(b));return encodeURIComponent(a)+"="+encodeURIComponent(b)},getResourceTiming:function(a,b,c){var d,e=BOOMR.getPerformance();try{if(e&&"function"==typeof e.getEntriesByName){d=e.getEntriesByName(a);if(!d||!d.length)return;if("function"==typeof c){d=BOOMR.utils.arrayFilter(d,c);if(!d||!d.length)return}d.length>1&&"function"==typeof b&&d.sort(b);return d[d.length-1]}}catch(f){BOOMR.warn("getResourceTiming:"+f)}}};c.url=c.utils.getMyURL();delete BOOMR_start;if("number"==typeof BOOMR_lstart){c.t_lstart=BOOMR_lstart;delete BOOMR_lstart}else"number"==typeof BOOMR.window.BOOMR_lstart&&(c.t_lstart=BOOMR.window.BOOMR_lstart);"number"==typeof BOOMR.window.BOOMR_onload&&(c.t_onload=BOOMR.window.BOOMR_onload);!function(){var a;"object"==typeof console&&void 0!==console.log?c.log=function(a,b,c){console.log("("+BOOMR.now()+") {"+BOOMR.pageId+"}: "+c+": ["+b+"] "+a)}:c.log=function(){};a=function(a){return function(b,c){this.log(b,a,"boomerang"+(c?"."+c:""));return this}};c.debug=a("debug");c.info=a("info");c.warn=a("warn");c.error=a("error")}();try{var j=c.getPerformance();j&&"function"==typeof j.now&&/\[native code\]/.test(String(j.now))&&j.timing&&j.timing.navigationStart&&(c.now=function(){return Math.round(j.now()+j.timing.navigationStart)})}catch(k){}b.checkLocalStorageSupport();!function(){var a;for(a in c)c.hasOwnProperty(a)&&(BOOMR[a]=c[a]);BOOMR.xhr_excludes||(BOOMR.xhr_excludes={})}();f("onBoomerangLoaded",{BOOMR:BOOMR},!0)}}(window);!function(){if(!BOOMR.plugins.ConfigOverride){var a={safeConfigOverride:function(b,c,d){for(var e in c)if(b.hasOwnProperty(e)&&c.hasOwnProperty(e)&&("object"!=typeof c[e]||"object"==typeof b[e]))if("object"==typeof b[e]&&"object"==typeof c[e]){d[e]=d[e]||{};a.safeConfigOverride(b[e],c[e],d[e])}else{d[e]=b[e];BOOMR.addVar("c.o","")}},allowedConfigOverrides:{Akamai:{enabled:!0,dns_prefetch_enabled:!0,mapping_xhr_base_url:!0,mapping_xhr_url_path:!0,mapping_xhr_url_v4_prefix:!0,mapping_xhr_url_v6_prefix:!0},Angular:{enabled:!0},Ember:{enabled:!0},Backbone:{enabled:!0},History:{enabled:!0,auto:!0,disableHardNav:!0,routeFilter:!0,routeChangeWaitFilter:!0},PageParams:{enabled:!0,pageGroups:!0,customMetrics:!0,customDimensions:!0,customTimers:!0,abTests:!0,defaultDecimal:!0,defaultThousands:!0,xhr:!0,pci:!0,pciBlacklist:!0},CrossDomain:{cross_domain_url:!0,sending:!0,session_transfer_timeout:!0},IFrameDelay:{enabled:!0,monitoredCount:!0,registerParent:!0},instrument_xhr:!0,RT:{cookie:!0,session_exp:!0},BW:{base_url:!0,enabled:!0,test_https:!0},ResourceTiming:{enabled:!0,clearOnBeacon:!0,trimUrls:!0,serverTiming:!0,monitorClearResourceTimings:!0},AutoXHR:{alwaysSendXhr:!0,filters:!0,monitorFetch:!0,fetchBodyUsedWait:!0},Errors:{enabled:!0,onError:!0,monitorGlobal:!0,monitorNetwork:!0,monitorConsole:!0,monitorEvents:!0,monitorTimeout:!0,monitorRejection:!0,monitorReporting:!0,sendAfterOnload:!0,maxErrors:!0,sendInterval:!0},TPAnalytics:{enabled:!0},Continuity:{enabled:!0,monitorLongTasks:!0,monitorPageBusy:!0,monitorFrameRate:!0,monitorInteractions:!0,monitorStats:!0,afterOnload:!0,afterOnloadMaxLength:!0,afterOnloadMinWait:5e3,waitAfterOnload:!0,ttiWaitForFrameworkReady:!0,ttiWaitForHeroImages:!0,sendLog:!0,logMaxEntries:100,sendTimeline:!0},UserTiming:{enabled:!0},LOGN:{storeConfig:!0},autorun:!0}};BOOMR.plugins.ConfigOverride={init:function(b){if(BOOMR.window&&BOOMR.window.BOOMR_config){BOOMR.debug("Found BOOMR_config on global scope: "+BOOMR.utils.objectToString(BOOMR.window.BOOMR_config,void 0,1),"ConfigOverride");a.safeConfigOverride(BOOMR.window.BOOMR_config,a.allowedConfigOverrides,b)}return this},is_complete:function(){return!0}}}}();!function(){function a(a){BOOMR.debug(a,"Continuity")}function b(a){var b=window.UserTimingCompression||BOOMR.window.UserTimingCompression;return b?b.jsUrl(a):window.JSON?JSON.stringify(a):""}function c(a,b,c,d,e){var f,j,k,l,m,n="",o=0;if(!c||!BOOMR.utils.Compression)return"";if(0===c.length)return"";if(b){void 0===c[d]&&(c[d]=0);for(f=d+1;f<=e;f++)void 0===c[f]&&(c[f]=c[f-1])}for(f=d;f<=e;f++){o="number"!=typeof c[f]||isNaN(c[f])?0:c[f];a===g?k=o<=63?p.charAt(o):q+o.toString(36)+q:a===h?k=o.toString(36):a===i&&(k=o<99?o<=9?"0"+Math.max(o,0):o:"__");if(f+3<=e&&(c[f+1]===o||0===o&&void 0===c[f+1])&&(c[f+2]===o||0===o&&void 0===c[f+2])&&(c[f+3]===o||0===o&&void 0===c[f+3])){j=1;for(;fd.logMaxEntries&&Array.prototype.splice.call(C,0,C.length-d.logMaxEntries)}function k(b,c){var d,f=0,g=0,h=1/0,i=0,j=Math.floor((c-a)/e);if(!A[b])return 0;for(var k in A[b]){k=parseInt(k,10);if(k>=j&&A[b].hasOwnProperty(k)){d=A[b][k];f++;g+=d;h=Math.min(h,d);i=Math.max(i,d)}}return{total:g,count:f,min:h,max:i}}function l(a){var b,c,d,e,f,g,h=0;if(!BOOMR.window||!BOOMR.window.document||"function"!=typeof BOOMR.window.document.querySelectorAll)return 0;if(!r||"function"!=typeof r.getEntriesByType)return 0;b=a+", "+a+" * img, "+a+" * image";c=BOOMR.window.document.querySelectorAll(b);if(c&&c.length)for(d=0;dz)h=0;else if(A.interdly&&A.interdly[g])h=0;else{h++;if(h>=w){D=a+(g-w)*e;D=Math.max(D,E);break}}D>0&&d.addToBeacon("c.tti",s.timeToInteractive())}}}function u(){A={};C=[]}function v(){for(var a in A)A.hasOwnProperty(a)&&(A[a]=[]);C=[]}var w=5,x=20,y=x/(1e3/e),z=50,A={},B={},C=[],D=0,E=0,F=0;BOOMR.fpsLog&&BOOMR.fpsLog.length&&(a=BOOMR.fpsLog[0]+t);s.timeToInteractive=function(){if(D)return D-t};s.timeToVisuallyReady=function(){if(E)return E-t};s.timeToHeroImagesReady=function(){if(d.ttiWaitForHeroImages&&F)return F-t};s.timeToFrameworkReady=function(){if(d.ttiWaitForFrameworkReady&&d.frameworkReady)return d.frameworkReady-t};s.log=function(){return C};return{register:b,set:h,log:j,increment:i,getTimeBucket:f,getStats:k,analyze:q,stop:u,onBeacon:v}},v=function(a,c){function e(a){var b,d;if(q){b=a.getEntries();Array.prototype.push.apply(p,b);for(d=0;d0&&(g.a=j);i.push(g)}d.addToBeacon("c.lt.n",s.longTasksCount(),!0);d.addToBeacon("c.lt.tt",s.longTasksTime());d.addToBeacon("c.lt",b(i))}}function j(){q=!1;o.disconnect();h()}function k(){h()}if(a.PerformanceObserver&&a.PerformanceLongTaskTiming){var l={unknown:0,self:1,"same-origin-ancestor":2,"same-origin-descendant":3,"same-origin":4,"cross-origin-ancestor":5,"cross-origin-descendant":6,"cross-origin-unreachable":7,"multiple-contexts":8},m={unknown:0,script:1,layout:2},n={unknown:0,iframe:1,embed:2,object:3},o=new a.PerformanceObserver(e);try{o.observe({entryTypes:["longtask"]})}catch(t){return}c.register("longtask",g);var p=[],q=!0,r=0;s.longTasksTime=function(){return r};s.longTasksCount=function(){return p.length};return{getTasks:f,clearTasks:h,analyze:i,stop:j,onBeacon:k}}},w=function(a,b){function c(){var a=BOOMR.now(),b=a-o;o=a;if(b>2*j+k){var c=Math.floor((b-j)/j);p+=c;q+=c;b-=c*j}p++;b>j+k&&q++}function e(){var a=b.getTimeBucket(),c=a,d=0;if(0!==p){for(;p>m+1&&d<=n;){b.set("busy",100,--c);p-=m;q=Math.max(q-m,0);r+=m;t+=m;d++}r+=p;t+=q;b.set("busy",Math.round(q/p*100),a);p=0;q=0}}function f(a){d.addToBeacon("c.b",s.pageBusy())}function g(){u=!1;if(v){clearInterval(v);v=!1}if(w){clearInterval(w);w=!1}}function h(){r=0;t=0}b.register("busy",i);var j=32,k=4,l=100,m=Math.floor(l/j),n=100,o=BOOMR.now(),p=0,q=0,r=0,t=0,u=!0,v=!1,w=!1;s.pageBusy=function(){return 0===r?0:Math.round(t/r*100)};v=setInterval(c,j);w=setInterval(e,l);return{analyze:f,stop:g,onBeacon:h}},x=function(a,b){function c(d){if(o){d-k>=l&&n++;k=d;m++;b.increment("fps");a.requestAnimationFrame(c)}}function f(a){d.addToBeacon("c.f",s.fps());d.addToBeacon("c.f.d",s.fpsDuration());d.addToBeacon("c.f.m",s.fpsMinimum());d.addToBeacon("c.f.l",s.fpsLongFrames());d.addToBeacon("c.f.s",s.fpsStart())}function h(){o=!1;j=0}function i(){o&&(j=BOOMR.now());m=0;n=0}b.register("fps",g);var j,k,l=50,m=0,n=0,o=!0;if(BOOMR.fpsLog&&BOOMR.fpsLog.length){k=j=BOOMR.fpsLog[0]+t;for(var p=0;p=l&&n++;k=q}m=BOOMR.fpsLog.length;delete BOOMR.fpsLog}else j=BOOMR.now();a.requestAnimationFrame(c);s.fps=function(){var a=s.fpsDuration();if(a)return Math.floor(m/(a/1e3))};s.fpsDuration=function(){if(j)return BOOMR.now()-j};s.fpsMinimum=function(){if(s.fpsDuration()){var a=b.getStats("fps",j).min;return a!==1/0?a:void 0}};s.fpsLongFrames=function(){return n};s.fpsStart=function(){return j?j.toString(36):0};return{analyze:f,stop:h,onBeacon:i}},y=function(a,b,c){function f(a){var d=BOOMR.now();u++;d-x>n&&w++;x=d;var e=BOOMR.utils.scroll().y,f=Math.abs(p-e);v+=f;b.increment("scroll",f);if(0===q||Math.abs(q-e)>o){b.log(j,d,{y:e});q=e}c.interact("scroll",d,a);r+=Math.round(f/B*100);t+=Math.round(f/B*100);p=e}function h(){var a=Math.min(r,100);0!==a&&b.set("scrollpct",a);r=0}function k(a){d.addToBeacon("c.s",s.scrollCount());d.addToBeacon("c.s.p",s.scrollPct());d.addToBeacon("c.s.y",s.scrollPixels());d.addToBeacon("c.s.d",s.scrollDistinct())}function l(){if(y){clearInterval(y);y=!1}BOOMR.utils.removeListener(a,"scroll",f)}function m(){t=0;u=0;v=0;w=0}if(a&&a.document&&a.document.body&&a.document.documentElement){var n=2e3,o=20,p=0,q=0,r=0,t=0,u=0,v=0,w=0,x=0,y=!1,z=a.document.body,A=a.document.documentElement;b.register("scroll",g);b.register("scrollpct",i);var B=Math.max(z.scrollHeight,z.offsetHeight,A.clientHeight,A.scrollHeight,A.offsetHeight)-BOOMR.utils.windowHeight();s.scrollPct=function(){return t};s.scrollCount=function(){return u};s.scrollDistinct=function(){return w};s.scrollPixels=function(){return v};BOOMR.utils.addListener(a,"scroll",f,!0);y=setInterval(h,e);return{analyze:k,stop:l,onBeacon:m}}},z=function(a,b,c){function e(a){var d=BOOMR.now(),e=a.clientX,f=a.clientY;m++;var g=Math.round(Math.sqrt(Math.pow(q-f,2)+Math.pow(p-e,2)));if(r===a.target||g<=j){n++;if(n+1>=l){o++;BOOMR.fireEvent("rage_click",a)}}else n=0;p=e;q=f;r=a.target;b.increment("click");b.log(k,d,{x:e,y:f});c.interact("click",d,a)}function f(a){d.addToBeacon("c.c",s.clicksCount());d.addToBeacon("c.c.r",s.clicksRage())}function h(){BOOMR.utils.removeListener(a.document,"click",e)}function i(){m=0;n=0;o=0}b.register("click",g);var j=10,l=3,m=0,n=0,o=0,p=0,q=0,r=null;s.clicksCount=function(){return m};s.clicksRage=function(){return o};BOOMR.utils.addListener(a.document,"click",e,!0);return{analyze:f,stop:h,onBeacon:i}},A=function(a,b,c){function e(a){var d=BOOMR.now();j++;27===a.keyCode&&k++;b.increment("key");b.log(m,d);c.interact("key",d,a)}function f(a){d.addToBeacon("c.k",s.keyCount());d.addToBeacon("c.k.e",s.keyEscapes())}function h(){BOOMR.utils.removeListener(a.document,"keydown",e)}function i(){j=0;k=0}b.register("key",g);var j=0,k=0;s.keyCount=function(){return j};s.keyEscapes=function(){return k};BOOMR.utils.addListener(a.document,"keydown",e,!0);return{analyze:f,stop:h,onBeacon:i}},B=function(a,b,c){function f(a){var c=(BOOMR.now(),a.clientX),d=a.clientY,e=Math.round(Math.sqrt(Math.pow(r-d,2)+Math.pow(q-c,2))),f=Math.round(e/A*100);v+=f;w+=f;x+=e;q=c;r=d;b.increment("mouse",e)}function h(){var a=Math.min(v,100);0!==a&&b.set("mousepct",a);v=0}function j(){if(t!==q||u!==r){if(Math.round(Math.sqrt(Math.pow(u-r,2)+Math.pow(t-q,2)))>=o){b.log(l,BOOMR.now(),{x:q,y:r});t=q;u=r}}}function k(a){d.addToBeacon("c.m.p",s.mousePct());d.addToBeacon("c.m.n",s.mousePixels())}function m(){if(y){clearInterval(y);y=!1}if(z){clearInterval(z);z=!1}BOOMR.utils.removeListener(a.document,"mousemove",f)}function n(){w=0;x=0}b.register("mouse",g);b.register("mousepct",i);var o=10,p=250,q=0,r=0,t=0,u=0,v=0,w=0,x=0,y=!1,z=!1,A=Math.round(Math.sqrt(Math.pow(BOOMR.utils.windowHeight(),2)+Math.pow(BOOMR.utils.windowWidth(),2)));s.mousePct=function(){return w};s.mousePixels=function(){return x};y=setInterval(h,e);z=setInterval(j,p);BOOMR.utils.addListener(a.document,"mousemove",f,!0);return{analyze:k,stop:m,onBeacon:n}},C=function(b,c,e){function f(b,e,f){e=e||BOOMR.now();if(y){u++;q||(q=e);var g=0;if(f&&f.timeStamp){g=f.timeStamp>14e11?e-f.timeStamp:e-t-f.timeStamp;v+=g;null===r&&(r=Math.round(g));if(g>n){c.increment("interdly");w++;x+=g}}c.increment("inter");if(!D&&d.afterOnloadMonitoring){A=BOOMR.now();if(!z){a("Interaction detected, sending a beacon after "+o+" ms");z=A;C=setTimeout(j,p)}if(B){a("Clearing previous interaction timeout");clearTimeout(B);B=!1}B=setTimeout(j,o)}}}function h(){D=!0;i()}function i(){if(B){clearTimeout(B);B=!1}if(C){clearTimeout(C);C=!1}}function j(){a("Sending interaction beacon");i();BOOMR.fireEvent("interaction");d.addToBeacon("rt.tstart",z);d.addToBeacon("rt.end",A);d.addToBeacon("rt.start","manual");d.addToBeacon("http.initiator","interaction");BOOMR.sendBeacon()}function k(a){d.addToBeacon("c.ttfi",s.timeToFirstInteraction());d.addToBeacon("c.i.dc",s.interactionDelayed());d.addToBeacon("c.i.dt",s.interactionDelayedTime());d.addToBeacon("c.i.a",s.interactionAvgDelay());null!==r&&d.addToBeacon("c.fid",s.firstInputDelay(),!0)}function l(){y=!1}function m(){x=0;w=0;u=0;v=0;z=0;A=0;D=!1;i()}c.register("inter",g);c.register("interdly",g);var n=50,o=e,p=3e4,q=0,r=null,u=0,v=0,w=0,x=0,y=!0,z=0,A=0,B=!1,C=!1,D=!1;s.interactionDelayed=function(){return w};s.interactionDelayedTime=function(){return Math.round(x)};s.interactionAvgDelay=function(){if(u>0)return Math.round(v/u)};s.timeToFirstInteraction=function(){if(q)return q-t};s.firstInputDelay=function(){if(null!==r)return r};BOOMR.subscribe("spa_init",h,null,d);return{interact:f,analyze:k,stop:l,onBeacon:m}},D=function(a,b,c){function d(){f=!1}b.register("vis",g);var e={visible:0,hidden:1,prerender:2,unloaded:3},f=!0;BOOMR.subscribe("visibility_changed",function(a){var d=BOOMR.now();if(f){b.increment("vis");b.log(n,d,{s:e[BOOMR.visibilityState()]});c.interact("vis",d,a)}});return{stop:d}},E=function(a,b,c){function d(a){var d=BOOMR.now(),e=window.orientation;if(f){b.increment("orn");var g=window.screen&&(screen.orientation||screen.msOrientation||screen.mozOrientation||{});g&&"number"==typeof g.angle&&(e=screen.orientation.angle);"number"==typeof e&&b.log(o,d,{a:e});c.interact("orn",d,a)}}function e(){f=!1;BOOMR.utils.removeListener(a,"orientationchange",d)}b.register("orn",g);var f=!0;BOOMR.utils.addListener(a,"orientationchange",d,!0);return{stop:e}},F=function(a,b){function c(){var a=r&&r.memory&&r.memory.usedJSHeapSize;a&&b.set("mem",a);q=s.length;b.set("domsz",l.documentElement.innerHTML.length);b.set("domln",q);if(p>0){var c=Math.min(Math.round(p/q*100),100);b.set("mut",c);p=0}}function d(){m&&o&&b.set("bat",o.level)}function e(a){a.forEach(function(a){if("childList"!==a.type)return!0;for(var b=0;b0){BOOMR.removeVar(d.addedVars);d.addedVars=[]}for(a=0;ad.waitAfterOnload){d.complete=!0;BOOMR.sendBeacon()}else{d.timeline.analyze();if(s.timeToInteractive()){d.complete=!0;BOOMR.sendBeacon()}else setTimeout(b,f)}},f)}else d.complete=!0},addToBeacon:function(a,b,c){if(0!==b&&void 0!==b||c){BOOMR.addVar(a,b);d.addedVars.push(a)}else BOOMR.removeVar(a)}};BOOMR.plugins.Continuity={init:function(a){BOOMR.utils.pluginConfig(d,a,"Continuity",["monitorLongTasks","monitorPageBusy","monitorFrameRate","monitorInteractions","monitorStats","afterOnload","afterOnloadMaxLength","afterOnloadMinWait","waitAfterOnload","ttiWaitForFrameworkReady","ttiWaitForHeroImages","sendLog","logMaxEntries","sendTimeline"]);if(d.initialized)return this;d.initialized=!0;d.timeline=new u(BOOMR.now());if(BOOMR.window){if(d.monitorLongTasks&&BOOMR.window.PerformanceObserver&&BOOMR.window.PerformanceLongTaskTiming){d.longTaskMonitor=new v(BOOMR.window,d.timeline);d.ttiMethod="lt"}if(d.monitorFrameRate&&"function"==typeof BOOMR.window.requestAnimationFrame){d.frameRateMonitor=new x(BOOMR.window,d.timeline);d.ttiMethod||(d.ttiMethod="raf")}if(d.monitorPageBusy&&(!BOOMR.window.PerformanceObserver||!BOOMR.window.PerformanceLongTaskTiming||!d.monitorLongTasks)){d.pageBusyMonitor=new w(BOOMR.window,d.timeline);d.ttiMethod||(d.ttiMethod="b")}if(d.monitorInteractions){d.interactionMonitor=new C(BOOMR.window,d.timeline,d.afterOnloadMinWait);d.scrollMonitor=new y(BOOMR.window,d.timeline,d.interactionMonitor);d.keyMonitor=new A(BOOMR.window,d.timeline,d.interactionMonitor);d.clickMonitor=new z(BOOMR.window,d.timeline,d.interactionMonitor);d.mouseMonitor=new B(BOOMR.window,d.timeline,d.interactionMonitor);d.visibilityMonitor=new D(BOOMR.window,d.timeline,d.interactionMonitor);d.orientationMonitor=new E(BOOMR.window,d.timeline,d.interactionMonitor)}d.monitorStats&&(d.statsMonitor=new F(BOOMR.window,d.timeline,d.interactionMonitor))}BOOMR.addVar("c.e",t.toString(36));BOOMR.addVar("c.tti.m",d.ttiMethod);BOOMR.subscribe("before_beacon",d.onBeforeBeacon,null,d);BOOMR.subscribe("beacon",d.onBeacon,null,d);BOOMR.subscribe("page_ready",d.onPageReady,null,d);BOOMR.subscribe("xhr_load",d.onXhrLoad,null,d);return this},is_complete:function(a){return d.complete||a&&"error"===a["http.initiator"]},frameworkReady:function(){d.frameworkReady=BOOMR.now()},metrics:s}}}();!function(){function a(a){try{return a.frames.length}catch(b){return 0}}var b,c,d,e,f,g;if(!BOOMR.plugins.PageParams){var h=".",i=",",j=/(-?(?:[1-9][\d,]*)?[0-9](?:\.\d+)?)/,k=500,l=["img","iframe","script","link","object","svg","video"],m={name:1,"honorific-prefix":1,"given-name":1,"additional-name":1,"family-name":1,"honorific-suffix":1,username:1,"new-password":1,"current-password":1,"street-address":1,country:1,"country-name":1,"postal-code":1,email:1,tel:1},n=["cc-","address-","tel-"],o=[/(?:3[47][0-9]{13})/,/(?:3(?:0[0-5]|[68][0-9])[0-9]{11})/,/(?:6(?:011|5[0-9]{2})(?:[0-9]{12}))/,/(?:(?:2131|1800|35\d{3})\d{11})/,/(?:(?:5[0678]\d\d|6304|6390|67\d\d)\d{8,15})/,/(?:(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12})/,/(?:4[0-9]{12})(?:[0-9]{3})?/,/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/],p=function(){return{pageGroups:{varname:"h.pg",stopOnFirst:!0,isDimension:!0},abTests:{varname:"h.ab",stopOnFirst:!0,isDimension:!0},customMetrics:{cleanUpRE:j},customDimensions:{sanitizeRE:/[^\w\. \-]/g,isDimension:!0},customTimers:{cleanUpRE:j,method:BOOMR.plugins.RT&&BOOMR.plugins.RT.setTimer,ctx:BOOMR.plugins.RT,preProcessor:function(a){return Math.round("number"==typeof a?a:parseFloat(a,10))}}}},q=["src","href","data","codebase"],r={".,":j},s={".":/\./g,",":/,/g," ":/ /g,"'":/'/g};g=function(a){this.varname=a.varname;this.method=a.method||BOOMR.addVar;this.ctx=a.ctx||BOOMR;this.preProcessor=a.preProcessor;this.sanitizeRE=a.sanitizeRE||/[^\w \-]/g;this.cleanUpRE=a.cleanUpRE;this.resourceTime={};this.resources=[];this.RTSupport=!1;this.MOSupport=!1;return this};g.prototype={apply:function(a){this.preProcessor&&(a=this.preProcessor(a));if(!a&&0!==a)return!1;"function"==typeof this.method&&this.method.call(this.ctx,this.varname,a);return!0},handle:function(a,b,c){var d=this;if(!this.isValid(a))return!1;if(a.label)if("ResourceGroup"===a.type&&f.resourceGroupHandlers[a.label])d=f.resourceGroupHandlers[a.label];else{d=new g(this);d.varname=a.label}return d[a.type](a,b,c)},isValid:function(a){return a&&"object"==typeof a&&a.hasOwnProperty("type")&&"function"==typeof this[a.type]&&(this.varname||a.label)},cleanUp:function(a,b){var c,d,e,g,j=this.cleanUpRE;if(!a)return a;if(j){d=b&&b.decimal?b.decimal:f.defaultDecimal;e=b&&b.thousands?b.thousands:f.defaultThousands;if(d!==h||e!==i){g=d+e;j=r[g];if(void 0===j){j=new RegExp("(-?(?:[1-9][\\d"+e+"]*)?[0-9](?:\\"+d+"\\d+)?)");r[g]=j}}c=a.match(j);if(c&&c.length>1){a=c[1];j=s[e];if(void 0===j){j=new RegExp("\\"+e,"g");s[e]=j}a=a.replace(j,"");d!==h&&(a=a.replace(d,h));return a}return""}return a.replace(this.sanitizeRE,"")},isValidObjectMember:function(a,b){return null!==a&&("object"==typeof a||(!("function"!=typeof a||!a.hasOwnProperty(b))||!("string"!=typeof a||!a.hasOwnProperty(b))))},extractFromDOMElement:function(a,b){var c,d,e="";if(f.pci&&this.hasSensitiveData(a)){BOOMR.appendVar("pci.redacted",b.label);return!1}null===a||!a.nodeName||"INPUT"!==a.nodeName.toUpperCase()&&"TEXTAREA"!==a.nodeName.toUpperCase()&&"SELECT"!==a.nodeName.toUpperCase()?null!==a&&(e=a.textContent||a.innerText):("checkbox"!==a.type.toLowerCase()&&"radio"!==a.type.toLowerCase()||a.checked)&&(e=a.value);if(f.pci&&this.isSensitiveData(e)){BOOMR.appendVar("pci.redacted",b.label);return!1}if(b.match&&"numeric"!==b.match){if("boolean"===b.match)e=1;else if(b.match.match(/^regex:/)){c=b.match.match(/^regex:(.*)/);if(!c||c.length<2)return!1;try{d=new RegExp(c[1],"i");d.test(e)&&(e=1)}catch(g){BOOMR.debug("Bad pattern: "+b.match,"PageVars");BOOMR.debug(g,"PageVars");BOOMR.addError(g,"PageVars.URLPatternType",b.match);return!1}}}else e=this.cleanUp(e,b);return e},hasSensitiveData:function(a){var b;if(!a)return!1;if(a.nodeName&&("INPUT"===a.nodeName.toUpperCase()||"TEXTAREA"===a.nodeName.toUpperCase()||"SELECT"===a.nodeName.toUpperCase())){var c=a.autocomplete||"function"==typeof a.getAttribute&&a.getAttribute("autocomplete");if(c&&c.length){c=c.toLowerCase();if(m[c])return!0;for(b=0;b0});if(!e||0===e.length)return!1;f=h[e.shift()];try{for(;e.length&&this.isValidObjectMember(f,e[0]);){BOOMR.debug("looking at "+e[0],"PageVars");h=f;f=f[e.shift()]}}catch(i){BOOMR.addError(i,"PageVars.extractJavaScriptVariable",a+"::"+e.join("."));return!1}if(0!==e.length)return!1;if("function"==typeof f)try{f=f.call(h,this.varname)}catch(i){BOOMR.plugins.Errors&&BOOMR.plugins.Errors.send(i);return!1}if(void 0===f||"object"==typeof f||"function"==typeof f)return!1;BOOMR.debug("final value: "+f,"PageVars");if(!c||"boolean"!==c.match){f=this.cleanUp(String(f),c);return this.apply(f)}if("string"==typeof f){f=f.replace(/^\s+|\s+$/g,"").toLowerCase();if("0"!==f&&"false"!==f&&f)return this.apply(1)}else if(f)return this.apply(1)},URLPattern:function(a){var b;if(!a.parameter2)return!1;BOOMR.debug("Got URL Pattern: "+a.parameter1+", "+a.parameter2,"PageVars");if(!this.checkURLPattern(a.parameter1))return!1;b=BOOMR.utils.getQueryParamValue(a.parameter2,c);if(b){BOOMR.debug("final value: "+b,"PageVars");b=this.cleanUp(b);return this.apply(b)}},URLSubstringEndOfText:function(a){return this.URLSubstringTrailingText(a)},URLSubstringTrailingText:function(a){if(!a.parameter1)return!1;BOOMR.debug("Got URL Substring: "+a.parameter1+", "+a.parameter2,"PageVars");return this.handleRegEx("^"+a.parameter1.replace(/([.+?\^=!:${}()|\[\]\/\\])/g,"\\$1").replace(/([^\.])\*/g,"$1.*?").replace(/^\*/,".*")+"(.*)"+(a.parameter2||"").replace(/([.+?\^=!:${}()|\[\]\/\\])/g,"\\$1").replace(/([^\.])\*/g,"$1.*")+"$","$1",c.href)},UserAgentRegex:function(a){return this._Regex(a.parameter1,a.regex,a.replacement,navigator.userAgent)},CookieRegex:function(a){return this._Regex(a.parameter1,a.regex,a.replacement,a.cookieName?BOOMR.utils.getCookie(a.cookieName):d.cookie)},URLRegex:function(a){return this._Regex(a.parameter1,a.regex,a.replacement,c.href)},Regexp:function(a,b){var d;b&&"string"==typeof b&&(d=b.match("http(|s)://"));return d&&d.length>0?this._Regex(null,a.parameter1,a.parameter2,b):this._Regex(null,a.parameter1,a.parameter2,c.href)},_Regex:function(a,b,c,d){if(!b||!c)return!1;if(!this.checkURLPattern(a))return!1;BOOMR.debug("Got RegEx: "+a+", "+b+", "+c,"PageVars");return this.handleRegEx(b,c,d)},URLPatternType:function(a){var b;BOOMR.debug("Got URLPatternType: "+a.parameter1+", "+a.parameter2,"PageVars");if(!this.checkURLPattern(a.parameter1))return!1;if(!a.parameter1||a.parameter2||a.queryselector)if(a.queryselector){b=this.runQuerySelector(a.queryselector);if(!b)return!1;b=this.extractFromDOMElement(b,a)}else{if(!a.parameter2)return!1;b=this.runXPath(a.parameter2);if(!b)return!1;b=this.extractFromDOMElement(b,a)}else b="1";BOOMR.debug("Final value: "+b,"PageVars");return this.apply(b)},ResourceTiming:function(a){var b,c,d,g,h,i;if(!a.parameter2&&!a.url&&!a.queryselector)return!1;if(!a.start||!a.end&&"*"!==a.start)return!1;if(!e||!e.getEntriesByName){BOOMR.debug("This browser does not support ResourceTiming","PageVars");return!1}BOOMR.debug("Got ResourceTiming: "+a.parameter1+", "+a.parameter2+", "+a.url,"PageVars");if(!this.checkURLPattern(a.parameter1))return!1;"slowest"===a.parameter2||"slowest"===a.url?c="slowest":a.url?c=a.url:a.parameter2?b=this.runXPath(a.parameter2):a.queryselector&&(b=this.runQuerySelector(a.queryselector));if(b)c=b.currentSrc||b.src||"function"==typeof b.getAttribute&&b.getAttribute("xlink:href")||b.href;else if(!c)return!1;d=this.findResource(c,null,f.deltaFromNavStart);if(!d){BOOMR.debug("No resource matched","PageVars");f.mayRetry.push({handler:this,data:a});return!1}"slowest"===c&&BOOMR.addVar("dom.res.slowest",d.name);if("*"===a.start){for(i in d)d.hasOwnProperty(i)&&i.match(/(Start|End)$/)&&d[i]>0&&BOOMR.addVar(this.varname+"."+i.replace(/^(...).*(St|En).*$/,"$1$2"),Math.round(d[i]));return this.apply(d.duration)}if(a.relative_to_nt||"navigationStart"===a.start)g=f.deltaFromNavStart;else{g=parseFloat(d[a.start],10);if(!isNaN(g)&&0===g){BOOMR.debug("Start was 0 (not supported on this resource)","PageVars");return!1}}h=parseFloat(d[a.end],10);if(isNaN(g)||isNaN(h)){BOOMR.debug("Start or end were not numeric: "+g+", "+h,"PageVars");return!1}if(0===h){BOOMR.debug("End was 0 (not supported on this resource)","PageVars");return!1}BOOMR.debug("Final values: ns:"+f.deltaFromNavStart+", st:"+g+", en:"+h,"PageVars");BOOMR.addVar(this.varname+"_st",Math.round(g-f.deltaFromNavStart));return this.apply(h-g)},findResource:function(a,b,c){var d=this.findResources(a,b,c,1);return null===d?null:d&&d.length>0?d[0]:null},getFrameResources:function(a,b){try{a.location&&a.location.href;return"performance"in a&&a.performance&&a.performance.getEntriesByName&&a.performance.getEntriesByType?b?a.performance.getEntriesByName(b):a.performance.getEntriesByType("resource"):null}catch(c){if(BOOMR.isCrossOriginError(c))return null;try{if("TypeError"===c.name&&"Invalid calling object"===c.message&&a.document.location.pathname.match(/\.pdf$/))return null}catch(d){}BOOMR.addError(c,"PageVars.getFrameResources");return null}},findResources:function(c,d,e,f){var g,h,i,j,k,l,m,n=[];d||(d=b);e||(e=0);if("slowest"!==c){i=this.getFrameResources(d,c);if(null===i)return null;if(i&&i.length>0)for(g=0;g0)for(g=0;gh.duration)&&(h=i[g]);else if(i[g].name&&this.checkURLPattern(c,i[g].name,!1)){n.push(i[g]);if(f&&n.length===f)return n}}if(d.frames){k=a(d);for(j=0;jh.duration)&&(h=l[g]);else{n.push(l[g]);if(f&&n.length===f)return n}}}}return h?[h]:n},UserTiming:function(a){var b,c ;if(!a.parameter2)return!1;if(!e||"function"!=typeof e.getEntriesByType){BOOMR.debug("This browser does not support UserTiming","PageVars");return!1}if(!this.checkURLPattern(a.parameter1))return!1;b=e.getEntriesByType("mark");for(c=0;b&&c0){if(a.value[c].on&&a.value[c].on.length>0&&(BOOMR.utils.inArray(h,a.value[c].on)||"init"===h&&BOOMR.utils.inArray("onload",a.value[c].on)))for(var l in a.value[c].resources)a.value[c].resources.hasOwnProperty(l)&&k.push(a.value[c].resources[l]);break}if(0===k.length)return null;this.resourceSet=k;d=BOOMR.getPerformance();d&&"function"==typeof d.getEntriesByName&&"function"==typeof d.getEntriesByType&&(this.RTSupport=!0);this.MOSupport=BOOMR.utils.isMutationObserverSupported();this.eventsrc=h;if(this.RTSupport)for(e=0;e=k)clearInterval(e);else{g.traverseElements(d,a);f+=BOOMR.now()-h;h=BOOMR.now()}}var c=this.resourceSet[a],d=this.getNode(a),e=null,f=0,g=this,h=BOOMR.now(),i=0,j=null;"resource"===c.type&&(d=BOOMR.window.document.body);if((!d||null===d)&&BOOMR.window.document.body){this.resourceSet[a].found=!1;this.resourceSet[a].fallback=!0;d=BOOMR.window.document.body}if(BOOMR.window.document.body!==d||null!==d){if(d&&d.length>0){this.resourceSet[a].found=!0;for(i=0;i0){for(e=0;e0){g=d.addedNodes;for(h=0;h0){c=this.getNode(b);this.RTSupport&&this.refreshResourceGroupTimings(this.lookupResources(b),b);for(f=0;f0&&!g[0][k]&&"resource"!==f.type)for(i=0;i0&&(this.resourceSet[a].found=!0);return g}return h},refreshResourceGroupTimings:function(a,b){if(a&&a.length>0){for(var c=0;c0)return b}break;default:return null}},getStartTime:function(a){var b=this.resourceSet[a],c="fetchStart";b.start&&(c=b.start);return c},updateResourceGroupDelta:function(a,b){var c,d=this.getStartTime(b);if(a){c=a.responseEnd;if(!c){BOOMR.debug("Tried to update ResourceGroup delta with unfinished resource! Using now as responseEnd","PageVars.ResourceGroup");c=BOOMR.hrNow()}"navigationStart"!==d?(!this.resourceTime.start||this.resourceTime.start>a[d])&&(this.resourceTime.start=a[d]):this.resourceTime.start=f.deltaFromNavStart;(!this.resourceTime.stop||this.resourceTime.stop0){d.resourceSet[b].found=!0;d.refreshResourceGroupTimings(c,b)}}else d.refreshResourceGroupTimings(d.findResources(d.getNodeURL(f)),b);else{g=d.getNodeURL(f);if("resource"===e.type&&g&&d.checkURLPattern(e.value,g)){f._bmr_rg.responseEnd=f._bmr_rg.responseEnd||BOOMR.hrNow();d.updateResourceGroupDelta(f._bmr_rg,b)}else if(f._bmr_rg&&f._bmr_rg.responseEnd&&f._bmr_rg[h])d.updateResourceGroupDelta(f._bmr_rg,b);else{f._bmr_rg.responseEnd=f._bmr_rg.responseEnd||BOOMR.hrNow();d.updateResourceGroupDelta(f._bmr_rg,b)}}d.applyTimedResources()}var d=this,e=this.resourceSet[b];a.complete?c({target:a}):a.addEventListener?a.addEventListener("load",c):a.attachEvent&&a.attachEvent("onload",c)}};BOOMR.utils.runXPath=g.prototype.runXPath;BOOMR.utils.runQuerySelector=g.prototype.runQuerySelector;g.prototype.XPath=g.prototype.URLPatternType;g.prototype.URLQueryParam=g.prototype.URLPattern;f={pageGroups:[],abTests:[],customTimers:[],customMetrics:[],customDimensions:[],xhrPageGroups:[],resourceGroupHandlers:{},complete:!1,initialized:!1,configReceived:!1,rerunAfterConfig:!1,unloadFired:!1,onloadfired:!1,defaultDecimal:h,defaultThousands:i,hasXhrOn:!1,hasXhrIgnore:!1,autorun:!0,pci:!1,pciBlacklist:[],pciBlacklistQueried:!1,pciBlacklistMatch:[],beaconQueue:[],mayRetry:[],deltaFromNavStart:0,matchPageGroupList:function(a,b,c){var d,e=0;for(e=0;e0)for(i=0;i0&&f.retry();return f.configReceived||f.unloadFired},readyToSend:function(){return f.configReceived||f.unloadFired}}}}();!function(){function a(a){BOOMR.debug("(url: "+BOOMR.window.location.href+"): "+a,"IFrameDelay")}if(!BOOMR.plugins.IFrameDelay){var b={registerParent:!1,monitoredCount:0,finishedCount:0,runningCount:0,messages:{start:"boomrIframeLoading",done:"boomrIframeLoaded"},checkRunningFrames:function(){setTimeout(function(){if(b.monitoredCount!==b.runningCount){a("monitoredCount("+b.monitoredCount+") did not match registered running count("+b.runningCount+")");b.monitoredCount=b.runningCount;b.checkCompleteness()}},50)},onIFrameMessage:function(c){a("Received message: '"+c.data+"' from child IFrame");if(c&&c.data&&"string"==typeof c.data){c.data===b.messages.start&&(b.runningCount+=1);if(c.data===b.messages.done){b.runningCount-=1;b.finishedCount+=1;b.checkCompleteness()}}},checkCompleteness:function(){if(b.is_complete()){BOOMR.addVar("ifdl.done",BOOMR.now());BOOMR.addVar("ifdl.ct",b.finishedCount);BOOMR.addVar("ifdl.r",b.runningCount);BOOMR.addVar("ifdl.mon",b.monitoredCount);BOOMR.page_ready()}},is_complete:function(){return!(b.enabled&&!b.registerParent)||b.finishedCount===b.monitoredCount&&0===b.runningCount}};BOOMR.plugins.IFrameDelay={init:function(c){BOOMR.utils.pluginConfig(b,c,"IFrameDelay",["enabled","registerParent","monitoredCount"]);if(BOOMR.utils.hasPostMessageSupport())if(b.registerParent){a("Found registerParent=true, trying to notify parent window");BOOMR.window.parent.postMessage(b.messages.start,"*");BOOMR.subscribe("page_load_beacon",function(a){BOOMR.window.parent.postMessage(b.messages.done,"*")})}else if(!b.registerParent&&b.monitoredCount&&b.monitoredCount>0){BOOMR.utils.addListener(BOOMR.window,"message",b.onIFrameMessage);BOOMR.attach_page_ready(b.checkRunningFrames)}else{a("Missing configuration. Setting monitored, finished and running to 0 and closing this plugin");b.finishedCount=b.monitoredCount=b.runningCount=0}},is_complete:function(){return b.is_complete()}}}}();!function(){function a(a){BOOMR.debug(a,"AutoXHR")}function b(a){if(!a)return null;a.href=a.href;var b=a.pathname;"/"!==b.charAt(0)&&(b="/"+b);return b}function c(a){var c;if(a.href){if(a.href.match(/^(about:|javascript:|data:)/i))return!0;if("function"==typeof BOOMR.getBeaconURL&&BOOMR.getBeaconURL()){c=a.href.indexOf(BOOMR.getBeaconURL());if(0===c||5===c||6===c)return!0}}return BOOMR.xhr_excludes.hasOwnProperty(a.href)||BOOMR.xhr_excludes.hasOwnProperty(a.hostname)||BOOMR.xhr_excludes.hasOwnProperty(b(a))}function d(){this.watch=0;this.timer=null;this.pending_events=[];this.lastSpaLocation=null}function e(){BOOMR.subscribe("click",function(){if(!p.singlePageApp){var a={timing:{},initiator:"click"};if(BOOMR.orig_XMLHttpRequest&&BOOMR.orig_XMLHttpRequest!==l.XMLHttpRequest){a.timing.requestStart=BOOMR.now();n.addEvent(a)}}})}function f(a,b){var c,d;if(!b||!a)return!1;if("boolean"==typeof b)return!0===b;if("function"==typeof b)try{return!0===b(a)}catch(e){return!1}if(BOOMR.utils.isArray(b))for(c=0;c0){if("function"==typeof f[0]){f[0]=c(a,f[0],e);a._bmrHasOnFulfilled=!0}if(f.length>1&&"function"==typeof f[1]){f[1]=c(a,f[1],e);a._bmrHasOnRejected=!0}}var g=b.apply(a,f);a._bmrNextP=g;g.then=d(g,g.then,e);return g}}var e,g,h,i={timing:{},initiator:"xhr"};if("object"==typeof a&&a instanceof l.Request){e=a.url;g=b&&b.method||a.method||"GET";p.captureXhrRequestResponse&&(h=b&&b.body||a.body||void 0)}else{e=a;g=b&&b.method||"GET";p.captureXhrRequestResponse&&(h=b&&b.body||void 0)}o.href=e;if(p.excludeFilter(o)){BOOMR.debug("Exclude found for resource: "+o.href+" Skipping Fetch instrumentation!","AutoXHR");return BOOMR.orig_fetch.apply(l,arguments)}BOOMR.fireEvent("xhr_init","fetch");i.url=o.href;i.method=g;i.type="fetch";h&&(i.requestPayload=h);BOOMR.fireEvent("xhr_send",{resource:i});p.singlePageApp&&n.watch&&!f(i.url,p.alwaysSendXhr)&&n.add_event_resource(i);try{i.timing.requestStart=BOOMR.now();var j=BOOMR.orig_fetch.apply(this,arguments);j.then=d(j,j.then,i);return j.then(function(a){var b,c,d=!1,e=!1;(a.status<200||a.status>=400)&&(i.status=a.status);i.fetchResponse=a;if(p.captureXhrRequestResponse&&"function"==typeof a.clone){c=a.headers.get("content-type");if(c){d=-1!==c.indexOf("json");e=-1!==c.indexOf("xml")}i.response={};try{b=a.clone();b.text().then(function(a){i.response.text=a;i.response.raw=a;e&&"function"==typeof l.DOMParser&&(i.response.xml=(new l.DOMParser).parseFromString(a,"text/xml"))}).then(null,function(a){})}catch(f){}if(d)try{b=a.clone();b.json().then(function(a){i.response.json=a}).then(null,function(a){})}catch(f){}}return a},function(a){!a||"AbortError"!==a.name&&20!==a.code?i.status=u:i.status=t;throw a})}catch(k){i.status=v;p.loadFinished(i);throw k}};BOOMR.utils.overwriteNative(l,"fetch",BOOMR.proxy_fetch)}}function h(){"function"==typeof l.fetch&&BOOMR.orig_fetch&&BOOMR.orig_fetch!==l.fetch&&(l.fetch=BOOMR.orig_fetch)}function i(){if(!BOOMR.proxy_XMLHttpRequest||BOOMR.proxy_XMLHttpRequest!==l.XMLHttpRequest)if(BOOMR.proxy_XMLHttpRequest&&BOOMR.orig_XMLHttpRequest&&BOOMR.orig_XMLHttpRequest===l.XMLHttpRequest){l.XMLHttpRequest=BOOMR.proxy_XMLHttpRequest;d.start()}else{BOOMR.orig_XMLHttpRequest=l.orig_XMLHttpRequest||l.XMLHttpRequest;d.start();e();BOOMR.proxy_XMLHttpRequest=function(){var b,c,d,e={timing:{},initiator:"xhr"},f=!1,g=!1;b=new BOOMR.orig_XMLHttpRequest;c=b.open;d=b.send;b.open=function(d,h,i){function j(a,c){b.addEventListener(a,function(){if("readystatechange"===a){e.timing[q[b.readyState]]=BOOMR.now();if(4===b.readyState&&0!==b.status){(b.status<200||b.status>=400)&&(e.status=b.status);if(p.captureXhrRequestResponse){e.response={text:""===b.responseType||"text"===b.responseType?b.responseText:null,xml:""===b.responseType||"document"===b.responseType?b.responseXML:null,raw:b.response,json:b.responseJSON};if(b.response&&b.response.constructor&&b.response.constructor===BOOMR.boomerang_frame.Object&&BOOMR.boomerang_frame.Object!==l.Object)try{b.response.constructor=l.Object}catch(d){}}p.loadFinished(e)}else if(0===b.readyState&&"number"==typeof e.timing.open){e.status=t;p.loadFinished(e)}}else{"load"===a?(b.status<200||b.status>=400)&&(e.status=b.status):e.status=void 0===c?b.status:c;p.loadFinished(e)}},!1)}o.href=h;if(p.excludeFilter(o)){g=!0;a("Exclude found for resource: "+o.href+" Skipping XHR instrumentation!");return c.apply(b,arguments)}g=!1;void 0===i&&(i=!0);BOOMR.fireEvent("xhr_init","xhr");if(!f){i&&j("readystatechange");j("load");j("timeout",s);j("error",u);j("abort",t)}e.url=o.href;e.method=d;e.type="xhr";delete e.status;i||(e.synchronous=!0);f=!0;try{return c.apply(b,arguments)}catch(k){e.status=v;p.loadFinished(e);throw k}};b.send=function(a){if(g)return d.apply(b,arguments);p.captureXhrRequestResponse&&(b.resource.requestPayload=a);BOOMR.fireEvent("xhr_send",b);p.singlePageApp&&n.watch&&n.add_event_resource(e);e.timing.requestStart=BOOMR.now();return void 0===e.status||e.status!==v?d.apply(b,arguments):void 0};b.resource=e;return b};BOOMR.proxy_XMLHttpRequest.UNSENT=0;BOOMR.proxy_XMLHttpRequest.OPENED=1;BOOMR.proxy_XMLHttpRequest.HEADERS_RECEIVED=2;BOOMR.proxy_XMLHttpRequest.LOADING=3;BOOMR.proxy_XMLHttpRequest.DONE=4;BOOMR.proxy_XMLHttpRequest.prototype=BOOMR.orig_XMLHttpRequest.prototype;BOOMR.utils.overwriteNative(l,"XMLHttpRequest",BOOMR.proxy_XMLHttpRequest)}}function j(){BOOMR.orig_XMLHttpRequest&&BOOMR.orig_XMLHttpRequest!==l.XMLHttpRequest&&(l.XMLHttpRequest=BOOMR.orig_XMLHttpRequest)}function k(a){a.initiator="xhr";BOOMR.responseEnd(a)}var l,m,n,o,p,q=["uninitialized","open","responseStart","domInteractive","responseEnd"],r=1e3,s=-1001,t=-999,u=-998,v=-997,w=["xmlhttprequest","script"];if(!BOOMR.plugins.AutoXHR){l=BOOMR.window;if(l&&l.XMLHttpRequest&&(new l.XMLHttpRequest).addEventListener){d.stop=function(){d.pause();d.observer=null};d.pause=function(){if(d.observer&&d.observer.observer&&!d.isPaused){d.isPaused=!0;d.observer.observer.disconnect()}};d.resume=function(){if(d.observer&&d.observer.observer&&d.isPaused){d.isPaused=!1;d.observer.observer.observe(m,d.observer.config)}};d.start=function(){if(!d.observer){ var a={childList:!0,attributes:!0,subtree:!0,attributeFilter:["src","href"]};d.observer=BOOMR.utils.addObserver(m,a,null,n.mutation_cb,null,n);if(d.observer){d.observer.config=a;BOOMR.subscribe("page_unload",d.stop,null,d)}}};d.prototype.addEvent=function(b){var c,e,f,g={type:b.initiator,resource:b,nodes_to_wait:0,total_nodes:0,resources:[],aborted:!1,complete:!1},h=this.pending_events.length;for(c=h-1;c>=0;c--)if(this.pending_events[c]&&!this.pending_events[c].complete){e=this.pending_events[c];f=c;break}if(e)if("click"===e.type)0!==e.nodes_to_wait&&e.resource.url||(this.pending_events[c]=void 0);else if("xhr"===e.type){if("click"===g.type)return null}else if(BOOMR.utils.inArray(e.type,BOOMR.constants.BEACON_TYPE_SPAS)){if("xhr"===g.type)return null;if(BOOMR.utils.inArray(g.type,BOOMR.constants.BEACON_TYPE_SPAS)){a("Aborting previous SPA navigation");e.resource.timing.loadEventEnd=BOOMR.now();e.aborted=!0;this.sendEvent(f)}}this.watch++;this.pending_events.push(g);if(d.observer){BOOMR.utils.inArray(g.type,BOOMR.constants.BEACON_TYPE_SPAS)?this.setTimeout(r,h):this.setTimeout(50,h);return h}if(BOOMR.utils.inArray(g.type,BOOMR.constants.BEACON_TYPE_SPAS)){d.start();this.setTimeout(r,h);return h}b.url&&b.timing.loadEventEnd&&this.sendEvent(h);return null};d.prototype.sendEvent=function(b){var c=this.pending_events[b],d=this,e=BOOMR.now();if(c&&!c.complete){this.clearTimeout();if(BOOMR.readyToSend()){c.complete=!0;this.watch--;c.resource.resources=c.resources;BOOMR.utils.inArray(c.type,BOOMR.constants.BEACON_TYPE_SPAS)&&(c.resource.url=m.URL);if("spa"===c.type&&0===c.total_nodes&&c.resource.url===d.lastSpaLocation){a("SPA beacon cancelled, no URL change or resources triggered");BOOMR.fireEvent("spa_cancel");this.pending_events[b]=void 0;return}if(BOOMR.utils.inArray(c.type,BOOMR.constants.BEACON_TYPE_SPAS)){d.lastSpaLocation=c.resource.url;c.forced||0!==c.total_nodes||(c.resource.timing.loadEventEnd=e-r)}this.sendResource(c.resource,b)}else setTimeout(function(){d.sendEvent(b)},500)}};d.prototype.sendResource=function(a,b){var c=this,d=c.pending_events[b],e=a.timing?a.timing.requestStart:void 0,f=function(d,f){d&&(a.timing.loadEventEnd=f||BOOMR.now());BOOMR.real_sendBeacon();a.onComplete&&a.onComplete(a);if(BOOMR.plugins.ResourceTiming&&BOOMR.plugins.ResourceTiming.is_enabled()&&a.timing&&a.timing.requestStart){var g=BOOMR.plugins.ResourceTiming.getCompressedResourceTiming(a.timing.requestStart,a.timing.loadEventEnd);BOOMR.plugins.ResourceTiming.addToBeacon(g)}if(BOOMR.utils.inArray(a.initiator,BOOMR.constants.BEACON_TYPE_SPAS)){c.calculateSpaTimings(a);if("number"==typeof b&&c.pending_events[b].aborted){BOOMR.addVar("pgu",m.URL);BOOMR.addVar("rt.quit","");BOOMR.addVar("rt.abld","");p.addedVars.push("pgu","rt.quit","rt.abld")}}BOOMR.responseEnd(a,e,a);"number"==typeof b&&(c.pending_events[b]=void 0)};if(a.wait)a.waitComplete=function(){f(!0)};else{if("spa_hard"===a.initiator&&!(d&&d.aborted||BOOMR.hasBrowserOnloadFired())){BOOMR.utils.addListener(l,"load",function(){var a=BOOMR.now();BOOMR.setImmediate(function(){f(!0,a)})});return}f(!1)}};d.prototype.calculateSpaTimings=function(a){var b=BOOMR.getPerformance();if(b&&b.timing)if("spa_hard"===a.initiator){a.timing.responseEnd=b.timing.responseStart;a.timing.fetchStart=b.timing.navigationStart}else{if(!BOOMR.plugins.ResourceTiming||!BOOMR.plugins.ResourceTiming.is_supported())return;var c=BOOMR.plugins.ResourceTiming.getFilteredResourceTiming(a.timing.requestStart,a.timing.loadEventEnd,p.spaBackEndResources).entries,d=Math.round(a.timing.loadEventEnd-a.timing.requestStart);if(!c||!c.length){a.timers={t_resp:0,t_page:d,t_done:d};return}for(var e=a.timing.loadEventEnd-b.timing.navigationStart,f=0;fe){c[f].responseStart=e;c[f].responseEnd=e}else c[f].responseEnd>e&&(c[f].responseEnd=e);var g=Math.round(BOOMR.plugins.ResourceTiming.calculateResourceTimingUnion(c)),h=d-g;if(g<0||d<0||h<0){BOOMR.addError("Incorrect SPA time calculation");return}a.timers={t_resp:g,t_page:h,t_done:d}}};d.prototype.setTimeout=function(a,b){var c=this;if(a){this.clearTimeout();this.timer=setTimeout(function(){c.timedout(b)},a)}};d.prototype.timedout=function(a){var b;this.clearTimeout();b=this.pending_events[a];if(b&&BOOMR.utils.inArray(b.type,BOOMR.constants.BEACON_TYPE_SPAS.concat("xhr")))0===b.nodes_to_wait&&this.sendEvent(a);else{this.watch>0&&this.watch--;this.pending_events[a]=void 0}};d.prototype.clearTimeout=function(){if(this.timer){clearTimeout(this.timer);this.timer=null}};d.prototype.load_cb=function(a,b){var c,d,e=BOOMR.now();c=a.target||a.srcElement;if(c&&c._bmr){d=c._bmr.idx;b=void 0!==b?b:c._bmr.res||0;if(!c._bmr.end[b]){c._bmr.end[b]=e;this.load_finished(d,e)}}};d.prototype.load_finished=function(a,b){var c=this.pending_events[a];if(c){c.nodes_to_wait--;if(0===c.nodes_to_wait){c.resource.timing.loadEventEnd=b||BOOMR.now();BOOMR.utils.inArray(c.type,BOOMR.constants.BEACON_TYPE_SPAS)?this.setTimeout(r,a):this.sendEvent(a)}}};d.prototype.wait_for_node=function(b,c){var d,e,f,g,h,i,j,k,l=this,m=!1,n=!1;if(b&&b.nodeName&&(b.nodeName.toUpperCase().match(/^(IMG|IFRAME|IMAGE)$/)||"LINK"===b.nodeName.toUpperCase()&&b.rel&&b.rel.match(/\/i))){b._bmr&&"number"==typeof b._bmr.res&&b._bmr.end[b._bmr.res]&&(n=!0);h=b.src||"function"==typeof b.getAttribute&&b.getAttribute("xlink:href")||b.href;if(!h||h.match(/^(about:|javascript:|data:)/i))return!1;b._bmr&&b._bmr.url!==h&&(n=!0);if("IMG"===b.nodeName){if(b.naturalWidth&&!n)return!1;if("function"==typeof b.getAttribute&&""===b.getAttribute("src"))return!1}if("IFRAME"===b.nodeName&&n)return!1;if("function"==typeof b.getAttribute){j=parseInt(b.getAttribute("height"),10);k=parseInt(b.getAttribute("width"),10)}isNaN(j)&&(j=!b.style||"0"!==b.style.height&&"0px"!==b.style.height&&"1px"!==b.style.height?void 0:0);isNaN(k)&&(k=!b.style||"0"!==b.style.width&&"0px"!==b.style.width&&"1px"!==b.style.width?void 0:0);if(!isNaN(j)&&j<=1&&!isNaN(k)&&k<=1)return!1;if(b.style&&"none"===b.style.display)return!1;if(b.style&&"hidden"===b.style.visibility)return!1;d=this.pending_events[c];if(!d)return!1;i=d.resources.length;b._bmr||(b._bmr={end:{}});d.urls||(d.urls={});if(d.urls[h])return!1;if(!d.resource.url){o.href=h;if(p.excludeFilter(o)){a("Exclude for "+o.href+" matched. Excluding");return!1}d.resource.url=o.href}b._bmr.res=i;b._bmr.idx=c;delete b._bmr.end[i];b._bmr.url=h;b.addEventListener("load",function(a){l.load_cb(a,i)});b.addEventListener("error",function(a){l.load_cb(a,i)});d.nodes_to_wait++;this.clearTimeout();d.total_nodes++;d.resources.push(b);d.urls[h]=1;m=!0}else b.nodeType===Node.ELEMENT_NODE&&["IMAGE","IMG"].forEach(function(a){e=b.getElementsByTagName(a);if(e&&e.length)for(f=0,g=e.length;f0){BOOMR.removeVar(p.addedVars);p.addedVars=[]}},loadFinished:function(a,b){var c,d,e,g,h;b=b||BOOMR.now();if(!a.timing.loadEventEnd){a.status&&BOOMR.fireEvent("xhr_error",a);a.timing.loadEventEnd=b;h=BOOMR.getPerformance();if(h&&h.timing){d=h.timing.navigationStart;c=BOOMR.getResourceTiming(a.url,function(a,b){return a.responseEnd-b.responseEnd},function(b){return Math.ceil(d+b.startTime+2)>=a.timing.requestStart&&0!==b.responseEnd});if(c){e=Math.floor(d+c.startTime);g=Math.floor(d+c.responseEnd);if(g<=BOOMR.now()){a.timing.responseEnd=g;a.timing.loadEventEnd-1?n.load_finished(a.index,a.timing.responseEnd):n.hasActiveEvent()||p.singlePageApp&&!p.autoXhrEnabled||n.addEvent(a)}}};BOOMR.plugins.AutoXHR={is_complete:function(){return!0},init:function(a){function b(a){if(a.length)for(d=0;d0)for(e=0;e0)for(b=e.pending_events.length-1;b>=0;b--){c=e.pending_events[b];if(c&&BOOMR.utils.inArray(c.type,BOOMR.constants.BEACON_TYPE_SPAS)){if(c.complete)break;d=e.nodesWaitingFor(b);a("SPA Navigation being marked complete; nodes waiting for: "+d);BOOMR.addVar("spa.forced","1");BOOMR.addVar("spa.waiting",d);e.completeEvent(b);return}}a("No SPA navigation in progress to mark as complete")},isSpaNavInProgress:function(){var a,b,c=BOOMR.plugins.AutoXHR.getMutationHandler();if(c&&c.pending_events.length>0)for(a=c.pending_events.length-1;a>=0;a--){b=c.pending_events[a];if(b&&BOOMR.utils.inArray(b.type,BOOMR.constants.BEACON_TYPE_SPAS))return!b.complete}return!1}}}}();!function(){function a(a){function b(b){BOOMR.debug(a.$id+": "+b,"Angular")}function h(){var a=BOOMR.now();a-e>50&&BOOMR.plugins.SPA.route_change.call(null,null,arguments);e=a;clearTimeout(f);f=!1}if(void 0===a)return!1;if(!BOOMR.plugins.AutoXHR||!BOOMR.plugins.SPA)return!1;a.$on("$routeChangeStart",function(a,e,f){if(c){b("$routeChangeStart: "+(e?e.templateUrl:""));h(a,e,f);g=!0}else d=!0});a.$on("$locationChangeStart",function(a,d){if(c){b("$locationChangeStart: "+d);BOOMR.fireEvent("spa_init",[BOOMR.plugins.SPA.current_spa_nav(),d]);g||(f=setTimeout(h,0))}});a.$on("$stateChangeStart",function(a,e,f,i,j){if(c){b("$stateChangeStart: "+e);h(a,e,f,i,j);g=!0}else d=!0});return!0}var b=!1,c=!0,d=!1,e=0,f=!1,g=!1;if(!BOOMR.plugins.Angular&&void 0!==BOOMR.plugins.SPA){BOOMR.plugins.SPA.register("Angular");BOOMR.plugins.Angular={is_complete:function(){return!0},hook:function(c,d,e){if(b)return this;if(a(c)){BOOMR.plugins.SPA.hook(d,e);b=!0}return this},disable:function(){c=!1;return this},enable:function(){c=!0;if(b&&d){d=!1;BOOMR.plugins.SPA.route_change()}return this}}}}();!function(){function a(a){function b(a){BOOMR.debug(a,"Backbone")}if(void 0===BOOMR.window.Backbone||void 0===a)return!1;if(!BOOMR.plugins.AutoXHR||!BOOMR.plugins.SPA)return!1;b("Startup");a.on("route",function(){if(c){BOOMR.fireEvent("spa_init",[BOOMR.plugins.SPA.current_spa_nav(),BOOMR.window.document.URL]);b("route");BOOMR.plugins.SPA.route_change()}else d=!0});return!0}var b=!1,c=!0,d=!1;if(!BOOMR.plugins.Backbone&&void 0!==BOOMR.plugins.SPA){BOOMR.plugins.SPA.register("Backbone");BOOMR.plugins.Backbone={is_complete:function(){return!0},hook:function(c,d,e){if(b)return this;if(a(c)){BOOMR.plugins.SPA.hook(d,e);b=!0}return this},disable:function(){c=!1;return this},enable:function(){c=!0;if(b&&d){d=!1;BOOMR.plugins.SPA.route_change()}return this}}}}();!function(){function a(a){function b(a){BOOMR.debug(a,"Ember")}function f(a){this._super(a);if(!d){e=!0;return!0}b("beforeModel");if(a&&a.intent&&a.intent.url){b("[beforeModel] LastLocation: "+a.intent.url);a.promise.then(function(){BOOMR.fireEvent("spa_init",[BOOMR.plugins.SPA.current_spa_nav(),BOOMR.window.document.URL])})}if(!c){BOOMR.plugins.SPA.route_change();c=!0}return!0}function g(a){this._super(a);if(!d){e=!0;return!0}b("willTransition");if(a&&a.intent&&a.intent.url){b("[willTransition] LastLocation: "+a.intent.url);a.promise.then(function(){BOOMR.fireEvent("spa_init",[BOOMR.plugins.SPA.current_spa_nav(),BOOMR.window.document.URL])})}if(!c){BOOMR.plugins.SPA.route_change();c=!0}return!0}function h(a){this._super(a);if(!d)return!0;b("didTransition");c=!1}if(void 0===a)return!1;if(!BOOMR.plugins.AutoXHR||!BOOMR.plugins.SPA)return!1;b("Startup");a.ApplicationRoute?a.ApplicationRoute.reopen({beforeModel:f,actions:{willTransition:g,didTransition:h}}):a.ApplicationRoute=BOOMR.window.Ember.Route.extend({beforeModel:f,actions:{willTransition:g,didTransition:h}});return!0}var b=!1,c=!1,d=!0,e=!1;if(!BOOMR.plugins.Ember&&void 0!==BOOMR.plugins.SPA){BOOMR.plugins.SPA.register("Ember");BOOMR.plugins.Ember={is_complete:function(){return!0},hook:function(c,d,e){if(b)return this;if(a(c)){BOOMR.plugins.SPA.hook(d,e);b=!0}return this},disable:function(){d=!1;return this},enable:function(){d=!0;if(b&&e){e=!1;BOOMR.plugins.SPA.route_change()}return this}}}}();!function(){function a(a){BOOMR.debug(a,"History")}function b(){function b(){BOOMR.window.addEventListener("popstate",function(b){a("popstate");c.routeChange()})}var d=BOOMR.window.history;"function"==typeof d.pushState&&(d.pushState=function(b){return function(d,e,f){a("pushState, title: "+e+" url: "+f);c.routeChange(e,f);return b.apply(this,arguments)}}(d.pushState));"function"==typeof d.replaceState&&(d.replaceState=function(b){return function(d,e,f){var g=BOOMR.window.document.URL,h=g;if(arguments.length>=3&&void 0!==f&&null!==f){c.a.href=f;h=c.a.href}if(BOOMR.plugins.SPA.isSpaNavInProgress()&&h===g)a("replaceState ignored (no URL change and a SPA nav is in progress), title: "+e+" url: "+f);else{a("replaceState, title: "+e+" url: "+f);c.routeChange(e,f)}return b.apply(this,arguments)}}(d.replaceState));"function"==typeof d.go&&(d.go=function(b){return function(d){a("go");c.routeChange();return b.apply(this,arguments)}}(d.go));"function"==typeof d.back&&(d.back=function(b){return function(){a("back");c.routeChange();return b.apply(this,arguments)}}(d.back));"function"==typeof d.forward&&(d.forward=function(b){return function(){a("forward");c.routeChange();return b.apply(this,arguments)}}(d.forward));BOOMR.window.addEventListener("hashchange",function(b){var d=(b||{}).newURL;a("hashchange "+d);c.routeChange(null,d)});BOOMR.hasBrowserOnloadFired()?b():BOOMR.window.addEventListener("load",function(){setTimeout(b,0)});BOOMR.subscribe("beacon",c.resetRouteChangeInProgress);BOOMR.subscribe("spa_cancel",c.resetRouteChangeInProgress);BOOMR.subscribe("spa_init",c.setRouteChangeInProgress);return!0}var c={auto:!1,enabled:!0,hooked:!1,routeHooked:!1,hadMissedRouteChange:!1,routeChangeInProgress:!1,disableHardNav:!1,routeFilter:void 0,routeChangeWaitFilter:void 0,a:void 0,resetRouteChangeInProgress:function(){a("resetting routeChangeInProgress");c.routeChangeInProgress&&clearTimeout(c.routeChangeInProgress);c.routeChangeInProgress=!1},setRouteChangeInProgress:function(){c.routeChangeInProgress&&clearTimeout(c.routeChangeInProgress);c.routeChangeInProgress=setTimeout(c.resetRouteChangeInProgress,50)},spaInit:function(a,b){b?BOOMR.fireEvent("spa_init",[BOOMR.plugins.SPA.current_spa_nav(),b]):a?BOOMR.fireEvent("spa_init",[BOOMR.plugins.SPA.current_spa_nav(),a]):BOOMR.fireEvent("spa_init",[BOOMR.plugins.SPA.current_spa_nav(),BOOMR.window.document.URL])},routeChange:function(b,d){if(c.enabled){if(c.disableHardNav&&!BOOMR.onloadFired())return;if(c.routeChangeInProgress)a("routeChangeInProgress, not triggering");else{a("routeChange triggered, sending route_change() event");c.spaInit(b,d);BOOMR.plugins.SPA.route_change()}}else{a("Not enabled - we've missed a routeChange");c.hadMissedRouteChange=!0;c.resetRouteChangeInProgress()}}};if(!BOOMR.plugins.History&&void 0!==BOOMR.plugins.SPA&&void 0!==BOOMR.plugins.AutoXHR&&BOOMR.window&&BOOMR.window.history){BOOMR.plugins.SPA.register("History");c.a=BOOMR.window.document.createElement("A");BOOMR.plugins.History={is_complete:function(){return!0},hook:function(a,d,e){e=e||{};e.disableHardNav=c.disableHardNav;if(c.hooked)return this;c.routeFilter&&(e.routeFilter=c.routeFilter);c.routeChangeWaitFilter&&(e.routeChangeWaitFilter=c.routeChangeWaitFilter);if(b()){BOOMR.plugins.SPA.hook(d,e);c.hooked=!0}return this},init:function(a){BOOMR.utils.pluginConfig(c,a,"History",["auto","enabled","disableHardNav","routeFilter","routeChangeWaitFilter"]);c.auto&&c.enabled&&this.hook(void 0,!0,{});return this},disable:function(){c.enabled=!1;return this},enable:function(){c.enabled=!0;if(c.hooked&&c.hadMissedRouteChange){c.hadMissedRouteChange=!1;BOOMR.plugins.SPA.route_change();c.setRouteChangeInProgress();a("Hooked and hadMissedRouteChange sending route_change!")}return this}}}}();!function(a){var b,c,d=1800,e=1;if(!BOOMR.plugins.RT){c={onloadfired:!1,unloadfired:!1,visiblefired:!1,initialized:!1,complete:!1,autorun:!0,timers:{},cookie:"RT",cookie_exp:604800,session_exp:d,strict_referrer:!0,navigationType:0,navigationStart:void 0,responseStart:void 0,loadTime:0,oboError:0,t_start:void 0,cached_t_start:void 0,cached_xhr_start:void 0,t_fb_approx:void 0,r:void 0,beacon_url:void 0,next_beacon_url:void 0,basic_timers:{t_done:1,t_resp:1,t_page:1},crossdomain_sending:!1,addedVars:[],updateCookie:function(a,b){var f,g,h,i;if(!this.cookie)return!1;h=BOOMR.utils.getSubCookies(BOOMR.utils.getCookie(this.cookie))||{};for(i in h)h.hasOwnProperty(i)&&(isNaN(parseInt(i,10))||delete h[i]);if("object"==typeof a)for(i in a)a.hasOwnProperty(i)&&(void 0===a[i]?h.hasOwnProperty(i)&&delete h[i]:h[i]=a[i]);h.z=e;h.dm=BOOMR.session.domain;h.si=BOOMR.session.ID;h.ss=BOOMR.session.start.toString(36);h.sl=BOOMR.session.length.toString(36);c.session_exp!==d&&(h.se=c.session_exp.toString(36));BOOMR.session.rate_limited&&(h.rl=1);h.tt=this.loadTime.toString(36);this.oboError>0?h.obo=this.oboError.toString(36):delete h.obo;g=BOOMR.now();if(b){h[b]=(g-BOOMR.session.start).toString(36);c.lastActionTime=g}this.beacon_url&&(h.bcn=this.beacon_url);BOOMR.debug("Setting cookie (timer="+b+")\n"+BOOMR.utils.objectToString(h),"rt");if(!BOOMR.utils.setCookie(this.cookie,h,this.cookie_exp)){BOOMR.error("cannot set start cookie","rt");return!1}f=BOOMR.now();if(f-g>50){BOOMR.utils.removeCookie(this.cookie);BOOMR.error("took more than 50ms to set cookie... aborting: "+g+" -> "+f,"rt")}return!0},refreshSession:function(a){a||(a=BOOMR.plugins.RT.getCookie());if(a){a.ss?BOOMR.session.start=a.ss:BOOMR.session.start=BOOMR.t_lstart||BOOMR.t_start;a.si&&a.si.match(/-/)&&(BOOMR.session.ID=a.si);a.sl&&(BOOMR.session.length=a.sl);a.tt&&(this.loadTime=a.tt);a.obo&&(this.oboError=a.obo);a.dm&&!BOOMR.session.domain&&(BOOMR.session.domain=a.dm);a.se&&(c.session_exp=a.se);a.bcn&&(this.beacon_url=a.bcn);a.rl&&"1"===a.rl&&(BOOMR.session.rate_limited=!0)}},maybeResetSession:function(a,b){BOOMR.debug("Current session meta:\n"+BOOMR.utils.objectToString(BOOMR.session),"rt");BOOMR.debug("Timers: t_start="+b+", sessionLoad="+c.loadTime+", sessionError="+c.oboError+", lastAction="+c.lastActionTime,"rt");var d=0;BOOMR.session.start&&BOOMR.session.length&&(d=(BOOMR.now()-BOOMR.session.start)/BOOMR.session.length);var e=1e3*c.session_exp;if(!BOOMR.session.start||b&&BOOMR.session.start>b||a-(c.lastActionTime||BOOMR.t_start)>e||d>e){BOOMR.session.start=b||BOOMR.t_lstart||BOOMR.t_start;BOOMR.session.length=0;BOOMR.session.rate_limited=!1;c.loadTime=0;c.oboError=0;c.beacon_url=c.next_beacon_url;c.lastActionTime=a;c.updateCookie({rl:void 0,sl:BOOMR.session.length,ss:BOOMR.session.start,tt:c.loadTime,obo:void 0,bcn:c.beacon_url})}BOOMR.debug("New session meta:\n"+BOOMR.utils.objectToString(BOOMR.session),"rt");BOOMR.debug("Timers: t_start="+b+", sessionLoad="+c.loadTime+", sessionError="+c.oboError,"rt")},initFromCookie:function(){var a,c,d;d=BOOMR.plugins.RT.getCookie();this.cookie||(BOOMR.session.enabled=!1);if(d){d.s=Math.max(+d.ld||0,Math.max(+d.ul||0,+d.cl||0));BOOMR.debug("Read from cookie "+BOOMR.utils.objectToString(d),"rt");if(d.s&&(d.r||d.nu)){this.r=d.r;a=BOOMR.utils.MD5(b.URL);c=BOOMR.utils.MD5(b&&b.referrer||"");BOOMR.debug("referrer check: "+this.r+" =?= "+c,"rt");d.cl&&BOOMR.debug(d.s+" d.s&&(this.t_fb_approx=d.hd)}else this.t_start=this.t_fb_approx=void 0}d.s&&(this.lastActionTime=d.s);this.refreshSession(d);this.updateCookie({s:void 0,ul:void 0,cl:void 0,hd:void 0,ld:void 0,rl:void 0,r:void 0,nu:void 0,sh:void 0});this.maybeResetSession(BOOMR.now())}},incrementSessionDetails:function(){BOOMR.debug("Incrementing Session Details... ","RT");BOOMR.session.length++;isNaN(c.timers.t_done.delta)?c.oboError++:c.loadTime+=c.timers.t_done.delta},getBoomerangTimings:function(){function a(a,b){var c=Math.round(a||0),d=Math.round(b||0);c=0===c?0:c-d;return c||""}var b,d,e,f,g;if(BOOMR.t_start){BOOMR.plugins.RT.startTimer("boomerang",BOOMR.t_start);BOOMR.plugins.RT.endTimer("boomerang",BOOMR.t_end);BOOMR.plugins.RT.endTimer("boomr_fb",BOOMR.t_start);if(BOOMR.t_lstart){BOOMR.plugins.RT.endTimer("boomr_ld",BOOMR.t_lstart);BOOMR.plugins.RT.setTimer("boomr_lat",BOOMR.t_start-BOOMR.t_lstart)}}try{if(window&&"performance"in window&&window.performance&&"function"==typeof window.performance.getEntriesByName){d={"rt.bmr":BOOMR.url};BOOMR.config_url&&(d["rt.cnf"]=BOOMR.config_url);for(e in d)if(d.hasOwnProperty(e)&&d[e]){b=window.performance.getEntriesByName(d[e]);if(!b||0===b.length||!b[0])continue;b=b[0];f=a(b.startTime,0);g=[f,a(b.responseEnd,f),a(b.responseStart,f),a(b.requestStart,f),a(b.connectEnd,f),a(b.secureConnectionStart,f),a(b.connectStart,f),a(b.domainLookupEnd,f),a(b.domainLookupStart,f),a(b.redirectEnd,f),a(b.redirectStart,f)].join(",").replace(/,+$/,"");BOOMR.addVar(e,g);c.addedVars.push(e)}}}catch(h){BOOMR.addError(h,"rt.getBoomerangTimings")}},checkPreRender:function(){if("prerender"!==BOOMR.visibilityState())return!1;BOOMR.plugins.RT.startTimer("t_load",this.navigationStart);BOOMR.plugins.RT.endTimer("t_load");BOOMR.plugins.RT.startTimer("t_prerender",this.navigationStart);BOOMR.plugins.RT.startTimer("t_postrender");return!0},initFromNavTiming:function(){var b,c,d;if(!this.navigationStart){c=BOOMR.getPerformance();c&&c.navigation&&(this.navigationType=c.navigation.type);if(c&&c.timing)b=c.timing;else if(a.chrome&&a.chrome.csi&&a.chrome.csi().startE){b={navigationStart:a.chrome.csi().startE};d="csi"}else if(a.gtbExternal&&a.gtbExternal.startE()){b={navigationStart:a.gtbExternal.startE()};d="gtb"}if(b){BOOMR.addVar("rt.start",d||"navigation");this.navigationStart=b.navigationStart||b.fetchStart||void 0;this.fetchStart=b.fetchStart||void 0;this.responseStart=b.responseStart||void 0;navigator.userAgent.match(/Firefox\/[78]\./)&&(this.navigationStart=b.unloadEventStart||b.fetchStart||void 0)}else BOOMR.warn("This browser doesn't support the WebTiming API","rt")}},validateLoadTimestamp:function(a,b,c){var d;if(b&&b.timing&&b.timing.loadEventEnd)return b.timing.loadEventEnd;if(!("xhr"!==c||b&&BOOMR.utils.inArray(b.initiator,BOOMR.constants.BEACON_TYPE_SPAS)))return a;d=BOOMR.getPerformance();return d&&d.timing?d.timing.loadEventEnd?d.timing.loadEventEnd:a:BOOMR.t_onload||BOOMR.t_lstart||BOOMR.t_start||a},setPageLoadTimers:function(a,b,d){var e,f;if("xhr"!==a){c.initFromCookie();c.initFromNavTiming();if(c.checkPreRender())return!1}if("xhr"===a){if(d.timers)for(var g in d.timers)d.timers.hasOwnProperty(g)&&BOOMR.plugins.RT.setTimer(g,d.timers[g]);else if(d&&d.timing){f=d.timing.fetchStart;(void 0===f||d.timing.responseEnd>=f)&&(e=d.timing.responseEnd)}}else c.responseStart?c.responseStart>=c.navigationStart&&c.responseStart>=c.fetchStart&&(e=c.responseStart):c.timers.hasOwnProperty("t_page")?BOOMR.plugins.RT.endTimer("t_page"):c.t_fb_approx&&(e=c.t_fb_approx);if(e){f?BOOMR.plugins.RT.setTimer("t_resp",f,e):BOOMR.plugins.RT.endTimer("t_resp",e);"load"===a&&c.timers.t_load?BOOMR.plugins.RT.setTimer("t_page",c.timers.t_load.end-e):bc.oboError&&(c.oboError=a.RT.oboError);if(a.RT.loadTime&&!isNaN(a.RT.loadTime)&&a.RT.loadTime>c.loadTime){c.loadTime=a.RT.loadTime;c.timers.t_done&&!isNaN(c.timers.t_done.delta)&&(c.loadTime+=c.timers.t_done.delta)}}},domloaded:function(){BOOMR.plugins.RT.endTimer("t_domloaded")},clear:function(){BOOMR.removeVar("rt.start");if(c.addedVars&&c.addedVars.length>0){BOOMR.removeVar(c.addedVars);c.addedVars=[]}},spaNavigation:function(){c.onloadfired=!0}};BOOMR.plugins.RT={init:function(d){BOOMR.debug("init RT","rt");a!==BOOMR.window&&(a=BOOMR.window);d&&d.CrossDomain&&d.CrossDomain.sending&&(c.crossdomain_sending=!0);if(a&&a.document){b=a.document;BOOMR.utils.pluginConfig(c,d,"RT",["cookie","cookie_exp","session_exp","strict_referrer"]);d&&void 0!==d.autorun&&(c.autorun=d.autorun);if(d&&d.beacon_url){c.beacon_url&&!d.force_beacon_url||(c.beacon_url=d.beacon_url);c.next_beacon_url=d.beacon_url}void 0!==b&&(c.r=BOOMR.utils.hashQueryString(b.referrer,!0));c.initFromCookie();if(c.initialized)return this;c.complete=!1;c.timers={};c.check_visibility();BOOMR.subscribe("page_ready",c.page_ready,null,c);BOOMR.subscribe("visibility_changed",c.check_visibility,null,c);BOOMR.subscribe("prerender_to_visible",c.prerenderToVisible,null,c);BOOMR.subscribe("page_ready",this.done,"load",this);BOOMR.subscribe("xhr_load",this.done,"xhr",this);BOOMR.subscribe("dom_loaded",c.domloaded,null,c);BOOMR.subscribe("page_unload",c.page_unload,null,c);BOOMR.subscribe("click",c.onclick,null,c);BOOMR.subscribe("form_submit",c.onsubmit,null,c);BOOMR.subscribe("before_beacon",this.addTimersToBeacon,"beacon",this);BOOMR.subscribe("beacon",c.clear,null,c);BOOMR.subscribe("error",c.markComplete,null,c);BOOMR.subscribe("config",c.onconfig,null,c);BOOMR.subscribe("spa_navigation",c.spaNavigation,null,c);BOOMR.subscribe("interaction",c.markComplete,null,c);BOOMR.getBeaconURL=function(){return c.beacon_url};c.initialized=!0;return this}},startTimer:function(a,b){if(a){"t_page"===a&&this.endTimer("t_resp",b);c.timers[a]={start:"number"==typeof b?b:BOOMR.now()}}return this},endTimer:function(a,b){if(a){c.timers[a]=c.timers[a]||{};void 0===c.timers[a].end&&(c.timers[a].end="number"==typeof b?b:BOOMR.now())}return this},clearTimer:function(a){a&&delete c.timers[a];return this},setTimer:function(a,b,d){a&&(c.timers[a]=void 0!==d?{start:b,end:d,delta:d-b}:{delta:b});return this},addTimersToBeacon:function(a,b){var d,e,f=[];for(d in c.timers)if(c.timers.hasOwnProperty(d)){e=c.timers[d];if("number"!=typeof e.delta){"number"!=typeof e.start&&(e.start="xhr"===b?c.cached_xhr_start:c.cached_t_start);e.delta=e.end-e.start}if(isNaN(e.delta))continue;if(c.basic_timers.hasOwnProperty(d)){BOOMR.addVar(d,e.delta);c.addedVars.push(d)}else f.push(d+"|"+e.delta)}if(f.length){BOOMR.addVar("t_other",f.join(","));c.addedVars.push("t_other")}if("beacon"===b){c.timers={};c.complete=!1}},done:function(a,b){BOOMR.debug("Called done: "+b,"rt");var d,e,f=BOOMR.now(),g=!1;c.complete=!1;e=c.validateLoadTimestamp(f,a,b);if(("load"===b||"visible"===b||"xhr"===b)&&!c.setPageLoadTimers(b,e,a))return this;("load"===b||"visible"===b||"xhr"===b&&a&&"spa_hard"===a.initiator)&&c.getBoomerangTimings();d=c.determineTStart(b,a);c.refreshSession();c.maybeResetSession(e,d);this.endTimer("t_done",e);a&&"xhr"===a.initiator&&this.setTimer("t_done",a.timing.requestStart,a.timing.loadEventEnd);BOOMR.removeVar("t_done","t_page","t_resp","t_postrender","t_prerender","t_load","t_other","rt.tstart","rt.nstart","rt.cstart","rt.bstart","rt.end","rt.subres","http.errno","http.method","http.type","xhr.sync","fetch.bnu","rt.ss","rt.sl","rt.tt","rt.lt");c.setSupportingTimestamps(d);this.addTimersToBeacon(null,b);BOOMR.setReferrer(c.r);"xhr"===b&&a&&a&&a.data&&(a=a.data);if("xhr"===b&&a){g=a.subresource;if(a.url){BOOMR.addVar("u",BOOMR.utils.cleanupURL(a.url.replace(/#.*/,"")));c.addedVars.push("u")}a.status&&(a.status<-1||a.status>=400)&&BOOMR.addVar("http.errno",a.status);a.method&&"GET"!==a.method&&BOOMR.addVar("http.method",a.method);a.type&&"xhr"!==a.type&&BOOMR.addVar("http.type",a.type[0]);a.headers&&BOOMR.addVar("http.hdr",a.headers);a.synchronous&&BOOMR.addVar("xhr.sync",1);a.initiator&&BOOMR.addVar("http.initiator",a.initiator);a.responseBodyNotUsed&&BOOMR.addVar("fetch.bnu",1);c.addedVars.push("http.errno","http.method","http.hdr","xhr.sync","http.initiator","fetch.bnu")}if(g&&"passive"!==g){BOOMR.addVar("rt.subres",1);c.addedVars.push("rt.subres")}if("load"===b||"visible"===b||"xhr"===b&&!g||"unload"===b&&!c.onloadfired&&c.autorun&&!c.crossdomain_sending){c.incrementSessionDetails();c.updateCookie(null,"ld")}BOOMR.addVar({"rt.tt":c.loadTime,"rt.obo":c.oboError});c.addedVars.push("rt.tt","rt.obo");c.updateCookie();if("unload"===b){BOOMR.addVar("rt.quit","");if(!c.onloadfired){BOOMR.addVar("rt.abld","");c.addedVars.push("rt.abld")}c.visiblefired||BOOMR.addVar("rt.ntvu","")}c.complete=!0;BOOMR.sendBeacon(c.beacon_url);return this},is_complete:function(a){return c.complete||a&&"error"===a["http.initiator"]},updateCookie:function(){c.updateCookie()},getCookie:function(){var a,b,f;if(!c.cookie)return!1;a=BOOMR.utils.getSubCookies(BOOMR.utils.getCookie(c.cookie))||{};if(a){if(a.z&e){b=36;f=parseInt(a.ss||0,36)}else{b=10;f=0}a.ss=parseInt(a.ss||0,b);a.tt=parseInt(a.tt||0,b);a.obo=parseInt(a.obo||0,b);a.sl=parseInt(a.sl||0,b);a.se&&(a.se=parseInt(a.se,b)||d);a.ld&&(a.ld=f+parseInt(a.ld,b));a.ul&&(a.ul=f+parseInt(a.ul,b));a.cl&&(a.cl=f+parseInt(a.cl,b));a.hd&&(a.hd=f+parseInt(a.hd,b))}return a},incrementSessionDetails:function(){c.incrementSessionDetails()},navigationStart:function(){c.navigationStart||c.initFromNavTiming();return c.navigationStart}}}}(window);!function(){function a(a){BOOMR.debug(a,"CrossDomain")}if(!BOOMR.plugins.CrossDomain){var b=BOOMR.window;if(b){var c=BOOMR.window.document,d=864e5,e={enabled:!1,cross_domain_url:void 0,session_transferred:!1,debug:!1,iframe_name:"boomerang-cross-domain-session-fetch",iframe:void 0,sending:!1,session:{ID:void 0,start:void 0,length:void 0},session_transferred_time:0,plugin_start:0,session_transfer_timedout:!1,session_transfer_timeout:5e3,session_transfer_complete:!1,setup:function(a){var d=BOOMR.session;if(BOOMR.plugins.RT){var f=BOOMR.plugins.RT.getCookie();if(f){f.obo&&(d.obo=f.obo);f.tt&&(d.tt=f.tt)}}a=a+"#"+BOOMR.utils.objectToString(d,"&");c.body.appendChild(e.buildIFrame(a,e.iframe_name));b.addEventListener?b.addEventListener("message",e.onIFrameMessage):b.attachEvent("onmessage",e.onIFrameMessage)},onIFrameMessage:function(d){var f;if(b.JSON&&-1!==e.cross_domain_url.indexOf(d.origin)){try{f=b.JSON.parse(d.data)}catch(g){a("JSON parsing failed. exiting...");return}if(f){e.session={ID:f.si,start:parseInt(f.ss,10),length:parseInt(f.sl,10)};e.session_transferred_time=BOOMR.now();f.bcn?BOOMR.fireEvent("config",{beacon_url:f.bcn,RT:{oboError:f.obo?parseInt(f.obo,10):0,loadTime:f.tt?parseInt(f.tt,10):0}}):BOOMR.fireEvent("config",{beacon_url:BOOMR.getBeaconURL()});a("Session transferred at: "+e.session_transferred_time+" session data is: "+BOOMR.utils.objectToString(e.session));e.session_transferred=!0;BOOMR.sendBeacon();setTimeout(function(){e.debug||null===c.getElementById(e.iframe_name)||c.body.removeChild(c.getElementById(e.iframe_name))},0)}}},buildIFrame:function(b,d){var e;a("Adding IFrame!");try{e=c.createElement("