1(function () { 2 var newMathJax = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js'; 3 var oldMathJax = 'cdn.mathjax.org/mathjax/latest/MathJax.js'; 4 5 var replaceScript = function (script, src) { 6 // 7 // Make redirected script 8 // 9 var newScript = document.createElement('script'); 10 newScript.src = newMathJax + src.replace(/.*?(\?|$)/, '$1'); 11 // 12 // Move onload and onerror handlers to new script 13 // 14 newScript.onload = script.onload; 15 newScript.onerror = script.onerror; 16 script.onload = script.onerror = null; 17 // 18 // Move any content (old-style configuration scripts) 19 // 20 while (script.firstChild) newScript.appendChild(script.firstChild); 21 // 22 // Copy script id 23 // 24 if (script.id != null) newScript.id = script.id; 25 // 26 // Replace original script with new one 27 // 28 script.parentNode.replaceChild(newScript, script); 29 // 30 // Issue a console warning 31 // 32 //console.warn('WARNING: cdn.mathjax.org has been retired. Check https://www.mathjax.org/cdn-shutting-down/ for migration tips.') 33 } 34 35 if (document.currentScript) { 36 var script = document.currentScript; 37 replaceScript(script, script.src); 38 } else { 39 // 40 // Look for current script by searching for one with the right source 41 // 42 var n = oldMathJax.length; 43 var scripts = document.getElementsByTagName('script'); 44 for (var i = 0; i < scripts.length; i++) { 45 var script = scripts[i]; 46 var src = (script.src || '').replace(/.*?:\/\//,''); 47 if (src.substr(0, n) === oldMathJax) { 48 replaceScript(script, src); 49 break; 50 } 51 } 52 } 53})();
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.