old_contents: var content;
  
  init();
  
  function init() {
  
  	document.body.style.cssText = ' font: 12pt monospace; left: 0; margin: 0 auto; max-width: 900px; position: absolute; right: 0; ';
  
  	content = document.body.appendChild( document.createElement( 'div' ) );
  
  	var reader = document.body.appendChild( document.createElement( 'script' ) );
  	reader.onload = function() {
  
  		var mathJax = document.body.appendChild( document.createElement( 'script' ) );
  		mathJax.onload = function() {
  
  				hashChange();
  
  		}
  
  		mathJax.src = 'https://cdn.rawgit.com/mathjax/MathJax/2.7.1/MathJax.js?config=TeX-AMS_HTML';
  
  	}
  
  	reader.src = 'http://cdnjs.cloudflare.com/ajax/libs/showdown/1.2.3/showdown.min.js';
  
  	window.addEventListener( 'hashchange', hashChange, false );
  
  }
  
  function hashChange() {
  
  	var fileName = location.hash ? location.hash.split( '#' )[1] : 'readme.md';
  
  	document.title = document.title ? document.title : fileName;
  
  	var xmlHttp = new XMLHttpRequest();
  	xmlHttp.open( 'GET', fileName, true );
  	xmlHttp.onreadystatechange = function() {
  
  		content.innerHTML = xmlHttp.readyState === 4 ? new showdown.Converter().makeHtml( xmlHttp.responseText ) : '';
  		MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, 'content' ] );
  
  	};
  
  	xmlHttp.send( null );
  
  }
  
new_contents: var content;
  
  init();
  
  function init() {
  
  	document.body.style.cssText = ' font: 12pt monospace; left: 0; margin: 0 auto; max-width: 900px; position: absolute; right: 0; ';
  
  	content = document.body.appendChild( document.createElement( 'div' ) );
  
  	var reader = document.body.appendChild( document.createElement( 'script' ) );
  	reader.onload = function() {
  
  		var mathJax = document.body.appendChild( document.createElement( 'script' ) );
  		mathJax.onload = function() {
  
  				hashChange();
  
  		}
  
  		mathJax.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_HTML';
  
  	}
  
  	reader.src = 'http://cdnjs.cloudflare.com/ajax/libs/showdown/1.2.3/showdown.min.js';
  
  	window.addEventListener( 'hashchange', hashChange, false );
  
  }
  
  function hashChange() {
  
  	var fileName = location.hash ? location.hash.split( '#' )[1] : 'readme.md';
  
  	document.title = document.title ? document.title : fileName;
  
  	var xmlHttp = new XMLHttpRequest();
  	xmlHttp.open( 'GET', fileName, true );
  	xmlHttp.onreadystatechange = function() {
  
  		content.innerHTML = xmlHttp.readyState === 4 ? new showdown.Converter().makeHtml( xmlHttp.responseText ) : '';
  		MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, 'content' ] );
  
  	};
  
  	xmlHttp.send( null );
  
  }
  
subject: Update CDN