1(function(c,b){var a; 2b.Granite=b.Granite||{}; 3b.Granite.$=b.Granite.$||c; 4b._g=b._g||{}; 5b._g.$=b._g.$||c; 6a=Granite.HTTP; 7c.ajaxSetup({externalize:true,encodePath:true,hook:true,beforeSend:function(e,d){if(typeof G_IS_HOOKED==="undefined"||!G_IS_HOOKED(d.url)){if(d.externalize){d.url=a.externalize(d.url) 8}if(d.encodePath){d.url=a.encodePathOfURI(d.url) 9}}if(d.hook){var f=a.getXhrHook(d.url,d.type,d.data); 10if(f){d.url=f.url; 11if(f.params){if(d.type.toUpperCase()==="GET"){d.url+="?"+c.param(f.params) 12}else{d.data=c.param(f.params) 13}}}}},statusCode:{403:function(d){if(d.getResponseHeader("X-Reason")==="Authentication Failed"){a.handleLoginRedirect() 14}}}}); 15c.ajaxSettings.traditional=true 16}(jQuery,this)); 17(function(a){if(window.Granite.csrf){return 18}window.Granite.csrf=a(window.Granite.HTTP) 19}(function(m){function b(){this._handler=[] 20}b.prototype={then:function(t,s){this._handler.push({resolve:t,reject:s}) 21},resolve:function(){this._execute("resolve",arguments) 22},reject:function(){this._execute("reject",arguments) 23},_execute:function(s,t){if(this._handler===null){throw new Error("Promise already completed.") 24}for(var u=0,v=this._handler.length; 25u<v; 26u++){this._handler[u][s].apply(window,t) 27}this.then=function(x,w){(s==="resolve"?x:w).apply(window,t) 28}; 29this._handler=null 30}}; 31function e(t){var u=document.location.host; 32var w=document.location.protocol; 33var v="//"+u; 34var s=w+v; 35return(t===s||t.slice(0,s.length+1)===s+"/")||(t===v||t.slice(0,v.length+1)===v+"/")||!(/^(\/\/|http:|https:).*/.test(t)) 36}var p=":cq_csrf_token"; 37var g="CSRF-Token"; 38var k=m.externalize("/libs/granite/csrf/token.json"); 39var j; 40var r; 41function o(s){if(window.console){console.warn("CSRF data not available;The data may be unavailable by design, such as during non-authenticated requests: "+s) 42}}function n(){var s=new b(); 43j=s; 44var t=new XMLHttpRequest(); 45t.onreadystatechange=function(){if(t.readyState===4){try{var v=JSON.parse(t.responseText); 46r=v.token; 47s.resolve(r) 48}catch(u){o(u); 49s.reject(t.responseText) 50}}}; 51t.open("GET",k,true); 52t.send(); 53return s 54}function d(){var t=new XMLHttpRequest(); 55t.open("GET",k,false); 56t.send(); 57try{return r=JSON.parse(t.responseText).token 58}catch(s){o(s) 59}}function l(){r=undefined; 60n() 61}function a(t){var u=t.getAttribute("action"); 62if(t.method.toUpperCase()==="GET"||(u&&!e(u))){return 63}if(!r){d() 64}if(!r){return 65}var s=t.querySelector('input[name="'+p+'"]'); 66if(!s){s=document.createElement("input"); 67s.setAttribute("type","hidden"); 68s.setAttribute("name",p); 69t.appendChild(s) 70}s.setAttribute("value",r) 71}function i(s){var t=function(v){var u=v.target; 72if(u.nodeName==="FORM"){a(u) 73}}; 74if(s.addEventListener){s.addEventListener("submit",t,true) 75}else{if(s.attachEvent){s.attachEvent("submit",t) 76}}}i(document); 77var h=XMLHttpRequest.prototype.open; 78XMLHttpRequest.prototype.open=function(u,s,t){if(u.toLowerCase()!=="get"&&e(s)){this._csrf=true; 79this._async=t 80}return h.apply(this,arguments) 81}; 82var c=XMLHttpRequest.prototype.send; 83XMLHttpRequest.prototype.send=function(){if(!this._csrf){c.apply(this,arguments); 84return 85}if(r){this.setRequestHeader(g,r); 86c.apply(this,arguments); 87return 88}if(this._async===false){d(); 89if(r){this.setRequestHeader(g,r) 90}c.apply(this,arguments); 91return 92}var s=this; 93var t=Array.prototype.slice.call(arguments); 94j.then(function(u){s.setRequestHeader(g,u); 95c.apply(s,t) 96},function(){c.apply(s,t) 97}) 98}; 99var f=HTMLFormElement.prototype.submit; 100HTMLFormElement.prototype.submit=function(){a(this); 101return f.apply(this,arguments) 102}; 103if(window.Node){var q=Node.prototype.appendChild; 104Node.prototype.appendChild=function(){var s=q.apply(this,arguments); 105if(s.nodeName==="IFRAME"){try{if(s.contentWindow&&!s._csrf){s._csrf=true; 106i(s.contentWindow.document) 107}}catch(t){if(s.src&&s.src.length&&e(s.src)){if(window.console){console.error("Unable to attach CSRF token to an iframe element on the same origin") 108}}}}return s 109} 110}n(); 111setInterval(function(){n() 112},300000); 113return{initialised:false,refreshToken:n,_clearToken:l} 114}));
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.