CINXE.COM

<html lang="en-US"><head><script> /* ** Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved. */ /** * This is the loopback script to process the url before the real page loads. It introduces * a separate round trip. During this first roundtrip, we currently do two things: * - check the url hash portion, this is for the PPR Navigation. * - do the new window detection * the above two are both controled by parameters in web.xml * * Since it's very lightweight, so the network latency is the only impact. * * here are the list of will-pass-in parameters (these will replace the param in this whole * pattern: * viewIdLength view Id length (characters), * loopbackIdParam loopback Id param name, * loopbackId loopback Id, * windowModeIdParam window mode param name, * clientWindowIdParam client window Id param name, * windowId window Id, * initPageLaunch initPageLaunch, * enableNewWindowDetect whether we want to enable new window detection * jsessionId session Id that needs to be appended to the redirect URL * adfHashMarker A string udentifying the start of PPR Navigation hash * enablePPRNav whether we want to enable PPR Navigation * internalParamsObj an object whose keys are the names of the internal parameters and whose values evaluate as true * noLoopbackViewId View Id used where the page should be redirected when the session cannot be established due to the * browser with disabled cookies accessing a server with URL rewriting disabled * extraParams a name-value map of extra query parameters that should be placed on the URL */ function _addParam(queryString, paramName, value) { var hasValue = (value != null && value !== ''); if (hasValue) { if (queryString == null || queryString ==='') { queryString = "?"; } else { queryString += "&"; } queryString = queryString + paramName + '=' + value; } return queryString; } function _cookiesEnabled() { return (navigator && navigator.cookieEnabled); } var internalParams = {'_afrLoop':1,'_afrWindowMode':1,'_afrWindowId':1,'_afrRedirect':1}; var extraParams = {'_adf.ctrl-state':'b3wramt48_1'}; var queryParamNames = []; var queryParamValues = []; function _addQS(pname, pvalue) { if (!internalParams[pname]) { queryParamNames.push(pname); queryParamValues.push(pvalue) } } function _replaceCallback (p0, pname, p2, pvalue) { _addQS(pname, pvalue); } var id = null; var query = null; var anchor = null; var href = document.location.href; var hashIndex = href.indexOf("#"); var hash = (hashIndex > 0) ? href.substring(hashIndex + 1) : null; href = (hashIndex > 0) ? href.substring(0, hashIndex) : href; var oldUri = href; var marker = '!'; /* process the hash part of the url, split the url */ if (hashIndex > 0) { if (hash.indexOf(marker) == 0) { var adfHash = decodeURIComponent(hash.substring(marker.length)); var state = adfHash.split("@"); var len = state.length; if (len >= 2) { id = state[1]; } if (len >= 3) { query = state[2]; } if (len >= 4) { anchor = state[3]; } } else { anchor = decodeURIComponent(hash); // Check for legacy PPR navigation Hash format if (true && (anchor.indexOf('/') >= 0 || anchor.indexOf('@') >= 0)) { var astate = anchor.split("@"); var alen = astate.length; if (alen >= 1) { id = astate[0]; } if (alen >= 2) { query = astate[1]; } anchor = null; } } } /* process the query part */ var queryIndex = href.indexOf("?"); if (queryIndex > 0) { // only when pprNav is on, we take in the query from the hash portion query = (query || (id && id.length>0))? query: href.substring(queryIndex); href = href.substring(0, queryIndex); } if (query != null && query.length > 0) { // extract all query parameters query.replace(/([^?=&]+)(=([^&]*))?/g, _replaceCallback); query = null; if (queryParamNames.length > 0) { query = ''; for (var i = 0; i < queryParamNames.length; i++) { var n = queryParamNames[i]; var v = queryParamValues[i]; // Check for overrides in the extraParams map if (extraParams[n] != undefined) { v = extraParams[n]; delete extraParams[n]; } query = query + ((i == 0) ? '?' : '&') + n + '=' + ((v == null) ? '' : v); } } } var jsessionIndex = href.indexOf(';'); if (jsessionIndex > 0) { href = href.substring(0, jsessionIndex); } // Check whether HTTP session can be established by verifying that cookies are enabled or URL rewriting is on. // If not, abort processing and redirect to an error page if (!';jsessionid=aiQTXXOAW3yeAWah6-ghWnpr99OGFxv9DwLmNV6Gpg8eIklyLvD5!-606635523!836865692' && !_cookiesEnabled()) { window.location.replace(href.substring(0, href.length - 5) + '/_noloopbackerror_'); } else { /* we will replace the viewId only when pprNav is turned on */ if (true) { if (id != null && id.length > 0) { href = href.substring(0, href.length - 5) + id; } } query = _addParam(query, "_afrLoop", "8920989344234009"); /* below is the new window detection logic */ var initWindowName = "_afr_init_"; // temporary window name set to a new window var windowName = window.name; // if the window name is "_afr_init_", treat it as redirect case of a new window if ((true) && (!windowName || windowName==initWindowName || windowName!="null")) { /* append the _afrWindowMode param */ var windowMode; if (true) { /* this is the initial page launch case, also this could be that we couldn't detect the real windowId from the server side */ windowMode=0; } else if ((href.indexOf("/__ADFvDlg__") > 0) || (query.indexOf("__ADFvDlg__") >= 0)) { /* this is the dialog case */ windowMode=1; } else { /* this is the ctrl-N case */ windowMode=2; } query = _addParam(query, "_afrWindowMode", windowMode); /* append the _afrWindowId param */ var clientWindowId; /* in case we couldn't detect the windowId from the server side */ if (!windowName || windowName == initWindowName) { clientWindowId = "null"; // set window name to an initial name so we can figure out whether a page is loaded from // cache when doing Ctrl+N with IE window.name = initWindowName; } else { clientWindowId = windowName; } query = _addParam(query, "_afrWindowId", clientWindowId); } // Add extra query parameters for (var n in extraParams) { query = _addParam(query, n, extraParams[n]); } var sess = ";jsessionid=aiQTXXOAW3yeAWah6-ghWnpr99OGFxv9DwLmNV6Gpg8eIklyLvD5!-606635523!836865692"; if (sess) { /* here we check the jsessionId, if we ask the container to send jsessionId as */ /* a parameter then it will look like "?jsessionid=xxx". */ if (sess.indexOf(";")==0) { href += sess; } else if (sess.indexOf("?") == 0) { /* at this time query should already be non-empty */ query += "&" + sess.substr(1); } } var newHref = href + ((query == null) ? '' : query); var newHash = (anchor != null && anchor.length > 0) ? encodeURIComponent(anchor) : null; var loc = window.location; // Workaround for the Firebug bug, where the cached version of the loopback script is served var isOldFirebug = false; if (window.console != null && window.console.firebug != null) { var ver = parseFloat(window.console.firebug); isOldFirebug = !isNaN(ver) && ver < 1.9; } // Browser won't reload the page if the base URL is the same, and the new URL has hash if (newHref == oldUri && (newHash != null || isOldFirebug)) { if (hash != newHash) { loc.replace(newHash == null ? "#" + marker : '#' + newHash); } loc.reload(true); } else { loc.replace(newHash == null ? newHref : newHref + '#' + newHash); } } </script><noscript>This page uses JavaScript and requires a JavaScript enabled browser.Your browser is not JavaScript enabled.</noscript> <script>!function(e){var n="https://s.go-mpulse.net/boomerang/";if("False"=="True")e.BOOMR_config=e.BOOMR_config||{},e.BOOMR_config.PageParams=e.BOOMR_config.PageParams||{},e.BOOMR_config.PageParams.pci=!0,n="https://s2.go-mpulse.net/boomerang/";if(window.BOOMR_API_key="B9X8Q-6CZBK-L5NDC-TZ2FW-3RQRE",function(){function e(){if(!o){var e=document.createElement("script");e.id="boomr-scr-as",e.src=window.BOOMR.url,e.async=!0,i.parentNode.appendChild(e),o=!0}}function t(e){o=!0;var n,t,a,r,d=document,O=window;if(window.BOOMR.snippetMethod=e?"if":"i",t=function(e,n){var t=d.createElement("script");t.id=n||"boomr-if-as",t.src=window.BOOMR.url,BOOMR_lstart=(new Date).getTime(),e=e||d.body,e.appendChild(t)},!window.addEventListener&&window.attachEvent&&navigator.userAgent.match(/MSIE [67]\./))return window.BOOMR.snippetMethod="s",void t(i.parentNode,"boomr-async");a=document.createElement("IFRAME"),a.src="about:blank",a.title="",a.role="presentation",a.loading="eager",r=(a.frameElement||a).style,r.width=0,r.height=0,r.border=0,r.display="none",i.parentNode.appendChild(a);try{O=a.contentWindow,d=O.document.open()}catch(_){n=document.domain,a.src="javascript:var d=document.open();d.domain='"+n+"';void(0);",O=a.contentWindow,d=O.document.open()}if(n)d._boomrl=function(){this.domain=n,t()},d.write("<bo"+"dy onload='document._boomrl();'>");else if(O._boomrl=function(){t()},O.addEventListener)O.addEventListener("load",O._boomrl,!1);else if(O.attachEvent)O.attachEvent("onload",O._boomrl);d.close()}function a(e){window.BOOMR_onload=e&&e.timeStamp||(new Date).getTime()}if(!window.BOOMR||!window.BOOMR.version&&!window.BOOMR.snippetExecuted){window.BOOMR=window.BOOMR||{},window.BOOMR.snippetStart=(new Date).getTime(),window.BOOMR.snippetExecuted=!0,window.BOOMR.snippetVersion=12,window.BOOMR.url=n+"B9X8Q-6CZBK-L5NDC-TZ2FW-3RQRE";var i=document.currentScript||document.getElementsByTagName("script")[0],o=!1,r=document.createElement("link");if(r.relList&&"function"==typeof r.relList.supports&&r.relList.supports("preload")&&"as"in r)window.BOOMR.snippetMethod="p",r.href=window.BOOMR.url,r.rel="preload",r.as="script",r.addEventListener("load",e),r.addEventListener("error",function(){t(!0)}),setTimeout(function(){if(!o)t(!0)},3e3),BOOMR_lstart=(new Date).getTime(),i.parentNode.appendChild(r);else t(!1);if(window.addEventListener)window.addEventListener("load",a,!1);else if(window.attachEvent)window.attachEvent("onload",a)}}(),"".length>0)if(e&&"performance"in e&&e.performance&&"function"==typeof e.performance.setResourceTimingBufferSize)e.performance.setResourceTimingBufferSize();!function(){if(BOOMR=e.BOOMR||{},BOOMR.plugins=BOOMR.plugins||{},!BOOMR.plugins.AK){var n=""=="true"?1:0,t="",a="bdpnbet4tppkcz5tbgkq-f-9b1a0615e-clientnsv4-s.akamaihd.net",i="false"=="true"?2:1,o={"ak.v":"39","ak.cp":"1408482","ak.ai":parseInt("856088",10),"ak.ol":"0","ak.cr":1,"ak.ipv":4,"ak.proto":"http/1.1","ak.rid":"7f1ee04","ak.r":6099,"ak.a2":n,"ak.m":"dscb","ak.n":"essl","ak.bpcip":"8.222.208.0","ak.cport":54990,"ak.gh":"124.155.222.157","ak.quicv":"","ak.tlsv":"tls1.2","ak.0rtt":"","ak.0rtt.ed":"","ak.csrc":"-","ak.acc":"reno","ak.t":"1739786645","ak.ak":"hOBiQwZUYzCg5VSAfCLimQ==tzzdOfgMXQmAcUAvoat/ZVQR2w3w6J2LuiWn4to4917TY2PYAk+8l0ycijPqkKz/BZrTgFxFuCDqaFTrPAPKex+5PS5WuWXUfLmdlgljYUlmBaTLzYM9ISWz4BXcTZR7our1tmc3EiJCaxv5J1XBGAWBjnTWBHXOTaJa8BL2SCP8AlU8c7LQmIxbtFhbBcxVsW3gNl97rpQ170QxNObHoZZvOKZ8ylhjn71xveNi1tOfQT4re+VWlyDju6ZWaBvRtwITqngnWi1SEsUdm1TiXUvNs7C/QeCI/rL0gWYuTWByMOhs4reuv4HxlXs3/AVjNU53jQvwL8VxFy0tSIudQ+GD82aYhysB8LF266MHN1bqMyOqJs95q/h5I2MLQnohlLyJ4OlRhpM7LpboZNVaoHF2uVqGjc5SNEcE6tQGdAo=","ak.pv":"8","ak.dpoabenc":"","ak.tf":i};if(""!==t)o["ak.ruds"]=t;var r={i:!1,av:function(n){var t="http.initiator";if(n&&(!n[t]||"spa_hard"===n[t]))o["ak.feo"]=void 0!==e.aFeoApplied?1:0,BOOMR.addVar(o)},rv:function(){var e=["ak.bpcip","ak.cport","ak.cr","ak.csrc","ak.gh","ak.ipv","ak.m","ak.n","ak.ol","ak.proto","ak.quicv","ak.tlsv","ak.0rtt","ak.0rtt.ed","ak.r","ak.acc","ak.t","ak.tf"];BOOMR.removeVar(e)}};BOOMR.plugins.AK={akVars:o,akDNSPreFetchDomain:a,init:function(){if(!r.i){var e=BOOMR.subscribe;e("before_beacon",r.av,null,null),e("onbeacon",r.rv,null,null),r.i=!0}return this},is_complete:function(){return!0}}}}()}(window);</script></head></html>