diff --git a/community.html b/community.html
index 80ea98c..bd93cef 100644
--- a/community.html
+++ b/community.html
@@ -3,10 +3,11 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtend - Community</title>
+	<title>Xtext - Community</title>
+	
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="Xtend is a statically typed programming language sitting on top of Java.">
+		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -16,19 +17,19 @@
 	<![endif]-->
 	
 	<!-- Le fav and touch icons -->
+	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
 	
-	<link rel="shortcut icon" href="/xtend/images/favicon.png">
-	
-	<link href="/xtend/css/bootstrap.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/shield-responsive.css" rel="stylesheet" type='text/css'>
-	<link href='/xtend/css/fonts.css' rel='stylesheet' type='text/css'>
-	<link href="/xtend/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
-	<link href="/xtend/css/prettify.css" type="text/css" rel="stylesheet"/>
-	<link href="/xtend/css/style.css" rel="stylesheet" type='text/css'>
-	
+	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
+	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
+	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
+	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
+	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
+	<!-- cover flow -->
+	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
 	<!--[if lt IE 9]>
-	<link href="css/iebugs.css" rel="stylesheet" type='text/css'>
+	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
 	<![endif]-->
 
 	<!-- BEGIN Cookie Consent
@@ -86,27 +87,35 @@
 
 
   <body>
+  
+    <header class="site-header">
 
-    <!-- Navbar -->
-  <div class="navbar navbar-fixed-top"
-    style="border-bottom: 1px solid #000;">
+  <!-- Navbar -->
+  <div class="navbar navbar-fixed-top">
     <div class="navbar-inner">
       <div class="container">
         <a class="btn btn-navbar" data-toggle="collapse"
           data-target=".nav-collapse"> <span class="icon-bar"></span> <span
           class="icon-bar"></span> <span class="icon-bar"></span>
-        </a> <a class="brand" href="/xtend/index.html"></a>
+        </a> <a class="brand" href="/Xtext/index.html"></a>
         <div class="nav-collapse collapse" style="height: 0px;">
           <ul class="nav">
-            <li ><a href="/xtend/download.html">Download</a></li>
-            <li ><a href="/xtend/documentation/index.html">Documentation</a></li>
-            <li ><a href="/xtend/community.html">Community</a></li>
-            <li ><a href="http://xtext.org">Xtext</a></li>
-            <li ><a href="http://www.eclipse.org">Eclipse.org</a></li>
+            <!--li ><a href="/Xtext/news.html">News</a></li-->
+            <li ><a href="/Xtext/download.html">Download</a></li>
+            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
+            <li ><a href="/Xtext/community.html">Community</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
+                <li><a href="https://typefox.io/trainings-2" target="_blank">TypeFox</a></li>
+              </ul>
+            </li>
+            <li ><a href="http://xtend-lang.org">Xtend</a></li>
           </ul>
-              <!--div class="btn-group pull-right">
-                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
-              </div-->
+          <!--div class="nav pull-right">
+            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
+          </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -114,175 +123,701 @@
   </div>
   <!-- Navbar End -->
 
+</header>
 
-    <div id="header_wrapper">
-	<div class="container"> 
-		<div class="flexslider image-slider">
-		  <div class="row">
-			<div class="span5 team">
-			  <a href="https://groups.google.com/group/xtend-lang" class="anchor-in-div" title="The Xtend Google Group is the first source for getting answers in case you got stuck. The community is very friendly. Please ask any questions clearly and with sufficient information attached."></a>
-			  <div class="row">
-			    <div class="span1">
-			      <img src="/xtend/images/discussion-white.png" alt="image" class="image_left">
-			    </div>
-			    <div class="span4">
-			      <h3 >Discussion Group</h3>
-					<p></p>
-				</div>
-			  </div>
-			</div>
-			<div class="span5 team">
-				 <a href="https://github.com/eclipse/xtext-xtend/issues" class="anchor-in-div" title="Bug reports and enhancement request are tracked at GitHub. Please explain the problem and provide a reduced but reproducable eample. Also please explain the concrete use case when requesting enhancements."></a>
-				 <div class="row">
-				    <div class="span1">
-				      <img src="/xtend/images/bug-white.png" width="80" height="80" alt="image" class="image_left">
-					</div>
-				    <div class="span4">
-				      <h3 >Found a Bug?</h3>
-					</div>
-				</div>
-			</div>
-		  </div>
-		  <div class="row">
-			<div class="span5 team">
-				 <a href="https://github.com/eclipse/xtext" class="anchor-in-div" title="The Xtend source code is available on GitHub. You'll find more information on how to contribute to the project in the README.md contained there."></a>
-				 <div class="row">
-				    <div class="span1">
-				      <img src="/xtend/images/github-mark-white.png" alt="image" class="image_left">
-					</div>
-				    <div class="span4">
-				      <h3 >Source Code</h3>
-					</div>
-				</div>
-			</div>
-			<div class="span5 team">
-			  <a href="https://twitter.com/xtendlang" class="anchor-in-div" title="If you are on twitter and want to get notified about Xtend, you should consider following @xtendlang."></a>
-			  <div class="row">
-			    <div class="span1">
-			      <img src="/xtend/images/Twitter-bird-white.png" alt="image" class="image_left">
-			    </div>
-			    <div class="span4">
-			      <h3 >Xtend on Twitter</h3>
-				</div>
-			  </div>
-			</div>
-		  </div>
-		</div>
-	</div>
-</div>
 
-	  <div class="inner">
-		<div class="container clearfix"> 
-			<h2>Videos of Presentations</h2>
-			<hr>
+    	<div id="page">
+		<div id="team" class="container clearfix"> 
+			<h2>Resources</h2>
+	        <hr>
 			<div class="row">
-				<div class="span12">
-					<table class="table table-striped">
-						<tr><td>Video</td><td><h2><a href="http://jdk.io/index.php/program/enterprise-java/20-xtend-in-action">Eclipse Xtend: A Language Made for Java Developers (JDK.IO 2014, Kobenhavn)</a></h2></td></tr>
-						<tr><td>Video</td><td><h2><a href="https://www.parleys.com/talk/5297729ae4b039ad2298c9b5/chapter0/about">Xtend in Action (Devoxx 2013)</a></h2></td></tr>
-						<tr><td>Video</td><td><h2><a href="https://www.youtube.com/watch?v=EzH5MPd13iI">Eclipse Xtend: A Language Made for Java Developers (JavaOne 2012, SF)</a></h2></td></tr>
-						<tr><td>Video</td><td><h2><a href="https://skillsmatter.com/skillscasts/2917-xtend-xtest">Eclipse Xtend: A Language Made for Java Developers (Skills Matter 2012, London)</a></h2></td></tr>
-					</table>
-				</div>
-			</div>
-		</div>
-		<div>
-		  <div class="inner">
-			<div class="container clearfix"> 
-				<h2>Articles and Blog Posts</h2>
-				<hr>
-				<div class="row">
-					<div class="span12">
-					<table class="table table-striped">
-					<tr><td>Blog</td><td><h2><a href="http://spoenemann.blogspot.de/2015/02/xtend-for-java-8.html">Xtend for Java 8</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://futurice.com/blog/android-development-has-its-own-swift">Android Development has its own Swift</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://the-dusty-deck.blogspot.de/2014/06/xtend-gentle-and-functional-java.html">Xtend, the Gentle and Functional Java</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://www.infoq.com/articles/unusual-ways-to-create-a-mobile-app">Android and Xtend</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://jnario.org/org/jnario/jnario/documentation/20FactsAboutXtendSpec.html">20 Facts about Xtend</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://www.sebastianbenz.de/5-Things-that-make-Xtend-a-great-Language-for-Java-developers">5 things that make Xtend a great language</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://www.javacodegeeks.com/2013/02/building-vaadin-ui-with-xtend.html">Building Vaadin UIs with Xtend</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2012/12/java-8-vs-xtend.html">Java 8 vs. Xtend</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://duncan.mac-vicar.com/2012/09/30/a-better-java-scala-or-xtend/">A better Java: Scala or Xtend</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://mnmlst-dvlpr.blogspot.de/2014/07/rxjava-and-xtend.html">RxJava and Xtend</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://mnmlst-dvlpr.blogspot.de/2014/07/rxjava-and-xtend.html">The Software Life: First Impressions of Xtend</a></h2></td></tr>
-					<tr><td>Article</td><td><h2><a href="https://pragprog.com/magazines/2011-12/extending-java">Extending Java - Xtend a New Language for Java Developers</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://tomsondev.bestsolution.at/2012/04/11/javafx-xtend-a-perfect-match/">JavaFX & Xtend - A Perfect Match</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://tomsondev.bestsolution.at/2012/04/11/javafx-xtend-a-sensational-perfect-match/">JavaFX & Xtend - A Sensational Perfect Match</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://tomsondev.bestsolution.at/2012/05/29/javafx-xtend-an-ongoing-love/">JavaFX & Xtend - An Ongoing Love</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://tomsondev.bestsolution.at/2012/06/19/xtend-javafx-properties-and-operator-overloading/">Xtend, JavaFX-Properties and Operator Overloading</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://blog.moritz.eysholdt.de/2011/12/building-swt-user-interfaces-with-xtend.html">Building SWT User Interfaces with Xtend</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2012/06/vertx-and-xtend.html">Vert.x & Xtend</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2012/05/distance-time-speed.html">Distance / Time = Speed - A Post on Operator Overloading in Xtend</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2012/04/xtend-examples-used-at-eclipsecon-2012.html">Xtend Example Screencasts</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2012/04/xtend-example-working-with-distances.html">Working With Distances using Xtend (Operator Overloading Applied)</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2012/01/i-like-free-beer.html">I Like Free Beer (99 Bottles in Xtend)</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2011/12/groovy-scala-java-xtend-stupid.html">Groovy, Scala, Java, Xtend - A Stupid Comparism</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2011/12/groovy-scala-java-xtend-updated-stupid.html">Groovy, Scala, Java, Xtend - An UPDATED Stupid Comparism</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2011/12/writing-android-uis-with-xtend.html">Writing Android Apps with Xtend</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2011/11/whats-so-special-about-xtends-extension.html">What's so special about Xtend's extension methods</a></h2></td></tr>
-					<tr><td>Blog</td><td><h2><a href="http://blog.efftinge.de/2011/10/xtend-21-type-safe-groovy-style-builder.html">Xtend - Type-safe Groovy-style Builder APIs</a></h2></td></tr>
-					<tr><td>Article</td><td><h2><a href="http://it-republik.de/jaxenter/artikel/Codegenerierung-mit-Eclipse-Xtend-4186.html">Xtend - eine Sprache für Java Entwickler (German)</a></h2></td></tr>
-				</table>
+				<div class="span1">&nbsp;</div>
+				<div class="span9 team">
+			    <a href="http://www.eclipse.org/forums/index.php?t=thread&frm_id=27" class="anchor-in-div"></a>
+			    <div class="row">
+				  <div class="span1 ">
+				    <img src="/Xtext/images/discussion-circ-darkgray.png" alt="image" class="image_left">
+				  </div>
+				  <div class="span2 ">
+				    <h3>Forum</h3>
+				 	</div>
+					<div class="span6 ">
+						<p>The <strong>Xtext forum</strong> is the first source for getting answers in case you got stuck.
+						The community is very friendly.</p>
+					</div>
 					</div>
 				</div>
+			  <div class="span1">&nbsp;</div>
 			</div>
-		  </div>
+			<div class="row">
+				<div class="span1">&nbsp;</div>
+				<div class="span9 team">
+			    <a href="https://github.com/eclipse/xtext/blob/master/CONTRIBUTING.md#report-an-issue" class="anchor-in-div"></a>
+			    <div class="row">
+				  <div class="span1 ">
+				    <img src="/Xtext/images/bug-circ-darkgray.png" alt="image" class="image_left">
+				  </div>
+				  <div class="span2 ">
+				    <h3>Found a Bug?</h3>
+				 	</div>
+					<div class="span6 ">
+						<p>Bug reports and enhancement request are tracked at <strong>GitHub.org</strong>. Please 
+						explain the problem and provide a reduced but reproducible example.</p>
+					</div>
+					</div>
+				</div>
+			  <div class="span1">&nbsp;</div>
+			</div>
+			<div class="row">
+				<div class="span1">&nbsp;</div>
+				<div class="span9 team">
+			    <a href="https://github.com/eclipse/xtext" class="anchor-in-div"></a>
+			    <div class="row">
+				  <div class="span1 ">
+				    <img src="/Xtext/images/github-mark-darkgray.png" alt="image" class="image_left">
+				  </div>
+				  <div class="span2 ">
+				    <h3>Github</h3>
+				 	</div>
+					<div class="span6 ">
+						<p>The Xtext source code is available on <strong>GitHub</strong>. You'll find more information on how to contribute to the project in the README.md contained there.</p>
+					</div>
+				  </div>
+				</div>
+			  <div class="span1">&nbsp;</div>
+			</div>
+			<div class="row">
+				<div class="span1">&nbsp;</div>
+				<div class="span9 team">
+			    <a href="https://twitter.com/intent/user?screen_name=Xtext" class="anchor-in-div"></a>
+			    <div class="row">
+				  <div class="span1 ">
+				    <img src="/Xtext/images/Twitter-bird-darkgray.png" alt="image" class="image_left">
+				  </div>
+				  <div class="span2 ">
+				    <h3>Twitter</h3>
+				 	</div>
+					<div class="span6 ">
+						<p>If you are on twitter and want to get notified about Xtext, you should consider following <strong>@Xtext</strong>.</p>
+					</div>
+					</div>
+				</div>
+			  <div class="span1">&nbsp;</div>
+			</div>
+			
 		</div>
-	  </div>
+		<br/><br/>
+    <div id="zoo" class="container"> 
+        <span class="edit-on-github pull-right">
+          <a href="https://github.com/eclipse/xtext/edit/website-published/xtext-website/community.html">Add your project!</a>
+        </span>
+        <h2>What others have built with Xtext</h2>
+        <hr>
+  	    <table class="table table-striped table-condensed">
+  	        <thead>
+  	        <tr>
+  	          <th>Name</th>
+  	          <th>Description</th>
+  	          <th>License</th>
+  	          <th>Category</th>
+  	          <th>Author(s)</th>
+  	        </tr></thead>
+  	        <tbody>
+  	        
+  	        <tr>
+  	          <td><a href="http://applause.github.io/">APPlause</a></td>
+  	          <td>Open source tool chain to produce native apps for different
+  	      devices such as Android, iPhone and iPad.</td>
+  	          <td>EPL</td>
+  	          <td>Language, Framework</td>
+  	          <td>Heiko Behrens, Peter Friese, et al</td>
+  	        </tr>
+  	        
+  	        <tr>
+  	          <td><a href="http://code.google.com/p/alloy4eclipse/">alloy4eclipse</a></td>
+  	          <td>Specification and analysis of models in the Alloy4 language on
+  	      the Eclipse platform.</td>
+  	          <td>LGPL</td>
+  	          <td>Language</td>
+  	          <td>Mohamed Bouragba, Mohamed Said, Maxime Kapusta and Yoann Vasseur</td>
+  	        </tr>
+ 		<tr>
+   	          <td><a href="http://www.arakhne.org/afc">AFC</a></td>
+   	          <td>AFC is a Java library that provides mathematic primitives, and other useful utility tools. The mathematic primitives
+   	          (vector, point, matrix, shape, etc.) are providing operator overridings for Xtext-based languages.</td>
+   	          <td>Apache 2 License</td>
+   	          <td>Library</td>
+   	          <td>St&eacute;phane Galland, et al</td>
+   	        </tr>
+  	        <tr>
+  	          <td><a href="http://www.artop.org/">ARText (part&nbsp;of&nbsp;Artop)</a></td>
+  	          <td>ARText, a textual language for the specification of AUTOSAR
+  	      systems. See the <a href="https://vimeo.com/16768196">very</a> <a href="https://vimeo.com/13154188">cool</a> <a href="https://vimeo.com/12080038">screencasts</a>.</td>
+  	          <td>closed&nbsp;source</td>
+  	          <td>Language</td>
+  	          <td>Sebastian Benz, Dana Wong</td>
+  	        </tr>
+  	          <tr>
+  	          <td><a href="http://new.axdt.org">Axdt</a></td>
+  	          <td>ActionScript3 development tools. It uses Mirror resources to
+  	      integrate declarations parsed from html and xml ActionScript Docs similar to
+  	      the Xtext Java integration.</td>
+  	          <td>EPL</td>
+  	          <td>Language</td>
+  	          <td>Martin Schnabel</td>
+  	        </tr>
+  	        <tr>
+  	           <td><a href="http://businessAppTester.com">BusinessAppTester</a></td>
+  	           <td>
+  	             Allows you to reuse JUnit test classes by seperating the data from the
+  	      unit implementation class. Uses Xtext to define test class specific domain
+  	      models.
+  	           </td>
+  	           <td>EPL</td>
+  	           <td>Testing, Framework</td>
+  	           <td>Florian Pirchner, Ekkehard Gentz</td>
+  	       </tr>
+  	         <tr>
+  	           <td><a href="http://www.canappi.com">Canappi</a></td>
+  	           <td>
+  	             Canappi is a Development Hub, focusing on Mobile Application Development, that
+  	      integrates tools, mobile platforms, libraries and back-end services. It is
+  	      based on mdsl, a very compact mobile domain specific language. Platform
+  	      specific code generation happens in on the ClougGen.org platform.
+  	           </td>
+  	           <td>Commercial</td>
+  	           <td>Language</td>
+  	           <td>Jean-Jacques Dubray</td>
+  	       </tr>
+  	       <tr>
+  	            <td><a href="http://code.google.com/p/dom3editor/">dom3editor</a></td>
+  	            <td>
+  	                  This is a tool to help edit Dominions 3 mod files. It includes
+  	      context coloring, code completion, error checking and integrated help. You can
+  	      edit using the text editor or the form based entry view.
+  	            </td>
+  	            <td>GPL</td>
+  	            <td>Language</td>
+  	            <td>Larry Moore</td>
+  	       </tr>
+  	      <tr>
+  	          <td><a href="https://wiki.eclipse.org/GEF/GEF4/DOT">GEF4 DOT</a></td>
+  	          <td>Graphviz DOT language editor</td>
+  	          <td>EPL</td>
+  	          <td>Language, Framework</td>
+  	          <td>Fabian Steeg, Michael Clay, et al.</td>
+  	        </tr>
+  	        <tr>
+  	          <td><a href="https://github.com/dslmeinte/Xtext2-DSLs">dslmeinte's example DSLs</a></td>
+  	          <td>Various DSLs for technical domains (data modeling, dynamic screens, XSDs,
+  	      WSDLs)</td>
+  	          <td>MIT license</td>
+  	          <td>examples</td>
+  	          <td><a href="http://www.dslconsultancy.com/">Meinte Boersma</a></td>
+  	          </tr>
+  	          <tr>
+  	          <td><a href="http://code.google.com/p/emf-customizer/">EMF&nbsp;Customizer</a></td>
+  	          <td>EMF Customizer is a model (Ecore based)
+  	      customization/styling/refining CSS like textual DSL (Domain Specific Language)
+  	      targeting MDSD tool chains end users. </td>
+  	          <td>EPL</td>
+  	          <td>Language</td>
+  	          <td>Cedric Vidal</td>
+  	        </tr>
+  	        <tr>
+  	          <td><a href="https://www.eclipse.org/incquery/">EMF&nbsp;IncQuery</a></td>
+  	          <td>High performance graph search for EMF models. EMF-IncQuery is a framework for defining declarative graph queries over EMF models, and executing them efficiently without manual coding in an imperative programming language such as Java.</td>
+  	          <td>EPL</td>
+  	          <td>Language, Framework</td>
+  	          <td><a href="https://projects.eclipse.org/projects/modeling.incquery/who">EMF-IncQuery contributors</a></td>
+  	        </tr>
+  	          <tr>
+  	          <td><a href="http://code.google.com/a/eclipselabs.org/p/emf-scaffolding/">EMF&nbsp;Scaffolding</a></td>
+  	          <td>Implementation of the principle of dynamic inplace scaffolding
+  	      with EMF presented in July 2009 <a href="http://www.slideshare.net/cedric.vidal/rmll-eclipse-acceleo-day-mdsd-scaffolding-and-acceleo-cdric-vidal-11">at Eclipse Acceleo Day</a>.
+  	      </td>
+  	          <td>EPL</td>
+  	          <td>Language, Framework</td>
+  	          <td>Cedric Vidal and Jerome Benois</td>
+  	        </tr>
+  	          <tr>
+  	          <td><a href="http://www.eclipse.org/modeling/emft/b3/">Eclipse b3</a></td>
+  	          <td>new generation of Eclipse technology to simplify software build
+  	      and assembly.</td>
+  	          <td>EPL</td>
+  	          <td>Language</td>
+  	          <td>Henrik Lindberg</td>
+  	        </tr>
+  	        <tr>
+  	            <td><a href="http://elysium.thsoft.hu">Elysium</a></td>
+  	            <td>LilyPond IDE for Eclipse</td>
+  	            <td>EPL</td>
+  	            <td>Language</td>
+  	            <td>Denes Harmath</td>
+  	        </tr>
+  	        <tr>
+  	          <td><a href="http://www.eclipse.org/etrice/">eTrice</a></td>
+  	          <td>eTrice is a Modeling Tool for distributed eventdriven realtime systems based on
+  	      Realtime Object Oriented Modeling (ROOM), not UML. Textual and graphical ROOM
+  	      editors editors and codegenerators and runtime libraries for Java, C++ and C
+  	      will be provided.</td>
+  	          <td>EPL</td>
+  	          <td>Language, Framework</td>
+  	          <td>Henrik Rentz-Reichert, Thomas Schuetz</td>
+  	        </tr>
+  	        <tr>
+  	          <td><a href="http://fj-eclipse.sourceforge.net/">fj-eclipse</a></td>
+  	          <td>an Eclipse-based IDE for Featherweight Java, implemented using Xtext.</td>
+  	          <td>GPL</td>
+  	          <td>Language</td>
+  	          <td>Lorenzo Bettini</td>
+  	        </tr>
+  	          <tr>
+  	         <td><a href="https://github.com/cloudsmith/geppetto">Geppetto</a></td>
+  	         <td>Integrated development environment for the Puppet System Admin tools. (The
+  	        PP manifest
+  	                  language is Ruby like).</td>
+  	         <td>EPL, Apache</td>
+  	            <td>Language</td>
+  	         <td>Henrik Lindberg, Cloudsmith Inc.</td>
+  	        </tr>
+  	          <tr>
+  	         <td><a href="http://community.jaspersoft.com/project/jaspersoft-studio">Jaspersoft Studio, Report Designer for JasperReports</a></td>
+  	         <td>The Expression Editor allows to compose Java-like expressions enriched with JasperReports specific tokens. 
+  	  The SQL Query Designer, in text mode, allows to edit simple and advanced SQL expressions.</td>
+  	         <td>EPL</td>
+  	            <td>Report Designer</td>
+  	         <td>Jaspersoft Studio Team (Veaceslav Chicu, Massimo Rabbi, Marco Orlandin and Giulio Toffoli)</td>
+  	        </tr>
+  	        
+  	        
+  	        <tr>
+  	            <td><a href="http://www.jolie-lang.org/">Joliepse
+  	      IDE</a></td>
+  	            <td>Joliepse is an Integrated Development Environment (IDE) for the JOLIE
+  	      programming language, the first full-fledged programming language based upon
+  	      the service-oriented programming paradigm
+  	      and support classes.</td>
+  	            <td>GPL</td>
+  	            <td>Language</td>
+  	            <td>Diego Castronuovo (castronu at gmail dot com)</td>
+  	        </tr>
+  	        <tr>
+  	          <td><a href="http://www.informatik.uni-kiel.de/rtsys/kieler/">KIELER</a></td>
+  	          <td>an evaluation platform for new methods in model-based software
+  	      design (automatic layout, graphic/ textual dynamic views, focus and context,
+  	      simulation, codegen,...)</td>
+  	          <td>EPL</td>
+  	          <td>Language</td>
+  	          <td>Rtsys group, Dep. of Computer Science, Uni Kiel</td>
+  	        </tr>
+  	        <tr>
+  	            <td><a href="http://amishne.github.io/llvm-ir-editor/">LLVM IR SDK</a></td>
+  	            <td>A rich LLVM IR editor plugin for Eclipse.</td>
+  	            <td>BSD</td>
+  	            <td>Language</td>
+  	            <td>Alon Mishne</td>
+  	        </tr>
+  	          <tr>
+  	          <td><a href="http://code.google.com/p/llvm4e/">LLVM4e</a></td>
+  	          <td>Xtext based Eclipse editor for LLVM (Low Level Virtual Machine)
+  	      Assembly Language *.ll files</td>
+  	          <td>EPL</td>
+  	          <td>Language</td>
+  	          <td>Cedric Vidal</td>
+  	        </tr>
+  	          <tr>
+  	          <td><a href="http://logicals.com/">logi.CAD 3</a></td>
+  	          <td>logi.CAD 3 is a tool for programming a wide variety of PLCs (Programmable Logic Controllers) according to the industry standard IEC 61131-3. It is an Eclipse RCP based (E3/E4) integrated development environment (IDE) using XText for implementing the editors for the IEC programming languages ST (Structured Text), FBD (Function Block Diagram) and SFC (Sequential Function Chart).</td>
+  	          <td>Commercial</td>
+  	          <td>Language</td>
+  	          <td>logi.cals Austria (http://logicals.com)</td>
+  	        </tr>
+  	        <tr>
+  	            <td><a href="http://mads.sourceforge.net">MADS</a></td>
+  	            <td>
+  	             MADS (Multipurpose Agricultural Data System) is a free open-source tool
+  	      for modelling and analysis of agricultural activities - crops, livestock,
+  	      forestry and others - in developing countries, at sector, regional or project
+  	      level. .
+  	            </td>
+  	            <td>EPL, GPL</td>
+  	            <td>RCP application</td>
+  	            <td>Michel Simeon</td>
+  	        </tr>
+  	         <tr>
+  	            <td><a href="http://www.mechatronicuml.org">MechatronicUML Website</a>,<a href="https://svn-serv.cs.upb.de/mechatronicuml/">MechatronicUML SVN</a></td>
+  	            <td>
+  	             MechatronicUML is a free open-source tool suite 
+  	      that offers language, process and tooling to design software for networked cyber-physical systems.
+  	      We offer Xtext grammars for: Action Language, API Description, DOT/ Graphviz, LPSolve, MTCTL, Model Dependencies.
+  	            </td>
+  	            <td>EPL</td>
+  	            <td>Language, Tool Suite</td>
+  	            <td>Project Group Mechatronic Systems Design, Fraunhofer Institute for Production Technology IPT; Software Engineering Group, Heinz Nixdorf Institute, University of Paderborn</td>
+  	        </tr>
+  	        <tr>
+  	        <tr>
+  	          <td><a href="http://www.mod4j.org/">mod4j</a></td>
+  	          <td>open source DSL-based environment for developing administrative
+  	      enterprise applications</td>
+  	          <td>EPL</td>
+  	          <td>Language, Framework</td>
+  	          <td>Jos Warmer</td>
+  	        </tr>
+  	        <tr>
+  	          <td><a href="http://modulestudio.de/en">ModuleStudio</a></td>
+  	          <td>A DSL with tooling based on Sirius and Xtext to describe structure and behaviour of web applications.
+		      The models are used to generate extensions for a PHP-based web application framework.</td>
+  	          <td>closed&nbsp;source</td>
+  	          <td>Language, Tool Suite</td>
+  	          <td>Axel Guckelsberger</td>
+  	        </tr>
+  	        <tr>
+  	         <td><a href="http://metrikforge.informatik.hu-berlin.de/projects/nanoworkbench/">NanoWorkbench</a>
+  	         </td>
+  	         <td>A Domain-specific Workbench (DSM) for the development of optical
+  	      nanostructures. Especially used for the description of simulations and
+  	      experiments.
+  	         </td>
+  	         <td>GPL</td>
+  	         <td>language, documentation</td>
+  	            <td>Siamak Haschemi (haschemi@informatik.hu-berlin.de), Martin Schmidt
+  	       (schmidma@informatik.hu-berlin.de), Arif Wider
+  	      (wider@informatik.hu-berlin.de)</td>
+  	        </tr>
+  	      <tr>
+  	            <td><a href="http://code.google.com/a/eclipselabs.org/p/nusmv-tools/">nusmv-tools</a></td>
+  	            <td>The nusmv-tools project provides a set of tools for the model checker
+  	      <a href="http://nusmv.fbk.eu/">NuSMV</a>. Xtext is used to create an Eclipse
+  	      editor for the NuSMV input language. The editor is further enhanced by static
+  	      analysis checks (shown as Eclipse error markers) performed by an OSGi-fied
+  	      version of NuSMV itself. Watch the <a href="https://vimeo.com/21637768">screencast</a>.
+  	            </td>
+  	            <td>EPL</td>
+  	            <td>Language</td>
+  	            <td><a href="mailto://siamak@haschemi.org">Siamak Haschemi</a></td>
+  	        </tr>
+  	        <tr>
+  	            <td><a href="http://wiki.eclipse.org/MDT/OCL">OCL</a></td>
+  	            <td>Editors for OCL expressions, documents, libraries. Standalone or
+  	      embedded in Ecore.</td>
+  	            <td>EPL</td>
+  	            <td>Language</td>
+  	            <td>Ed Willink</td>
+  	        </tr>
+  	        <tr>
+  	           <td><a href="http://www.gentleware.com/poseidon-for-dsls.html">Poseidon for DSLs</a></td>
+  	           <td>Framework for creating graphical tools for DSLs, based on internal
+  	      Xtext models. Poseidon for UML 8.0 as a sample DSL platform
+  	           </td>
+  	           <td>commercial</td>
+  	           <td>Framework</td>
+  	           <td>Gentleware AG</td>
+  	       </tr>
+  	         <tr>
+  	          <td><a href="http://code.google.com/p/protobuf4e/">protobuf4e</a></td>
+  	          <td>Editor for Google's Protocol Buffers data interchange file
+  	      format. </td>
+  	          <td>EPL</td>
+  	          <td>Language</td>
+  	          <td>Cedric Vidal</td>
+  	        </tr>
+  	        <tr>
+  	            <td><a href="http://www.pxdoc.fr">pxDoc</a></td>
+  	            <td>pxDoc is a Domain Specific Language to design document generators. Since it is based on Xbase, it allows to implement document generators for any data that can be accessed with Java.</td>
+  	            <td>Commercial, free for personal use</td>
+  	            <td>Language, Framework</td>
+  	            <td>eXtreme Modeling Software</td>
+  	        </tr>
+  	        <tr>
+  	            <td><a href="http://wiki.eclipse.org/QVTd">QVTc and QVTr</a></td>
+  	            <td>Editors for QVT Core and Relational languages.</td>
+  	            <td>EPL</td>
+  	            <td>Language</td>
+  	            <td>Ed Willink</td>
+  	        </tr>
+  	        <tr>
+  	            <td><a href="http://rapid-api.org/rapid-ml">RAPID-ML</a></td>
+  	            <td>RAPID-ML is a domain-driven API modeling language that puts data modeling at the center
+  	            of REST API design.  With RAPID-ML, you can describe data types naturally with an expressive, 
+  	            technology-independent modeling language, and adapt shared models to each API with just the 
+  	            right flexibility to bend the model, not break it.</td>
+  	            <td>EPL</td>
+  	            <td>Language</td>
+  	            <td>Ted Epstein, Tanya Fesenko</td>
+  	        </tr>
+  	          <tr>
+  	          <td><a href="http://sourceforge.net/projects/rng-eclipse/">RELAX NG for Eclipse</a></td>
+  	          <td>Provides support for editing RELAX NG documents in the Eclipse
+  	      IDE. Integrates with standard WST XML editor to provide content completion and
+  	      validation of edited XML file based on it's RELAX NG schema.</td>
+  	          <td>EPL</td>
+  	          <td>Language</td>
+  	          <td>Dave Carver</td>
+  	        </tr>
+  	        <tr>
+  	          <td><a href="http://www.sarl.io">SARL</a></td>
+  	          <td>SARL is a general-purpose agent-oriented language. It aims at providing the fundamental abstractions for 
+  	          dealing with concurrency, distribution, interaction, decentralization, reactivity, autonomy and dynamic 
+  	          reconfiguration. The language is platform- and architecture-independent. 
+  	          The default execution environment is the <a href="http://www.janusproject.io">Janus platform</a>.</td>
+  	          <td>Apache 2 License</td>
+  	          <td>Language, Framework</td>
+  	          <td>Sebastian Rodriguez, Nicolas Gaud, St&eacute;phane Galland</td>
+  	        </tr>
+  	          <tr>
+  	          <td><a href="http://sculptorgenerator.org">Sculptor</a></td>
+  	          <td>You express your design intent in a textual DSL, from which
+  	      Sculptor generates high quality Java code and configuration.</td>
+  	          <td>Apache 2 License</td>
+  	          <td>Language, Framework</td>
+  	          <td>Torsten Juergeleit, Patrik Nordwall and others</td>
+  	        </tr>
+  	          <tr>
+  	          <td><a href="http://swrtj.sourceforge.net/">SWRTJ: Sugared Welterweight Record-Trait Java</a></td>
+  	          <td>a Java-like language where units of objects' functionality are modeled by
+  	      traits and by records (a construct that complements traits to model the state
+  	      part of objects).</td>
+  	          <td>GPL</td>
+  	          <td>Language</td>
+  	          <td>Fabio Strocco, Lorenzo Bettini</td>
+  	        </tr>
+  	          <tr>
+  	          <td><a href="http://sadl.sourceforge.net/">Semantic Application Design Language (SADL) Version 2</a></td>
+  	          <td>The Semantic Application Design Language (SADL) is a language for building
+  	      semantic models and expressing rules that capture additional domain
+  	      knowledge. The SADL-IDE (integrated development environment) is a set of
+  	      Eclipse plug-ins that support the editing and testing of semantic models
+  	      using the SADL language. </td>
+  	          <td>EPL</td>
+  	          <td>Language</td>
+  	          <td>Andrew Crapo, John Interrante, David Bracewell, Saurabh Gupta</td>
+  	        </tr>
+  	        <tr>
+  	            <td><a href="http://code.google.com/a/eclipselabs.org/p/spray/">Spray</a></td>
+  	            <td>This project aims to provide Domain Specific Languages to describe
+  	      Visual DSL Editors against the Graphiti runtime, and provide code generation
+  	      (with Xtend2) to create the boilerplate code for realizing the implementation
+  	      against the Graphiti framework.</td>
+  	            <td>EPL 1.0</td>
+  	            <td>Framework</td>
+  	            <td>Jos Warmer, Karsten Thoms et. al.</td>
+  	        </tr>
+  	        <tr>
+  	            <td id="name"><a href="http://www.vclipse.org">VClipse</a></td>
+  	            <td>VClipse is an Eclipse-based integrated development environment (IDE)
+  	      for product modeling for the SAP Variant Configurator (VC). VClipse supports the
+  	      specification of objects and dependencies in a textual domain specific language
+  	      calld VCML. This enables the use of standard text comparison tools and version
+  	      control systems in the model development process.</td>
+  	            <td>EPL</td>
+  	            <td>Language</td>
+  	            <td>Tim Geisler, Aleksey&nbsp;Shumilin</td>
+  	        </tr>
+  	        <tr>
+  	          <td><a href="https://www.eclipse.org/viatra/">VIATRA</a></td>
+  	          <td>VIATRA: An Event-driven and Reactive Model Transformation Platform. 
+  	              The VIATRA framework supports the development of model transformations with specific focus on event-driven, reactive transformations.
+  	              Building upon the incremental query support of the EMF-IncQuery project, VIATRA offers a language to define transformations and
+  	              a reactive transformation engine to execute certain transformations upon changes in the underlying model.
+  	          </td>
+  	          <td>EPL</td>
+  	          <td>Language, Framework</td>
+  	          <td><a href="https://projects.eclipse.org/projects/modeling.viatra/who">VIATRA contributors</a></td>
+  	        </tr>
+  	        <tr>
+  	            <td><a href="https://github.com/team-worthwhile/worthwhile">Worthwhile</a></td>
+  	            <td>Worthwhile is an IDE built around a simple WHILE language that
+  	      integrates editing, running, debugging and verifying programs using
+  	      Microsoft's Z3 prover.
+  	            </td>
+  	            <td>3-Clause BSD</td>
+  	            <td>Language</td>
+  	            <td>Leon Handreke, Chris Hiatt, Stefan Orf, Joachim Priesner, Fabian
+  	      Ruch, Matthias Wagner</td>
+  	      </tr>
+  	        <tr>
+  	         <td><a href="http://www.gipsys.ca/xdgl.htm">xDGL Data Generation Language</a></td>
+  	        <td>xDGL is a free plugin on eclipse Helios 3.6 fully compatible with
+  	      eclipse data tools platform DTP. Works with dozens of RDBMS
+  	      databases. xDGL was invented by Abubaker Mahmoud, a Canadian Computer expert.
+  	      xDGL is simple to learn and fast to execute and is designed to solve the problem 
+  	      of most data generators systems works in english. xDGl works in any language that 
+  	      could be written in the UTF-8 encoding. xDGL is the first Java Data Generation Language, 
+  	      the first Eclipse language for Data Genration. xDGL is built in Java, Eclipse and the great Xtext
+  	      Framework.</td>
+  	        <td>Commercial</td>
+  	        <td>Language</td>
+  	        <td><a href="mailto://shangab@gmail.com">Abubaker Mahmoud</a></td>
+  	         </tr> 
+  	         <tr>
+  	            <td><a href="http://xsemantics.sourceforge.net/">Xsemantics</a></td>
+  	            <td>XSemantics is a DSL (implemented in Xtext) for writing type systems,
+  	      reduction rules, interpreters (and in general relation rules) for languages
+  	      implemented in Xtext. It then generates Java code that can be used in your
+  	      language implemented in Xtext for scoping and validation (it can also generate
+  	      a validator in Java). It is the successor of XTypeS.
+  	            </td>
+  	            <td>EPL</td>
+  	            <td>Language</td>
+  	            <td>Lorenzo Bettini</td>
+  	      </tr>
+  	      <tr>
+  	            <td><a href="https://github.com/msbarry/Xtest">Xtest</a></td>
+  	            <td>Xtest is a unit-testing domain-specific scripting language for Java.
+  	      Tests are run while you type and any time a related file is saved, marking
+  	      exceptions thrown and failed assertions as errors to immediately notify you of
+  	      test failures.
+  	            </td>
+  	            <td>EPL</td>
+  	            <td>Testing, Language</td>
+  	            <td>Michael Barry</td>
+  	        </tr>
+  	         <tr>
+  	          <td><a href="http://code.google.com/a/eclipselabs.org/p/xtext-forms-integration/">Xtext Forms Integration</a></td>
+  	          <td>Sample RCP application to demonstrate how Xtext editors can be
+  	      integrated within Eclipse UI forms</td>
+  	          <td>EPL</td>
+  	          <td>Framework</td>
+  	          <td>Mikael Barbero</td>
+  	        </tr>
+  	         
+  	        <tr>
+  	          <td><a href="http://code.google.com/a/eclipselabs.org/p/xtext-typesystem/">Xtext Typesystem Framework</a></td>
+  	          <td>A framework that supports the efficient implementation of typesystem
+  	        rules for Xtext languages. Especially useful if your languages has
+  	      expressions, statements, different (combinable) data types.</td>
+  	          <td>EPL</td>
+  	          <td>Framework</td>
+  	          <td><a href="mailto:voelter@acm.org">Markus Voelter</a></td>
+  	        </tr>
+  	        
+  	        <tr>
+  	            <td><a href="http://xtypes.sourceforge.net/">XTypeS</a></td>
+  	            <td>a DSL for writing type systems for languages implemented in Xtext. It
+  	      then generates Java code that can be used in your language implemented in Xtext
+  	      for scoping and validation (XTypeS also generates a validator in Java).
+  	            </td>
+  	            <td>GPL</td>
+  	            <td>Language</td>
+  	            <td>Lorenzo Bettini</td>
+  	        </tr>
+  	        <tr>
+  	            <td><a href="http://www.yakindu.org">Yakindu Statechart Tools</a></td>
+  	            <td>
+  	              YAKINDU Statechart Tools (SCT) provides an integrated modeling
+  	      environment for the specification and development of reactive, event-driven
+  	      systems based on the concept of statecharts. It is an easy to use tool that
+  	      features sophisticated graphical state chart editing, validation and simulation
+  	      of statecharts as well as code generation.
+  	            </td>
+  	            <td>EPL</td>
+  	            <td>Tool</td>
+  	            <td>Axel Terfloth, Andreas M&uuml;lder, et al</td>
+  	        </tr>
+  	  
+  	       <!-- 
+  	        <tr>
+  	          <td>AMP Agent Modeling Platform</td>
+  	          <td>extensible frameworks and exemplary tools for representing,
+  	      editing, generating, executing and visualizing agent-based models (ABMs) and
+  	      any other domain requiring spatial, behavioral and functional features</td>
+  	          <td>http://www.eclipse.org/amp/</td>
+  	          <td>EPL</td>
+  	          <td>Framework</td>
+  	          <td>Metascape, LLC</td>
+  	        </tr>
+  	        
+  	        <tr>
+  	          <td>EMF Query 2</td>
+  	          <td>search and retrieval of emf model elements in a structured
+  	      format with an additional advantage that resource loading is minimized during
+  	      execution </td>
+  	          <td>http://www.eclipse.org/modeling/emf/?project=query2</td>
+  	          <td>EPL</td>
+  	          <td>Language</td>
+  	          <td>?</td>
+  	        </tr>
+  	        
+  	        <tr>
+  	          <td>CamelSplit</td>
+  	          <td>Text-based DSL Editor for Camel and Eclipse</td>
+  	          <td>http://code.google.com/p/camel-extra/wiki/CamelSpit</td>
+  	          <td>?</td>
+  	          <td>Language</td>
+  	          <td>Oisin Hurley</td>
+  	        </tr>
+  	        
+  	      -->
+  	        
+  	      </tbody><tfoot></tfoot></table>
+	      </div>
+	      <div id="sponsors" class="container"> 
+	        <h2>Sponsors</h2>
+	        <hr>
+		    <div class="row">
+		      <div class="span1">&nbsp;</div>
+		      <div class="span5">
+		      <p><b>YourKit</b> is kindly supporting open source projects with its full-featured Java Profiler.</p>
+				<p>YourKit, LLC is the creator of innovative and intelligent tools for profiling Java and .NET applications. 
+				Take a look at YourKit's leading software products: <a href="http://www.yourkit.com/java/profiler/index.jsp">YourKit Java Profiler</a> and <a href="http://www.yourkit.com/.net/profiler/index.jsp">YourKit .NET Profiler</a>. 
+		      </div>
+		      <div class="span4"><img src="/Xtext/images/yourkit_java.png"></img></div>
+		    </div>
+	      </div>
 
     
     <footer class="site-footer">
   <div id="extra">
-    <div class="container inner-footer">
-      <div class="row">
-        <div class="span6">
-          <h3 class="footer-links-header">Quick Links</h3>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
-            <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
-            <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
-            <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
-          </ul>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
-            <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
-            <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
-            <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
-          </ul>
-        </div>
-        <div class="span6">
+    <div class="inner">
+      <div class="container">
+        <div class="row">
+          <div class="span6">
+            <h3 class="footer-links-header">Quick Links</h3>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+              <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+              <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+              <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
+            </ul>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
+              <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
+              <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
+              <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
+            </ul>
+          </div>
+          <div class="span6">
             <!-- Social Media Links -->
             <h3 class="footer-links-header"">Social Media</h3>
             <ul class="footer-links clearfix">
               <li>
-                <a href="https://twitter.com/xtendlang"><img src="/xtend/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtendlang on Twitter</a>
+                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
               </li>
             </ul>
           </div>
-
+        </div>
       </div>
     </div>
   </div>
   <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
-  <a href="http://dryicons.com/">Icons by http://dryicons.com</a>
   <!-- Le javascript
       ================================================== -->
   <!-- Placed at the end of the document so the pages load faster -->
-  <script src="/xtend/js/jquery-1.7.1.min.js" type="text/javascript"></script>
-  <script src="/xtend/js/bootstrap.min.js" type="text/javascript"></script>
   
-  <!-- include pretty-print files -->
-  <script src="/xtend/js/prettify.js" type="text/javascript" ></script>
-  <script src="/xtend/js/lang-xtend.js" type="text/javascript"></script>
-  
-  <!-- Include the plug-in -->
-  <script src="/xtend/js/jquery.prettyPhoto.js" type="text/javascript"></script>
-  <script src="/xtend/js/jquery.easing.1.3.js" type="text/javascript"></script>
-  <script src="/xtend/js/custom.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
+  <script src="/Xtext/js/bootstrap.min.js"></script>
+  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
+  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
+  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
   <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
   <!--script type="text/javascript">
     var _gaq = _gaq || [];  
-      _gaq.push([ '_setAccount', 'UA-2429174-4' ]);
+      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -295,8 +830,31 @@
       s.parentNode.insertBefore(ga, s);
     })();
   </script-->
+  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
+  <script>
+      $(function() {
+        $('#coverflow').coverflow({
+          active : 1,
+          visibleAside: 2,
+          overlap : 0.5,
+          scale : 0.9,
+          angle : 20,
+          trigger : {
+            "itemfocus" : true,
+            "swipe" : true,
+            "mousewheel" : false
+          }
+        });
+        $('#coverflow :hidden').toggle();
+        $(window).resize(function() {
+          $('#coverflow').coverflow();
+        });
+      });
+
+  </script>
 </footer>
 
+
   </body>
 
 </html>
diff --git a/css/bootstrap-responsive.css b/css/bootstrap-responsive.css
index 054aea9..cb5b56a 100644
--- a/css/bootstrap-responsive.css
+++ b/css/bootstrap-responsive.css
@@ -1,11 +1,11 @@
 /*!
- * Bootstrap Responsive v2.0.3
+ * Bootstrap Responsive v2.3.2
  *
- * Copyright 2012 Twitter, Inc
+ * Copyright 2013 Twitter, Inc
  * Licensed under the Apache License v2.0
  * http://www.apache.org/licenses/LICENSE-2.0
  *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ * Designed and built with all the love in the world by @mdo and @fat.
  */
 
 .clearfix {
@@ -15,6 +15,7 @@
 .clearfix:before,
 .clearfix:after {
   display: table;
+  line-height: 0;
   content: "";
 }
 
@@ -33,13 +34,16 @@
 .input-block-level {
   display: block;
   width: 100%;
-  min-height: 28px;
+  min-height: 30px;
   -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
-      -ms-box-sizing: border-box;
           box-sizing: border-box;
 }
 
+@-ms-viewport {
+  width: device-width;
+}
+
 .hidden {
   display: none;
   visibility: hidden;
@@ -57,380 +61,50 @@
   display: none !important;
 }
 
-@media (max-width: 767px) {
-  .visible-phone {
-    display: inherit !important;
-  }
-  .hidden-phone {
-    display: none !important;
-  }
-  .hidden-desktop {
-    display: inherit !important;
-  }
-  .visible-desktop {
-    display: none !important;
-  }
+.visible-desktop {
+  display: inherit !important;
 }
 
 @media (min-width: 768px) and (max-width: 979px) {
-  .visible-tablet {
-    display: inherit !important;
-  }
-  .hidden-tablet {
-    display: none !important;
-  }
   .hidden-desktop {
     display: inherit !important;
   }
   .visible-desktop {
     display: none !important ;
   }
-}
-
-@media (max-width: 480px) {
-  .nav-collapse {
-    -webkit-transform: translate3d(0, 0, 0);
+  .visible-tablet {
+    display: inherit !important;
   }
-  .page-header h1 small {
-    display: block;
-    line-height: 18px;
-  }
-  input[type="checkbox"],
-  input[type="radio"] {
-    border: 1px solid #ccc;
-  }
-  .form-horizontal .control-group > label {
-    float: none;
-    width: auto;
-    padding-top: 0;
-    text-align: left;
-  }
-  .form-horizontal .controls {
-    margin-left: 0;
-  }
-  .form-horizontal .control-list {
-    padding-top: 0;
-  }
-  .form-horizontal .form-actions {
-    padding-right: 10px;
-    padding-left: 10px;
-  }
-  .modal {
-    position: absolute;
-    top: 10px;
-    right: 10px;
-    left: 10px;
-    width: auto;
-    margin: 0;
-  }
-  .modal.fade.in {
-    top: auto;
-  }
-  .modal-header .close {
-    padding: 10px;
-    margin: -10px;
-  }
-  .carousel-caption {
-    position: static;
+  .hidden-tablet {
+    display: none !important;
   }
 }
 
 @media (max-width: 767px) {
-  body {
-    padding-right: 20px;
-    padding-left: 20px;
+  .hidden-desktop {
+    display: inherit !important;
   }
-  .navbar-fixed-top,
-  .navbar-fixed-bottom {
-    margin-right: -20px;
-    margin-left: -20px;
+  .visible-desktop {
+    display: none !important;
   }
-  .container-fluid {
-    padding: 0;
+  .visible-phone {
+    display: inherit !important;
   }
-  .dl-horizontal dt {
-    float: none;
-    width: auto;
-    clear: none;
-    text-align: left;
-  }
-  .dl-horizontal dd {
-    margin-left: 0;
-  }
-  .container {
-    width: auto;
-  }
-  .row-fluid {
-    width: 100%;
-  }
-  .row,
-  .thumbnails {
-    margin-left: 0;
-  }
-  [class*="span"],
-  .row-fluid [class*="span"] {
-    display: block;
-    float: none;
-    width: auto;
-    margin-left: 0;
-  }
-  .input-large,
-  .input-xlarge,
-  .input-xxlarge,
-  input[class*="span"],
-  select[class*="span"],
-  textarea[class*="span"],
-  .uneditable-input {
-    display: block;
-    width: 100%;
-    min-height: 28px;
-    -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-        -ms-box-sizing: border-box;
-            box-sizing: border-box;
-  }
-  .input-prepend input,
-  .input-append input,
-  .input-prepend input[class*="span"],
-  .input-append input[class*="span"] {
-    display: inline-block;
-    width: auto;
+  .hidden-phone {
+    display: none !important;
   }
 }
 
-@media (min-width: 768px) and (max-width: 979px) {
-  .row {
-    margin-left: -20px;
-    *zoom: 1;
+.visible-print {
+  display: none !important;
+}
+
+@media print {
+  .visible-print {
+    display: inherit !important;
   }
-  .row:before,
-  .row:after {
-    display: table;
-    content: "";
-  }
-  .row:after {
-    clear: both;
-  }
-  [class*="span"] {
-    float: left;
-    margin-left: 20px;
-  }
-  .container,
-  .navbar-fixed-top .container,
-  .navbar-fixed-bottom .container {
-    width: 724px;
-  }
-  .span12 {
-    width: 724px;
-  }
-  .span11 {
-    width: 662px;
-  }
-  .span10 {
-    width: 600px;
-  }
-  .span9 {
-    width: 538px;
-  }
-  .span8 {
-    width: 476px;
-  }
-  .span7 {
-    width: 414px;
-  }
-  .span6 {
-    width: 352px;
-  }
-  .span5 {
-    width: 290px;
-  }
-  .span4 {
-    width: 228px;
-  }
-  .span3 {
-    width: 166px;
-  }
-  .span2 {
-    width: 104px;
-  }
-  .span1 {
-    width: 42px;
-  }
-  .offset12 {
-    margin-left: 764px;
-  }
-  .offset11 {
-    margin-left: 702px;
-  }
-  .offset10 {
-    margin-left: 640px;
-  }
-  .offset9 {
-    margin-left: 578px;
-  }
-  .offset8 {
-    margin-left: 516px;
-  }
-  .offset7 {
-    margin-left: 454px;
-  }
-  .offset6 {
-    margin-left: 392px;
-  }
-  .offset5 {
-    margin-left: 330px;
-  }
-  .offset4 {
-    margin-left: 268px;
-  }
-  .offset3 {
-    margin-left: 206px;
-  }
-  .offset2 {
-    margin-left: 144px;
-  }
-  .offset1 {
-    margin-left: 82px;
-  }
-  .row-fluid {
-    width: 100%;
-    *zoom: 1;
-  }
-  .row-fluid:before,
-  .row-fluid:after {
-    display: table;
-    content: "";
-  }
-  .row-fluid:after {
-    clear: both;
-  }
-  .row-fluid [class*="span"] {
-    display: block;
-    float: left;
-    width: 100%;
-    min-height: 28px;
-    margin-left: 2.762430939%;
-    *margin-left: 2.709239449638298%;
-    -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-        -ms-box-sizing: border-box;
-            box-sizing: border-box;
-  }
-  .row-fluid [class*="span"]:first-child {
-    margin-left: 0;
-  }
-  .row-fluid .span12 {
-    width: 99.999999993%;
-    *width: 99.9468085036383%;
-  }
-  .row-fluid .span11 {
-    width: 91.436464082%;
-    *width: 91.38327259263829%;
-  }
-  .row-fluid .span10 {
-    width: 82.87292817100001%;
-    *width: 82.8197366816383%;
-  }
-  .row-fluid .span9 {
-    width: 74.30939226%;
-    *width: 74.25620077063829%;
-  }
-  .row-fluid .span8 {
-    width: 65.74585634900001%;
-    *width: 65.6926648596383%;
-  }
-  .row-fluid .span7 {
-    width: 57.182320438000005%;
-    *width: 57.129128948638304%;
-  }
-  .row-fluid .span6 {
-    width: 48.618784527%;
-    *width: 48.5655930376383%;
-  }
-  .row-fluid .span5 {
-    width: 40.055248616%;
-    *width: 40.0020571266383%;
-  }
-  .row-fluid .span4 {
-    width: 31.491712705%;
-    *width: 31.4385212156383%;
-  }
-  .row-fluid .span3 {
-    width: 22.928176794%;
-    *width: 22.874985304638297%;
-  }
-  .row-fluid .span2 {
-    width: 14.364640883%;
-    *width: 14.311449393638298%;
-  }
-  .row-fluid .span1 {
-    width: 5.801104972%;
-    *width: 5.747913482638298%;
-  }
-  input,
-  textarea,
-  .uneditable-input {
-    margin-left: 0;
-  }
-  input.span12,
-  textarea.span12,
-  .uneditable-input.span12 {
-    width: 714px;
-  }
-  input.span11,
-  textarea.span11,
-  .uneditable-input.span11 {
-    width: 652px;
-  }
-  input.span10,
-  textarea.span10,
-  .uneditable-input.span10 {
-    width: 590px;
-  }
-  input.span9,
-  textarea.span9,
-  .uneditable-input.span9 {
-    width: 528px;
-  }
-  input.span8,
-  textarea.span8,
-  .uneditable-input.span8 {
-    width: 466px;
-  }
-  input.span7,
-  textarea.span7,
-  .uneditable-input.span7 {
-    width: 404px;
-  }
-  input.span6,
-  textarea.span6,
-  .uneditable-input.span6 {
-    width: 342px;
-  }
-  input.span5,
-  textarea.span5,
-  .uneditable-input.span5 {
-    width: 280px;
-  }
-  input.span4,
-  textarea.span4,
-  .uneditable-input.span4 {
-    width: 218px;
-  }
-  input.span3,
-  textarea.span3,
-  .uneditable-input.span3 {
-    width: 156px;
-  }
-  input.span2,
-  textarea.span2,
-  .uneditable-input.span2 {
-    width: 94px;
-  }
-  input.span1,
-  textarea.span1,
-  .uneditable-input.span1 {
-    width: 32px;
+  .hidden-print {
+    display: none !important;
   }
 }
 
@@ -442,6 +116,7 @@
   .row:before,
   .row:after {
     display: table;
+    line-height: 0;
     content: "";
   }
   .row:after {
@@ -449,9 +124,11 @@
   }
   [class*="span"] {
     float: left;
+    min-height: 1px;
     margin-left: 30px;
   }
   .container,
+  .navbar-static-top .container,
   .navbar-fixed-top .container,
   .navbar-fixed-bottom .container {
     width: 1170px;
@@ -535,6 +212,7 @@
   .row-fluid:before,
   .row-fluid:after {
     display: table;
+    line-height: 0;
     content: "";
   }
   .row-fluid:after {
@@ -544,129 +222,230 @@
     display: block;
     float: left;
     width: 100%;
-    min-height: 28px;
-    margin-left: 2.564102564%;
-    *margin-left: 2.510911074638298%;
+    min-height: 30px;
+    margin-left: 2.564102564102564%;
+    *margin-left: 2.5109110747408616%;
     -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
-        -ms-box-sizing: border-box;
             box-sizing: border-box;
   }
   .row-fluid [class*="span"]:first-child {
     margin-left: 0;
   }
+  .row-fluid .controls-row [class*="span"] + [class*="span"] {
+    margin-left: 2.564102564102564%;
+  }
   .row-fluid .span12 {
     width: 100%;
     *width: 99.94680851063829%;
   }
   .row-fluid .span11 {
-    width: 91.45299145300001%;
-    *width: 91.3997999636383%;
+    width: 91.45299145299145%;
+    *width: 91.39979996362975%;
   }
   .row-fluid .span10 {
-    width: 82.905982906%;
-    *width: 82.8527914166383%;
+    width: 82.90598290598291%;
+    *width: 82.8527914166212%;
   }
   .row-fluid .span9 {
-    width: 74.358974359%;
-    *width: 74.30578286963829%;
+    width: 74.35897435897436%;
+    *width: 74.30578286961266%;
   }
   .row-fluid .span8 {
-    width: 65.81196581200001%;
-    *width: 65.7587743226383%;
+    width: 65.81196581196582%;
+    *width: 65.75877432260411%;
   }
   .row-fluid .span7 {
-    width: 57.264957265%;
-    *width: 57.2117657756383%;
+    width: 57.26495726495726%;
+    *width: 57.21176577559556%;
   }
   .row-fluid .span6 {
-    width: 48.717948718%;
-    *width: 48.6647572286383%;
+    width: 48.717948717948715%;
+    *width: 48.664757228587014%;
   }
   .row-fluid .span5 {
-    width: 40.170940171000005%;
-    *width: 40.117748681638304%;
+    width: 40.17094017094017%;
+    *width: 40.11774868157847%;
   }
   .row-fluid .span4 {
-    width: 31.623931624%;
-    *width: 31.5707401346383%;
+    width: 31.623931623931625%;
+    *width: 31.570740134569924%;
   }
   .row-fluid .span3 {
-    width: 23.076923077%;
-    *width: 23.0237315876383%;
+    width: 23.076923076923077%;
+    *width: 23.023731587561375%;
   }
   .row-fluid .span2 {
-    width: 14.529914530000001%;
-    *width: 14.4767230406383%;
+    width: 14.52991452991453%;
+    *width: 14.476723040552828%;
   }
   .row-fluid .span1 {
-    width: 5.982905983%;
-    *width: 5.929714493638298%;
+    width: 5.982905982905983%;
+    *width: 5.929714493544281%;
+  }
+  .row-fluid .offset12 {
+    margin-left: 105.12820512820512%;
+    *margin-left: 105.02182214948171%;
+  }
+  .row-fluid .offset12:first-child {
+    margin-left: 102.56410256410257%;
+    *margin-left: 102.45771958537915%;
+  }
+  .row-fluid .offset11 {
+    margin-left: 96.58119658119658%;
+    *margin-left: 96.47481360247316%;
+  }
+  .row-fluid .offset11:first-child {
+    margin-left: 94.01709401709402%;
+    *margin-left: 93.91071103837061%;
+  }
+  .row-fluid .offset10 {
+    margin-left: 88.03418803418803%;
+    *margin-left: 87.92780505546462%;
+  }
+  .row-fluid .offset10:first-child {
+    margin-left: 85.47008547008548%;
+    *margin-left: 85.36370249136206%;
+  }
+  .row-fluid .offset9 {
+    margin-left: 79.48717948717949%;
+    *margin-left: 79.38079650845607%;
+  }
+  .row-fluid .offset9:first-child {
+    margin-left: 76.92307692307693%;
+    *margin-left: 76.81669394435352%;
+  }
+  .row-fluid .offset8 {
+    margin-left: 70.94017094017094%;
+    *margin-left: 70.83378796144753%;
+  }
+  .row-fluid .offset8:first-child {
+    margin-left: 68.37606837606839%;
+    *margin-left: 68.26968539734497%;
+  }
+  .row-fluid .offset7 {
+    margin-left: 62.393162393162385%;
+    *margin-left: 62.28677941443899%;
+  }
+  .row-fluid .offset7:first-child {
+    margin-left: 59.82905982905982%;
+    *margin-left: 59.72267685033642%;
+  }
+  .row-fluid .offset6 {
+    margin-left: 53.84615384615384%;
+    *margin-left: 53.739770867430444%;
+  }
+  .row-fluid .offset6:first-child {
+    margin-left: 51.28205128205128%;
+    *margin-left: 51.175668303327875%;
+  }
+  .row-fluid .offset5 {
+    margin-left: 45.299145299145295%;
+    *margin-left: 45.1927623204219%;
+  }
+  .row-fluid .offset5:first-child {
+    margin-left: 42.73504273504273%;
+    *margin-left: 42.62865975631933%;
+  }
+  .row-fluid .offset4 {
+    margin-left: 36.75213675213675%;
+    *margin-left: 36.645753773413354%;
+  }
+  .row-fluid .offset4:first-child {
+    margin-left: 34.18803418803419%;
+    *margin-left: 34.081651209310785%;
+  }
+  .row-fluid .offset3 {
+    margin-left: 28.205128205128204%;
+    *margin-left: 28.0987452264048%;
+  }
+  .row-fluid .offset3:first-child {
+    margin-left: 25.641025641025642%;
+    *margin-left: 25.53464266230224%;
+  }
+  .row-fluid .offset2 {
+    margin-left: 19.65811965811966%;
+    *margin-left: 19.551736679396257%;
+  }
+  .row-fluid .offset2:first-child {
+    margin-left: 17.094017094017094%;
+    *margin-left: 16.98763411529369%;
+  }
+  .row-fluid .offset1 {
+    margin-left: 11.11111111111111%;
+    *margin-left: 11.004728132387708%;
+  }
+  .row-fluid .offset1:first-child {
+    margin-left: 8.547008547008547%;
+    *margin-left: 8.440625568285142%;
   }
   input,
   textarea,
   .uneditable-input {
     margin-left: 0;
   }
+  .controls-row [class*="span"] + [class*="span"] {
+    margin-left: 30px;
+  }
   input.span12,
   textarea.span12,
   .uneditable-input.span12 {
-    width: 1160px;
+    width: 1156px;
   }
   input.span11,
   textarea.span11,
   .uneditable-input.span11 {
-    width: 1060px;
+    width: 1056px;
   }
   input.span10,
   textarea.span10,
   .uneditable-input.span10 {
-    width: 960px;
+    width: 956px;
   }
   input.span9,
   textarea.span9,
   .uneditable-input.span9 {
-    width: 860px;
+    width: 856px;
   }
   input.span8,
   textarea.span8,
   .uneditable-input.span8 {
-    width: 760px;
+    width: 756px;
   }
   input.span7,
   textarea.span7,
   .uneditable-input.span7 {
-    width: 660px;
+    width: 656px;
   }
   input.span6,
   textarea.span6,
   .uneditable-input.span6 {
-    width: 560px;
+    width: 556px;
   }
   input.span5,
   textarea.span5,
   .uneditable-input.span5 {
-    width: 460px;
+    width: 456px;
   }
   input.span4,
   textarea.span4,
   .uneditable-input.span4 {
-    width: 360px;
+    width: 356px;
   }
   input.span3,
   textarea.span3,
   .uneditable-input.span3 {
-    width: 260px;
+    width: 256px;
   }
   input.span2,
   textarea.span2,
   .uneditable-input.span2 {
-    width: 160px;
+    width: 156px;
   }
   input.span1,
   textarea.span1,
   .uneditable-input.span1 {
-    width: 60px;
+    width: 56px;
   }
   .thumbnails {
     margin-left: -30px;
@@ -679,16 +458,514 @@
   }
 }
 
+@media (min-width: 768px) and (max-width: 979px) {
+  .row {
+    margin-left: -20px;
+    *zoom: 1;
+  }
+  .row:before,
+  .row:after {
+    display: table;
+    line-height: 0;
+    content: "";
+  }
+  .row:after {
+    clear: both;
+  }
+  [class*="span"] {
+    float: left;
+    min-height: 1px;
+    margin-left: 20px;
+  }
+  .container,
+  .navbar-static-top .container,
+  .navbar-fixed-top .container,
+  .navbar-fixed-bottom .container {
+    width: 724px;
+  }
+  .span12 {
+    width: 724px;
+  }
+  .span11 {
+    width: 662px;
+  }
+  .span10 {
+    width: 600px;
+  }
+  .span9 {
+    width: 538px;
+  }
+  .span8 {
+    width: 476px;
+  }
+  .span7 {
+    width: 414px;
+  }
+  .span6 {
+    width: 352px;
+  }
+  .span5 {
+    width: 290px;
+  }
+  .span4 {
+    width: 228px;
+  }
+  .span3 {
+    width: 166px;
+  }
+  .span2 {
+    width: 104px;
+  }
+  .span1 {
+    width: 42px;
+  }
+  .offset12 {
+    margin-left: 764px;
+  }
+  .offset11 {
+    margin-left: 702px;
+  }
+  .offset10 {
+    margin-left: 640px;
+  }
+  .offset9 {
+    margin-left: 578px;
+  }
+  .offset8 {
+    margin-left: 516px;
+  }
+  .offset7 {
+    margin-left: 454px;
+  }
+  .offset6 {
+    margin-left: 392px;
+  }
+  .offset5 {
+    margin-left: 330px;
+  }
+  .offset4 {
+    margin-left: 268px;
+  }
+  .offset3 {
+    margin-left: 206px;
+  }
+  .offset2 {
+    margin-left: 144px;
+  }
+  .offset1 {
+    margin-left: 82px;
+  }
+  .row-fluid {
+    width: 100%;
+    *zoom: 1;
+  }
+  .row-fluid:before,
+  .row-fluid:after {
+    display: table;
+    line-height: 0;
+    content: "";
+  }
+  .row-fluid:after {
+    clear: both;
+  }
+  .row-fluid [class*="span"] {
+    display: block;
+    float: left;
+    width: 100%;
+    min-height: 30px;
+    margin-left: 2.7624309392265194%;
+    *margin-left: 2.709239449864817%;
+    -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+            box-sizing: border-box;
+  }
+  .row-fluid [class*="span"]:first-child {
+    margin-left: 0;
+  }
+  .row-fluid .controls-row [class*="span"] + [class*="span"] {
+    margin-left: 2.7624309392265194%;
+  }
+  .row-fluid .span12 {
+    width: 100%;
+    *width: 99.94680851063829%;
+  }
+  .row-fluid .span11 {
+    width: 91.43646408839778%;
+    *width: 91.38327259903608%;
+  }
+  .row-fluid .span10 {
+    width: 82.87292817679558%;
+    *width: 82.81973668743387%;
+  }
+  .row-fluid .span9 {
+    width: 74.30939226519337%;
+    *width: 74.25620077583166%;
+  }
+  .row-fluid .span8 {
+    width: 65.74585635359117%;
+    *width: 65.69266486422946%;
+  }
+  .row-fluid .span7 {
+    width: 57.18232044198895%;
+    *width: 57.12912895262725%;
+  }
+  .row-fluid .span6 {
+    width: 48.61878453038674%;
+    *width: 48.56559304102504%;
+  }
+  .row-fluid .span5 {
+    width: 40.05524861878453%;
+    *width: 40.00205712942283%;
+  }
+  .row-fluid .span4 {
+    width: 31.491712707182323%;
+    *width: 31.43852121782062%;
+  }
+  .row-fluid .span3 {
+    width: 22.92817679558011%;
+    *width: 22.87498530621841%;
+  }
+  .row-fluid .span2 {
+    width: 14.3646408839779%;
+    *width: 14.311449394616199%;
+  }
+  .row-fluid .span1 {
+    width: 5.801104972375691%;
+    *width: 5.747913483013988%;
+  }
+  .row-fluid .offset12 {
+    margin-left: 105.52486187845304%;
+    *margin-left: 105.41847889972962%;
+  }
+  .row-fluid .offset12:first-child {
+    margin-left: 102.76243093922652%;
+    *margin-left: 102.6560479605031%;
+  }
+  .row-fluid .offset11 {
+    margin-left: 96.96132596685082%;
+    *margin-left: 96.8549429881274%;
+  }
+  .row-fluid .offset11:first-child {
+    margin-left: 94.1988950276243%;
+    *margin-left: 94.09251204890089%;
+  }
+  .row-fluid .offset10 {
+    margin-left: 88.39779005524862%;
+    *margin-left: 88.2914070765252%;
+  }
+  .row-fluid .offset10:first-child {
+    margin-left: 85.6353591160221%;
+    *margin-left: 85.52897613729868%;
+  }
+  .row-fluid .offset9 {
+    margin-left: 79.8342541436464%;
+    *margin-left: 79.72787116492299%;
+  }
+  .row-fluid .offset9:first-child {
+    margin-left: 77.07182320441989%;
+    *margin-left: 76.96544022569647%;
+  }
+  .row-fluid .offset8 {
+    margin-left: 71.2707182320442%;
+    *margin-left: 71.16433525332079%;
+  }
+  .row-fluid .offset8:first-child {
+    margin-left: 68.50828729281768%;
+    *margin-left: 68.40190431409427%;
+  }
+  .row-fluid .offset7 {
+    margin-left: 62.70718232044199%;
+    *margin-left: 62.600799341718584%;
+  }
+  .row-fluid .offset7:first-child {
+    margin-left: 59.94475138121547%;
+    *margin-left: 59.838368402492065%;
+  }
+  .row-fluid .offset6 {
+    margin-left: 54.14364640883978%;
+    *margin-left: 54.037263430116376%;
+  }
+  .row-fluid .offset6:first-child {
+    margin-left: 51.38121546961326%;
+    *margin-left: 51.27483249088986%;
+  }
+  .row-fluid .offset5 {
+    margin-left: 45.58011049723757%;
+    *margin-left: 45.47372751851417%;
+  }
+  .row-fluid .offset5:first-child {
+    margin-left: 42.81767955801105%;
+    *margin-left: 42.71129657928765%;
+  }
+  .row-fluid .offset4 {
+    margin-left: 37.01657458563536%;
+    *margin-left: 36.91019160691196%;
+  }
+  .row-fluid .offset4:first-child {
+    margin-left: 34.25414364640884%;
+    *margin-left: 34.14776066768544%;
+  }
+  .row-fluid .offset3 {
+    margin-left: 28.45303867403315%;
+    *margin-left: 28.346655695309746%;
+  }
+  .row-fluid .offset3:first-child {
+    margin-left: 25.69060773480663%;
+    *margin-left: 25.584224756083227%;
+  }
+  .row-fluid .offset2 {
+    margin-left: 19.88950276243094%;
+    *margin-left: 19.783119783707537%;
+  }
+  .row-fluid .offset2:first-child {
+    margin-left: 17.12707182320442%;
+    *margin-left: 17.02068884448102%;
+  }
+  .row-fluid .offset1 {
+    margin-left: 11.32596685082873%;
+    *margin-left: 11.219583872105325%;
+  }
+  .row-fluid .offset1:first-child {
+    margin-left: 8.56353591160221%;
+    *margin-left: 8.457152932878806%;
+  }
+  input,
+  textarea,
+  .uneditable-input {
+    margin-left: 0;
+  }
+  .controls-row [class*="span"] + [class*="span"] {
+    margin-left: 20px;
+  }
+  input.span12,
+  textarea.span12,
+  .uneditable-input.span12 {
+    width: 710px;
+  }
+  input.span11,
+  textarea.span11,
+  .uneditable-input.span11 {
+    width: 648px;
+  }
+  input.span10,
+  textarea.span10,
+  .uneditable-input.span10 {
+    width: 586px;
+  }
+  input.span9,
+  textarea.span9,
+  .uneditable-input.span9 {
+    width: 524px;
+  }
+  input.span8,
+  textarea.span8,
+  .uneditable-input.span8 {
+    width: 462px;
+  }
+  input.span7,
+  textarea.span7,
+  .uneditable-input.span7 {
+    width: 400px;
+  }
+  input.span6,
+  textarea.span6,
+  .uneditable-input.span6 {
+    width: 338px;
+  }
+  input.span5,
+  textarea.span5,
+  .uneditable-input.span5 {
+    width: 276px;
+  }
+  input.span4,
+  textarea.span4,
+  .uneditable-input.span4 {
+    width: 214px;
+  }
+  input.span3,
+  textarea.span3,
+  .uneditable-input.span3 {
+    width: 152px;
+  }
+  input.span2,
+  textarea.span2,
+  .uneditable-input.span2 {
+    width: 90px;
+  }
+  input.span1,
+  textarea.span1,
+  .uneditable-input.span1 {
+    width: 28px;
+  }
+}
+
+@media (max-width: 767px) {
+  body {
+    //padding-right: 20px;
+    //padding-left: 20px;
+  }
+  .navbar-fixed-top,
+  .navbar-fixed-bottom,
+  .navbar-static-top {
+    //margin-right: -20px;
+    //margin-left: -20px;
+  }
+  .container-fluid {
+    padding: 0;
+  }
+  .dl-horizontal dt {
+    float: none;
+    width: auto;
+    clear: none;
+    text-align: left;
+  }
+  .dl-horizontal dd {
+    margin-left: 0;
+  }
+  .container {
+    width: auto;
+  }
+  .row-fluid {
+    width: 100%;
+  }
+  .row,
+  .thumbnails {
+    margin-left: 0;
+  }
+  .thumbnails > li {
+    float: none;
+    margin-left: 0;
+  }
+  [class*="span"],
+  .uneditable-input[class*="span"],
+  .row-fluid [class*="span"] {
+    display: block;
+    float: none;
+    width: 100%;
+    margin-left: 0;
+    -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+            box-sizing: border-box;
+  }
+  .span12,
+  .row-fluid .span12 {
+    width: 100%;
+    -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+            box-sizing: border-box;
+  }
+  .row-fluid [class*="offset"]:first-child {
+    margin-left: 0;
+  }
+  .input-large,
+  .input-xlarge,
+  .input-xxlarge,
+  input[class*="span"],
+  select[class*="span"],
+  textarea[class*="span"],
+  .uneditable-input {
+    display: block;
+    width: 100%;
+    min-height: 30px;
+    -webkit-box-sizing: border-box;
+       -moz-box-sizing: border-box;
+            box-sizing: border-box;
+  }
+  .input-prepend input,
+  .input-append input,
+  .input-prepend input[class*="span"],
+  .input-append input[class*="span"] {
+    display: inline-block;
+    width: auto;
+  }
+  .controls-row [class*="span"] + [class*="span"] {
+    margin-left: 0;
+  }
+  .modal {
+    position: fixed;
+    top: 20px;
+    right: 20px;
+    left: 20px;
+    width: auto;
+    margin: 0;
+  }
+  .modal.fade {
+    top: -100px;
+  }
+  .modal.fade.in {
+    top: 20px;
+  }
+}
+
+@media (max-width: 480px) {
+  .nav-collapse {
+    -webkit-transform: translate3d(0, 0, 0);
+  }
+  .page-header h1 small {
+    display: block;
+    line-height: 20px;
+  }
+  input[type="checkbox"],
+  input[type="radio"] {
+    border: 1px solid #ccc;
+  }
+  .form-horizontal .control-label {
+    float: none;
+    width: auto;
+    padding-top: 0;
+    text-align: left;
+  }
+  .form-horizontal .controls {
+    margin-left: 0;
+  }
+  .form-horizontal .control-list {
+    padding-top: 0;
+  }
+  .form-horizontal .form-actions {
+    padding-right: 10px;
+    padding-left: 10px;
+  }
+  .media .pull-left,
+  .media .pull-right {
+    display: block;
+    float: none;
+    margin-bottom: 10px;
+  }
+  .media-object {
+    margin-right: 0;
+    margin-left: 0;
+  }
+  .modal {
+    top: 10px;
+    right: 10px;
+    left: 10px;
+  }
+  .modal-header .close {
+    padding: 10px;
+    margin: -10px;
+  }
+  .carousel-caption {
+    position: static;
+  }
+}
+
 @media (max-width: 979px) {
   body {
     padding-top: 0;
   }
-  .navbar-fixed-top {
+  .navbar-fixed-top,
+  .navbar-fixed-bottom {
     position: static;
-    margin-bottom: 18px;
   }
-  .navbar-fixed-top .navbar-inner {
-    padding: 5px;
+  .navbar-fixed-top {
+    margin-bottom: 20px;
+  }
+  .navbar-fixed-bottom {
+    margin-top: 20px;
+  }
+  .navbar-fixed-top .navbar-inner,
+  .navbar-fixed-bottom .navbar-inner {
+    padding: 0px;
   }
   .navbar .container {
     width: auto;
@@ -704,7 +981,7 @@
   }
   .nav-collapse .nav {
     float: none;
-    margin: 0 0 9px;
+    margin: 0 0 10px;
   }
   .nav-collapse .nav > li {
     float: none;
@@ -712,19 +989,18 @@
   .nav-collapse .nav > li > a {
     margin-bottom: 2px;
   }
-
   .nav-collapse .nav > .divider-vertical {
     display: none;
   }
   .nav-collapse .nav .nav-header {
-    color: #999999;
+    color: #777777;
     text-shadow: none;
   }
   .nav-collapse .nav > li > a,
   .nav-collapse .dropdown-menu a {
-    padding: 6px 15px;
+    padding: 9px 15px;
     font-weight: bold;
-    color: #999999;
+    color: #777777;
     -webkit-border-radius: 3px;
        -moz-border-radius: 3px;
             border-radius: 3px;
@@ -740,9 +1016,20 @@
     margin-bottom: 2px;
   }
   .nav-collapse .nav > li > a:hover,
-  .nav-collapse .dropdown-menu a:hover {
-    background-color: #A11111;
-    color:#fff !important;
+  .nav-collapse .nav > li > a:focus,
+  .nav-collapse .dropdown-menu a:hover,
+  .nav-collapse .dropdown-menu a:focus {
+    background-color: #f2f2f2;
+  }
+  .navbar-inverse .nav-collapse .nav > li > a,
+  .navbar-inverse .nav-collapse .dropdown-menu a {
+    color: #999999;
+  }
+  .navbar-inverse .nav-collapse .nav > li > a:hover,
+  .navbar-inverse .nav-collapse .nav > li > a:focus,
+  .navbar-inverse .nav-collapse .dropdown-menu a:hover,
+  .navbar-inverse .nav-collapse .dropdown-menu a:focus {
+    background-color: #111111;
   }
   .nav-collapse.in .btn-group {
     padding: 0;
@@ -752,7 +1039,7 @@
     position: static;
     top: auto;
     left: auto;
-    display: block;
+    display: none;
     float: none;
     max-width: none;
     padding: 0;
@@ -766,6 +1053,9 @@
        -moz-box-shadow: none;
             box-shadow: none;
   }
+  .nav-collapse .open > .dropdown-menu {
+    display: block;
+  }
   .nav-collapse .dropdown-menu:before,
   .nav-collapse .dropdown-menu:after {
     display: none;
@@ -773,17 +1063,26 @@
   .nav-collapse .dropdown-menu .divider {
     display: none;
   }
+  .nav-collapse .nav > li > .dropdown-menu:before,
+  .nav-collapse .nav > li > .dropdown-menu:after {
+    display: none;
+  }
   .nav-collapse .navbar-form,
   .nav-collapse .navbar-search {
     float: none;
-    padding: 9px 15px;
-    margin: 9px 0;
-    border-top: 1px solid #222222;
-    border-bottom: 1px solid #222222;
+    padding: 10px 15px;
+    margin: 10px 0;
+    border-top: 1px solid #f2f2f2;
+    border-bottom: 1px solid #f2f2f2;
     -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
        -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
             box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
   }
+  .navbar-inverse .nav-collapse .navbar-form,
+  .navbar-inverse .nav-collapse .navbar-search {
+    border-top-color: #111111;
+    border-bottom-color: #111111;
+  }
   .navbar .nav-collapse .nav.pull-right {
     float: none;
     margin-left: 0;
diff --git a/css/bootstrap.css b/css/bootstrap.css
index 05ad3c3..e2cf533 100644
--- a/css/bootstrap.css
+++ b/css/bootstrap.css
@@ -1,23 +1,28 @@
 /*!
- * Bootstrap v2.0.3
+ * Bootstrap v2.3.2
  *
- * Copyright 2012 Twitter, Inc
+ * Copyright 2013 Twitter, Inc
  * Licensed under the Apache License v2.0
  * http://www.apache.org/licenses/LICENSE-2.0
  *
- * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ * Designed and built with all the love in the world by @mdo and @fat.
  */
+
 .clearfix {
   *zoom: 1;
 }
+
 .clearfix:before,
 .clearfix:after {
   display: table;
+  line-height: 0;
   content: "";
 }
+
 .clearfix:after {
   clear: both;
 }
+
 .hide-text {
   font: 0/0 a;
   color: transparent;
@@ -25,15 +30,16 @@
   background-color: transparent;
   border: 0;
 }
+
 .input-block-level {
   display: block;
   width: 100%;
-  min-height: 28px;
+  min-height: 30px;
   -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -ms-box-sizing: border-box;
-  box-sizing: border-box;
+     -moz-box-sizing: border-box;
+          box-sizing: border-box;
 }
+
 article,
 aside,
 details,
@@ -46,6 +52,7 @@
 section {
   display: block;
 }
+
 audio,
 canvas,
 video {
@@ -53,23 +60,28 @@
   *display: inline;
   *zoom: 1;
 }
+
 audio:not([controls]) {
   display: none;
 }
+
 html {
   font-size: 100%;
   -webkit-text-size-adjust: 100%;
-  -ms-text-size-adjust: 100%;
+      -ms-text-size-adjust: 100%;
 }
+
 a:focus {
   outline: thin dotted #333;
   outline: 5px auto -webkit-focus-ring-color;
   outline-offset: -2px;
 }
+
 a:hover,
 a:active {
   outline: 0;
 }
+
 sub,
 sup {
   position: relative;
@@ -77,18 +89,29 @@
   line-height: 0;
   vertical-align: baseline;
 }
+
 sup {
   top: -0.5em;
 }
+
 sub {
   bottom: -0.25em;
 }
+
 img {
+  width: auto\9;
+  height: auto;
   max-width: 100%;
   vertical-align: middle;
   border: 0;
   -ms-interpolation-mode: bicubic;
 }
+
+#map_canvas img,
+.google-maps img {
+  max-width: none;
+}
+
 button,
 input,
 select,
@@ -97,275 +120,632 @@
   font-size: 100%;
   vertical-align: middle;
 }
+
 button,
 input {
   *overflow: visible;
   line-height: normal;
 }
+
 button::-moz-focus-inner,
 input::-moz-focus-inner {
   padding: 0;
   border: 0;
 }
+
 button,
-input[type="button"],
+html input[type="button"],
 input[type="reset"],
 input[type="submit"] {
   cursor: pointer;
   -webkit-appearance: button;
 }
+
+label,
+select,
+button,
+input[type="button"],
+input[type="reset"],
+input[type="submit"],
+input[type="radio"],
+input[type="checkbox"] {
+  cursor: pointer;
+}
+
 input[type="search"] {
   -webkit-box-sizing: content-box;
-  -moz-box-sizing: content-box;
-  box-sizing: content-box;
+     -moz-box-sizing: content-box;
+          box-sizing: content-box;
   -webkit-appearance: textfield;
 }
+
 input[type="search"]::-webkit-search-decoration,
 input[type="search"]::-webkit-search-cancel-button {
   -webkit-appearance: none;
 }
+
 textarea {
   overflow: auto;
   vertical-align: top;
 }
+
+@media print {
+  * {
+    color: #000 !important;
+    text-shadow: none !important;
+    background: transparent !important;
+    box-shadow: none !important;
+  }
+  a,
+  a:visited {
+    text-decoration: underline;
+  }
+  a[href]:after {
+    content: " (" attr(href) ")";
+  }
+  abbr[title]:after {
+    content: " (" attr(title) ")";
+  }
+  .ir a:after,
+  a[href^="javascript:"]:after,
+  a[href^="#"]:after {
+    content: "";
+  }
+  pre,
+  blockquote {
+    border: 1px solid #999;
+    page-break-inside: avoid;
+  }
+  thead {
+    display: table-header-group;
+  }
+  tr,
+  img {
+    page-break-inside: avoid;
+  }
+  img {
+    max-width: 100% !important;
+  }
+  @page  {
+    margin: 0.5cm;
+  }
+  p,
+  h2,
+  h3 {
+    orphans: 3;
+    widows: 3;
+  }
+  h2,
+  h3 {
+    page-break-after: avoid;
+  }
+}
+
 body {
   margin: 0;
   font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  line-height: 18px;
+  font-size: 14px;
+  line-height: 20px;
   color: #333333;
   background-color: #ffffff;
 }
+
 a {
-  color: #aa1111;
+  color: #0088cc;
   text-decoration: none;
 }
-a:hover {
-  color: #640a0a;
+
+a:hover,
+a:focus {
+  color: #005580;
   text-decoration: underline;
 }
+
+.img-rounded {
+  -webkit-border-radius: 6px;
+     -moz-border-radius: 6px;
+          border-radius: 6px;
+}
+
+.img-polaroid {
+  padding: 4px;
+  background-color: #fff;
+  border: 1px solid #ccc;
+  border: 1px solid rgba(0, 0, 0, 0.2);
+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+     -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+}
+
+.img-circle {
+  -webkit-border-radius: 500px;
+     -moz-border-radius: 500px;
+          border-radius: 500px;
+}
+
 .row {
   margin-left: -20px;
   *zoom: 1;
 }
+
 .row:before,
 .row:after {
   display: table;
+  line-height: 0;
   content: "";
 }
+
 .row:after {
   clear: both;
 }
+
 [class*="span"] {
   float: left;
+  min-height: 1px;
   margin-left: 20px;
 }
+
 .container,
+.navbar-static-top .container,
 .navbar-fixed-top .container,
 .navbar-fixed-bottom .container {
   width: 940px;
 }
+
 .span12 {
   width: 940px;
 }
+
 .span11 {
   width: 860px;
 }
+
 .span10 {
   width: 780px;
 }
+
 .span9 {
   width: 700px;
 }
+
 .span8 {
   width: 620px;
 }
+
 .span7 {
   width: 540px;
 }
+
 .span6 {
   width: 460px;
 }
+
 .span5 {
   width: 380px;
 }
+
 .span4 {
   width: 300px;
 }
+
 .span3 {
   width: 220px;
 }
+
 .span2 {
   width: 140px;
 }
+
 .span1 {
   width: 60px;
 }
+
 .offset12 {
   margin-left: 980px;
 }
+
 .offset11 {
   margin-left: 900px;
 }
+
 .offset10 {
   margin-left: 820px;
 }
+
 .offset9 {
   margin-left: 740px;
 }
+
 .offset8 {
   margin-left: 660px;
 }
+
 .offset7 {
   margin-left: 580px;
 }
+
 .offset6 {
   margin-left: 500px;
 }
+
 .offset5 {
   margin-left: 420px;
 }
+
 .offset4 {
   margin-left: 340px;
 }
+
 .offset3 {
   margin-left: 260px;
 }
+
 .offset2 {
   margin-left: 180px;
 }
+
 .offset1 {
   margin-left: 100px;
 }
+
 .row-fluid {
   width: 100%;
   *zoom: 1;
 }
+
 .row-fluid:before,
 .row-fluid:after {
   display: table;
+  line-height: 0;
   content: "";
 }
+
 .row-fluid:after {
   clear: both;
 }
+
 .row-fluid [class*="span"] {
   display: block;
-  width: 100%;
-  min-height: 28px;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -ms-box-sizing: border-box;
-  box-sizing: border-box;
   float: left;
-  margin-left: 2.127659574%;
-  *margin-left: 2.0744680846382977%;
+  width: 100%;
+  min-height: 30px;
+  margin-left: 2.127659574468085%;
+  *margin-left: 2.074468085106383%;
+  -webkit-box-sizing: border-box;
+     -moz-box-sizing: border-box;
+          box-sizing: border-box;
 }
+
 .row-fluid [class*="span"]:first-child {
   margin-left: 0;
 }
+
+.row-fluid .controls-row [class*="span"] + [class*="span"] {
+  margin-left: 2.127659574468085%;
+}
+
 .row-fluid .span12 {
-  width: 99.99999998999999%;
-  *width: 99.94680850063828%;
+  width: 100%;
+  *width: 99.94680851063829%;
 }
+
 .row-fluid .span11 {
-  width: 91.489361693%;
-  *width: 91.4361702036383%;
+  width: 91.48936170212765%;
+  *width: 91.43617021276594%;
 }
+
 .row-fluid .span10 {
-  width: 82.97872339599999%;
-  *width: 82.92553190663828%;
+  width: 82.97872340425532%;
+  *width: 82.92553191489361%;
 }
+
 .row-fluid .span9 {
-  width: 74.468085099%;
-  *width: 74.4148936096383%;
+  width: 74.46808510638297%;
+  *width: 74.41489361702126%;
 }
+
 .row-fluid .span8 {
-  width: 65.95744680199999%;
-  *width: 65.90425531263828%;
+  width: 65.95744680851064%;
+  *width: 65.90425531914893%;
 }
+
 .row-fluid .span7 {
-  width: 57.446808505%;
-  *width: 57.3936170156383%;
+  width: 57.44680851063829%;
+  *width: 57.39361702127659%;
 }
+
 .row-fluid .span6 {
-  width: 48.93617020799999%;
-  *width: 48.88297871863829%;
+  width: 48.93617021276595%;
+  *width: 48.88297872340425%;
 }
+
 .row-fluid .span5 {
-  width: 40.425531911%;
-  *width: 40.3723404216383%;
+  width: 40.42553191489362%;
+  *width: 40.37234042553192%;
 }
+
 .row-fluid .span4 {
-  width: 31.914893614%;
-  *width: 31.8617021246383%;
+  width: 31.914893617021278%;
+  *width: 31.861702127659576%;
 }
+
 .row-fluid .span3 {
-  width: 23.404255317%;
-  *width: 23.3510638276383%;
+  width: 23.404255319148934%;
+  *width: 23.351063829787233%;
 }
+
 .row-fluid .span2 {
-  width: 14.89361702%;
-  *width: 14.8404255306383%;
+  width: 14.893617021276595%;
+  *width: 14.840425531914894%;
 }
+
 .row-fluid .span1 {
-  width: 6.382978723%;
-  *width: 6.329787233638298%;
+  width: 6.382978723404255%;
+  *width: 6.329787234042553%;
 }
+
+.row-fluid .offset12 {
+  margin-left: 104.25531914893617%;
+  *margin-left: 104.14893617021275%;
+}
+
+.row-fluid .offset12:first-child {
+  margin-left: 102.12765957446808%;
+  *margin-left: 102.02127659574467%;
+}
+
+.row-fluid .offset11 {
+  margin-left: 95.74468085106382%;
+  *margin-left: 95.6382978723404%;
+}
+
+.row-fluid .offset11:first-child {
+  margin-left: 93.61702127659574%;
+  *margin-left: 93.51063829787232%;
+}
+
+.row-fluid .offset10 {
+  margin-left: 87.23404255319149%;
+  *margin-left: 87.12765957446807%;
+}
+
+.row-fluid .offset10:first-child {
+  margin-left: 85.1063829787234%;
+  *margin-left: 84.99999999999999%;
+}
+
+.row-fluid .offset9 {
+  margin-left: 78.72340425531914%;
+  *margin-left: 78.61702127659572%;
+}
+
+.row-fluid .offset9:first-child {
+  margin-left: 76.59574468085106%;
+  *margin-left: 76.48936170212764%;
+}
+
+.row-fluid .offset8 {
+  margin-left: 70.2127659574468%;
+  *margin-left: 70.10638297872339%;
+}
+
+.row-fluid .offset8:first-child {
+  margin-left: 68.08510638297872%;
+  *margin-left: 67.9787234042553%;
+}
+
+.row-fluid .offset7 {
+  margin-left: 61.70212765957446%;
+  *margin-left: 61.59574468085106%;
+}
+
+.row-fluid .offset7:first-child {
+  margin-left: 59.574468085106375%;
+  *margin-left: 59.46808510638297%;
+}
+
+.row-fluid .offset6 {
+  margin-left: 53.191489361702125%;
+  *margin-left: 53.085106382978715%;
+}
+
+.row-fluid .offset6:first-child {
+  margin-left: 51.063829787234035%;
+  *margin-left: 50.95744680851063%;
+}
+
+.row-fluid .offset5 {
+  margin-left: 44.68085106382979%;
+  *margin-left: 44.57446808510638%;
+}
+
+.row-fluid .offset5:first-child {
+  margin-left: 42.5531914893617%;
+  *margin-left: 42.4468085106383%;
+}
+
+.row-fluid .offset4 {
+  margin-left: 36.170212765957444%;
+  *margin-left: 36.06382978723405%;
+}
+
+.row-fluid .offset4:first-child {
+  margin-left: 34.04255319148936%;
+  *margin-left: 33.93617021276596%;
+}
+
+.row-fluid .offset3 {
+  margin-left: 27.659574468085104%;
+  *margin-left: 27.5531914893617%;
+}
+
+.row-fluid .offset3:first-child {
+  margin-left: 25.53191489361702%;
+  *margin-left: 25.425531914893618%;
+}
+
+.row-fluid .offset2 {
+  margin-left: 19.148936170212764%;
+  *margin-left: 19.04255319148936%;
+}
+
+.row-fluid .offset2:first-child {
+  margin-left: 17.02127659574468%;
+  *margin-left: 16.914893617021278%;
+}
+
+.row-fluid .offset1 {
+  margin-left: 10.638297872340425%;
+  *margin-left: 10.53191489361702%;
+}
+
+.row-fluid .offset1:first-child {
+  margin-left: 8.51063829787234%;
+  *margin-left: 8.404255319148938%;
+}
+
+[class*="span"].hide,
+.row-fluid [class*="span"].hide {
+  display: none;
+}
+
+[class*="span"].pull-right,
+.row-fluid [class*="span"].pull-right {
+  float: right;
+}
+
 .container {
   margin-right: auto;
   margin-left: auto;
   *zoom: 1;
 }
+
 .container:before,
 .container:after {
   display: table;
+  line-height: 0;
   content: "";
 }
+
 .container:after {
   clear: both;
 }
+
 .container-fluid {
   padding-right: 20px;
   padding-left: 20px;
   *zoom: 1;
 }
+
 .container-fluid:before,
 .container-fluid:after {
   display: table;
+  line-height: 0;
   content: "";
 }
+
 .container-fluid:after {
   clear: both;
 }
+
 p {
-  margin: 0 0 9px;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  line-height: 18px;
+  margin: 0 0 10px;
 }
-p small {
-  font-size: 11px;
-  color: #EBEBEB;
-}
+
 .lead {
-  margin-bottom: 18px;
-  font-size: 20px;
+  margin-bottom: 20px;
+  font-size: 21px;
   font-weight: 200;
-  line-height: 27px;
+  line-height: 30px;
 }
+
+small {
+  font-size: 85%;
+}
+
+strong {
+  font-weight: bold;
+}
+
+em {
+  font-style: italic;
+}
+
+cite {
+  font-style: normal;
+}
+
+.muted {
+  color: #999999;
+}
+
+a.muted:hover,
+a.muted:focus {
+  color: #808080;
+}
+
+.text-warning {
+  color: #c09853;
+}
+
+a.text-warning:hover,
+a.text-warning:focus {
+  color: #a47e3c;
+}
+
+.text-error {
+  color: #b94a48;
+}
+
+a.text-error:hover,
+a.text-error:focus {
+  color: #953b39;
+}
+
+.text-info {
+  color: #3a87ad;
+}
+
+a.text-info:hover,
+a.text-info:focus {
+  color: #2d6987;
+}
+
+.text-success {
+  color: #468847;
+}
+
+a.text-success:hover,
+a.text-success:focus {
+  color: #356635;
+}
+
+.text-left {
+  text-align: left;
+}
+
+.text-right {
+  text-align: right;
+}
+
+.text-center {
+  text-align: center;
+}
+
 h1,
 h2,
 h3,
 h4,
 h5,
 h6 {
-  margin: 0;
+  margin: 10px 0;
   font-family: inherit;
   font-weight: bold;
+  line-height: 20px;
   color: inherit;
   text-rendering: optimizelegibility;
 }
+
 h1 small,
 h2 small,
 h3 small,
@@ -373,148 +753,187 @@
 h5 small,
 h6 small {
   font-weight: normal;
-  color: #EBEBEB;
+  line-height: 1;
+  color: #999999;
 }
-h1 {
-  font-size: 30px;
-  line-height: 36px;
-}
-h1 small {
-  font-size: 18px;
-}
-h2 {
-  font-size: 24px;
-  line-height: 36px;
-}
-h2 small {
-  font-size: 18px;
-}
+
+h1,
+h2,
 h3 {
-  font-size: 18px;
-  line-height: 27px;
+  line-height: 40px;
 }
+
+h1 {
+  font-size: 38.5px;
+}
+
+h2 {
+  font-size: 31.5px;
+}
+
+h3 {
+  font-size: 24.5px;
+}
+
+h4 {
+  font-size: 17.5px;
+}
+
+h5 {
+  font-size: 14px;
+}
+
+h6 {
+  font-size: 11.9px;
+}
+
+h1 small {
+  font-size: 24.5px;
+}
+
+h2 small {
+  font-size: 17.5px;
+}
+
 h3 small {
   font-size: 14px;
 }
-h4,
-h5,
-h6 {
-  line-height: 18px;
-}
-h4 {
+
+h4 small {
   font-size: 14px;
 }
-h4 small {
-  font-size: 12px;
-}
-h5 {
-  font-size: 12px;
-}
-h6 {
-  font-size: 11px;
-  color: #EBEBEB;
-  text-transform: uppercase;
-}
+
 .page-header {
-  padding-bottom: 17px;
-  margin: 18px 0;
+  padding-bottom: 9px;
+  margin: 20px 0 30px;
   border-bottom: 1px solid #eeeeee;
 }
-.page-header h1 {
-  line-height: 1;
-}
+
 ul,
 ol {
   padding: 0;
-  margin: 0 0 9px 25px;
+  margin: 0 0 10px 25px;
 }
+
 ul ul,
 ul ol,
 ol ol,
 ol ul {
   margin-bottom: 0;
 }
-ul {
-  list-style: disc;
-}
-ol {
-  list-style: decimal;
-}
+
 li {
-  line-height: 18px;
+  line-height: 20px;
 }
+
 ul.unstyled,
 ol.unstyled {
   margin-left: 0;
   list-style: none;
 }
-dl {
-  margin-bottom: 18px;
+
+ul.inline,
+ol.inline {
+  margin-left: 0;
+  list-style: none;
 }
+
+ul.inline > li,
+ol.inline > li {
+  display: inline-block;
+  *display: inline;
+  padding-right: 5px;
+  padding-left: 5px;
+  *zoom: 1;
+}
+
+dl {
+  margin-bottom: 20px;
+}
+
 dt,
 dd {
-  line-height: 18px;
+  line-height: 20px;
 }
+
 dt {
   font-weight: bold;
-  line-height: 17px;
 }
+
 dd {
-  margin-left: 9px;
+  margin-left: 10px;
 }
+
+.dl-horizontal {
+  *zoom: 1;
+}
+
+.dl-horizontal:before,
+.dl-horizontal:after {
+  display: table;
+  line-height: 0;
+  content: "";
+}
+
+.dl-horizontal:after {
+  clear: both;
+}
+
 .dl-horizontal dt {
   float: left;
-  width: 120px;
+  width: 160px;
+  overflow: hidden;
   clear: left;
   text-align: right;
-  overflow: hidden;
   text-overflow: ellipsis;
   white-space: nowrap;
 }
+
 .dl-horizontal dd {
-  margin-left: 130px;
+  margin-left: 180px;
 }
+
 hr {
-  margin: 18px 0;
+  margin: 20px 0;
   border: 0;
   border-top: 1px solid #eeeeee;
   border-bottom: 1px solid #ffffff;
 }
-strong {
-  font-weight: bold;
+
+abbr[title],
+abbr[data-original-title] {
+  cursor: help;
+  border-bottom: 1px dotted #999999;
 }
-em {
-  font-style: italic;
-}
-.muted {
-  color: #EBEBEB;
-}
-abbr[title] {
-  border-bottom: 1px dotted #ddd;
-}
+
 abbr.initialism {
   font-size: 90%;
   text-transform: uppercase;
 }
+
 blockquote {
   padding: 0 0 0 15px;
-  margin: 0 0 18px;
+  margin: 0 0 20px;
   border-left: 5px solid #eeeeee;
 }
+
 blockquote p {
   margin-bottom: 0;
-  font-size: 16px;
+  font-size: 17.5px;
   font-weight: 300;
-  line-height: 22.5px;
+  line-height: 1.25;
 }
+
 blockquote small {
   display: block;
-  line-height: 18px;
-  color: #EBEBEB;
+  line-height: 20px;
+  color: #999999;
 }
+
 blockquote small:before {
   content: '\2014 \00A0';
 }
+
 blockquote.pull-right {
   float: right;
   padding-right: 15px;
@@ -522,50 +941,59 @@
   border-right: 5px solid #eeeeee;
   border-left: 0;
 }
+
 blockquote.pull-right p,
 blockquote.pull-right small {
   text-align: right;
 }
+
+blockquote.pull-right small:before {
+  content: '';
+}
+
+blockquote.pull-right small:after {
+  content: '\00A0 \2014';
+}
+
 q:before,
 q:after,
 blockquote:before,
 blockquote:after {
   content: "";
 }
+
 address {
   display: block;
-  margin-bottom: 18px;
+  margin-bottom: 20px;
   font-style: normal;
-  line-height: 18px;
+  line-height: 20px;
 }
-small {
-  font-size: 100%;
-}
-cite {
-  font-style: normal;
-}
+
 code,
 pre {
   padding: 0 3px 2px;
-  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+  font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
   font-size: 12px;
   color: #333333;
   -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
+     -moz-border-radius: 3px;
+          border-radius: 3px;
 }
+
 code {
   padding: 2px 4px;
   color: #d14;
+  white-space: nowrap;
   background-color: #f7f7f9;
   border: 1px solid #e1e1e8;
 }
+
 pre {
   display: block;
-  padding: 8.5px;
-  margin: 0 0 9px;
-  font-size: 12.025px;
-  line-height: 18px;
+  padding: 9.5px;
+  margin: 0 0 10px;
+  font-size: 13px;
+  line-height: 20px;
   word-break: break-all;
   word-wrap: break-word;
   white-space: pre;
@@ -574,465 +1002,272 @@
   border: 1px solid #ccc;
   border: 1px solid rgba(0, 0, 0, 0.15);
   -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
 }
+
 pre.prettyprint {
-  margin-bottom: 18px;
+  margin-bottom: 20px;
 }
+
 pre code {
   padding: 0;
   color: inherit;
+  white-space: pre;
+  white-space: pre-wrap;
   background-color: transparent;
   border: 0;
 }
+
 .pre-scrollable {
   max-height: 340px;
   overflow-y: scroll;
 }
-.label,
-.badge {
-  font-size: 10.998px;
-  font-weight: bold;
-  line-height: 14px;
-  color: #ffffff;
-  vertical-align: baseline;
-  white-space: nowrap;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  background-color: #EBEBEB;
-}
-.label {
-  padding: 1px 4px 2px;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-}
-.badge {
-  padding: 1px 9px 2px;
-  -webkit-border-radius: 9px;
-  -moz-border-radius: 9px;
-  border-radius: 9px;
-}
-a.label:hover,
-a.badge:hover {
-  color: #ffffff;
-  text-decoration: none;
-  cursor: pointer;
-}
-.label-important,
-.badge-important {
-  background-color: #b94a48;
-}
-.label-important[href],
-.badge-important[href] {
-  background-color: #953b39;
-}
-.label-warning,
-.badge-warning {
-  background-color: #f89406;
-}
-.label-warning[href],
-.badge-warning[href] {
-  background-color: #c67605;
-}
-.label-success,
-.badge-success {
-  background-color: #468847;
-}
-.label-success[href],
-.badge-success[href] {
-  background-color: #356635;
-}
-.label-info,
-.badge-info {
-  background-color: #3a87ad;
-}
-.label-info[href],
-.badge-info[href] {
-  background-color: #2d6987;
-}
-.label-inverse,
-.badge-inverse {
-  background-color: #333333;
-}
-.label-inverse[href],
-.badge-inverse[href] {
-  background-color: #1a1a1a;
-}
-table {
-  max-width: 100%;
-  background-color: transparent;
-  border-collapse: collapse;
-  border-spacing: 0;
-}
-.table {
-  width: 100%;
-  margin-bottom: 18px;
-}
-.table th,
-.table td {
-  padding: 8px;
-  line-height: 18px;
-  text-align: left;
-  vertical-align: top;
-  border-top: 1px solid #ebebeb;
-}
-.table th {
-  font-weight: bold;
-}
-.table thead th {
-  vertical-align: bottom;
-}
-.table caption + thead tr:first-child th,
-.table caption + thead tr:first-child td,
-.table colgroup + thead tr:first-child th,
-.table colgroup + thead tr:first-child td,
-.table thead:first-child tr:first-child th,
-.table thead:first-child tr:first-child td {
-  border-top: 0;
-}
-.table tbody + tbody {
-  border-top: 2px solid #ebebeb;
-}
-.table-condensed th,
-.table-condensed td {
-  padding: 4px 5px;
-}
-.table-bordered {
-  border: 1px solid #ebebeb;
-  border-collapse: separate;
-  *border-collapse: collapsed;
-  border-left: 0;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.table-bordered th,
-.table-bordered td {
-  border-left: 1px solid #ebebeb;
-}
-.table-bordered caption + thead tr:first-child th,
-.table-bordered caption + tbody tr:first-child th,
-.table-bordered caption + tbody tr:first-child td,
-.table-bordered colgroup + thead tr:first-child th,
-.table-bordered colgroup + tbody tr:first-child th,
-.table-bordered colgroup + tbody tr:first-child td,
-.table-bordered thead:first-child tr:first-child th,
-.table-bordered tbody:first-child tr:first-child th,
-.table-bordered tbody:first-child tr:first-child td {
-  border-top: 0;
-}
-.table-bordered thead:first-child tr:first-child th:first-child,
-.table-bordered tbody:first-child tr:first-child td:first-child {
-  -webkit-border-top-left-radius: 4px;
-  border-top-left-radius: 4px;
-  -moz-border-radius-topleft: 4px;
-}
-.table-bordered thead:first-child tr:first-child th:last-child,
-.table-bordered tbody:first-child tr:first-child td:last-child {
-  -webkit-border-top-right-radius: 4px;
-  border-top-right-radius: 4px;
-  -moz-border-radius-topright: 4px;
-}
-.table-bordered thead:last-child tr:last-child th:first-child,
-.table-bordered tbody:last-child tr:last-child td:first-child {
-  -webkit-border-radius: 0 0 0 4px;
-  -moz-border-radius: 0 0 0 4px;
-  border-radius: 0 0 0 4px;
-  -webkit-border-bottom-left-radius: 4px;
-  border-bottom-left-radius: 4px;
-  -moz-border-radius-bottomleft: 4px;
-}
-.table-bordered thead:last-child tr:last-child th:last-child,
-.table-bordered tbody:last-child tr:last-child td:last-child {
-  -webkit-border-bottom-right-radius: 4px;
-  border-bottom-right-radius: 4px;
-  -moz-border-radius-bottomright: 4px;
-}
-.table-striped tbody tr:nth-child(odd) td,
-.table-striped tbody tr:nth-child(odd) th {
-  background-color: #f9f9f9;
-}
-.table tbody tr:hover td,
-.table tbody tr:hover th {
-  background-color: #f5f5f5;
-}
-table .span1 {
-  float: none;
-  width: 44px;
-  margin-left: 0;
-}
-table .span2 {
-  float: none;
-  width: 124px;
-  margin-left: 0;
-}
-table .span3 {
-  float: none;
-  width: 204px;
-  margin-left: 0;
-}
-table .span4 {
-  float: none;
-  width: 284px;
-  margin-left: 0;
-}
-table .span5 {
-  float: none;
-  width: 364px;
-  margin-left: 0;
-}
-table .span6 {
-  float: none;
-  width: 444px;
-  margin-left: 0;
-}
-table .span7 {
-  float: none;
-  width: 524px;
-  margin-left: 0;
-}
-table .span8 {
-  float: none;
-  width: 604px;
-  margin-left: 0;
-}
-table .span9 {
-  float: none;
-  width: 684px;
-  margin-left: 0;
-}
-table .span10 {
-  float: none;
-  width: 764px;
-  margin-left: 0;
-}
-table .span11 {
-  float: none;
-  width: 844px;
-  margin-left: 0;
-}
-table .span12 {
-  float: none;
-  width: 924px;
-  margin-left: 0;
-}
-table .span13 {
-  float: none;
-  width: 1004px;
-  margin-left: 0;
-}
-table .span14 {
-  float: none;
-  width: 1084px;
-  margin-left: 0;
-}
-table .span15 {
-  float: none;
-  width: 1164px;
-  margin-left: 0;
-}
-table .span16 {
-  float: none;
-  width: 1244px;
-  margin-left: 0;
-}
-table .span17 {
-  float: none;
-  width: 1324px;
-  margin-left: 0;
-}
-table .span18 {
-  float: none;
-  width: 1404px;
-  margin-left: 0;
-}
-table .span19 {
-  float: none;
-  width: 1484px;
-  margin-left: 0;
-}
-table .span20 {
-  float: none;
-  width: 1564px;
-  margin-left: 0;
-}
-table .span21 {
-  float: none;
-  width: 1644px;
-  margin-left: 0;
-}
-table .span22 {
-  float: none;
-  width: 1724px;
-  margin-left: 0;
-}
-table .span23 {
-  float: none;
-  width: 1804px;
-  margin-left: 0;
-}
-table .span24 {
-  float: none;
-  width: 1884px;
-  margin-left: 0;
-}
+
 form {
-  margin: 0 0 18px;
+  margin: 0 0 20px;
 }
+
 fieldset {
   padding: 0;
   margin: 0;
   border: 0;
 }
+
 legend {
   display: block;
   width: 100%;
   padding: 0;
-  margin-bottom: 27px;
-  font-size: 19.5px;
-  line-height: 36px;
+  margin-bottom: 20px;
+  font-size: 21px;
+  line-height: 40px;
   color: #333333;
   border: 0;
-  border-bottom: 1px solid #eee;
+  border-bottom: 1px solid #e5e5e5;
 }
+
 legend small {
-  font-size: 13.5px;
-  color: #EBEBEB;
+  font-size: 15px;
+  color: #999999;
 }
+
 label,
 input,
 button,
 select,
 textarea {
-  font-size: 13px;
+  font-size: 14px;
   font-weight: normal;
-  line-height: 18px;
+  line-height: 20px;
 }
+
 input,
 button,
 select,
 textarea {
   font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
 }
+
 label {
   display: block;
   margin-bottom: 5px;
-  color: #333333;
 }
-input,
-textarea,
+
 select,
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
 .uneditable-input {
   display: inline-block;
-  width: 210px;
-  height: 18px;
-  padding: 4px;
-  margin-bottom: 9px;
-  font-size: 13px;
-  line-height: 18px;
+  height: 20px;
+  padding: 4px 6px;
+  margin-bottom: 10px;
+  font-size: 14px;
+  line-height: 20px;
   color: #555555;
+  vertical-align: middle;
+  -webkit-border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
+}
+
+input,
+textarea,
+.uneditable-input {
+  width: 206px;
+}
+
+textarea {
+  height: auto;
+}
+
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
+.uneditable-input {
   background-color: #ffffff;
-  border: 1px solid #ebebeb;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
+  border: 1px solid #cccccc;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
+     -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
+       -o-transition: border linear 0.2s, box-shadow linear 0.2s;
+          transition: border linear 0.2s, box-shadow linear 0.2s;
 }
-.uneditable-textarea {
-  width: auto;
-  height: auto;
+
+textarea:focus,
+input[type="text"]:focus,
+input[type="password"]:focus,
+input[type="datetime"]:focus,
+input[type="datetime-local"]:focus,
+input[type="date"]:focus,
+input[type="month"]:focus,
+input[type="time"]:focus,
+input[type="week"]:focus,
+input[type="number"]:focus,
+input[type="email"]:focus,
+input[type="url"]:focus,
+input[type="search"]:focus,
+input[type="tel"]:focus,
+input[type="color"]:focus,
+.uneditable-input:focus {
+  border-color: rgba(82, 168, 236, 0.8);
+  outline: 0;
+  outline: thin dotted \9;
+  /* IE6-9 */
+
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
 }
-label input,
-label textarea,
-label select {
-  display: block;
-}
-input[type="image"],
-input[type="checkbox"],
-input[type="radio"] {
-  width: auto;
-  height: auto;
-  padding: 0;
-  margin: 3px 0;
+
+input[type="radio"],
+input[type="checkbox"] {
+  margin: 4px 0 0;
+  margin-top: 1px \9;
   *margin-top: 0;
-  /* IE7 */
-
   line-height: normal;
-  cursor: pointer;
-  background-color: transparent;
-  border: 0 \9;
-  /* IE9 and down */
+}
 
-  -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
-}
-input[type="image"] {
-  border: 0;
-}
-input[type="file"] {
-  width: auto;
-  padding: initial;
-  line-height: initial;
-  background-color: #ffffff;
-  background-color: initial;
-  border: initial;
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-}
-input[type="button"],
+input[type="file"],
+input[type="image"],
+input[type="submit"],
 input[type="reset"],
-input[type="submit"] {
+input[type="button"],
+input[type="radio"],
+input[type="checkbox"] {
   width: auto;
-  height: auto;
 }
+
 select,
 input[type="file"] {
-  height: 28px;
+  height: 30px;
   /* In IE7, the height of the select element cannot be changed by height, only font-size */
 
   *margin-top: 4px;
   /* For IE7, add top margin to align select with labels */
 
-  line-height: 28px;
+  line-height: 30px;
 }
-input[type="file"] {
-  line-height: 18px \9;
-}
+
 select {
   width: 220px;
   background-color: #ffffff;
+  border: 1px solid #cccccc;
 }
+
 select[multiple],
 select[size] {
   height: auto;
 }
-input[type="image"] {
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
+
+select:focus,
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+  outline: thin dotted #333;
+  outline: 5px auto -webkit-focus-ring-color;
+  outline-offset: -2px;
 }
-textarea {
+
+.uneditable-input,
+.uneditable-textarea {
+  color: #999999;
+  cursor: not-allowed;
+  background-color: #fcfcfc;
+  border-color: #cccccc;
+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
+     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
+          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
+}
+
+.uneditable-input {
+  overflow: hidden;
+  white-space: nowrap;
+}
+
+.uneditable-textarea {
+  width: auto;
   height: auto;
 }
-input[type="hidden"] {
-  display: none;
+
+input:-moz-placeholder,
+textarea:-moz-placeholder {
+  color: #999999;
 }
+
+input:-ms-input-placeholder,
+textarea:-ms-input-placeholder {
+  color: #999999;
+}
+
+input::-webkit-input-placeholder,
+textarea::-webkit-input-placeholder {
+  color: #999999;
+}
+
 .radio,
 .checkbox {
-  min-height: 18px;
-  padding-left: 18px;
+  min-height: 20px;
+  padding-left: 20px;
 }
+
 .radio input[type="radio"],
 .checkbox input[type="checkbox"] {
   float: left;
-  margin-left: -18px;
+  margin-left: -20px;
 }
+
 .controls > .radio:first-child,
 .controls > .checkbox:first-child {
   padding-top: 5px;
 }
+
 .radio.inline,
 .checkbox.inline {
   display: inline-block;
@@ -1040,61 +1275,36 @@
   margin-bottom: 0;
   vertical-align: middle;
 }
+
 .radio.inline + .radio.inline,
 .checkbox.inline + .checkbox.inline {
   margin-left: 10px;
 }
-input,
-textarea {
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
-  -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
-  -ms-transition: border linear 0.2s, box-shadow linear 0.2s;
-  -o-transition: border linear 0.2s, box-shadow linear 0.2s;
-  transition: border linear 0.2s, box-shadow linear 0.2s;
-}
-input:focus,
-textarea:focus {
-  border-color: rgba(82, 168, 236, 0.8);
-  outline: 0;
-  outline: thin dotted \9;
-  /* IE6-9 */
 
-  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
-  -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
-  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
-}
-input[type="file"]:focus,
-input[type="radio"]:focus,
-input[type="checkbox"]:focus,
-select:focus {
-  outline: thin dotted #333;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-}
 .input-mini {
   width: 60px;
 }
+
 .input-small {
   width: 90px;
 }
+
 .input-medium {
   width: 150px;
 }
+
 .input-large {
   width: 210px;
 }
+
 .input-xlarge {
   width: 270px;
 }
+
 .input-xxlarge {
   width: 530px;
 }
+
 input[class*="span"],
 select[class*="span"],
 textarea[class*="span"],
@@ -1106,47 +1316,127 @@
   float: none;
   margin-left: 0;
 }
+
+.input-append input[class*="span"],
+.input-append .uneditable-input[class*="span"],
+.input-prepend input[class*="span"],
+.input-prepend .uneditable-input[class*="span"],
+.row-fluid input[class*="span"],
+.row-fluid select[class*="span"],
+.row-fluid textarea[class*="span"],
+.row-fluid .uneditable-input[class*="span"],
+.row-fluid .input-prepend [class*="span"],
+.row-fluid .input-append [class*="span"] {
+  display: inline-block;
+}
+
 input,
 textarea,
 .uneditable-input {
   margin-left: 0;
 }
-input.span12, textarea.span12, .uneditable-input.span12 {
-  width: 930px;
+
+.controls-row [class*="span"] + [class*="span"] {
+  margin-left: 20px;
 }
-input.span11, textarea.span11, .uneditable-input.span11 {
-  width: 850px;
+
+input.span12,
+textarea.span12,
+.uneditable-input.span12 {
+  width: 926px;
 }
-input.span10, textarea.span10, .uneditable-input.span10 {
-  width: 770px;
+
+input.span11,
+textarea.span11,
+.uneditable-input.span11 {
+  width: 846px;
 }
-input.span9, textarea.span9, .uneditable-input.span9 {
-  width: 690px;
+
+input.span10,
+textarea.span10,
+.uneditable-input.span10 {
+  width: 766px;
 }
-input.span8, textarea.span8, .uneditable-input.span8 {
-  width: 610px;
+
+input.span9,
+textarea.span9,
+.uneditable-input.span9 {
+  width: 686px;
 }
-input.span7, textarea.span7, .uneditable-input.span7 {
-  width: 530px;
+
+input.span8,
+textarea.span8,
+.uneditable-input.span8 {
+  width: 606px;
 }
-input.span6, textarea.span6, .uneditable-input.span6 {
-  width: 450px;
+
+input.span7,
+textarea.span7,
+.uneditable-input.span7 {
+  width: 526px;
 }
-input.span5, textarea.span5, .uneditable-input.span5 {
-  width: 370px;
+
+input.span6,
+textarea.span6,
+.uneditable-input.span6 {
+  width: 446px;
 }
-input.span4, textarea.span4, .uneditable-input.span4 {
-  width: 290px;
+
+input.span5,
+textarea.span5,
+.uneditable-input.span5 {
+  width: 366px;
 }
-input.span3, textarea.span3, .uneditable-input.span3 {
-  width: 210px;
+
+input.span4,
+textarea.span4,
+.uneditable-input.span4 {
+  width: 286px;
 }
-input.span2, textarea.span2, .uneditable-input.span2 {
-  width: 130px;
+
+input.span3,
+textarea.span3,
+.uneditable-input.span3 {
+  width: 206px;
 }
-input.span1, textarea.span1, .uneditable-input.span1 {
-  width: 50px;
+
+input.span2,
+textarea.span2,
+.uneditable-input.span2 {
+  width: 126px;
 }
+
+input.span1,
+textarea.span1,
+.uneditable-input.span1 {
+  width: 46px;
+}
+
+.controls-row {
+  *zoom: 1;
+}
+
+.controls-row:before,
+.controls-row:after {
+  display: table;
+  line-height: 0;
+  content: "";
+}
+
+.controls-row:after {
+  clear: both;
+}
+
+.controls-row [class*="span"],
+.row-fluid .controls-row [class*="span"] {
+  float: left;
+}
+
+.controls-row .checkbox[class*="span"],
+.controls-row .radio[class*="span"] {
+  padding-top: 5px;
+}
+
 input[disabled],
 select[disabled],
 textarea[disabled],
@@ -1155,260 +1445,384 @@
 textarea[readonly] {
   cursor: not-allowed;
   background-color: #eeeeee;
-  border-color: #ddd;
 }
+
 input[type="radio"][disabled],
 input[type="checkbox"][disabled],
 input[type="radio"][readonly],
 input[type="checkbox"][readonly] {
   background-color: transparent;
 }
-.control-group.warning > label,
+
+.control-group.warning .control-label,
 .control-group.warning .help-block,
 .control-group.warning .help-inline {
   color: #c09853;
 }
+
+.control-group.warning .checkbox,
+.control-group.warning .radio,
 .control-group.warning input,
 .control-group.warning select,
 .control-group.warning textarea {
   color: #c09853;
-  border-color: #c09853;
 }
+
+.control-group.warning input,
+.control-group.warning select,
+.control-group.warning textarea {
+  border-color: #c09853;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
 .control-group.warning input:focus,
 .control-group.warning select:focus,
 .control-group.warning textarea:focus {
   border-color: #a47e3c;
-  -webkit-box-shadow: 0 0 6px #dbc59e;
-  -moz-box-shadow: 0 0 6px #dbc59e;
-  box-shadow: 0 0 6px #dbc59e;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
 }
+
 .control-group.warning .input-prepend .add-on,
 .control-group.warning .input-append .add-on {
   color: #c09853;
   background-color: #fcf8e3;
   border-color: #c09853;
 }
-.control-group.error > label,
+
+.control-group.error .control-label,
 .control-group.error .help-block,
 .control-group.error .help-inline {
   color: #b94a48;
 }
+
+.control-group.error .checkbox,
+.control-group.error .radio,
 .control-group.error input,
 .control-group.error select,
 .control-group.error textarea {
   color: #b94a48;
-  border-color: #b94a48;
 }
+
+.control-group.error input,
+.control-group.error select,
+.control-group.error textarea {
+  border-color: #b94a48;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
 .control-group.error input:focus,
 .control-group.error select:focus,
 .control-group.error textarea:focus {
   border-color: #953b39;
-  -webkit-box-shadow: 0 0 6px #d59392;
-  -moz-box-shadow: 0 0 6px #d59392;
-  box-shadow: 0 0 6px #d59392;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
 }
+
 .control-group.error .input-prepend .add-on,
 .control-group.error .input-append .add-on {
   color: #b94a48;
   background-color: #f2dede;
   border-color: #b94a48;
 }
-.control-group.success > label,
+
+.control-group.success .control-label,
 .control-group.success .help-block,
 .control-group.success .help-inline {
   color: #468847;
 }
+
+.control-group.success .checkbox,
+.control-group.success .radio,
 .control-group.success input,
 .control-group.success select,
 .control-group.success textarea {
   color: #468847;
-  border-color: #468847;
 }
+
+.control-group.success input,
+.control-group.success select,
+.control-group.success textarea {
+  border-color: #468847;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
 .control-group.success input:focus,
 .control-group.success select:focus,
 .control-group.success textarea:focus {
   border-color: #356635;
-  -webkit-box-shadow: 0 0 6px #7aba7b;
-  -moz-box-shadow: 0 0 6px #7aba7b;
-  box-shadow: 0 0 6px #7aba7b;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
 }
+
 .control-group.success .input-prepend .add-on,
 .control-group.success .input-append .add-on {
   color: #468847;
   background-color: #dff0d8;
   border-color: #468847;
 }
-input:focus:required:invalid,
-textarea:focus:required:invalid,
-select:focus:required:invalid {
+
+.control-group.info .control-label,
+.control-group.info .help-block,
+.control-group.info .help-inline {
+  color: #3a87ad;
+}
+
+.control-group.info .checkbox,
+.control-group.info .radio,
+.control-group.info input,
+.control-group.info select,
+.control-group.info textarea {
+  color: #3a87ad;
+}
+
+.control-group.info input,
+.control-group.info select,
+.control-group.info textarea {
+  border-color: #3a87ad;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.control-group.info input:focus,
+.control-group.info select:focus,
+.control-group.info textarea:focus {
+  border-color: #2d6987;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
+}
+
+.control-group.info .input-prepend .add-on,
+.control-group.info .input-append .add-on {
+  color: #3a87ad;
+  background-color: #d9edf7;
+  border-color: #3a87ad;
+}
+
+input:focus:invalid,
+textarea:focus:invalid,
+select:focus:invalid {
   color: #b94a48;
   border-color: #ee5f5b;
 }
-input:focus:required:invalid:focus,
-textarea:focus:required:invalid:focus,
-select:focus:required:invalid:focus {
+
+input:focus:invalid:focus,
+textarea:focus:invalid:focus,
+select:focus:invalid:focus {
   border-color: #e9322d;
   -webkit-box-shadow: 0 0 6px #f8b9b7;
-  -moz-box-shadow: 0 0 6px #f8b9b7;
-  box-shadow: 0 0 6px #f8b9b7;
+     -moz-box-shadow: 0 0 6px #f8b9b7;
+          box-shadow: 0 0 6px #f8b9b7;
 }
+
 .form-actions {
-  padding: 17px 20px 18px;
-  margin-top: 18px;
-  margin-bottom: 18px;
+  padding: 19px 20px 20px;
+  margin-top: 20px;
+  margin-bottom: 20px;
   background-color: #f5f5f5;
-  border-top: 1px solid #ddd;
+  border-top: 1px solid #e5e5e5;
   *zoom: 1;
 }
+
 .form-actions:before,
 .form-actions:after {
   display: table;
+  line-height: 0;
   content: "";
 }
+
 .form-actions:after {
   clear: both;
 }
-.uneditable-input {
-  overflow: hidden;
-  white-space: nowrap;
-  cursor: not-allowed;
-  background-color: #ffffff;
-  border-color: #eee;
-  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
-  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
-  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
-}
-:-moz-placeholder {
-  color: #EBEBEB;
-}
-::-webkit-input-placeholder {
-  color: #EBEBEB;
-}
+
 .help-block,
 .help-inline {
-  color: #555555;
+  color: #595959;
 }
+
 .help-block {
   display: block;
-  margin-bottom: 9px;
+  margin-bottom: 10px;
 }
+
 .help-inline {
   display: inline-block;
   *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
-  vertical-align: middle;
   padding-left: 5px;
+  vertical-align: middle;
+  *zoom: 1;
 }
-.input-prepend,
-.input-append {
-  margin-bottom: 5px;
+
+.input-append,
+.input-prepend {
+  display: inline-block;
+  margin-bottom: 10px;
+  font-size: 0;
+  white-space: nowrap;
+  vertical-align: middle;
 }
-.input-prepend input,
+
 .input-append input,
-.input-prepend select,
+.input-prepend input,
 .input-append select,
+.input-prepend select,
+.input-append .uneditable-input,
 .input-prepend .uneditable-input,
-.input-append .uneditable-input {
+.input-append .dropdown-menu,
+.input-prepend .dropdown-menu,
+.input-append .popover,
+.input-prepend .popover {
+  font-size: 14px;
+}
+
+.input-append input,
+.input-prepend input,
+.input-append select,
+.input-prepend select,
+.input-append .uneditable-input,
+.input-prepend .uneditable-input {
   position: relative;
   margin-bottom: 0;
   *margin-left: 0;
-  vertical-align: middle;
-  -webkit-border-radius: 0 3px 3px 0;
-  -moz-border-radius: 0 3px 3px 0;
-  border-radius: 0 3px 3px 0;
+  vertical-align: top;
+  -webkit-border-radius: 0 4px 4px 0;
+     -moz-border-radius: 0 4px 4px 0;
+          border-radius: 0 4px 4px 0;
 }
-.input-prepend input:focus,
+
 .input-append input:focus,
-.input-prepend select:focus,
+.input-prepend input:focus,
 .input-append select:focus,
-.input-prepend .uneditable-input:focus,
-.input-append .uneditable-input:focus {
+.input-prepend select:focus,
+.input-append .uneditable-input:focus,
+.input-prepend .uneditable-input:focus {
   z-index: 2;
 }
-.input-prepend .uneditable-input,
-.input-append .uneditable-input {
-  border-left-color: #ccc;
-}
-.input-prepend .add-on,
-.input-append .add-on {
+
+.input-append .add-on,
+.input-prepend .add-on {
   display: inline-block;
   width: auto;
-  height: 18px;
+  height: 20px;
   min-width: 16px;
   padding: 4px 5px;
+  font-size: 14px;
   font-weight: normal;
-  line-height: 18px;
+  line-height: 20px;
   text-align: center;
   text-shadow: 0 1px 0 #ffffff;
-  vertical-align: middle;
   background-color: #eeeeee;
   border: 1px solid #ccc;
 }
-.input-prepend .add-on,
+
 .input-append .add-on,
+.input-prepend .add-on,
+.input-append .btn,
 .input-prepend .btn,
-.input-append .btn {
-  margin-left: -1px;
+.input-append .btn-group > .dropdown-toggle,
+.input-prepend .btn-group > .dropdown-toggle {
+  vertical-align: top;
   -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
+     -moz-border-radius: 0;
+          border-radius: 0;
 }
-.input-prepend .active,
-.input-append .active {
+
+.input-append .active,
+.input-prepend .active {
   background-color: #a9dba9;
   border-color: #46a546;
 }
+
 .input-prepend .add-on,
 .input-prepend .btn {
   margin-right: -1px;
 }
+
 .input-prepend .add-on:first-child,
 .input-prepend .btn:first-child {
-  -webkit-border-radius: 3px 0 0 3px;
-  -moz-border-radius: 3px 0 0 3px;
-  border-radius: 3px 0 0 3px;
+  -webkit-border-radius: 4px 0 0 4px;
+     -moz-border-radius: 4px 0 0 4px;
+          border-radius: 4px 0 0 4px;
 }
+
 .input-append input,
 .input-append select,
 .input-append .uneditable-input {
-  -webkit-border-radius: 3px 0 0 3px;
-  -moz-border-radius: 3px 0 0 3px;
-  border-radius: 3px 0 0 3px;
+  -webkit-border-radius: 4px 0 0 4px;
+     -moz-border-radius: 4px 0 0 4px;
+          border-radius: 4px 0 0 4px;
 }
-.input-append .uneditable-input {
-  border-right-color: #ccc;
-  border-left-color: #eee;
+
+.input-append input + .btn-group .btn:last-child,
+.input-append select + .btn-group .btn:last-child,
+.input-append .uneditable-input + .btn-group .btn:last-child {
+  -webkit-border-radius: 0 4px 4px 0;
+     -moz-border-radius: 0 4px 4px 0;
+          border-radius: 0 4px 4px 0;
 }
+
+.input-append .add-on,
+.input-append .btn,
+.input-append .btn-group {
+  margin-left: -1px;
+}
+
 .input-append .add-on:last-child,
-.input-append .btn:last-child {
-  -webkit-border-radius: 0 3px 3px 0;
-  -moz-border-radius: 0 3px 3px 0;
-  border-radius: 0 3px 3px 0;
+.input-append .btn:last-child,
+.input-append .btn-group:last-child > .dropdown-toggle {
+  -webkit-border-radius: 0 4px 4px 0;
+     -moz-border-radius: 0 4px 4px 0;
+          border-radius: 0 4px 4px 0;
 }
+
 .input-prepend.input-append input,
 .input-prepend.input-append select,
 .input-prepend.input-append .uneditable-input {
   -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
+     -moz-border-radius: 0;
+          border-radius: 0;
 }
+
+.input-prepend.input-append input + .btn-group .btn,
+.input-prepend.input-append select + .btn-group .btn,
+.input-prepend.input-append .uneditable-input + .btn-group .btn {
+  -webkit-border-radius: 0 4px 4px 0;
+     -moz-border-radius: 0 4px 4px 0;
+          border-radius: 0 4px 4px 0;
+}
+
 .input-prepend.input-append .add-on:first-child,
 .input-prepend.input-append .btn:first-child {
   margin-right: -1px;
-  -webkit-border-radius: 3px 0 0 3px;
-  -moz-border-radius: 3px 0 0 3px;
-  border-radius: 3px 0 0 3px;
+  -webkit-border-radius: 4px 0 0 4px;
+     -moz-border-radius: 4px 0 0 4px;
+          border-radius: 4px 0 0 4px;
 }
+
 .input-prepend.input-append .add-on:last-child,
 .input-prepend.input-append .btn:last-child {
   margin-left: -1px;
-  -webkit-border-radius: 0 3px 3px 0;
-  -moz-border-radius: 0 3px 3px 0;
-  border-radius: 0 3px 3px 0;
+  -webkit-border-radius: 0 4px 4px 0;
+     -moz-border-radius: 0 4px 4px 0;
+          border-radius: 0 4px 4px 0;
 }
-.search-query {
+
+.input-prepend.input-append .btn-group:first-child {
+  margin-left: 0;
+}
+
+input.search-query {
   padding-right: 14px;
   padding-right: 4px \9;
   padding-left: 14px;
@@ -1416,10 +1830,44 @@
   /* IE7-8 doesn't have border-radius, so don't indent the padding */
 
   margin-bottom: 0;
-  -webkit-border-radius: 14px;
-  -moz-border-radius: 14px;
-  border-radius: 14px;
+  -webkit-border-radius: 15px;
+     -moz-border-radius: 15px;
+          border-radius: 15px;
 }
+
+/* Allow for input prepend/append in search forms */
+
+.form-search .input-append .search-query,
+.form-search .input-prepend .search-query {
+  -webkit-border-radius: 0;
+     -moz-border-radius: 0;
+          border-radius: 0;
+}
+
+.form-search .input-append .search-query {
+  -webkit-border-radius: 14px 0 0 14px;
+     -moz-border-radius: 14px 0 0 14px;
+          border-radius: 14px 0 0 14px;
+}
+
+.form-search .input-append .btn {
+  -webkit-border-radius: 0 14px 14px 0;
+     -moz-border-radius: 0 14px 14px 0;
+          border-radius: 0 14px 14px 0;
+}
+
+.form-search .input-prepend .search-query {
+  -webkit-border-radius: 0 14px 14px 0;
+     -moz-border-radius: 0 14px 14px 0;
+          border-radius: 0 14px 14px 0;
+}
+
+.form-search .input-prepend .btn {
+  -webkit-border-radius: 14px 0 0 14px;
+     -moz-border-radius: 14px 0 0 14px;
+          border-radius: 14px 0 0 14px;
+}
+
 .form-search input,
 .form-inline input,
 .form-horizontal input,
@@ -1443,26 +1891,31 @@
 .form-horizontal .input-append {
   display: inline-block;
   *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
   margin-bottom: 0;
+  vertical-align: middle;
+  *zoom: 1;
 }
+
 .form-search .hide,
 .form-inline .hide,
 .form-horizontal .hide {
   display: none;
 }
+
 .form-search label,
-.form-inline label {
+.form-inline label,
+.form-search .btn-group,
+.form-inline .btn-group {
   display: inline-block;
 }
+
 .form-search .input-append,
 .form-inline .input-append,
 .form-search .input-prepend,
 .form-inline .input-prepend {
   margin-bottom: 0;
 }
+
 .form-search .radio,
 .form-search .checkbox,
 .form-inline .radio,
@@ -1471,6 +1924,7 @@
   margin-bottom: 0;
   vertical-align: middle;
 }
+
 .form-search .radio input[type="radio"],
 .form-search .checkbox input[type="checkbox"],
 .form-inline .radio input[type="radio"],
@@ -1479,399 +1933,352 @@
   margin-right: 3px;
   margin-left: 0;
 }
+
 .control-group {
-  margin-bottom: 9px;
+  margin-bottom: 10px;
 }
+
 legend + .control-group {
-  margin-top: 18px;
+  margin-top: 20px;
   -webkit-margin-top-collapse: separate;
 }
+
 .form-horizontal .control-group {
-  margin-bottom: 18px;
+  margin-bottom: 20px;
   *zoom: 1;
 }
+
 .form-horizontal .control-group:before,
 .form-horizontal .control-group:after {
   display: table;
+  line-height: 0;
   content: "";
 }
+
 .form-horizontal .control-group:after {
   clear: both;
 }
+
 .form-horizontal .control-label {
   float: left;
-  width: 140px;
+  width: 160px;
   padding-top: 5px;
   text-align: right;
 }
+
 .form-horizontal .controls {
   *display: inline-block;
   *padding-left: 20px;
-  margin-left: 160px;
+  margin-left: 180px;
   *margin-left: 0;
 }
+
 .form-horizontal .controls:first-child {
-  *padding-left: 160px;
+  *padding-left: 180px;
 }
+
 .form-horizontal .help-block {
-  margin-top: 9px;
   margin-bottom: 0;
 }
+
+.form-horizontal input + .help-block,
+.form-horizontal select + .help-block,
+.form-horizontal textarea + .help-block,
+.form-horizontal .uneditable-input + .help-block,
+.form-horizontal .input-prepend + .help-block,
+.form-horizontal .input-append + .help-block {
+  margin-top: 10px;
+}
+
 .form-horizontal .form-actions {
-  padding-left: 160px;
+  padding-left: 180px;
 }
-.btn {
-  display: inline-block;
-  *display: inline;
-  /* IE7 inline-block hack */
 
-  *zoom: 1;
-  padding: 4px 10px 4px;
-  margin-bottom: 0;
-  font-size: 13px;
-  line-height: 18px;
-  *line-height: 20px;
-  color: #333333;
-  text-align: center;
-  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
-  vertical-align: middle;
-  cursor: pointer;
-  background-color: #f5f5f5;
-  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
-  background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
-  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
-  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
-  background-image: linear-gradient(top, #ffffff, #e6e6e6);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);
-  border-color: #e6e6e6 #e6e6e6 #bfbfbf;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  *background-color: #e6e6e6;
-  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
+table {
+  max-width: 100%;
+  background-color: transparent;
+  border-collapse: collapse;
+  border-spacing: 0;
+}
 
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-  border: 1px solid #cccccc;
-  *border: 0;
-  border-bottom-color: #b3b3b3;
+.table {
+  width: 100%;
+  margin-bottom: 20px;
+}
+
+.table th,
+.table td {
+  padding: 8px;
+  line-height: 20px;
+  text-align: left;
+  vertical-align: top;
+  border-top: 1px solid #dddddd;
+}
+
+.table th {
+  font-weight: bold;
+}
+
+.table thead th {
+  vertical-align: bottom;
+}
+
+.table caption + thead tr:first-child th,
+.table caption + thead tr:first-child td,
+.table colgroup + thead tr:first-child th,
+.table colgroup + thead tr:first-child td,
+.table thead:first-child tr:first-child th,
+.table thead:first-child tr:first-child td {
+  border-top: 0;
+}
+
+.table tbody + tbody {
+  border-top: 2px solid #dddddd;
+}
+
+.table .table {
+  background-color: #ffffff;
+}
+
+.table-condensed th,
+.table-condensed td {
+  padding: 4px 5px;
+}
+
+.table-bordered {
+  border: 1px solid #dddddd;
+  border-collapse: separate;
+  *border-collapse: collapse;
+  border-left: 0;
   -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  *margin-left: .3em;
-  -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
+     -moz-border-radius: 4px;
+          border-radius: 4px;
 }
-.btn:hover,
-.btn:active,
-.btn.active,
-.btn.disabled,
-.btn[disabled] {
-  background-color: #e6e6e6;
-  *background-color: #d9d9d9;
-}
-.btn:active,
-.btn.active {
-  background-color: #cccccc \9;
-}
-.btn:first-child {
-  *margin-left: 0;
-}
-.btn:hover {
-  color: #333333;
-  text-decoration: none;
-  background-color: #e6e6e6;
-  *background-color: #d9d9d9;
-  /* Buttons in IE7 don't get borders, so darken on hover */
 
-  background-position: 0 -15px;
-  -webkit-transition: background-position 0.1s linear;
-  -moz-transition: background-position 0.1s linear;
-  -ms-transition: background-position 0.1s linear;
-  -o-transition: background-position 0.1s linear;
-  transition: background-position 0.1s linear;
+.table-bordered th,
+.table-bordered td {
+  border-left: 1px solid #dddddd;
 }
-.btn:focus {
-  outline: thin dotted #333;
-  outline: 5px auto -webkit-focus-ring-color;
-  outline-offset: -2px;
-}
-.btn.active,
-.btn:active {
-  background-color: #e6e6e6;
-  background-color: #d9d9d9 \9;
-  background-image: none;
-  outline: 0;
-  -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-  -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-  box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-}
-.btn.disabled,
-.btn[disabled] {
-  cursor: default;
-  background-color: #e6e6e6;
-  background-image: none;
-  opacity: 0.65;
-  filter: alpha(opacity=65);
-  -webkit-box-shadow: none;
-  -moz-box-shadow: none;
-  box-shadow: none;
-}
-.btn-large {
-  padding: 9px 14px;
-  font-size: 15px;
-  line-height: normal;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-}
-.btn-large [class^="icon-"] {
-  margin-top: 1px;
-}
-.btn-small {
-  padding: 5px 9px;
-  font-size: 11px;
-  line-height: 16px;
-}
-.btn-small [class^="icon-"] {
-  margin-top: -1px;
-}
-.btn-mini {
-  padding: 2px 6px;
-  font-size: 11px;
-  line-height: 14px;
-}
-.btn-primary,
-.btn-primary:hover,
-.btn-warning,
-.btn-warning:hover,
-.btn-danger,
-.btn-danger:hover,
-.btn-success,
-.btn-success:hover,
-.btn-info,
-.btn-info:hover,
-.btn-inverse,
-.btn-inverse:hover {
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-}
-.btn-primary.active,
-.btn-warning.active,
-.btn-danger.active,
-.btn-success.active,
-.btn-info.active,
-.btn-inverse.active {
-  color: rgba(255, 255, 255, 0.75);
-}
-.btn {
-  border-color: #ccc;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-}
-.btn-primary {
-  background-color: #aa2011;
-  background-image: -moz-linear-gradient(top, #aa1111, #aa3711);
-  background-image: -ms-linear-gradient(top, #aa1111, #aa3711);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#aa1111), to(#aa3711));
-  background-image: -webkit-linear-gradient(top, #aa1111, #aa3711);
-  background-image: -o-linear-gradient(top, #aa1111, #aa3711);
-  background-image: linear-gradient(top, #aa1111, #aa3711);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#aa1111', endColorstr='#aa3711', GradientType=0);
-  border-color: #aa3711 #aa3711 #64210a;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  *background-color: #aa3711;
-  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
 
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+.table-bordered caption + thead tr:first-child th,
+.table-bordered caption + tbody tr:first-child th,
+.table-bordered caption + tbody tr:first-child td,
+.table-bordered colgroup + thead tr:first-child th,
+.table-bordered colgroup + tbody tr:first-child th,
+.table-bordered colgroup + tbody tr:first-child td,
+.table-bordered thead:first-child tr:first-child th,
+.table-bordered tbody:first-child tr:first-child th,
+.table-bordered tbody:first-child tr:first-child td {
+  border-top: 0;
 }
-.btn-primary:hover,
-.btn-primary:active,
-.btn-primary.active,
-.btn-primary.disabled,
-.btn-primary[disabled] {
-  background-color: #aa3711;
-  *background-color: #93300f;
-}
-.btn-primary:active,
-.btn-primary.active {
-  background-color: #7c280c \9;
-}
-.btn-warning {
-  background-color: #faa732;
-  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
-  background-image: -ms-linear-gradient(top, #fbb450, #f89406);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
-  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
-  background-image: -o-linear-gradient(top, #fbb450, #f89406);
-  background-image: linear-gradient(top, #fbb450, #f89406);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);
-  border-color: #f89406 #f89406 #ad6704;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  *background-color: #f89406;
-  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
 
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+.table-bordered thead:first-child tr:first-child > th:first-child,
+.table-bordered tbody:first-child tr:first-child > td:first-child,
+.table-bordered tbody:first-child tr:first-child > th:first-child {
+  -webkit-border-top-left-radius: 4px;
+          border-top-left-radius: 4px;
+  -moz-border-radius-topleft: 4px;
 }
-.btn-warning:hover,
-.btn-warning:active,
-.btn-warning.active,
-.btn-warning.disabled,
-.btn-warning[disabled] {
-  background-color: #f89406;
-  *background-color: #df8505;
-}
-.btn-warning:active,
-.btn-warning.active {
-  background-color: #c67605 \9;
-}
-.btn-danger {
-  background-color: #da4f49;
-  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
-  background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
-  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
-  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
-  background-image: linear-gradient(top, #ee5f5b, #bd362f);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);
-  border-color: #bd362f #bd362f #802420;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  *background-color: #bd362f;
-  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
 
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+.table-bordered thead:first-child tr:first-child > th:last-child,
+.table-bordered tbody:first-child tr:first-child > td:last-child,
+.table-bordered tbody:first-child tr:first-child > th:last-child {
+  -webkit-border-top-right-radius: 4px;
+          border-top-right-radius: 4px;
+  -moz-border-radius-topright: 4px;
 }
-.btn-danger:hover,
-.btn-danger:active,
-.btn-danger.active,
-.btn-danger.disabled,
-.btn-danger[disabled] {
-  background-color: #bd362f;
-  *background-color: #a9302a;
-}
-.btn-danger:active,
-.btn-danger.active {
-  background-color: #942a25 \9;
-}
-.btn-success {
-  background-color: #5bb75b;
-  background-image: -moz-linear-gradient(top, #62c462, #51a351);
-  background-image: -ms-linear-gradient(top, #62c462, #51a351);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
-  background-image: -webkit-linear-gradient(top, #62c462, #51a351);
-  background-image: -o-linear-gradient(top, #62c462, #51a351);
-  background-image: linear-gradient(top, #62c462, #51a351);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);
-  border-color: #51a351 #51a351 #387038;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  *background-color: #51a351;
-  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
 
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+.table-bordered thead:last-child tr:last-child > th:first-child,
+.table-bordered tbody:last-child tr:last-child > td:first-child,
+.table-bordered tbody:last-child tr:last-child > th:first-child,
+.table-bordered tfoot:last-child tr:last-child > td:first-child,
+.table-bordered tfoot:last-child tr:last-child > th:first-child {
+  -webkit-border-bottom-left-radius: 4px;
+          border-bottom-left-radius: 4px;
+  -moz-border-radius-bottomleft: 4px;
 }
-.btn-success:hover,
-.btn-success:active,
-.btn-success.active,
-.btn-success.disabled,
-.btn-success[disabled] {
-  background-color: #51a351;
-  *background-color: #499249;
-}
-.btn-success:active,
-.btn-success.active {
-  background-color: #408140 \9;
-}
-.btn-info {
-  background-color: #49afcd;
-  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
-  background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
-  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
-  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
-  background-image: linear-gradient(top, #5bc0de, #2f96b4);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);
-  border-color: #2f96b4 #2f96b4 #1f6377;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  *background-color: #2f96b4;
-  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
 
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+.table-bordered thead:last-child tr:last-child > th:last-child,
+.table-bordered tbody:last-child tr:last-child > td:last-child,
+.table-bordered tbody:last-child tr:last-child > th:last-child,
+.table-bordered tfoot:last-child tr:last-child > td:last-child,
+.table-bordered tfoot:last-child tr:last-child > th:last-child {
+  -webkit-border-bottom-right-radius: 4px;
+          border-bottom-right-radius: 4px;
+  -moz-border-radius-bottomright: 4px;
 }
-.btn-info:hover,
-.btn-info:active,
-.btn-info.active,
-.btn-info.disabled,
-.btn-info[disabled] {
-  background-color: #2f96b4;
-  *background-color: #2a85a0;
-}
-.btn-info:active,
-.btn-info.active {
-  background-color: #24748c \9;
-}
-.btn-inverse {
-  background-color: #414141;
-  background-image: -moz-linear-gradient(top, #555555, #222222);
-  background-image: -ms-linear-gradient(top, #555555, #222222);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));
-  background-image: -webkit-linear-gradient(top, #555555, #222222);
-  background-image: -o-linear-gradient(top, #555555, #222222);
-  background-image: linear-gradient(top, #555555, #222222);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);
-  border-color: #222222 #222222 #000000;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  *background-color: #222222;
-  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
 
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+.table-bordered tfoot + tbody:last-child tr:last-child td:first-child {
+  -webkit-border-bottom-left-radius: 0;
+          border-bottom-left-radius: 0;
+  -moz-border-radius-bottomleft: 0;
 }
-.btn-inverse:hover,
-.btn-inverse:active,
-.btn-inverse.active,
-.btn-inverse.disabled,
-.btn-inverse[disabled] {
-  background-color: #222222;
-  *background-color: #151515;
+
+.table-bordered tfoot + tbody:last-child tr:last-child td:last-child {
+  -webkit-border-bottom-right-radius: 0;
+          border-bottom-right-radius: 0;
+  -moz-border-radius-bottomright: 0;
 }
-.btn-inverse:active,
-.btn-inverse.active {
-  background-color: #080808 \9;
+
+.table-bordered caption + thead tr:first-child th:first-child,
+.table-bordered caption + tbody tr:first-child td:first-child,
+.table-bordered colgroup + thead tr:first-child th:first-child,
+.table-bordered colgroup + tbody tr:first-child td:first-child {
+  -webkit-border-top-left-radius: 4px;
+          border-top-left-radius: 4px;
+  -moz-border-radius-topleft: 4px;
 }
-button.btn,
-input[type="submit"].btn {
-  *padding-top: 2px;
-  *padding-bottom: 2px;
+
+.table-bordered caption + thead tr:first-child th:last-child,
+.table-bordered caption + tbody tr:first-child td:last-child,
+.table-bordered colgroup + thead tr:first-child th:last-child,
+.table-bordered colgroup + tbody tr:first-child td:last-child {
+  -webkit-border-top-right-radius: 4px;
+          border-top-right-radius: 4px;
+  -moz-border-radius-topright: 4px;
 }
-button.btn::-moz-focus-inner,
-input[type="submit"].btn::-moz-focus-inner {
-  padding: 0;
-  border: 0;
+
+.table-striped tbody > tr:nth-child(odd) > td,
+.table-striped tbody > tr:nth-child(odd) > th {
+  background-color: #f9f9f9;
 }
-button.btn.btn-large,
-input[type="submit"].btn.btn-large {
-  *padding-top: 7px;
-  *padding-bottom: 7px;
+
+.table-hover tbody tr:hover > td,
+.table-hover tbody tr:hover > th {
+  background-color: #f5f5f5;
 }
-button.btn.btn-small,
-input[type="submit"].btn.btn-small {
-  *padding-top: 3px;
-  *padding-bottom: 3px;
+
+table td[class*="span"],
+table th[class*="span"],
+.row-fluid table td[class*="span"],
+.row-fluid table th[class*="span"] {
+  display: table-cell;
+  float: none;
+  margin-left: 0;
 }
-button.btn.btn-mini,
-input[type="submit"].btn.btn-mini {
-  *padding-top: 1px;
-  *padding-bottom: 1px;
+
+.table td.span1,
+.table th.span1 {
+  float: none;
+  width: 44px;
+  margin-left: 0;
 }
+
+.table td.span2,
+.table th.span2 {
+  float: none;
+  width: 124px;
+  margin-left: 0;
+}
+
+.table td.span3,
+.table th.span3 {
+  float: none;
+  width: 204px;
+  margin-left: 0;
+}
+
+.table td.span4,
+.table th.span4 {
+  float: none;
+  width: 284px;
+  margin-left: 0;
+}
+
+.table td.span5,
+.table th.span5 {
+  float: none;
+  width: 364px;
+  margin-left: 0;
+}
+
+.table td.span6,
+.table th.span6 {
+  float: none;
+  width: 444px;
+  margin-left: 0;
+}
+
+.table td.span7,
+.table th.span7 {
+  float: none;
+  width: 524px;
+  margin-left: 0;
+}
+
+.table td.span8,
+.table th.span8 {
+  float: none;
+  width: 604px;
+  margin-left: 0;
+}
+
+.table td.span9,
+.table th.span9 {
+  float: none;
+  width: 684px;
+  margin-left: 0;
+}
+
+.table td.span10,
+.table th.span10 {
+  float: none;
+  width: 764px;
+  margin-left: 0;
+}
+
+.table td.span11,
+.table th.span11 {
+  float: none;
+  width: 844px;
+  margin-left: 0;
+}
+
+.table td.span12,
+.table th.span12 {
+  float: none;
+  width: 924px;
+  margin-left: 0;
+}
+
+.table tbody tr.success > td {
+  background-color: #dff0d8;
+}
+
+.table tbody tr.error > td {
+  background-color: #f2dede;
+}
+
+.table tbody tr.warning > td {
+  background-color: #fcf8e3;
+}
+
+.table tbody tr.info > td {
+  background-color: #d9edf7;
+}
+
+.table-hover tbody tr.success:hover > td {
+  background-color: #d0e9c6;
+}
+
+.table-hover tbody tr.error:hover > td {
+  background-color: #ebcccc;
+}
+
+.table-hover tbody tr.warning:hover > td {
+  background-color: #faf2cc;
+}
+
+.table-hover tbody tr.info:hover > td {
+  background-color: #c4e3f3;
+}
+
 [class^="icon-"],
 [class*=" icon-"] {
   display: inline-block;
   width: 14px;
   height: 14px;
+  margin-top: 1px;
   *margin-right: .3em;
   line-height: 14px;
   vertical-align: text-top;
@@ -1879,1993 +2286,606 @@
   background-position: 14px 14px;
   background-repeat: no-repeat;
 }
-[class^="icon-"]:last-child,
-[class*=" icon-"]:last-child {
-  *margin-left: 0;
-}
-.icon-white {
+
+/* White icons with optional class, or on hover/focus/active states of certain elements */
+
+.icon-white,
+.nav-pills > .active > a > [class^="icon-"],
+.nav-pills > .active > a > [class*=" icon-"],
+.nav-list > .active > a > [class^="icon-"],
+.nav-list > .active > a > [class*=" icon-"],
+.navbar-inverse .nav > .active > a > [class^="icon-"],
+.navbar-inverse .nav > .active > a > [class*=" icon-"],
+.dropdown-menu > li > a:hover > [class^="icon-"],
+.dropdown-menu > li > a:focus > [class^="icon-"],
+.dropdown-menu > li > a:hover > [class*=" icon-"],
+.dropdown-menu > li > a:focus > [class*=" icon-"],
+.dropdown-menu > .active > a > [class^="icon-"],
+.dropdown-menu > .active > a > [class*=" icon-"],
+.dropdown-submenu:hover > a > [class^="icon-"],
+.dropdown-submenu:focus > a > [class^="icon-"],
+.dropdown-submenu:hover > a > [class*=" icon-"],
+.dropdown-submenu:focus > a > [class*=" icon-"] {
   background-image: url("../images/glyphicons-halflings-white.png");
 }
+
 .icon-glass {
   background-position: 0      0;
 }
+
 .icon-music {
   background-position: -24px 0;
 }
+
 .icon-search {
   background-position: -48px 0;
 }
+
 .icon-envelope {
   background-position: -72px 0;
 }
+
 .icon-heart {
   background-position: -96px 0;
 }
+
 .icon-star {
   background-position: -120px 0;
 }
+
 .icon-star-empty {
   background-position: -144px 0;
 }
+
 .icon-user {
   background-position: -168px 0;
 }
+
 .icon-film {
   background-position: -192px 0;
 }
+
 .icon-th-large {
   background-position: -216px 0;
 }
+
 .icon-th {
   background-position: -240px 0;
 }
+
 .icon-th-list {
   background-position: -264px 0;
 }
+
 .icon-ok {
   background-position: -288px 0;
 }
+
 .icon-remove {
   background-position: -312px 0;
 }
+
 .icon-zoom-in {
   background-position: -336px 0;
 }
+
 .icon-zoom-out {
   background-position: -360px 0;
 }
+
 .icon-off {
   background-position: -384px 0;
 }
+
 .icon-signal {
   background-position: -408px 0;
 }
+
 .icon-cog {
   background-position: -432px 0;
 }
+
 .icon-trash {
   background-position: -456px 0;
 }
+
 .icon-home {
   background-position: 0 -24px;
 }
+
 .icon-file {
   background-position: -24px -24px;
 }
+
 .icon-time {
   background-position: -48px -24px;
 }
+
 .icon-road {
   background-position: -72px -24px;
 }
+
 .icon-download-alt {
   background-position: -96px -24px;
 }
+
 .icon-download {
   background-position: -120px -24px;
 }
+
 .icon-upload {
   background-position: -144px -24px;
 }
+
 .icon-inbox {
   background-position: -168px -24px;
 }
+
 .icon-play-circle {
   background-position: -192px -24px;
 }
+
 .icon-repeat {
   background-position: -216px -24px;
 }
+
 .icon-refresh {
   background-position: -240px -24px;
 }
+
 .icon-list-alt {
   background-position: -264px -24px;
 }
+
 .icon-lock {
   background-position: -287px -24px;
 }
+
 .icon-flag {
   background-position: -312px -24px;
 }
+
 .icon-headphones {
   background-position: -336px -24px;
 }
+
 .icon-volume-off {
   background-position: -360px -24px;
 }
+
 .icon-volume-down {
   background-position: -384px -24px;
 }
+
 .icon-volume-up {
   background-position: -408px -24px;
 }
+
 .icon-qrcode {
   background-position: -432px -24px;
 }
+
 .icon-barcode {
   background-position: -456px -24px;
 }
+
 .icon-tag {
   background-position: 0 -48px;
 }
+
 .icon-tags {
   background-position: -25px -48px;
 }
+
 .icon-book {
   background-position: -48px -48px;
 }
+
 .icon-bookmark {
   background-position: -72px -48px;
 }
+
 .icon-print {
   background-position: -96px -48px;
 }
+
 .icon-camera {
   background-position: -120px -48px;
 }
+
 .icon-font {
   background-position: -144px -48px;
 }
+
 .icon-bold {
   background-position: -167px -48px;
 }
+
 .icon-italic {
   background-position: -192px -48px;
 }
+
 .icon-text-height {
   background-position: -216px -48px;
 }
+
 .icon-text-width {
   background-position: -240px -48px;
 }
+
 .icon-align-left {
   background-position: -264px -48px;
 }
+
 .icon-align-center {
   background-position: -288px -48px;
 }
+
 .icon-align-right {
   background-position: -312px -48px;
 }
+
 .icon-align-justify {
   background-position: -336px -48px;
 }
+
 .icon-list {
   background-position: -360px -48px;
 }
+
 .icon-indent-left {
   background-position: -384px -48px;
 }
+
 .icon-indent-right {
   background-position: -408px -48px;
 }
+
 .icon-facetime-video {
   background-position: -432px -48px;
 }
+
 .icon-picture {
   background-position: -456px -48px;
 }
+
 .icon-pencil {
   background-position: 0 -72px;
 }
+
 .icon-map-marker {
   background-position: -24px -72px;
 }
+
 .icon-adjust {
   background-position: -48px -72px;
 }
+
 .icon-tint {
   background-position: -72px -72px;
 }
+
 .icon-edit {
   background-position: -96px -72px;
 }
+
 .icon-share {
   background-position: -120px -72px;
 }
+
 .icon-check {
   background-position: -144px -72px;
 }
+
 .icon-move {
   background-position: -168px -72px;
 }
+
 .icon-step-backward {
   background-position: -192px -72px;
 }
+
 .icon-fast-backward {
   background-position: -216px -72px;
 }
+
 .icon-backward {
   background-position: -240px -72px;
 }
+
 .icon-play {
   background-position: -264px -72px;
 }
+
 .icon-pause {
   background-position: -288px -72px;
 }
+
 .icon-stop {
   background-position: -312px -72px;
 }
+
 .icon-forward {
   background-position: -336px -72px;
 }
+
 .icon-fast-forward {
   background-position: -360px -72px;
 }
+
 .icon-step-forward {
   background-position: -384px -72px;
 }
+
 .icon-eject {
   background-position: -408px -72px;
 }
+
 .icon-chevron-left {
   background-position: -432px -72px;
 }
+
 .icon-chevron-right {
   background-position: -456px -72px;
 }
+
 .icon-plus-sign {
   background-position: 0 -96px;
 }
+
 .icon-minus-sign {
   background-position: -24px -96px;
 }
+
 .icon-remove-sign {
   background-position: -48px -96px;
 }
+
 .icon-ok-sign {
   background-position: -72px -96px;
 }
+
 .icon-question-sign {
   background-position: -96px -96px;
 }
+
 .icon-info-sign {
   background-position: -120px -96px;
 }
+
 .icon-screenshot {
   background-position: -144px -96px;
 }
+
 .icon-remove-circle {
   background-position: -168px -96px;
 }
+
 .icon-ok-circle {
   background-position: -192px -96px;
 }
+
 .icon-ban-circle {
   background-position: -216px -96px;
 }
+
 .icon-arrow-left {
   background-position: -240px -96px;
 }
+
 .icon-arrow-right {
   background-position: -264px -96px;
 }
+
 .icon-arrow-up {
   background-position: -289px -96px;
 }
+
 .icon-arrow-down {
   background-position: -312px -96px;
 }
+
 .icon-share-alt {
   background-position: -336px -96px;
 }
+
 .icon-resize-full {
   background-position: -360px -96px;
 }
+
 .icon-resize-small {
   background-position: -384px -96px;
 }
+
 .icon-plus {
   background-position: -408px -96px;
 }
+
 .icon-minus {
   background-position: -433px -96px;
 }
+
 .icon-asterisk {
   background-position: -456px -96px;
 }
+
 .icon-exclamation-sign {
   background-position: 0 -120px;
 }
+
 .icon-gift {
   background-position: -24px -120px;
 }
+
 .icon-leaf {
   background-position: -48px -120px;
 }
+
 .icon-fire {
   background-position: -72px -120px;
 }
+
 .icon-eye-open {
   background-position: -96px -120px;
 }
+
 .icon-eye-close {
   background-position: -120px -120px;
 }
+
 .icon-warning-sign {
   background-position: -144px -120px;
 }
+
 .icon-plane {
   background-position: -168px -120px;
 }
+
 .icon-calendar {
   background-position: -192px -120px;
 }
+
 .icon-random {
+  width: 16px;
   background-position: -216px -120px;
 }
+
 .icon-comment {
   background-position: -240px -120px;
 }
+
 .icon-magnet {
   background-position: -264px -120px;
 }
+
 .icon-chevron-up {
   background-position: -288px -120px;
 }
+
 .icon-chevron-down {
   background-position: -313px -119px;
 }
+
 .icon-retweet {
   background-position: -336px -120px;
 }
+
 .icon-shopping-cart {
   background-position: -360px -120px;
 }
+
 .icon-folder-close {
+  width: 16px;
   background-position: -384px -120px;
 }
+
 .icon-folder-open {
+  width: 16px;
   background-position: -408px -120px;
 }
+
 .icon-resize-vertical {
   background-position: -432px -119px;
 }
+
 .icon-resize-horizontal {
   background-position: -456px -118px;
 }
+
 .icon-hdd {
   background-position: 0 -144px;
 }
+
 .icon-bullhorn {
   background-position: -24px -144px;
 }
+
 .icon-bell {
   background-position: -48px -144px;
 }
+
 .icon-certificate {
   background-position: -72px -144px;
 }
+
 .icon-thumbs-up {
   background-position: -96px -144px;
 }
+
 .icon-thumbs-down {
   background-position: -120px -144px;
 }
+
 .icon-hand-right {
   background-position: -144px -144px;
 }
+
 .icon-hand-left {
   background-position: -168px -144px;
 }
+
 .icon-hand-up {
   background-position: -192px -144px;
 }
+
 .icon-hand-down {
   background-position: -216px -144px;
 }
+
 .icon-circle-arrow-right {
   background-position: -240px -144px;
 }
+
 .icon-circle-arrow-left {
   background-position: -264px -144px;
 }
+
 .icon-circle-arrow-up {
   background-position: -288px -144px;
 }
+
 .icon-circle-arrow-down {
   background-position: -312px -144px;
 }
+
 .icon-globe {
   background-position: -336px -144px;
 }
+
 .icon-wrench {
   background-position: -360px -144px;
 }
+
 .icon-tasks {
   background-position: -384px -144px;
 }
+
 .icon-filter {
   background-position: -408px -144px;
 }
+
 .icon-briefcase {
   background-position: -432px -144px;
 }
+
 .icon-fullscreen {
   background-position: -456px -144px;
 }
-.btn-group {
-  position: relative;
-  *zoom: 1;
-  *margin-left: .3em;
-}
-.btn-group:before,
-.btn-group:after {
-  display: table;
-  content: "";
-}
-.btn-group:after {
-  clear: both;
-}
-.btn-group:first-child {
-  *margin-left: 0;
-}
-.btn-group + .btn-group {
-  margin-left: 5px;
-}
-.btn-toolbar {
-  margin-top: 9px;
-  margin-bottom: 9px;
-}
-.btn-toolbar .btn-group {
-  display: inline-block;
-  *display: inline;
-  /* IE7 inline-block hack */
 
-  *zoom: 1;
-}
-.btn-group > .btn {
-  position: relative;
-  float: left;
-  margin-left: -1px;
-  -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
-}
-.btn-group > .btn:first-child {
-  margin-left: 0;
-  -webkit-border-top-left-radius: 4px;
-  -moz-border-radius-topleft: 4px;
-  border-top-left-radius: 4px;
-  -webkit-border-bottom-left-radius: 4px;
-  -moz-border-radius-bottomleft: 4px;
-  border-bottom-left-radius: 4px;
-}
-.btn-group > .btn:last-child,
-.btn-group > .dropdown-toggle {
-  -webkit-border-top-right-radius: 4px;
-  -moz-border-radius-topright: 4px;
-  border-top-right-radius: 4px;
-  -webkit-border-bottom-right-radius: 4px;
-  -moz-border-radius-bottomright: 4px;
-  border-bottom-right-radius: 4px;
-}
-.btn-group > .btn.large:first-child {
-  margin-left: 0;
-  -webkit-border-top-left-radius: 6px;
-  -moz-border-radius-topleft: 6px;
-  border-top-left-radius: 6px;
-  -webkit-border-bottom-left-radius: 6px;
-  -moz-border-radius-bottomleft: 6px;
-  border-bottom-left-radius: 6px;
-}
-.btn-group > .btn.large:last-child,
-.btn-group > .large.dropdown-toggle {
-  -webkit-border-top-right-radius: 6px;
-  -moz-border-radius-topright: 6px;
-  border-top-right-radius: 6px;
-  -webkit-border-bottom-right-radius: 6px;
-  -moz-border-radius-bottomright: 6px;
-  border-bottom-right-radius: 6px;
-}
-.btn-group > .btn:hover,
-.btn-group > .btn:focus,
-.btn-group > .btn:active,
-.btn-group > .btn.active {
-  z-index: 2;
-}
-.btn-group .dropdown-toggle:active,
-.btn-group.open .dropdown-toggle {
-  outline: 0;
-}
-.btn-group > .dropdown-toggle {
-  padding-left: 8px;
-  padding-right: 8px;
-  -webkit-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  -moz-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-  *padding-top: 4px;
-  *padding-bottom: 4px;
-}
-.btn-group > .btn-mini.dropdown-toggle {
-  padding-left: 5px;
-  padding-right: 5px;
-}
-.btn-group > .btn-small.dropdown-toggle {
-  *padding-top: 4px;
-  *padding-bottom: 4px;
-}
-.btn-group > .btn-large.dropdown-toggle {
-  padding-left: 12px;
-  padding-right: 12px;
-}
-.btn-group.open .dropdown-toggle {
-  background-image: none;
-  -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-  -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-  box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);
-}
-.btn-group.open .btn.dropdown-toggle {
-  background-color: #e6e6e6;
-}
-.btn-group.open .btn-primary.dropdown-toggle {
-  background-color: #aa3711;
-}
-.btn-group.open .btn-warning.dropdown-toggle {
-  background-color: #f89406;
-}
-.btn-group.open .btn-danger.dropdown-toggle {
-  background-color: #bd362f;
-}
-.btn-group.open .btn-success.dropdown-toggle {
-  background-color: #51a351;
-}
-.btn-group.open .btn-info.dropdown-toggle {
-  background-color: #2f96b4;
-}
-.btn-group.open .btn-inverse.dropdown-toggle {
-  background-color: #222222;
-}
-.btn .caret {
-  margin-top: 7px;
-  margin-left: 0;
-}
-.btn:hover .caret,
-.open.btn-group .caret {
-  opacity: 1;
-  filter: alpha(opacity=100);
-}
-.btn-mini .caret {
-  margin-top: 5px;
-}
-.btn-small .caret {
-  margin-top: 6px;
-}
-.btn-large .caret {
-  margin-top: 6px;
-  border-left-width: 5px;
-  border-right-width: 5px;
-  border-top-width: 5px;
-}
-.dropup .btn-large .caret {
-  border-bottom: 5px solid #000000;
-  border-top: 0;
-}
-.btn-primary .caret,
-.btn-warning .caret,
-.btn-danger .caret,
-.btn-info .caret,
-.btn-success .caret,
-.btn-inverse .caret {
-  border-top-color: #ffffff;
-  border-bottom-color: #ffffff;
-  opacity: 0.75;
-  filter: alpha(opacity=75);
-}
-.nav {
-  margin-left: 0;
-  margin-bottom: 18px;
-  list-style: none;
-}
-.nav > li > a {
-  display: block;
-}
-.nav > li > a:hover {
-  text-decoration: none;
-  background-color: #eeeeee;
-}
-.nav > .pull-right {
-  float: right;
-}
-.nav .nav-header {
-  display: block;
-  padding: 3px 15px;
-  font-size: 11px;
-  font-weight: bold;
-  line-height: 18px;
-  color: #EBEBEB;
-  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-  text-transform: uppercase;
-}
-.nav li + .nav-header {
-  margin-top: 9px;
-}
-.nav-list {
-  padding-left: 15px;
-  padding-right: 15px;
-  margin-bottom: 0;
-}
-.nav-list > li > a,
-.nav-list .nav-header {
-  margin-left: -15px;
-  margin-right: -15px;
-  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-}
-.nav-list > li > a {
-  padding: 3px 15px;
-}
-.nav-list > .active > a,
-.nav-list > .active > a:hover {
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
-  background-color: #aa1111;
-}
-.nav-list [class^="icon-"] {
-  margin-right: 2px;
-}
-.nav-list .divider {
-  *width: 100%;
-  height: 1px;
-  margin: 8px 1px;
-  *margin: -5px 0 5px;
-  overflow: hidden;
-  background-color: #e5e5e5;
-  border-bottom: 1px solid #ffffff;
-}
-.nav-tabs,
-.nav-pills {
-  *zoom: 1;
-}
-.nav-tabs:before,
-.nav-pills:before,
-.nav-tabs:after,
-.nav-pills:after {
-  display: table;
-  content: "";
-}
-.nav-tabs:after,
-.nav-pills:after {
-  clear: both;
-}
-.nav-tabs > li,
-.nav-pills > li {
-  float: left;
-}
-.nav-tabs > li > a,
-.nav-pills > li > a {
-  padding-right: 12px;
-  padding-left: 12px;
-  margin-right: 2px;
-  line-height: 14px;
-}
-.nav-tabs {
-  border-bottom: 1px solid #ddd;
-}
-.nav-tabs > li {
-  margin-bottom: -1px;
-}
-.nav-tabs > li > a {
-  padding-top: 8px;
-  padding-bottom: 8px;
-  line-height: 18px;
-  border: 1px solid transparent;
-  -webkit-border-radius: 4px 4px 0 0;
-  -moz-border-radius: 4px 4px 0 0;
-  border-radius: 4px 4px 0 0;
-}
-.nav-tabs > li > a:hover {
-  border-color: #eeeeee #eeeeee #dddddd;
-}
-.nav-tabs > .active > a,
-.nav-tabs > .active > a:hover {
-  color: #555555;
-  background-color: #ffffff;
-  border: 1px solid #ddd;
-  border-bottom-color: transparent;
-  cursor: default;
-}
-.nav-pills > li > a {
-  padding-top: 8px;
-  padding-bottom: 8px;
-  margin-top: 2px;
-  margin-bottom: 2px;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
-}
-.nav-pills > .active > a,
-.nav-pills > .active > a:hover {
-  color: #ffffff;
-  background-color: #aa1111;
-}
-.nav-stacked > li {
-  float: none;
-}
-.nav-stacked > li > a {
-  margin-right: 0;
-}
-.nav-tabs.nav-stacked {
-  border-bottom: 0;
-}
-.nav-tabs.nav-stacked > li > a {
-  border: 1px solid #ddd;
-  -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
-}
-.nav-tabs.nav-stacked > li:first-child > a {
-  -webkit-border-radius: 4px 4px 0 0;
-  -moz-border-radius: 4px 4px 0 0;
-  border-radius: 4px 4px 0 0;
-}
-.nav-tabs.nav-stacked > li:last-child > a {
-  -webkit-border-radius: 0 0 4px 4px;
-  -moz-border-radius: 0 0 4px 4px;
-  border-radius: 0 0 4px 4px;
-}
-.nav-tabs.nav-stacked > li > a:hover {
-  border-color: #ddd;
-  z-index: 2;
-}
-.nav-pills.nav-stacked > li > a {
-  margin-bottom: 3px;
-}
-.nav-pills.nav-stacked > li:last-child > a {
-  margin-bottom: 1px;
-}
-.nav-tabs .dropdown-menu {
-  -webkit-border-radius: 0 0 5px 5px;
-  -moz-border-radius: 0 0 5px 5px;
-  border-radius: 0 0 5px 5px;
-}
-.nav-pills .dropdown-menu {
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.nav-tabs .dropdown-toggle .caret,
-.nav-pills .dropdown-toggle .caret {
-  border-top-color: #aa1111;
-  border-bottom-color: #aa1111;
-  margin-top: 6px;
-}
-.nav-tabs .dropdown-toggle:hover .caret,
-.nav-pills .dropdown-toggle:hover .caret {
-  border-top-color: #640a0a;
-  border-bottom-color: #640a0a;
-}
-.nav-tabs .active .dropdown-toggle .caret,
-.nav-pills .active .dropdown-toggle .caret {
-  border-top-color: #333333;
-  border-bottom-color: #333333;
-}
-.nav > .dropdown.active > a:hover {
-  color: #000000;
-  cursor: pointer;
-}
-.nav-tabs .open .dropdown-toggle,
-.nav-pills .open .dropdown-toggle,
-.nav > li.dropdown.open.active > a:hover {
-  color: #ffffff;
-  background-color: #EBEBEB;
-  border-color: #EBEBEB;
-}
-.nav li.dropdown.open .caret,
-.nav li.dropdown.open.active .caret,
-.nav li.dropdown.open a:hover .caret {
-  border-top-color: #ffffff;
-  border-bottom-color: #ffffff;
-  opacity: 1;
-  filter: alpha(opacity=100);
-}
-.tabs-stacked .open > a:hover {
-  border-color: #EBEBEB;
-}
-.tabbable {
-  *zoom: 1;
-}
-.tabbable:before,
-.tabbable:after {
-  display: table;
-  content: "";
-}
-.tabbable:after {
-  clear: both;
-}
-.tab-content {
-  overflow: auto;
-}
-.tabs-below > .nav-tabs,
-.tabs-right > .nav-tabs,
-.tabs-left > .nav-tabs {
-  border-bottom: 0;
-}
-.tab-content > .tab-pane,
-.pill-content > .pill-pane {
-  display: none;
-}
-.tab-content > .active,
-.pill-content > .active {
-  display: block;
-}
-.tabs-below > .nav-tabs {
-  border-top: 1px solid #ddd;
-}
-.tabs-below > .nav-tabs > li {
-  margin-top: -1px;
-  margin-bottom: 0;
-}
-.tabs-below > .nav-tabs > li > a {
-  -webkit-border-radius: 0 0 4px 4px;
-  -moz-border-radius: 0 0 4px 4px;
-  border-radius: 0 0 4px 4px;
-}
-.tabs-below > .nav-tabs > li > a:hover {
-  border-bottom-color: transparent;
-  border-top-color: #ddd;
-}
-.tabs-below > .nav-tabs > .active > a,
-.tabs-below > .nav-tabs > .active > a:hover {
-  border-color: transparent #ddd #ddd #ddd;
-}
-.tabs-left > .nav-tabs > li,
-.tabs-right > .nav-tabs > li {
-  float: none;
-}
-.tabs-left > .nav-tabs > li > a,
-.tabs-right > .nav-tabs > li > a {
-  min-width: 74px;
-  margin-right: 0;
-  margin-bottom: 3px;
-}
-.tabs-left > .nav-tabs {
-  float: left;
-  margin-right: 19px;
-  border-right: 1px solid #ddd;
-}
-.tabs-left > .nav-tabs > li > a {
-  margin-right: -1px;
-  -webkit-border-radius: 4px 0 0 4px;
-  -moz-border-radius: 4px 0 0 4px;
-  border-radius: 4px 0 0 4px;
-}
-.tabs-left > .nav-tabs > li > a:hover {
-  border-color: #eeeeee #dddddd #eeeeee #eeeeee;
-}
-.tabs-left > .nav-tabs .active > a,
-.tabs-left > .nav-tabs .active > a:hover {
-  border-color: #ddd transparent #ddd #ddd;
-  *border-right-color: #ffffff;
-}
-.tabs-right > .nav-tabs {
-  float: right;
-  margin-left: 19px;
-  border-left: 1px solid #ddd;
-}
-.tabs-right > .nav-tabs > li > a {
-  margin-left: -1px;
-  -webkit-border-radius: 0 4px 4px 0;
-  -moz-border-radius: 0 4px 4px 0;
-  border-radius: 0 4px 4px 0;
-}
-.tabs-right > .nav-tabs > li > a:hover {
-  border-color: #eeeeee #eeeeee #eeeeee #dddddd;
-}
-.tabs-right > .nav-tabs .active > a,
-.tabs-right > .nav-tabs .active > a:hover {
-  border-color: #ddd #ddd #ddd transparent;
-  *border-left-color: #ffffff;
-}
-.navbar {
-  *position: relative;
-  *z-index: 2;
-  overflow: visible;
-  margin-bottom: 18px;
-}
-.navbar-inner {
-  min-height: 60px;
-  padding-left: 20px;
-  padding-right: 20px;
-  
-/*  background-color: #2c2c2c;
-  background-image: -moz-linear-gradient(top, #333333, #222222);
-  background-image: -ms-linear-gradient(top, #333333, #222222);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));
-  background-image: -webkit-linear-gradient(top, #333333, #222222);
-  background-image: -o-linear-gradient(top, #333333, #222222);
-  background-image: linear-gradient(top, #333333, #222222);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);*/
-background: rgb(255,255,255); /* Old browsers */
-/* IE9 SVG, needs conditional override of 'filter' to 'none' */
-background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlYmViZWIiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-background: -moz-linear-gradient(top,  rgba(255,255,255,1) 0%, rgba(235,235,235,1) 100%); /* FF3.6+ */
-background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(235,235,235,1))); /* Chrome,Safari4+ */
-background: -webkit-linear-gradient(top,  rgba(255,255,255,1) 0%,rgba(235,235,235,1) 100%); /* Chrome10+,Safari5.1+ */
-background: -o-linear-gradient(top,  rgba(255,255,255,1) 0%,rgba(235,235,235,1) 100%); /* Opera 11.10+ */
-background: -ms-linear-gradient(top,  rgba(255,255,255,1) 0%,rgba(235,235,235,1) 100%); /* IE10+ */
-background: linear-gradient(top,  rgba(255,255,255,1) 0%,rgba(235,235,235,1) 100%); /* W3C */
-filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#ebebeb',GradientType=0 ); /* IE6-8 */
-
-/*  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
-  -moz-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1);
-  box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1); */
-}
-.navbar .container {
-  width: auto;
-}
-.nav-collapse.collapse {
-  height: auto;
-}
-.navbar {
-  color: #EBEBEB;
-}
-.navbar .brand:hover {
-  text-decoration: none;
-}
-.navbar .brand {
-  float: left;
-  display: block;
-  padding: 18px 20px 22px;
-  margin-left: -20px;
-  font-size: 20px;
-  font-weight: 200;
-  line-height: 1;
-  color: #000;
-}
-.navbar .navbar-text {
-  margin-bottom: 0;
-  line-height: 60px;
-}
-.navbar .navbar-link {
-  color: #EBEBEB;
-}
-.navbar .navbar-link:hover {
-  color: #ffffff;
-}
-.navbar .btn,
-.navbar .btn-group {
-  margin-top: 15px;
-}
-.navbar .btn-group .btn {
-  margin: 0;
-}
-.navbar-form {
-  margin-bottom: 0;
-  *zoom: 1;
-}
-.navbar-form:before,
-.navbar-form:after {
-  display: table;
-  content: "";
-}
-.navbar-form:after {
-  clear: both;
-}
-.navbar-form input,
-.navbar-form select,
-.navbar-form .radio,
-.navbar-form .checkbox {
-  margin-top: 15px;
-}
-.navbar-form input,
-.navbar-form select {
-  display: inline-block;
-  margin-bottom: 0;
-}
-.navbar-form input[type="image"],
-.navbar-form input[type="checkbox"],
-.navbar-form input[type="radio"] {
-  margin-top: 3px;
-}
-.navbar-form .input-append,
-.navbar-form .input-prepend {
-  margin-top: 6px;
-  white-space: nowrap;
-}
-.navbar-form .input-append input,
-.navbar-form .input-prepend input {
-  margin-top: 0;
-}
-.navbar-search {
-  position: relative;
-  float: left;
-  margin-top: 16px;
-  margin-bottom: 0;
-}
-.navbar-search .search-query {
-  padding: 4px 9px;
-  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
-  font-size: 13px;
-  font-weight: normal;
-  line-height: 1;
-  color: #ffffff;
-  background-color: #626262;
-  border: 1px solid #151515;
-  -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);
-  -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);
-  box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15);
-  -webkit-transition: none;
-  -moz-transition: none;
-  -ms-transition: none;
-  -o-transition: none;
-  transition: none;
-}
-.navbar-search .search-query:-moz-placeholder {
-  color: #ebebeb;
-}
-.navbar-search .search-query::-webkit-input-placeholder {
-  color: #ebebeb;
-}
-.navbar-search .search-query:focus,
-.navbar-search .search-query.focused {
-  padding: 5px 10px;
-  color: #333333;
-  text-shadow: 0 1px 0 #ffffff;
-  background-color: #ffffff;
-  border: 0;
-  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
-  -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
-  box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
-  outline: 0;
-}
-.navbar-fixed-top,
-.navbar-fixed-bottom {
-  position: fixed;
-  right: 0;
-  left: 0;
-  z-index: 1030;
-  margin-bottom: 0;
-}
-.navbar-fixed-top .navbar-inner,
-.navbar-fixed-bottom .navbar-inner {
-  padding-left: 0;
-  padding-right: 0;
-  -webkit-border-radius: 0;
-  -moz-border-radius: 0;
-  border-radius: 0;
-}
-.navbar-fixed-top .container,
-.navbar-fixed-bottom .container {
-  width: 940px;
-}
-.navbar-fixed-top {
-  top: 0;
-}
-.navbar-fixed-bottom {
-  bottom: 0;
-}
-.navbar .nav {
-  position: relative;
-  left: 0;
-  display: block;
-  float: left;
-  margin: 0 10px 0 0;
-}
-.navbar .nav.pull-right {
-  float: right;
-}
-.navbar .nav > li {
-  display: block;
-  float: left;
-}
-.navbar .nav > li > a {
-  float: none;
-  padding: 19px 10px 21px;
-  line-height: 19px;
-  color: #999;
-  text-decoration: none;
-/*  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);*/
-}
-.navbar .btn {
-  display: inline-block;
-  padding: 4px 10px 4px;
-  margin: 15px 5px 16px;
-  line-height: 18px;
-}
-.navbar .btn-group {
-  margin: 0;
-  padding: 15px 5px 16px;
-}
-.navbar .nav > li > a:hover {
-  background-color: transparent;
-  color: #aa1111;
-  text-decoration: none;
-}
-.navbar .nav .active > a,
-.navbar .nav .active > a:hover {
-  color: #aa1111;
-  text-decoration: none;
-/*  background-color: #EBEBEB;*/
-}
-.navbar .divider-vertical {
-  height: 60px;
-  width: 1px;
-  margin: 0 9px;
-  overflow: hidden;
-  background-color: #222222;
-  border-right: 1px solid #333333;
-}
-.navbar .nav.pull-right {
-  margin-left: 10px;
-  margin-right: 0;
-}
-.navbar .btn-navbar {
-  display: none;
-  float: right;
-  padding: 7px 10px;
-  margin-left: 5px;
-  margin-right: 5px;
-  background-color: #2c2c2c;
-  background-image: -moz-linear-gradient(top, #333333, #222222);
-  background-image: -ms-linear-gradient(top, #333333, #222222);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));
-  background-image: -webkit-linear-gradient(top, #333333, #222222);
-  background-image: -o-linear-gradient(top, #333333, #222222);
-  background-image: linear-gradient(top, #333333, #222222);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);
-  border-color: #222222 #222222 #000000;
-  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
-  *background-color: #222222;
-  /* Darken IE7 buttons by default so they stand out more given they won't have borders */
-
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
-  -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
-  -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
-  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075);
-}
-.navbar .btn-navbar:hover,
-.navbar .btn-navbar:active,
-.navbar .btn-navbar.active,
-.navbar .btn-navbar.disabled,
-.navbar .btn-navbar[disabled] {
-  background-color: #222222;
-  *background-color: #151515;
-}
-.navbar .btn-navbar:active,
-.navbar .btn-navbar.active {
-  background-color: #080808 \9;
-}
-.navbar .btn-navbar .icon-bar {
-  display: block;
-  width: 18px;
-  height: 2px;
-  background-color: #f5f5f5;
-  -webkit-border-radius: 1px;
-  -moz-border-radius: 1px;
-  border-radius: 1px;
-  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
-  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
-  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
-}
-.btn-navbar .icon-bar + .icon-bar {
-  margin-top: 3px;
-}
-.navbar .dropdown-menu:before {
-  content: '';
-  display: inline-block;
-  border-left: 7px solid transparent;
-  border-right: 7px solid transparent;
-  border-bottom: 7px solid #ccc;
-  border-bottom-color: rgba(0, 0, 0, 0.2);
-  position: absolute;
-  top: -7px;
-  left: 9px;
-}
-.navbar .dropdown-menu:after {
-  content: '';
-  display: inline-block;
-  border-left: 6px solid transparent;
-  border-right: 6px solid transparent;
-  border-bottom: 6px solid #ffffff;
-  position: absolute;
-  top: -6px;
-  left: 10px;
-}
-.navbar-fixed-bottom .dropdown-menu:before {
-  border-top: 7px solid #ccc;
-  border-top-color: rgba(0, 0, 0, 0.2);
-  border-bottom: 0;
-  bottom: -7px;
-  top: auto;
-}
-.navbar-fixed-bottom .dropdown-menu:after {
-  border-top: 6px solid #ffffff;
-  border-bottom: 0;
-  bottom: -6px;
-  top: auto;
-}
-.navbar .nav li.dropdown .dropdown-toggle .caret,
-.navbar .nav li.dropdown.open .caret {
-  border-top-color: #ffffff;
-  border-bottom-color: #ffffff;
-}
-.navbar .nav li.dropdown.active .caret {
-  opacity: 1;
-  filter: alpha(opacity=100);
-}
-.navbar .nav li.dropdown.open > .dropdown-toggle,
-.navbar .nav li.dropdown.active > .dropdown-toggle,
-.navbar .nav li.dropdown.open.active > .dropdown-toggle {
-  background-color: transparent;
-}
-.navbar .nav li.dropdown.active > .dropdown-toggle:hover {
-  color: #ffffff;
-}
-.navbar .pull-right .dropdown-menu,
-.navbar .dropdown-menu.pull-right {
-  left: auto;
-  right: 0;
-}
-.navbar .pull-right .dropdown-menu:before,
-.navbar .dropdown-menu.pull-right:before {
-  left: auto;
-  right: 12px;
-}
-.navbar .pull-right .dropdown-menu:after,
-.navbar .dropdown-menu.pull-right:after {
-  left: auto;
-  right: 13px;
-}
-.breadcrumb {
-  padding: 7px 14px;
-  margin: 0 0 18px;
-  list-style: none;
-  background-color: #fbfbfb;
-  background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5);
-  background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));
-  background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5);
-  background-image: -o-linear-gradient(top, #ffffff, #f5f5f5);
-  background-image: linear-gradient(top, #ffffff, #f5f5f5);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);
-  border: 1px solid #ddd;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-  -webkit-box-shadow: inset 0 1px 0 #ffffff;
-  -moz-box-shadow: inset 0 1px 0 #ffffff;
-  box-shadow: inset 0 1px 0 #ffffff;
-}
-.breadcrumb li {
-  display: inline-block;
-  *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
-  text-shadow: 0 1px 0 #ffffff;
-}
-.breadcrumb .divider {
-  padding: 0 5px;
-  color: #EBEBEB;
-}
-.breadcrumb .active a {
-  color: #333333;
-}
-.pagination {
-  height: 36px;
-  margin: 18px 0;
-}
-.pagination ul {
-  display: inline-block;
-  *display: inline;
-  /* IE7 inline-block hack */
-
-  *zoom: 1;
-  margin-left: 0;
-  margin-bottom: 0;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
-  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
-  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
-  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
-}
-.pagination li {
-  display: inline;
-}
-.pagination a {
-  float: left;
-  padding: 0 14px;
-  line-height: 34px;
-  text-decoration: none;
-  border: 1px solid #ddd;
-  border-left-width: 0;
-}
-.pagination a:hover,
-.pagination .active a {
-  background-color: #f5f5f5;
-}
-.pagination .active a {
-  color: #EBEBEB;
-  cursor: default;
-}
-.pagination .disabled span,
-.pagination .disabled a,
-.pagination .disabled a:hover {
-  color: #EBEBEB;
-  background-color: transparent;
-  cursor: default;
-}
-.pagination li:first-child a {
-  border-left-width: 1px;
-  -webkit-border-radius: 3px 0 0 3px;
-  -moz-border-radius: 3px 0 0 3px;
-  border-radius: 3px 0 0 3px;
-}
-.pagination li:last-child a {
-  -webkit-border-radius: 0 3px 3px 0;
-  -moz-border-radius: 0 3px 3px 0;
-  border-radius: 0 3px 3px 0;
-}
-.pagination-centered {
-  text-align: center;
-}
-.pagination-right {
-  text-align: right;
-}
-.pager {
-  margin-left: 0;
-  margin-bottom: 18px;
-  list-style: none;
-  text-align: center;
-  *zoom: 1;
-}
-.pager:before,
-.pager:after {
-  display: table;
-  content: "";
-}
-.pager:after {
-  clear: both;
-}
-.pager li {
-  display: inline;
-}
-.pager a {
-  display: inline-block;
-  padding: 5px 14px;
-  background-color: #fff;
-  border: 1px solid #ddd;
-  -webkit-border-radius: 15px;
-  -moz-border-radius: 15px;
-  border-radius: 15px;
-}
-.pager a:hover {
-  text-decoration: none;
-  background-color: #f5f5f5;
-}
-.pager .next a {
-  float: right;
-}
-.pager .previous a {
-  float: left;
-}
-.pager .disabled a,
-.pager .disabled a:hover {
-  color: #EBEBEB;
-  background-color: #fff;
-  cursor: default;
-}
-.thumbnails {
-  margin-left: -20px;
-  list-style: none;
-  *zoom: 1;
-}
-.thumbnails:before,
-.thumbnails:after {
-  display: table;
-  content: "";
-}
-.thumbnails:after {
-  clear: both;
-}
-.row-fluid .thumbnails {
-  margin-left: 0;
-}
-.thumbnails > li {
-  float: left;
-  margin-bottom: 18px;
-  margin-left: 20px;
-}
-.thumbnail {
-  display: block;
-  padding: 4px;
-  line-height: 1;
-  border: 1px solid #ddd;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
-  -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
-  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);
-}
-a.thumbnail:hover {
-  border-color: #aa1111;
-  -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
-  -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
-  box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
-}
-.thumbnail > img {
-  display: block;
-  max-width: 100%;
-  margin-left: auto;
-  margin-right: auto;
-}
-.thumbnail .caption {
-  padding: 9px;
-}
-.alert {
-  padding: 8px 35px 8px 14px;
-  margin-bottom: 18px;
-  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
-  background-color: #fcf8e3;
-  border: 1px solid #fbeed5;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  color: #c09853;
-}
-.alert-heading {
-  color: inherit;
-}
-.alert .close {
-  position: relative;
-  top: -2px;
-  right: -21px;
-  line-height: 18px;
-}
-.alert-success {
-  background-color: #dff0d8;
-  border-color: #d6e9c6;
-  color: #468847;
-}
-.alert-danger,
-.alert-error {
-  background-color: #f2dede;
-  border-color: #eed3d7;
-  color: #b94a48;
-}
-.alert-info {
-  background-color: #d9edf7;
-  border-color: #bce8f1;
-  color: #3a87ad;
-}
-.alert-block {
-  padding-top: 14px;
-  padding-bottom: 14px;
-}
-.alert-block > p,
-.alert-block > ul {
-  margin-bottom: 0;
-}
-.alert-block p + p {
-  margin-top: 5px;
-}
-@-webkit-keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-@-moz-keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-@-ms-keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-@-o-keyframes progress-bar-stripes {
-  from {
-    background-position: 0 0;
-  }
-  to {
-    background-position: 40px 0;
-  }
-}
-@keyframes progress-bar-stripes {
-  from {
-    background-position: 40px 0;
-  }
-  to {
-    background-position: 0 0;
-  }
-}
-.progress {
-  overflow: hidden;
-  height: 18px;
-  margin-bottom: 18px;
-  background-color: #f7f7f7;
-  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
-  background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
-  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
-  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
-  background-image: linear-gradient(top, #f5f5f5, #f9f9f9);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);
-  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.progress .bar {
-  width: 0%;
-  height: 18px;
-  color: #ffffff;
-  font-size: 12px;
-  text-align: center;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-  background-color: #0e90d2;
-  background-image: -moz-linear-gradient(top, #149bdf, #0480be);
-  background-image: -ms-linear-gradient(top, #149bdf, #0480be);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
-  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
-  background-image: -o-linear-gradient(top, #149bdf, #0480be);
-  background-image: linear-gradient(top, #149bdf, #0480be);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);
-  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-  -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  -ms-box-sizing: border-box;
-  box-sizing: border-box;
-  -webkit-transition: width 0.6s ease;
-  -moz-transition: width 0.6s ease;
-  -ms-transition: width 0.6s ease;
-  -o-transition: width 0.6s ease;
-  transition: width 0.6s ease;
-}
-.progress-striped .bar {
-  background-color: #149bdf;
-  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
-  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  -webkit-background-size: 40px 40px;
-  -moz-background-size: 40px 40px;
-  -o-background-size: 40px 40px;
-  background-size: 40px 40px;
-}
-.progress.active .bar {
-  -webkit-animation: progress-bar-stripes 2s linear infinite;
-  -moz-animation: progress-bar-stripes 2s linear infinite;
-  -ms-animation: progress-bar-stripes 2s linear infinite;
-  -o-animation: progress-bar-stripes 2s linear infinite;
-  animation: progress-bar-stripes 2s linear infinite;
-}
-.progress-danger .bar {
-  background-color: #dd514c;
-  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
-  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
-  background-image: linear-gradient(top, #ee5f5b, #c43c35);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
-}
-.progress-danger.progress-striped .bar {
-  background-color: #ee5f5b;
-  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
-  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-.progress-success .bar {
-  background-color: #5eb95e;
-  background-image: -moz-linear-gradient(top, #62c462, #57a957);
-  background-image: -ms-linear-gradient(top, #62c462, #57a957);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
-  background-image: -webkit-linear-gradient(top, #62c462, #57a957);
-  background-image: -o-linear-gradient(top, #62c462, #57a957);
-  background-image: linear-gradient(top, #62c462, #57a957);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
-}
-.progress-success.progress-striped .bar {
-  background-color: #62c462;
-  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
-  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-.progress-info .bar {
-  background-color: #4bb1cf;
-  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
-  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
-  background-image: linear-gradient(top, #5bc0de, #339bb9);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
-}
-.progress-info.progress-striped .bar {
-  background-color: #5bc0de;
-  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
-  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-.progress-warning .bar {
-  background-color: #faa732;
-  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
-  background-image: -ms-linear-gradient(top, #fbb450, #f89406);
-  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
-  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
-  background-image: -o-linear-gradient(top, #fbb450, #f89406);
-  background-image: linear-gradient(top, #fbb450, #f89406);
-  background-repeat: repeat-x;
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);
-}
-.progress-warning.progress-striped .bar {
-  background-color: #fbb450;
-  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
-  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
-}
-.hero-unit {
-  padding: 60px;
-  margin-bottom: 30px;
-  background-color: #eeeeee;
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-}
-.hero-unit h1 {
-  margin-bottom: 0;
-  font-size: 60px;
-  line-height: 1;
-  color: inherit;
-  letter-spacing: -1px;
-}
-.hero-unit p {
-  font-size: 18px;
-  font-weight: 200;
-  line-height: 27px;
-  color: inherit;
-}
-.tooltip {
-  position: absolute;
-  z-index: 1020;
-  display: block;
-  visibility: visible;
-  padding: 5px;
-  font-size: 11px;
-  opacity: 0;
-  filter: alpha(opacity=0);
-}
-.tooltip.in {
-  opacity: 0.8;
-  filter: alpha(opacity=80);
-}
-.tooltip.top {
-  margin-top: -2px;
-}
-.tooltip.right {
-  margin-left: 2px;
-}
-.tooltip.bottom {
-  margin-top: 2px;
-}
-.tooltip.left {
-  margin-left: -2px;
-}
-.tooltip.top .tooltip-arrow {
-  bottom: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-left: 5px solid transparent;
-  border-right: 5px solid transparent;
-  border-top: 5px solid #000000;
-}
-.tooltip.left .tooltip-arrow {
-  top: 50%;
-  right: 0;
-  margin-top: -5px;
-  border-top: 5px solid transparent;
-  border-bottom: 5px solid transparent;
-  border-left: 5px solid #000000;
-}
-.tooltip.bottom .tooltip-arrow {
-  top: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-left: 5px solid transparent;
-  border-right: 5px solid transparent;
-  border-bottom: 5px solid #000000;
-}
-.tooltip.right .tooltip-arrow {
-  top: 50%;
-  left: 0;
-  margin-top: -5px;
-  border-top: 5px solid transparent;
-  border-bottom: 5px solid transparent;
-  border-right: 5px solid #000000;
-}
-.tooltip-inner {
-  max-width: 200px;
-  padding: 3px 8px;
-  color: #ffffff;
-  text-align: center;
-  text-decoration: none;
-  background-color: #000000;
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-}
-.tooltip-arrow {
-  position: absolute;
-  width: 0;
-  height: 0;
-}
-.popover {
-  position: absolute;
-  top: 0;
-  left: 0;
-  z-index: 1010;
-  display: none;
-  padding: 5px;
-}
-.popover.top {
-  margin-top: -5px;
-}
-.popover.right {
-  margin-left: 5px;
-}
-.popover.bottom {
-  margin-top: 5px;
-}
-.popover.left {
-  margin-left: -5px;
-}
-.popover.top .arrow {
-  bottom: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-left: 5px solid transparent;
-  border-right: 5px solid transparent;
-  border-top: 5px solid #000000;
-}
-.popover.right .arrow {
-  top: 50%;
-  left: 0;
-  margin-top: -5px;
-  border-top: 5px solid transparent;
-  border-bottom: 5px solid transparent;
-  border-right: 5px solid #000000;
-}
-.popover.bottom .arrow {
-  top: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-left: 5px solid transparent;
-  border-right: 5px solid transparent;
-  border-bottom: 5px solid #000000;
-}
-.popover.left .arrow {
-  top: 50%;
-  right: 0;
-  margin-top: -5px;
-  border-top: 5px solid transparent;
-  border-bottom: 5px solid transparent;
-  border-left: 5px solid #000000;
-}
-.popover .arrow {
-  position: absolute;
-  width: 0;
-  height: 0;
-}
-.popover-inner {
-  padding: 3px;
-  width: 280px;
-  overflow: hidden;
-  background: #000000;
-  background: rgba(0, 0, 0, 0.8);
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-}
-.popover-title {
-  padding: 9px 15px;
-  line-height: 1;
-  background-color: #f5f5f5;
-  border-bottom: 1px solid #eee;
-  -webkit-border-radius: 3px 3px 0 0;
-  -moz-border-radius: 3px 3px 0 0;
-  border-radius: 3px 3px 0 0;
-}
-.popover-content {
-  padding: 14px;
-  background-color: #ffffff;
-  -webkit-border-radius: 0 0 3px 3px;
-  -moz-border-radius: 0 0 3px 3px;
-  border-radius: 0 0 3px 3px;
-  -webkit-background-clip: padding-box;
-  -moz-background-clip: padding-box;
-  background-clip: padding-box;
-}
-.popover-content p,
-.popover-content ul,
-.popover-content ol {
-  margin-bottom: 0;
-}
-.modal-open .dropdown-menu {
-  z-index: 2050;
-}
-.modal-open .dropdown.open {
-  *z-index: 2050;
-}
-.modal-open .popover {
-  z-index: 2060;
-}
-.modal-open .tooltip {
-  z-index: 2070;
-}
-.modal-backdrop {
-  position: fixed;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
-  z-index: 1040;
-  background-color: #000000;
-}
-.modal-backdrop.fade {
-  opacity: 0;
-}
-.modal-backdrop,
-.modal-backdrop.fade.in {
-  opacity: 0.8;
-  filter: alpha(opacity=80);
-}
-.modal {
-  position: fixed;
-  top: 50%;
-  left: 50%;
-  z-index: 1050;
-  overflow: auto;
-  width: 560px;
-  margin: -250px 0 0 -280px;
-  background-color: #ffffff;
-  border: 1px solid #999;
-  border: 1px solid rgba(0, 0, 0, 0.3);
-  *border: 1px solid #999;
-  /* IE6-7 */
-
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
-  -webkit-background-clip: padding-box;
-  -moz-background-clip: padding-box;
-  background-clip: padding-box;
-}
-.modal.fade {
-  -webkit-transition: opacity .3s linear, top .3s ease-out;
-  -moz-transition: opacity .3s linear, top .3s ease-out;
-  -ms-transition: opacity .3s linear, top .3s ease-out;
-  -o-transition: opacity .3s linear, top .3s ease-out;
-  transition: opacity .3s linear, top .3s ease-out;
-  top: -25%;
-}
-.modal.fade.in {
-  top: 50%;
-}
-.modal-header {
-  padding: 9px 15px;
-  border-bottom: 1px solid #eee;
-}
-.modal-header .close {
-  margin-top: 2px;
-}
-.modal-body {
-  overflow-y: auto;
-  max-height: 400px;
-  padding: 15px;
-}
-.modal-form {
-  margin-bottom: 0;
-}
-.modal-footer {
-  padding: 14px 15px 15px;
-  margin-bottom: 0;
-  text-align: right;
-  background-color: #f5f5f5;
-  border-top: 1px solid #ddd;
-  -webkit-border-radius: 0 0 6px 6px;
-  -moz-border-radius: 0 0 6px 6px;
-  border-radius: 0 0 6px 6px;
-  -webkit-box-shadow: inset 0 1px 0 #ffffff;
-  -moz-box-shadow: inset 0 1px 0 #ffffff;
-  box-shadow: inset 0 1px 0 #ffffff;
-  *zoom: 1;
-}
-.modal-footer:before,
-.modal-footer:after {
-  display: table;
-  content: "";
-}
-.modal-footer:after {
-  clear: both;
-}
-.modal-footer .btn + .btn {
-  margin-left: 5px;
-  margin-bottom: 0;
-}
-.modal-footer .btn-group .btn + .btn {
-  margin-left: -1px;
-}
 .dropup,
 .dropdown {
   position: relative;
 }
+
 .dropdown-toggle {
   *margin-bottom: -3px;
 }
+
 .dropdown-toggle:active,
 .open .dropdown-toggle {
   outline: 0;
 }
+
 .caret {
   display: inline-block;
   width: 0;
@@ -3875,18 +2895,13 @@
   border-right: 4px solid transparent;
   border-left: 4px solid transparent;
   content: "";
-  opacity: 0.3;
-  filter: alpha(opacity=30);
 }
+
 .dropdown .caret {
   margin-top: 8px;
   margin-left: 2px;
 }
-.dropdown:hover .caret,
-.open .caret {
-  opacity: 1;
-  filter: alpha(opacity=100);
-}
+
 .dropdown-menu {
   position: absolute;
   top: 100%;
@@ -3895,158 +2910,3130 @@
   display: none;
   float: left;
   min-width: 160px;
-  padding: 4px 0;
-  margin: 1px 0 0;
+  padding: 5px 0;
+  margin: 2px 0 0;
   list-style: none;
   background-color: #ffffff;
   border: 1px solid #ccc;
   border: 1px solid rgba(0, 0, 0, 0.2);
   *border-right-width: 2px;
   *border-bottom-width: 2px;
-  -webkit-border-radius: 5px;
-  -moz-border-radius: 5px;
-  border-radius: 5px;
+  -webkit-border-radius: 6px;
+     -moz-border-radius: 6px;
+          border-radius: 6px;
   -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
-  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+     -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+          box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
   -webkit-background-clip: padding-box;
-  -moz-background-clip: padding;
-  background-clip: padding-box;
+     -moz-background-clip: padding;
+          background-clip: padding-box;
 }
+
 .dropdown-menu.pull-right {
   right: 0;
   left: auto;
 }
+
 .dropdown-menu .divider {
   *width: 100%;
   height: 1px;
-  margin: 8px 1px;
+  margin: 9px 1px;
   *margin: -5px 0 5px;
   overflow: hidden;
   background-color: #e5e5e5;
   border-bottom: 1px solid #ffffff;
 }
-.dropdown-menu a {
+
+.dropdown-menu > li > a {
   display: block;
-  padding: 3px 15px;
+  padding: 3px 20px;
   clear: both;
   font-weight: normal;
-  line-height: 18px;
+  line-height: 20px;
   color: #333333;
   white-space: nowrap;
 }
-.dropdown-menu li > a:hover,
-.dropdown-menu .active > a,
-.dropdown-menu .active > a:hover {
+
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus,
+.dropdown-submenu:hover > a,
+.dropdown-submenu:focus > a {
   color: #ffffff;
   text-decoration: none;
-  background-color: #aa1111;
+  background-color: #0081c2;
+  background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
+  background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
+  background-image: -o-linear-gradient(top, #0088cc, #0077b3);
+  background-image: linear-gradient(to bottom, #0088cc, #0077b3);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
 }
+
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+  color: #ffffff;
+  text-decoration: none;
+  background-color: #0081c2;
+  background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
+  background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
+  background-image: -o-linear-gradient(top, #0088cc, #0077b3);
+  background-image: linear-gradient(to bottom, #0088cc, #0077b3);
+  background-repeat: repeat-x;
+  outline: 0;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
+}
+
+.dropdown-menu > .disabled > a,
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+  color: #999999;
+}
+
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+  text-decoration: none;
+  cursor: default;
+  background-color: transparent;
+  background-image: none;
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
 .open {
   *z-index: 1000;
 }
-.open .dropdown-menu {
+
+.open > .dropdown-menu {
   display: block;
 }
-.pull-right .dropdown-menu {
+
+.dropdown-backdrop {
+  position: fixed;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 990;
+}
+
+.pull-right > .dropdown-menu {
   right: 0;
   left: auto;
 }
+
 .dropup .caret,
 .navbar-fixed-bottom .dropdown .caret {
   border-top: 0;
   border-bottom: 4px solid #000000;
-  content: "\2191";
+  content: "";
 }
+
 .dropup .dropdown-menu,
 .navbar-fixed-bottom .dropdown .dropdown-menu {
   top: auto;
   bottom: 100%;
   margin-bottom: 1px;
 }
+
+.dropdown-submenu {
+  position: relative;
+}
+
+.dropdown-submenu > .dropdown-menu {
+  top: 0;
+  left: 100%;
+  margin-top: -6px;
+  margin-left: -1px;
+  -webkit-border-radius: 0 6px 6px 6px;
+     -moz-border-radius: 0 6px 6px 6px;
+          border-radius: 0 6px 6px 6px;
+}
+
+.dropdown-submenu:hover > .dropdown-menu {
+  display: block;
+}
+
+.dropup .dropdown-submenu > .dropdown-menu {
+  top: auto;
+  bottom: 0;
+  margin-top: 0;
+  margin-bottom: -2px;
+  -webkit-border-radius: 5px 5px 5px 0;
+     -moz-border-radius: 5px 5px 5px 0;
+          border-radius: 5px 5px 5px 0;
+}
+
+.dropdown-submenu > a:after {
+  display: block;
+  float: right;
+  width: 0;
+  height: 0;
+  margin-top: 5px;
+  margin-right: -10px;
+  border-color: transparent;
+  border-left-color: #cccccc;
+  border-style: solid;
+  border-width: 5px 0 5px 5px;
+  content: " ";
+}
+
+.dropdown-submenu:hover > a:after {
+  border-left-color: #ffffff;
+}
+
+.dropdown-submenu.pull-left {
+  float: none;
+}
+
+.dropdown-submenu.pull-left > .dropdown-menu {
+  left: -100%;
+  margin-left: 10px;
+  -webkit-border-radius: 6px 0 6px 6px;
+     -moz-border-radius: 6px 0 6px 6px;
+          border-radius: 6px 0 6px 6px;
+}
+
+.dropdown .dropdown-menu .nav-header {
+  padding-right: 20px;
+  padding-left: 20px;
+}
+
 .typeahead {
+  z-index: 1051;
   margin-top: 2px;
   -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
 }
+
+.well {
+  min-height: 20px;
+  padding: 19px;
+  margin-bottom: 20px;
+  background-color: #f5f5f5;
+  border: 1px solid #e3e3e3;
+  -webkit-border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+     -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+
+.well blockquote {
+  border-color: #ddd;
+  border-color: rgba(0, 0, 0, 0.15);
+}
+
+.well-large {
+  padding: 24px;
+  -webkit-border-radius: 6px;
+     -moz-border-radius: 6px;
+          border-radius: 6px;
+}
+
+.well-small {
+  padding: 9px;
+  -webkit-border-radius: 3px;
+     -moz-border-radius: 3px;
+          border-radius: 3px;
+}
+
+.fade {
+  opacity: 0;
+  -webkit-transition: opacity 0.15s linear;
+     -moz-transition: opacity 0.15s linear;
+       -o-transition: opacity 0.15s linear;
+          transition: opacity 0.15s linear;
+}
+
+.fade.in {
+  opacity: 1;
+}
+
+.collapse {
+  position: relative;
+  height: 0;
+  overflow: hidden;
+  -webkit-transition: height 0.35s ease;
+     -moz-transition: height 0.35s ease;
+       -o-transition: height 0.35s ease;
+          transition: height 0.35s ease;
+}
+
+.collapse.in {
+  height: auto;
+}
+
+.close {
+  float: right;
+  font-size: 20px;
+  font-weight: bold;
+  line-height: 20px;
+  color: #000000;
+  text-shadow: 0 1px 0 #ffffff;
+  opacity: 0.2;
+  filter: alpha(opacity=20);
+}
+
+.close:hover,
+.close:focus {
+  color: #000000;
+  text-decoration: none;
+  cursor: pointer;
+  opacity: 0.4;
+  filter: alpha(opacity=40);
+}
+
+button.close {
+  padding: 0;
+  cursor: pointer;
+  background: transparent;
+  border: 0;
+  -webkit-appearance: none;
+}
+
+.btn {
+  display: inline-block;
+  *display: inline;
+  padding: 4px 12px;
+  margin-bottom: 0;
+  *margin-left: .3em;
+  font-size: 14px;
+  line-height: 20px;
+  color: #333333;
+  text-align: center;
+  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
+  vertical-align: middle;
+  cursor: pointer;
+  background-color: #f5f5f5;
+  *background-color: #e6e6e6;
+  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
+  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
+  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
+  background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
+  background-repeat: repeat-x;
+  border: 1px solid #cccccc;
+  *border: 0;
+  border-color: #e6e6e6 #e6e6e6 #bfbfbf;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  border-bottom-color: #b3b3b3;
+  -webkit-border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+  *zoom: 1;
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+     -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+
+.btn:hover,
+.btn:focus,
+.btn:active,
+.btn.active,
+.btn.disabled,
+.btn[disabled] {
+  color: #333333;
+  background-color: #e6e6e6;
+  *background-color: #d9d9d9;
+}
+
+.btn:active,
+.btn.active {
+  background-color: #cccccc \9;
+}
+
+.btn:first-child {
+  *margin-left: 0;
+}
+
+.btn:hover,
+.btn:focus {
+  color: #333333;
+  text-decoration: none;
+  background-position: 0 -15px;
+  -webkit-transition: background-position 0.1s linear;
+     -moz-transition: background-position 0.1s linear;
+       -o-transition: background-position 0.1s linear;
+          transition: background-position 0.1s linear;
+}
+
+.btn:focus {
+  outline: thin dotted #333;
+  outline: 5px auto -webkit-focus-ring-color;
+  outline-offset: -2px;
+}
+
+.btn.active,
+.btn:active {
+  background-image: none;
+  outline: 0;
+  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+     -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+          box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+
+.btn.disabled,
+.btn[disabled] {
+  cursor: default;
+  background-image: none;
+  opacity: 0.65;
+  filter: alpha(opacity=65);
+  -webkit-box-shadow: none;
+     -moz-box-shadow: none;
+          box-shadow: none;
+}
+
+.btn-large {
+  padding: 11px 19px;
+  font-size: 17.5px;
+  -webkit-border-radius: 6px;
+     -moz-border-radius: 6px;
+          border-radius: 6px;
+}
+
+.btn-large [class^="icon-"],
+.btn-large [class*=" icon-"] {
+  margin-top: 4px;
+}
+
+.btn-small {
+  padding: 2px 10px;
+  font-size: 11.9px;
+  -webkit-border-radius: 3px;
+     -moz-border-radius: 3px;
+          border-radius: 3px;
+}
+
+.btn-small [class^="icon-"],
+.btn-small [class*=" icon-"] {
+  margin-top: 0;
+}
+
+.btn-mini [class^="icon-"],
+.btn-mini [class*=" icon-"] {
+  margin-top: -1px;
+}
+
+.btn-mini {
+  padding: 0 6px;
+  font-size: 10.5px;
+  -webkit-border-radius: 3px;
+     -moz-border-radius: 3px;
+          border-radius: 3px;
+}
+
+.btn-block {
+  display: block;
+  width: 100%;
+  padding-right: 0;
+  padding-left: 0;
+  -webkit-box-sizing: border-box;
+     -moz-box-sizing: border-box;
+          box-sizing: border-box;
+}
+
+.btn-block + .btn-block {
+  margin-top: 5px;
+}
+
+input[type="submit"].btn-block,
+input[type="reset"].btn-block,
+input[type="button"].btn-block {
+  width: 100%;
+}
+
+.btn-primary.active,
+.btn-warning.active,
+.btn-danger.active,
+.btn-success.active,
+.btn-info.active,
+.btn-inverse.active {
+  color: rgba(255, 255, 255, 0.75);
+}
+
+.btn-primary {
+  color: #ffffff;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+  background-color: #006dcc;
+  *background-color: #0044cc;
+  background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
+  background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
+  background-image: -o-linear-gradient(top, #0088cc, #0044cc);
+  background-image: linear-gradient(to bottom, #0088cc, #0044cc);
+  background-repeat: repeat-x;
+  border-color: #0044cc #0044cc #002a80;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-primary:hover,
+.btn-primary:focus,
+.btn-primary:active,
+.btn-primary.active,
+.btn-primary.disabled,
+.btn-primary[disabled] {
+  color: #ffffff;
+  background-color: #0044cc;
+  *background-color: #003bb3;
+}
+
+.btn-primary:active,
+.btn-primary.active {
+  background-color: #003399 \9;
+}
+
+.btn-warning {
+  color: #ffffff;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+  background-color: #faa732;
+  *background-color: #f89406;
+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
+  background-image: -o-linear-gradient(top, #fbb450, #f89406);
+  background-image: linear-gradient(to bottom, #fbb450, #f89406);
+  background-repeat: repeat-x;
+  border-color: #f89406 #f89406 #ad6704;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-warning:hover,
+.btn-warning:focus,
+.btn-warning:active,
+.btn-warning.active,
+.btn-warning.disabled,
+.btn-warning[disabled] {
+  color: #ffffff;
+  background-color: #f89406;
+  *background-color: #df8505;
+}
+
+.btn-warning:active,
+.btn-warning.active {
+  background-color: #c67605 \9;
+}
+
+.btn-danger {
+  color: #ffffff;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+  background-color: #da4f49;
+  *background-color: #bd362f;
+  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
+  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
+  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
+  background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
+  background-repeat: repeat-x;
+  border-color: #bd362f #bd362f #802420;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-danger:hover,
+.btn-danger:focus,
+.btn-danger:active,
+.btn-danger.active,
+.btn-danger.disabled,
+.btn-danger[disabled] {
+  color: #ffffff;
+  background-color: #bd362f;
+  *background-color: #a9302a;
+}
+
+.btn-danger:active,
+.btn-danger.active {
+  background-color: #942a25 \9;
+}
+
+.btn-success {
+  color: #ffffff;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+  background-color: #5bb75b;
+  *background-color: #51a351;
+  background-image: -moz-linear-gradient(top, #62c462, #51a351);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
+  background-image: -webkit-linear-gradient(top, #62c462, #51a351);
+  background-image: -o-linear-gradient(top, #62c462, #51a351);
+  background-image: linear-gradient(to bottom, #62c462, #51a351);
+  background-repeat: repeat-x;
+  border-color: #51a351 #51a351 #387038;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-success:hover,
+.btn-success:focus,
+.btn-success:active,
+.btn-success.active,
+.btn-success.disabled,
+.btn-success[disabled] {
+  color: #ffffff;
+  background-color: #51a351;
+  *background-color: #499249;
+}
+
+.btn-success:active,
+.btn-success.active {
+  background-color: #408140 \9;
+}
+
+.btn-info {
+  color: #ffffff;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+  background-color: #49afcd;
+  *background-color: #2f96b4;
+  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
+  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
+  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
+  background-image: linear-gradient(to bottom, #5bc0de, #2f96b4);
+  background-repeat: repeat-x;
+  border-color: #2f96b4 #2f96b4 #1f6377;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-info:hover,
+.btn-info:focus,
+.btn-info:active,
+.btn-info.active,
+.btn-info.disabled,
+.btn-info[disabled] {
+  color: #ffffff;
+  background-color: #2f96b4;
+  *background-color: #2a85a0;
+}
+
+.btn-info:active,
+.btn-info.active {
+  background-color: #24748c \9;
+}
+
+.btn-inverse {
+  color: #ffffff;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+  background-color: #363636;
+  *background-color: #222222;
+  background-image: -moz-linear-gradient(top, #444444, #222222);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));
+  background-image: -webkit-linear-gradient(top, #444444, #222222);
+  background-image: -o-linear-gradient(top, #444444, #222222);
+  background-image: linear-gradient(to bottom, #444444, #222222);
+  background-repeat: repeat-x;
+  border-color: #222222 #222222 #000000;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.btn-inverse:hover,
+.btn-inverse:focus,
+.btn-inverse:active,
+.btn-inverse.active,
+.btn-inverse.disabled,
+.btn-inverse[disabled] {
+  color: #ffffff;
+  background-color: #222222;
+  *background-color: #151515;
+}
+
+.btn-inverse:active,
+.btn-inverse.active {
+  background-color: #080808 \9;
+}
+
+button.btn,
+input[type="submit"].btn {
+  *padding-top: 3px;
+  *padding-bottom: 3px;
+}
+
+button.btn::-moz-focus-inner,
+input[type="submit"].btn::-moz-focus-inner {
+  padding: 0;
+  border: 0;
+}
+
+button.btn.btn-large,
+input[type="submit"].btn.btn-large {
+  *padding-top: 7px;
+  *padding-bottom: 7px;
+}
+
+button.btn.btn-small,
+input[type="submit"].btn.btn-small {
+  *padding-top: 3px;
+  *padding-bottom: 3px;
+}
+
+button.btn.btn-mini,
+input[type="submit"].btn.btn-mini {
+  *padding-top: 1px;
+  *padding-bottom: 1px;
+}
+
+.btn-link,
+.btn-link:active,
+.btn-link[disabled] {
+  background-color: transparent;
+  background-image: none;
+  -webkit-box-shadow: none;
+     -moz-box-shadow: none;
+          box-shadow: none;
+}
+
+.btn-link {
+  color: #0088cc;
+  cursor: pointer;
+  border-color: transparent;
+  -webkit-border-radius: 0;
+     -moz-border-radius: 0;
+          border-radius: 0;
+}
+
+.btn-link:hover,
+.btn-link:focus {
+  color: #005580;
+  text-decoration: underline;
+  background-color: transparent;
+}
+
+.btn-link[disabled]:hover,
+.btn-link[disabled]:focus {
+  color: #333333;
+  text-decoration: none;
+}
+
+.btn-group {
+  position: relative;
+  display: inline-block;
+  *display: inline;
+  *margin-left: .3em;
+  font-size: 0;
+  white-space: nowrap;
+  vertical-align: middle;
+  *zoom: 1;
+}
+
+.btn-group:first-child {
+  *margin-left: 0;
+}
+
+.btn-group + .btn-group {
+  margin-left: 5px;
+}
+
+.btn-toolbar {
+  margin-top: 10px;
+  margin-bottom: 10px;
+  font-size: 0;
+}
+
+.btn-toolbar > .btn + .btn,
+.btn-toolbar > .btn-group + .btn,
+.btn-toolbar > .btn + .btn-group {
+  margin-left: 5px;
+}
+
+.btn-group > .btn {
+  position: relative;
+  -webkit-border-radius: 0;
+     -moz-border-radius: 0;
+          border-radius: 0;
+}
+
+.btn-group > .btn + .btn {
+  margin-left: -1px;
+}
+
+.btn-group > .btn,
+.btn-group > .dropdown-menu,
+.btn-group > .popover {
+  font-size: 14px;
+}
+
+.btn-group > .btn-mini {
+  font-size: 10.5px;
+}
+
+.btn-group > .btn-small {
+  font-size: 11.9px;
+}
+
+.btn-group > .btn-large {
+  font-size: 17.5px;
+}
+
+.btn-group > .btn:first-child {
+  margin-left: 0;
+  -webkit-border-bottom-left-radius: 4px;
+          border-bottom-left-radius: 4px;
+  -webkit-border-top-left-radius: 4px;
+          border-top-left-radius: 4px;
+  -moz-border-radius-bottomleft: 4px;
+  -moz-border-radius-topleft: 4px;
+}
+
+.btn-group > .btn:last-child,
+.btn-group > .dropdown-toggle {
+  -webkit-border-top-right-radius: 4px;
+          border-top-right-radius: 4px;
+  -webkit-border-bottom-right-radius: 4px;
+          border-bottom-right-radius: 4px;
+  -moz-border-radius-topright: 4px;
+  -moz-border-radius-bottomright: 4px;
+}
+
+.btn-group > .btn.large:first-child {
+  margin-left: 0;
+  -webkit-border-bottom-left-radius: 6px;
+          border-bottom-left-radius: 6px;
+  -webkit-border-top-left-radius: 6px;
+          border-top-left-radius: 6px;
+  -moz-border-radius-bottomleft: 6px;
+  -moz-border-radius-topleft: 6px;
+}
+
+.btn-group > .btn.large:last-child,
+.btn-group > .large.dropdown-toggle {
+  -webkit-border-top-right-radius: 6px;
+          border-top-right-radius: 6px;
+  -webkit-border-bottom-right-radius: 6px;
+          border-bottom-right-radius: 6px;
+  -moz-border-radius-topright: 6px;
+  -moz-border-radius-bottomright: 6px;
+}
+
+.btn-group > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group > .btn:active,
+.btn-group > .btn.active {
+  z-index: 2;
+}
+
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+  outline: 0;
+}
+
+.btn-group > .btn + .dropdown-toggle {
+  *padding-top: 5px;
+  padding-right: 8px;
+  *padding-bottom: 5px;
+  padding-left: 8px;
+  -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+     -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+          box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+
+.btn-group > .btn-mini + .dropdown-toggle {
+  *padding-top: 2px;
+  padding-right: 5px;
+  *padding-bottom: 2px;
+  padding-left: 5px;
+}
+
+.btn-group > .btn-small + .dropdown-toggle {
+  *padding-top: 5px;
+  *padding-bottom: 4px;
+}
+
+.btn-group > .btn-large + .dropdown-toggle {
+  *padding-top: 7px;
+  padding-right: 12px;
+  *padding-bottom: 7px;
+  padding-left: 12px;
+}
+
+.btn-group.open .dropdown-toggle {
+  background-image: none;
+  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+     -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+          box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+
+.btn-group.open .btn.dropdown-toggle {
+  background-color: #e6e6e6;
+}
+
+.btn-group.open .btn-primary.dropdown-toggle {
+  background-color: #0044cc;
+}
+
+.btn-group.open .btn-warning.dropdown-toggle {
+  background-color: #f89406;
+}
+
+.btn-group.open .btn-danger.dropdown-toggle {
+  background-color: #bd362f;
+}
+
+.btn-group.open .btn-success.dropdown-toggle {
+  background-color: #51a351;
+}
+
+.btn-group.open .btn-info.dropdown-toggle {
+  background-color: #2f96b4;
+}
+
+.btn-group.open .btn-inverse.dropdown-toggle {
+  background-color: #222222;
+}
+
+.btn .caret {
+  margin-top: 8px;
+  margin-left: 0;
+}
+
+.btn-large .caret {
+  margin-top: 6px;
+}
+
+.btn-large .caret {
+  border-top-width: 5px;
+  border-right-width: 5px;
+  border-left-width: 5px;
+}
+
+.btn-mini .caret,
+.btn-small .caret {
+  margin-top: 8px;
+}
+
+.dropup .btn-large .caret {
+  border-bottom-width: 5px;
+}
+
+.btn-primary .caret,
+.btn-warning .caret,
+.btn-danger .caret,
+.btn-info .caret,
+.btn-success .caret,
+.btn-inverse .caret {
+  border-top-color: #ffffff;
+  border-bottom-color: #ffffff;
+}
+
+.btn-group-vertical {
+  display: inline-block;
+  *display: inline;
+  /* IE7 inline-block hack */
+
+  *zoom: 1;
+}
+
+.btn-group-vertical > .btn {
+  display: block;
+  float: none;
+  max-width: 100%;
+  -webkit-border-radius: 0;
+     -moz-border-radius: 0;
+          border-radius: 0;
+}
+
+.btn-group-vertical > .btn + .btn {
+  margin-top: -1px;
+  margin-left: 0;
+}
+
+.btn-group-vertical > .btn:first-child {
+  -webkit-border-radius: 4px 4px 0 0;
+     -moz-border-radius: 4px 4px 0 0;
+          border-radius: 4px 4px 0 0;
+}
+
+.btn-group-vertical > .btn:last-child {
+  -webkit-border-radius: 0 0 4px 4px;
+     -moz-border-radius: 0 0 4px 4px;
+          border-radius: 0 0 4px 4px;
+}
+
+.btn-group-vertical > .btn-large:first-child {
+  -webkit-border-radius: 6px 6px 0 0;
+     -moz-border-radius: 6px 6px 0 0;
+          border-radius: 6px 6px 0 0;
+}
+
+.btn-group-vertical > .btn-large:last-child {
+  -webkit-border-radius: 0 0 6px 6px;
+     -moz-border-radius: 0 0 6px 6px;
+          border-radius: 0 0 6px 6px;
+}
+
+.alert {
+  padding: 8px 35px 8px 14px;
+  margin-bottom: 20px;
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+  background-color: #fcf8e3;
+  border: 1px solid #fbeed5;
+  -webkit-border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
+}
+
+.alert,
+.alert h4 {
+  color: #c09853;
+}
+
+.alert h4 {
+  margin: 0;
+}
+
+.alert .close {
+  position: relative;
+  top: -2px;
+  right: -21px;
+  line-height: 20px;
+}
+
+.alert-success {
+  color: #468847;
+  background-color: #dff0d8;
+  border-color: #d6e9c6;
+}
+
+.alert-success h4 {
+  color: #468847;
+}
+
+.alert-danger,
+.alert-error {
+  color: #b94a48;
+  background-color: #f2dede;
+  border-color: #eed3d7;
+}
+
+.alert-danger h4,
+.alert-error h4 {
+  color: #b94a48;
+}
+
+.alert-info {
+  color: #3a87ad;
+  background-color: #d9edf7;
+  border-color: #bce8f1;
+}
+
+.alert-info h4 {
+  color: #3a87ad;
+}
+
+.alert-block {
+  padding-top: 14px;
+  padding-bottom: 14px;
+}
+
+.alert-block > p,
+.alert-block > ul {
+  margin-bottom: 0;
+}
+
+.alert-block p + p {
+  margin-top: 5px;
+}
+
+.nav {
+  margin-bottom: 20px;
+  margin-left: 0;
+  list-style: none;
+}
+
+.nav > li > a {
+  display: block;
+}
+
+.nav > li > a:hover,
+.nav > li > a:focus {
+  text-decoration: none;
+  background-color: #eeeeee;
+}
+
+.nav > li > a > img {
+  max-width: none;
+}
+
+.nav > .pull-right {
+  float: right;
+}
+
+.nav-header {
+  display: block;
+  padding: 3px 15px;
+  font-size: 11px;
+  font-weight: bold;
+  line-height: 20px;
+  color: #999999;
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+  text-transform: uppercase;
+}
+
+.nav li + .nav-header {
+  margin-top: 9px;
+}
+
+.nav-list {
+  padding-right: 15px;
+  padding-left: 15px;
+  margin-bottom: 0;
+}
+
+.nav-list > li > a,
+.nav-list .nav-header {
+  margin-right: -15px;
+  margin-left: -15px;
+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+}
+
+.nav-list > li > a {
+  padding: 3px 15px;
+}
+
+.nav-list > .active > a,
+.nav-list > .active > a:hover,
+.nav-list > .active > a:focus {
+  color: #ffffff;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
+  background-color: #0088cc;
+}
+
+.nav-list [class^="icon-"],
+.nav-list [class*=" icon-"] {
+  margin-right: 2px;
+}
+
+.nav-list .divider {
+  *width: 100%;
+  height: 1px;
+  margin: 9px 1px;
+  *margin: -5px 0 5px;
+  overflow: hidden;
+  background-color: #e5e5e5;
+  border-bottom: 1px solid #ffffff;
+}
+
+.nav-tabs,
+.nav-pills {
+  *zoom: 1;
+}
+
+.nav-tabs:before,
+.nav-pills:before,
+.nav-tabs:after,
+.nav-pills:after {
+  display: table;
+  line-height: 0;
+  content: "";
+}
+
+.nav-tabs:after,
+.nav-pills:after {
+  clear: both;
+}
+
+.nav-tabs > li,
+.nav-pills > li {
+  float: left;
+}
+
+.nav-tabs > li > a,
+.nav-pills > li > a {
+  padding-right: 12px;
+  padding-left: 12px;
+  margin-right: 2px;
+  line-height: 14px;
+}
+
+.nav-tabs {
+  border-bottom: 1px solid #ddd;
+}
+
+.nav-tabs > li {
+  margin-bottom: -1px;
+}
+
+.nav-tabs > li > a {
+  padding-top: 8px;
+  padding-bottom: 8px;
+  line-height: 20px;
+  border: 1px solid transparent;
+  -webkit-border-radius: 4px 4px 0 0;
+     -moz-border-radius: 4px 4px 0 0;
+          border-radius: 4px 4px 0 0;
+}
+
+.nav-tabs > li > a:hover,
+.nav-tabs > li > a:focus {
+  border-color: #eeeeee #eeeeee #dddddd;
+}
+
+.nav-tabs > .active > a,
+.nav-tabs > .active > a:hover,
+.nav-tabs > .active > a:focus {
+  color: #555555;
+  cursor: default;
+  background-color: #ffffff;
+  border: 1px solid #ddd;
+  border-bottom-color: transparent;
+}
+
+.nav-pills > li > a {
+  padding-top: 8px;
+  padding-bottom: 8px;
+  margin-top: 2px;
+  margin-bottom: 2px;
+  -webkit-border-radius: 5px;
+     -moz-border-radius: 5px;
+          border-radius: 5px;
+}
+
+.nav-pills > .active > a,
+.nav-pills > .active > a:hover,
+.nav-pills > .active > a:focus {
+  color: #ffffff;
+  background-color: #0088cc;
+}
+
+.nav-stacked > li {
+  float: none;
+}
+
+.nav-stacked > li > a {
+  margin-right: 0;
+}
+
+.nav-tabs.nav-stacked {
+  border-bottom: 0;
+}
+
+.nav-tabs.nav-stacked > li > a {
+  border: 1px solid #ddd;
+  -webkit-border-radius: 0;
+     -moz-border-radius: 0;
+          border-radius: 0;
+}
+
+.nav-tabs.nav-stacked > li:first-child > a {
+  -webkit-border-top-right-radius: 4px;
+          border-top-right-radius: 4px;
+  -webkit-border-top-left-radius: 4px;
+          border-top-left-radius: 4px;
+  -moz-border-radius-topright: 4px;
+  -moz-border-radius-topleft: 4px;
+}
+
+.nav-tabs.nav-stacked > li:last-child > a {
+  -webkit-border-bottom-right-radius: 4px;
+          border-bottom-right-radius: 4px;
+  -webkit-border-bottom-left-radius: 4px;
+          border-bottom-left-radius: 4px;
+  -moz-border-radius-bottomright: 4px;
+  -moz-border-radius-bottomleft: 4px;
+}
+
+.nav-tabs.nav-stacked > li > a:hover,
+.nav-tabs.nav-stacked > li > a:focus {
+  z-index: 2;
+  border-color: #ddd;
+}
+
+.nav-pills.nav-stacked > li > a {
+  margin-bottom: 3px;
+}
+
+.nav-pills.nav-stacked > li:last-child > a {
+  margin-bottom: 1px;
+}
+
+.nav-tabs .dropdown-menu {
+  -webkit-border-radius: 0 0 6px 6px;
+     -moz-border-radius: 0 0 6px 6px;
+          border-radius: 0 0 6px 6px;
+}
+
+.nav-pills .dropdown-menu {
+  -webkit-border-radius: 6px;
+     -moz-border-radius: 6px;
+          border-radius: 6px;
+}
+
+.nav .dropdown-toggle .caret {
+  margin-top: 6px;
+  border-top-color: #0088cc;
+  border-bottom-color: #0088cc;
+}
+
+.nav .dropdown-toggle:hover .caret,
+.nav .dropdown-toggle:focus .caret {
+  border-top-color: #005580;
+  border-bottom-color: #005580;
+}
+
+/* move down carets for tabs */
+
+.nav-tabs .dropdown-toggle .caret {
+  margin-top: 8px;
+}
+
+.nav .active .dropdown-toggle .caret {
+  border-top-color: #fff;
+  border-bottom-color: #fff;
+}
+
+.nav-tabs .active .dropdown-toggle .caret {
+  border-top-color: #555555;
+  border-bottom-color: #555555;
+}
+
+.nav > .dropdown.active > a:hover,
+.nav > .dropdown.active > a:focus {
+  cursor: pointer;
+}
+
+.nav-tabs .open .dropdown-toggle,
+.nav-pills .open .dropdown-toggle,
+.nav > li.dropdown.open.active > a:hover,
+.nav > li.dropdown.open.active > a:focus {
+  color: #ffffff;
+  background-color: #999999;
+  border-color: #999999;
+}
+
+.nav li.dropdown.open .caret,
+.nav li.dropdown.open.active .caret,
+.nav li.dropdown.open a:hover .caret,
+.nav li.dropdown.open a:focus .caret {
+  border-top-color: #ffffff;
+  border-bottom-color: #ffffff;
+  opacity: 1;
+  filter: alpha(opacity=100);
+}
+
+.tabs-stacked .open > a:hover,
+.tabs-stacked .open > a:focus {
+  border-color: #999999;
+}
+
+.tabbable {
+  *zoom: 1;
+}
+
+.tabbable:before,
+.tabbable:after {
+  display: table;
+  line-height: 0;
+  content: "";
+}
+
+.tabbable:after {
+  clear: both;
+}
+
+.tab-content {
+  overflow: auto;
+}
+
+.tabs-below > .nav-tabs,
+.tabs-right > .nav-tabs,
+.tabs-left > .nav-tabs {
+  border-bottom: 0;
+}
+
+.tab-content > .tab-pane,
+.pill-content > .pill-pane {
+  display: none;
+}
+
+.tab-content > .active,
+.pill-content > .active {
+  display: block;
+}
+
+.tabs-below > .nav-tabs {
+  border-top: 1px solid #ddd;
+}
+
+.tabs-below > .nav-tabs > li {
+  margin-top: -1px;
+  margin-bottom: 0;
+}
+
+.tabs-below > .nav-tabs > li > a {
+  -webkit-border-radius: 0 0 4px 4px;
+     -moz-border-radius: 0 0 4px 4px;
+          border-radius: 0 0 4px 4px;
+}
+
+.tabs-below > .nav-tabs > li > a:hover,
+.tabs-below > .nav-tabs > li > a:focus {
+  border-top-color: #ddd;
+  border-bottom-color: transparent;
+}
+
+.tabs-below > .nav-tabs > .active > a,
+.tabs-below > .nav-tabs > .active > a:hover,
+.tabs-below > .nav-tabs > .active > a:focus {
+  border-color: transparent #ddd #ddd #ddd;
+}
+
+.tabs-left > .nav-tabs > li,
+.tabs-right > .nav-tabs > li {
+  float: none;
+}
+
+.tabs-left > .nav-tabs > li > a,
+.tabs-right > .nav-tabs > li > a {
+  min-width: 74px;
+  margin-right: 0;
+  margin-bottom: 3px;
+}
+
+.tabs-left > .nav-tabs {
+  float: left;
+  margin-right: 19px;
+  border-right: 1px solid #ddd;
+}
+
+.tabs-left > .nav-tabs > li > a {
+  margin-right: -1px;
+  -webkit-border-radius: 4px 0 0 4px;
+     -moz-border-radius: 4px 0 0 4px;
+          border-radius: 4px 0 0 4px;
+}
+
+.tabs-left > .nav-tabs > li > a:hover,
+.tabs-left > .nav-tabs > li > a:focus {
+  border-color: #eeeeee #dddddd #eeeeee #eeeeee;
+}
+
+.tabs-left > .nav-tabs .active > a,
+.tabs-left > .nav-tabs .active > a:hover,
+.tabs-left > .nav-tabs .active > a:focus {
+  border-color: #ddd transparent #ddd #ddd;
+  *border-right-color: #ffffff;
+}
+
+.tabs-right > .nav-tabs {
+  float: right;
+  margin-left: 19px;
+  border-left: 1px solid #ddd;
+}
+
+.tabs-right > .nav-tabs > li > a {
+  margin-left: -1px;
+  -webkit-border-radius: 0 4px 4px 0;
+     -moz-border-radius: 0 4px 4px 0;
+          border-radius: 0 4px 4px 0;
+}
+
+.tabs-right > .nav-tabs > li > a:hover,
+.tabs-right > .nav-tabs > li > a:focus {
+  border-color: #eeeeee #eeeeee #eeeeee #dddddd;
+}
+
+.tabs-right > .nav-tabs .active > a,
+.tabs-right > .nav-tabs .active > a:hover,
+.tabs-right > .nav-tabs .active > a:focus {
+  border-color: #ddd #ddd #ddd transparent;
+  *border-left-color: #ffffff;
+}
+
+.nav > .disabled > a {
+  color: #999999;
+}
+
+.nav > .disabled > a:hover,
+.nav > .disabled > a:focus {
+  text-decoration: none;
+  cursor: default;
+  background-color: transparent;
+}
+
+.navbar {
+  *position: relative;
+  *z-index: 2;
+  margin-bottom: 20px;
+  overflow: visible;
+}
+
+.navbar-inner {
+  min-height: 40px;
+  padding-right: 20px;
+  padding-left: 20px;
+  background-color: #fafafa;
+  background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));
+  background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2);
+  background-image: -o-linear-gradient(top, #ffffff, #f2f2f2);
+  background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);
+  background-repeat: repeat-x;
+  border: 1px solid #d4d4d4;
+  -webkit-border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
+  *zoom: 1;
+  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
+     -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
+          box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
+}
+
+.navbar-inner:before,
+.navbar-inner:after {
+  display: table;
+  line-height: 0;
+  content: "";
+}
+
+.navbar-inner:after {
+  clear: both;
+}
+
+.navbar .container {
+  width: auto;
+}
+
+.nav-collapse.collapse {
+  height: auto;
+  overflow: visible;
+}
+
+.navbar .brand {
+  display: block;
+  float: left;
+  padding: 10px 20px 10px;
+  margin-left: -20px;
+  font-size: 20px;
+  font-weight: 200;
+  color: #777777;
+  text-shadow: 0 1px 0 #ffffff;
+}
+
+.navbar .brand:hover,
+.navbar .brand:focus {
+  text-decoration: none;
+}
+
+.navbar-text {
+  margin-bottom: 0;
+  line-height: 40px;
+  color: #777777;
+}
+
+.navbar-link {
+  color: #777777;
+}
+
+.navbar-link:hover,
+.navbar-link:focus {
+  color: #333333;
+}
+
+.navbar .divider-vertical {
+  height: 40px;
+  margin: 0 9px;
+  border-right: 1px solid #ffffff;
+  border-left: 1px solid #f2f2f2;
+}
+
+.navbar .btn,
+.navbar .btn-group {
+  margin-top: 5px;
+}
+
+.navbar .btn-group .btn,
+.navbar .input-prepend .btn,
+.navbar .input-append .btn,
+.navbar .input-prepend .btn-group,
+.navbar .input-append .btn-group {
+  margin-top: 0;
+}
+
+.navbar-form {
+  margin-bottom: 0;
+  *zoom: 1;
+}
+
+.navbar-form:before,
+.navbar-form:after {
+  display: table;
+  line-height: 0;
+  content: "";
+}
+
+.navbar-form:after {
+  clear: both;
+}
+
+.navbar-form input,
+.navbar-form select,
+.navbar-form .radio,
+.navbar-form .checkbox {
+  margin-top: 5px;
+}
+
+.navbar-form input,
+.navbar-form select,
+.navbar-form .btn {
+  display: inline-block;
+  margin-bottom: 0;
+}
+
+.navbar-form input[type="image"],
+.navbar-form input[type="checkbox"],
+.navbar-form input[type="radio"] {
+  margin-top: 3px;
+}
+
+.navbar-form .input-append,
+.navbar-form .input-prepend {
+  margin-top: 5px;
+  white-space: nowrap;
+}
+
+.navbar-form .input-append input,
+.navbar-form .input-prepend input {
+  margin-top: 0;
+}
+
+.navbar-search {
+  position: relative;
+  float: left;
+  margin-top: 5px;
+  margin-bottom: 0;
+}
+
+.navbar-search .search-query {
+  padding: 4px 14px;
+  margin-bottom: 0;
+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+  font-size: 13px;
+  font-weight: normal;
+  line-height: 1;
+  -webkit-border-radius: 15px;
+     -moz-border-radius: 15px;
+          border-radius: 15px;
+}
+
+.navbar-static-top {
+  position: static;
+  margin-bottom: 0;
+}
+
+.navbar-static-top .navbar-inner {
+  -webkit-border-radius: 0;
+     -moz-border-radius: 0;
+          border-radius: 0;
+}
+
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+  position: fixed;
+  right: 0;
+  left: 0;
+  z-index: 1030;
+  margin-bottom: 0;
+}
+
+.navbar-fixed-top .navbar-inner,
+.navbar-static-top .navbar-inner {
+  border-width: 0 0 1px;
+}
+
+.navbar-fixed-bottom .navbar-inner {
+  border-width: 1px 0 0;
+}
+
+.navbar-fixed-top .navbar-inner,
+.navbar-fixed-bottom .navbar-inner {
+  padding-right: 0;
+  padding-left: 0;
+  -webkit-border-radius: 0;
+     -moz-border-radius: 0;
+          border-radius: 0;
+}
+
+.navbar-static-top .container,
+.navbar-fixed-top .container,
+.navbar-fixed-bottom .container {
+  width: 940px;
+}
+
+.navbar-fixed-top {
+  top: 0;
+}
+
+.navbar-fixed-top .navbar-inner,
+.navbar-static-top .navbar-inner {
+  -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
+     -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
+          box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
+}
+
+.navbar-fixed-bottom {
+  bottom: 0;
+}
+
+.navbar-fixed-bottom .navbar-inner {
+  -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
+     -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
+          box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
+}
+
+.navbar .nav {
+  position: relative;
+  left: 0;
+  display: block;
+  float: left;
+  margin: 0 10px 0 0;
+}
+
+.navbar .nav.pull-right {
+  float: right;
+  margin-right: 0;
+}
+
+.navbar .nav > li {
+  float: left;
+}
+
+.navbar .nav > li > a {
+  float: none;
+  padding: 10px 15px 10px;
+  color: #777777;
+  text-decoration: none;
+  text-shadow: 0 1px 0 #ffffff;
+}
+
+.navbar .nav .dropdown-toggle .caret {
+  margin-top: 8px;
+}
+
+.navbar .nav > li > a:focus,
+.navbar .nav > li > a:hover {
+  color: #333333;
+  text-decoration: none;
+  background-color: transparent;
+}
+
+.navbar .nav > .active > a,
+.navbar .nav > .active > a:hover,
+.navbar .nav > .active > a:focus {
+  color: #555555;
+  text-decoration: none;
+  background-color: #e5e5e5;
+  -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
+     -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
+          box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
+}
+
+.navbar .btn-navbar {
+  display: none;
+  float: right;
+  padding: 7px 10px;
+  margin-right: 5px;
+  margin-left: 5px;
+  color: #ffffff;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+  background-color: #ededed;
+  *background-color: #e5e5e5;
+  background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));
+  background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5);
+  background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5);
+  background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5);
+  background-repeat: repeat-x;
+  border-color: #e5e5e5 #e5e5e5 #bfbfbf;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
+     -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
+}
+
+.navbar .btn-navbar:hover,
+.navbar .btn-navbar:focus,
+.navbar .btn-navbar:active,
+.navbar .btn-navbar.active,
+.navbar .btn-navbar.disabled,
+.navbar .btn-navbar[disabled] {
+  color: #ffffff;
+  background-color: #e5e5e5;
+  *background-color: #d9d9d9;
+}
+
+.navbar .btn-navbar:active,
+.navbar .btn-navbar.active {
+  background-color: #cccccc \9;
+}
+
+.navbar .btn-navbar .icon-bar {
+  display: block;
+  width: 18px;
+  height: 2px;
+  background-color: #f5f5f5;
+  -webkit-border-radius: 1px;
+     -moz-border-radius: 1px;
+          border-radius: 1px;
+  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
+     -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
+          box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
+}
+
+.btn-navbar .icon-bar + .icon-bar {
+  margin-top: 3px;
+}
+
+.navbar .nav > li > .dropdown-menu:before {
+  position: absolute;
+  top: -7px;
+  left: 9px;
+  display: inline-block;
+  border-right: 7px solid transparent;
+  border-bottom: 7px solid #ccc;
+  border-left: 7px solid transparent;
+  border-bottom-color: rgba(0, 0, 0, 0.2);
+  content: '';
+}
+
+.navbar .nav > li > .dropdown-menu:after {
+  position: absolute;
+  top: -6px;
+  left: 10px;
+  display: inline-block;
+  border-right: 6px solid transparent;
+  border-bottom: 6px solid #ffffff;
+  border-left: 6px solid transparent;
+  content: '';
+}
+
+.navbar-fixed-bottom .nav > li > .dropdown-menu:before {
+  top: auto;
+  bottom: -7px;
+  border-top: 7px solid #ccc;
+  border-bottom: 0;
+  border-top-color: rgba(0, 0, 0, 0.2);
+}
+
+.navbar-fixed-bottom .nav > li > .dropdown-menu:after {
+  top: auto;
+  bottom: -6px;
+  border-top: 6px solid #ffffff;
+  border-bottom: 0;
+}
+
+.navbar .nav li.dropdown > a:hover .caret,
+.navbar .nav li.dropdown > a:focus .caret {
+  border-top-color: #333333;
+  border-bottom-color: #333333;
+}
+
+.navbar .nav li.dropdown.open > .dropdown-toggle,
+.navbar .nav li.dropdown.active > .dropdown-toggle,
+.navbar .nav li.dropdown.open.active > .dropdown-toggle {
+  color: #555555;
+  background-color: #e5e5e5;
+}
+
+.navbar .nav li.dropdown > .dropdown-toggle .caret {
+  border-top-color: #777777;
+  border-bottom-color: #777777;
+}
+
+.navbar .nav li.dropdown.open > .dropdown-toggle .caret,
+.navbar .nav li.dropdown.active > .dropdown-toggle .caret,
+.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
+  border-top-color: #555555;
+  border-bottom-color: #555555;
+}
+
+.navbar .pull-right > li > .dropdown-menu,
+.navbar .nav > li > .dropdown-menu.pull-right {
+  right: 0;
+  left: auto;
+}
+
+.navbar .pull-right > li > .dropdown-menu:before,
+.navbar .nav > li > .dropdown-menu.pull-right:before {
+  right: 12px;
+  left: auto;
+}
+
+.navbar .pull-right > li > .dropdown-menu:after,
+.navbar .nav > li > .dropdown-menu.pull-right:after {
+  right: 13px;
+  left: auto;
+}
+
+.navbar .pull-right > li > .dropdown-menu .dropdown-menu,
+.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu {
+  right: 100%;
+  left: auto;
+  margin-right: -1px;
+  margin-left: 0;
+  -webkit-border-radius: 6px 0 6px 6px;
+     -moz-border-radius: 6px 0 6px 6px;
+          border-radius: 6px 0 6px 6px;
+}
+
+.navbar-inverse .navbar-inner {
+  background-color: #1b1b1b;
+  background-image: -moz-linear-gradient(top, #222222, #111111);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));
+  background-image: -webkit-linear-gradient(top, #222222, #111111);
+  background-image: -o-linear-gradient(top, #222222, #111111);
+  background-image: linear-gradient(to bottom, #222222, #111111);
+  background-repeat: repeat-x;
+  border-color: #252525;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);
+}
+
+.navbar-inverse .brand,
+.navbar-inverse .nav > li > a {
+  color: #999999;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+
+.navbar-inverse .brand:hover,
+.navbar-inverse .nav > li > a:hover,
+.navbar-inverse .brand:focus,
+.navbar-inverse .nav > li > a:focus {
+  color: #ffffff;
+}
+
+.navbar-inverse .brand {
+  color: #999999;
+}
+
+.navbar-inverse .navbar-text {
+  color: #999999;
+}
+
+.navbar-inverse .nav > li > a:focus,
+.navbar-inverse .nav > li > a:hover {
+  color: #ffffff;
+  background-color: transparent;
+}
+
+.navbar-inverse .nav .active > a,
+.navbar-inverse .nav .active > a:hover,
+.navbar-inverse .nav .active > a:focus {
+  color: #ffffff;
+  background-color: #111111;
+}
+
+.navbar-inverse .navbar-link {
+  color: #999999;
+}
+
+.navbar-inverse .navbar-link:hover,
+.navbar-inverse .navbar-link:focus {
+  color: #ffffff;
+}
+
+.navbar-inverse .divider-vertical {
+  border-right-color: #222222;
+  border-left-color: #111111;
+}
+
+.navbar-inverse .nav li.dropdown.open > .dropdown-toggle,
+.navbar-inverse .nav li.dropdown.active > .dropdown-toggle,
+.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle {
+  color: #ffffff;
+  background-color: #111111;
+}
+
+.navbar-inverse .nav li.dropdown > a:hover .caret,
+.navbar-inverse .nav li.dropdown > a:focus .caret {
+  border-top-color: #ffffff;
+  border-bottom-color: #ffffff;
+}
+
+.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret {
+  border-top-color: #999999;
+  border-bottom-color: #999999;
+}
+
+.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret,
+.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret,
+.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret {
+  border-top-color: #ffffff;
+  border-bottom-color: #ffffff;
+}
+
+.navbar-inverse .navbar-search .search-query {
+  color: #ffffff;
+  background-color: #515151;
+  border-color: #111111;
+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
+     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
+          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
+  -webkit-transition: none;
+     -moz-transition: none;
+       -o-transition: none;
+          transition: none;
+}
+
+.navbar-inverse .navbar-search .search-query:-moz-placeholder {
+  color: #cccccc;
+}
+
+.navbar-inverse .navbar-search .search-query:-ms-input-placeholder {
+  color: #cccccc;
+}
+
+.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder {
+  color: #cccccc;
+}
+
+.navbar-inverse .navbar-search .search-query:focus,
+.navbar-inverse .navbar-search .search-query.focused {
+  padding: 5px 15px;
+  color: #333333;
+  text-shadow: 0 1px 0 #ffffff;
+  background-color: #ffffff;
+  border: 0;
+  outline: 0;
+  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
+     -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
+          box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
+}
+
+.navbar-inverse .btn-navbar {
+  color: #ffffff;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+  background-color: #0e0e0e;
+  *background-color: #040404;
+  background-image: -moz-linear-gradient(top, #151515, #040404);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));
+  background-image: -webkit-linear-gradient(top, #151515, #040404);
+  background-image: -o-linear-gradient(top, #151515, #040404);
+  background-image: linear-gradient(to bottom, #151515, #040404);
+  background-repeat: repeat-x;
+  border-color: #040404 #040404 #000000;
+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+}
+
+.navbar-inverse .btn-navbar:hover,
+.navbar-inverse .btn-navbar:focus,
+.navbar-inverse .btn-navbar:active,
+.navbar-inverse .btn-navbar.active,
+.navbar-inverse .btn-navbar.disabled,
+.navbar-inverse .btn-navbar[disabled] {
+  color: #ffffff;
+  background-color: #040404;
+  *background-color: #000000;
+}
+
+.navbar-inverse .btn-navbar:active,
+.navbar-inverse .btn-navbar.active {
+  background-color: #000000 \9;
+}
+
+.breadcrumb {
+  padding: 8px 15px;
+  margin: 0 0 20px;
+  list-style: none;
+  background-color: #f5f5f5;
+  -webkit-border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
+}
+
+.breadcrumb > li {
+  display: inline-block;
+  *display: inline;
+  text-shadow: 0 1px 0 #ffffff;
+  *zoom: 1;
+}
+
+.breadcrumb > li > .divider {
+  padding: 0 5px;
+  color: #ccc;
+}
+
+.breadcrumb > .active {
+  color: #999999;
+}
+
+.pagination {
+  margin: 20px 0;
+}
+
+.pagination ul {
+  display: inline-block;
+  *display: inline;
+  margin-bottom: 0;
+  margin-left: 0;
+  -webkit-border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
+  *zoom: 1;
+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+     -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+          box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+
+.pagination ul > li {
+  display: inline;
+}
+
+.pagination ul > li > a,
+.pagination ul > li > span {
+  float: left;
+  padding: 4px 12px;
+  line-height: 20px;
+  text-decoration: none;
+  background-color: #ffffff;
+  border: 1px solid #dddddd;
+  border-left-width: 0;
+}
+
+.pagination ul > li > a:hover,
+.pagination ul > li > a:focus,
+.pagination ul > .active > a,
+.pagination ul > .active > span {
+  background-color: #f5f5f5;
+}
+
+.pagination ul > .active > a,
+.pagination ul > .active > span {
+  color: #999999;
+  cursor: default;
+}
+
+.pagination ul > .disabled > span,
+.pagination ul > .disabled > a,
+.pagination ul > .disabled > a:hover,
+.pagination ul > .disabled > a:focus {
+  color: #999999;
+  cursor: default;
+  background-color: transparent;
+}
+
+.pagination ul > li:first-child > a,
+.pagination ul > li:first-child > span {
+  border-left-width: 1px;
+  -webkit-border-bottom-left-radius: 4px;
+          border-bottom-left-radius: 4px;
+  -webkit-border-top-left-radius: 4px;
+          border-top-left-radius: 4px;
+  -moz-border-radius-bottomleft: 4px;
+  -moz-border-radius-topleft: 4px;
+}
+
+.pagination ul > li:last-child > a,
+.pagination ul > li:last-child > span {
+  -webkit-border-top-right-radius: 4px;
+          border-top-right-radius: 4px;
+  -webkit-border-bottom-right-radius: 4px;
+          border-bottom-right-radius: 4px;
+  -moz-border-radius-topright: 4px;
+  -moz-border-radius-bottomright: 4px;
+}
+
+.pagination-centered {
+  text-align: center;
+}
+
+.pagination-right {
+  text-align: right;
+}
+
+.pagination-large ul > li > a,
+.pagination-large ul > li > span {
+  padding: 11px 19px;
+  font-size: 17.5px;
+}
+
+.pagination-large ul > li:first-child > a,
+.pagination-large ul > li:first-child > span {
+  -webkit-border-bottom-left-radius: 6px;
+          border-bottom-left-radius: 6px;
+  -webkit-border-top-left-radius: 6px;
+          border-top-left-radius: 6px;
+  -moz-border-radius-bottomleft: 6px;
+  -moz-border-radius-topleft: 6px;
+}
+
+.pagination-large ul > li:last-child > a,
+.pagination-large ul > li:last-child > span {
+  -webkit-border-top-right-radius: 6px;
+          border-top-right-radius: 6px;
+  -webkit-border-bottom-right-radius: 6px;
+          border-bottom-right-radius: 6px;
+  -moz-border-radius-topright: 6px;
+  -moz-border-radius-bottomright: 6px;
+}
+
+.pagination-mini ul > li:first-child > a,
+.pagination-small ul > li:first-child > a,
+.pagination-mini ul > li:first-child > span,
+.pagination-small ul > li:first-child > span {
+  -webkit-border-bottom-left-radius: 3px;
+          border-bottom-left-radius: 3px;
+  -webkit-border-top-left-radius: 3px;
+          border-top-left-radius: 3px;
+  -moz-border-radius-bottomleft: 3px;
+  -moz-border-radius-topleft: 3px;
+}
+
+.pagination-mini ul > li:last-child > a,
+.pagination-small ul > li:last-child > a,
+.pagination-mini ul > li:last-child > span,
+.pagination-small ul > li:last-child > span {
+  -webkit-border-top-right-radius: 3px;
+          border-top-right-radius: 3px;
+  -webkit-border-bottom-right-radius: 3px;
+          border-bottom-right-radius: 3px;
+  -moz-border-radius-topright: 3px;
+  -moz-border-radius-bottomright: 3px;
+}
+
+.pagination-small ul > li > a,
+.pagination-small ul > li > span {
+  padding: 2px 10px;
+  font-size: 11.9px;
+}
+
+.pagination-mini ul > li > a,
+.pagination-mini ul > li > span {
+  padding: 0 6px;
+  font-size: 10.5px;
+}
+
+.pager {
+  margin: 20px 0;
+  text-align: center;
+  list-style: none;
+  *zoom: 1;
+}
+
+.pager:before,
+.pager:after {
+  display: table;
+  line-height: 0;
+  content: "";
+}
+
+.pager:after {
+  clear: both;
+}
+
+.pager li {
+  display: inline;
+}
+
+.pager li > a,
+.pager li > span {
+  display: inline-block;
+  padding: 5px 14px;
+  background-color: #fff;
+  border: 1px solid #ddd;
+  -webkit-border-radius: 15px;
+     -moz-border-radius: 15px;
+          border-radius: 15px;
+}
+
+.pager li > a:hover,
+.pager li > a:focus {
+  text-decoration: none;
+  background-color: #f5f5f5;
+}
+
+.pager .next > a,
+.pager .next > span {
+  float: right;
+}
+
+.pager .previous > a,
+.pager .previous > span {
+  float: left;
+}
+
+.pager .disabled > a,
+.pager .disabled > a:hover,
+.pager .disabled > a:focus,
+.pager .disabled > span {
+  color: #999999;
+  cursor: default;
+  background-color: #fff;
+}
+
+.modal-backdrop {
+  position: fixed;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1040;
+  background-color: #000000;
+}
+
+.modal-backdrop.fade {
+  opacity: 0;
+}
+
+.modal-backdrop,
+.modal-backdrop.fade.in {
+  opacity: 0.8;
+  filter: alpha(opacity=80);
+}
+
+.modal {
+  position: fixed;
+  top: 10%;
+  left: 50%;
+  z-index: 1050;
+  width: 560px;
+  margin-left: -280px;
+  background-color: #ffffff;
+  border: 1px solid #999;
+  border: 1px solid rgba(0, 0, 0, 0.3);
+  *border: 1px solid #999;
+  -webkit-border-radius: 6px;
+     -moz-border-radius: 6px;
+          border-radius: 6px;
+  outline: none;
+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+     -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+          box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
+  -webkit-background-clip: padding-box;
+     -moz-background-clip: padding-box;
+          background-clip: padding-box;
+}
+
+.modal.fade {
+  top: -25%;
+  -webkit-transition: opacity 0.3s linear, top 0.3s ease-out;
+     -moz-transition: opacity 0.3s linear, top 0.3s ease-out;
+       -o-transition: opacity 0.3s linear, top 0.3s ease-out;
+          transition: opacity 0.3s linear, top 0.3s ease-out;
+}
+
+.modal.fade.in {
+  top: 10%;
+}
+
+.modal-header {
+  padding: 9px 15px;
+  border-bottom: 1px solid #eee;
+}
+
+.modal-header .close {
+  margin-top: 2px;
+}
+
+.modal-header h3 {
+  margin: 0;
+  line-height: 30px;
+}
+
+.modal-body {
+  position: relative;
+  max-height: 400px;
+  padding: 15px;
+  overflow-y: auto;
+}
+
+.modal-form {
+  margin-bottom: 0;
+}
+
+.modal-footer {
+  padding: 14px 15px 15px;
+  margin-bottom: 0;
+  text-align: right;
+  background-color: #f5f5f5;
+  border-top: 1px solid #ddd;
+  -webkit-border-radius: 0 0 6px 6px;
+     -moz-border-radius: 0 0 6px 6px;
+          border-radius: 0 0 6px 6px;
+  *zoom: 1;
+  -webkit-box-shadow: inset 0 1px 0 #ffffff;
+     -moz-box-shadow: inset 0 1px 0 #ffffff;
+          box-shadow: inset 0 1px 0 #ffffff;
+}
+
+.modal-footer:before,
+.modal-footer:after {
+  display: table;
+  line-height: 0;
+  content: "";
+}
+
+.modal-footer:after {
+  clear: both;
+}
+
+.modal-footer .btn + .btn {
+  margin-bottom: 0;
+  margin-left: 5px;
+}
+
+.modal-footer .btn-group .btn + .btn {
+  margin-left: -1px;
+}
+
+.modal-footer .btn-block + .btn-block {
+  margin-left: 0;
+}
+
+.tooltip {
+  position: absolute;
+  z-index: 1030;
+  display: block;
+  font-size: 11px;
+  line-height: 1.4;
+  opacity: 0;
+  filter: alpha(opacity=0);
+  visibility: visible;
+}
+
+.tooltip.in {
+  opacity: 0.8;
+  filter: alpha(opacity=80);
+}
+
+.tooltip.top {
+  padding: 5px 0;
+  margin-top: -3px;
+}
+
+.tooltip.right {
+  padding: 0 5px;
+  margin-left: 3px;
+}
+
+.tooltip.bottom {
+  padding: 5px 0;
+  margin-top: 3px;
+}
+
+.tooltip.left {
+  padding: 0 5px;
+  margin-left: -3px;
+}
+
+.tooltip-inner {
+  max-width: 200px;
+  padding: 8px;
+  color: #ffffff;
+  text-align: center;
+  text-decoration: none;
+  background-color: #000000;
+  -webkit-border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
+}
+
+.tooltip-arrow {
+  position: absolute;
+  width: 0;
+  height: 0;
+  border-color: transparent;
+  border-style: solid;
+}
+
+.tooltip.top .tooltip-arrow {
+  bottom: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-top-color: #000000;
+  border-width: 5px 5px 0;
+}
+
+.tooltip.right .tooltip-arrow {
+  top: 50%;
+  left: 0;
+  margin-top: -5px;
+  border-right-color: #000000;
+  border-width: 5px 5px 5px 0;
+}
+
+.tooltip.left .tooltip-arrow {
+  top: 50%;
+  right: 0;
+  margin-top: -5px;
+  border-left-color: #000000;
+  border-width: 5px 0 5px 5px;
+}
+
+.tooltip.bottom .tooltip-arrow {
+  top: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-bottom-color: #000000;
+  border-width: 0 5px 5px;
+}
+
+.popover {
+  position: absolute;
+  top: 0;
+  left: 0;
+  z-index: 1010;
+  display: none;
+  max-width: 276px;
+  padding: 1px;
+  text-align: left;
+  white-space: normal;
+  background-color: #ffffff;
+  border: 1px solid #ccc;
+  border: 1px solid rgba(0, 0, 0, 0.2);
+  -webkit-border-radius: 6px;
+     -moz-border-radius: 6px;
+          border-radius: 6px;
+  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+     -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+          box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+  -webkit-background-clip: padding-box;
+     -moz-background-clip: padding;
+          background-clip: padding-box;
+}
+
+.popover.top {
+  margin-top: -10px;
+}
+
+.popover.right {
+  margin-left: 10px;
+}
+
+.popover.bottom {
+  margin-top: 10px;
+}
+
+.popover.left {
+  margin-left: -10px;
+}
+
+.popover-title {
+  padding: 8px 14px;
+  margin: 0;
+  font-size: 14px;
+  font-weight: normal;
+  line-height: 18px;
+  background-color: #f7f7f7;
+  border-bottom: 1px solid #ebebeb;
+  -webkit-border-radius: 5px 5px 0 0;
+     -moz-border-radius: 5px 5px 0 0;
+          border-radius: 5px 5px 0 0;
+}
+
+.popover-title:empty {
+  display: none;
+}
+
+.popover-content {
+  padding: 9px 14px;
+}
+
+.popover .arrow,
+.popover .arrow:after {
+  position: absolute;
+  display: block;
+  width: 0;
+  height: 0;
+  border-color: transparent;
+  border-style: solid;
+}
+
+.popover .arrow {
+  border-width: 11px;
+}
+
+.popover .arrow:after {
+  border-width: 10px;
+  content: "";
+}
+
+.popover.top .arrow {
+  bottom: -11px;
+  left: 50%;
+  margin-left: -11px;
+  border-top-color: #999;
+  border-top-color: rgba(0, 0, 0, 0.25);
+  border-bottom-width: 0;
+}
+
+.popover.top .arrow:after {
+  bottom: 1px;
+  margin-left: -10px;
+  border-top-color: #ffffff;
+  border-bottom-width: 0;
+}
+
+.popover.right .arrow {
+  top: 50%;
+  left: -11px;
+  margin-top: -11px;
+  border-right-color: #999;
+  border-right-color: rgba(0, 0, 0, 0.25);
+  border-left-width: 0;
+}
+
+.popover.right .arrow:after {
+  bottom: -10px;
+  left: 1px;
+  border-right-color: #ffffff;
+  border-left-width: 0;
+}
+
+.popover.bottom .arrow {
+  top: -11px;
+  left: 50%;
+  margin-left: -11px;
+  border-bottom-color: #999;
+  border-bottom-color: rgba(0, 0, 0, 0.25);
+  border-top-width: 0;
+}
+
+.popover.bottom .arrow:after {
+  top: 1px;
+  margin-left: -10px;
+  border-bottom-color: #ffffff;
+  border-top-width: 0;
+}
+
+.popover.left .arrow {
+  top: 50%;
+  right: -11px;
+  margin-top: -11px;
+  border-left-color: #999;
+  border-left-color: rgba(0, 0, 0, 0.25);
+  border-right-width: 0;
+}
+
+.popover.left .arrow:after {
+  right: 1px;
+  bottom: -10px;
+  border-left-color: #ffffff;
+  border-right-width: 0;
+}
+
+.thumbnails {
+  margin-left: -20px;
+  list-style: none;
+  *zoom: 1;
+}
+
+.thumbnails:before,
+.thumbnails:after {
+  display: table;
+  line-height: 0;
+  content: "";
+}
+
+.thumbnails:after {
+  clear: both;
+}
+
+.row-fluid .thumbnails {
+  margin-left: 0;
+}
+
+.thumbnails > li {
+  float: left;
+  margin-bottom: 20px;
+  margin-left: 20px;
+}
+
+.thumbnail {
+  display: block;
+  padding: 4px;
+  line-height: 20px;
+  border: 1px solid #ddd;
+  -webkit-border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
+     -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
+          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
+  -webkit-transition: all 0.2s ease-in-out;
+     -moz-transition: all 0.2s ease-in-out;
+       -o-transition: all 0.2s ease-in-out;
+          transition: all 0.2s ease-in-out;
+}
+
+a.thumbnail:hover,
+a.thumbnail:focus {
+  border-color: #0088cc;
+  -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
+     -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
+          box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
+}
+
+.thumbnail > img {
+  display: block;
+  max-width: 100%;
+  margin-right: auto;
+  margin-left: auto;
+}
+
+.thumbnail .caption {
+  padding: 9px;
+  color: #555555;
+}
+
+.media,
+.media-body {
+  overflow: hidden;
+  *overflow: visible;
+  zoom: 1;
+}
+
+.media,
+.media .media {
+  margin-top: 15px;
+}
+
+.media:first-child {
+  margin-top: 0;
+}
+
+.media-object {
+  display: block;
+}
+
+.media-heading {
+  margin: 0 0 5px;
+}
+
+.media > .pull-left {
+  margin-right: 10px;
+}
+
+.media > .pull-right {
+  margin-left: 10px;
+}
+
+.media-list {
+  margin-left: 0;
+  list-style: none;
+}
+
+.label,
+.badge {
+  display: inline-block;
+  padding: 2px 4px;
+  font-size: 11.844px;
+  font-weight: bold;
+  line-height: 14px;
+  color: #ffffff;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+  white-space: nowrap;
+  vertical-align: baseline;
+  background-color: #999999;
+}
+
+.label {
+  -webkit-border-radius: 3px;
+     -moz-border-radius: 3px;
+          border-radius: 3px;
+}
+
+.badge {
+  padding-right: 9px;
+  padding-left: 9px;
+  -webkit-border-radius: 9px;
+     -moz-border-radius: 9px;
+          border-radius: 9px;
+}
+
+.label:empty,
+.badge:empty {
+  display: none;
+}
+
+a.label:hover,
+a.label:focus,
+a.badge:hover,
+a.badge:focus {
+  color: #ffffff;
+  text-decoration: none;
+  cursor: pointer;
+}
+
+.label-important,
+.badge-important {
+  background-color: #b94a48;
+}
+
+.label-important[href],
+.badge-important[href] {
+  background-color: #953b39;
+}
+
+.label-warning,
+.badge-warning {
+  background-color: #f89406;
+}
+
+.label-warning[href],
+.badge-warning[href] {
+  background-color: #c67605;
+}
+
+.label-success,
+.badge-success {
+  background-color: #468847;
+}
+
+.label-success[href],
+.badge-success[href] {
+  background-color: #356635;
+}
+
+.label-info,
+.badge-info {
+  background-color: #3a87ad;
+}
+
+.label-info[href],
+.badge-info[href] {
+  background-color: #2d6987;
+}
+
+.label-inverse,
+.badge-inverse {
+  background-color: #333333;
+}
+
+.label-inverse[href],
+.badge-inverse[href] {
+  background-color: #1a1a1a;
+}
+
+.btn .label,
+.btn .badge {
+  position: relative;
+  top: -1px;
+}
+
+.btn-mini .label,
+.btn-mini .badge {
+  top: 0;
+}
+
+@-webkit-keyframes progress-bar-stripes {
+  from {
+    background-position: 40px 0;
+  }
+  to {
+    background-position: 0 0;
+  }
+}
+
+@-moz-keyframes progress-bar-stripes {
+  from {
+    background-position: 40px 0;
+  }
+  to {
+    background-position: 0 0;
+  }
+}
+
+@-ms-keyframes progress-bar-stripes {
+  from {
+    background-position: 40px 0;
+  }
+  to {
+    background-position: 0 0;
+  }
+}
+
+@-o-keyframes progress-bar-stripes {
+  from {
+    background-position: 0 0;
+  }
+  to {
+    background-position: 40px 0;
+  }
+}
+
+@keyframes progress-bar-stripes {
+  from {
+    background-position: 40px 0;
+  }
+  to {
+    background-position: 0 0;
+  }
+}
+
+.progress {
+  height: 20px;
+  margin-bottom: 20px;
+  overflow: hidden;
+  background-color: #f7f7f7;
+  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
+  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
+  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
+  background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
+  background-repeat: repeat-x;
+  -webkit-border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+     -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+}
+
+.progress .bar {
+  float: left;
+  width: 0;
+  height: 100%;
+  font-size: 12px;
+  color: #ffffff;
+  text-align: center;
+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+  background-color: #0e90d2;
+  background-image: -moz-linear-gradient(top, #149bdf, #0480be);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
+  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
+  background-image: -o-linear-gradient(top, #149bdf, #0480be);
+  background-image: linear-gradient(to bottom, #149bdf, #0480be);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
+  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+     -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+  -webkit-box-sizing: border-box;
+     -moz-box-sizing: border-box;
+          box-sizing: border-box;
+  -webkit-transition: width 0.6s ease;
+     -moz-transition: width 0.6s ease;
+       -o-transition: width 0.6s ease;
+          transition: width 0.6s ease;
+}
+
+.progress .bar + .bar {
+  -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+     -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+          box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+}
+
+.progress-striped .bar {
+  background-color: #149bdf;
+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  -webkit-background-size: 40px 40px;
+     -moz-background-size: 40px 40px;
+       -o-background-size: 40px 40px;
+          background-size: 40px 40px;
+}
+
+.progress.active .bar {
+  -webkit-animation: progress-bar-stripes 2s linear infinite;
+     -moz-animation: progress-bar-stripes 2s linear infinite;
+      -ms-animation: progress-bar-stripes 2s linear infinite;
+       -o-animation: progress-bar-stripes 2s linear infinite;
+          animation: progress-bar-stripes 2s linear infinite;
+}
+
+.progress-danger .bar,
+.progress .bar-danger {
+  background-color: #dd514c;
+  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
+  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
+  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
+  background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);
+}
+
+.progress-danger.progress-striped .bar,
+.progress-striped .bar-danger {
+  background-color: #ee5f5b;
+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.progress-success .bar,
+.progress .bar-success {
+  background-color: #5eb95e;
+  background-image: -moz-linear-gradient(top, #62c462, #57a957);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
+  background-image: -webkit-linear-gradient(top, #62c462, #57a957);
+  background-image: -o-linear-gradient(top, #62c462, #57a957);
+  background-image: linear-gradient(to bottom, #62c462, #57a957);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);
+}
+
+.progress-success.progress-striped .bar,
+.progress-striped .bar-success {
+  background-color: #62c462;
+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.progress-info .bar,
+.progress .bar-info {
+  background-color: #4bb1cf;
+  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
+  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
+  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
+  background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);
+}
+
+.progress-info.progress-striped .bar,
+.progress-striped .bar-info {
+  background-color: #5bc0de;
+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.progress-warning .bar,
+.progress .bar-warning {
+  background-color: #faa732;
+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);
+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
+  background-image: -o-linear-gradient(top, #fbb450, #f89406);
+  background-image: linear-gradient(to bottom, #fbb450, #f89406);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
+}
+
+.progress-warning.progress-striped .bar,
+.progress-striped .bar-warning {
+  background-color: #fbb450;
+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
 .accordion {
-  margin-bottom: 18px;
+  margin-bottom: 20px;
 }
+
 .accordion-group {
   margin-bottom: 2px;
   border: 1px solid #e5e5e5;
   -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
+     -moz-border-radius: 4px;
+          border-radius: 4px;
 }
+
 .accordion-heading {
   border-bottom: 0;
 }
+
 .accordion-heading .accordion-toggle {
   display: block;
   padding: 8px 15px;
 }
+
 .accordion-toggle {
   cursor: pointer;
 }
+
 .accordion-inner {
   padding: 9px 15px;
   border-top: 1px solid #e5e5e5;
 }
+
 .carousel {
   position: relative;
-  margin-bottom: 18px;
+  margin-bottom: 20px;
   line-height: 1;
 }
+
 .carousel-inner {
-  overflow: hidden;
+  position: relative;
   width: 100%;
-  position: relative;
+  overflow: hidden;
 }
-.carousel .item {
+
+.carousel-inner > .item {
+  position: relative;
   display: none;
-  position: relative;
   -webkit-transition: 0.6s ease-in-out left;
-  -moz-transition: 0.6s ease-in-out left;
-  -ms-transition: 0.6s ease-in-out left;
-  -o-transition: 0.6s ease-in-out left;
-  transition: 0.6s ease-in-out left;
+     -moz-transition: 0.6s ease-in-out left;
+       -o-transition: 0.6s ease-in-out left;
+          transition: 0.6s ease-in-out left;
 }
-.carousel .item > img {
+
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
   display: block;
   line-height: 1;
 }
-.carousel .active,
-.carousel .next,
-.carousel .prev {
+
+.carousel-inner > .active,
+.carousel-inner > .next,
+.carousel-inner > .prev {
   display: block;
 }
-.carousel .active {
+
+.carousel-inner > .active {
   left: 0;
 }
-.carousel .next,
-.carousel .prev {
+
+.carousel-inner > .next,
+.carousel-inner > .prev {
   position: absolute;
   top: 0;
   width: 100%;
 }
-.carousel .next {
+
+.carousel-inner > .next {
   left: 100%;
 }
-.carousel .prev {
+
+.carousel-inner > .prev {
   left: -100%;
 }
-.carousel .next.left,
-.carousel .prev.right {
+
+.carousel-inner > .next.left,
+.carousel-inner > .prev.right {
   left: 0;
 }
-.carousel .active.left {
+
+.carousel-inner > .active.left {
   left: -100%;
 }
-.carousel .active.right {
+
+.carousel-inner > .active.right {
   left: 100%;
 }
+
 .carousel-control {
   position: absolute;
   top: 40%;
@@ -4062,834 +6049,119 @@
   background: #222222;
   border: 3px solid #ffffff;
   -webkit-border-radius: 23px;
-  -moz-border-radius: 23px;
-  border-radius: 23px;
+     -moz-border-radius: 23px;
+          border-radius: 23px;
   opacity: 0.5;
   filter: alpha(opacity=50);
 }
+
 .carousel-control.right {
-  left: auto;
   right: 15px;
+  left: auto;
 }
-.carousel-control:hover {
+
+.carousel-control:hover,
+.carousel-control:focus {
   color: #ffffff;
   text-decoration: none;
   opacity: 0.9;
   filter: alpha(opacity=90);
 }
+
+.carousel-indicators {
+  position: absolute;
+  top: 15px;
+  right: 15px;
+  z-index: 5;
+  margin: 0;
+  list-style: none;
+}
+
+.carousel-indicators li {
+  display: block;
+  float: left;
+  width: 10px;
+  height: 10px;
+  margin-left: 5px;
+  text-indent: -999px;
+  background-color: #ccc;
+  background-color: rgba(255, 255, 255, 0.25);
+  border-radius: 5px;
+}
+
+.carousel-indicators .active {
+  background-color: #fff;
+}
+
 .carousel-caption {
   position: absolute;
-  left: 0;
   right: 0;
   bottom: 0;
-  padding: 10px 15px 5px;
+  left: 0;
+  padding: 15px;
   background: #333333;
   background: rgba(0, 0, 0, 0.75);
 }
+
 .carousel-caption h4,
 .carousel-caption p {
+  line-height: 20px;
   color: #ffffff;
 }
-.well {
-  min-height: 20px;
-  padding: 19px;
-  margin-bottom: 20px;
-  background-color: #f5f5f5;
-  border: 1px solid #eee;
-  border: 1px solid rgba(0, 0, 0, 0.05);
-  -webkit-border-radius: 4px;
-  -moz-border-radius: 4px;
-  border-radius: 4px;
-  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
-  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
-  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+
+.carousel-caption h4 {
+  margin: 0 0 5px;
 }
-.well blockquote {
-  border-color: #ddd;
-  border-color: rgba(0, 0, 0, 0.15);
+
+.carousel-caption p {
+  margin-bottom: 0;
 }
-.well-large {
-  padding: 24px;
+
+.hero-unit {
+  padding: 60px;
+  margin-bottom: 30px;
+  font-size: 18px;
+  font-weight: 200;
+  line-height: 30px;
+  color: inherit;
+  background-color: #eeeeee;
   -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
+     -moz-border-radius: 6px;
+          border-radius: 6px;
 }
-.well-small {
-  padding: 9px;
-  -webkit-border-radius: 3px;
-  -moz-border-radius: 3px;
-  border-radius: 3px;
+
+.hero-unit h1 {
+  margin-bottom: 0;
+  font-size: 60px;
+  line-height: 1;
+  letter-spacing: -1px;
+  color: inherit;
 }
-.close {
-  float: right;
-  font-size: 20px;
-  font-weight: bold;
-  line-height: 18px;
-  color: #000000;
-  text-shadow: 0 1px 0 #ffffff;
-  opacity: 0.2;
-  filter: alpha(opacity=20);
+
+.hero-unit li {
+  line-height: 30px;
 }
-.close:hover {
-  color: #000000;
-  text-decoration: none;
-  cursor: pointer;
-  opacity: 0.4;
-  filter: alpha(opacity=40);
-}
-button.close {
-  padding: 0;
-  cursor: pointer;
-  background: transparent;
-  border: 0;
-  -webkit-appearance: none;
-}
+
 .pull-right {
   float: right;
 }
+
 .pull-left {
   float: left;
 }
+
 .hide {
   display: none;
 }
+
 .show {
   display: block;
 }
+
 .invisible {
   visibility: hidden;
 }
-.fade {
-  opacity: 0;
-  filter: alpha(opacity=0);
-  -webkit-transition: opacity 0.15s linear;
-  -moz-transition: opacity 0.15s linear;
-  -ms-transition: opacity 0.15s linear;
-  -o-transition: opacity 0.15s linear;
-  transition: opacity 0.15s linear;
-}
-.fade.in {
-  opacity: 1;
-  filter: alpha(opacity=100);
-}
-.collapse {
-  position: relative;
-  height: 0;
-  overflow: hidden;
-  -webkit-transition: height 0.35s ease;
-  -moz-transition: height 0.35s ease;
-  -ms-transition: height 0.35s ease;
-  -o-transition: height 0.35s ease;
-  transition: height 0.35s ease;
-}
-.collapse.in {
-  height: auto;
-}
-.hidden {
-  display: none;
-  visibility: hidden;
-}
-.visible-phone {
-  display: none !important;
-}
-.visible-tablet {
-  display: none !important;
-}
-.hidden-desktop {
-  display: none !important;
-}
-@media (max-width: 767px) {
-  .visible-phone {
-    display: inherit !important;
-  }
-  .hidden-phone {
-    display: none !important;
-  }
-  .hidden-desktop {
-    display: inherit !important;
-  }
-  .visible-desktop {
-    display: none !important;
-  }
-}
-@media (min-width: 768px) and (max-width: 979px) {
-  .visible-tablet {
-    display: inherit !important;
-  }
-  .hidden-tablet {
-    display: none !important;
-  }
-  .hidden-desktop {
-    display: inherit !important;
-  }
-  .visible-desktop {
-    display: none !important ;
-  }
-}
-@media (max-width: 480px) {
-  .nav-collapse {
-    -webkit-transform: translate3d(0, 0, 0);
-  }
-  .page-header h1 small {
-    display: block;
-    line-height: 18px;
-  }
-  input[type="checkbox"],
-  input[type="radio"] {
-    border: 1px solid #ccc;
-  }
-  .form-horizontal .control-group > label {
-    float: none;
-    width: auto;
-    padding-top: 0;
-    text-align: left;
-  }
-  .form-horizontal .controls {
-    margin-left: 0;
-  }
-  .form-horizontal .control-list {
-    padding-top: 0;
-  }
-  .form-horizontal .form-actions {
-    padding-left: 10px;
-    padding-right: 10px;
-  }
-  .modal {
-    position: absolute;
-    top: 10px;
-    left: 10px;
-    right: 10px;
-    width: auto;
-    margin: 0;
-  }
-  .modal.fade.in {
-    top: auto;
-  }
-  .modal-header .close {
-    padding: 10px;
-    margin: -10px;
-  }
-  .carousel-caption {
-    position: static;
-  }
-}
-@media (max-width: 767px) {
-  body {
-    padding-left: 20px;
-    padding-right: 20px;
-  }
-  .navbar-fixed-top,
-  .navbar-fixed-bottom {
-    margin-left: -20px;
-    margin-right: -20px;
-  }
-  .container-fluid {
-    padding: 0;
-  }
-  .dl-horizontal dt {
-    float: none;
-    clear: none;
-    width: auto;
-    text-align: left;
-  }
-  .dl-horizontal dd {
-    margin-left: 0;
-  }
-  .container {
-    width: auto;
-  }
-  .row-fluid {
-    width: 100%;
-  }
-  .row,
-  .thumbnails {
-    margin-left: 0;
-  }
-  [class*="span"],
-  .row-fluid [class*="span"] {
-    float: none;
-    display: block;
-    width: auto;
-    margin-left: 0;
-  }
-  .input-large,
-  .input-xlarge,
-  .input-xxlarge,
-  input[class*="span"],
-  select[class*="span"],
-  textarea[class*="span"],
-  .uneditable-input {
-    display: block;
-    width: 100%;
-    min-height: 28px;
-    -webkit-box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    -ms-box-sizing: border-box;
-    box-sizing: border-box;
-  }
-  .input-prepend input,
-  .input-append input,
-  .input-prepend input[class*="span"],
-  .input-append input[class*="span"] {
-    display: inline-block;
-    width: auto;
-  }
-}
-@media (min-width: 768px) and (max-width: 979px) {
-  .row {
-    margin-left: -20px;
-    *zoom: 1;
-  }
-  .row:before,
-  .row:after {
-    display: table;
-    content: "";
-  }
-  .row:after {
-    clear: both;
-  }
-  [class*="span"] {
-    float: left;
-    margin-left: 20px;
-  }
-  .container,
-  .navbar-fixed-top .container,
-  .navbar-fixed-bottom .container {
-    width: 724px;
-  }
-  .span12 {
-    width: 724px;
-  }
-  .span11 {
-    width: 662px;
-  }
-  .span10 {
-    width: 600px;
-  }
-  .span9 {
-    width: 538px;
-  }
-  .span8 {
-    width: 476px;
-  }
-  .span7 {
-    width: 414px;
-  }
-  .span6 {
-    width: 352px;
-  }
-  .span5 {
-    width: 290px;
-  }
-  .span4 {
-    width: 228px;
-  }
-  .span3 {
-    width: 166px;
-  }
-  .span2 {
-    width: 104px;
-  }
-  .span1 {
-    width: 42px;
-  }
-  .offset12 {
-    margin-left: 764px;
-  }
-  .offset11 {
-    margin-left: 702px;
-  }
-  .offset10 {
-    margin-left: 640px;
-  }
-  .offset9 {
-    margin-left: 578px;
-  }
-  .offset8 {
-    margin-left: 516px;
-  }
-  .offset7 {
-    margin-left: 454px;
-  }
-  .offset6 {
-    margin-left: 392px;
-  }
-  .offset5 {
-    margin-left: 330px;
-  }
-  .offset4 {
-    margin-left: 268px;
-  }
-  .offset3 {
-    margin-left: 206px;
-  }
-  .offset2 {
-    margin-left: 144px;
-  }
-  .offset1 {
-    margin-left: 82px;
-  }
-  .row-fluid {
-    width: 100%;
-    *zoom: 1;
-  }
-  .row-fluid:before,
-  .row-fluid:after {
-    display: table;
-    content: "";
-  }
-  .row-fluid:after {
-    clear: both;
-  }
-  .row-fluid [class*="span"] {
-    display: block;
-    width: 100%;
-    min-height: 28px;
-    -webkit-box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    -ms-box-sizing: border-box;
-    box-sizing: border-box;
-    float: left;
-    margin-left: 2.762430939%;
-    *margin-left: 2.709239449638298%;
-  }
-  .row-fluid [class*="span"]:first-child {
-    margin-left: 0;
-  }
-  .row-fluid .span12 {
-    width: 99.999999993%;
-    *width: 99.9468085036383%;
-  }
-  .row-fluid .span11 {
-    width: 91.436464082%;
-    *width: 91.38327259263829%;
-  }
-  .row-fluid .span10 {
-    width: 82.87292817100001%;
-    *width: 82.8197366816383%;
-  }
-  .row-fluid .span9 {
-    width: 74.30939226%;
-    *width: 74.25620077063829%;
-  }
-  .row-fluid .span8 {
-    width: 65.74585634900001%;
-    *width: 65.6926648596383%;
-  }
-  .row-fluid .span7 {
-    width: 57.182320438000005%;
-    *width: 57.129128948638304%;
-  }
-  .row-fluid .span6 {
-    width: 48.618784527%;
-    *width: 48.5655930376383%;
-  }
-  .row-fluid .span5 {
-    width: 40.055248616%;
-    *width: 40.0020571266383%;
-  }
-  .row-fluid .span4 {
-    width: 31.491712705%;
-    *width: 31.4385212156383%;
-  }
-  .row-fluid .span3 {
-    width: 22.928176794%;
-    *width: 22.874985304638297%;
-  }
-  .row-fluid .span2 {
-    width: 14.364640883%;
-    *width: 14.311449393638298%;
-  }
-  .row-fluid .span1 {
-    width: 5.801104972%;
-    *width: 5.747913482638298%;
-  }
-  input,
-  textarea,
-  .uneditable-input {
-    margin-left: 0;
-  }
-  input.span12, textarea.span12, .uneditable-input.span12 {
-    width: 714px;
-  }
-  input.span11, textarea.span11, .uneditable-input.span11 {
-    width: 652px;
-  }
-  input.span10, textarea.span10, .uneditable-input.span10 {
-    width: 590px;
-  }
-  input.span9, textarea.span9, .uneditable-input.span9 {
-    width: 528px;
-  }
-  input.span8, textarea.span8, .uneditable-input.span8 {
-    width: 466px;
-  }
-  input.span7, textarea.span7, .uneditable-input.span7 {
-    width: 404px;
-  }
-  input.span6, textarea.span6, .uneditable-input.span6 {
-    width: 342px;
-  }
-  input.span5, textarea.span5, .uneditable-input.span5 {
-    width: 280px;
-  }
-  input.span4, textarea.span4, .uneditable-input.span4 {
-    width: 218px;
-  }
-  input.span3, textarea.span3, .uneditable-input.span3 {
-    width: 156px;
-  }
-  input.span2, textarea.span2, .uneditable-input.span2 {
-    width: 94px;
-  }
-  input.span1, textarea.span1, .uneditable-input.span1 {
-    width: 32px;
-  }
-}
-@media (min-width: 1200px) {
-  .row {
-    margin-left: -30px;
-    *zoom: 1;
-  }
-  .row:before,
-  .row:after {
-    display: table;
-    content: "";
-  }
-  .row:after {
-    clear: both;
-  }
-  [class*="span"] {
-    float: left;
-    margin-left: 30px;
-  }
-  .container,
-  .navbar-fixed-top .container,
-  .navbar-fixed-bottom .container {
-    width: 1170px;
-  }
-  .span12 {
-    width: 1170px;
-  }
-  .span11 {
-    width: 1070px;
-  }
-  .span10 {
-    width: 970px;
-  }
-  .span9 {
-    width: 870px;
-  }
-  .span8 {
-    width: 770px;
-  }
-  .span7 {
-    width: 670px;
-  }
-  .span6 {
-    width: 570px;
-  }
-  .span5 {
-    width: 470px;
-  }
-  .span4 {
-    width: 370px;
-  }
-  .span3 {
-    width: 270px;
-  }
-  .span2 {
-    width: 170px;
-  }
-  .span1 {
-    width: 70px;
-  }
-  .offset12 {
-    margin-left: 1230px;
-  }
-  .offset11 {
-    margin-left: 1130px;
-  }
-  .offset10 {
-    margin-left: 1030px;
-  }
-  .offset9 {
-    margin-left: 930px;
-  }
-  .offset8 {
-    margin-left: 830px;
-  }
-  .offset7 {
-    margin-left: 730px;
-  }
-  .offset6 {
-    margin-left: 630px;
-  }
-  .offset5 {
-    margin-left: 530px;
-  }
-  .offset4 {
-    margin-left: 430px;
-  }
-  .offset3 {
-    margin-left: 330px;
-  }
-  .offset2 {
-    margin-left: 230px;
-  }
-  .offset1 {
-    margin-left: 130px;
-  }
-  .row-fluid {
-    width: 100%;
-    *zoom: 1;
-  }
-  .row-fluid:before,
-  .row-fluid:after {
-    display: table;
-    content: "";
-  }
-  .row-fluid:after {
-    clear: both;
-  }
-  .row-fluid [class*="span"] {
-    display: block;
-    width: 100%;
-    min-height: 28px;
-    -webkit-box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    -ms-box-sizing: border-box;
-    box-sizing: border-box;
-    float: left;
-    margin-left: 2.564102564%;
-    *margin-left: 2.510911074638298%;
-  }
-  .row-fluid [class*="span"]:first-child {
-    margin-left: 0;
-  }
-  .row-fluid .span12 {
-    width: 100%;
-    *width: 99.94680851063829%;
-  }
-  .row-fluid .span11 {
-    width: 91.45299145300001%;
-    *width: 91.3997999636383%;
-  }
-  .row-fluid .span10 {
-    width: 82.905982906%;
-    *width: 82.8527914166383%;
-  }
-  .row-fluid .span9 {
-    width: 74.358974359%;
-    *width: 74.30578286963829%;
-  }
-  .row-fluid .span8 {
-    width: 65.81196581200001%;
-    *width: 65.7587743226383%;
-  }
-  .row-fluid .span7 {
-    width: 57.264957265%;
-    *width: 57.2117657756383%;
-  }
-  .row-fluid .span6 {
-    width: 48.717948718%;
-    *width: 48.6647572286383%;
-  }
-  .row-fluid .span5 {
-    width: 40.170940171000005%;
-    *width: 40.117748681638304%;
-  }
-  .row-fluid .span4 {
-    width: 31.623931624%;
-    *width: 31.5707401346383%;
-  }
-  .row-fluid .span3 {
-    width: 23.076923077%;
-    *width: 23.0237315876383%;
-  }
-  .row-fluid .span2 {
-    width: 14.529914530000001%;
-    *width: 14.4767230406383%;
-  }
-  .row-fluid .span1 {
-    width: 5.982905983%;
-    *width: 5.929714493638298%;
-  }
-  input,
-  textarea,
-  .uneditable-input {
-    margin-left: 0;
-  }
-  input.span12, textarea.span12, .uneditable-input.span12 {
-    width: 1160px;
-  }
-  input.span11, textarea.span11, .uneditable-input.span11 {
-    width: 1060px;
-  }
-  input.span10, textarea.span10, .uneditable-input.span10 {
-    width: 960px;
-  }
-  input.span9, textarea.span9, .uneditable-input.span9 {
-    width: 860px;
-  }
-  input.span8, textarea.span8, .uneditable-input.span8 {
-    width: 760px;
-  }
-  input.span7, textarea.span7, .uneditable-input.span7 {
-    width: 660px;
-  }
-  input.span6, textarea.span6, .uneditable-input.span6 {
-    width: 560px;
-  }
-  input.span5, textarea.span5, .uneditable-input.span5 {
-    width: 460px;
-  }
-  input.span4, textarea.span4, .uneditable-input.span4 {
-    width: 360px;
-  }
-  input.span3, textarea.span3, .uneditable-input.span3 {
-    width: 260px;
-  }
-  input.span2, textarea.span2, .uneditable-input.span2 {
-    width: 160px;
-  }
-  input.span1, textarea.span1, .uneditable-input.span1 {
-    width: 60px;
-  }
-  .thumbnails {
-    margin-left: -30px;
-  }
-  .thumbnails > li {
-    margin-left: 30px;
-  }
-  .row-fluid .thumbnails {
-    margin-left: 0;
-  }
-}
-@media (max-width: 979px) {
-  body {
-    padding-top: 0;
-  }
-  .navbar-fixed-top {
-    position: static;
-    margin-bottom: 18px;
-  }
-  .navbar-fixed-top .navbar-inner {
-    padding: 5px;
-  }
-  .navbar .container {
-    width: auto;
-    padding: 0;
-  }
-  .navbar .brand {
-    padding-left: 10px;
-    padding-right: 10px;
-    margin: 0 0 0 -5px;
-  }
-  .nav-collapse {
-    clear: both;
-  }
-  .nav-collapse .nav {
-    float: none;
-    margin: 0 0 9px;
-  }
-  .nav-collapse .nav > li {
-    float: none;
-  }
-  .nav-collapse .nav > li > a {
-    margin-bottom: 2px;
-  }
-  .nav-collapse .nav > .divider-vertical {
-    display: none;
-  }
-  .nav-collapse .nav .nav-header {
-    color: #EBEBEB;
-    text-shadow: none;
-  }
-  .nav-collapse .nav > li > a,
-  .nav-collapse .dropdown-menu a {
-    padding: 6px 15px;
-    font-weight: bold;
-    color: #EBEBEB;
-    -webkit-border-radius: 3px;
-    -moz-border-radius: 3px;
-    border-radius: 3px;
-  }
-  .nav-collapse .btn {
-    padding: 4px 10px 4px;
-    font-weight: normal;
-    -webkit-border-radius: 4px;
-    -moz-border-radius: 4px;
-    border-radius: 4px;
-  }
-  .nav-collapse .dropdown-menu li + li a {
-    margin-bottom: 2px;
-  }
-  .nav-collapse .nav > li > a:hover,
-  .nav-collapse .dropdown-menu a:hover {
-    background-color: #222222;
-  }
-  .nav-collapse.in .btn-group {
-    margin-top: 5px;
-    padding: 0;
-  }
-  .nav-collapse .dropdown-menu {
-    position: static;
-    top: auto;
-    left: auto;
-    float: none;
-    display: block;
-    max-width: none;
-    margin: 0 15px;
-    padding: 0;
-    background-color: transparent;
-    border: none;
-    -webkit-border-radius: 0;
-    -moz-border-radius: 0;
-    border-radius: 0;
-    -webkit-box-shadow: none;
-    -moz-box-shadow: none;
-    box-shadow: none;
-  }
-  .nav-collapse .dropdown-menu:before,
-  .nav-collapse .dropdown-menu:after {
-    display: none;
-  }
-  .nav-collapse .dropdown-menu .divider {
-    display: none;
-  }
-  .nav-collapse .navbar-form,
-  .nav-collapse .navbar-search {
-    float: none;
-    padding: 9px 15px;
-    margin: 9px 0;
-    border-top: 1px solid #222222;
-    border-bottom: 1px solid #222222;
-    -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
-    -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
-    box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);
-  }
-  .navbar .nav-collapse .nav.pull-right {
-    float: none;
-    margin-left: 0;
-  }
-  .nav-collapse,
-  .nav-collapse.collapse {
-    overflow: hidden;
-    height: 0;
-  }
-  .navbar .btn-navbar {
-    display: block;
-  }
-  .navbar-static .navbar-inner {
-    padding-left: 10px;
-    padding-right: 10px;
-  }
-}
-@media (min-width: 980px) {
-  .nav-collapse.collapse {
-    height: auto !important;
-    overflow: visible !important;
-  }
-}
 
+.affix {
+  position: fixed;
+}
diff --git a/css/fonts.css b/css/fonts.css
index 4937aba..4f3ad60 100644
--- a/css/fonts.css
+++ b/css/fonts.css
@@ -2,29 +2,29 @@
   font-family: 'Vollkorn';
   font-style: italic;
   font-weight: normal;
-  src: local('Vollkorn Italic'), local('Vollkorn-Italic'), url('/xtend/css/fonts/vollkorn/v3/Oiz0tNwvC-Nd29SBQWfWTL3hpw3pgy2gAi-Ip7WPMi0.woff') format('woff');
+  src: local('Vollkorn Italic'), local('Vollkorn-Italic'), url('/Xtext/css/fonts/vollkorn/v3/Oiz0tNwvC-Nd29SBQWfWTL3hpw3pgy2gAi-Ip7WPMi0.woff') format('woff');
 }
 @font-face {
   font-family: 'Vollkorn';
   font-style: normal;
   font-weight: normal;
-  src: local('Vollkorn Regular'), local('Vollkorn-Regular'), url('/xtend/css/fonts/vollkorn/v3/BCFBp4rt5gxxFrX6F12DKnYhjbSpvc47ee6xR_80Hnw.woff') format('woff');
+  src: local('Vollkorn Regular'), local('Vollkorn-Regular'), url('/Xtext/css/fonts/vollkorn/v3/BCFBp4rt5gxxFrX6F12DKnYhjbSpvc47ee6xR_80Hnw.woff') format('woff');
 }
 @font-face {
   font-family: 'Lato';
   font-style: italic;
   font-weight: 900;
-  src: local('Lato Black Italic'), local('Lato-BlackItalic'), url('/xtend/css/fonts/lato/v6/VNUH7ZAcagYBWsAiBBCEY6CWcynf_cDxXwCLxiixG1c.ttf') format('truetype');
+  src: local('Lato Black Italic'), local('Lato-BlackItalic'), url('/Xtext/css/fonts/lato/v6/VNUH7ZAcagYBWsAiBBCEY6CWcynf_cDxXwCLxiixG1c.ttf') format('truetype');
 }
 @font-face {
   font-family: 'Lato';
   font-style: normal;
   font-weight: 400;
-  src: local('Lato Regular'), local('Lato-Regular'), url('/xtend/css/fonts/lato/v6/v0SdcGFAl2aezM9Vq_aFTQ.ttf') format('truetype');
+  src: local('Lato Regular'), local('Lato-Regular'), url('/Xtext/css/fonts/lato/v6/v0SdcGFAl2aezM9Vq_aFTQ.ttf') format('truetype');
 }
 @font-face {
   font-family: 'Lato';
   font-style: italic;
   font-weight: 400;
-  src: local('Lato Italic'), local('Lato-Italic'), url('/xtend/css/fonts/lato/v6/LqowQDslGv4DmUBAfWa2Vw.ttf') format('truetype');
+  src: local('Lato Italic'), local('Lato-Italic'), url('/Xtext/css/fonts/lato/v6/LqowQDslGv4DmUBAfWa2Vw.ttf') format('truetype');
 }
\ No newline at end of file
diff --git a/css/prettify.css b/css/prettify.css
index 54547e2..9ae31eb 100644
--- a/css/prettify.css
+++ b/css/prettify.css
@@ -1,29 +1,34 @@
+pre {
+  border: none;
+  background: none;
+}
+
 code.prettyprint {
   padding: 0px;
   background-color: white;
 	border: none;
 }
-
-.com { color: green; }
-.lit { color: #195f91; }
-.pun { color: #555; }
-.opn { color: black; } 
-.clo { color: blue; }
-.fun { color: #dc322f; }
-.str { color: #4200bf; } 
-.atv { color: #D14; }
-.kwd { color: #7f0085; font-weight:bold;}
-.linenums .tag { color: #1e347b; }
-.typ { color: #777; }
-.atn { color: teal; } 
-.dec { color: teal; } 
-.var { color: teal; }
+/* 	here starts original */
+.com { color: #8e908c; }
+.lit { color: #f5871f; }
+.pun { color: #4d4d4c; }
+.opn { color: #4d4d4c; } 
+.clo { color: #4d4d4c; }
+.fun { color: #4271ae; }
+.str { color: #718c00; } 
+.atv { color: #3e999f; }
+.kwd { color: #8959a8; font-weight:bold;}
+.linenums .tag { color: #c82829; }
+.typ { color: #4271ae; }
+.atn { color: #f5871f; } 
+.dec { color: #f5871f; } 
+.var { color: #c82829; }
 .pln { color: #48484c; }
 
 .prettyprint {
   padding: 8px;
-  background-color: #f7f7f9;
-  border: 1px solid #e1e1e8;
+  background-color: node;
+  border: none;
 }
 .prettyprint.linenums {
   -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
@@ -36,8 +41,8 @@
   margin: 0 0 0 33px; /* IE indents via margin-left */
 } 
 ol.linenums li {
-  padding-left: 4px;
-  color: #bebec5;
+  padding-left: 0px;
+  color: #ddd;
   line-height: 18px;
   text-shadow: 0 1px 0 #fff;
 }
\ No newline at end of file
diff --git a/css/shield-responsive.css b/css/shield-responsive.css
index 873c841..4411286 100644
--- a/css/shield-responsive.css
+++ b/css/shield-responsive.css
@@ -47,8 +47,6 @@
 	*/
         
 #page {
-		margin-left: -20px;
-		margin-right: -20px;
 		
 	}
 	
@@ -94,17 +92,10 @@
 	[Extra / #extra]
 	*/
 	
-	#extra {
-		margin-right: -20px;
-		margin-left: -20px;
-                        padding-left:20px;
-        padding-right:20px;
-	}
-	
-        #extra h3{
-            
-          margin-top:10px;
-        }
+    #extra h3{
+        
+      margin-top:10px;
+    }
 	
 		
 	
diff --git a/css/style.css b/css/style.css
index 76990e0..87453b7 100644
--- a/css/style.css
+++ b/css/style.css
@@ -3,60 +3,32 @@
 Author - hunzaboy
 URL : http://uexel.com
 
- #74C0CF
+ #444
  -> 
 */
-
-/*
-Shield Website Template
-Author - hunzaboy
-URL : http://uexel.com
-
- #74C0CF
- -> 
-*/
-
 body { 
-	font-family: "Helvetica Neue", Helvetica, sans-serif;
-	font-size: 16px;
-	line-height: 1.5em;
+/*	background: url(../images/pattern1.jpg) repeat #ffffff;*/
+/*	font-family: "Helvetica Neue", Helvetica, sans-serif;
+	font-size: 14px;
 	font-weight: 300;
-	color: #717576;
-	background: url(/xtend/images/header_background.jpg) #010211;
-	background-repeat: no-repeat;
-/* 	background: url('/xtend/images/noise.png') #005580; */
-}
-
-a {
-	color: #005580;
-	font-weight: 400;
+	font-size: 16px;
+	line-height: 1.5em; */
+	font-family: 'Lato', sans-serif;
+	font-weight: 300;
+	line-height: 20px;
+	font-size: 16px;
+	color: #333;
 }
 
 p {
-	font-size: 16px;
+	font-family: 'Lato', sans-serif;
+	font-weight: 300;
 	line-height: 1.4em;
-}
-
-pre {
-	background-color: white;
-	padding : 5px;
-}
-
-code.prettyprint ol {
-	margin:0;
-	list-style: decimal;
-	list-style-position: inside;
+	font-size: 16px;
 }
 
 li {
-	line-height: 1.4em;
-}
-
-
-
-.btn-primary {
-/* 	background: url('/xtend/images/noise.png') #74C0CF; */
-	background: url('/xtend/images/noise.png') #005580;
+	line-height: 20px;
 }
 
 .btn-primary:hover {
@@ -64,52 +36,51 @@
 }
 
 h1 {
-	margin-bottom: 10px;
-}
-
-h1 small {
-	color: #717576;
-	margin-left: 12px;
+	margin-top: 20px;
+	margin-bottom: 12px;
 }
 
 h2 {
-	margin-top: 20px;
+	margin-top: 28px;
 	margin-bottom: 10px;
 	font-size: 26px;
-	font-family: 'Lato', serif;
+	font-family: 'Lato', sans-serif;
 	font-weight: normal;
-	color: #383838;
+	color: #000;
 }
 
 h2 small {
+	font-family: 'Lato', sans-serif;
+	font-weight: normal;
 	font-size: 12px;
-	color: #717576;
-	margin-left: 10px;
+	color: #444;
 }
 
 h3 {
-	margin-top: 16px;
-	margin-bottom: 6px;
+	margin-top: 22px;
+	margin-bottom: 8px;
 	font-size: 20px;
 	font-family: 'Lato', sans-serif;
 	font-weight: normal;
-	color: #383838;
+	color: #444;
 }
 
 h4 {
-	margin-top: 14px;
-	margin-bottom: 2px;
+	margin-top: 18px;
+	margin-bottom: 8px;
 	font-size: 17px;
 	font-family: 'Lato', sans-serif;
 	font-weight: bold;
-	color: #484848;
+	color: #444;
 }
 
 h5 {
+	margin-top: 16px;
+	margin-bottom: 6px;
 	font-size: 15px;
 	font-family: 'Lato', sans-serif;
 	font-weight: bold;
-	color: #717576;
+	color: #555;
 }
 
 img {
@@ -118,9 +89,7 @@
 }
 
 em {
-	font-weight: 500;
 	font-style: italic;
-	padding: 0 2px 0 0;
 }
 
 strong {
@@ -128,63 +97,132 @@
 }
 
 code {
-  color: #48484c;
+  color: #222;
   font-size: 13px;
+  border: none;
+  background: none;
 }
 
 hr {
   border-top: 1px solid #d0d0d0;
   border-bottom: 1px solid #f0f0f0;
+  margin: 24px 0;
 }
 
-#features {
-	background: url(/xtend/images/pattern1.jpg) repeat #ebebeb;
+/* table */
+table {
+	background:#eaebec;
+	border:#ccc 1px solid;
+
+	-moz-border-radius:4px;
+	-webkit-border-radius:4px;
+	border-radius:4px;
+	margin-top: 4px;
+	margin-bottom: 6px;
 }
 
-#comparison h2 {
-	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
-	color: #6B6B6B;
-	font-weight: 400;
-	line-height: 1.3em;
-	font-style: normal;
-	word-spacing: 1px;
-	text-align: right;
-	font-size: 24px;
-	margin:20pt;
+table th {
+	padding: 4px 6px;
+	border-top:1px solid #e0e0e0;
+	border-bottom:1px solid #c0c0c0;
+
+	background: #ededed;
+	background: -webkit-gradient(linear, left top, left bottom, from(#ededed), to(#ebebeb));
+	background: -moz-linear-gradient(top,  #ededed,  #ebebeb);
+}
+table tr:first-child th:first-child {
+	-moz-border-radius-topleft:3px;
+	-webkit-border-top-left-radius:3px;
+	border-top-left-radius:3px;
+}
+table tr:first-child th:last-child {
+	-moz-border-radius-topright:3px;
+	-webkit-border-top-right-radius:3px;
+	border-top-right-radius:3px;
+}
+table td:first-child {
+	text-align: left;
+	
+	
+	-moz-border-radius-topright:3px;
+	-webkit-border-top-right-radius:3px;
+	border-top-right-radius:3px;
+}
+table td {
+	padding: 4px 6px;
+	border-top: 1px solid #f0f0f0;
+	border-bottom:1px solid #e0e0e0;
+	border-left: 1px solid #e0e0e0;
+
+	background: #fafafa;
+	background: -webkit-gradient(linear, left top, left bottom, from(#fbfbfb), to(#fafafa));
+	background: -moz-linear-gradient(top,  #fbfbfb,  #fafafa);
+}
+table tr.even td {
+	background: #f6f6f6;
+	background: -webkit-gradient(linear, left top, left bottom, from(#f8f8f8), to(#f6f6f6));
+	background: -moz-linear-gradient(top,  #f8f8f8,  #f6f6f6);
+}
+table tr:last-child td {
+	border-bottom:0;
+}
+table tr:last-child td:first-child {
+	-moz-border-radius-bottomleft:3px;
+	-webkit-border-bottom-left-radius:3px;
+	border-bottom-left-radius:3px;
+}
+table tr:last-child td:last-child {
+	-moz-border-radius-bottomright:3px;
+	-webkit-border-bottom-right-radius:3px;
+	border-bottom-right-radius:3px;
+}
+table tr:hover td {
+	background: #f2f2f2;
+	background: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#f0f0f0));
+	background: -moz-linear-gradient(top,  #f2f2f2,  #f0f0f0);	
 }
 
-td.code {
-	background-color: transparent; 
-	border: inherited;
+/* Scroll to Top Button 
+-------------------------------------*/
+.scrollup {
+  width: 44px;
+  height: 44px;
+  position: fixed;
+  bottom: 22px;
+  right: 22px;
+  display: none;
+  text-indent: -9999px;
+  outline: hidden;
+  background: url('/Xtext/images/icon_top.png') no-repeat;
 }
 
-td.code pre {
-	background-color: transparent; 
-	border: none;
+/* table end */
+
+.btn_android {
+	background: url('/Xtext/images/btn-android.png') no-repeat;
+	width: 178px;
+	height: 65px;
+	margin-top: 20px;
+	float: left;
+	margin-left: 10px;
+}
+
+.btn_appstore {
+	background: url('/Xtext/images/btn-appstore.png') no-repeat;
+	width: 178px;
+	height: 65px;
+	margin-top: 20px;
+	float: left;
 }
 
 .btn_download {
-	background: url(/xtend/images/download.png) no-repeat;
-	width: 160px;
-	height: 60px;
+	background: url('/Xtext/images/download.png') no-repeat;
+	width: 225px;
+	height: 80px;
 /* 	margin-top: 20px; */
 	float: left;
 /* 	margin-left: 10px; */
 }
-.btn_documentation {
-	background: url(/xtend/images/documentation.png) no-repeat;
-	width: 200px;
-	height: 60px;
-	float: left;
-/* 	margin-top: 20px; */
-/* 	margin-left: 10px; */
-}
-@media (min-width: 1200px) {
-  .btn_documentation {
-		margin-left:40px;
-  }
-}
-
 
 .button_wrapper {
 	position: relative;
@@ -192,22 +230,28 @@
 	float: left;
 }
 
+.image_left {
+	border-radius: 98px;
+	-moz-border-radius: 98px;
+	-webkit-border-radius: 98px;
+	float: left;
+}
+
+@media (max-width: 767px) {
+  .image_left {
+    height: 80px;
+    margin-right: 10px;
+  }
+}
+
 .image_left_reviews {
 	margin: 0px 10px 10px 0px;
 	width: 100px;
 	float: left;
 }
 
-.image_between_p {
-	display: block; 
-	margin-left: 40px;  
-	margin-right: auto; 
-	margin-top: 25px; 
-	margin-bottom : 25px;
-}
-
 .row_color {
-	background: url(/xtend/images/div-grey-top.png) no-repeat center top #f8f8f8;
+	background: url('/Xtext/images/div-grey-top.png') no-repeat center top #f8f8f8;
 	bspwidth: 100%;
 	border-bottom: 1px solid #e2e2e2;
 }
@@ -226,32 +270,97 @@
 }
 
 #header_wrapper {
-	padding-bottom: 50px;
+	padding-bottom: 5px;
 	color: white;
 	height: auto;
 	border: none;
 	overflow: hidden;
-	padding-top : 80pt;
+	min-height:60px;
+	margin-top: 40px;
+	margin-left: 0px;
+	background: url('/Xtext/images/header_background.jpg');
+	background-size:  cover;
 }
 
-#header_wrapper a {
-	color : #c1e6ff;
+@media (max-width: 979px) {
+  #header_wrapper {
+	min-height:103px;
+  }
 }
 
 @media (max-width: 767px) {
-	#header_wrapper {
-		margin-left : -15pt;
-		margin-right : -15pt;
-		padding: 10pt;
-	}
+  #header_wrapper {
+  	 margin-top: 0px;
+	 min-height:3px;
+  }
+  .container {
+  	padding-right: 20px;
+  	padding-left: 20px;
+  }
+}
+
+.ui-coverflow-wrapper {
+	height : 430px;
+	padding-top: 20px;
+}
+@media (max-width: 979px) {
+  .ui-coverflow-wrapper {
+	height : 380px;
+  }
+}
+
+@media (max-width: 767px) {
+  .ui-coverflow-wrapper {
+  	 height : 280px;
+  }
+}
+
+.intro-screenshot {
+	display: block;
+    margin: 0 auto;
+	width: 620px;
+	box-shadow: 0px 10px 30px 10px rgba(0, 0, 0, 0.15);
+}
+
+@media (max-width: 979px) {
+  .intro-screenshot {
+  	 width: 520px;
+  }
+}
+@media (max-width: 767px) {
+  .intro-screenshot {
+  	 width: 420px;
+  }
+}
+
+
+.cta-section {
+	padding-bottom: 30px;
+}
+
+.quick-overview {
+	margin-top: 40px;
+}
+
+.quick-overview h1 {
+	margin-bottom: 25px;
+}
+
+.quick-overview img {
+	width: 18px;
+	height: 18px;
+	vertical-align: bottom;
+	margin-right: 3px;
 }
 
 .image-slider h2 {
-	margin-top: 80px; /*specify 'margin-top' as per your your choice*/
+	margin-top: 80px;
+	margin-bottom: 50px;
 	font-family: 'Lato', sans-serif;
 	font-size: 42px;
 	font-weight: 300;
-	color: #ffffff;
+	color: #333333;
+	text-align: center;
 	text-shadow: 0px 1px 1px #d4d4d4;
 	text-transform: uppercase;
 	word-spacing: 10px;
@@ -262,20 +371,50 @@
 	font-family: 'Lato', sans-serif;
 	font-size: 16px;
 	font-weight: 300;
-	color: #fff;
-	text-shadow: 0px 1px 4px #000000;
-	text-align: left;
+	color: #333333;
+	text-align: center;
 	word-spacing: 3px;
 }
 
-#features {
-	height: auto;
-	padding-top: 10px;
+.image-slider img {
+	display: block;
+    margin: 0 auto;
 }
 
-.feature h1 {
-	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
-	color: #6B6B6B;
+.newsticker {
+    text-decoration: none;
+    font-style: italic;
+    font-size: 18pt;
+}
+
+.newsticker li {
+    list-style-type: none;
+}
+
+.companies img {
+	height : 40px;
+	margin-left : 40px;
+	margin-right : 40px;
+	margin-top : 10px;
+	margin-bottom : 10px;
+}
+
+.companies li {
+	list-style-type: none;
+}
+
+#intro-companies {
+	margin-top: 50px;
+}
+
+#platform-comparison {
+	height: auto;
+	padding-top: 10px;
+	padding-bottom: 20px;
+}
+
+#platform-comparison h2 {
+	color: #444;
 	font-weight: 400;
 	line-height: 1.3em;
 	font-style: normal;
@@ -284,31 +423,13 @@
 	font-size: 32px;
 }
 
-.feature h4 {
-	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
-	color: #6B6B6B;
-	font-weight: 400;
-	line-height: 1.3em;
-	font-style: normal;
-	word-spacing: 1px;
-	text-align: left;
-	font-size: 24px;
-	margin-top: 10pt;
-}
-
-.feature p {
-	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
-	color: #6B6B6B;
+#platform-comparison p {
+	color: #444;
 	font-weight: 200;
 	line-height: 1.3em;
 	font-style: normal;
 	word-spacing: 1px;
-	text-align: left;
-}
-
-.float {
-	float: left;
-	min-height: 220px;
+	text-align: center;
 }
 
 .icon_bg {
@@ -345,84 +466,159 @@
 }
 
 img.screenshot {
-/* 	width: 260px; */
-/* 	height: 134px; */
-/* 	margin-left: 42px; */
-/* 	float: left; */
+	min-width: 260px;
+	height: 134px;
+	margin-left: 16px;
+	float: left;
 }
 
-.feature {
-	float:left;
+@media (min-width: 1200px) {
+  img.screenshot {
+	margin-left: 42px;  
+  }
+}
+@media (max-width: 979px) {
+  img.screenshot {
+	margin-left: 0px;  
+  }
+}
+@media (max-width: 767px) {
+  img.screenshot {
+	display: block;
+    margin-left: auto;
+    margin-right: auto;
+    float: none;
+  }
 }
 
 .thumb {
 	position: relative;
 	overflow: hidden;
-	float:left;
-	margin:10pt;
 }
 
 .thumb .zoom {
-	background: url(/xtend/images/videoOverlay.png) 0 0 no-repeat transparent;
+	background: url('/Xtext/images/videoOverlay.png') 0 0 no-repeat transparent;
 	width: 80px;
 	height: 80px;
 	position: absolute;
-	left: 140px;
+	left: 120px;
 	opacity: 0.0;
 	top: 34px;
 	outline: none;
 }
 
+@media (min-width: 1200px) {
+  .thumb .zoom {
+	left: 140px;  
+  }
+}
+@media (max-width: 979px) {
+  .thumb .zoom {
+	left: 90px;
+  }
+}
+@media (max-width: 767px) {
+  .thumb .zoom {
+	display: block;
+    margin-left: auto;
+    margin-right: auto;
+    float: none;
+    margin-top: -120px;
+    margin-bottom: 30px;
+    position: relative;
+    left: 12px;
+    top: 0px;
+  }
+}
+
 .introduction {
+	padding-top: 30px;
 	position: relative;
 	overflow: visible;
 }
 
+.supported {
+	background: url('/Xtext/images/bullet-checkmark.png');
+	background-size: 15px;
+	height:15px;
+    background-repeat: no-repeat;
+}
+.partly-supported {
+	background: url('/Xtext/images/bullet-checkmark-partly.png');
+	background-size: 15px;
+	height:15px;
+    background-repeat: no-repeat;
+}
+.not-supported {
+	background: url('/Xtext/images/bullet-checkmark-not-supported.png');
+	background-size: 15px;
+	height:15px;
+    background-repeat: no-repeat;
+}
+
+
 .introduction .zoom {
-	background: url(/xtend/images/videoOverlayBig.png) 0 0 no-repeat transparent;
+	background: url('/Xtext/images/videoOverlayBig.png') 0 0 no-repeat transparent;
 	width: 140px;
 	height: 140px;
 	opacity: 0.4;
 	outline: none;
 	position: absolute;
-	left: 190px;
-	top: 140px;
+	left: 170px;
+	top: 160px;
 }
 
 @media (min-width: 1200px) {
   .introduction .zoom {
+	position: absolute;
+	left: 220px;
+	top: 140px;
   }
-  .introduction {
-		margin-left:30pt;
-	}
 }
 @media (max-width: 979px) {
+  img#intro-screenshot {
+  	height: 80%; 
+  }
   .introduction .zoom {
-	left: 165px;
-	top: 120px;
+	position: absolute;
+	left: 140px;
+	top: 140px;
   }
 }
 @media (max-width: 767px) {
+
   .introduction .zoom {
-	top: 220px;
+	position: absolute;
+	left: 300px;
+	top: 38%;
   }
 }
 
 /* .thumb .zoom:hover { */
-/* 	background: url(/xtend/images/videoOverlay.png) 0 -80px no-repeat transparent; */
+/* 	background: url(../images/videoOverlay.png) 0 -80px no-repeat transparent; */
 /* } */
+#zoo table {
+	margin : 0;
+}
+
+
 #team {
 	padding-top: 10px;
 }
 
+#team h3 {
+	margin-top: 5px;
+	color : #555;
+}
+
 a:hover .onhover-red {
 	text-decoration: none;
-	color: #74C0CF;
+	color: #444;
 }
 
 a.onhover-red {
 	text-decoration: none;
-	color: #010220;
+	color: #333;
 }
 
 ul.team_info {
@@ -481,18 +677,9 @@
 	padding: 50px 0px;
 }
 
-/* Scroll to Top Button 
--------------------------------------*/
-.scrollup {
-  width: 44px;
-  height: 44px;
-  position: fixed;
-  bottom: 22px;
-  right: 22px;
-  display: none;
-  text-indent: -9999px;
-  outline: hidden;
-  background: url('/xtend/images/icon_top.png') no-repeat;
+.post {
+	margin-top: 20px;
+	margin-bottom: 20px;
 }
 
 .pricing {
@@ -511,18 +698,15 @@
 	-moz-border-radius-bottomright: 9px;
 	-webkit-border-bottom-right-radius: 9px;
 	-webkit-border-bottom-left-radius: 9px;
-}
-
-.pricing table {
 	width: 100%;
 	font-family: 'Lato', sans-serif;
 	font-size: 12px;
-	color: #c2c2c2;
+	color: #c0c2c2;
 	font-weight: 400;
 }
 
 .pricing thead th {
-	background: #010220;
+	background: #333;
 	width: 84.3%;
 	padding: 13px 8%;
 	font-family: 'Lato', sans-serif;
@@ -555,17 +739,17 @@
 	background: #fff;
 	width: 84.3%;
 	padding: 10px 8%;
-	border-top: 1px solid #ffffff;
-	border-bottom: 1px solid #d4d4d4;
+	border: 1px solid #d4d4d4;
+
 	float: left;
 }
 
-tfoot td {
+.pricing tfoot td {
 	text-align: center;
 }
 
 .pricing td.focus {
-	background: #010220;
+	background: #333;
 	width: 84.3%;
 	padding: 25px 8%;
 	font-family: 'Lato', sans-serif;
@@ -577,7 +761,7 @@
 }
 
 .pricing td.focus-best {
-	background: #74C0CF;
+	background: #444;
 	width: 84.3%;
 	padding: 25px 8%;
 	font-family: 'Lato', sans-serif;
@@ -615,12 +799,7 @@
 }
 
 .inner {
-	padding: 10px 0px 0px 15px;
-	background-color: white;
-}
-
-.inner-footer {
-	padding: 10px 0px 0px 15px;
+	padding: 10px 0px;
 }
 
 .logo {
@@ -693,137 +872,42 @@
 }
 
 .team {
- 	background: rgba(80, 80, 90, 0.5); 
+/* 	background: #f4f4f4; */
+	background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(235, 235, 235, 1) 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255, 255, 255, 1)), color-stop(100%,rgba(235, 235, 235, 1)));
+	background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 0%,rgba(235, 235, 235, 1) 100%);
+	background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 0%,rgba(235, 235, 235, 1) 100%);
+	background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 0%,rgba(235, 235, 235, 1) 100%);
+	background: linear-gradient(top, rgba(255, 255, 255, 1) 0%,rgba(235, 235, 235, 1) 100%);
 	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='white', endColorstr='#EBEBEB',GradientType=0 );
 	-webkit-border-radius: 4px;
 	-moz-border-radius: 4px;
 	border-radius: 4px;
-	-webkit-box-shadow: 0 1px 3px rgba(180,256,256, .25), inset 0 2px 0 rgba(180,256,256, .1);
-	-moz-box-shadow: 0 1px 3px rgba(180,256,256, .25), inset 0 2px 0 rgba(180,256,256, .1);
-	box-shadow: 0 1px 3px rgba(180,256,256, .25), inset 0 2px 0 rgba(180,256,256, .1);
-	padding: 20px;
-	margin-bottom: 0px;
-	margin-top: 10px;
-	margin-left: 60px;
+	-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(0, 0, 0, .1);
+	-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(0, 0, 0, .1);
+	box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(0, 0, 0, .1);
+	padding: 10px;
+	margin-bottom: 15px;
+	height:62px;
 	position: relative;
 }
 
-.team h3 {
-	font-size:24px;
-	margin-top:20px;
-	padding-top:0px;
-	color : white;
-}
-
-@media (max-width: 979px) {
-  .team h3 {
-		
-	}
-}
-@media (max-width: 767px) {
-  .team h3 {
-	font-size:24px;
-	margin-top:8px;
-	padding-top:0px;
-   }
-}
-
 @media (min-width: 1200px) {
   .team {
-    height: 70px;
-    margin-top: 10px;
-	margin-left: 80px;
-  }
+    height:70px;
+  } 
 }
 @media (max-width: 979px) {
   .team {
-    height: 70px;
-	padding: 10px;
-	margin-top: 10px;
-	margin-left: 40px;
+    
   }
 }
 @media (max-width: 767px) {
   .team {
-    height: 70px;
-	padding: 10px;
-	margin-top: 10px;
-	margin-left: 10px;
-	margin-right: 10px;
+    height:110px;
   }
 }
 
-.feature {
-	height : 220px;
-}
-
-@media (min-width: 1200px) {
-  .feature {
-    height: 70px;
-  }
-}
-@media (max-width: 979px) {
-  .feature {
-    height: 280px;
-  }
-}
-@media (max-width: 767px) {
-  .feature {
-    height: 70px;
-    margin-left: 20px;
-    margin-right: 20px;
-  }
-}
-@media (max-width: 767px) {
-  .feature img {
-    height: 70px;
-    display: block;
-    margin-left: auto;
-    margin-right: auto;
-  }
-}
-
-@media (max-width: 767px) {
-  .feature h4 {
-    text-align: center;
-  }
-}
-
-@media (max-width: 767px) {
-  .feature p {
-    text-align: center;
-  }
-}
-
-.image_left {
-	float: left;
-	vertical-align: center;
-	margin-right: 10px;
-}
-
-@media (max-width: 767px) {
-  .image_left {
-     float: left;
-     height: 80px; 
-	 vertical-align: center;
-     margin-right: 10px; 
-  }
-}
-
-.newsticker {
-	text-decoration:none; 
-	font-style: italic; 
-	font-size:18pt;
-}
-
-.newsticker li {
-	text-decoration: italic;
-	font-size: 24;
-	list-style-type: none;
-	padding:20px;
-	display:none;
-}
-
 .anchor-in-div {
 	position: absolute; 
 	display: block;
@@ -832,27 +916,25 @@
   left: 0;
   right: 0;
   text-indent: -9999px;
-  z-index: 1000;
+  z-index: 200;
 }
 
 .team :hover {
-  -webkit-border-radius: 6px;
-  -moz-border-radius: 6px;
-  border-radius: 6px;
-  -webkit-box-shadow: 0 0 8px #74C0CF;
-  -moz-box-shadow: 0 0 8px #74C0CF;
-  box-shadow: 0 0 8px #74C0CF;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+  -webkit-box-shadow: 0 0 5px #444;
+  -moz-box-shadow: 0 0 5px #444;
+  box-shadow: 0 0 5px #444;
 }
 
 #extra {
-	background-color: #010211;
-	padding-top:20pt;
+	background: url('/Xtext/images/bg-footer.png') #444;
 }
 
 #extra .inner {
 	color: #fff;
-	border-top: 1px solid #010211;
-	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+	font-family: 'Lato', sans-serif;
 	font-weight: 400;
 	line-height: 1.3em;
 	font-style: normal;
@@ -897,15 +979,48 @@
 }
 
 #nav-outline {
+/*	position: fixed;
+	left: 50%;
+	top: 60pt;
+	margin-left: -345pt; */
 	max-width: 200px;
 	list-style: none;
-	margin:0;
+	font-family: 'Lato', sans-serif;
 }
-
+/*
+@media (min-width: 1200px) {
+	#nav-outline {
+		margin-left: -435pt;
+		max-width: 200px;
+	}	
+}
+@media (max-width: 979px) {
+	#nav-outline {
+		position: fixed;
+		left: 10px;
+		top: 80pt;
+		margin-left:0;
+		max-width: 200px;
+	}
+}
+@media (max-width: 767px) {
+	#nav-outline {
+		
+	}
+}
+*/
 #nav-outline ul {
 	list-style: none;
 }
 
+#nav-outline li {
+	margin-bottom: 3px;
+}
+
+.nav-part {
+	margin-top: 15px;
+	color: #333;
+}
 
 .navbar-inner {
 	border-radius: 0px;
@@ -913,9 +1028,7 @@
 	left: 50%;
 	margin-left: -50%;
 	width: 100%;
-	z-index: 1030;
-	background-image: none;
-	background-color: rgba(01,02,11,0.4);
+	z-index: 999;
 }
 
 .navbar .container {
@@ -937,46 +1050,21 @@
 	border-bottom: 1px solid #666;
 }
 
-.navbar .nav .active > a, .navbar .nav .active > a:hover {
-	color: white;
-	font-weight: bold;
-	text-decoration: none;
-}
-
-.navbar .nav > li > a {
-	color: white;
-	font-size: 16px;
-	text-decoration: none;
-}
-
-.navbar .nav > li > a:hover {
-	background-color: rgba(01,02,11,0.6);
-	color: white;
-	font-weight: bold;
-	text-decoration: none;
-}
-
 .navbar-fixed-top {
 	position: static;
+	border-bottom: 1px solid #000;
+}
+
+.navbar-inner {
+	padding-top: 10px;
+	padding-bottom: 5px;
 }
 
 .edit-on-github {
+	margin-top: 20px;
 	font-family: 'Lato', sans-serif;
 }
 
-#screenshots {
-	background: #E8E8E8;
-	border-top: 1px solid #CCC;
-	padding-left: 20px;
-	padding-right: 20px;
-}
-
-#screenshots .inner {
-	padding-top: 2.5em;
-	padding-bottom: 2.5em;
-	border-top: 1px solid #FFF;
-}
-
 #tweet a {
 	color: #fff;
 	text-decoration: underline;
@@ -984,7 +1072,7 @@
 
 /**** Page**/
 #page {
-/* 	background: rgb(255, 255, 255); Old browsers */
+	background: rgb(255, 255, 255); /* Old browsers */
 /* 	/* IE9 SVG, needs conditional override of 'filter' to 'none' */ */
 /* 	background: */
 /* 		url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNlYmViZWIiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); */
@@ -1003,19 +1091,13 @@
 /* 		rgba(235, 235, 235, 1) 100% ); W3C */
 /* 	filter: progid:DXImageTransform.Microsoft.gradient(  startColorstr='#ffffff', */
 /* 		endColorstr='#ebebeb', GradientType=0 ); IE6-8 */
-	border-top: 1px solid #010211;
-	padding-top:50pt;
-}
-
-@media (max-width: 767px) {
-	#page {
-		padding-top:0;
-	}
+	border-top: 1px solid #000;
+	padding-top : 50px; 
+	padding-bottom : 20px; 
 }
 
 #page h1 {
-	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
-	color: #333333;
+	color: #222;
 	font-weight: 400;
 	line-height: 1.3em;
 	font-style: normal;
@@ -1023,8 +1105,13 @@
 	font-size: 32px;
 }
 
+#page h1 small,#page h2 small,#page h3 small,#page h4 small,#page h5 small,#page h6 small {
+	font-weight: normal;
+	color: #444;
+}
+
 .page-heading {
-	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+	font-family: 'Lato', sans-serif;
 	color: #fff;
 	font-weight: 400;
 	line-height: 1.3em;
@@ -1034,15 +1121,14 @@
 }
 
 #page-heading {
-	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
-	color: #010211;
+	font-family: 'Lato', sans-serif;
+	color: #444;
 	text-align: center;
 }
 
-
 /*List Styles */
 ul.list1 li {
-	background: url(/xtend/images/bullet-checkmark.png) no-repeat 0 4px;
+	background: url('/Xtext/images/bullet-checkmark.png') no-repeat 0 4px;
 	padding-left: 20px;
 	margin-bottom: 10px;
 	display: block;
@@ -1050,7 +1136,7 @@
 }
 
 ul.list2 li {
-	background: url(/xtend/images/bullet-circles.png) no-repeat 0 4px;
+	background: url('/Xtext/images/bullet-circles.png') no-repeat 0 4px;
 	padding-left: 22px;
 	margin-bottom: 10px;
 	display: block;
@@ -1058,7 +1144,7 @@
 }
 
 ul.list3 li {
-	background: url(/xtend/images/bullet-plus.png) no-repeat 0 4px;
+	background: url('/Xtext/images/bullet-plus.png') no-repeat 0 4px;
 	padding-left: 22px;
 	margin-bottom: 10px;
 	display: block;
@@ -1067,43 +1153,36 @@
 
 .navbar .brand {
 	display: block;
+	position: relative;
+	top: 0;
 	width: 90px;
 	height: 34px;
 	padding-top: 0;
 	padding-bottom: 0;
-	margin-top: 12px;
-	margin-left: 10px;
+	margin-top: 2px;
 	overflow: hidden;
-	line-height: 600px;
-	color: #010220;
-	background: url(/xtend/images/logo.png) no-repeat 0 0;
-}
-
-.navbar .brand {
-	position: relative;
-	top: 0;
-	margin-left: 0;
 	font-weight: 600;
+	line-height: 600px;
+	color: #333;
+	background: url('/Xtext/images/logo.png') no-repeat 0 0px;
+	background-size: 90px;
+	background-position: center;
 }
 
-#intro {
-	background-color: rgba(1,2,22,0.3);
+.intro-reference {
+	background: url('/Xtext/images/bg-footer.png');
 	padding-top: 10px;
 	color: #fff;
 	text-align: center;
 }
 
-#intro h1 {
-	text-transform: uppercase;
-}
-
-#intro .container {
+.intro-reference .container {
 	border-bottom: none;
 	padding: 10px;
 }
 
 .navbar li {
-	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+	font-family: 'Lato', sans-serif;
 	color: #6B6B6B;
 	font-weight: 400;
 	line-height: 1.3em;
@@ -1111,45 +1190,118 @@
 	word-spacing: 1px;
 }
 
-.embedded-video {
-	width: 460px;
-	height: 259px;
-	margin-top: 20px;
-	-moz-border-radius: 20px;
-    -webkit-border-radius: 20px;
-    -khtml-border-radius: 20px;
-    border-radius: 5px;
+.popover {
+	max-width: 450px;
 }
 
-@media (min-width: 1200px) {
-  .embedded-video {
-	width : 570px;
-	height : 318px;
-	margin-top:20px;
-  }
+.languages .row {
+	margin : 0;
 }
+
+.language-card {
+	margin : 3px;
+}
+.language-card {
+	border : 1px solid #444;
+	background: -moz-linear-gradient(top, rgba(255, 255, 255, 1) 0%, rgba(235, 235, 235, 1) 100%);
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255, 255, 255, 1)), color-stop(100%,rgba(235, 235, 235, 1)));
+	background: -webkit-linear-gradient(top, rgba(255, 255, 255, 1) 0%,rgba(235, 235, 235, 1) 100%);
+	background: -o-linear-gradient(top, rgba(255, 255, 255, 1) 0%,rgba(235, 235, 235, 1) 100%);
+	background: -ms-linear-gradient(top, rgba(255, 255, 255, 1) 0%,rgba(235, 235, 235, 1) 100%);
+	background: linear-gradient(top, rgba(255, 255, 255, 1) 0%,rgba(235, 235, 235, 1) 100%);
+	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='white', endColorstr='#EBEBEB',GradientType=0 );
+	-webkit-border-radius: 4px;
+	-moz-border-radius: 4px;
+	border-radius: 4px;
+	-webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(0, 0, 0, .1);
+	-moz-box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(0, 0, 0, .1);
+	box-shadow: 0 1px 3px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(0, 0, 0, .1);
+/* 	padding: 10px; */
+/* 	margin-bottom: 15px; */
+/* 	height: 60px; */
+	position: relative;
+}
+
+.language-card :hover {
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
+  -webkit-box-shadow: 0 0 8px #444;
+  -moz-box-shadow: 0 0 8px #444;
+  box-shadow: 0 0 8px #444;
+}
+
 @media (max-width: 979px) {
-  .embedded-video {
-	width: 352px;
-	height: 200px;
-	margin-top: 80px;
-  }
+	.language-card {
+		height:200px;
+	}
+}
+@media (max-width: 767px) {
+	.language-card {
+		min-height:150px;
+		height:auto;
+	}
 }
 
-h2.front-title {
-	margin-top: 20px;
+.language-card td {
+	padding-right: 12px;
+	height: 100%;
+}
+.language-icon {
+	max-width : 140px;
 }
 
-@media (min-width: 1200px) {
-  h2.front-title {
-	margin-top:40px;
-  }
+.ribbon-wrapper-red {
+	width: 200px;
+	height: 172px;
+	overflow: hidden;
+	position: absolute;
+	top: -4px;
+	right: -4px;
 }
-  
+
+.ribbon-red {
+  font: bold 12px Sans-Serif;
+  text-align: center;
+  text-shadow: rgba(255,255,255,0.5) 0px 1px 0px;
+  position: relative;
+  padding: 7px 0;
+  left: 0px;
+  top: 80px;
+  width: 200px;
+  background-color: #444;
+  background-image: -webkit-gradient(linear, left top, left bottom, from(#444), to(#444)); 
+  background-image: -webkit-linear-gradient(top, #444, #444); 
+  background-image:    -moz-linear-gradient(top, #444, #444); 
+  background-image:     -ms-linear-gradient(top, #444, #444); 
+  background-image:      -o-linear-gradient(top, #444, #444); 
+  color: #6a6340;
+  -webkit-box-shadow: 0px 1px 3px rgba(0,0,0,0.3);
+  -moz-box-shadow:    0px 1px 3px rgba(0,0,0,0.3);
+  box-shadow:         0px 1px 3px rgba(0,0,0,0.3);
+    white-space: nowrap;
+}
+
 @media (max-width: 979px) {
-  h2.front-title {
-	margin-top: 80px;
-  }
+	.ribbon-red {
+		top: 120px;
+	}
+}
+
+.ribbon-red a {
+  color: white;
+}
+
+.ribbon-red:before, .ribbon-red:after {
+  position:absolute;
+  bottom: -3px;
+}
+
+.ribbon-green:before {
+  left: 0;
+}
+.ribbon-green:after {
+  right: 0;
 }
 
 .search-bar {
diff --git a/documentation.html b/documentation.html
index 48b25c3..09bf4f0 100644
--- a/documentation.html
+++ b/documentation.html
@@ -1,28 +1,228 @@
 <!DOCTYPE html>
 <html>
-<head>
+
+  <head>
 	<meta charset="UTF-8">
-    <meta http-equiv="refresh" content="3; URL=/xtend/documentation/">
-	<title>Xtend - Modernized Java</title>
+	<title>Xtext - Eclipse Support</title>
+	<meta http-equiv="refresh" content="3; URL=documentation/">
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
-	<link rel="shortcut icon" href="/xtend/images/favicon.png">
+	<meta name="description"
+		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
+	<meta name="author" content="Sven Efftinge">
+	<meta name="author" content="Miro Spoenemann">
+	<!--  styles -->
+	<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
+	<!--[if lt IE 9]>
+	  <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+	<![endif]-->
 	
-	<link href="/xtend/css/bootstrap.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/shield-responsive.css" rel="stylesheet" type='text/css'>
-	<link href='/xtend/css/fonts.css' rel='stylesheet' type='text/css'>
-	<link href="/xtend/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
-	<link href="/xtend/css/prettify.css" type="text/css" rel="stylesheet"/>
-	<link href="/xtend/css/style.css" rel="stylesheet" type='text/css'>
+	<!-- Le fav and touch icons -->
+	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
+	
+	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
+	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
+	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
+	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
+	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
+	<!-- cover flow -->
+	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
+	<!--[if lt IE 9]>
+	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
+	<![endif]-->
+
+	<!-- BEGIN Cookie Consent
+	<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.css" />
+	<script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.js"></script>
+	<script>
+	window.addEventListener("load", function(){
+	window.cookieconsent.initialise({
+		"palette": {
+		"popup": {
+		  "background": "#000"
+		},
+		"button": {
+		  "background": "#f1d600"
+		}
+		},
+		"theme": "edgeless",
+		"type": "opt-in",
+		onInitialise: function (status) {
+		  var type = this.options.type;
+		  var didConsent = this.hasConsented();
+		  if (type == 'opt-in' && didConsent) {
+		    // TODO: enable cookies
+		  }
+		  if (type == 'opt-out' && !didConsent) {
+		    // TODO: disable cookies
+		  }
+		},
+		onStatusChange: function(status, chosenBefore) {
+		  var type = this.options.type;
+		  var didConsent = this.hasConsented();
+		  if (type == 'opt-in' && didConsent) {
+		    // TODO: enable cookies
+		  }
+		  if (type == 'opt-out' && !didConsent) {
+		    // TODO: disable cookies
+		  }
+		}, 
+		onRevokeChoice: function() {
+		  var type = this.options.type;
+		  if (type == 'opt-in') {
+		    // TODO: disable cookies
+		  }
+		  if (type == 'opt-out') {
+		    // TODO: enable cookies
+		  }
+		},
+		"content": {
+		"href": "http://www.eclipse.org/legal/privacy.php"
+		}
+	})});
+	</script>
+	END Cookie Consent -->
 </head>
-<body>
-<div id="page">
-	<div class="inner">
+
+
+  <body>
+  
+    <header class="site-header">
+
+  <!-- Navbar -->
+  <div class="navbar navbar-fixed-top">
+    <div class="navbar-inner">
+      <div class="container">
+        <a class="btn btn-navbar" data-toggle="collapse"
+          data-target=".nav-collapse"> <span class="icon-bar"></span> <span
+          class="icon-bar"></span> <span class="icon-bar"></span>
+        </a> <a class="brand" href="/Xtext/index.html"></a>
+        <div class="nav-collapse collapse" style="height: 0px;">
+          <ul class="nav">
+            <!--li ><a href="/Xtext/news.html">News</a></li-->
+            <li ><a href="/Xtext/download.html">Download</a></li>
+            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
+            <li ><a href="/Xtext/community.html">Community</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
+                <li><a href="https://typefox.io/trainings-2" target="_blank">TypeFox</a></li>
+              </ul>
+            </li>
+            <li ><a href="http://xtend-lang.org">Xtend</a></li>
+          </ul>
+          <!--div class="nav pull-right">
+            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
+          </div-->
+        </div>
+        <!--/.nav-collapse -->
+      </div>
+    </div>
+  </div>
+  <!-- Navbar End -->
+
+</header>
+
+
+    <div id="page">
+	<div class="inner" style="margin-bottom:200px;">
 		<div class="container clearfix">
 			<h1>Documentation Has Moved</h1>
-			The Xtend documentation has been moved to <a href="/xtend/documentation/">/xtend/documentation/</a>.
+			The Xtext documentation has been moved to <a href="documentation/">documentation/</a>.
 		</div>
   	</div>
 </div>
-</body>
+
+    
+    <footer class="site-footer">
+  <div id="extra">
+    <div class="inner">
+      <div class="container">
+        <div class="row">
+          <div class="span6">
+            <h3 class="footer-links-header">Quick Links</h3>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+              <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+              <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+              <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
+            </ul>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
+              <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
+              <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
+              <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
+            </ul>
+          </div>
+          <div class="span6">
+            <!-- Social Media Links -->
+            <h3 class="footer-links-header"">Social Media</h3>
+            <ul class="footer-links clearfix">
+              <li>
+                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
+              </li>
+            </ul>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+  <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
+  <!-- Le javascript
+      ================================================== -->
+  <!-- Placed at the end of the document so the pages load faster -->
+  
+  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
+  <script src="/Xtext/js/bootstrap.min.js"></script>
+  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
+  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
+  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
+  <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
+  <!--script type="text/javascript">
+    var _gaq = _gaq || [];  
+      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
+    _gaq.push([ '_trackPageview' ]);
+    (function() {
+      var ga = document.createElement('script');
+      ga.type = 'text/javascript';
+      ga.async = true;
+      ga.src = ('https:' == document.location.protocol ? 'https://ssl'
+          : 'http://www')
+          + '.google-analytics.com/ga.js';
+      var s = document.getElementsByTagName('script')[0];
+      s.parentNode.insertBefore(ga, s);
+    })();
+  </script-->
+  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
+  <script>
+      $(function() {
+        $('#coverflow').coverflow({
+          active : 1,
+          visibleAside: 2,
+          overlap : 0.5,
+          scale : 0.9,
+          angle : 20,
+          trigger : {
+            "itemfocus" : true,
+            "swipe" : true,
+            "mousewheel" : false
+          }
+        });
+        $('#coverflow :hidden').toggle();
+        $(window).resize(function() {
+          $('#coverflow').coverflow();
+        });
+      });
+
+  </script>
+</footer>
+
+
+  </body>
+
 </html>
diff --git a/documentation/index.html b/documentation/index.html
index 083eb07..9c07544 100644
--- a/documentation/index.html
+++ b/documentation/index.html
@@ -3,10 +3,11 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtend - Documentation</title>
+	<title>Xtext - Documentation</title>
+	
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="Xtend is a statically typed programming language sitting on top of Java.">
+		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -16,19 +17,19 @@
 	<![endif]-->
 	
 	<!-- Le fav and touch icons -->
+	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
 	
-	<link rel="shortcut icon" href="/xtend/images/favicon.png">
-	
-	<link href="/xtend/css/bootstrap.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/shield-responsive.css" rel="stylesheet" type='text/css'>
-	<link href='/xtend/css/fonts.css' rel='stylesheet' type='text/css'>
-	<link href="/xtend/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
-	<link href="/xtend/css/prettify.css" type="text/css" rel="stylesheet"/>
-	<link href="/xtend/css/style.css" rel="stylesheet" type='text/css'>
-	
+	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
+	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
+	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
+	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
+	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
+	<!-- cover flow -->
+	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
 	<!--[if lt IE 9]>
-	<link href="css/iebugs.css" rel="stylesheet" type='text/css'>
+	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
 	<![endif]-->
 
 	<!-- BEGIN Cookie Consent
@@ -86,27 +87,35 @@
 
 
   <body>
+  
+    <header class="site-header">
 
-    <!-- Navbar -->
-  <div class="navbar navbar-fixed-top"
-    style="border-bottom: 1px solid #000;">
+  <!-- Navbar -->
+  <div class="navbar navbar-fixed-top">
     <div class="navbar-inner">
       <div class="container">
         <a class="btn btn-navbar" data-toggle="collapse"
           data-target=".nav-collapse"> <span class="icon-bar"></span> <span
           class="icon-bar"></span> <span class="icon-bar"></span>
-        </a> <a class="brand" href="/xtend/index.html"></a>
+        </a> <a class="brand" href="/Xtext/index.html"></a>
         <div class="nav-collapse collapse" style="height: 0px;">
           <ul class="nav">
-            <li ><a href="/xtend/download.html">Download</a></li>
-            <li ><a href="/xtend/documentation/index.html">Documentation</a></li>
-            <li ><a href="/xtend/community.html">Community</a></li>
-            <li ><a href="http://xtext.org">Xtext</a></li>
-            <li ><a href="http://www.eclipse.org">Eclipse.org</a></li>
+            <!--li ><a href="/Xtext/news.html">News</a></li-->
+            <li ><a href="/Xtext/download.html">Download</a></li>
+            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
+            <li ><a href="/Xtext/community.html">Community</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
+                <li><a href="https://typefox.io/trainings-2" target="_blank">TypeFox</a></li>
+              </ul>
+            </li>
+            <li ><a href="http://xtend-lang.org">Xtend</a></li>
           </ul>
-              <!--div class="btn-group pull-right">
-                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
-              </div-->
+          <!--div class="nav pull-right">
+            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
+          </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -114,68 +123,86 @@
   </div>
   <!-- Navbar End -->
 
+</header>
+
 
     <div class="page-content">
   <script>
     function startSearch(event) {
         if (event.keyCode == 13) {
-            var q = 'site:eclipse.org/xtend/documentation+' + event.target.value;
+            var q = 'site:eclipse.org/Xtext/documentation+' + event.target.value;
             window.open('https://www.google.com/search?q=' + q, "_self");
         }
     }
   </script>
   <div class="wrapper">
-    <div id="page">  
+  	<div id="page">  
       <div class="inner">
         <div id="maincontainer" class="container">
           <span class="edit-on-github pull-right">
-            <a href="https://github.com/eclipse/xtext/edit/website-published/xtend-website/documentation/index.md">Edit on Github</a>
+            <a href="https://github.com/eclipse/xtext/edit/website-published/xtext-website/documentation/index.html">Edit on Github</a>
           </span>
           <div class="span3" style="margin-left: 0px;">
             <div class="search-bar">
-              <img src="/xtend/images/search-gray.png"/>
+              <img src="/Xtext/images/search-gray.png"/>
               <input type="search" id="google-search" onkeyup="startSearch(event);"/>
             </div>
-            <ul id="nav-outline">
-	<li>&nbsp;</li>
-	<li style="color : #333;">Getting Started</li>
-	<li><a href="101_gettingstarted.html">Hello World</a></li>
-	<li><a href="102_moviesexample.html">The Movies Example</a></li>
-	<li>&nbsp;</li>
-	<li style="color : #333;">Reference Documentation</li>
-	<li><a href="201_types.html">Java Interoperability</a></li>
-	<li><a href="202_xtend_classes_members.html">Classes and Members</a></li>
-	<li><a href="203_xtend_expressions.html">Expressions</a></li>
-	<li><a href="204_activeannotations.html">Active Annotations</a></li>
+            <ul id="nav-outline" style="margin-left: 0px;">
+	<li class="nav-part">Getting Started</li>
+	<li><a href="102_domainmodelwalkthrough.html">15 Minutes Tutorial</a></li>
+	<li><a href="103_domainmodelnextsteps.html">15 Minutes Tutorial - Extended</a></li>
+	<li><a href="104_jvmdomainmodel.html">Five simple steps to your JVM language</a></li>
+		
+	<li class="nav-part">Reference Documentation</li>
+	<li><a href="301_grammarlanguage.html">The Grammar Language</a></li>
+	<li><a href="302_configuration.html">Configuration</a></li>
+	<li><a href="303_runtime_concepts.html">Language Implementation</a></li>
+	<li><a href="305_xbase.html">Integration with Java</a></li>
+	<li><a href="307_special_languages.html">Typical Language Configurations</a></li>
+	<li><a href="308_emf_integration.html">Integration with EMF</a></li>
+	<li><a href="310_eclipse_support.html">Eclipse Support</a></li>
+	<!--li><a href="320_idea_support.html">IntelliJ IDEA Support</a></li-->
+	<li><a href="330_web_support.html">Web Editor Support</a></li>
+	<li><a href="350_continuous_integration.html">Continuous Integration</a></li>
 </ul>
           </div>
-          <div class="span9 doc-contents">
-            <h1 id="introduction">Introduction</h1>
-
-<p>Xtend is a statically-typed programming language which translates to comprehensible Java source code. Syntactically and semantically Xtend has its roots in the Java programming language but improves on many aspects:</p>
-
-<ul>
-  <li><strong><a href="202_xtend_classes_members.html#extension-methods">Extension methods</a></strong> - enhance closed types with new functionality</li>
-  <li><strong><a href="203_xtend_expressions.html#lambdas">Lambda Expressions</a></strong> - concise syntax for anonymous function literals</li>
-  <li><strong><a href="204_activeannotations.html">ActiveAnnotations</a></strong> - annotation processing on steroids</li>
-  <li><strong><a href="203_xtend_expressions.html#operators">Operator overloading</a></strong> - make your libraries even more expressive</li>
-  <li><strong><a href="203_xtend_expressions.html#switch-expression">Powerful switch expressions</a></strong> - type based switching with implicit casts</li>
-  <li><strong><a href="202_xtend_classes_members.html#polymorphic-dispatch">Multiple dispatch</a></strong> - a.k.a. polymorphic method invocation</li>
-  <li><strong><a href="203_xtend_expressions.html#templates">Template expressions</a></strong> - with intelligent white space handling</li>
-  <li><strong><a href="203_xtend_expressions.html">No statements</a></strong> - everything is an expression</li>
-  <li><strong><a href="203_xtend_expressions.html#property-access">Properties</a></strong> - shorthands for accessing and defining getters and setter</li>
-  <li><strong>Type inference</strong> - you rarely need to write down type signatures anymore</li>
-  <li><strong>Full support for Java generics</strong> - including all conformance and conversion rules</li>
-  <li><strong>Translates to Java</strong> not bytecode - understand what is going on and use your code for platforms such as Android or GWT</li>
-</ul>
-
-<p>Unlike other JVM languages Xtend has <a href="201_types.html">zero interoperability issues</a> with Java: Everything you write interacts with Java exactly as expected. At the same time Xtend is much more concise, readable and expressive. Xtend’s small library is just a thin layer that provides useful utilities and extensions on top of the Java Development Kit (JDK).</p>
-
-<p>Of course, you can call Xtend methods from Java, too, in a completely transparent way. Furthermore, Xtend provides a modern Eclipse-based IDE closely integrated with the Eclipse Java Development Tools (JDT), including features like call-hierarchies, rename refactoring, debugging and many more.</p>
-
-<hr />
-
-<p><strong><a href="101_gettingstarted.html">Next Chapter: Hello World</a></strong></p>
+          <div class="span8 doc-contents">
+            <div class="clearfix">
+	<div class="span9">
+		<h1>How to get started?</h1>
+		<p>If you are not quite sure yet whether Xtext is an appropriate solution for your task, we recommend to watch the presentation below, as it gives you a good overview of what Xtext can do. If you want to dive in and learn, 
+			you should start with one of the getting started tutorials on the left. Also having the book as an additional resource to the online documentation is  certainly a good idea.</p>
+	</div>
+	<div class="span9">
+		<h2>Presentation - DSL Development With Xtext</h2>
+	</div>
+	<div class="span5">
+		<p>An introduction and overview of Xtext, given in September 2015 at JavaZone in Oslo, Norway. In this presentation a rule-language for home automation is developed.</p>
+	</div>
+	<div class="span4">
+		<a href="https://vimeo.com/138873446">
+			<img src="/Xtext/images/video_thumb.png" alt="Xtext Development Sven Efftinge">
+		</a>
+	</div>
+	<div class="span9">
+		<h2>Book - Implementing DSLs with Xtext and Xtend - Second Edition</h2>
+	</div>
+	<div class="span5">
+		<p>Overview:
+			<ul>
+				<li>Learn to quickly develop a domain-specific language with Xtext
+				<li>Implement any aspect of a DSL using Xtend, a fully featured Java-like programming language
+				<li>Discover how to test a DSL implementation and how to customize runtime and IDE aspects of the DSL
+			</ul>
+			Order the book or read reviews on <a href="https://www.amazon.com/Implementing-Domain-Specific-Languages-Xtext/dp/1786464969">amazon.com</a>.
+		<p>
+	</div>
+	<div class="span4">
+		<a href="https://www.amazon.com/Implementing-Domain-Specific-Languages-Xtext/dp/1786464969">
+			<img src="https://www.packtpub.com/sites/default/files/4965OS_5541_Implementing%20Domain%20Specific%20Languages%20with%20Xtext%20and%20Xtend%20–%20Second%20Edition.jpg">
+		</a>
+	</div>
+</div>
 
           </div>
         </div>
@@ -186,56 +213,54 @@
     
     <footer class="site-footer">
   <div id="extra">
-    <div class="container inner-footer">
-      <div class="row">
-        <div class="span6">
-          <h3 class="footer-links-header">Quick Links</h3>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
-            <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
-            <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
-            <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
-          </ul>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
-            <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
-            <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
-            <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
-          </ul>
-        </div>
-        <div class="span6">
+    <div class="inner">
+      <div class="container">
+        <div class="row">
+          <div class="span6">
+            <h3 class="footer-links-header">Quick Links</h3>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+              <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+              <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+              <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
+            </ul>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
+              <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
+              <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
+              <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
+            </ul>
+          </div>
+          <div class="span6">
             <!-- Social Media Links -->
             <h3 class="footer-links-header"">Social Media</h3>
             <ul class="footer-links clearfix">
               <li>
-                <a href="https://twitter.com/xtendlang"><img src="/xtend/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtendlang on Twitter</a>
+                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
               </li>
             </ul>
           </div>
-
+        </div>
       </div>
     </div>
   </div>
   <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
-  <a href="http://dryicons.com/">Icons by http://dryicons.com</a>
   <!-- Le javascript
       ================================================== -->
   <!-- Placed at the end of the document so the pages load faster -->
-  <script src="/xtend/js/jquery-1.7.1.min.js" type="text/javascript"></script>
-  <script src="/xtend/js/bootstrap.min.js" type="text/javascript"></script>
   
-  <!-- include pretty-print files -->
-  <script src="/xtend/js/prettify.js" type="text/javascript" ></script>
-  <script src="/xtend/js/lang-xtend.js" type="text/javascript"></script>
-  
-  <!-- Include the plug-in -->
-  <script src="/xtend/js/jquery.prettyPhoto.js" type="text/javascript"></script>
-  <script src="/xtend/js/jquery.easing.1.3.js" type="text/javascript"></script>
-  <script src="/xtend/js/custom.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
+  <script src="/Xtext/js/bootstrap.min.js"></script>
+  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
+  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
+  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
   <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
   <!--script type="text/javascript">
     var _gaq = _gaq || [];  
-      _gaq.push([ '_setAccount', 'UA-2429174-4' ]);
+      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -248,8 +273,31 @@
       s.parentNode.insertBefore(ga, s);
     })();
   </script-->
+  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
+  <script>
+      $(function() {
+        $('#coverflow').coverflow({
+          active : 1,
+          visibleAside: 2,
+          overlap : 0.5,
+          scale : 0.9,
+          angle : 20,
+          trigger : {
+            "itemfocus" : true,
+            "swipe" : true,
+            "mousewheel" : false
+          }
+        });
+        $('#coverflow :hidden').toggle();
+        $(window).resize(function() {
+          $('#coverflow').coverflow();
+        });
+      });
+
+  </script>
 </footer>
 
+
   </body>
 
 </html>
diff --git a/download.html b/download.html
index f93409d..c7b70d8 100644
--- a/download.html
+++ b/download.html
@@ -3,10 +3,11 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtend - Download</title>
+	<title>Xtext - Download</title>
+	
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="Xtend is a statically typed programming language sitting on top of Java.">
+		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -16,19 +17,19 @@
 	<![endif]-->
 	
 	<!-- Le fav and touch icons -->
+	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
 	
-	<link rel="shortcut icon" href="/xtend/images/favicon.png">
-	
-	<link href="/xtend/css/bootstrap.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/shield-responsive.css" rel="stylesheet" type='text/css'>
-	<link href='/xtend/css/fonts.css' rel='stylesheet' type='text/css'>
-	<link href="/xtend/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
-	<link href="/xtend/css/prettify.css" type="text/css" rel="stylesheet"/>
-	<link href="/xtend/css/style.css" rel="stylesheet" type='text/css'>
-	
+	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
+	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
+	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
+	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
+	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
+	<!-- cover flow -->
+	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
 	<!--[if lt IE 9]>
-	<link href="css/iebugs.css" rel="stylesheet" type='text/css'>
+	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
 	<![endif]-->
 
 	<!-- BEGIN Cookie Consent
@@ -86,27 +87,35 @@
 
 
   <body>
+  
+    <header class="site-header">
 
-    <!-- Navbar -->
-  <div class="navbar navbar-fixed-top"
-    style="border-bottom: 1px solid #000;">
+  <!-- Navbar -->
+  <div class="navbar navbar-fixed-top">
     <div class="navbar-inner">
       <div class="container">
         <a class="btn btn-navbar" data-toggle="collapse"
           data-target=".nav-collapse"> <span class="icon-bar"></span> <span
           class="icon-bar"></span> <span class="icon-bar"></span>
-        </a> <a class="brand" href="/xtend/index.html"></a>
+        </a> <a class="brand" href="/Xtext/index.html"></a>
         <div class="nav-collapse collapse" style="height: 0px;">
           <ul class="nav">
-            <li ><a href="/xtend/download.html">Download</a></li>
-            <li ><a href="/xtend/documentation/index.html">Documentation</a></li>
-            <li ><a href="/xtend/community.html">Community</a></li>
-            <li ><a href="http://xtext.org">Xtext</a></li>
-            <li ><a href="http://www.eclipse.org">Eclipse.org</a></li>
+            <!--li ><a href="/Xtext/news.html">News</a></li-->
+            <li ><a href="/Xtext/download.html">Download</a></li>
+            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
+            <li ><a href="/Xtext/community.html">Community</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
+                <li><a href="https://typefox.io/trainings-2" target="_blank">TypeFox</a></li>
+              </ul>
+            </li>
+            <li ><a href="http://xtend-lang.org">Xtend</a></li>
           </ul>
-              <!--div class="btn-group pull-right">
-                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
-              </div-->
+          <!--div class="nav pull-right">
+            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
+          </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -114,21 +123,20 @@
   </div>
   <!-- Navbar End -->
 
+</header>
+
 
     <div id="page">
-  <div class="inner">
-    <div class="container clearfix">
-    	<div>
 	<div class="container">
 		<div class="row">
 			<div class="span12">
 				<h2>Download Options</h2>
 				<p>
-		Xtend can be used in Eclipse. You can use your IDE's plug-in mechanism to add Xtend, using one of the URLs below.
+		Xtext languages can be developed in Eclipse. You can either use your favorite IDE's plug-in mechanism to add the Xtext SDK, using one of the URLs below, or go to the professional Xtext site to download a ready to use package.
 				</p>
 				<p>
 				
-					<strong><a href="releasenotes.html">Xtend 2.14.0 Release Notes</a></strong>
+					<strong><a href="releasenotes.html">Xtext 2.14.0 Release Notes</a></strong>
 				
 				</p>
 			</div>
@@ -136,141 +144,75 @@
 		<div class="row">
 			<div class="span12">
 				<a href="https://www.eclipse.org/downloads/" target="_blank" class="has-popover btn btn-success btn-large pull_left">Download Eclipse</a>
-
+				<!-- end HubSpot Call-to-Action Code -->
 				<h3>Eclipse Updatesites</h3>
-				<p> To install the Xtend plug-in into a running Eclipse.</p>
+				<p> To install the xtext plug-in into a running Eclipse.</p>
 				<p><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/" class="has-popover btn btn-primary btn-medium">Releases (right click &amp; copy)</a></p>
 				<p><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/composite/milestones/" class="has-popover btn btn-primary btn-medium">Milestones (right click &amp; copy)</a></p>
 				<p><a href="http://download.eclipse.org/modeling/tmf/xtext/updates/composite/latest/" class="has-popover btn btn-primary btn-medium">Nightly Builds (right click &amp; copy)</a></p>
 				<h3>Installation Instructions</h3>
 				<ul>
 					<li>Choose <e>Help -&gt; Install New Software...</e> from the menu bar and <e>Add...</e>.</li>
-					<li>Insert one of the update site URLs below. This site aggregates all the necessary and optional components and dependencies of Xtend.</li>
-					<li>Select the <e>Xtend IDE</e> from the category <e>Xtend</e> and complete the wizard by clicking the <e>Next</e> button until you can click <e>Finish</e>.</li>
-					<li>After a quick download and a restart of Eclipse, Xtend is ready to use.</li>
+					<li>Insert one of the update site URLs above. This site aggregates all the necessary and optional components and dependencies of Xtext.</li>
+					<li>Select the <e>Xtext SDK</e> from the category <e>Xtext</e> and complete the wizard by clicking the <e>Next</e> button until you can click <e>Finish</e>.</li>
+					<li>After a quick download and a restart of Eclipse, Xtext is ready to use.</li>
 				</ul>
 			</div>
 		</div>
 	</div>
 </div>
 
-<h3 id="maven-support">Maven Plugin</h3>
-
-<p>You can create a readily configured project with the following command.</p>
-
-<pre><code>mvn archetype:generate -DarchetypeGroupId=org.eclipse.xtend -DarchetypeArtifactId=xtend-archetype
-</code></pre>
-
-<p>If you already have a project, you need to add the Xtend library:</p>
-
-<pre><code class="language-xml">&lt;dependency&gt;
-  &lt;groupId&gt;org.eclipse.xtend&lt;/groupId&gt;
-  &lt;artifactId&gt;org.eclipse.xtend.lib&lt;/artifactId&gt;
-  &lt;version&gt;2.14.0&lt;/version&gt;
-&lt;/dependency&gt;
-</code></pre>
-
-<p>and the Xtend compiler plugin:</p>
-
-<pre><code class="language-xml">&lt;plugin&gt;
-  &lt;groupId&gt;org.eclipse.xtend&lt;/groupId&gt;
-  &lt;artifactId&gt;xtend-maven-plugin&lt;/artifactId&gt;
-  &lt;version&gt;2.14.0&lt;/version&gt;
-  &lt;executions&gt;
-    &lt;execution&gt;
-      &lt;goals&gt;
-        &lt;goal&gt;compile&lt;/goal&gt;
-        &lt;goal&gt;testCompile&lt;/goal&gt;
-      &lt;/goals&gt;
-      &lt;configuration&gt;
-        &lt;outputDirectory&gt;${project.build.directory}/xtend-gen/main&lt;/outputDirectory&gt;
-        &lt;testOutputDirectory&gt;${project.build.directory}/xtend-gen/test&lt;/testOutputDirectory&gt;
-      &lt;/configuration&gt;
-    &lt;/execution&gt;
-  &lt;/executions&gt;
-&lt;/plugin&gt;
-</code></pre>
-
-<h3 id="maven-support">Gradle Plugin</h3>
-
-<p>Here is a minimal Gradle build script using Xtend:</p>
-
-<pre><code class="language-groovy">plugins {
-  id "org.xtext.xtend" version "1.0.21"
-}
-
-repositories.jcenter()
-
-dependencies {
-  compile 'org.eclipse.xtend:org.eclipse.xtend.lib:2.14.0'
-}
-</code></pre>
-
-<p>For more information, visit the <a href="https://github.com/xtext/xtend-gradle-plugin">plugin’s page on GitHub</a></p>
-
-<h3 id="have-fun">Have Fun!</h3>
-
-<p>You can now use your IDE’s “New Xtend Class” wizard to start your journey.</p>
-
-<p><a href="documentation/101_gettingstarted.html">Click here for documentation and examples.</a></p>
-
-    </div>
-  </div>
-</div>
-
     
     <footer class="site-footer">
   <div id="extra">
-    <div class="container inner-footer">
-      <div class="row">
-        <div class="span6">
-          <h3 class="footer-links-header">Quick Links</h3>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
-            <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
-            <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
-            <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
-          </ul>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
-            <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
-            <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
-            <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
-          </ul>
-        </div>
-        <div class="span6">
+    <div class="inner">
+      <div class="container">
+        <div class="row">
+          <div class="span6">
+            <h3 class="footer-links-header">Quick Links</h3>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+              <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+              <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+              <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
+            </ul>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
+              <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
+              <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
+              <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
+            </ul>
+          </div>
+          <div class="span6">
             <!-- Social Media Links -->
             <h3 class="footer-links-header"">Social Media</h3>
             <ul class="footer-links clearfix">
               <li>
-                <a href="https://twitter.com/xtendlang"><img src="/xtend/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtendlang on Twitter</a>
+                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
               </li>
             </ul>
           </div>
-
+        </div>
       </div>
     </div>
   </div>
   <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
-  <a href="http://dryicons.com/">Icons by http://dryicons.com</a>
   <!-- Le javascript
       ================================================== -->
   <!-- Placed at the end of the document so the pages load faster -->
-  <script src="/xtend/js/jquery-1.7.1.min.js" type="text/javascript"></script>
-  <script src="/xtend/js/bootstrap.min.js" type="text/javascript"></script>
   
-  <!-- include pretty-print files -->
-  <script src="/xtend/js/prettify.js" type="text/javascript" ></script>
-  <script src="/xtend/js/lang-xtend.js" type="text/javascript"></script>
-  
-  <!-- Include the plug-in -->
-  <script src="/xtend/js/jquery.prettyPhoto.js" type="text/javascript"></script>
-  <script src="/xtend/js/jquery.easing.1.3.js" type="text/javascript"></script>
-  <script src="/xtend/js/custom.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
+  <script src="/Xtext/js/bootstrap.min.js"></script>
+  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
+  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
+  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
   <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
   <!--script type="text/javascript">
     var _gaq = _gaq || [];  
-      _gaq.push([ '_setAccount', 'UA-2429174-4' ]);
+      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -283,8 +225,31 @@
       s.parentNode.insertBefore(ga, s);
     })();
   </script-->
+  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
+  <script>
+      $(function() {
+        $('#coverflow').coverflow({
+          active : 1,
+          visibleAside: 2,
+          overlap : 0.5,
+          scale : 0.9,
+          angle : 20,
+          trigger : {
+            "itemfocus" : true,
+            "swipe" : true,
+            "mousewheel" : false
+          }
+        });
+        $('#coverflow :hidden').toggle();
+        $(window).resize(function() {
+          $('#coverflow').coverflow();
+        });
+      });
+
+  </script>
 </footer>
 
+
   </body>
 
 </html>
diff --git a/feed.xml b/feed.xml
index 8b6f953..c9414e2 100644
--- a/feed.xml
+++ b/feed.xml
@@ -1,100 +1,202 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <title>Xtend - Modernized Java</title>
-    <description>Xtend is a flexible and expressive dialect of Java, which compiles into readable Java 5 compatible source code. You can use any existing Java library seamlessly. The compiled output is readable and pretty-printed, and tends to run as fast as the equivalent handwritten Java code.
+    <title>Xtext - Language Engineering Framework</title>
+    <description>Xtext is a framework for development of programming languages and domain specific languages. It covers all  aspects of a complete language infrastructure, from parsers, over linker, compiler or interpreter to fully-blown  top-notch Eclipse IDE integration. It comes with great defaults for all these aspects which at the same time can  be easily tailored to your individual needs.
 </description>
-    <link>http://xtend-lang.org/xtend/</link>
-    <atom:link href="http://xtend-lang.org/xtend/feed.xml" rel="self" type="application/rss+xml"/>
-    <pubDate>Tue, 28 Aug 2018 04:01:12 -0400</pubDate>
-    <lastBuildDate>Tue, 28 Aug 2018 04:01:12 -0400</lastBuildDate>
+    <link>http://xtext.org/Xtext/</link>
+    <atom:link href="http://xtext.org/Xtext/feed.xml" rel="self" type="application/rss+xml"/>
+    <pubDate>Tue, 28 Aug 2018 04:34:43 -0400</pubDate>
+    <lastBuildDate>Tue, 28 Aug 2018 04:34:43 -0400</lastBuildDate>
     <generator>Jekyll v2.5.3</generator>
     
       <item>
-        <title>Xtend 2.14.0 Release Notes</title>
-        <description>&lt;h2 id=&quot;java-9-and-10-support&quot;&gt;Java 9 and 10 Support&lt;/h2&gt;
+        <title>Xtext 2.14.0 Release Notes</title>
+        <description>&lt;p&gt;While the Xtext project has paid more attention on bug fixing for the past release, Xtext 2.14 is bringing a whole bunch of new features. This version is part of the Eclipse Photon (4.8) simultaneous release. An important focus was to keep up with the fast development pace of important technologies that Xtext is building on. Since its past release, Java 9 and 10 came out. Build technologies like Maven Tycho and Gradle were changed to support that, too. The Language Server Protocol is evolving rapidly. JUnit 5 is adopted by IDEs and build systems. And Xtext is now ready for all of them!&lt;/p&gt;
 
-&lt;p&gt;Xtext and Xtend 2.14 are able to compile with and against Java 10. Here are a few notes on the Support&lt;/p&gt;
+&lt;h2 id=&quot;java-9-and-10-support&quot;&gt;Java 9 and 10 Support&lt;/h2&gt;
+
+&lt;p&gt;Xtext and Xtend 2.14 are able to compile with and against Java 9 &amp;amp; 10. Here are a few notes on the support&lt;/p&gt;
+
 &lt;ul&gt;
   &lt;li&gt;There is no native support for Java 9/10 module visibilities but we fall back to jdt/javac on that topic.&lt;/li&gt;
+  &lt;li&gt;A current Maven version is required (tested with 3.5)&lt;/li&gt;
+  &lt;li&gt;When using Gradle, version 4.7 is required at least. The wizard will create projects accordingly.&lt;/li&gt;
+  &lt;li&gt;Java 9 requires Tycho 1.1 or newer, Java 10 requires Tycho 1.2&lt;/li&gt;
+  &lt;li&gt;Java 9 requires Oxygen.1a at least, Java 10 requires Oxygen.3a. Eclipse Photon works fine for both.&lt;/li&gt;
+  &lt;li&gt;Java 10 requires the org.objectweb.asm library in version 6.1.1&lt;/li&gt;
 &lt;/ul&gt;
 
-&lt;h2 id=&quot;compiler&quot;&gt;Compiler&lt;/h2&gt;
+&lt;p&gt;For upgrading existing project use the New Project Wizard to create a project with the desired settings and compare build relevant files (MANIFEST.MF, build.gradle, pom.xml, *.target) with the existing projects.&lt;/p&gt;
 
-&lt;h3 id=&quot;avoid-generation-of-unnecessary-exception-variables&quot;&gt;Avoid generation of unnecessary exception variables&lt;/h3&gt;
+&lt;h2 id=&quot;junit-5-support&quot;&gt;JUnit 5 Support&lt;/h2&gt;
 
-&lt;p&gt;When an exception variable is not used within a catch block, the transpiled Java code contained an unused variable.&lt;/p&gt;
+&lt;p&gt;Xtext now supports the JUnit 5 framework for writing tests. JUnit 5.1 or newer is required.&lt;/p&gt;
 
-&lt;p&gt;Considering the following Xtend snippet:&lt;/p&gt;
+&lt;p&gt;For new projects the project wizard’s advanced page allows to select the desired JUnit version.&lt;/p&gt;
 
-&lt;pre&gt;&lt;code&gt;try {
-  ... some code ...
-} catch (SomeException e) {
-  // do nothing with &quot;e&quot;
-}
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_wizard_junit5.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;Created test projects directly only depend on the JUnit 5 API artifact&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;org.junit.jupiter:junit-jupiter-api:5.0.0
 &lt;/code&gt;&lt;/pre&gt;
 
-&lt;p&gt;The catch block was transpiled to:&lt;/p&gt;
+&lt;p&gt;Additional dependencies are configured by the JUnit Library container. This lowers the coupling to concrete JUnit versions and the test engine used. For example, Eclipse Photon is using JUnit 5.1, while Eclipse Oxygen is using JUnit 5.0. Furthermore, the execution of tests in build systems is using the test engines provided by the build system’s test plugins.&lt;/p&gt;
 
-&lt;pre&gt;&lt;code&gt;catch (final Throwable _t) {
-  if (_t instanceof SomeException) {
-    final SomeException e = (SomeException)_t;
-  } else {
-    throw Exceptions.sneakyThrow(_t);
-  }
-}
-&lt;/code&gt;&lt;/pre&gt;
+&lt;h2 id=&quot;new-grammar-annotations&quot;&gt;New Grammar Annotations&lt;/h2&gt;
 
-&lt;p&gt;Xtend will now avoid the generation of the variable when it is not used within the catch block:&lt;/p&gt;
+&lt;p&gt;The Xtext Grammar language supports the following additional annotations for parser rules:&lt;/p&gt;
 
-&lt;pre&gt;&lt;code&gt;catch (final Throwable _t) {
-  if (_t instanceof SomeException) {
-  } else {
-    throw Exceptions.sneakyThrow(_t);
-  }
-}
-&lt;/code&gt;&lt;/pre&gt;
+&lt;h3 id=&quot;deprecated&quot;&gt;@Deprecated&lt;/h3&gt;
 
-&lt;h3 id=&quot;multi-catch-support&quot;&gt;Multi-Catch Support&lt;/h3&gt;
-&lt;p&gt;With Xtend 2.14 the exception handling supports multi-catch clauses.&lt;/p&gt;
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_annotation_deprecated.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
 
-&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_14_0_xtend-multi-catch-new.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+&lt;p&gt;This annotation marks a rule to be deprecated. Issue markers with are produced where a deprecated rule is used. By default the severity of issue is &lt;em&gt;Warning&lt;/em&gt;. The severity level can be configured in the preferences. This feature will help you to do smooth langauage evolution of the time by informing your users about deprecated parts.&lt;/p&gt;
 
-&lt;p&gt;The multi-catch clause can handle an arbitrary number of exceptions separated by “|”. &lt;br /&gt;
-Within the catch block, the intersection exception type of the exceptions caught by the multi-catch statement is available for further processing.&lt;br /&gt;
-Multi-catch support leads to semantically rich and more concise catch statements.&lt;/p&gt;
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_annotation_preference.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
 
-&lt;h3 id=&quot;multi-type-guard-support&quot;&gt;Multi-Type Guard Support&lt;/h3&gt;
-&lt;p&gt;The type guard feature in switch statements is enhanced by support for testing multiple types in one case statement.&lt;/p&gt;
+&lt;h3 id=&quot;final&quot;&gt;@Final&lt;/h3&gt;
 
-&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_14_0_xtend-multi-type-guard-new.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_annotation_final.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
 
-&lt;p&gt;As for the multi-catch statements the different types handled by a single case statement are separated by “|”.&lt;br /&gt;
-The intersection type of the types specified in the multi-type guard statement is available within the case block.&lt;/p&gt;
+&lt;p&gt;A rule marked with &lt;code&gt;@Final&lt;/code&gt; cannot be overridden.&lt;/p&gt;
 
-&lt;h2 id=&quot;unnecessary-modifiers-validation&quot;&gt;Unnecessary Modifiers Validation&lt;/h2&gt;
+&lt;h3 id=&quot;exported&quot;&gt;@Exported&lt;/h3&gt;
 
-&lt;p&gt;Xtend detects unnecessary modifiers in code, e.g. the &lt;code&gt;public&lt;/code&gt; modifier on types. By default issues of this kind are raised as warnings, the severity level is configurable.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_14_unnecessary_modifier.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;p&gt;For convenient resolution of these issues a quick fix has been added.&lt;/p&gt;
+&lt;p&gt;As a default Xtext exports all elements to the index that have a name. For customizing this behaviour you need to create a custom IDefaultResourceDescriptionStrategy manually.&lt;br /&gt;
+With &lt;code&gt;@Exported&lt;/code&gt; it can be customized on grammar level, which element types are exported to the index. The customization takes effect when at least one rule in a grammar is annotated with &lt;code&gt;@Exported&lt;/code&gt;. By doing that you can easily manage visibility of elements and safe memory.&lt;/p&gt;
 
 &lt;h2 id=&quot;eclipse-integration&quot;&gt;Eclipse Integration&lt;/h2&gt;
 
-&lt;h3 id=&quot;organize-imports&quot;&gt;Organize Imports&lt;/h3&gt;
+&lt;h3 id=&quot;create-action-quickfix&quot;&gt;Create Action Quickfix&lt;/h3&gt;
 
-&lt;p&gt;The Organize Imports feature has been improved to consider inner types properly.&lt;/p&gt;
+&lt;p&gt;Rules that can be consumed without object instantiation usually require a &lt;em&gt;Create Action&lt;/em&gt;. A typical example is when a rule defines an optional assignment. Xtext reports this as a warning in the grammar file.&lt;/p&gt;
+
+&lt;p&gt;For problems of this kind a new &lt;em&gt;quickfix&lt;/em&gt; has been added that inserts the &lt;em&gt;Create Action&lt;/em&gt; at the proper place of the parser rule.&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_create-action.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h3 id=&quot;code-mining-support&quot;&gt;Code Mining Support&lt;/h3&gt;
+
+&lt;p&gt;Eclipse Photon (4.8) adds a new API called &lt;em&gt;Code Mining&lt;/em&gt;. With it text editors can inline additional semantic information into the text, which is not part of the text itself. A useful example to leverage this is to display names of inferred types, parameter names of a called function etc.&lt;/p&gt;
+
+&lt;p&gt;Xtext adds a new bundle &lt;code&gt;org.eclipse.xtext.ui.codemining&lt;/code&gt; which is offering an API for usage of Code Mining with Xtext. The code generator fragment &lt;code&gt;org.eclipse.xtext.xtext.generator.ui.codemining.CodeMiningFragment&lt;/code&gt; can be added to the generator workflow to create a stub implementation and provide all dependencies and bindings for the use of this API.&lt;/p&gt;
+
+&lt;p&gt;An example implementation has been added to the Domainmodel Example DSL. To learn more about the usage of this API install the example from the File menu and look up the &lt;code&gt;DomainmodelCodeMiningProvider&lt;/code&gt; class.&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_domainmodel-codemining.gif&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h3 id=&quot;new-project-and-file-wizard&quot;&gt;New Project and File Wizard&lt;/h3&gt;
+
+&lt;p&gt;With two simple switches you can turn on the generation of a New Project Wizard and a New File Wizard for your language.&lt;/p&gt;
+
+&lt;p&gt;These wizards are based on flexible templates to generate one or many projects with any number of files. You can enable the generation from your .mwe2 file with two simple switches:&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;language = StandardLanguage {
+    name = &quot;org.xtext.example.mydsl.MyDsl&quot;
+    fileExtensions = &quot;mydsl&quot;
+        
+    fileWizard = {
+        generate = true
+    }
+    projectWizard = {
+        generate = true
+    }
+}
+&lt;/code&gt;&lt;/pre&gt;
+
+&lt;p&gt;The wizard to create projects allows to select from a number of templates and creates one or, in certain situations helpful, even many projects.&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_new-file-wizard.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;The wizard to create files is more simple in its basic form and skips the template selection if there is only one file template.&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_new-project-wizard-template-selection.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;In case there are many templates the wizard gets a second page to configure the parameter whereas on the first page a combo box to select the template appears.&lt;/p&gt;
+
+&lt;p&gt;The UI for the parameters of the templates as well as the templates them self are defined in code with a concise API. You do not need to fiddle around with SWT widgets and get most UI stuff for free. The templates are generated in the UI project of your language. You can adapt the generated templates, add new ones or contribute new template providers through extension points.&lt;/p&gt;
+
+&lt;p&gt;If you generate the wizards for an existing project the &lt;code&gt;plugin.xml&lt;/code&gt; is not regenerated to not risk loosing manual changes you might have applied. Instead a &lt;code&gt;plugin.xml_gen&lt;/code&gt; is created. You have to merge the generated extensions to your &lt;code&gt;plugin.xml&lt;/code&gt; manually.&lt;/p&gt;
+
+&lt;h3 id=&quot;console-icon&quot;&gt;Console Icon&lt;/h3&gt;
+
+&lt;p&gt;The Xtext icon has been added for the Xtext console:&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_console-icon.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h2 id=&quot;language-server-support&quot;&gt;Language Server Support&lt;/h2&gt;
+
+&lt;p&gt;Xtext has been upgraded to LSP4J version 0.4.0. This includes the following features:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;Implementation of the Language Server Protocol 3.7.0&lt;/li&gt;
+  &lt;li&gt;Implementation of the VS Code Debug Protocol 1.25.0&lt;/li&gt;
+  &lt;li&gt;Support multiple local and remote services&lt;/li&gt;
+  &lt;li&gt;Improved error handling&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2 id=&quot;emf-support&quot;&gt;EMF Support&lt;/h2&gt;
+
+&lt;p&gt;With EMF 2.14 a new registry &lt;code&gt;EAnnotationValidator.Registry.INSTANCE&lt;/code&gt;, which had to be considered in Xtext’s testing support for resetting.&lt;/p&gt;
+
+&lt;p&gt;EMF 2.8 &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=367569#c7&quot;&gt;introduced&lt;/a&gt; the concept &lt;code&gt;ResourceLocator&lt;/code&gt; in &lt;code&gt;ResourceSet&lt;/code&gt;s. Xtext’s specialized implementation &lt;code&gt;XtextResourceSet&lt;/code&gt; did not support that so far and has been extended now.&lt;/p&gt;
+
+&lt;h2 id=&quot;change-serializer--rename-refactoring&quot;&gt;Change Serializer &amp;amp; Rename Refactoring&lt;/h2&gt;
+
+&lt;p&gt;The past &lt;a href=&quot;/Xtext/releasenotes.html#/releasenotes/2017/10/20/version-2-13-0&quot;&gt;release 2.13&lt;/a&gt; introduced a new API for EMF Model Manipulation and an improved rename refactoring based on the new &lt;code&gt;IChangeSerializer&lt;/code&gt; API.&lt;/p&gt;
+
+&lt;p&gt;These new features are still incubating. Several issues that were identified by the adoption of the features have been solved.&lt;/p&gt;
+
+&lt;h2 id=&quot;performance&quot;&gt;Performance&lt;/h2&gt;
+
+&lt;h3 id=&quot;output-configurations-cache&quot;&gt;Output Configurations Cache&lt;/h3&gt;
+
+&lt;p&gt;A performance bottleneck was &lt;a href=&quot;https://github.com/eclipse/xtext-eclipse/issues/535&quot;&gt;discovered&lt;/a&gt; in the access to &lt;code&gt;IOutputConfiguration&lt;/code&gt;s in builder participants. The problem depends on the amount of files produced by code generators.&lt;/p&gt;
+
+&lt;p&gt;A cache was introduced in class &lt;code&gt;BuilderParticipant&lt;/code&gt; to solve the issue.&lt;/p&gt;
+
+&lt;h3 id=&quot;semantic-highlighting&quot;&gt;Semantic Highlighting&lt;/h3&gt;
+
+&lt;p&gt;Computation of semantic highlighting &lt;a href=&quot;https://github.com/eclipse/xtext-eclipse/issues/347&quot;&gt;was performed twice&lt;/a&gt;. This was fixed and should improve editing experience especially for larger files with intensive use of semantic highlighting, for example like the Xtend language.&lt;/p&gt;
+
+&lt;h3 id=&quot;queuedbuilddata&quot;&gt;QueuedBuildData&lt;/h3&gt;
+
+&lt;p&gt;A bottleneck in class &lt;code&gt;QueuedBuildData&lt;/code&gt; has been &lt;a href=&quot;https://github.com/eclipse/xtext-eclipse/issues/40&quot;&gt;found&lt;/a&gt; that affects the build time for a large number of resources. The build time has been improved for this scenario.&lt;/p&gt;
+
+&lt;h2 id=&quot;execution-environment&quot;&gt;Execution Environment&lt;/h2&gt;
+
+&lt;p&gt;Xtext 2.14 comes with the following requirements for the execution environment:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;Java: 1.8, 9 or 10&lt;/li&gt;
+  &lt;li&gt;Eclipse Luna (4.4) or newer&lt;/li&gt;
+  &lt;li&gt;EMF 2.10 or newer&lt;/li&gt;
+  &lt;li&gt;Guice 3.0&lt;/li&gt;
+  &lt;li&gt;Tycho 1.1, 1.2 (Java 10 or JUnit 5)&lt;/li&gt;
+  &lt;li&gt;JUnit 4.12 or 5.1&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;Note that bundle &lt;code&gt;org.eclipse.xtext.xbase.lib&lt;/code&gt; was compiled with Java 1.8 now, while being compatible to 1.6 in earlier versions.&lt;/p&gt;
 
 &lt;h2 id=&quot;links&quot;&gt;Links&lt;/h2&gt;
 
+&lt;p&gt;More detailed information on some topics have been written in blog posts:&lt;/p&gt;
+
 &lt;ul&gt;
-  &lt;li&gt;&lt;a href=&quot;https://blogs.itemis.com/en/xtend-2-14-unnecessary-modifiers-validation&quot;&gt;“Unnecessary modifiers validation” blog post&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://blogs.itemis.com/en/xtext-2.14-adds-support-for-junit-5&quot;&gt;“Xtext 2.14 adds support for JUnit 5”&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://blogs.itemis.com/en/code-mining-support-in-xtext&quot;&gt;“Code Mining Support in Xtext”&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://blogs.itemis.com/en/generating-a-new-project-wizard-with-xtext-2.14&quot;&gt;“Generating a new project wizard with Xtext 2.14”&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://blogs.itemis.com/en/new-file-wizard-easy-to-generate-with-xtext-2.14&quot;&gt;“New File Wizard – easy to generate with Xtext 2.14”&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://blogs.itemis.com/de/new-project-wizard-einfach-mit-xtext-2-14-generieren&quot;&gt;“New Project Wizard: einfach mit Xtext 2.14 generieren”&lt;/a&gt; (German)&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://blogs.itemis.com/de/new-file-wizard-einfach-mit-xtext-2.14-generieren&quot;&gt;“Erzeugen des New File Wizards”&lt;/a&gt; (German)&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/lsp4j/blob/master/CHANGELOG.md&quot;&gt;LSP4J Changelog&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;
 
 &lt;h2 id=&quot;fixed-issues&quot;&gt;Fixed Issues&lt;/h2&gt;
 
-&lt;p&gt;As in every release we are eagerly hunting down the bugs, review and integrate lots of contributions. 88 issues, 62 Pull Requests and 20 Bugzilla tickets have made it into this release. For further details please refer to the following lists:&lt;/p&gt;
+&lt;p&gt;As in every release we are eagerly hunting down the bugs, review and integrate lots of contributions. 88 issues, 62 Pull Requests and 60 Bugzilla tickets have made it into this release. For further details please refer to the following lists:&lt;/p&gt;
 
 &lt;ul&gt;
   &lt;li&gt;
@@ -110,8 +212,8 @@
 
 </description>
         <pubDate>Wed, 23 May 2018 00:00:00 -0400</pubDate>
-        <link>http://xtend-lang.org/xtend/releasenotes/2018/05/23/version-2-14-0.html</link>
-        <guid isPermaLink="true">http://xtend-lang.org/xtend/releasenotes/2018/05/23/version-2-14-0.html</guid>
+        <link>http://xtext.org/Xtext/releasenotes/2018/05/23/version-2-14-0.html</link>
+        <guid isPermaLink="true">http://xtext.org/Xtext/releasenotes/2018/05/23/version-2-14-0.html</guid>
         
         
         <category>releasenotes</category>
@@ -120,9 +222,202 @@
     
       <item>
         <title>Xtext 2.13.0 Release Notes</title>
-        <description>&lt;h3 id=&quot;xtend-213-is-out&quot;&gt;Xtend 2.13 is out&lt;/h3&gt;
+        <description>&lt;h2 id=&quot;language-server-support&quot;&gt;Language Server Support&lt;/h2&gt;
 
-&lt;p&gt;Xtend 2.13 is mainly a bugfix release.&lt;/p&gt;
+&lt;h3 id=&quot;eclipse-new-project-wizard-language-server-build&quot;&gt;Eclipse New Project Wizard: Language Server Build&lt;/h3&gt;
+
+&lt;p&gt;The New Project Wizard allows now to build an executable distribution of language server. On the advanced page a new option was added which is enabled when a Build System was selected. The option allows the selection of a distribution type:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;&lt;strong&gt;Regular&lt;/strong&gt;: A batch script is created that is used to start the server. The DSL jars and all of its runtime dependencies are copied to the output folder.&lt;/li&gt;
+  &lt;li&gt;&lt;strong&gt;Fat Jar&lt;/strong&gt;: The language server is packaged in a single executable jar.&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;Both Gradle and Maven are supported. When activated, the build script of the language’s Generic IDE project is extended and the language server is packaged to the project’s build&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_13_project-wizard-ls.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h2 id=&quot;eclipse-integration&quot;&gt;Eclipse Integration&lt;/h2&gt;
+
+&lt;h3 id=&quot;configuration-error-detection&quot;&gt;Configuration Error Detection&lt;/h3&gt;
+
+&lt;p&gt;Invalid combinations of bundles are a frequent source of errors. This can be caused by an invalid mixture of Xtext’s UI and runtime plugins, or by DSL plugins developed with a different version of Xtext than used in the environment where it fails.&lt;/p&gt;
+
+&lt;p&gt;Although there can’t be done anything to get the plugins working on an invalid environment, the resulting failure messages were not good for the user, leaving an impression of an unstable framework.&lt;/p&gt;
+
+&lt;p&gt;When running in an error during the initial creation of Guice injectors in the DSL’s UI or Xtext’s Shared UI bundle, the error is catched and an analysis of the runtime environment is included in the failure message. This allows better analysis of the root cause.&lt;/p&gt;
+
+&lt;h3 id=&quot;multi-quickfixes&quot;&gt;Multi-Quickfixes&lt;/h3&gt;
+
+&lt;p&gt;These are quickfixes that allow to be applied to multiple markers at once.&lt;/p&gt;
+
+&lt;p&gt;TBD&lt;/p&gt;
+
+&lt;h3 id=&quot;better-cancellation-in-refactorings&quot;&gt;Better Cancellation in Refactorings&lt;/h3&gt;
+
+&lt;p&gt;You can how hit the cancel dialog in refactorings and it will actually cancel at the next opportunity and not at the end only.&lt;/p&gt;
+
+&lt;h3 id=&quot;content-type-descriptor&quot;&gt;Content Type Descriptor&lt;/h3&gt;
+
+&lt;p&gt;Xtext UI projects provide a Content Type Descriptor by contributing to the &lt;a href=&quot;https://help.eclipse.org/oxygen/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fruntime_content_contributing.htm&quot;&gt;&lt;code&gt;org.eclipse.core.contenttype.contentTypes&lt;/code&gt; extension point&lt;/a&gt; to the &lt;code&gt;plugin.xml&lt;/code&gt; file. This is affecting performance on text searches in Eclipse, since Eclipse can decide that a DSL file has no binary content based on the content type’s base type. (&lt;a href=&quot;https://github.com/eclipse/xtext-eclipse/issues/379&quot;&gt;xtext-eclipse/issues/379&lt;/a&gt;)&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;&amp;lt;extension point=&quot;org.eclipse.core.contenttype.contentTypes&quot;&amp;gt;
+	&amp;lt;content-type
+		base-type=&quot;org.eclipse.core.runtime.text&quot;
+		file-extensions=&quot;mydsl&quot;
+		id=&quot;org.eclipse.xtext.mydsl.MyDSL.contenttype&quot;
+		name=&quot;MyDSL File&quot;
+		priority=&quot;normal&quot;&amp;gt;
+	&amp;lt;/content-type&amp;gt;
+&amp;lt;/extension&amp;gt;
+&lt;/code&gt;&lt;/pre&gt;
+
+&lt;h2 id=&quot;new-api&quot;&gt;New API&lt;/h2&gt;
+
+&lt;h3 id=&quot;emf-model-manipulation-api-incubating&quot;&gt;EMF Model Manipulation API (incubating)&lt;/h3&gt;
+
+&lt;p&gt;The &lt;code&gt;IChangeSerializer&lt;/code&gt; is a new API to listen to changes that are made to the EMF model of an XtextResource and serialize them back to the document’s text. It has a number of benefits to the old &lt;code&gt;XtextDocument.modify()&lt;/code&gt; approach:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;Direct integration with the formatter, such that changes are automatically nicely formatted.&lt;/li&gt;
+  &lt;li&gt;Minimum text region changes resulting in less noise.&lt;/li&gt;
+  &lt;li&gt;Many points to hook into, e.g. for automatic update of an import section.&lt;/li&gt;
+  &lt;li&gt;More ways to optimize for a specific language and to tune performance.&lt;/li&gt;
+  &lt;li&gt;Independence from Eclipse-UI concepts like the &lt;code&gt;Document&lt;/code&gt;. This makes it reusable in languages server implementations.&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;You can use the &lt;code&gt;IChangeSerializer&lt;/code&gt; for refactorings, semantic quickfixes, code lens etc. It still has a few limitations, e.g. it does not work with derived state models, that’s why we keep it provisional for now.&lt;/p&gt;
+
+&lt;p&gt;Nevertheless, we have added the following new features based on it:&lt;/p&gt;
+
+&lt;h3 id=&quot;rename-participants-for-eclipse-file-operations&quot;&gt;Rename Participants for Eclipse File Operations&lt;/h3&gt;
+
+&lt;p&gt;Some languages tie the model file name to the content, like the package declaration in Java. For such cases you might want to participate in operations on files or directories, like move, rename or paste, to adapt your models automatically. Based on the new &lt;code&gt;IChangeSerializer&lt;/code&gt; we have implemented some generic file refactoring participants. You will get notified of such changes to react appropriately by registering your own &lt;code&gt;IResourceRelocationStrategy&lt;/code&gt;.&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;&amp;lt;extension point=&quot;org.eclipse.xtext.ui.resourceRelocationStrategy&quot;&amp;gt;
+   &amp;lt;strategy class=&quot;mydsl.MydslExecutableExtensionFactory:mydsl.MydslResourceRelocationStrategy&quot;&amp;gt;
+   &amp;lt;/strategy&amp;gt;
+&amp;lt;/extension&amp;gt;
+&lt;/code&gt;&lt;/pre&gt;
+
+&lt;h3 id=&quot;alternative-rename-refactoring-for-xtext&quot;&gt;Alternative Rename Refactoring for Xtext&lt;/h3&gt;
+
+&lt;p&gt;By enabling &lt;code&gt;useChangeSerializer&lt;/code&gt; flag in the workflow of your language&lt;/p&gt;
+&lt;pre&gt;&lt;code&gt;Workflow {
+  component = XtextGenerator {
+    ...
+    language = StandardLanguage {
+      ...
+      renameRefactoring = {
+        useChangeSerializer = true
+      ...
+&lt;/code&gt;&lt;/pre&gt;
+&lt;p&gt;you will use an new, alternative rename refactoring for Eclipse based on the &lt;code&gt;IChangeSerializer&lt;/code&gt;. This flag will also generate the binding for the &lt;code&gt;IRenameService&lt;/code&gt; and thereby enable rename refactoring on your language server.&lt;/p&gt;
+
+&lt;h3 id=&quot;xbase-library-orgeclipsextextxbaselib&quot;&gt;Xbase Library (&lt;code&gt;org.eclipse.xtext.xbase.lib&lt;/code&gt;)&lt;/h3&gt;
+
+&lt;h4 id=&quot;no-arg-overloads-to-all-mutable-collection-literals&quot;&gt;No-arg overloads to all mutable collection literals&lt;/h4&gt;
+
+&lt;p&gt;Class &lt;code&gt;CollectionLiterals&lt;/code&gt; was extended by no-arg methods for all mutable collection literals:&lt;/p&gt;
+&lt;ul&gt;
+  &lt;li&gt;&lt;code&gt;newArrayList()&lt;/code&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;code&gt;newHashMap()&lt;/code&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;code&gt;newHashSet()&lt;/code&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;code&gt;newLinkedHashMap()&lt;/code&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;code&gt;newLinkedHashSet()&lt;/code&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;code&gt;newLinkedList()&lt;/code&gt;&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;Xtext’s code base was refactored to use these methods where appropriate. As a consequence Xtext requires at least version 2.13 of &lt;code&gt;org.eclipse.xtext.xbase.lib&lt;/code&gt;. Therefore bundle manifests were refactored to constraint the library bundle’s lower version. New projects will automatically add the version constraint to manifests.&lt;/p&gt;
+
+&lt;h4 id=&quot;flatmap-extension-method&quot;&gt;flatMap extension method&lt;/h4&gt;
+
+&lt;p&gt;A new convenience method &lt;code&gt;flatMap&lt;/code&gt; has been added to &lt;code&gt;IterableExtensions&lt;/code&gt; and &lt;code&gt;IteratorExtensions&lt;/code&gt;, which combines &lt;code&gt;map&lt;/code&gt; and &lt;code&gt;flatten&lt;/code&gt;.&lt;/p&gt;
+
+&lt;pre&gt;&lt;code&gt;@FinalFieldsConstructor
+@Accessors
+class Planet {
+	final String name
+	final List&amp;lt;Moon&amp;gt; moons
+}
+
+@FinalFieldsConstructor
+@Accessors
+class Moon {
+	final String name
+}
+
+
+class Planets {
+	def static void main (String[] args) {
+		
+		val Iterable&amp;lt;Planet&amp;gt; planets = #[
+			new Planet(&quot;Earth&quot;, #[new Moon (&quot;Moon&quot;)]),
+			new Planet(&quot;Mars&quot;, #[new Moon (&quot;Phobos&quot;), new Moon(&quot;Deimos&quot;)])
+		]
+		
+		val moonNames_old = planets.map[moons].flatten.map[name]
+		val moonNames_new = planets.flatMap[moons].map[name]
+	}
+}
+&lt;/code&gt;&lt;/pre&gt;
+
+&lt;h2 id=&quot;tracing&quot;&gt;Tracing&lt;/h2&gt;
+
+&lt;p&gt;Tracing can now be used for debugging in generated Java code as well. The &lt;code&gt;@Traced&lt;/code&gt; annotation now takes optionally a &lt;code&gt;useForDebugging=true&lt;/code&gt;. The &lt;code&gt;@TracedAccessors&lt;/code&gt; are now adds to the &lt;code&gt;._&amp;lt;feature&amp;gt;()&lt;/code&gt; extension method a &lt;code&gt;._&amp;lt;feature&amp;gt;(useForDebugging)&lt;/code&gt; extension method.&lt;/p&gt;
+
+&lt;h2 id=&quot;refactoring&quot;&gt;Refactoring&lt;/h2&gt;
+
+&lt;h3 id=&quot;jdt-dependency-reduction&quot;&gt;JDT Dependency Reduction&lt;/h3&gt;
+
+&lt;p&gt;Xtext languages can be deployed in environments without JDT UI. In some use cases it was detected that this can still lead to runtime errors due to  (&lt;code&gt;NoClassDefFoundError&lt;/code&gt;). Dependencies in the following bundles have been resolved:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;&lt;code&gt;org.eclipse.xtext.builder&lt;/code&gt; (&lt;a href=&quot;https://github.com/eclipse/xtext-eclipse/issues/386&quot;&gt;issue#386&lt;/a&gt;)&lt;/li&gt;
+  &lt;li&gt;&lt;code&gt;org.eclipse.xtext.xbase.ui&lt;/code&gt; (&lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=509630&quot;&gt;bug#509630&lt;/a&gt;)&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;We reduced usage of internal API which is subject for removal in JDT. Since older Xtext versions rely on this API, the API is kept by the JDT team for backwards compatibility of Xtext. (&lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=525462&quot;&gt;bug#525462&lt;/a&gt;)&lt;/p&gt;
+
+&lt;h3 id=&quot;improved-support-for-indentation-based-languages&quot;&gt;Improved Support for Indentation Based Languages&lt;/h3&gt;
+
+&lt;p&gt;Token placement for INDENT / DEDENT tokens have been improved. This improves content assist for indentation based languages. (&lt;a href=&quot;https://github.com/eclipse/xtext-core/pull/366&quot;&gt;issue#366&lt;/a&gt;)&lt;/p&gt;
+
+&lt;h3 id=&quot;new-generator-infrastructure&quot;&gt;New Generator Infrastructure&lt;/h3&gt;
+
+&lt;p&gt;Xtext 2.9 introduced a &lt;a href=&quot;version-2-9-0&quot;&gt;new generator infrastructure&lt;/a&gt;. While new projects created with Xtext and the main languages in Xtext already used this generator, there were still some languages, especially test languages, that still used the deprecated old infrastructure. All languages are now migrated to the new generator.&lt;/p&gt;
+
+&lt;h2 id=&quot;an-eye-on-quality&quot;&gt;An Eye on Quality&lt;/h2&gt;
+
+&lt;p&gt;With every release we are working hard on fixing as many bugs as possible. Besides our Bugtrackers Eclipse Bugzilla and GitHub Issues the &lt;a href=&quot;https://www.codetrails.com/error-analytics/&quot;&gt;Automatic Error Reporting System&lt;/a&gt; at Eclipse (AERI) is an incredible valuable source of information for us. It uncovers real problems by real users, and has made error reporting to Eclipse a no-brainer.&lt;/p&gt;
+
+&lt;p&gt;As Xtext is a complex framework with an incredible flexibility, much can go wrong. Often these errors indicate ways of usage which we could not predict, or they show problems in custom DSLs. Sometimes they uncover also errors in code that we use. We are actively visiting the reports we get into EARI, with a focus on frequently occuring events and new ones.&lt;/p&gt;
+
+&lt;p&gt;The Xtext team is proud that this continuous effort finally pays off. For the first time ever, we had several weeks with no new problem report. And fighting against the existing issues no a clear burn-down curve (see the Incidents Timeline). From all problems reported to AERI, we have just ~12% open, and the most frequent and urgent ones are solved.&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_13_aeri_problem_status.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
+&lt;img src=&quot;/Xtext/images/releasenotes/2_13_aeri_problem_resolution.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
+&lt;img src=&quot;/Xtext/images/releasenotes/2_13_aeri_incidents_timeline.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h2 id=&quot;improved-developer-contribution-support&quot;&gt;Improved Developer Contribution Support&lt;/h2&gt;
+
+&lt;p&gt;Setting up a developer workspace has never been so easy! We have reviewed and updated our Oomph Setup which allows you to create an Eclipse development environment for Xtext with a few clicks. Just get the &lt;a href=&quot;https://www.eclipse.org/downloads/&quot;&gt;Eclipse Installer&lt;/a&gt;, go to Advanced Mode and select the Xtext subprojects you are working with. Let the Installer do the rest of the work while getting a fresh coffee.&lt;/p&gt;
+
+&lt;h3 id=&quot;execution-environment&quot;&gt;Execution Environment&lt;/h3&gt;
+
+&lt;p&gt;Minimal requirements are:&lt;/p&gt;
+&lt;ul&gt;
+  &lt;li&gt;Java 8&lt;/li&gt;
+  &lt;li&gt;Eclipse Luna&lt;/li&gt;
+  &lt;li&gt;EMF 2.10&lt;/li&gt;
+  &lt;li&gt;Guice 3.0&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;Xtext has been tested also on Eclipse Oxygen.1a and Eclipse Photon M2.&lt;/p&gt;
+
+&lt;h2 id=&quot;some-words-on-java-9&quot;&gt;Some words on Java 9&lt;/h2&gt;
+
+&lt;p&gt;Java 9 Support in Eclipse Oxygen 1a and Xtext 2.13 is not yet in a perfect state. To be able to run mwe workflows you need either to remove &lt;code&gt;org.objectweb.asm&lt;/code&gt; from the mwe classpath (adapting manifest or build.properties) or install ASM 6.0 from the latest Eclipse Orbit repositories. The Compilation of Xtext projects with Java 9 is terrible slow due to a know &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=526209&quot;&gt;bug&lt;/a&gt; in JDT. So using Xtext 2.13 and Java 9 in production should be considered thrice and is not recommended. Setting the compiler level to 1.8 mitigates the performance issue slightly.&lt;/p&gt;
 
 &lt;h2 id=&quot;fixed-issues&quot;&gt;Fixed Issues&lt;/h2&gt;
 
@@ -142,8 +437,8 @@
 
 </description>
         <pubDate>Fri, 20 Oct 2017 00:00:00 -0400</pubDate>
-        <link>http://xtend-lang.org/xtend/releasenotes/2017/10/20/version-2-13-0.html</link>
-        <guid isPermaLink="true">http://xtend-lang.org/xtend/releasenotes/2017/10/20/version-2-13-0.html</guid>
+        <link>http://xtext.org/Xtext/releasenotes/2017/10/20/version-2-13-0.html</link>
+        <guid isPermaLink="true">http://xtext.org/Xtext/releasenotes/2017/10/20/version-2-13-0.html</guid>
         
         
         <category>releasenotes</category>
@@ -151,26 +446,137 @@
       </item>
     
       <item>
-        <title>Xtend 2.11.0 Release Notes</title>
-        <description>&lt;p&gt;Xtend version 2.11 comes with a new source repository and plenty of improvements and bug fixes.&lt;/p&gt;
+        <title>Xtext 2.12.0 Release Notes</title>
+        <description>&lt;p&gt;Xtext 2.12.0 brings several bug fixes and a new API for tracing generated code.&lt;/p&gt;
 
-&lt;h2 id=&quot;new-source-repository&quot;&gt;New Source Repository&lt;/h2&gt;
+&lt;h2 id=&quot;new-tracing-api-for-generators&quot;&gt;New Tracing API for Generators&lt;/h2&gt;
 
-&lt;p&gt;The Xtend code base has been moved to a dedicated repository &lt;a href=&quot;https://github.com/eclipse/xtext-xtend&quot;&gt;xtext-xtend&lt;/a&gt; in the course of the restructuring of Xtext (see the &lt;a href=&quot;https://www.eclipse.org/Xtext/releasenotes.html&quot;&gt;Xtext 2.11.0 Release Notes&lt;/a&gt;).&lt;/p&gt;
+&lt;p&gt;The new API in the &lt;code&gt;org.eclipse.xtext.generator.trace&lt;/code&gt; package allows to generate text files along with trace files. These trace files can be used by generic UI such as the “Open Generated File” action as well as domain-specific features such as debugging. It’s very easy to add such tracing information to a code generator, e.g. with &lt;a href=&quot;https://www.eclipse.org/xtend/documentation/203_xtend_expressions.html#templates&quot;&gt;Xtend templates&lt;/a&gt;:&lt;/p&gt;
 
-&lt;h2 id=&quot;the-xtend-language-and-library&quot;&gt;The Xtend Language and Library&lt;/h2&gt;
+&lt;pre&gt;&lt;code class=&quot;language-xtend&quot;&gt;class MyDslGenerator extends AbstractGenerator {
+	
+	@TracedAccessors(MyDslFactory)
+	static class MyDslTraceExtensions {}
+	
+	@Inject extension MyDslTraceExtensions
 
-&lt;h3 id=&quot;string-concatenation-performance-improvements&quot;&gt;String Concatenation Performance Improvements&lt;/h3&gt;
+	override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) {
+		val m = resource.contents.head as Model
+		
+		fsa.generateTracedFile(&quot;foo/Bar.txt&quot;, m, &#39;&#39;&#39;
+			// generated
+			«FOR c : m.types»
+				«generateClass(c)»
+			«ENDFOR»
+		&#39;&#39;&#39;)
+	}
+	
+	@Traced def generateClass(ClassDeclaration it) &#39;&#39;&#39;
+		class «_name» {
+			«FOR m : members»
+				«generateMember(m)»
+			«ENDFOR»
+		}
+	&#39;&#39;&#39;
+	
+	@Traced def dispatch generateMember(Operation it) &#39;&#39;&#39;
+		«_name»(«FOR it : parameter»«_name» : «_type[name.name]»«ENDFOR») : «_type[name.name]»
+	&#39;&#39;&#39;
+	
+	@Traced def dispatch generateMember(Property it) &#39;&#39;&#39;
+		«_name» : «_type[name.name]»
+	&#39;&#39;&#39;
+	
+}
+&lt;/code&gt;&lt;/pre&gt;
 
-&lt;p&gt;The performance of string concatenation, e.g. as used for rich strings, &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=427909&quot;&gt;has been improved&lt;/a&gt;. This change has important consequences for working with Xtend: you should make sure that you use consistent versions of Xtend in your host IDE and your target platform in order to avoid &lt;a href=&quot;https://github.com/eclipse/xtext-xtend/issues/122&quot;&gt;compatibility problems&lt;/a&gt;.&lt;/p&gt;
+&lt;p&gt;Here &lt;code&gt;_name&lt;/code&gt; and &lt;code&gt;_type&lt;/code&gt; are &lt;a href=&quot;https://www.eclipse.org/xtend/documentation/202_xtend_classes_members.html#extension-methods&quot;&gt;extension methods&lt;/a&gt; that are generated for the metamodel of the specific language. They generate text and trace it to the respective part of the DSL source. You can find the &lt;a href=&quot;https://github.com/TypeFox/tracing_codegen&quot;&gt;full example project on GitHub&lt;/a&gt;.&lt;/p&gt;
 
-&lt;h3 id=&quot;improved-compiler&quot;&gt;Improved Compiler&lt;/h3&gt;
+&lt;h2 id=&quot;bug-lists&quot;&gt;Bug Lists&lt;/h2&gt;
 
-&lt;p&gt;The Java code produced by the Xtend compiler is now &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=492072&quot;&gt;less verbose and more readable&lt;/a&gt;. For many situations Xtend does not produce synthetic variables anymore.&lt;/p&gt;
+&lt;ul&gt;
+  &lt;li&gt;
+    &lt;p&gt;&lt;a href=&quot;https://github.com/search?utf8=%E2%9C%93&amp;amp;q=is%3Aissue+milestone%3ARelease_2.12+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;amp;type=Issues&amp;amp;ref=searchresults&quot;&gt;Fixed GitHub issues&lt;/a&gt;&lt;/p&gt;
+  &lt;/li&gt;
+  &lt;li&gt;
+    &lt;p&gt;&lt;a href=&quot;https://github.com/search?utf8=%E2%9C%93&amp;amp;q=is%3Apr+milestone%3ARelease_2.12+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;amp;type=Issues&amp;amp;ref=searchresults&quot;&gt;Closed Pull Requests&lt;/a&gt;&lt;/p&gt;
+  &lt;/li&gt;
+&lt;/ul&gt;
+</description>
+        <pubDate>Thu, 25 May 2017 04:00:00 -0400</pubDate>
+        <link>http://xtext.org/Xtext/releasenotes/2017/05/25/version-2-12-0.html</link>
+        <guid isPermaLink="true">http://xtext.org/Xtext/releasenotes/2017/05/25/version-2-12-0.html</guid>
+        
+        
+        <category>releasenotes</category>
+        
+      </item>
+    
+      <item>
+        <title>Xtext 2.11.0 Release Notes</title>
+        <description>&lt;p&gt;Version 2.11.0 is the first release of Xtext after its big internal restructuring. The successful core of Xtext is used in many applications and projects around the world, as a result our main focus for 2.11 has been keeping the high quality and stability of the project while setting the course for a more sustainable future.&lt;/p&gt;
+
+&lt;h2 id=&quot;restructuring-and-build&quot;&gt;Restructuring and Build&lt;/h2&gt;
+
+&lt;p&gt;Xtext and Xtend used to be one big Git repository containing all sources for Eclipse, IDEA, Web integration etc. As of 2.11, we split that into multiple smaller repository, such that you can choose yourself which ones you need. These are&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-core&quot;&gt;xtext-core&lt;/a&gt;: The core framework, &lt;a href=&quot;https://github.com/Microsoft/vscode-languageserver-protocol&quot;&gt;Language Server&lt;/a&gt; support&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-lib&quot;&gt;xtext-lib&lt;/a&gt;: Libraries for &lt;a href=&quot;/Xtext/documentation/305_xbase.html&quot;&gt;Xbase&lt;/a&gt; and &lt;a href=&quot;http://www.xtend-lang.org&quot;&gt;Xtend&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-extras&quot;&gt;xtext-extras&lt;/a&gt;: Additional editor-independent features, mostly Java support&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-eclipse&quot;&gt;xtext-eclipse&lt;/a&gt;: Plug-ins for &lt;a href=&quot;http://eclipse.org&quot;&gt;Eclipse&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-idea&quot;&gt;xtext-idea&lt;/a&gt;: Plug-ins for &lt;a href=&quot;https://www.jetbrains.com/idea/&quot;&gt;IntelliJ IDEA&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-web&quot;&gt;xtext-web&lt;/a&gt;: Support for &lt;a href=&quot;http://eclipse.org/orion/&quot;&gt;Orion&lt;/a&gt;, &lt;a href=&quot;http://ace.c9.io&quot;&gt;Ace&lt;/a&gt; and &lt;a href=&quot;https://codemirror.net&quot;&gt;CodeMirror&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-maven&quot;&gt;xtext-maven&lt;/a&gt;: Support for &lt;a href=&quot;https://maven.apache.org&quot;&gt;Maven&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-xtend&quot;&gt;xtext-xtend&lt;/a&gt;: The &lt;a href=&quot;http://www.xtend-lang.org&quot;&gt;Xtend&lt;/a&gt; language&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;https://github.com/eclipse/xtext-umbrella&quot;&gt;xtext-umbrella&lt;/a&gt;: Common Eclipse features and P2 update sites&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;In addition to that, we use Gradle now to build all non-Eclipse artifacts and Maven/Tycho for the Eclipse plug-ins. We have also set up a very sophisticated staged Jenkins build that allows to build from individual branches as well.&lt;/p&gt;
+
+&lt;h2 id=&quot;language-server-protocol&quot;&gt;Language Server Protocol&lt;/h2&gt;
+
+&lt;p&gt;With 2.11 the Xtext project supports the &lt;a href=&quot;https://github.com/Microsoft/language-server-protocol&quot;&gt;language server protocol&lt;/a&gt; (LSP), which will allow users to host their languages in many different editors. So far LSP support for &lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;VS Code&lt;/a&gt;, the Eclipse IDE, &lt;a href=&quot;https://www.eclipse.org/che/&quot;&gt;Eclipse Che&lt;/a&gt;, &lt;a href=&quot;https://orionhub.org&quot;&gt;Eclipse Orion&lt;/a&gt;, and Emacs exists. Furthermore Microsoft’s Monaco editor provides support and can be integrated in any JavaScript application.&lt;/p&gt;
+
+&lt;p&gt;The LSP support in Xtext v2.11 is marked as provisional to leave open the possibility to further enhance the architecture and API. That said it is known to be used in commercial products already. Also in the long term the LSP support might replace the native &lt;a href=&quot;/Xtext/documentation/330_web_support.html&quot;&gt;web-editor support&lt;/a&gt;.&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_11_vscode_example.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;h2 id=&quot;idea-support&quot;&gt;IDEA Support&lt;/h2&gt;
+
+&lt;p&gt;The IntelliJ IDEA integration of Xtext is currently lacking contributors. Therefore, unfortunately, the IDEA support has &lt;strong&gt;not&lt;/strong&gt; been part of the 2.11 release. &lt;a href=&quot;https://github.com/eclipse/xtext-idea/issues&quot;&gt;Contributions are very welcome&lt;/a&gt;!&lt;/p&gt;
+
+&lt;h2 id=&quot;important-changes&quot;&gt;Important Changes&lt;/h2&gt;
+
+&lt;h3 id=&quot;execution-environment&quot;&gt;Execution Environment&lt;/h3&gt;
+
+&lt;p&gt;All Xtext plug-ins now require JavaSE-1.8 as execution environment. The minimal supported target platform is Eclipse Luna.&lt;/p&gt;
+
+&lt;h3 id=&quot;testing-projects&quot;&gt;Testing Projects&lt;/h3&gt;
+
+&lt;p&gt;There are new projects &lt;code&gt;org.eclipse.xtext.testing&lt;/code&gt; for general testing utility and &lt;code&gt;org.eclipse.xtext.xbase.testing&lt;/code&gt; for testing Xbase languages. These projects contain the platform-independent code from &lt;code&gt;org.eclipse.xtext.junit4&lt;/code&gt; and &lt;code&gt;org.eclipse.xtext.xbase.junit&lt;/code&gt;, respectively. The classes that have been copied to the new &lt;code&gt;testing&lt;/code&gt; projects are now marked as deprecated in the old &lt;code&gt;junit&lt;/code&gt; projects, but those can still be used for testing Eclipse UI features.&lt;/p&gt;
+
+&lt;h3 id=&quot;ide-guice-module&quot;&gt;IDE Guice Module&lt;/h3&gt;
+
+&lt;p&gt;Xtext uses &lt;a href=&quot;/Xtext/documentation/302_configuration.html#dependency-injection&quot;&gt;dependency injection with Guice&lt;/a&gt; for language-specific configuration. There are separated hierarchies of Guice modules that aim at different integration platforms: &lt;a href=&quot;https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext/src/org/eclipse/xtext/service/DefaultRuntimeModule.java&quot;&gt;Runtime&lt;/a&gt; (core services used by all language integrations), &lt;a href=&quot;https://github.com/eclipse/xtext-eclipse/blob/master/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/DefaultUiModule.java&quot;&gt;Eclipse&lt;/a&gt;, &lt;a href=&quot;https://github.com/eclipse/xtext-idea/blob/master/org.eclipse.xtext.idea/src/org/eclipse/xtext/idea/DefaultIdeaModule.xtend&quot;&gt;IDEA&lt;/a&gt;, and &lt;a href=&quot;https://github.com/eclipse/xtext-web/blob/master/org.eclipse.xtext.web/src/main/java/org/eclipse/xtext/web/server/DefaultWebModule.xtend&quot;&gt;Web&lt;/a&gt;. The 2.11 release introduces a new &lt;a href=&quot;https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/DefaultIdeModule.xtend&quot;&gt;IDE&lt;/a&gt; module hierarchy, which is used for generic editor and IDE features. This new module is employed by the &lt;a href=&quot;/Xtext/documentation/330_web_support.html&quot;&gt;web-editor support&lt;/a&gt; and the LSP support, but not by the Eclipse and IDEA integrations.&lt;/p&gt;
+
+&lt;p&gt;The new IDE module brings reusability of many language-specific services, but the price for this is some API breakage. If you are already using the web-editor support, you’ll need to make a few changes to your language configuration:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;Remove constructors from &lt;code&gt;&amp;lt;Language Name&amp;gt;WebModule&lt;/code&gt;. ExecutorServices are now managed by the &lt;a href=&quot;https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/ExecutorServiceProvider.xtend&quot;&gt;ExecutorServiceProvider&lt;/a&gt; and disposed by the &lt;a href=&quot;https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.util/src/org/eclipse/xtext/util/DisposableRegistry.xtend&quot;&gt;DisposableRegistry&lt;/a&gt;.&lt;/li&gt;
+  &lt;li&gt;Move custom bindings for generic IDE services from &lt;code&gt;&amp;lt;Language Name&amp;gt;WebModule&lt;/code&gt; to the new &lt;code&gt;&amp;lt;Language Name&amp;gt;IdeModule&lt;/code&gt; (e.g. content assist).&lt;/li&gt;
+  &lt;li&gt;Fix &lt;code&gt;&amp;lt;Language Name&amp;gt;WebSetup&lt;/code&gt; and &lt;code&gt;&amp;lt;Language Name&amp;gt;Servlet&lt;/code&gt;; if unsure how to do that, delete them, re-run the language generator workflow, and reapply any customizations you made.&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2 id=&quot;xbase-features&quot;&gt;Xbase Features&lt;/h2&gt;
+
+&lt;h3 id=&quot;improved-xbase-compiler&quot;&gt;Improved Xbase Compiler&lt;/h3&gt;
+
+&lt;p&gt;The Java code produced by the Xbase compiler is now &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=492072&quot;&gt;less verbose and more readable&lt;/a&gt;. For many situations Xbase does not produce synthetic variables anymore.&lt;/p&gt;
 
 &lt;p&gt;For &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=501975&quot;&gt;switch statements on Strings&lt;/a&gt; an additional null guard is produced. This lead to NPEs when a null argument was passed to the switch statement.&lt;/p&gt;
 
-&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_11_xbase-switch-nullguard.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_11_xbase-switch-nullguard.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
 
 &lt;p&gt;A for-loop over an array resulted in uncompilable Java code. This has been &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=440006&quot;&gt;fixed&lt;/a&gt;.&lt;/p&gt;
 
@@ -178,21 +584,77 @@
 
 &lt;p&gt;For comparison expressions with &lt;code&gt;null&lt;/code&gt; as argument it is more efficient to use the triple (not) equals operator &lt;code&gt;===&lt;/code&gt; and &lt;code&gt;!==&lt;/code&gt; instead of &lt;code&gt;==&lt;/code&gt; and &lt;code&gt;!=&lt;/code&gt;. While the “normal” operators will result in a call of &lt;code&gt;Objects.equal&lt;/code&gt;, the triple equals operator can perform a direct comparison.&lt;/p&gt;
 
-&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_11_xbase-compare-null-gen.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_11_xbase-compare-null-gen.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
 
 &lt;p&gt;For these situations &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=401012&quot;&gt;a warning is produced&lt;/a&gt; and &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=403018&quot;&gt;a quickfix is offered&lt;/a&gt;.&lt;/p&gt;
 
-&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_11_xbase-compare-null-quickfix.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_11_xbase-compare-null-quickfix.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
 
-&lt;h2 id=&quot;new-class-wizard&quot;&gt;New Class Wizard&lt;/h2&gt;
+&lt;h2 id=&quot;xtext-project-wizard&quot;&gt;Xtext Project Wizard&lt;/h2&gt;
 
-&lt;p&gt;The New Xtend Class wizard has an option to create a main method.&lt;/p&gt;
+&lt;h3 id=&quot;usability&quot;&gt;Usability&lt;/h3&gt;
 
-&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_11_xtend-new-main-class.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+&lt;p&gt;We have examined the user experience with the New Xtext Project wizard and improved it with the input we gained from users. It was possible to enter invalid values for &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=481380&quot;&gt;project names&lt;/a&gt; and &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=481380&quot;&gt;file extensions&lt;/a&gt;, this is now checked.&lt;/p&gt;
+
+&lt;p&gt;An usability test of the advanced configuration page revealed that especially less experienced users could had &lt;a href=&quot;https://github.com/eclipse/xtext-eclipse/issues/119&quot;&gt;issues with the dependencies between options&lt;/a&gt;. From different proposals it turned out best from the user’s perspective if mandatory options are automatically selected and disable. Further an information message is presented to the user about this action. The ‘Generic IDE Support’ option gets an additional information hover.&lt;/p&gt;
+
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/releasenotes/2_11_project-wizard-autoselect.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+
+&lt;p&gt;The wizard’s text messages have been revised and &lt;a href=&quot;https://github.com/eclipse/xtext-eclipse/pull/157&quot;&gt;made consistent&lt;/a&gt;.&lt;/p&gt;
+
+&lt;h3 id=&quot;line-delimiter&quot;&gt;Line Delimiter&lt;/h3&gt;
+
+&lt;p&gt;The Xtext project wizard now &lt;a href=&quot;https://github.com/eclipse/xtext-core/issues/101&quot;&gt;considers the workspace default line delimiter&lt;/a&gt; and configures the generated MWE2 workflow accordingly. As a result the artifacts produced by the Xtext generator will use the same line delimiter explicitly.&lt;/p&gt;
+
+&lt;h3 id=&quot;tycho-build-configuration&quot;&gt;Tycho Build Configuration&lt;/h3&gt;
+
+&lt;p&gt;For projects that are created with Eclipse plug-in and Maven as build system, the generated target definition is upgraded to &lt;a href=&quot;https://github.com/eclipse/xtext-core/issues/79&quot;&gt;use the Eclipse Neon repository&lt;/a&gt;. Eclipse Tycho is &lt;a href=&quot;https://github.com/eclipse/xtext-core/issues/76&quot;&gt;configured with version 0.25.0&lt;/a&gt; now.&lt;/p&gt;
+
+&lt;h2 id=&quot;example-projects&quot;&gt;Example Projects&lt;/h2&gt;
+
+&lt;p&gt;The provided example projects have been revised and use the new generator workflow, new project structure and new testing modules.&lt;/p&gt;
+
+&lt;h2 id=&quot;deprecated-components&quot;&gt;Deprecated Components&lt;/h2&gt;
+
+&lt;h3 id=&quot;old-xtext-generator&quot;&gt;Old Xtext Generator&lt;/h3&gt;
+
+&lt;p&gt;With Xtext 2.9 a &lt;a href=&quot;/Xtext/releasenotes.html#/releasenotes/2015/11/16/version-2-9-0&quot;&gt;new generator infrastructure was introduced&lt;/a&gt;. In favor of this new generator &lt;a href=&quot;https://github.com/eclipse/xtext-core/issues/58&quot;&gt;the old generator has been deprecated&lt;/a&gt;. Bugfixes will be done primarily for the new generator and most of them will not be backported, thus it is highly recommended to migrate your languages’ &lt;code&gt;.mwe2&lt;/code&gt; workflows to use the new &lt;a href=&quot;https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextGenerator.xtend&quot;&gt;&lt;code&gt;org.eclipse.xtext.xtext.XtextGenerator&lt;/code&gt;&lt;/a&gt; component.&lt;/p&gt;
+
+&lt;h3 id=&quot;running-the-language-generator-from-maven&quot;&gt;Running the Language Generator from Maven&lt;/h3&gt;
+
+&lt;p&gt;The Maven POM module &lt;a href=&quot;http://repo1.maven.org/maven2/org/eclipse/xtext/org.eclipse.xtext.xtext/&quot;&gt;org.eclipse.xtext.xtext&lt;/a&gt;, which has been deprecated since 2015, is no longer published. If you use the old generator component, you should replace the &lt;code&gt;org.eclipse.xtext.xtext&lt;/code&gt; dependency according to the &lt;a href=&quot;http://repo1.maven.org/maven2/org/eclipse/xtext/org.eclipse.xtext.xtext/2.10.0/org.eclipse.xtext.xtext-2.10.0.pom&quot;&gt;dependencies of that module&lt;/a&gt;. The new generator component requires much fewer dependencies; a suitable configuration for it can be obtained by creating a new Maven project with the Xtext project wizard.&lt;/p&gt;
+
+&lt;h2 id=&quot;fixed-bugs&quot;&gt;Fixed Bugs&lt;/h2&gt;
+
+&lt;h3 id=&quot;closed-memory-leaks&quot;&gt;Closed Memory Leaks&lt;/h3&gt;
+
+&lt;p&gt;The memory leak affected editors and &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=493784&quot;&gt;downgraded performance while editing&lt;/a&gt; resources for which JVM types are inferred (including Xtend).&lt;/p&gt;
+
+&lt;p&gt;A second leak affected the &lt;a href=&quot;https://bugs.eclipse.org/bugs/show_bug.cgi?id=479328&quot;&gt;Syntax Graph View&lt;/a&gt; and slowed down the IDE.&lt;/p&gt;
+
+&lt;h3 id=&quot;performance&quot;&gt;Performance&lt;/h3&gt;
+
+&lt;p&gt;The Serializer was &lt;a href=&quot;https://github.com/eclipse/xtext-core/issues/17&quot;&gt;performing poor&lt;/a&gt; for certain grammars. This has been fixed.&lt;/p&gt;
+
+&lt;h3 id=&quot;bug-lists&quot;&gt;Bug Lists&lt;/h3&gt;
+
+&lt;p&gt;In addition to the restructuring and the LSP support many bugs have been fixed:&lt;/p&gt;
+
+&lt;ul&gt;
+  &lt;li&gt;
+    &lt;p&gt;&lt;a href=&quot;https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;chfield=resolution&amp;amp;chfieldfrom=2016-06-22&amp;amp;chfieldto=2017-01-24&amp;amp;classification=Modeling&amp;amp;classification=Tools&amp;amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;amp;f0=OP&amp;amp;f1=OP&amp;amp;f3=CP&amp;amp;f4=CP&amp;amp;known_name=Xtext%202.11&amp;amp;list_id=15601548&amp;amp;product=TMF&amp;amp;product=Xtend&amp;amp;query_based_on=Xtext%202.11&amp;amp;query_format=advanced&amp;amp;resolution=FIXED&quot;&gt;Fixed Eclipse Bugzilla tickets&lt;/a&gt;&lt;/p&gt;
+  &lt;/li&gt;
+  &lt;li&gt;
+    &lt;p&gt;&lt;a href=&quot;https://github.com/search?utf8=%E2%9C%93&amp;amp;q=is%3Aissue+milestone%3Arelease_v2.11+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;amp;type=Issues&amp;amp;ref=searchresults&quot;&gt;Fixed GitHub issues&lt;/a&gt;&lt;/p&gt;
+  &lt;/li&gt;
+  &lt;li&gt;
+    &lt;p&gt;&lt;a href=&quot;https://github.com/search?utf8=%E2%9C%93&amp;amp;q=is%3Apr+milestone%3Arelease_v2.11+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;amp;type=Issues&amp;amp;ref=searchresults&quot;&gt;Closed Pull Requests&lt;/a&gt;&lt;/p&gt;
+  &lt;/li&gt;
+&lt;/ul&gt;
 </description>
         <pubDate>Wed, 01 Feb 2017 03:00:00 -0500</pubDate>
-        <link>http://xtend-lang.org/xtend/releasenotes/2017/02/01/version-2-11-0.html</link>
-        <guid isPermaLink="true">http://xtend-lang.org/xtend/releasenotes/2017/02/01/version-2-11-0.html</guid>
+        <link>http://xtext.org/Xtext/releasenotes/2017/02/01/version-2-11-0.html</link>
+        <guid isPermaLink="true">http://xtext.org/Xtext/releasenotes/2017/02/01/version-2-11-0.html</guid>
         
         
         <category>releasenotes</category>
@@ -200,28 +662,12 @@
       </item>
     
       <item>
-        <title>Xtend 2.9.0 Release Notes</title>
-        <description>&lt;p&gt;Version 2.9 adds support for IntelliJ and includes many bug fixes. (&lt;a href=&quot;https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;list_id=11217573&amp;amp;query_format=advanced&amp;amp;status_whiteboard=v2.9&amp;amp;status_whiteboard_type=allwordssubstr&quot;&gt;full bugzilla list&lt;/a&gt;).&lt;/p&gt;
-
-&lt;h2 id=&quot;intellij-idea-support&quot;&gt;IntelliJ IDEA support&lt;/h2&gt;
-
-&lt;p&gt;There is now an Xtend plug-in for IntelliJ IDEA. The plug-in provides a smart code editor for Xtend files, including syntax highlighting, code completion, on-the-fly validation, automatic compilation in the background, and more. The plug-in uses the same parser and compiler as Eclipse, but we had to re-implement large parts of the UI integration code.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_9_0_intellij_new_xtend_type.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
-Create a new Xtend type (class, interface, or enum) inside Java packages.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_9_0_intellij_editor.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
-Enjoy the smart code editor with syntax highlighting and code completion. The latter also proposes Xtend’s extension methods. The example from this screenshot is a small JUnit test, which - obviously - can also be launched as such.&lt;/p&gt;
-
-&lt;h2 id=&quot;android-studio-support&quot;&gt;Android Studio Support&lt;/h2&gt;
-
-&lt;p&gt;Xtend now supports &lt;a href=&quot;http://developer.android.com/tools/revisions/studio.html&quot;&gt;Android Studio&lt;/a&gt;, which uses IntelliJ IDEA as a foundation. This is not to be confused with the &lt;a href=&quot;http://developer.android.com/tools/help/adt.html&quot;&gt;Android Developer Tools&lt;/a&gt;, which are based on Eclipse and which have been supported by Xtend since the very beginning.&lt;/p&gt;
-
-&lt;p&gt;This is exciting news as it allows you to use lambda expressions and Active Annotations for Android development - something neither Android Studio nor ADT support out of the box.&lt;/p&gt;
+        <title>Xtext 2.10.0 Release Notes</title>
+        <description>&lt;p&gt;This is a bugfix release. &lt;a href=&quot;https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f0=OP&amp;amp;f1=OP&amp;amp;f3=CP&amp;amp;f4=CP&amp;amp;j1=OR&amp;amp;list_id=15981214&amp;amp;query_format=advanced&amp;amp;status_whiteboard=v2.10&amp;amp;status_whiteboard_type=allwordssubstr&quot;&gt;Here&lt;/a&gt; is the list of the fixed bugs.&lt;/p&gt;
 </description>
-        <pubDate>Tue, 01 Dec 2015 04:30:00 -0500</pubDate>
-        <link>http://xtend-lang.org/xtend/releasenotes/2015/12/01/version-2-9-0.html</link>
-        <guid isPermaLink="true">http://xtend-lang.org/xtend/releasenotes/2015/12/01/version-2-9-0.html</guid>
+        <pubDate>Wed, 25 May 2016 04:00:00 -0400</pubDate>
+        <link>http://xtext.org/Xtext/releasenotes/2016/05/25/version-2-10-0.html</link>
+        <guid isPermaLink="true">http://xtext.org/Xtext/releasenotes/2016/05/25/version-2-10-0.html</guid>
         
         
         <category>releasenotes</category>
@@ -229,15 +675,120 @@
       </item>
     
       <item>
-        <title>IntelliJ IDEA Support Released</title>
-        <description>&lt;p&gt;Finally! The team is proud to release Xtend 2.9.0 and with it the new IDEA plugin. &lt;br /&gt;
-For more details please have a look at the &lt;a href=&quot;/xtend/releasenotes.html#/releasenotes/2015/12/01/version-2-9-0&quot;&gt;release notes&lt;/a&gt;.&lt;/p&gt;
+        <title>Xtext 2.9.0 Release Notes</title>
+        <description>&lt;p&gt;Version 2.9.0 is the first release of Xtext to ship with support for IntelliJ and the Web. Additionally, the “New Project Wizard” does now offer to create Maven or Gradle build support for your new project. Advanced uses may appreciate two new features in the Xtext grammar language.&lt;/p&gt;
 
-&lt;p&gt;&lt;img src=&quot;https://www.jetbrains.com/idea/docs/logo_intellij_idea.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+&lt;p&gt;The release ships with over 240 bugfixes and enhancements. The full bugzilla log can be found &lt;a href=&quot;https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f0=OP&amp;amp;f1=OP&amp;amp;f3=CP&amp;amp;f4=CP&amp;amp;j1=OR&amp;amp;list_id=11172029&amp;amp;query_format=advanced&amp;amp;status_whiteboard=v2.9&amp;amp;status_whiteboard_type=allwordssubstr&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
+
+&lt;p&gt;The following features have been added in particular.&lt;/p&gt;
+
+&lt;h2 id=&quot;develop-your-xtext-language-in-intellij-idea&quot;&gt;Develop your Xtext Language in IntelliJ IDEA&lt;/h2&gt;
+
+&lt;p&gt;Xtext not only lets you develop an IDEA plug-in for your language but you can also do the language development itself entirely within Jetbrains popular IDE. &lt;br /&gt;
+Check out &lt;a href=&quot;http://blogs.itemis.com/xtext/get-started-with-xtext-and-intellij-idea-in-5-minutes&quot;&gt;this tutorial&lt;/a&gt; to learn how this works.&lt;/p&gt;
+
+&lt;h2 id=&quot;run-your-xtext-smart-editor-in-the-web&quot;&gt;Run your Xtext Smart Editor in the Web&lt;/h2&gt;
+
+&lt;p&gt;With Xtext you can now also have rich text editors for you language in the Web.&lt;br /&gt;
+With Version 2.9.0 we already support three different javascript editor frameworks. For more details read the corresponding &lt;a href=&quot;https://www.eclipse.org/Xtext/documentation/310_web_integration.html&quot;&gt;section in the documentation&lt;/a&gt;.&lt;/p&gt;
+
+&lt;h2 id=&quot;new-xtext-project-wizard&quot;&gt;New Xtext Project Wizard&lt;/h2&gt;
+
+&lt;p&gt;A new wizard to produce a readily configured Xtext project has been developed. It is used in both IntelliJ and Eclipse and allows the user to&lt;/p&gt;
+&lt;ul&gt;
+  &lt;li&gt;decide which target editors your want (Eclipse, Web, IntelliJ)&lt;/li&gt;
+  &lt;li&gt;what build system you prefer (Maven or Gradle)&lt;/li&gt;
+  &lt;li&gt;tell the project layout. I.e. whether you want Maven-style src/main/java or the standard src/ folder scheme.&lt;/li&gt;
+  &lt;li&gt;and whether you want testing support&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;h2 id=&quot;new-xtext-code-generator&quot;&gt;New Xtext Code Generator&lt;/h2&gt;
+
+&lt;p&gt;We have entirely rewritten the code generator that produces the various artifacts from grammars. It is now simpler to configure and at the same time supports the various new options, the new Xtext wizard provides.&lt;/p&gt;
+
+&lt;h2 id=&quot;enhanced-gradle-and-maven-support&quot;&gt;Enhanced Gradle and Maven Support&lt;/h2&gt;
+
+&lt;p&gt;The Maven and Gradle plugins have been overhauled and improved. Additionally we added full support to run, build and test IntelliJ IDEA plugins from Gradle.&lt;/p&gt;
+
+&lt;h2 id=&quot;incremental-standalonebuilder&quot;&gt;Incremental Standalonebuilder&lt;/h2&gt;
+
+&lt;p&gt;The Eclipse builder always worked incrementally. We have now written one that is Eclipse-independent and is used from within IntelliJ as well as a Gradle Deamon.&lt;/p&gt;
+
+&lt;h2 id=&quot;grammar-language-enhancements&quot;&gt;Grammar Language Enhancements&lt;/h2&gt;
+
+&lt;p&gt;New features in the grammar language allow to reduce duplicate grammar information. Fragments are a way to inline similar productions in different rules, while parameters can be used to call turn off parts of a production. More details can be found &lt;a href=&quot;http://zarnekow.blogspot.de/2015/10/the-xtext-grammar-learned-new-tricks.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
+
 </description>
-        <pubDate>Tue, 01 Dec 2015 00:00:00 -0500</pubDate>
-        <link>http://xtend-lang.org/xtend/news/2015/12/01/Xtend-2-9-0.html</link>
-        <guid isPermaLink="true">http://xtend-lang.org/xtend/news/2015/12/01/Xtend-2-9-0.html</guid>
+        <pubDate>Mon, 16 Nov 2015 03:00:00 -0500</pubDate>
+        <link>http://xtext.org/Xtext/releasenotes/2015/11/16/version-2-9-0.html</link>
+        <guid isPermaLink="true">http://xtext.org/Xtext/releasenotes/2015/11/16/version-2-9-0.html</guid>
+        
+        
+        <category>releasenotes</category>
+        
+      </item>
+    
+      <item>
+        <title>Xtext 2.9 Release Candidate</title>
+        <description>&lt;p&gt;A release candidate of the upcoming version of Xtext can now be tried and tested. &lt;br /&gt;
+The Eclipse plugins are available through the milestone update site:&lt;/p&gt;
+
+&lt;p&gt;&lt;a href=&quot;http://download.eclipse.org/modeling/tmf/xtext/updates/composite/milestones/&quot;&gt;http://download.eclipse.org/modeling/tmf/xtext/updates/composite/milestones/&lt;/a&gt;&lt;/p&gt;
+
+&lt;p&gt;The IntelliJ IDEA Plugins are available through this repository URL:&lt;/p&gt;
+
+&lt;p&gt;&lt;a href=&quot;http://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.rc1/updatePlugins.xml&quot;&gt;http://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.rc1/updatePlugins.xml&lt;/a&gt;&lt;/p&gt;
+
+&lt;p&gt;You need to add that URL as a repository in IDEA and choose all three plugins (org.eclipse.xtext, org.eclipse.xtext.xtext and org.eclipse.xtend),&lt;br /&gt;
+because IDEA doesn’t pull-in dependencies automatically.&lt;/p&gt;
+
+&lt;h3 id=&quot;when-is-the-release&quot;&gt;When Is The Release?&lt;/h3&gt;
+
+&lt;p&gt;If everything goes smoothly and noone reveals major issues in this release candidate (please try hard!), &lt;br /&gt;
+we hope to get out the release on &lt;em&gt;December 1st&lt;/em&gt;.&lt;/p&gt;
+
+&lt;h3 id=&quot;whats-new&quot;&gt;What’s new?&lt;/h3&gt;
+
+&lt;h4 id=&quot;intellij-idea-as-an-alternative-to-eclipse&quot;&gt;IntelliJ IDEA As An Alternative To Eclipse&lt;/h4&gt;
+&lt;p&gt;In addition to the existing Eclipse integration, it is now possible to design languages entirely in IntelliJ IDEA, as well.&lt;br /&gt;
+Languages developed in Eclipse can target all available platforms (Eclipse, IntelliJ IDEA (new), Web editors (new)) while when&lt;br /&gt;
+working in IDEA it is not possible to develop an Eclipse plug-in for you language. IDEA is just not so well suited for Eclipse Plug-in development.&lt;/p&gt;
+
+&lt;p&gt;&lt;em&gt;Also note: This doesn’t mean we are dropping Eclipse support, nor are we going to think of that any time soon!&lt;/em&gt;&lt;/p&gt;
+
+&lt;h4 id=&quot;headless-builds-for-xtext-projects&quot;&gt;Headless Builds For Xtext Projects&lt;/h4&gt;
+&lt;p&gt;No matter what IDE you choose for development, or what target platforms for your language you want you’ll get a fully working build based on Maven and/or Gradle.&lt;br /&gt;
+So your Xtext projects can be built and published in any headless Java environment. That’s why one essentially really doesn’t need a particular&lt;br /&gt;
+tool to develop Xtext languages anymore. That said, it’s recommended to use them anyway :).&lt;/p&gt;
+
+&lt;h4 id=&quot;new-project-wizard&quot;&gt;New Project Wizard&lt;/h4&gt;
+&lt;p&gt;The new wizard runs in both Eclipse and IntelliJ IDEA and lets you choose, whether you want to have &lt;br /&gt;
+editor support at all (yes you can just focus on the compiler) and what build-systems you prefer.&lt;/p&gt;
+
+&lt;h4 id=&quot;web-support&quot;&gt;Web Support&lt;/h4&gt;
+&lt;p&gt;One of two new target platforms is web editor support for Xtext languages. With Eclipse Orion, Ace, and Code Mirror, we already support three different JS editors.&lt;br /&gt;
+Each with a slightly different set of features and requirements. Check out &lt;a href=&quot;http://spoenemann.blogspot.de/2015/05/editing-dsls-in-web-browser.html&quot;&gt;Miro’s blog post&lt;/a&gt; on how to give it a spin.&lt;/p&gt;
+
+&lt;h4 id=&quot;language-editors-for-intellij-idea&quot;&gt;Language Editors for IntelliJ IDEA&lt;/h4&gt;
+&lt;p&gt;The other new editor target platform is IntelliJ IDEA. We even developed a &lt;a href=&quot;https://github.com/xtext/xtext-gradle-plugin/tree/master/xtext-idea-gradle-plugin&quot;&gt;full gradle integration&lt;/a&gt; to build, test and run&lt;br /&gt;
+the developed IDEA plugins.&lt;/p&gt;
+
+&lt;h4 id=&quot;all-new-code-generator&quot;&gt;All New Code Generator&lt;/h4&gt;
+&lt;p&gt;We finally managed to rewrite the old Xtext code generator entirely in Xtend.&lt;br /&gt;
+It’s now much simpler, faster and more convenient to use and more fun to maintain :).&lt;/p&gt;
+
+&lt;h4 id=&quot;new-grammar-language-features&quot;&gt;New Grammar Language Features&lt;/h4&gt;
+&lt;p&gt;The Xtext Grammar Language got some new features, to reduce redundancy in more complex grammars such as an ECMAScript 6 IDE&lt;br /&gt;
+we help a customer with. &lt;a href=&quot;http://zarnekow.blogspot.de&quot;&gt;Sebastian has written&lt;/a&gt; about some of them.&lt;/p&gt;
+
+&lt;h4 id=&quot;many-more-fixes-and-improvements&quot;&gt;Many More Fixes And Improvements&lt;/h4&gt;
+&lt;p&gt;As if that wasn’t enough new stuff, we of course have also more than 200 issues on the go.&lt;br /&gt;
+The &lt;a href=&quot;https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;f0=OP&amp;amp;f1=OP&amp;amp;f3=CP&amp;amp;f4=CP&amp;amp;j1=OR&amp;amp;list_id=13155507&amp;amp;query_format=advanced&amp;amp;status_whiteboard=v2.9&amp;amp;status_whiteboard_type=allwordssubstr&quot;&gt;detailed list&lt;/a&gt; can be found in our bug tracker.&lt;/p&gt;
+
+</description>
+        <pubDate>Wed, 11 Nov 2015 00:00:00 -0500</pubDate>
+        <link>http://xtext.org/Xtext/news/2015/11/11/Xtext-2.9-RC.html</link>
+        <guid isPermaLink="true">http://xtext.org/Xtext/news/2015/11/11/Xtext-2.9-RC.html</guid>
         
         
         <category>news</category>
@@ -245,18 +796,23 @@
       </item>
     
       <item>
-        <title>Intellij IDEA Plug-in Preview</title>
-        <description>&lt;p&gt;Today we are pleased to announce, that we have put out a preview (beta version) of the upcoming IntelliJ IDEA plugin.&lt;br /&gt;
-The repository URL is:&lt;/p&gt;
+        <title>Xtext in IntelliJ IDEA - Preview</title>
+        <description>&lt;p&gt;Today we’ve released a preview version for the upcoming IntelliJ IDEA support of Xtext. &lt;br /&gt;
+With this it is now possible to &lt;em&gt;develop Xtext languages entirely in IDEA&lt;/em&gt; and due to the cool Gradle support in any other environment, too.&lt;/p&gt;
+
+&lt;p&gt;The preview plugins for IntelliJ IDEA can be installed from the following repository location:&lt;/p&gt;
 
 &lt;p&gt;&lt;a href=&quot;http://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.beta5/updatePlugins.xml&quot;&gt;http://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.beta5/updatePlugins.xml&lt;/a&gt;&lt;/p&gt;
 
-&lt;p&gt;Note, that it requires &lt;a href=&quot;https://www.jetbrains.com/idea/nextversion/&quot;&gt;IDEA 15 Preview&lt;/a&gt;.&lt;br /&gt;
-Please try it out and &lt;a href=&quot;https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Xtend&quot;&gt;file tickets&lt;/a&gt; when you hit any bugs!&lt;/p&gt;
+&lt;p&gt;You need to install all three plugins from this repository into the latest &lt;a href=&quot;https://www.jetbrains.com/idea/nextversion/&quot;&gt;IDEA 15 Preview&lt;/a&gt;.&lt;/p&gt;
+
+&lt;p&gt;There is a &lt;a href=&quot;https://player.vimeo.com/video/141201249&quot;&gt;screencast on vimeo&lt;/a&gt; that shows what Xtext in IntellijJ IDEA looks like.&lt;/p&gt;
+
+&lt;p&gt;Please try it out and provide feedback through bugzilla or elsewhere.&lt;/p&gt;
 </description>
         <pubDate>Fri, 02 Oct 2015 00:00:00 -0400</pubDate>
-        <link>http://xtend-lang.org/xtend/news/2015/10/02/Xtend-Intellij-IDEA-Preview.html</link>
-        <guid isPermaLink="true">http://xtend-lang.org/xtend/news/2015/10/02/Xtend-Intellij-IDEA-Preview.html</guid>
+        <link>http://xtext.org/Xtext/news/2015/10/02/Xtext-2.9-preview.html</link>
+        <guid isPermaLink="true">http://xtext.org/Xtext/news/2015/10/02/Xtext-2.9-preview.html</guid>
         
         
         <category>news</category>
@@ -264,107 +820,63 @@
       </item>
     
       <item>
-        <title>Xtend 2.8.0 Release Notes</title>
-        <description>&lt;p&gt;Version 2.8 got many new features, bug fixes, and performance improvements (&lt;a href=&quot;https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;amp;bug_status=VERIFIED&amp;amp;bug_status=CLOSED&amp;amp;list_id=11217573&amp;amp;query_format=advanced&amp;amp;status_whiteboard=v2.8&amp;amp;status_whiteboard_type=allwordssubstr&quot;&gt;full bugzilla list&lt;/a&gt;).&lt;/p&gt;
+        <title>Xtext 2.9 Beta</title>
+        <description>&lt;p&gt;(for download instructions, &lt;a href=&quot;#download-links&quot;&gt;see below&lt;/a&gt;)&lt;/p&gt;
 
-&lt;p&gt;The most noteworthy changes are the following.&lt;/p&gt;
+&lt;p&gt;The main theme of our ongoing work in Xtext &amp;amp; Xtend 2.9 is to reach out to other tools and platforms. After seven years of development, Xtext has become the de facto standard for implementing programming languages and external domain specific languages and IDE support for Eclipse. A couple of months ago, we announced that we have now started to extract the IDE-related infrastructure from Eclipse, such that it can be used in other scenarios as well.&lt;/p&gt;
 
-&lt;h2 id=&quot;target-java-version&quot;&gt;Target Java Version&lt;/h2&gt;
+&lt;p&gt;Today we want to give early adopters a chance to test the current status quo and provide feedback (you always could do that, since everything we do is open-source). The “2.9 Beta” we are putting out today is a frozen state of the head, that was tested just a bit and has known issues. So it’s not an actual release and you should not use it in production! Still, it comes with some new stuff that might be interesting:&lt;/p&gt;
 
-&lt;p&gt;The new version of the Xbase compiler allows to configure the Java version of the generated code. The default is to use the same version as set for the source compatibility of the Java compiler (&lt;em&gt;Java → Compiler → Source compatibility&lt;/em&gt;), which is in turn usually set to the same version as the &lt;em&gt;compiler compliance level&lt;/em&gt;. The Xbase compiler settings can be configured in the &lt;em&gt;Compiler&lt;/em&gt; preference page or project properties page of your Xbase language.&lt;/p&gt;
+&lt;h3 id=&quot;intellij-idea-support&quot;&gt;IntelliJ IDEA Support&lt;/h3&gt;
 
-&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_8_xbase-java-version.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
+&lt;p&gt;With 2.9 you will be able to produce a feature-rich plug-in not only for Eclipse, but also for IntellIj IDEA, from the same language description. The IntelliJ editor already supports syntax coloring and content assist and even some rename refactoring works. Also, we have been working on an incremental standalone compiler, that is used by IDEA, and automatically runs the code generators for the changed and affected files.&lt;/p&gt;
 
-&lt;p&gt;By unchecking &lt;em&gt;Use source compatibility level from Java settings&lt;/em&gt;, you can choose to generate Java code with a different version than is set for the Java compiler. The actual changes in the generated code are described in the following.&lt;/p&gt;
+&lt;p&gt;The IDEA integration hasn’t been so easy, because IDEA is already a rich platform and it’s a bit challenging to map IDEA’s concepts with ours in performant ways. So there is still some work ahead of us, especially in the case of Xbase and Xtend, where a seamless integration with the Java IDE is our goal. We are simply not there yet and especially the integration with Java is still in a very early and bad stage. If you have Xtext DSLs that don’t use Xbase, there is a lot that works quite well already.&lt;/p&gt;
 
-&lt;h3 id=&quot;java-5&quot;&gt;Java 5&lt;/h3&gt;
+&lt;p&gt;Stefan has written up more infos about the IntellIJ IDEA part &lt;a href=&quot;http://oehme.github.io/2015/05/22/xtext-intellij-beta.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
 
-&lt;p&gt;Java 5 has been the version level of the Xtend compiler from the beginning, so the generated code is the same as with earlier Xtend versions if you choose this target version.&lt;/p&gt;
+&lt;h3 id=&quot;weborion-support&quot;&gt;Web/Orion Support&lt;/h3&gt;
 
-&lt;h3 id=&quot;java-6&quot;&gt;Java 6&lt;/h3&gt;
+&lt;p&gt;The other part we wanted to share and get feedback on, is the early state of our web support. Same story: &lt;b&gt;don’t use it in production&lt;/b&gt;! The Xtext project wizard can create a web project, which provides you with an example html webpage, an orion editor and a java-based server backend for the editor. Syntax Coloring is done entirely in the browser, while validation and content assist are provided by the server. The server side really just projects tool support on that widget and doesn’t need any other integration with your web application, just use the orion editor as a feature rich text widget.&lt;/p&gt;
 
-&lt;p&gt;When the Xtend compiler is set to at least Java 6, it generates an &lt;code&gt;@Override&lt;/code&gt; annotation to each method that overrides a method from a superclass or implements an interface method.&lt;/p&gt;
+&lt;p&gt;The client-server communication already uses an optimized communication protocol based on text-deltas and it features a cancelation policy that will avoid any unnecessary processes. Even with large documents response time is very good.&lt;/p&gt;
 
-&lt;h3 id=&quot;java-7&quot;&gt;Java 7&lt;/h3&gt;
+&lt;p&gt;Miro has written a more detailed post about this over &lt;a href=&quot;http://spoenemann.blogspot.de/2015/05/editing-dsls-in-web-browser.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
 
-&lt;p&gt;Xtend expressions like &lt;code&gt;switch (obj) { ... }&lt;/code&gt; where &lt;code&gt;obj&lt;/code&gt; is of type &lt;a href=&quot;http://docs.oracle.com/javase/8/docs/api/java/lang/String.html&quot;&gt;String&lt;/a&gt; are translated to Java &lt;code&gt;switch&lt;/code&gt; statements (see &lt;a href=&quot;http://docs.oracle.com/javase/8/docs/technotes/guides/language/strings-switch.html&quot;&gt;Strings in switch Statements&lt;/a&gt;).&lt;/p&gt;
+&lt;p&gt;To try it out, just download (see below) and use the new “Xtext project wizard” to create a fresh Xtext language with a dedicated project for the web support.&lt;/p&gt;
 
-&lt;p&gt;In Xtend you can write number literals in the form &lt;code&gt;2_147_483_647&lt;/code&gt; to enhance their readability. This is also &lt;a href=&quot;http://docs.oracle.com/javase/8/docs/technotes/guides/language/underscores-literals.html&quot;&gt;supported by Java 7&lt;/a&gt;. When the Xtend compiler is set to at least Java 7, underscores in number literals are retained in the generated code.&lt;/p&gt;
+&lt;p&gt;&lt;img src=&quot;/Xtext/images/news/xtext-2.9-wizard.png&quot; alt=&quot;the new wizard&quot; /&gt;&lt;/p&gt;
 
-&lt;h3 id=&quot;java-8&quot;&gt;Java 8&lt;/h3&gt;
+&lt;p&gt;Please tell us, what you would like to do with this. Bug reports and feature requests go here : &lt;a href=&quot;https://bugs.eclipse.org/bugs/enter_bug.cgi?product=TMF&amp;amp;component=Xtext&quot;&gt;bugs.eclipse.org&lt;/a&gt;&lt;/p&gt;
 
-&lt;p&gt;&lt;a href=&quot;/xtend/documentation/203_xtend_expressions.html#lambdas&quot;&gt;Xtend lambda expressions&lt;/a&gt; like &lt;code&gt;[String s | s.toLowerCase]&lt;/code&gt; are translated to &lt;a href=&quot;http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html&quot;&gt;Java 8 lambda expressions&lt;/a&gt;, e.g. &lt;code&gt;(String s) -&amp;gt; return s.toLowerCase();&lt;/code&gt;. More details on this translation are discussed in &lt;a href=&quot;http://spoenemann.blogspot.de/2015/02/xtend-for-java-8.html&quot;&gt;this blog post&lt;/a&gt;.&lt;/p&gt;
+&lt;h3 id=&quot;other-themes-in-29&quot;&gt;Other Themes In 2.9&lt;/h3&gt;
 
-&lt;p&gt;Note that independent of which Java version is chosen for the generated code, Xtend works perfectly with the &lt;a href=&quot;http://docs.oracle.com/javase/8/docs/technotes/guides/language/lambda_api_jdk8.html&quot;&gt;lambda-optimized Java 8 API&lt;/a&gt; because Xtend lambdas are fully compatible with Java 8 lambdas.&lt;/p&gt;
+&lt;p&gt;Besides the web and IDEA support, we are working on making it even simpler to build Xtext projects. One goal for instance is to allow for xtext projects without any Eclipse dependency, such that you can just use the runtime and build and deploy it with Maven or Gradle. In addition we will again spend much time on improving the overall performance and bugfixes of course.&lt;/p&gt;
 
-&lt;p&gt;Xtend allows to define non-abstract methods (static or non-static) in interfaces when Java 8 is chosen as target language level. If such a method is non-static, it is translated to a &lt;a href=&quot;http://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html&quot;&gt;Java 8 default method&lt;/a&gt;.&lt;/p&gt;
+&lt;h3 id=&quot;more-updates-soon&quot;&gt;More updates soon&lt;/h3&gt;
 
-&lt;h2 id=&quot;more-compiler-options&quot;&gt;More Compiler Options&lt;/h2&gt;
+&lt;p&gt;The 2.9 release is planned for autumn 2015 and shall come with production ready support for IDEA and Web. Until then we will likely have more beta releases, depending on demand and progress.&lt;/p&gt;
 
-&lt;p&gt;You can now disable the automatic generation of &lt;code&gt;@SuppressWarnings&lt;/code&gt; annotations for generated classes. Furthermore, you can enable the generation of &lt;code&gt;@Generated&lt;/code&gt; annotations for all generated types, which can be useful for automatic processing of the source code, e.g. when you want to exclude generated types in code analysis tools. The annotation also allows to attach more information, which can be enabled in the preferences.&lt;/p&gt;
+&lt;h3 id=&quot;download-links&quot;&gt;Download Links&lt;/h3&gt;
 
-&lt;h2 id=&quot;enhancements-of-the-xtend-editor&quot;&gt;Enhancements of the Xtend Editor&lt;/h2&gt;
+&lt;p&gt;Here are the download links for the beta:&lt;/p&gt;
 
-&lt;h3 id=&quot;open-generated-file&quot;&gt;Open Generated File&lt;/h3&gt;
+&lt;p&gt;Ready to use eclipse distributions:&lt;/p&gt;
+&lt;ul&gt;
+  &lt;li&gt;&lt;a href=&quot;http://www.eclipse.org/modeling/download.php?file=/modeling/tmf/xtext/downloads/distros/eclipse-dsl-beta5-win32-x86_64.zip&amp;amp;r=2&quot;&gt;eclipse-dsl-beta5-win32-x86_64.zip&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;http://www.eclipse.org/modeling/download.php?file=/modeling/tmf/xtext/downloads/distros/eclipse-dsl-beta5-macosx-cocoa-x86_64.tar.gz&amp;amp;r=2&quot;&gt;eclipse-dsl-beta5-macosx-cocoa-x86_64.tar.gz&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;http://www.eclipse.org/modeling/download.php?file=/modeling/tmf/xtext/downloads/distros/eclipse-dsl-beta5-linux-gtk-x86_64.tar.gz&amp;amp;r=2&quot;&gt;eclipse-dsl-beta5-linux-gtk-x86_64.tar.gz&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;http://www.eclipse.org/modeling/download.php?file=/modeling/tmf/xtext/downloads/distros/eclipse-dsl-beta5-win32.zip&amp;amp;r=2&quot;&gt;eclipse-dsl-beta5-win32.zip&lt;/a&gt;&lt;/li&gt;
+  &lt;li&gt;&lt;a href=&quot;http://www.eclipse.org/modeling/download.php?file=/modeling/tmf/xtext/downloads/distros/eclipse-dsl-beta5-linux-gtk.tar.gz&amp;amp;r=2&quot;&gt;eclipse-dsl-beta5-linux-gtk.tar.gz&lt;/a&gt;&lt;/li&gt;
+&lt;/ul&gt;
 
-&lt;p&gt;You can open the Java file that was generated from Xtend by right-clicking the Xtend editor and selecting &lt;em&gt;Open Generated File&lt;/em&gt;.&lt;/p&gt;
+&lt;p&gt;Eclipse update site : &lt;a href=&quot;http://download.eclipse.org/modeling/tmf/xtext/updates/composite/milestones/]&quot;&gt;http://download.eclipse.org/modeling/tmf/xtext/updates/composite/milestones/&lt;/a&gt;&lt;br /&gt;
+IDEA plug-in repository : &lt;a href=&quot;http://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.beta5/updatePlugins.xml&quot;&gt;http://download.eclipse.org/modeling/tmf/xtext/idea/2.9.0.beta5/updatePlugins.xml&lt;/a&gt;&lt;/p&gt;
 
-&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_8_xbase-open-generated.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;h3 id=&quot;open-inferred-type&quot;&gt;Open Inferred Type&lt;/h3&gt;
-
-&lt;p&gt;You can open the declaration of the inferred type of a local variable by &lt;em&gt;Ctrl&lt;/em&gt;-clicking (&lt;em&gt;Cmd&lt;/em&gt; on Mac) the variable name.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_8_open-inferred-type.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;h3 id=&quot;improved-hover-for-annotations&quot;&gt;Improved Hover for Annotations&lt;/h3&gt;
-
-&lt;p&gt;Hovers of annotated members have been improved and allow to navigate to annotation values.&lt;/p&gt;
-
-&lt;h3 id=&quot;unique-class-name-validation&quot;&gt;Unique Class Name Validation&lt;/h3&gt;
-
-&lt;p&gt;If your Xtend type’s qualified name collides with another Java or Xtend type in the same project you now get an error.&lt;/p&gt;
-
-&lt;h2 id=&quot;convert-java-to-xtend&quot;&gt;Convert Java to Xtend&lt;/h2&gt;
-
-&lt;p&gt;The new version features a Java-to-Xtend converter. Right-click a Java file, package or source folder in the Package Explorer and select &lt;em&gt;Convert to Xtend&lt;/em&gt;. You can choose to keep the original Java files (though that will lead to errors due to duplicate types), and you are warned if the Java code contains parts that cannot be translated automatically. These are marked with &lt;code&gt;FIXME&lt;/code&gt; comments in the Xtend code. However, the converter is able to convert the majority of Java classes without problems.&lt;/p&gt;
-
-&lt;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_8_java-convert-to-xtend.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;h2 id=&quot;active-annotations&quot;&gt;Active Annotations&lt;/h2&gt;
-
-&lt;h4 id=&quot;constant-field-initializer&quot;&gt;Constant Field Initializer&lt;/h4&gt;
-
-&lt;p&gt;&lt;em&gt;MutableFieldDeclaration&lt;/em&gt; now features a set of methods like &lt;code&gt;setConstantValueAsInt(int value)&lt;/code&gt; for creating static final fields with constant initializers. All primitive values as well as &lt;a href=&quot;http://docs.oracle.com/javase/8/docs/api/java/lang/String.html&quot;&gt;String&lt;/a&gt; are supported.&lt;/p&gt;
-
-&lt;h4 id=&quot;default-methods&quot;&gt;Default Methods&lt;/h4&gt;
-
-&lt;p&gt;If the Xtend compiler is set to Java 8, you can create a method with default implementation in a Java interface by defining a method body and setting the &lt;em&gt;abstract&lt;/em&gt; flag on the &lt;em&gt;MutableMethodDeclaration&lt;/em&gt;.&lt;/p&gt;
-
-&lt;h2 id=&quot;faster-builds-and-more-responsive-ui&quot;&gt;Faster Builds and More Responsive UI&lt;/h2&gt;
-
-&lt;p&gt;Compiling an Xtend resource involves a lot of computation. With 2.8 we store the computed resource state and reload it if no changes have happened. This leads to a significantly faster build.&lt;/p&gt;
-
-&lt;p&gt;Into the bargain, user actions like saving an editor now cancel the auto-build and are no longer blocked by it.&lt;/p&gt;
 </description>
-        <pubDate>Wed, 11 Mar 2015 05:30:28 -0400</pubDate>
-        <link>http://xtend-lang.org/xtend/releasenotes/2015/03/11/version-2-8-0.html</link>
-        <guid isPermaLink="true">http://xtend-lang.org/xtend/releasenotes/2015/03/11/version-2-8-0.html</guid>
-        
-        
-        <category>releasenotes</category>
-        
-      </item>
-    
-      <item>
-        <title>Xtend 2.8.0 Released</title>
-        <description>&lt;p&gt;The team is proud to release Xtext &amp;amp; Xtend 2.8.0. The new release comes with over 260 bugfixes and enhancements, the runtime performance as well as the tool performance have been improved significantly. Version 2.8.0 is the best Xtext &amp;amp; Xtend ever! :-)&lt;/p&gt;
-
-&lt;p&gt;For more details please have a look at the &lt;a href=&quot;/xtend/releasenotes.html#/releasenotes/2015/03/11/version-2-8-0&quot;&gt;release notes&lt;/a&gt;.&lt;/p&gt;
-</description>
-        <pubDate>Wed, 11 Mar 2015 00:00:00 -0400</pubDate>
-        <link>http://xtend-lang.org/xtend/news/2015/03/11/Xtend-2-8-0.html</link>
-        <guid isPermaLink="true">http://xtend-lang.org/xtend/news/2015/03/11/Xtend-2-8-0.html</guid>
+        <pubDate>Fri, 22 May 2015 00:00:00 -0400</pubDate>
+        <link>http://xtext.org/Xtext/news/2015/05/22/Xtext-2.9-beta.html</link>
+        <guid isPermaLink="true">http://xtext.org/Xtext/news/2015/05/22/Xtext-2.9-beta.html</guid>
         
         
         <category>news</category>
@@ -372,31 +884,41 @@
       </item>
     
       <item>
-        <title>Xtend 2.7.3 is out!</title>
-        <description>&lt;p&gt;We have just released version 2.7.3 of Xtend. It comes with some important bugfixes and is recommended for any 2.7.x users.&lt;/p&gt;
+        <title>XtextCON 2015 - Final Program Online</title>
+        <description>&lt;p&gt;We are happy to announce the final program for XtextCON 2015. The conference now features 34 sessions with 27 speakers from different countries. Here is an excerpt of lately added sessions:&lt;/p&gt;
 
-&lt;p&gt;Here is the &lt;a href=&quot;http://goo.gl/bPLxSD&quot;&gt;full log&lt;/a&gt;.&lt;/p&gt;
+&lt;ul&gt;
+  &lt;li&gt;&lt;em&gt;Oomph, Eclipse the Way You Want It&lt;/em&gt; (Ed Merks, Eike Stepper),&lt;/li&gt;
+  &lt;li&gt;&lt;em&gt;Xtext editors in JavaFX applications&lt;/em&gt; (Tom Schindl),&lt;/li&gt;
+  &lt;li&gt;&lt;em&gt;The Future of Xtext&lt;/em&gt; (Sven Efftinge, Sebastian Zarnekow)&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;The conference also covers graphical diagramming topics, such as:&lt;/p&gt;
+&lt;ul&gt;
+  &lt;li&gt;&lt;em&gt;Enhancing Graphical Editors with Xtext&lt;/em&gt; (Miro Spönemann),&lt;/li&gt;
+  &lt;li&gt;&lt;em&gt;Lightweight Diagrams for Your DSLs&lt;/em&gt; (Christian Schneider),&lt;/li&gt;
+  &lt;li&gt;&lt;em&gt;Graphical Views with FXDiagram&lt;/em&gt; (Dr. Jan Köhnlein)&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;In addition to those technical sessions, there will be case studies from different industries, e.g.:&lt;/p&gt;
+&lt;ul&gt;
+  &lt;li&gt;&lt;em&gt;Model based migration of legacy software&lt;/em&gt; (Arjan Mooij),&lt;/li&gt;
+  &lt;li&gt;&lt;em&gt;Sustainable Service Design through Xtext&lt;/em&gt; (Dr. Michael Bischoff),&lt;/li&gt;
+  &lt;li&gt;&lt;em&gt;EAI and Xtext DSLs&lt;/em&gt; (André Lehner, Dietmar Stoll)&lt;/li&gt;
+&lt;/ul&gt;
+
+&lt;p&gt;There is much more to discover &lt;a href=&quot;http://xtextcon.org&quot;&gt;on the website&lt;/a&gt;. And don’t forget to register!&lt;/p&gt;
+
+&lt;h2 id=&quot;xtext-clinic&quot;&gt;Xtext Clinic&lt;/h2&gt;
+
+&lt;p&gt;In addition to the conference program, the Xtext committers will again run the Xtext Clinic. This is an offer to the attendees to make an appointment for a one hour session, where individual Xtext-related problems and challenges can be discussed and solved. The clinic has been utilised a lot last year with very positive feedback. &lt;br /&gt;
+So in case you are going, don’t hesitate and make an appointment!&lt;/p&gt;
+
+&lt;p&gt;Hope to see you in May!&lt;/p&gt;
 </description>
-        <pubDate>Thu, 20 Nov 2014 00:00:00 -0500</pubDate>
-        <link>http://xtend-lang.org/xtend/news/2014/11/20/Xtend-2-7-3.html</link>
-        <guid isPermaLink="true">http://xtend-lang.org/xtend/news/2014/11/20/Xtend-2-7-3.html</guid>
-        
-        
-        <category>news</category>
-        
-      </item>
-    
-      <item>
-        <title>Xtend 2.7.0 Available</title>
-        <description>&lt;p&gt;We are proud to announce the general availability of Xtend 2.7.0. The release contains again tons of improvements, new features, and bugfixes. Check out the &lt;a href=&quot;/xtend/releasenotes.html#/releasenotes/2014/09/02/version-2-7-0&quot;&gt;release notes&lt;/a&gt; for details.&lt;/p&gt;
-
-&lt;p&gt;Special thanks go to all those who contributed to this release: Anton Kosyakov, Dennis Huebner, Holger Schill, Jan Köhnlein, Jan Rosczak, Jörg Reichert, Knut Wannheden, Michael Vorburger, Moritz Eysholdt, Ralf Kretzschmar-Auer, Sebastian Zarnekow, Stefan Oehme, Stéphane Galland, Sven Efftinge, Thomas Fritsch, and Vladimir Piskarev.&lt;/p&gt;
-
-&lt;p&gt;We’re also very grateful for the feedback that we get everyday. It helped us to get where we are now.&lt;/p&gt;
-</description>
-        <pubDate>Wed, 03 Sep 2014 00:00:00 -0400</pubDate>
-        <link>http://xtend-lang.org/xtend/news/2014/09/03/Xtend-2-7-0.html</link>
-        <guid isPermaLink="true">http://xtend-lang.org/xtend/news/2014/09/03/Xtend-2-7-0.html</guid>
+        <pubDate>Tue, 31 Mar 2015 00:00:00 -0400</pubDate>
+        <link>http://xtext.org/Xtext/news/2015/03/31/XtextCON.html</link>
+        <guid isPermaLink="true">http://xtext.org/Xtext/news/2015/03/31/XtextCON.html</guid>
         
         
         <category>news</category>
diff --git a/images/bullet-checkmark.png b/images/bullet-checkmark.png
index ac72175..4e94946 100644
--- a/images/bullet-checkmark.png
+++ b/images/bullet-checkmark.png
Binary files differ
diff --git a/images/download.png b/images/download.png
index 2958055..1fb2791 100644
--- a/images/download.png
+++ b/images/download.png
Binary files differ
diff --git a/images/favicon.png b/images/favicon.png
index b017778..2422b26 100644
--- a/images/favicon.png
+++ b/images/favicon.png
Binary files differ
diff --git a/images/header_background.jpg b/images/header_background.jpg
index f1c06fb..ed19d3e 100644
--- a/images/header_background.jpg
+++ b/images/header_background.jpg
Binary files differ
diff --git a/images/logo.png b/images/logo.png
index b3df7f4..52bcd0c 100644
--- a/images/logo.png
+++ b/images/logo.png
Binary files differ
diff --git a/index.html b/index.html
index fe77062..43a0b60 100644
--- a/index.html
+++ b/index.html
@@ -3,10 +3,11 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtend - Modernized Java</title>
+	<title>Xtext - Language Engineering Made Easy!</title>
+	
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="Xtend is a statically typed programming language sitting on top of Java.">
+		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -16,19 +17,19 @@
 	<![endif]-->
 	
 	<!-- Le fav and touch icons -->
+	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
 	
-	<link rel="shortcut icon" href="/xtend/images/favicon.png">
-	
-	<link href="/xtend/css/bootstrap.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/shield-responsive.css" rel="stylesheet" type='text/css'>
-	<link href='/xtend/css/fonts.css' rel='stylesheet' type='text/css'>
-	<link href="/xtend/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
-	<link href="/xtend/css/prettify.css" type="text/css" rel="stylesheet"/>
-	<link href="/xtend/css/style.css" rel="stylesheet" type='text/css'>
-	
+	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
+	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
+	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
+	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
+	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
+	<!-- cover flow -->
+	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
 	<!--[if lt IE 9]>
-	<link href="css/iebugs.css" rel="stylesheet" type='text/css'>
+	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
 	<![endif]-->
 
 	<!-- BEGIN Cookie Consent
@@ -86,27 +87,35 @@
 
 
   <body>
+  
+    <header class="site-header">
 
-    <!-- Navbar -->
-  <div class="navbar navbar-fixed-top"
-    style="border-bottom: 1px solid #000;">
+  <!-- Navbar -->
+  <div class="navbar navbar-fixed-top">
     <div class="navbar-inner">
       <div class="container">
         <a class="btn btn-navbar" data-toggle="collapse"
           data-target=".nav-collapse"> <span class="icon-bar"></span> <span
           class="icon-bar"></span> <span class="icon-bar"></span>
-        </a> <a class="brand" href="/xtend/index.html"></a>
+        </a> <a class="brand" href="/Xtext/index.html"></a>
         <div class="nav-collapse collapse" style="height: 0px;">
           <ul class="nav">
-            <li ><a href="/xtend/download.html">Download</a></li>
-            <li ><a href="/xtend/documentation/index.html">Documentation</a></li>
-            <li ><a href="/xtend/community.html">Community</a></li>
-            <li ><a href="http://xtext.org">Xtext</a></li>
-            <li ><a href="http://www.eclipse.org">Eclipse.org</a></li>
+            <!--li ><a href="/Xtext/news.html">News</a></li-->
+            <li ><a href="/Xtext/download.html">Download</a></li>
+            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
+            <li ><a href="/Xtext/community.html">Community</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
+                <li><a href="https://typefox.io/trainings-2" target="_blank">TypeFox</a></li>
+              </ul>
+            </li>
+            <li ><a href="http://xtend-lang.org">Xtend</a></li>
           </ul>
-              <!--div class="btn-group pull-right">
-                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
-              </div-->
+          <!--div class="nav pull-right">
+            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
+          </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -114,201 +123,367 @@
   </div>
   <!-- Navbar End -->
 
+</header>
 
-    <div id="header_wrapper">
-	<div class="container"> 
-		<div class="flexslider image-slider">
-			<div class="span6" style="margin-left:7px;">
-			<h2 class="front-title">
-				Java with spice!
-			</h2>
-			<br />
-			<p>Xtend is a flexible and expressive dialect of Java, which compiles into readable Java&nbsp;8 compatible source code. 
-			   You can use any existing Java library seamlessly. The compiled output is readable 
-				and pretty-printed, and tends to run as fast as the equivalent
-				handwritten Java code.</p>
-			<p>Get productive and write beautiful code with <a href="documentation/204_activeannotations.html">powerful macros</a>, <a href="documentation/203_xtend_expressions.html#lambdas">lambdas</a>, <a href="documentation/203_xtend_expressions.html#operators">operator overloading</a> and many more modern language features.</p>
-				<a href="download.html" class="btn_download"></a>
-				<a href="documentation/index.html" class="btn_documentation"></a>
-			</div>
-			<div class="span4">
-				<video id="video" class="embedded-video" controls width="100%" poster="images/intro_thumb.png">
-					<source src="media/Xtend_intro_720p.mp4" type="video/mp4">
-					
-  					Your browser does not support the video tag.
-				</video>
-				<script type="text/javascript">
-				var base = "media/xtend_intro_";
-				if (location.hostname === "localhost" || location.hostname === "127.0.0.1") {
-					base = location.protocol+"//eclipse.org/xtend/media/xtend_intro_";
-				}
-				var videoList = new Array(base+"720p.mp4",base+"360p.mp4",base+"270p.mp4");
-				var video = document.getElementById('video');
-				if (window.innerWidth <= 800) video.setAttribute("src", videoList[2]);
-				else if (window.innerWidth <= 1400) video.setAttribute("src", videoList[1]);
-				else video.setAttribute("src", videoList[0]);
-				</script>
-			</div>
-		</div>
-	</div>
+
+    <a href="https://github.com/eclipse/xtext"><img style="position: fixed; top: 0; right: 0;z-index:1000; border: 0; " alt="Fork me on GitHub" src="/Xtext/images/forkme_right_white_ffffff.png"></a>
+<!--Container-->
+<div id="header_wrapper">
+  <div class="container image-slider">
+    <div class="row">
+      <h2>
+        Language Engineering For Everyone!
+      </h2>
+      <p>Xtext is a framework for development of programming languages
+        and domain-specific languages. With Xtext you define your language using a powerful grammar language. As a result you get a full infrastructure,
+        including <b>parser</b>, <b>linker</b>, <b>typechecker</b>, <b>compiler</b> as well as editing support for <b>Eclipse</b>, <b>any editor that supports the Language Server Protocol</b> and your favorite <b>web browser</b>.
+        <br/><i><a href="#intro-quotes">Learn more...</a></i></p>
+    </div>
+  </div>
+  <div class="row" style="text-align:center">
+    <div>
+      <div id="coverflow">
+        <img class="intro-screenshot" style="display:none;" src="/Xtext/images/web_screenshot.png" alt="Xtext in Web Browser">
+        <img class="intro-screenshot" src="/Xtext/images/eclipse_screenshot.png" alt="Xtext in Eclipse">
+        <img class="intro-screenshot" style="display:none;" src="/Xtext/images/vscode_screenshot.png" alt="Xtext in Visual Studio Code via Language Server Protocol">
+      </div>
+    </div>
+    <div class="cta-section">
+      <a href="/Xtext/download.html" style="margin:10px;" class="has-popover btn btn-primary btn-large pull_right">Download</a>
+      <a href="/Xtext/documentation/index.html" style="margin:10px;" class="has-popover btn btn-success btn-large pull_right">Getting Started</a>
+    </div>
+  </div>
 </div>
 
-<div id="intro">
-	<div class="container">
-		<ul class="newsticker">
-		      <li><!--a href="http://dslmeinte.wordpress.com/2012/09/24/a-trick-for-speeding-up-xtend-building/"-->&ldquo;I love Xtend and use it as much as possible.&rdquo; (Meinte Boersma)
-		      <li><!--a href="https://groups.google.com/d/msg/xtend-lang/xxDwxnSeaco/xWj7Y-CovmAJ"-->&ldquo;Xtend is a wonderful language for improving the developer experience.&rdquo; (Salvatore Romeo)
-		      <li><!--a href="https://groups.google.com/d/msg/xtend-lang/ABhngFZ4Qxg/cV76ZsFKUDEJ"-->&ldquo;I am loving Xtend, and I wanted to say thanks.&rdquo; (Jacob Goodson)
-		      <li><!--a href="https://groups.google.com/d/msg/xtend-lang/ABhngFZ4Qxg/7sZbQy_inXYJ"-->&ldquo;It&#39;s very comfortable to work with Xtend.&rdquo; (Ross Judson)
-		      <li><!--a href="https://groups.google.com/d/msg/xtend-lang/bdMs7kCBZSc/61jGMxH6ZmgJ"-->&ldquo;Xtend rocks and I love using it :-)&rdquo; (Christian Vogel)
-		      <li><!--a href="https://groups.google.com/d/msg/xtend-lang/BqqPjXxxfMk/j8XDk1bAtp4J"-->&ldquo;I love the expressiveness in Xtend and the ability to write cleaner code.&rdquo; (Jesper Eskilson)
-		      <li><!--a href="https://groups.google.com/d/msg/xtend-lang/En6rF8PTnG4/1mdU0QmJ3nYJ"-->&ldquo;I love it!&rdquo; (Francois Green)
-		      <li><!--a href="https://groups.google.com/d/msg/xtend-lang/ABhngFZ4Qxg/7sZbQy_inXYJ"-->&ldquo;Having idiomatic Java generated by the compiler is a great safety net.&rdquo; (Ross Judson)
-		      <li><!--a href="https://twitter.com/meinte37/status/507135731920556032"-->&ldquo;Xtend could be described as &ldquo;Scala, the good parts&ldquo;.&rdquo; (Meinte Boersma)
-		      <li><!--a href="https://groups.google.com/d/msg/xtend-lang/mKAansrVhms/SzcfLEwZo_UJ"-->&ldquo;Xtend is awesome for Android Programming!&rdquo; (Eugen)
-		</ul>
-	</div>
+<div id="intro-quotes" class="intro-reference">
+  <div class="container">
+    <ul id="newsticker" class="newsticker">
+      <li>Event: <a href="https://www.eclipsecon.org/europe2017/" target="_blank" style="text-decoration: underline; color: #fff;">EclipseCon Europe 2017</a></li>
+    </ul>
+  </div>
 </div>
 
-<div id="features">
-	<div class="container">
-		<div class="row">
-			<br/>
-			<br />
-			<div class="span6 float feature">
-				<div class="span2">
-					<img src="images/android_logo.png" alt="Android" />
-				</div>
-				<div class="span3">
-					<h4>Android Development</h4>
-					<p>
-						Xtend works great on Android, as it doesn't produce additional runtime overhead.
-						The very thin lib and the advanced support for code generation increase productivity
-						while helping to keep your Android apps small.
-					</p>
-				</div>
-			</div>
-			<div class="span6 float feature">
-				<div class="span2">
-					<img src="images/gwt-logo.png" alt="Google Web Toolkit" />
-				</div>
-				<div class="span3">
-					<h4>Web Development</h4>
-					<p>
-						The Google Web Toolkit translates Java source code to fast Javascript code. Xtend makes typical
-						GWT programming a joy. There are many nice examples and cool enhancements <a href="https://github.com/DJCordhose/todomvc-xtend-gwt">out there</a>.
-					</p>
-				</div>
-			</div>
-			<div class="span6 float feature">
-				<div class="span2">
-					<img src="images/Java_Duke_learning.png" alt="Java FX" />
-				</div>
-				<div class="span3">
-					<h4>Fast Learning Curve!</h4>
-					<p>
-						If you know Java, you will be productive with Xtend in a few hours.
-						Xtend is an extension to Java, so you can reuse all your knowledge about tools and libraries.
-						Also complicated language features like generics remain unchanged.
-					</p>
-				</div>
-			</div>
-			<div class="span6 float feature">
-				<div class="span2">
-					<img src="images/eclipse_logo.png" alt="Eclipse" />
-				</div>
-				<div class="span3">
-					<h4>Advanced IDE Support</h4>
-					<p>
-						Static typing is not only important for early error detection but even more so for good IDE support.
-						To ensure a great and holistic user experience, Xtend's IDE and language have been designed side by side. And of course
-						the tools integrate seamlessly with the Eclipse Java IDE. 
-					</p>
-				</div>
-			</div>
-			<div class="span6 float feature">
-				<div class="span2">
-					<img src="images/java8_logo.png" alt="Java FX" />
-				</div>
-				<div class="span3">
-					<h4>Java 8 Ready</h4>
-					<p>
-						Xtend works well with Java 8 APIs as it does the same kind of target typing coercion for lambdas.
-						With its additional syntactical flexibility, of course Xtend code looks much better than the equivalent Java 8 code.
-						<a href="http://blog.efftinge.de/2012/12/java-8-vs-xtend.html">Here are some examples</a>. 
-					</p>
-				</div>
-			</div>
-			<div class="span6 float feature">
-				<div class="span2">
-					<img src="images/javafx_logo.jpg" alt="Java FX" />
-				</div>
-				<div class="span3">
-					<h4>XtendFX</h4>
-					<p>
-						UI programming in Java can be very tedious. 
-						Checkout the <a href="https://github.com/svenefftinge/xtendfx">XtendFX project</a> to see how you can get rid of
-						Java boiler plate easily. It contains some very useful <a href="documentation/204_activeannotations.html">active annotations</a> for 
-						automatically generating JavaFX properties. 
-					</p>
-				</div>
-			</div>
-		</div>
-	</div>
+<div id="why-xtext">
+  <div class="container">
+    <div class="row quick-overview">
+      <div class="span12">
+        <h1>Why Xtext?</h1>
+      </div>
+      <div class="span4">
+        <h4><img src="/Xtext/images/xtext-bullet.png"/>
+          Easy To Learn</h4>
+        <p>
+          Xtext is designed to onboard you smoothly. Simple languages are easily done within minutes.
+          Yet Xtext is flexible enough to build fully-featured, statically-typed programming languages.
+        </p>
+      </div>
+      <div class="span4">
+        <h4><img src="/Xtext/images/xtext-bullet.png"/>
+         High Quality</h4>
+        <p>The core framework has been in development for eight years and is used throughout the world in many reasearch and industry projects and even commercial products.</p>
+      </div>
+      <div class="span4">
+        <h4><img src="/Xtext/images/xtext-bullet.png"/>
+          Multi Platform</h4>
+        <p>
+          Whether you are targeting developers or domain experts, you will be able to provide a dedicated smart editor. Eclipse, any editor that supports the Language Server Protocol and various browser
+          editors are supported. Have a look at our <a href="#platform-comparison">platform comparison chart</a>.
+        </p>
+      </div>
+      <div class="span4">
+        <h4><img src="/Xtext/images/xtext-bullet.png"/>
+          Performance</h4>
+        <p>
+          We know that tools need to be fast in order to be helpful. That is why we spend considerable effort on optimization in every release.
+          You can also fine-tune your language if needed, thanks to the configurability of Xtext.
+        </p>
+      </div>
+      <div class="span4">
+        <h4><img src="/Xtext/images/xtext-bullet.png"/>
+          Easy JVM languages</h4>
+        <p>You can build languages for any target platform with Xtext.
+          If you target the JVM you can reuse Xbase, a statically typed expression language.
+          Linking against Java types, code generation and debugging work out of the box.
+        </p>
+      </div>
+      <div class="span4">
+        <h4><img src="/Xtext/images/xtext-bullet.png"/>
+          Continuous Integration</h4>
+        <p>
+          Xtext supports both Gradle and Maven to build your language and use it in downstream projects.
+          For Gradle builds, you even get incremental compilation of your language files.
+        </p>
+      </div>
+      <div class="span12">
+          <p><br/><i><a href="#feature-overview">Check out the features...</a></i></p>
+      </div>
+    </div>
+  </div>
 </div>
+
+<div id="intro-companies" class="intro-reference">
+  <div class="container">
+    <ul class="companies">
+      <li><img src="/Xtext/images/logo-google.png" alt="Google"/>
+        <img src="/Xtext/images/Siemens-logo.svg" alt="Siemens"/>
+        <img src="/Xtext/images/logo_morgan_stanley.svg" alt="Morgan Stanley"/></li>
+      <li>
+        <img src="/Xtext/images/ESA_logo.svg" alt="ESA"/>
+        <img src="/Xtext/images/Bosch-Logo.svg" alt="Bosch"/>
+        <img src="/Xtext/images/SAIC_Logo.svg" alt="SAIC"/>
+        <img src="/Xtext/images/SAP-Logo.svg" alt="SAP"/></li>
+    </ul>
+  </div>
+</div>
+
+<div id="feature-overview">
+  <div class="container">
+    <div class="row quick-overview">
+      <div class="span12">
+        <h1>Features</h1>
+      </div>
+      <div class="span4">
+        <h4><img src="/Xtext/images/xtext-bullet.png"/>
+          Build the Language You Want!</h4>
+        <p>Xtext can build full-featured text editors for both general-purpose and domain-specific languages.
+        In the background it uses the <i>LL(*)</i> parser generator of
+        ANTLR, allowing to cover a wide range of syntaxes.
+        Xtext editors have already been implemented for JavaScript, VHDL, Xtend, and many other languages.</p>
+      </div>
+      <div class="span4">
+        <h4><img src="/Xtext/images/xtext-bullet.png"/>
+          Compile to Whatever You Want!</h4>
+        <p>You define the target format to which your language is compiled. No matter if it's Java, C, XML,
+        comma-separated values, or even a binary format, Xtext does not limit your choice.
+        And in combination with <a href="http://xtend-lang.org" target="_blank">Xtend</a> writing a compiler
+        becomes easier than ever before.</p>
+      </div>
+      <div class="span4">
+        <h4><img src="/Xtext/images/xtext-bullet.png"/>
+          Highly Customizable</h4>
+        <p>The default behavior of Xtext is optimized to cover a wide range of languages and use cases.
+        However, every language has characteristics that must be reflected in the IDE. Therefore Xtext
+        allows to insert custom behavior for every single feature by replacing the default implementation.
+        This is done through dependency injection based on
+        <a href="https://github.com/google/guice" target="_blank">Google Guice</a>.</p>
+      </div>
+      <div class="span4">
+        <h4><img src="/Xtext/images/xtext-bullet.png"/>
+          Single Sourcing</h4>
+        <p>The grammar definition language of Xtext is not just for the parser. Many IDE features provided
+        by Xtext adapt to your language automatically, so whenever you change your grammar definition,
+        the behavior of the text editor is updated without any further code changes. This includes complex
+        features such as handling of cross-references, code completion, navigation, syntax coloring,
+        validation, and more.</p>
+      </div>
+      <div class="span4">
+        <h4><img src="/Xtext/images/xtext-bullet.png"/>
+          Incremental Compiler</h4>
+        <p>Xtext is built to scale, so no matter if you have a few source files written in your language
+        or hundreds of them, the IDE remains responsive and reacts smoothly to any text change. This is
+        realized through an incremental compiler that maintains an index of the available source files
+        for fast look-up of language elements.</p>
+      </div>
+      <div class="span4">
+        <h4><img src="/Xtext/images/xtext-bullet.png"/>
+          Compatible with Graphical Editors</h4>
+        <p>You can combine the text-based formats created with Xtext with many graphical editing frameworks,
+        e.g. <a href="https://www.eclipse.org/sirius/" target="_blank">Sirius</a> or
+        <a href="https://www.eclipse.org/graphiti/" target="_blank">Graphiti</a>. Xtext offers this flexibility
+        by supporting <a href="https://www.eclipse.org/modeling/emf/" target="_blank">EMF</a> as common data
+        layer. An Xtext language can be used as storage format for another primary editor, and you can even
+        embed text editors inside a graphical editor.</p>
+      </div>
+    </div>
+  </div>
+</div>
+
+<div id="platform-comparison" class="container">
+  <h2>Editor Features By Platform</h2>
+  <table class="table table-bordered">
+    <thead>
+      <tr>
+        <th></th>
+        <th style="width:25%;vertical-align: middle;">LSP</th>
+        <th style="width:25%;vertical-align: middle;"><img src="/Xtext/images/logo_eclipse.png" alt="Eclipse" style="width:100%;"></th>
+        <th style="width:25%;vertical-align: middle;"><img src="/Xtext/images/logo_browsers.png" alt="Web Browser" style="width:100%;"></th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr class="has-popover"
+      	data-content="Keywords, comments, strings, and other basic text elements are colored according to the syntax definition.">
+        <td>Syntax Coloring</td>
+        <td><div class="partly-supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+      </tr>
+      <tr class="has-popover"
+      	data-content="Text elements with special meaning in the context of your language can be highlighted with a custom text style, e.g. static fields in Java have an italic font.">
+        <td>Semantic Coloring</td>
+        <td><div class="not-supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+      </tr>
+      <tr class="has-popover"
+      	data-content="General errors in the text files are marked automatically, e.g. violations of the specified syntax or references to undefined elements. Additionally, Xtext offers a simple API to implement language-specific checks.">
+        <td>Error Checking</td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+      </tr>
+      <tr class="has-popover"
+      	data-content="Auto-completion is a powerful tool to speed up writing text in your language. Type Ctrl+Space to invoke it at the current cursor position.">
+        <td>Auto-Completion</td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+      </tr>
+      <tr class="has-popover"
+      	data-content="Once you have defined rules for handling white space (line breaks, tabs etc.) in your language, you can apply automatic formatting to whole files or parts of them.">
+        <td>Formatting</td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+      </tr>
+      <tr class="has-popover"
+      	data-content="Display additional information when the mouse hovers over a specific language element, e.g. the comments associated with that element.">
+        <td>Hover Information</td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+      </tr>
+      <tr class="has-popover"
+      	data-content="When the cursor is moved to a language element that is referenced from multiple places, all these occurrences are highlighted.">
+        <td>Mark Occurences</td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+      </tr>
+      <tr class="has-popover"
+      	data-content="Press F3 to navigate directly to the declaration of a referenced element.">
+        <td>Go To Declaration</td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="not-supported"></div></td>
+      </tr>
+      <tr class="has-popover"
+      	data-content="When you rename a language element, automatically update all references to it.">
+        <td>Rename Refactoring</td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="not-supported"></div></td>
+      </tr>
+      <tr class="has-popover"
+      	data-content="If your language interoperates with Java, the source files are considered during debug sessions in your IDE, i.e. you can set breakpoints and step through statements.">
+        <td>Debugging</td>
+        <td><div class="not-supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="not-supported"></div></td>
+      </tr>
+      <tr class="has-popover"
+      	data-content="Disable the selected lines of code by inserting comments into each line, or reenable them by removing such comments.">
+        <td>Toggle Comments</td>
+        <td><div class="partly-supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="not-supported"></div></td>
+      </tr>
+      <tr class="has-popover"
+      	data-content="Display an outline of a file highlighting its structure. This is useful for quick navigation.">
+        <td>Outline / Structure View</td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="not-supported"></div></td>
+      </tr>
+      <tr class="has-popover"
+      	data-content="Automatic fixes can be proposed for problems that have been found by the error checker.">
+        <td>Quick Fix Proposals</td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="not-supported"></div></td>
+      </tr>
+      <tr class="has-popover"
+      	data-content="Generate a list of all references to the selected language element.">
+        <td>Find References</td>
+        <td><div class="supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="not-supported"></div></td>
+      </tr>
+      <tr class="has-popover"
+      	data-content="If your language interoperates with Java, a tree view of all directly and indirectly called methods can be generated for the selected method.">
+        <td>Call Hierarchy</td>
+        <td><div class="not-supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="not-supported"></div></td>
+      </tr>
+      <tr class="has-popover"
+      	data-content="If your language interoperates with Java, a tree view of all directly and indirectly inherited classes and interfaces can be generated for the selected type.">
+        <td>Type Hierarchy</td>
+        <td><div class="not-supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="not-supported"></div></td>
+      </tr>
+      <tr class="has-popover"
+      	data-content="Collapse parts of a file that are not important for your current task.">
+        <td>Folding</td>
+        <td><div class="not-supported"></div></td>
+        <td><div class="supported"></div></td>
+        <td><div class="not-supported"></div></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
     
     <footer class="site-footer">
   <div id="extra">
-    <div class="container inner-footer">
-      <div class="row">
-        <div class="span6">
-          <h3 class="footer-links-header">Quick Links</h3>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
-            <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
-            <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
-            <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
-          </ul>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
-            <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
-            <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
-            <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
-          </ul>
-        </div>
-        <div class="span6">
+    <div class="inner">
+      <div class="container">
+        <div class="row">
+          <div class="span6">
+            <h3 class="footer-links-header">Quick Links</h3>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+              <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+              <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+              <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
+            </ul>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
+              <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
+              <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
+              <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
+            </ul>
+          </div>
+          <div class="span6">
             <!-- Social Media Links -->
             <h3 class="footer-links-header"">Social Media</h3>
             <ul class="footer-links clearfix">
               <li>
-                <a href="https://twitter.com/xtendlang"><img src="/xtend/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtendlang on Twitter</a>
+                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
               </li>
             </ul>
           </div>
-
+        </div>
       </div>
     </div>
   </div>
   <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
-  <a href="http://dryicons.com/">Icons by http://dryicons.com</a>
   <!-- Le javascript
       ================================================== -->
   <!-- Placed at the end of the document so the pages load faster -->
-  <script src="/xtend/js/jquery-1.7.1.min.js" type="text/javascript"></script>
-  <script src="/xtend/js/bootstrap.min.js" type="text/javascript"></script>
   
-  <!-- include pretty-print files -->
-  <script src="/xtend/js/prettify.js" type="text/javascript" ></script>
-  <script src="/xtend/js/lang-xtend.js" type="text/javascript"></script>
-  
-  <!-- Include the plug-in -->
-  <script src="/xtend/js/jquery.prettyPhoto.js" type="text/javascript"></script>
-  <script src="/xtend/js/jquery.easing.1.3.js" type="text/javascript"></script>
-  <script src="/xtend/js/custom.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
+  <script src="/Xtext/js/bootstrap.min.js"></script>
+  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
+  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
+  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
   <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
   <!--script type="text/javascript">
     var _gaq = _gaq || [];  
-      _gaq.push([ '_setAccount', 'UA-2429174-4' ]);
+      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -321,8 +496,31 @@
       s.parentNode.insertBefore(ga, s);
     })();
   </script-->
+  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
+  <script>
+      $(function() {
+        $('#coverflow').coverflow({
+          active : 1,
+          visibleAside: 2,
+          overlap : 0.5,
+          scale : 0.9,
+          angle : 20,
+          trigger : {
+            "itemfocus" : true,
+            "swipe" : true,
+            "mousewheel" : false
+          }
+        });
+        $('#coverflow :hidden').toggle();
+        $(window).resize(function() {
+          $('#coverflow').coverflow();
+        });
+      });
+
+  </script>
 </footer>
 
+
   </body>
 
 </html>
diff --git a/js/bootstrap.min.js b/js/bootstrap.min.js
index 8c06421..848258d 100644
--- a/js/bootstrap.min.js
+++ b/js/bootstrap.min.js
@@ -1,6 +1,6 @@
-/**
+/*!
 * Bootstrap.js by @fat & @mdo
-* Copyright 2012 Twitter, Inc.
+* Copyright 2013 Twitter, Inc.
 * http://www.apache.org/licenses/LICENSE-2.0.txt
 */
-!function(a){a(function(){"use strict",a.support.transition=function(){var a=function(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd",transition:"transitionend"},c;for(c in b)if(a.style[c]!==undefined)return b[c]}();return a&&{end:a}}()})}(window.jQuery),!function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function f(){e.trigger("closed").remove()}var c=a(this),d=c.attr("data-target"),e;d||(d=c.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),e=a(d),b&&b.preventDefault(),e.length||(e=c.hasClass("alert")?c:c.parent()),e.trigger(b=a.Event("close"));if(b.isDefaultPrevented())return;e.removeClass("in"),a.support.transition&&e.hasClass("fade")?e.on(a.support.transition.end,f):f()},a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("alert");e||d.data("alert",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.alert.Constructor=c,a(function(){a("body").on("click.alert.data-api",b,c.prototype.close)})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.button.defaults,c)};b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.data(),e=c.is("input")?"val":"html";a+="Text",d.resetText||c.data("resetText",c[e]()),c[e](d[a]||this.options[a]),setTimeout(function(){a=="loadingText"?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.parent('[data-toggle="buttons-radio"]');a&&a.find(".active").removeClass("active"),this.$element.toggleClass("active")},a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("button"),f=typeof c=="object"&&c;e||d.data("button",e=new b(this,f)),c=="toggle"?e.toggle():c&&e.setState(c)})},a.fn.button.defaults={loadingText:"loading..."},a.fn.button.Constructor=b,a(function(){a("body").on("click.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle")})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=c,this.options.slide&&this.slide(this.options.slide),this.options.pause=="hover"&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.prototype={cycle:function(b){return b||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},to:function(b){var c=this.$element.find(".active"),d=c.parent().children(),e=d.index(c),f=this;if(b>d.length-1||b<0)return;return this.sliding?this.$element.one("slid",function(){f.to(b)}):e==b?this.pause().cycle():this.slide(b>e?"next":"prev",a(d[b]))},pause:function(a){return a||(this.paused=!0),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(b,c){var d=this.$element.find(".active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this,j=a.Event("slide");this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h]();if(e.hasClass("active"))return;if(a.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(j);if(j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),this.$element.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)})}else{this.$element.trigger(j);if(j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}},a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("carousel"),f=a.extend({},a.fn.carousel.defaults,typeof c=="object"&&c);e||d.data("carousel",e=new b(this,f)),typeof c=="number"?e.to(c):typeof c=="string"||(c=f.slide)?e[c]():f.interval&&e.cycle()})},a.fn.carousel.defaults={interval:5e3,pause:"hover"},a.fn.carousel.Constructor=b,a(function(){a("body").on("click.carousel.data-api","[data-slide]",function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=!e.data("modal")&&a.extend({},e.data(),c.data());e.carousel(f),b.preventDefault()})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.collapse.defaults,c),this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.prototype={constructor:b,dimension:function(){var a=this.$element.hasClass("width");return a?"width":"height"},show:function(){var b,c,d,e;if(this.transitioning)return;b=this.dimension(),c=a.camelCase(["scroll",b].join("-")),d=this.$parent&&this.$parent.find("> .accordion-group > .in");if(d&&d.length){e=d.data("collapse");if(e&&e.transitioning)return;d.collapse("hide"),e||d.data("collapse",null)}this.$element[b](0),this.transition("addClass",a.Event("show"),"shown"),this.$element[b](this.$element[0][c])},hide:function(){var b;if(this.transitioning)return;b=this.dimension(),this.reset(this.$element[b]()),this.transition("removeClass",a.Event("hide"),"hidden"),this.$element[b](0)},reset:function(a){var b=this.dimension();return this.$element.removeClass("collapse")[b](a||"auto")[0].offsetWidth,this.$element[a!==null?"addClass":"removeClass"]("collapse"),this},transition:function(b,c,d){var e=this,f=function(){c.type=="show"&&e.reset(),e.transitioning=0,e.$element.trigger(d)};this.$element.trigger(c);if(c.isDefaultPrevented())return;this.transitioning=1,this.$element[b]("in"),a.support.transition&&this.$element.hasClass("collapse")?this.$element.one(a.support.transition.end,f):f()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}},a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("collapse"),f=typeof c=="object"&&c;e||d.data("collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.defaults={toggle:!0},a.fn.collapse.Constructor=b,a(function(){a("body").on("click.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e).data("collapse")?"toggle":c.data();a(e).collapse(f)})})}(window.jQuery),!function(a){function d(){a(b).parent().removeClass("open")}"use strict";var b='[data-toggle="dropdown"]',c=function(b){var c=a(b).on("click.dropdown.data-api",this.toggle);a("html").on("click.dropdown.data-api",function(){c.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(b){var c=a(this),e,f,g;if(c.is(".disabled, :disabled"))return;return f=c.attr("data-target"),f||(f=c.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,"")),e=a(f),e.length||(e=c.parent()),g=e.hasClass("open"),d(),g||e.toggleClass("open"),!1}},a.fn.dropdown=function(b){return this.each(function(){var d=a(this),e=d.data("dropdown");e||d.data("dropdown",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.dropdown.Constructor=c,a(function(){a("html").on("click.dropdown.data-api",d),a("body").on("click.dropdown",".dropdown form",function(a){a.stopPropagation()}).on("click.dropdown.data-api",b,c.prototype.toggle)})}(window.jQuery),!function(a){function c(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end),d.call(b)},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c),d.call(b)})}function d(a){this.$element.hide().trigger("hidden"),e.call(this)}function e(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;this.$backdrop=a('<div class="modal-backdrop '+d+'" />').appendTo(document.body),this.options.backdrop!="static"&&this.$backdrop.click(a.proxy(this.hide,this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),e?this.$backdrop.one(a.support.transition.end,b):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,a.proxy(f,this)):f.call(this)):b&&b()}function f(){this.$backdrop.remove(),this.$backdrop=null}function g(){var b=this;this.isShown&&this.options.keyboard?a(document).on("keyup.dismiss.modal",function(a){a.which==27&&b.hide()}):this.isShown||a(document).off("keyup.dismiss.modal")}"use strict";var b=function(b,c){this.options=c,this.$element=a(b).delegate('[data-dismiss="modal"]',"click.dismiss.modal",a.proxy(this.hide,this))};b.prototype={constructor:b,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var b=this,c=a.Event("show");this.$element.trigger(c);if(this.isShown||c.isDefaultPrevented())return;a("body").addClass("modal-open"),this.isShown=!0,g.call(this),e.call(this,function(){var c=a.support.transition&&b.$element.hasClass("fade");b.$element.parent().length||b.$element.appendTo(document.body),b.$element.show(),c&&b.$element[0].offsetWidth,b.$element.addClass("in"),c?b.$element.one(a.support.transition.end,function(){b.$element.trigger("shown")}):b.$element.trigger("shown")})},hide:function(b){b&&b.preventDefault();var e=this;b=a.Event("hide"),this.$element.trigger(b);if(!this.isShown||b.isDefaultPrevented())return;this.isShown=!1,a("body").removeClass("modal-open"),g.call(this),this.$element.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?c.call(this):d.call(this)}},a.fn.modal=function(c){return this.each(function(){var d=a(this),e=d.data("modal"),f=a.extend({},a.fn.modal.defaults,d.data(),typeof c=="object"&&c);e||d.data("modal",e=new b(this,f)),typeof c=="string"?e[c]():f.show&&e.show()})},a.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},a.fn.modal.Constructor=b,a(function(){a("body").on("click.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({},e.data(),c.data());b.preventDefault(),e.modal(f)})})}(window.jQuery),!function(a){"use strict";var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f;this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.enabled=!0,this.options.trigger!="manual"&&(e=this.options.trigger=="hover"?"mouseenter":"focus",f=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(e,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f,this.options.selector,a.proxy(this.leave,this))),this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){return b=a.extend({},a.fn[this.type].defaults,b,this.$element.data()),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},enter:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);if(!c.options.delay||!c.options.delay.show)return c.show();clearTimeout(this.timeout),c.hoverState="in",this.timeout=setTimeout(function(){c.hoverState=="in"&&c.show()},c.options.delay.show)},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);if(!c.options.delay||!c.options.delay.hide)return c.hide();clearTimeout(this.timeout),c.hoverState="out",this.timeout=setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide)},show:function(){var a,b,c,d,e,f,g;if(this.hasContent()&&this.enabled){a=this.tip(),this.setContent(),this.options.animation&&a.addClass("fade"),f=typeof this.options.placement=="function"?this.options.placement.call(this,a[0],this.$element[0]):this.options.placement,b=/in/.test(f),a.remove().css({top:0,left:0,display:"block"}).appendTo(b?this.$element:document.body),c=this.getPosition(b),d=a[0].offsetWidth,e=a[0].offsetHeight;switch(b?f.split(" ")[1]:f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}a.css(g).addClass(f).addClass("in")}},isHTML:function(a){return typeof a!="string"||a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3||/^(?:[^<]*<[\w\W]+>[^>]*$)/.exec(a)},setContent:function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.isHTML(b)?"html":"text"](b),a.removeClass("fade in top bottom left right")},hide:function(){function d(){var b=setTimeout(function(){c.off(a.support.transition.end).remove()},500);c.one(a.support.transition.end,function(){clearTimeout(b),c.remove()})}var b=this,c=this.tip();c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d():c.remove()},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(b){return a.extend({},b?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(){this[this.tip().hasClass("in")?"hide":"show"]()}},a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover",title:"",delay:0}}(window.jQuery),!function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.isHTML(b)?"html":"text"](b),a.find(".popover-content > *")[this.isHTML(c)?"html":"text"](c),a.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-content")||(typeof c.content=="function"?c.content.call(b[0]):c.content),a},tip:function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip}}),a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",content:"",template:'<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'})}(window.jQuery),!function(a){function b(b,c){var d=a.proxy(this.process,this),e=a(b).is("body")?a(window):a(b),f;this.options=a.extend({},a.fn.scrollspy.defaults,c),this.$scrollElement=e.on("scroll.scroll.data-api",d),this.selector=(this.options.target||(f=a(b).attr("href"))&&f.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=a("body"),this.refresh(),this.process()}"use strict",b.prototype={constructor:b,refresh:function(){var b=this,c;this.offsets=a([]),this.targets=a([]),c=this.$body.find(this.selector).map(function(){var b=a(this),c=b.data("target")||b.attr("href"),d=/^#\w/.test(c)&&a(c);return d&&c.length&&[[d.position().top,c]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},process:function(){var a=this.$scrollElement.scrollTop()+this.options.offset,b=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,c=b-this.$scrollElement.height(),d=this.offsets,e=this.targets,f=this.activeTarget,g;if(a>=c)return f!=(g=e.last()[0])&&this.activate(g);for(g=d.length;g--;)f!=e[g]&&a>=d[g]&&(!d[g+1]||a<=d[g+1])&&this.activate(e[g])},activate:function(b){var c,d;this.activeTarget=b,a(this.selector).parent(".active").removeClass("active"),d=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',c=a(d).parent("li").addClass("active"),c.parent(".dropdown-menu")&&(c=c.closest("li.dropdown").addClass("active")),c.trigger("activate")}},a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("scrollspy"),f=typeof c=="object"&&c;e||d.data("scrollspy",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.defaults={offset:10},a(function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),!function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype={constructor:b,show:function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target"),e,f,g;d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,""));if(b.parent("li").hasClass("active"))return;e=c.find(".active a").last()[0],g=a.Event("show",{relatedTarget:e}),b.trigger(g);if(g.isDefaultPrevented())return;f=a(d),this.activate(b.parent("li"),c),this.activate(f,f.parent(),function(){b.trigger({type:"shown",relatedTarget:e})})},activate:function(b,c,d){function g(){e.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),f?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var e=c.find("> .active"),f=d&&a.support.transition&&e.hasClass("fade");f?e.one(a.support.transition.end,g):g(),e.removeClass("in")}},a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("tab");e||d.data("tab",e=new b(this)),typeof c=="string"&&e[c]()})},a.fn.tab.Constructor=b,a(function(){a("body").on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.typeahead.defaults,c),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.$menu=a(this.options.menu).appendTo("body"),this.source=this.options.source,this.shown=!1,this.listen()};b.prototype={constructor:b,select:function(){var a=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(a)).change(),this.hide()},updater:function(a){return a},show:function(){var b=a.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return this.$menu.css({top:b.top+b.height,left:b.left}),this.$menu.show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(b){var c=this,d,e;return this.query=this.$element.val(),this.query?(d=a.grep(this.source,function(a){return c.matcher(a)}),d=this.sorter(d),d.length?this.render(d.slice(0,this.options.items)).show():this.shown?this.hide():this):this.shown?this.hide():this},matcher:function(a){return~a.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(a){var b=[],c=[],d=[],e;while(e=a.shift())e.toLowerCase().indexOf(this.query.toLowerCase())?~e.indexOf(this.query)?c.push(e):d.push(e):b.push(e);return b.concat(c,d)},highlighter:function(a){var b=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return a.replace(new RegExp("("+b+")","ig"),function(a,b){return"<strong>"+b+"</strong>"})},render:function(b){var c=this;return b=a(b).map(function(b,d){return b=a(c.options.item).attr("data-value",d),b.find("a").html(c.highlighter(d)),b[0]}),b.first().addClass("active"),this.$menu.html(b),this},next:function(b){var c=this.$menu.find(".active").removeClass("active"),d=c.next();d.length||(d=a(this.$menu.find("li")[0])),d.addClass("active")},prev:function(a){var b=this.$menu.find(".active").removeClass("active"),c=b.prev();c.length||(c=this.$menu.find("li").last()),c.addClass("active")},listen:function(){this.$element.on("blur",a.proxy(this.blur,this)).on("keypress",a.proxy(this.keypress,this)).on("keyup",a.proxy(this.keyup,this)),(a.browser.webkit||a.browser.msie)&&this.$element.on("keydown",a.proxy(this.keypress,this)),this.$menu.on("click",a.proxy(this.click,this)).on("mouseenter","li",a.proxy(this.mouseenter,this))},keyup:function(a){switch(a.keyCode){case 40:case 38:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}a.stopPropagation(),a.preventDefault()},keypress:function(a){if(!this.shown)return;switch(a.keyCode){case 9:case 13:case 27:a.preventDefault();break;case 38:if(a.type!="keydown")break;a.preventDefault(),this.prev();break;case 40:if(a.type!="keydown")break;a.preventDefault(),this.next()}a.stopPropagation()},blur:function(a){var b=this;setTimeout(function(){b.hide()},150)},click:function(a){a.stopPropagation(),a.preventDefault(),this.select()},mouseenter:function(b){this.$menu.find(".active").removeClass("active"),a(b.currentTarget).addClass("active")}},a.fn.typeahead=function(c){return this.each(function(){var d=a(this),e=d.data("typeahead"),f=typeof c=="object"&&c;e||d.data("typeahead",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>'},a.fn.typeahead.Constructor=b,a(function(){a("body").on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(b){var c=a(this);if(c.data("typeahead"))return;b.preventDefault(),c.typeahead(c.data())})})}(window.jQuery);
\ No newline at end of file
+!function(e){"use strict";e(function(){e.support.transition=function(){var e=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},n;for(n in t)if(e.style[n]!==undefined)return t[n]}();return e&&{end:e}}()})}(window.jQuery),!function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){function s(){i.trigger("closed").remove()}var n=e(this),r=n.attr("data-target"),i;r||(r=n.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),i=e(r),t&&t.preventDefault(),i.length||(i=n.hasClass("alert")?n:n.parent()),i.trigger(t=e.Event("close"));if(t.isDefaultPrevented())return;i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.on(e.support.transition.end,s):s()};var r=e.fn.alert;e.fn.alert=function(t){return this.each(function(){var r=e(this),i=r.data("alert");i||r.data("alert",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.alert.Constructor=n,e.fn.alert.noConflict=function(){return e.fn.alert=r,this},e(document).on("click.alert.data-api",t,n.prototype.close)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.button.defaults,n)};t.prototype.setState=function(e){var t="disabled",n=this.$element,r=n.data(),i=n.is("input")?"val":"html";e+="Text",r.resetText||n.data("resetText",n[i]()),n[i](r[e]||this.options[e]),setTimeout(function(){e=="loadingText"?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)},0)},t.prototype.toggle=function(){var e=this.$element.closest('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")};var n=e.fn.button;e.fn.button=function(n){return this.each(function(){var r=e(this),i=r.data("button"),s=typeof n=="object"&&n;i||r.data("button",i=new t(this,s)),n=="toggle"?i.toggle():n&&i.setState(n)})},e.fn.button.defaults={loadingText:"loading..."},e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=n,this},e(document).on("click.button.data-api","[data-toggle^=button]",function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.options.pause=="hover"&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.prototype={cycle:function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},getActiveIndex:function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},to:function(t){var n=this.getActiveIndex(),r=this;if(t>this.$items.length-1||t<0)return;return this.sliding?this.$element.one("slid",function(){r.to(t)}):n==t?this.pause().cycle():this.slide(t>n?"next":"prev",e(this.$items[t]))},pause:function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(t,n){var r=this.$element.find(".item.active"),i=n||r[t](),s=this.interval,o=t=="next"?"left":"right",u=t=="next"?"first":"last",a=this,f;this.sliding=!0,s&&this.pause(),i=i.length?i:this.$element.find(".item")[u](),f=e.Event("slide",{relatedTarget:i[0],direction:o});if(i.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var t=e(a.$indicators.children()[a.getActiveIndex()]);t&&t.addClass("active")}));if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(f);if(f.isDefaultPrevented())return;i.addClass(t),i[0].offsetWidth,r.addClass(o),i.addClass(o),this.$element.one(e.support.transition.end,function(){i.removeClass([t,o].join(" ")).addClass("active"),r.removeClass(["active",o].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger("slid")},0)})}else{this.$element.trigger(f);if(f.isDefaultPrevented())return;r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this}};var n=e.fn.carousel;e.fn.carousel=function(n){return this.each(function(){var r=e(this),i=r.data("carousel"),s=e.extend({},e.fn.carousel.defaults,typeof n=="object"&&n),o=typeof n=="string"?n:s.slide;i||r.data("carousel",i=new t(this,s)),typeof n=="number"?i.to(n):o?i[o]():s.interval&&i.pause().cycle()})},e.fn.carousel.defaults={interval:5e3,pause:"hover"},e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=n,this},e(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=e.extend({},i.data(),n.data()),o;i.carousel(s),(o=n.attr("data-slide-to"))&&i.data("carousel").pause().to(o).cycle(),t.preventDefault()})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.collapse.defaults,n),this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.prototype={constructor:t,dimension:function(){var e=this.$element.hasClass("width");return e?"width":"height"},show:function(){var t,n,r,i;if(this.transitioning||this.$element.hasClass("in"))return;t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),r=this.$parent&&this.$parent.find("> .accordion-group > .in");if(r&&r.length){i=r.data("collapse");if(i&&i.transitioning)return;r.collapse("hide"),i||r.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show"),"shown"),e.support.transition&&this.$element[t](this.$element[0][n])},hide:function(){var t;if(this.transitioning||!this.$element.hasClass("in"))return;t=this.dimension(),this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[t](0)},reset:function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[e!==null?"addClass":"removeClass"]("collapse"),this},transition:function(t,n,r){var i=this,s=function(){n.type=="show"&&i.reset(),i.transitioning=0,i.$element.trigger(r)};this.$element.trigger(n);if(n.isDefaultPrevented())return;this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,s):s()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var n=e.fn.collapse;e.fn.collapse=function(n){return this.each(function(){var r=e(this),i=r.data("collapse"),s=e.extend({},e.fn.collapse.defaults,r.data(),typeof n=="object"&&n);i||r.data("collapse",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.collapse.defaults={toggle:!0},e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=n,this},e(document).on("click.collapse.data-api","[data-toggle=collapse]",function(t){var n=e(this),r,i=n.attr("data-target")||t.preventDefault()||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),s=e(i).data("collapse")?"toggle":n.data();n[e(i).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(i).collapse(s)})}(window.jQuery),!function(e){"use strict";function r(){e(".dropdown-backdrop").remove(),e(t).each(function(){i(e(this)).removeClass("open")})}function i(t){var n=t.attr("data-target"),r;n||(n=t.attr("href"),n=n&&/#/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,"")),r=n&&e(n);if(!r||!r.length)r=t.parent();return r}var t="[data-toggle=dropdown]",n=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};n.prototype={constructor:n,toggle:function(t){var n=e(this),s,o;if(n.is(".disabled, :disabled"))return;return s=i(n),o=s.hasClass("open"),r(),o||("ontouchstart"in document.documentElement&&e('<div class="dropdown-backdrop"/>').insertBefore(e(this)).on("click",r),s.toggleClass("open")),n.focus(),!1},keydown:function(n){var r,s,o,u,a,f;if(!/(38|40|27)/.test(n.keyCode))return;r=e(this),n.preventDefault(),n.stopPropagation();if(r.is(".disabled, :disabled"))return;u=i(r),a=u.hasClass("open");if(!a||a&&n.keyCode==27)return n.which==27&&u.find(t).focus(),r.click();s=e("[role=menu] li:not(.divider):visible a",u);if(!s.length)return;f=s.index(s.filter(":focus")),n.keyCode==38&&f>0&&f--,n.keyCode==40&&f<s.length-1&&f++,~f||(f=0),s.eq(f).focus()}};var s=e.fn.dropdown;e.fn.dropdown=function(t){return this.each(function(){var r=e(this),i=r.data("dropdown");i||r.data("dropdown",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.dropdown.Constructor=n,e.fn.dropdown.noConflict=function(){return e.fn.dropdown=s,this},e(document).on("click.dropdown.data-api",r).on("click.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.dropdown.data-api",t,n.prototype.toggle).on("keydown.dropdown.data-api",t+", [role=menu]",n.prototype.keydown)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;this.isShown=!0,this.escape(),this.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in").attr("aria-hidden",!1),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")})},hide:function(t){t&&t.preventDefault();var n=this;t=e.Event("hide"),this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=!1,this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]!==e.target&&!t.$element.has(e.target).length&&t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(){var e=this;this.$element.hide(),this.backdrop(function(){e.removeBackdrop(),e.$element.trigger("hidden")})},removeBackdrop:function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var i=e.support.transition&&r;this.$backdrop=e('<div class="modal-backdrop '+r+'" />').appendTo(document.body),this.$backdrop.click(this.options.backdrop=="static"?e.proxy(this.$element[0].focus,this.$element[0]):e.proxy(this.hide,this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in");if(!t)return;i?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,t):t()):t&&t()}};var n=e.fn.modal;e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),s=e.extend({},e.fn.modal.defaults,r.data(),typeof n=="object"&&n);i||r.data("modal",i=new t(this,s)),typeof n=="string"?i[n]():s.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e.fn.modal.noConflict=function(){return e.fn.modal=n,this},e(document).on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault(),i.modal(s).one("hide",function(){n.focus()})})}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var i,s,o,u,a;this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.enabled=!0,o=this.options.trigger.split(" ");for(a=o.length;a--;)u=o[a],u=="click"?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):u!="manual"&&(i=u=="hover"?"mouseenter":"focus",s=u=="hover"?"mouseleave":"blur",this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.leave,this)));this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,this.$element.data(),t),t.delay&&typeof t.delay=="number"&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n=e.fn[this.type].defaults,r={},i;this._options&&e.each(this._options,function(e,t){n[e]!=t&&(r[e]=t)},this),i=e(t.currentTarget)[this.type](r).data(this.type);if(!i.options.delay||!i.options.delay.show)return i.show();clearTimeout(this.timeout),i.hoverState="in",this.timeout=setTimeout(function(){i.hoverState=="in"&&i.show()},i.options.delay.show)},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!n.options.delay||!n.options.delay.hide)return n.hide();n.hoverState="out",this.timeout=setTimeout(function(){n.hoverState=="out"&&n.hide()},n.options.delay.hide)},show:function(){var t,n,r,i,s,o,u=e.Event("show");if(this.hasContent()&&this.enabled){this.$element.trigger(u);if(u.isDefaultPrevented())return;t=this.tip(),this.setContent(),this.options.animation&&t.addClass("fade"),s=typeof this.options.placement=="function"?this.options.placement.call(this,t[0],this.$element[0]):this.options.placement,t.detach().css({top:0,left:0,display:"block"}),this.options.container?t.appendTo(this.options.container):t.insertAfter(this.$element),n=this.getPosition(),r=t[0].offsetWidth,i=t[0].offsetHeight;switch(s){case"bottom":o={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":o={top:n.top-i,left:n.left+n.width/2-r/2};break;case"left":o={top:n.top+n.height/2-i/2,left:n.left-r};break;case"right":o={top:n.top+n.height/2-i/2,left:n.left+n.width}}this.applyPlacement(o,s),this.$element.trigger("shown")}},applyPlacement:function(e,t){var n=this.tip(),r=n[0].offsetWidth,i=n[0].offsetHeight,s,o,u,a;n.offset(e).addClass(t).addClass("in"),s=n[0].offsetWidth,o=n[0].offsetHeight,t=="top"&&o!=i&&(e.top=e.top+i-o,a=!0),t=="bottom"||t=="top"?(u=0,e.left<0&&(u=e.left*-2,e.left=0,n.offset(e),s=n[0].offsetWidth,o=n[0].offsetHeight),this.replaceArrow(u-r+s,s,"left")):this.replaceArrow(o-i,o,"top"),a&&n.offset(e)},replaceArrow:function(e,t,n){this.arrow().css(n,e?50*(1-e/t)+"%":"")},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){function i(){var t=setTimeout(function(){n.off(e.support.transition.end).detach()},500);n.one(e.support.transition.end,function(){clearTimeout(t),n.detach()})}var t=this,n=this.tip(),r=e.Event("hide");this.$element.trigger(r);if(r.isDefaultPrevented())return;return n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?i():n.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var e=this.$element;(e.attr("title")||typeof e.attr("data-original-title")!="string")&&e.attr("data-original-title",e.attr("title")||"").attr("title","")},hasContent:function(){return this.getTitle()},getPosition:function(){var t=this.$element[0];return e.extend({},typeof t.getBoundingClientRect=="function"?t.getBoundingClientRect():{width:t.offsetWidth,height:t.offsetHeight},this.$element.offset())},getTitle:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||(typeof n.title=="function"?n.title.call(t[0]):n.title),e},tip:function(){return this.$tip=this.$tip||e(this.options.template)},arrow:function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(t){var n=t?e(t.currentTarget)[this.type](this._options).data(this.type):this;n.tip().hasClass("in")?n.hide():n.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var n=e.fn.tooltip;e.fn.tooltip=function(n){return this.each(function(){var r=e(this),i=r.data("tooltip"),s=typeof n=="object"&&n;i||r.data("tooltip",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},e.fn.tooltip.noConflict=function(){return e.fn.tooltip=n,this}}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,t=this.$element,n=this.options;return e=(typeof n.content=="function"?n.content.call(t[0]):n.content)||t.attr("data-content"),e},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var n=e.fn.popover;e.fn.popover=function(n){return this.each(function(){var r=e(this),i=r.data("popover"),s=typeof n=="object"&&n;i||r.data("popover",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),e.fn.popover.noConflict=function(){return e.fn.popover=n,this}}(window.jQuery),!function(e){"use strict";function t(t,n){var r=e.proxy(this.process,this),i=e(t).is("body")?e(window):e(t),s;this.options=e.extend({},e.fn.scrollspy.defaults,n),this.$scrollElement=i.on("scroll.scroll-spy.data-api",r),this.selector=(this.options.target||(s=e(t).attr("href"))&&s.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=e("body"),this.refresh(),this.process()}t.prototype={constructor:t,refresh:function(){var t=this,n;this.offsets=e([]),this.targets=e([]),n=this.$body.find(this.selector).map(function(){var n=e(this),r=n.data("target")||n.attr("href"),i=/^#\w/.test(r)&&e(r);return i&&i.length&&[[i.position().top+(!e.isWindow(t.$scrollElement.get(0))&&t.$scrollElement.scrollTop()),r]]||null}).sort(function(e,t){return e[0]-t[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},process:function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,n=t-this.$scrollElement.height(),r=this.offsets,i=this.targets,s=this.activeTarget,o;if(e>=n)return s!=(o=i.last()[0])&&this.activate(o);for(o=r.length;o--;)s!=i[o]&&e>=r[o]&&(!r[o+1]||e<=r[o+1])&&this.activate(i[o])},activate:function(t){var n,r;this.activeTarget=t,e(this.selector).parent(".active").removeClass("active"),r=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',n=e(r).parent("li").addClass("active"),n.parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate")}};var n=e.fn.scrollspy;e.fn.scrollspy=function(n){return this.each(function(){var r=e(this),i=r.data("scrollspy"),s=typeof n=="object"&&n;i||r.data("scrollspy",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.scrollspy.Constructor=t,e.fn.scrollspy.defaults={offset:10},e.fn.scrollspy.noConflict=function(){return e.fn.scrollspy=n,this},e(window).on("load",function(){e('[data-spy="scroll"]').each(function(){var t=e(this);t.scrollspy(t.data())})})}(window.jQuery),!function(e){"use strict";var t=function(t){this.element=e(t)};t.prototype={constructor:t,show:function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.attr("data-target"),i,s,o;r||(r=t.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));if(t.parent("li").hasClass("active"))return;i=n.find(".active:last a")[0],o=e.Event("show",{relatedTarget:i}),t.trigger(o);if(o.isDefaultPrevented())return;s=e(r),this.activate(t.parent("li"),n),this.activate(s,s.parent(),function(){t.trigger({type:"shown",relatedTarget:i})})},activate:function(t,n,r){function o(){i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),t.addClass("active"),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active"),r&&r()}var i=n.find("> .active"),s=r&&e.support.transition&&i.hasClass("fade");s?i.one(e.support.transition.end,o):o(),i.removeClass("in")}};var n=e.fn.tab;e.fn.tab=function(n){return this.each(function(){var r=e(this),i=r.data("tab");i||r.data("tab",i=new t(this)),typeof n=="string"&&i[n]()})},e.fn.tab.Constructor=t,e.fn.tab.noConflict=function(){return e.fn.tab=n,this},e(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault(),e(this).tab("show")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.typeahead.defaults,n),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.source=this.options.source,this.$menu=e(this.options.menu),this.shown=!1,this.listen()};t.prototype={constructor:t,select:function(){var e=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(e)).change(),this.hide()},updater:function(e){return e},show:function(){var t=e.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:t.top+t.height,left:t.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(t){var n;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(n=e.isFunction(this.source)?this.source(this.query,e.proxy(this.process,this)):this.source,n?this.process(n):this)},process:function(t){var n=this;return t=e.grep(t,function(e){return n.matcher(e)}),t=this.sorter(t),t.length?this.render(t.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(e){return~e.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(e){var t=[],n=[],r=[],i;while(i=e.shift())i.toLowerCase().indexOf(this.query.toLowerCase())?~i.indexOf(this.query)?n.push(i):r.push(i):t.push(i);return t.concat(n,r)},highlighter:function(e){var t=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return e.replace(new RegExp("("+t+")","ig"),function(e,t){return"<strong>"+t+"</strong>"})},render:function(t){var n=this;return t=e(t).map(function(t,r){return t=e(n.options.item).attr("data-value",r),t.find("a").html(n.highlighter(r)),t[0]}),t.first().addClass("active"),this.$menu.html(t),this},next:function(t){var n=this.$menu.find(".active").removeClass("active"),r=n.next();r.length||(r=e(this.$menu.find("li")[0])),r.addClass("active")},prev:function(e){var t=this.$menu.find(".active").removeClass("active"),n=t.prev();n.length||(n=this.$menu.find("li").last()),n.addClass("active")},listen:function(){this.$element.on("focus",e.proxy(this.focus,this)).on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this)).on("mouseleave","li",e.proxy(this.mouseleave,this))},eventSupported:function(e){var t=e in this.$element;return t||(this.$element.setAttribute(e,"return;"),t=typeof this.$element[e]=="function"),t},move:function(e){if(!this.shown)return;switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()},keydown:function(t){this.suppressKeyPressRepeat=~e.inArray(t.keyCode,[40,38,9,13,27]),this.move(t)},keypress:function(e){if(this.suppressKeyPressRepeat)return;this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}e.stopPropagation(),e.preventDefault()},focus:function(e){this.focused=!0},blur:function(e){this.focused=!1,!this.mousedover&&this.shown&&this.hide()},click:function(e){e.stopPropagation(),e.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(t){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),e(t.currentTarget).addClass("active")},mouseleave:function(e){this.mousedover=!1,!this.focused&&this.shown&&this.hide()}};var n=e.fn.typeahead;e.fn.typeahead=function(n){return this.each(function(){var r=e(this),i=r.data("typeahead"),s=typeof n=="object"&&n;i||r.data("typeahead",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},e.fn.typeahead.Constructor=t,e.fn.typeahead.noConflict=function(){return e.fn.typeahead=n,this},e(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(t){var n=e(this);if(n.data("typeahead"))return;n.typeahead(n.data())})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=e.extend({},e.fn.affix.defaults,n),this.$window=e(window).on("scroll.affix.data-api",e.proxy(this.checkPosition,this)).on("click.affix.data-api",e.proxy(function(){setTimeout(e.proxy(this.checkPosition,this),1)},this)),this.$element=e(t),this.checkPosition()};t.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var t=e(document).height(),n=this.$window.scrollTop(),r=this.$element.offset(),i=this.options.offset,s=i.bottom,o=i.top,u="affix affix-top affix-bottom",a;typeof i!="object"&&(s=o=i),typeof o=="function"&&(o=i.top()),typeof s=="function"&&(s=i.bottom()),a=this.unpin!=null&&n+this.unpin<=r.top?!1:s!=null&&r.top+this.$element.height()>=t-s?"bottom":o!=null&&n<=o?"top":!1;if(this.affixed===a)return;this.affixed=a,this.unpin=a=="bottom"?r.top-n:null,this.$element.removeClass(u).addClass("affix"+(a?"-"+a:""))};var n=e.fn.affix;e.fn.affix=function(n){return this.each(function(){var r=e(this),i=r.data("affix"),s=typeof n=="object"&&n;i||r.data("affix",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.affix.Constructor=t,e.fn.affix.defaults={offset:0},e.fn.affix.noConflict=function(){return e.fn.affix=n,this},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var t=e(this),n=t.data();n.offset=n.offset||{},n.offsetBottom&&(n.offset.bottom=n.offsetBottom),n.offsetTop&&(n.offset.top=n.offsetTop),t.affix(n)})})}(window.jQuery);
\ No newline at end of file
diff --git a/js/custom.js b/js/custom.js
index 347c191..9753bd3 100644
--- a/js/custom.js
+++ b/js/custom.js
@@ -1,7 +1,8 @@
 
 
 $(document).ready(function() {
-	pimp_rotating_quotes();
+	rotate("#screenshots", 10000);
+	rotate("#newsticker", 5000);
 
 	pimp_prettyphoto_videos();
 
@@ -9,12 +10,13 @@
 	pimp_up_documentation_menu();
 
 	// syntax coloring
-	$('pre > code[class]').each(function() {
+	$('pre > code').filter(function() {
+			return !($(this).attr('class') === undefined);
+		}
+	).each(function() {
 		$(this).attr('class', $(this).attr('class').replace('language','lang'));
 		$(this).addClass('prettyprint')
-		if ($(this).text().indexOf('\n') != $(this).text().lastIndexOf('\n')) {
-			$(this).addClass('linenums')
-		}
+		$(this).addClass('linenums')
 	})
 	prettyPrint();
 
@@ -41,12 +43,19 @@
 	});
 	
 
-	$('.has-popover').popover();
+	$('.has-popover').popover({
+		trigger: 'click hover',
+		delay: { show: 100, hide: 50 },
+		placement: "bottom"
+	});
 
 	/**
-	var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+	var po = document.createElement('script');
+	po.type = 'text/javascript';
+	po.async = true;
 	po.src = 'https://apis.google.com/js/plusone.js';
-	var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+	var s = document.getElementsByTagName('script')[0];
+	s.parentNode.insertBefore(po, s);
 	**/
 });
 
@@ -134,17 +143,14 @@
 	});
 }
 
-/**
- * 
- */
-function pimp_rotating_quotes() {
-	var elements = $(".newsticker li");
+function rotate(id, timeout) {
+	var elements = $(id+" li");
 	var showNext = function (index) {
 	    if (index >= elements.length) {
 	        index = 0;
 	    }
 	    elements.hide().slice(index, index+1).fadeIn();
-	    setTimeout(function(){ showNext(index+1) }, 5000);
+	    setTimeout(function(){ showNext(index+1) }, timeout);
 	}
 	showNext(Math.floor((Math.random() * elements.length) + 1));
 }
diff --git a/js/lang-xtend.js b/js/lang-xtend.js
index 2dea51c..66991e5 100644
--- a/js/lang-xtend.js
+++ b/js/lang-xtend.js
@@ -30,7 +30,7 @@
          // A character literal has single quotes on either side
          [PR['PR_STRING'],      /^'(?:[^\r\n\\']|\\(?:'|[^\r\n']+))'/],
          [PR['PR_LITERAL'],     /^'[a-zA-Z_$][\w$]*(?!['$\w])/],
-         [PR['PR_KEYWORD'],     /^(?:this|it|null|abstract|annotation|boolean|case|catch|char|class|create|def|default|do|double|enum|else|extends|extension|final|finally|float|for|if|implements|import|int|interface|long|new|override|package|private|protected|return|short|static|super|switch|throw|throws|try|typeof|val|var|void|while|FOR|ENDFOR|IF|ENDIF|ELSEIF|ELSE|BEFORE|AFTER|SEPARATOR)\b/],
+         [PR['PR_KEYWORD'],     /^(?:this|it|null|abstract|boolean|case|catch|char|class|create|def|default|dispatch|do|double|else|extends|extension|final|finally|float|for|if|implements|import|int|long|new|override|package|private|protected|return|short|static|super|switch|throw|throws|try|typeof|val|var|void|while|FOR|ENDFOR|IF|ENDIF|ELSEIF|BEFORE|AFTER|SEPARATOR)\b/],
          [PR['PR_LITERAL'],     /^(?:true|false|null|this|it)\b/],
          [PR['PR_LITERAL'],     /^(?:(?:0(?:[0-7]+|X[0-9A-F]+))L?|(?:(?:0|[1-9][0-9]*)(?:(?:\.[0-9]+)?(?:E[+\-]?[0-9]+)?F?|L?))|\\.[0-9]+(?:E[+\-]?[0-9]+)?F?)/i],
          // Treat upper camel case identifiers as types.
diff --git a/releasenotes.html b/releasenotes.html
index 04304eb..33d6f3b 100644
--- a/releasenotes.html
+++ b/releasenotes.html
@@ -3,10 +3,11 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtend - Release Notes</title>
+	<title>Xtext - Release Notes</title>
+	
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="Xtend is a statically typed programming language sitting on top of Java.">
+		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -16,19 +17,19 @@
 	<![endif]-->
 	
 	<!-- Le fav and touch icons -->
+	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
 	
-	<link rel="shortcut icon" href="/xtend/images/favicon.png">
-	
-	<link href="/xtend/css/bootstrap.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/shield-responsive.css" rel="stylesheet" type='text/css'>
-	<link href='/xtend/css/fonts.css' rel='stylesheet' type='text/css'>
-	<link href="/xtend/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
-	<link href="/xtend/css/prettify.css" type="text/css" rel="stylesheet"/>
-	<link href="/xtend/css/style.css" rel="stylesheet" type='text/css'>
-	
+	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
+	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
+	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
+	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
+	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
+	<!-- cover flow -->
+	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
 	<!--[if lt IE 9]>
-	<link href="css/iebugs.css" rel="stylesheet" type='text/css'>
+	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
 	<![endif]-->
 
 	<!-- BEGIN Cookie Consent
@@ -86,27 +87,35 @@
 
 
   <body>
+  
+    <header class="site-header">
 
-    <!-- Navbar -->
-  <div class="navbar navbar-fixed-top"
-    style="border-bottom: 1px solid #000;">
+  <!-- Navbar -->
+  <div class="navbar navbar-fixed-top">
     <div class="navbar-inner">
       <div class="container">
         <a class="btn btn-navbar" data-toggle="collapse"
           data-target=".nav-collapse"> <span class="icon-bar"></span> <span
           class="icon-bar"></span> <span class="icon-bar"></span>
-        </a> <a class="brand" href="/xtend/index.html"></a>
+        </a> <a class="brand" href="/Xtext/index.html"></a>
         <div class="nav-collapse collapse" style="height: 0px;">
           <ul class="nav">
-            <li ><a href="/xtend/download.html">Download</a></li>
-            <li ><a href="/xtend/documentation/index.html">Documentation</a></li>
-            <li ><a href="/xtend/community.html">Community</a></li>
-            <li ><a href="http://xtext.org">Xtext</a></li>
-            <li ><a href="http://www.eclipse.org">Eclipse.org</a></li>
+            <!--li ><a href="/Xtext/news.html">News</a></li-->
+            <li ><a href="/Xtext/download.html">Download</a></li>
+            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
+            <li ><a href="/Xtext/community.html">Community</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
+                <li><a href="https://typefox.io/trainings-2" target="_blank">TypeFox</a></li>
+              </ul>
+            </li>
+            <li ><a href="http://xtend-lang.org">Xtend</a></li>
           </ul>
-              <!--div class="btn-group pull-right">
-                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
-              </div-->
+          <!--div class="nav pull-right">
+            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
+          </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -114,6 +123,8 @@
   </div>
   <!-- Navbar End -->
 
+</header>
+
 
     <div id="page">  
 	<div class="inner">
@@ -123,114 +134,218 @@
 					<h3>Table of Contents</h3>
 					<ul>
 						
-							<li><p><a href="#/releasenotes/2018/05/23/version-2-14-0">Xtend 2.14.0 Release Notes &mdash; May 23, 2018</a></p>
+							<li><p><a href="#/releasenotes/2018/05/23/version-2-14-0">Xtext 2.14.0 Release Notes &mdash; May 23, 2018</a></p>
 						
 							<li><p><a href="#/releasenotes/2017/10/20/version-2-13-0">Xtext 2.13.0 Release Notes &mdash; Oct 20, 2017</a></p>
 						
-							<li><p><a href="#/releasenotes/2017/02/01/version-2-11-0">Xtend 2.11.0 Release Notes &mdash; Feb 1, 2017</a></p>
+							<li><p><a href="#/releasenotes/2017/05/25/version-2-12-0">Xtext 2.12.0 Release Notes &mdash; May 25, 2017</a></p>
 						
-							<li><p><a href="#/releasenotes/2015/12/01/version-2-9-0">Xtend 2.9.0 Release Notes &mdash; Dec 1, 2015</a></p>
+							<li><p><a href="#/releasenotes/2017/02/01/version-2-11-0">Xtext 2.11.0 Release Notes &mdash; Feb 1, 2017</a></p>
 						
-							<li><p><a href="#/releasenotes/2015/03/11/version-2-8-0">Xtend 2.8.0 Release Notes &mdash; Mar 11, 2015</a></p>
+							<li><p><a href="#/releasenotes/2016/05/25/version-2-10-0">Xtext 2.10.0 Release Notes &mdash; May 25, 2016</a></p>
 						
-							<li><p><a href="#/releasenotes/2014/09/02/version-2-7-0">Xtend 2.7.0 Release Notes &mdash; Sep 2, 2014</a></p>
+							<li><p><a href="#/releasenotes/2015/11/16/version-2-9-0">Xtext 2.9.0 Release Notes &mdash; Nov 16, 2015</a></p>
 						
-							<li><p><a href="#/releasenotes/2014/05/21/version-2-6-0">Xtend 2.6.0 Release Notes &mdash; May 21, 2014</a></p>
+							<li><p><a href="#/releasenotes/2015/03/11/version-2-8-0">Xtext 2.8.0 Release Notes &mdash; Mar 11, 2015</a></p>
 						
-							<li><p><a href="#/releasenotes/2013/12/11/version-2-5-0">Xtend 2.5.0 Release Notes &mdash; Dec 11, 2013</a></p>
+							<li><p><a href="#/releasenotes/2014/09/02/version-2-7-0">Xtext 2.7.0 Release Notes &mdash; Sep 2, 2014</a></p>
 						
-							<li><p><a href="#/releasenotes/2013/09/04/version-2-4-3">Xtend 2.4.3 Release Notes &mdash; Sep 4, 2013</a></p>
+							<li><p><a href="#/releasenotes/2014/05/21/version-2-6-0">Xtext 2.6.0 Release Notes &mdash; May 21, 2014</a></p>
+						
+							<li><p><a href="#/releasenotes/2013/12/11/version-2-5-0">Xtext 2.5.0 Release Notes &mdash; Dec 11, 2013</a></p>
 						
 					</ul>
 				</div>
 				
 				  <hr/>
 				  <section id="/releasenotes/2018/05/23/version-2-14-0">
-				  	<h1>Xtend 2.14.0 Release Notes<small>&nbsp;&nbsp;May 23, 2018</small></h1>
+				  	<h1>Xtext 2.14.0 Release Notes<small>&nbsp;&nbsp;May 23, 2018</small></h1>
 				    <br/>
-				    <h2 id="java-9-and-10-support">Java 9 and 10 Support</h2>
+				    <p>While the Xtext project has paid more attention on bug fixing for the past release, Xtext 2.14 is bringing a whole bunch of new features. This version is part of the Eclipse Photon (4.8) simultaneous release. An important focus was to keep up with the fast development pace of important technologies that Xtext is building on. Since its past release, Java 9 and 10 came out. Build technologies like Maven Tycho and Gradle were changed to support that, too. The Language Server Protocol is evolving rapidly. JUnit 5 is adopted by IDEs and build systems. And Xtext is now ready for all of them!</p>
 
-<p>Xtext and Xtend 2.14 are able to compile with and against Java 10. Here are a few notes on the Support</p>
+<h2 id="java-9-and-10-support">Java 9 and 10 Support</h2>
+
+<p>Xtext and Xtend 2.14 are able to compile with and against Java 9 &amp; 10. Here are a few notes on the support</p>
+
 <ul>
   <li>There is no native support for Java 9/10 module visibilities but we fall back to jdt/javac on that topic.</li>
+  <li>A current Maven version is required (tested with 3.5)</li>
+  <li>When using Gradle, version 4.7 is required at least. The wizard will create projects accordingly.</li>
+  <li>Java 9 requires Tycho 1.1 or newer, Java 10 requires Tycho 1.2</li>
+  <li>Java 9 requires Oxygen.1a at least, Java 10 requires Oxygen.3a. Eclipse Photon works fine for both.</li>
+  <li>Java 10 requires the org.objectweb.asm library in version 6.1.1</li>
 </ul>
 
-<h2 id="compiler">Compiler</h2>
+<p>For upgrading existing project use the New Project Wizard to create a project with the desired settings and compare build relevant files (MANIFEST.MF, build.gradle, pom.xml, *.target) with the existing projects.</p>
 
-<h3 id="avoid-generation-of-unnecessary-exception-variables">Avoid generation of unnecessary exception variables</h3>
+<h2 id="junit-5-support">JUnit 5 Support</h2>
 
-<p>When an exception variable is not used within a catch block, the transpiled Java code contained an unused variable.</p>
+<p>Xtext now supports the JUnit 5 framework for writing tests. JUnit 5.1 or newer is required.</p>
 
-<p>Considering the following Xtend snippet:</p>
+<p>For new projects the project wizard’s advanced page allows to select the desired JUnit version.</p>
 
-<pre><code>try {
-  ... some code ...
-} catch (SomeException e) {
-  // do nothing with "e"
-}
+<p><img src="/Xtext/images/releasenotes/2_14_wizard_junit5.gif" alt="" /></p>
+
+<p>Created test projects directly only depend on the JUnit 5 API artifact</p>
+
+<pre><code>org.junit.jupiter:junit-jupiter-api:5.0.0
 </code></pre>
 
-<p>The catch block was transpiled to:</p>
+<p>Additional dependencies are configured by the JUnit Library container. This lowers the coupling to concrete JUnit versions and the test engine used. For example, Eclipse Photon is using JUnit 5.1, while Eclipse Oxygen is using JUnit 5.0. Furthermore, the execution of tests in build systems is using the test engines provided by the build system’s test plugins.</p>
 
-<pre><code>catch (final Throwable _t) {
-  if (_t instanceof SomeException) {
-    final SomeException e = (SomeException)_t;
-  } else {
-    throw Exceptions.sneakyThrow(_t);
-  }
-}
-</code></pre>
+<h2 id="new-grammar-annotations">New Grammar Annotations</h2>
 
-<p>Xtend will now avoid the generation of the variable when it is not used within the catch block:</p>
+<p>The Xtext Grammar language supports the following additional annotations for parser rules:</p>
 
-<pre><code>catch (final Throwable _t) {
-  if (_t instanceof SomeException) {
-  } else {
-    throw Exceptions.sneakyThrow(_t);
-  }
-}
-</code></pre>
+<h3 id="deprecated">@Deprecated</h3>
 
-<h3 id="multi-catch-support">Multi-Catch Support</h3>
-<p>With Xtend 2.14 the exception handling supports multi-catch clauses.</p>
+<p><img src="/Xtext/images/releasenotes/2_14_annotation_deprecated.png" alt="" /></p>
 
-<p><img src="/xtend/images/releasenotes/2_14_0_xtend-multi-catch-new.png" alt="" /></p>
+<p>This annotation marks a rule to be deprecated. Issue markers with are produced where a deprecated rule is used. By default the severity of issue is <em>Warning</em>. The severity level can be configured in the preferences. This feature will help you to do smooth langauage evolution of the time by informing your users about deprecated parts.</p>
 
-<p>The multi-catch clause can handle an arbitrary number of exceptions separated by “|”. <br />
-Within the catch block, the intersection exception type of the exceptions caught by the multi-catch statement is available for further processing.<br />
-Multi-catch support leads to semantically rich and more concise catch statements.</p>
+<p><img src="/Xtext/images/releasenotes/2_14_annotation_preference.png" alt="" /></p>
 
-<h3 id="multi-type-guard-support">Multi-Type Guard Support</h3>
-<p>The type guard feature in switch statements is enhanced by support for testing multiple types in one case statement.</p>
+<h3 id="final">@Final</h3>
 
-<p><img src="/xtend/images/releasenotes/2_14_0_xtend-multi-type-guard-new.png" alt="" /></p>
+<p><img src="/Xtext/images/releasenotes/2_14_annotation_final.png" alt="" /></p>
 
-<p>As for the multi-catch statements the different types handled by a single case statement are separated by “|”.<br />
-The intersection type of the types specified in the multi-type guard statement is available within the case block.</p>
+<p>A rule marked with <code>@Final</code> cannot be overridden.</p>
 
-<h2 id="unnecessary-modifiers-validation">Unnecessary Modifiers Validation</h2>
+<h3 id="exported">@Exported</h3>
 
-<p>Xtend detects unnecessary modifiers in code, e.g. the <code>public</code> modifier on types. By default issues of this kind are raised as warnings, the severity level is configurable.</p>
-
-<p><img src="/xtend/images/releasenotes/2_14_unnecessary_modifier.png" alt="" /></p>
-
-<p>For convenient resolution of these issues a quick fix has been added.</p>
+<p>As a default Xtext exports all elements to the index that have a name. For customizing this behaviour you need to create a custom IDefaultResourceDescriptionStrategy manually.<br />
+With <code>@Exported</code> it can be customized on grammar level, which element types are exported to the index. The customization takes effect when at least one rule in a grammar is annotated with <code>@Exported</code>. By doing that you can easily manage visibility of elements and safe memory.</p>
 
 <h2 id="eclipse-integration">Eclipse Integration</h2>
 
-<h3 id="organize-imports">Organize Imports</h3>
+<h3 id="create-action-quickfix">Create Action Quickfix</h3>
 
-<p>The Organize Imports feature has been improved to consider inner types properly.</p>
+<p>Rules that can be consumed without object instantiation usually require a <em>Create Action</em>. A typical example is when a rule defines an optional assignment. Xtext reports this as a warning in the grammar file.</p>
+
+<p>For problems of this kind a new <em>quickfix</em> has been added that inserts the <em>Create Action</em> at the proper place of the parser rule.</p>
+
+<p><img src="/Xtext/images/releasenotes/2_14_create-action.gif" alt="" /></p>
+
+<h3 id="code-mining-support">Code Mining Support</h3>
+
+<p>Eclipse Photon (4.8) adds a new API called <em>Code Mining</em>. With it text editors can inline additional semantic information into the text, which is not part of the text itself. A useful example to leverage this is to display names of inferred types, parameter names of a called function etc.</p>
+
+<p>Xtext adds a new bundle <code>org.eclipse.xtext.ui.codemining</code> which is offering an API for usage of Code Mining with Xtext. The code generator fragment <code>org.eclipse.xtext.xtext.generator.ui.codemining.CodeMiningFragment</code> can be added to the generator workflow to create a stub implementation and provide all dependencies and bindings for the use of this API.</p>
+
+<p>An example implementation has been added to the Domainmodel Example DSL. To learn more about the usage of this API install the example from the File menu and look up the <code>DomainmodelCodeMiningProvider</code> class.</p>
+
+<p><img src="/Xtext/images/releasenotes/2_14_domainmodel-codemining.gif" alt="" /></p>
+
+<h3 id="new-project-and-file-wizard">New Project and File Wizard</h3>
+
+<p>With two simple switches you can turn on the generation of a New Project Wizard and a New File Wizard for your language.</p>
+
+<p>These wizards are based on flexible templates to generate one or many projects with any number of files. You can enable the generation from your .mwe2 file with two simple switches:</p>
+
+<pre><code>language = StandardLanguage {
+    name = "org.xtext.example.mydsl.MyDsl"
+    fileExtensions = "mydsl"
+        
+    fileWizard = {
+        generate = true
+    }
+    projectWizard = {
+        generate = true
+    }
+}
+</code></pre>
+
+<p>The wizard to create projects allows to select from a number of templates and creates one or, in certain situations helpful, even many projects.</p>
+
+<p><img src="/Xtext/images/releasenotes/2_14_new-file-wizard.png" alt="" /></p>
+
+<p>The wizard to create files is more simple in its basic form and skips the template selection if there is only one file template.</p>
+
+<p><img src="/Xtext/images/releasenotes/2_14_new-project-wizard-template-selection.png" alt="" /></p>
+
+<p>In case there are many templates the wizard gets a second page to configure the parameter whereas on the first page a combo box to select the template appears.</p>
+
+<p>The UI for the parameters of the templates as well as the templates them self are defined in code with a concise API. You do not need to fiddle around with SWT widgets and get most UI stuff for free. The templates are generated in the UI project of your language. You can adapt the generated templates, add new ones or contribute new template providers through extension points.</p>
+
+<p>If you generate the wizards for an existing project the <code>plugin.xml</code> is not regenerated to not risk loosing manual changes you might have applied. Instead a <code>plugin.xml_gen</code> is created. You have to merge the generated extensions to your <code>plugin.xml</code> manually.</p>
+
+<h3 id="console-icon">Console Icon</h3>
+
+<p>The Xtext icon has been added for the Xtext console:</p>
+
+<p><img src="/Xtext/images/releasenotes/2_14_console-icon.png" alt="" /></p>
+
+<h2 id="language-server-support">Language Server Support</h2>
+
+<p>Xtext has been upgraded to LSP4J version 0.4.0. This includes the following features:</p>
+
+<ul>
+  <li>Implementation of the Language Server Protocol 3.7.0</li>
+  <li>Implementation of the VS Code Debug Protocol 1.25.0</li>
+  <li>Support multiple local and remote services</li>
+  <li>Improved error handling</li>
+</ul>
+
+<h2 id="emf-support">EMF Support</h2>
+
+<p>With EMF 2.14 a new registry <code>EAnnotationValidator.Registry.INSTANCE</code>, which had to be considered in Xtext’s testing support for resetting.</p>
+
+<p>EMF 2.8 <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=367569#c7">introduced</a> the concept <code>ResourceLocator</code> in <code>ResourceSet</code>s. Xtext’s specialized implementation <code>XtextResourceSet</code> did not support that so far and has been extended now.</p>
+
+<h2 id="change-serializer--rename-refactoring">Change Serializer &amp; Rename Refactoring</h2>
+
+<p>The past <a href="/Xtext/releasenotes.html#/releasenotes/2017/10/20/version-2-13-0">release 2.13</a> introduced a new API for EMF Model Manipulation and an improved rename refactoring based on the new <code>IChangeSerializer</code> API.</p>
+
+<p>These new features are still incubating. Several issues that were identified by the adoption of the features have been solved.</p>
+
+<h2 id="performance">Performance</h2>
+
+<h3 id="output-configurations-cache">Output Configurations Cache</h3>
+
+<p>A performance bottleneck was <a href="https://github.com/eclipse/xtext-eclipse/issues/535">discovered</a> in the access to <code>IOutputConfiguration</code>s in builder participants. The problem depends on the amount of files produced by code generators.</p>
+
+<p>A cache was introduced in class <code>BuilderParticipant</code> to solve the issue.</p>
+
+<h3 id="semantic-highlighting">Semantic Highlighting</h3>
+
+<p>Computation of semantic highlighting <a href="https://github.com/eclipse/xtext-eclipse/issues/347">was performed twice</a>. This was fixed and should improve editing experience especially for larger files with intensive use of semantic highlighting, for example like the Xtend language.</p>
+
+<h3 id="queuedbuilddata">QueuedBuildData</h3>
+
+<p>A bottleneck in class <code>QueuedBuildData</code> has been <a href="https://github.com/eclipse/xtext-eclipse/issues/40">found</a> that affects the build time for a large number of resources. The build time has been improved for this scenario.</p>
+
+<h2 id="execution-environment">Execution Environment</h2>
+
+<p>Xtext 2.14 comes with the following requirements for the execution environment:</p>
+
+<ul>
+  <li>Java: 1.8, 9 or 10</li>
+  <li>Eclipse Luna (4.4) or newer</li>
+  <li>EMF 2.10 or newer</li>
+  <li>Guice 3.0</li>
+  <li>Tycho 1.1, 1.2 (Java 10 or JUnit 5)</li>
+  <li>JUnit 4.12 or 5.1</li>
+</ul>
+
+<p>Note that bundle <code>org.eclipse.xtext.xbase.lib</code> was compiled with Java 1.8 now, while being compatible to 1.6 in earlier versions.</p>
 
 <h2 id="links">Links</h2>
 
+<p>More detailed information on some topics have been written in blog posts:</p>
+
 <ul>
-  <li><a href="https://blogs.itemis.com/en/xtend-2-14-unnecessary-modifiers-validation">“Unnecessary modifiers validation” blog post</a></li>
+  <li><a href="https://blogs.itemis.com/en/xtext-2.14-adds-support-for-junit-5">“Xtext 2.14 adds support for JUnit 5”</a></li>
+  <li><a href="https://blogs.itemis.com/en/code-mining-support-in-xtext">“Code Mining Support in Xtext”</a></li>
+  <li><a href="https://blogs.itemis.com/en/generating-a-new-project-wizard-with-xtext-2.14">“Generating a new project wizard with Xtext 2.14”</a></li>
+  <li><a href="https://blogs.itemis.com/en/new-file-wizard-easy-to-generate-with-xtext-2.14">“New File Wizard – easy to generate with Xtext 2.14”</a></li>
+  <li><a href="https://blogs.itemis.com/de/new-project-wizard-einfach-mit-xtext-2-14-generieren">“New Project Wizard: einfach mit Xtext 2.14 generieren”</a> (German)</li>
+  <li><a href="https://blogs.itemis.com/de/new-file-wizard-einfach-mit-xtext-2.14-generieren">“Erzeugen des New File Wizards”</a> (German)</li>
+  <li><a href="https://github.com/eclipse/lsp4j/blob/master/CHANGELOG.md">LSP4J Changelog</a></li>
 </ul>
 
 <h2 id="fixed-issues">Fixed Issues</h2>
 
-<p>As in every release we are eagerly hunting down the bugs, review and integrate lots of contributions. 88 issues, 62 Pull Requests and 20 Bugzilla tickets have made it into this release. For further details please refer to the following lists:</p>
+<p>As in every release we are eagerly hunting down the bugs, review and integrate lots of contributions. 88 issues, 62 Pull Requests and 60 Bugzilla tickets have made it into this release. For further details please refer to the following lists:</p>
 
 <ul>
   <li>
@@ -251,9 +366,202 @@
 				  <section id="/releasenotes/2017/10/20/version-2-13-0">
 				  	<h1>Xtext 2.13.0 Release Notes<small>&nbsp;&nbsp;Oct 20, 2017</small></h1>
 				    <br/>
-				    <h3 id="xtend-213-is-out">Xtend 2.13 is out</h3>
+				    <h2 id="language-server-support">Language Server Support</h2>
 
-<p>Xtend 2.13 is mainly a bugfix release.</p>
+<h3 id="eclipse-new-project-wizard-language-server-build">Eclipse New Project Wizard: Language Server Build</h3>
+
+<p>The New Project Wizard allows now to build an executable distribution of language server. On the advanced page a new option was added which is enabled when a Build System was selected. The option allows the selection of a distribution type:</p>
+
+<ul>
+  <li><strong>Regular</strong>: A batch script is created that is used to start the server. The DSL jars and all of its runtime dependencies are copied to the output folder.</li>
+  <li><strong>Fat Jar</strong>: The language server is packaged in a single executable jar.</li>
+</ul>
+
+<p>Both Gradle and Maven are supported. When activated, the build script of the language’s Generic IDE project is extended and the language server is packaged to the project’s build</p>
+
+<p><img src="/Xtext/images/releasenotes/2_13_project-wizard-ls.png" alt="" /></p>
+
+<h2 id="eclipse-integration">Eclipse Integration</h2>
+
+<h3 id="configuration-error-detection">Configuration Error Detection</h3>
+
+<p>Invalid combinations of bundles are a frequent source of errors. This can be caused by an invalid mixture of Xtext’s UI and runtime plugins, or by DSL plugins developed with a different version of Xtext than used in the environment where it fails.</p>
+
+<p>Although there can’t be done anything to get the plugins working on an invalid environment, the resulting failure messages were not good for the user, leaving an impression of an unstable framework.</p>
+
+<p>When running in an error during the initial creation of Guice injectors in the DSL’s UI or Xtext’s Shared UI bundle, the error is catched and an analysis of the runtime environment is included in the failure message. This allows better analysis of the root cause.</p>
+
+<h3 id="multi-quickfixes">Multi-Quickfixes</h3>
+
+<p>These are quickfixes that allow to be applied to multiple markers at once.</p>
+
+<p>TBD</p>
+
+<h3 id="better-cancellation-in-refactorings">Better Cancellation in Refactorings</h3>
+
+<p>You can how hit the cancel dialog in refactorings and it will actually cancel at the next opportunity and not at the end only.</p>
+
+<h3 id="content-type-descriptor">Content Type Descriptor</h3>
+
+<p>Xtext UI projects provide a Content Type Descriptor by contributing to the <a href="https://help.eclipse.org/oxygen/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fruntime_content_contributing.htm"><code>org.eclipse.core.contenttype.contentTypes</code> extension point</a> to the <code>plugin.xml</code> file. This is affecting performance on text searches in Eclipse, since Eclipse can decide that a DSL file has no binary content based on the content type’s base type. (<a href="https://github.com/eclipse/xtext-eclipse/issues/379">xtext-eclipse/issues/379</a>)</p>
+
+<pre><code>&lt;extension point="org.eclipse.core.contenttype.contentTypes"&gt;
+	&lt;content-type
+		base-type="org.eclipse.core.runtime.text"
+		file-extensions="mydsl"
+		id="org.eclipse.xtext.mydsl.MyDSL.contenttype"
+		name="MyDSL File"
+		priority="normal"&gt;
+	&lt;/content-type&gt;
+&lt;/extension&gt;
+</code></pre>
+
+<h2 id="new-api">New API</h2>
+
+<h3 id="emf-model-manipulation-api-incubating">EMF Model Manipulation API (incubating)</h3>
+
+<p>The <code>IChangeSerializer</code> is a new API to listen to changes that are made to the EMF model of an XtextResource and serialize them back to the document’s text. It has a number of benefits to the old <code>XtextDocument.modify()</code> approach:</p>
+
+<ul>
+  <li>Direct integration with the formatter, such that changes are automatically nicely formatted.</li>
+  <li>Minimum text region changes resulting in less noise.</li>
+  <li>Many points to hook into, e.g. for automatic update of an import section.</li>
+  <li>More ways to optimize for a specific language and to tune performance.</li>
+  <li>Independence from Eclipse-UI concepts like the <code>Document</code>. This makes it reusable in languages server implementations.</li>
+</ul>
+
+<p>You can use the <code>IChangeSerializer</code> for refactorings, semantic quickfixes, code lens etc. It still has a few limitations, e.g. it does not work with derived state models, that’s why we keep it provisional for now.</p>
+
+<p>Nevertheless, we have added the following new features based on it:</p>
+
+<h3 id="rename-participants-for-eclipse-file-operations">Rename Participants for Eclipse File Operations</h3>
+
+<p>Some languages tie the model file name to the content, like the package declaration in Java. For such cases you might want to participate in operations on files or directories, like move, rename or paste, to adapt your models automatically. Based on the new <code>IChangeSerializer</code> we have implemented some generic file refactoring participants. You will get notified of such changes to react appropriately by registering your own <code>IResourceRelocationStrategy</code>.</p>
+
+<pre><code>&lt;extension point="org.eclipse.xtext.ui.resourceRelocationStrategy"&gt;
+   &lt;strategy class="mydsl.MydslExecutableExtensionFactory:mydsl.MydslResourceRelocationStrategy"&gt;
+   &lt;/strategy&gt;
+&lt;/extension&gt;
+</code></pre>
+
+<h3 id="alternative-rename-refactoring-for-xtext">Alternative Rename Refactoring for Xtext</h3>
+
+<p>By enabling <code>useChangeSerializer</code> flag in the workflow of your language</p>
+<pre><code>Workflow {
+  component = XtextGenerator {
+    ...
+    language = StandardLanguage {
+      ...
+      renameRefactoring = {
+        useChangeSerializer = true
+      ...
+</code></pre>
+<p>you will use an new, alternative rename refactoring for Eclipse based on the <code>IChangeSerializer</code>. This flag will also generate the binding for the <code>IRenameService</code> and thereby enable rename refactoring on your language server.</p>
+
+<h3 id="xbase-library-orgeclipsextextxbaselib">Xbase Library (<code>org.eclipse.xtext.xbase.lib</code>)</h3>
+
+<h4 id="no-arg-overloads-to-all-mutable-collection-literals">No-arg overloads to all mutable collection literals</h4>
+
+<p>Class <code>CollectionLiterals</code> was extended by no-arg methods for all mutable collection literals:</p>
+<ul>
+  <li><code>newArrayList()</code></li>
+  <li><code>newHashMap()</code></li>
+  <li><code>newHashSet()</code></li>
+  <li><code>newLinkedHashMap()</code></li>
+  <li><code>newLinkedHashSet()</code></li>
+  <li><code>newLinkedList()</code></li>
+</ul>
+
+<p>Xtext’s code base was refactored to use these methods where appropriate. As a consequence Xtext requires at least version 2.13 of <code>org.eclipse.xtext.xbase.lib</code>. Therefore bundle manifests were refactored to constraint the library bundle’s lower version. New projects will automatically add the version constraint to manifests.</p>
+
+<h4 id="flatmap-extension-method">flatMap extension method</h4>
+
+<p>A new convenience method <code>flatMap</code> has been added to <code>IterableExtensions</code> and <code>IteratorExtensions</code>, which combines <code>map</code> and <code>flatten</code>.</p>
+
+<pre><code>@FinalFieldsConstructor
+@Accessors
+class Planet {
+	final String name
+	final List&lt;Moon&gt; moons
+}
+
+@FinalFieldsConstructor
+@Accessors
+class Moon {
+	final String name
+}
+
+
+class Planets {
+	def static void main (String[] args) {
+		
+		val Iterable&lt;Planet&gt; planets = #[
+			new Planet("Earth", #[new Moon ("Moon")]),
+			new Planet("Mars", #[new Moon ("Phobos"), new Moon("Deimos")])
+		]
+		
+		val moonNames_old = planets.map[moons].flatten.map[name]
+		val moonNames_new = planets.flatMap[moons].map[name]
+	}
+}
+</code></pre>
+
+<h2 id="tracing">Tracing</h2>
+
+<p>Tracing can now be used for debugging in generated Java code as well. The <code>@Traced</code> annotation now takes optionally a <code>useForDebugging=true</code>. The <code>@TracedAccessors</code> are now adds to the <code>._&lt;feature&gt;()</code> extension method a <code>._&lt;feature&gt;(useForDebugging)</code> extension method.</p>
+
+<h2 id="refactoring">Refactoring</h2>
+
+<h3 id="jdt-dependency-reduction">JDT Dependency Reduction</h3>
+
+<p>Xtext languages can be deployed in environments without JDT UI. In some use cases it was detected that this can still lead to runtime errors due to  (<code>NoClassDefFoundError</code>). Dependencies in the following bundles have been resolved:</p>
+
+<ul>
+  <li><code>org.eclipse.xtext.builder</code> (<a href="https://github.com/eclipse/xtext-eclipse/issues/386">issue#386</a>)</li>
+  <li><code>org.eclipse.xtext.xbase.ui</code> (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=509630">bug#509630</a>)</li>
+</ul>
+
+<p>We reduced usage of internal API which is subject for removal in JDT. Since older Xtext versions rely on this API, the API is kept by the JDT team for backwards compatibility of Xtext. (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=525462">bug#525462</a>)</p>
+
+<h3 id="improved-support-for-indentation-based-languages">Improved Support for Indentation Based Languages</h3>
+
+<p>Token placement for INDENT / DEDENT tokens have been improved. This improves content assist for indentation based languages. (<a href="https://github.com/eclipse/xtext-core/pull/366">issue#366</a>)</p>
+
+<h3 id="new-generator-infrastructure">New Generator Infrastructure</h3>
+
+<p>Xtext 2.9 introduced a <a href="version-2-9-0">new generator infrastructure</a>. While new projects created with Xtext and the main languages in Xtext already used this generator, there were still some languages, especially test languages, that still used the deprecated old infrastructure. All languages are now migrated to the new generator.</p>
+
+<h2 id="an-eye-on-quality">An Eye on Quality</h2>
+
+<p>With every release we are working hard on fixing as many bugs as possible. Besides our Bugtrackers Eclipse Bugzilla and GitHub Issues the <a href="https://www.codetrails.com/error-analytics/">Automatic Error Reporting System</a> at Eclipse (AERI) is an incredible valuable source of information for us. It uncovers real problems by real users, and has made error reporting to Eclipse a no-brainer.</p>
+
+<p>As Xtext is a complex framework with an incredible flexibility, much can go wrong. Often these errors indicate ways of usage which we could not predict, or they show problems in custom DSLs. Sometimes they uncover also errors in code that we use. We are actively visiting the reports we get into EARI, with a focus on frequently occuring events and new ones.</p>
+
+<p>The Xtext team is proud that this continuous effort finally pays off. For the first time ever, we had several weeks with no new problem report. And fighting against the existing issues no a clear burn-down curve (see the Incidents Timeline). From all problems reported to AERI, we have just ~12% open, and the most frequent and urgent ones are solved.</p>
+
+<p><img src="/Xtext/images/releasenotes/2_13_aeri_problem_status.png" alt="" /><br />
+<img src="/Xtext/images/releasenotes/2_13_aeri_problem_resolution.png" alt="" /><br />
+<img src="/Xtext/images/releasenotes/2_13_aeri_incidents_timeline.png" alt="" /></p>
+
+<h2 id="improved-developer-contribution-support">Improved Developer Contribution Support</h2>
+
+<p>Setting up a developer workspace has never been so easy! We have reviewed and updated our Oomph Setup which allows you to create an Eclipse development environment for Xtext with a few clicks. Just get the <a href="https://www.eclipse.org/downloads/">Eclipse Installer</a>, go to Advanced Mode and select the Xtext subprojects you are working with. Let the Installer do the rest of the work while getting a fresh coffee.</p>
+
+<h3 id="execution-environment">Execution Environment</h3>
+
+<p>Minimal requirements are:</p>
+<ul>
+  <li>Java 8</li>
+  <li>Eclipse Luna</li>
+  <li>EMF 2.10</li>
+  <li>Guice 3.0</li>
+</ul>
+
+<p>Xtext has been tested also on Eclipse Oxygen.1a and Eclipse Photon M2.</p>
+
+<h2 id="some-words-on-java-9">Some words on Java 9</h2>
+
+<p>Java 9 Support in Eclipse Oxygen 1a and Xtext 2.13 is not yet in a perfect state. To be able to run mwe workflows you need either to remove <code>org.objectweb.asm</code> from the mwe classpath (adapting manifest or build.properties) or install ASM 6.0 from the latest Eclipse Orbit repositories. The Compilation of Xtext projects with Java 9 is terrible slow due to a know <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=526209">bug</a> in JDT. So using Xtext 2.13 and Java 9 in production should be considered thrice and is not recommended. Setting the compiler level to 1.8 mitigates the performance issue slightly.</p>
 
 <h2 id="fixed-issues">Fixed Issues</h2>
 
@@ -275,28 +583,134 @@
 				  </section>
 				
 				  <hr/>
-				  <section id="/releasenotes/2017/02/01/version-2-11-0">
-				  	<h1>Xtend 2.11.0 Release Notes<small>&nbsp;&nbsp;Feb 1, 2017</small></h1>
+				  <section id="/releasenotes/2017/05/25/version-2-12-0">
+				  	<h1>Xtext 2.12.0 Release Notes<small>&nbsp;&nbsp;May 25, 2017</small></h1>
 				    <br/>
-				    <p>Xtend version 2.11 comes with a new source repository and plenty of improvements and bug fixes.</p>
+				    <p>Xtext 2.12.0 brings several bug fixes and a new API for tracing generated code.</p>
 
-<h2 id="new-source-repository">New Source Repository</h2>
+<h2 id="new-tracing-api-for-generators">New Tracing API for Generators</h2>
 
-<p>The Xtend code base has been moved to a dedicated repository <a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a> in the course of the restructuring of Xtext (see the <a href="https://www.eclipse.org/Xtext/releasenotes.html">Xtext 2.11.0 Release Notes</a>).</p>
+<p>The new API in the <code>org.eclipse.xtext.generator.trace</code> package allows to generate text files along with trace files. These trace files can be used by generic UI such as the “Open Generated File” action as well as domain-specific features such as debugging. It’s very easy to add such tracing information to a code generator, e.g. with <a href="https://www.eclipse.org/xtend/documentation/203_xtend_expressions.html#templates">Xtend templates</a>:</p>
 
-<h2 id="the-xtend-language-and-library">The Xtend Language and Library</h2>
+<pre><code class="language-xtend">class MyDslGenerator extends AbstractGenerator {
+	
+	@TracedAccessors(MyDslFactory)
+	static class MyDslTraceExtensions {}
+	
+	@Inject extension MyDslTraceExtensions
 
-<h3 id="string-concatenation-performance-improvements">String Concatenation Performance Improvements</h3>
+	override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) {
+		val m = resource.contents.head as Model
+		
+		fsa.generateTracedFile("foo/Bar.txt", m, '''
+			// generated
+			«FOR c : m.types»
+				«generateClass(c)»
+			«ENDFOR»
+		''')
+	}
+	
+	@Traced def generateClass(ClassDeclaration it) '''
+		class «_name» {
+			«FOR m : members»
+				«generateMember(m)»
+			«ENDFOR»
+		}
+	'''
+	
+	@Traced def dispatch generateMember(Operation it) '''
+		«_name»(«FOR it : parameter»«_name» : «_type[name.name]»«ENDFOR») : «_type[name.name]»
+	'''
+	
+	@Traced def dispatch generateMember(Property it) '''
+		«_name» : «_type[name.name]»
+	'''
+	
+}
+</code></pre>
 
-<p>The performance of string concatenation, e.g. as used for rich strings, <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=427909">has been improved</a>. This change has important consequences for working with Xtend: you should make sure that you use consistent versions of Xtend in your host IDE and your target platform in order to avoid <a href="https://github.com/eclipse/xtext-xtend/issues/122">compatibility problems</a>.</p>
+<p>Here <code>_name</code> and <code>_type</code> are <a href="https://www.eclipse.org/xtend/documentation/202_xtend_classes_members.html#extension-methods">extension methods</a> that are generated for the metamodel of the specific language. They generate text and trace it to the respective part of the DSL source. You can find the <a href="https://github.com/TypeFox/tracing_codegen">full example project on GitHub</a>.</p>
 
-<h3 id="improved-compiler">Improved Compiler</h3>
+<h2 id="bug-lists">Bug Lists</h2>
 
-<p>The Java code produced by the Xtend compiler is now <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=492072">less verbose and more readable</a>. For many situations Xtend does not produce synthetic variables anymore.</p>
+<ul>
+  <li>
+    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3ARelease_2.12+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
+  </li>
+  <li>
+    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3ARelease_2.12+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
+  </li>
+</ul>
+
+				  </section>
+				
+				  <hr/>
+				  <section id="/releasenotes/2017/02/01/version-2-11-0">
+				  	<h1>Xtext 2.11.0 Release Notes<small>&nbsp;&nbsp;Feb 1, 2017</small></h1>
+				    <br/>
+				    <p>Version 2.11.0 is the first release of Xtext after its big internal restructuring. The successful core of Xtext is used in many applications and projects around the world, as a result our main focus for 2.11 has been keeping the high quality and stability of the project while setting the course for a more sustainable future.</p>
+
+<h2 id="restructuring-and-build">Restructuring and Build</h2>
+
+<p>Xtext and Xtend used to be one big Git repository containing all sources for Eclipse, IDEA, Web integration etc. As of 2.11, we split that into multiple smaller repository, such that you can choose yourself which ones you need. These are</p>
+
+<ul>
+  <li><a href="https://github.com/eclipse/xtext-core">xtext-core</a>: The core framework, <a href="https://github.com/Microsoft/vscode-languageserver-protocol">Language Server</a> support</li>
+  <li><a href="https://github.com/eclipse/xtext-lib">xtext-lib</a>: Libraries for <a href="/Xtext/documentation/305_xbase.html">Xbase</a> and <a href="http://www.xtend-lang.org">Xtend</a></li>
+  <li><a href="https://github.com/eclipse/xtext-extras">xtext-extras</a>: Additional editor-independent features, mostly Java support</li>
+  <li><a href="https://github.com/eclipse/xtext-eclipse">xtext-eclipse</a>: Plug-ins for <a href="http://eclipse.org">Eclipse</a></li>
+  <li><a href="https://github.com/eclipse/xtext-idea">xtext-idea</a>: Plug-ins for <a href="https://www.jetbrains.com/idea/">IntelliJ IDEA</a></li>
+  <li><a href="https://github.com/eclipse/xtext-web">xtext-web</a>: Support for <a href="http://eclipse.org/orion/">Orion</a>, <a href="http://ace.c9.io">Ace</a> and <a href="https://codemirror.net">CodeMirror</a></li>
+  <li><a href="https://github.com/eclipse/xtext-maven">xtext-maven</a>: Support for <a href="https://maven.apache.org">Maven</a></li>
+  <li><a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a>: The <a href="http://www.xtend-lang.org">Xtend</a> language</li>
+  <li><a href="https://github.com/eclipse/xtext-umbrella">xtext-umbrella</a>: Common Eclipse features and P2 update sites</li>
+</ul>
+
+<p>In addition to that, we use Gradle now to build all non-Eclipse artifacts and Maven/Tycho for the Eclipse plug-ins. We have also set up a very sophisticated staged Jenkins build that allows to build from individual branches as well.</p>
+
+<h2 id="language-server-protocol">Language Server Protocol</h2>
+
+<p>With 2.11 the Xtext project supports the <a href="https://github.com/Microsoft/language-server-protocol">language server protocol</a> (LSP), which will allow users to host their languages in many different editors. So far LSP support for <a href="https://code.visualstudio.com/">VS Code</a>, the Eclipse IDE, <a href="https://www.eclipse.org/che/">Eclipse Che</a>, <a href="https://orionhub.org">Eclipse Orion</a>, and Emacs exists. Furthermore Microsoft’s Monaco editor provides support and can be integrated in any JavaScript application.</p>
+
+<p>The LSP support in Xtext v2.11 is marked as provisional to leave open the possibility to further enhance the architecture and API. That said it is known to be used in commercial products already. Also in the long term the LSP support might replace the native <a href="/Xtext/documentation/330_web_support.html">web-editor support</a>.</p>
+
+<p><img src="/Xtext/images/releasenotes/2_11_vscode_example.png" alt="" /></p>
+
+<h2 id="idea-support">IDEA Support</h2>
+
+<p>The IntelliJ IDEA integration of Xtext is currently lacking contributors. Therefore, unfortunately, the IDEA support has <strong>not</strong> been part of the 2.11 release. <a href="https://github.com/eclipse/xtext-idea/issues">Contributions are very welcome</a>!</p>
+
+<h2 id="important-changes">Important Changes</h2>
+
+<h3 id="execution-environment">Execution Environment</h3>
+
+<p>All Xtext plug-ins now require JavaSE-1.8 as execution environment. The minimal supported target platform is Eclipse Luna.</p>
+
+<h3 id="testing-projects">Testing Projects</h3>
+
+<p>There are new projects <code>org.eclipse.xtext.testing</code> for general testing utility and <code>org.eclipse.xtext.xbase.testing</code> for testing Xbase languages. These projects contain the platform-independent code from <code>org.eclipse.xtext.junit4</code> and <code>org.eclipse.xtext.xbase.junit</code>, respectively. The classes that have been copied to the new <code>testing</code> projects are now marked as deprecated in the old <code>junit</code> projects, but those can still be used for testing Eclipse UI features.</p>
+
+<h3 id="ide-guice-module">IDE Guice Module</h3>
+
+<p>Xtext uses <a href="/Xtext/documentation/302_configuration.html#dependency-injection">dependency injection with Guice</a> for language-specific configuration. There are separated hierarchies of Guice modules that aim at different integration platforms: <a href="https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext/src/org/eclipse/xtext/service/DefaultRuntimeModule.java">Runtime</a> (core services used by all language integrations), <a href="https://github.com/eclipse/xtext-eclipse/blob/master/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/DefaultUiModule.java">Eclipse</a>, <a href="https://github.com/eclipse/xtext-idea/blob/master/org.eclipse.xtext.idea/src/org/eclipse/xtext/idea/DefaultIdeaModule.xtend">IDEA</a>, and <a href="https://github.com/eclipse/xtext-web/blob/master/org.eclipse.xtext.web/src/main/java/org/eclipse/xtext/web/server/DefaultWebModule.xtend">Web</a>. The 2.11 release introduces a new <a href="https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/DefaultIdeModule.xtend">IDE</a> module hierarchy, which is used for generic editor and IDE features. This new module is employed by the <a href="/Xtext/documentation/330_web_support.html">web-editor support</a> and the LSP support, but not by the Eclipse and IDEA integrations.</p>
+
+<p>The new IDE module brings reusability of many language-specific services, but the price for this is some API breakage. If you are already using the web-editor support, you’ll need to make a few changes to your language configuration:</p>
+
+<ul>
+  <li>Remove constructors from <code>&lt;Language Name&gt;WebModule</code>. ExecutorServices are now managed by the <a href="https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/ExecutorServiceProvider.xtend">ExecutorServiceProvider</a> and disposed by the <a href="https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.util/src/org/eclipse/xtext/util/DisposableRegistry.xtend">DisposableRegistry</a>.</li>
+  <li>Move custom bindings for generic IDE services from <code>&lt;Language Name&gt;WebModule</code> to the new <code>&lt;Language Name&gt;IdeModule</code> (e.g. content assist).</li>
+  <li>Fix <code>&lt;Language Name&gt;WebSetup</code> and <code>&lt;Language Name&gt;Servlet</code>; if unsure how to do that, delete them, re-run the language generator workflow, and reapply any customizations you made.</li>
+</ul>
+
+<h2 id="xbase-features">Xbase Features</h2>
+
+<h3 id="improved-xbase-compiler">Improved Xbase Compiler</h3>
+
+<p>The Java code produced by the Xbase compiler is now <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=492072">less verbose and more readable</a>. For many situations Xbase does not produce synthetic variables anymore.</p>
 
 <p>For <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=501975">switch statements on Strings</a> an additional null guard is produced. This lead to NPEs when a null argument was passed to the switch statement.</p>
 
-<p><img src="/xtend/images/releasenotes/2_11_xbase-switch-nullguard.png" alt="" /></p>
+<p><img src="/Xtext/images/releasenotes/2_11_xbase-switch-nullguard.png" alt="" /></p>
 
 <p>A for-loop over an array resulted in uncompilable Java code. This has been <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=440006">fixed</a>.</p>
 
@@ -304,204 +718,400 @@
 
 <p>For comparison expressions with <code>null</code> as argument it is more efficient to use the triple (not) equals operator <code>===</code> and <code>!==</code> instead of <code>==</code> and <code>!=</code>. While the “normal” operators will result in a call of <code>Objects.equal</code>, the triple equals operator can perform a direct comparison.</p>
 
-<p><img src="/xtend/images/releasenotes/2_11_xbase-compare-null-gen.png" alt="" /></p>
+<p><img src="/Xtext/images/releasenotes/2_11_xbase-compare-null-gen.png" alt="" /></p>
 
 <p>For these situations <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=401012">a warning is produced</a> and <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=403018">a quickfix is offered</a>.</p>
 
-<p><img src="/xtend/images/releasenotes/2_11_xbase-compare-null-quickfix.png" alt="" /></p>
+<p><img src="/Xtext/images/releasenotes/2_11_xbase-compare-null-quickfix.png" alt="" /></p>
 
-<h2 id="new-class-wizard">New Class Wizard</h2>
+<h2 id="xtext-project-wizard">Xtext Project Wizard</h2>
 
-<p>The New Xtend Class wizard has an option to create a main method.</p>
+<h3 id="usability">Usability</h3>
 
-<p><img src="/xtend/images/releasenotes/2_11_xtend-new-main-class.png" alt="" /></p>
+<p>We have examined the user experience with the New Xtext Project wizard and improved it with the input we gained from users. It was possible to enter invalid values for <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=481380">project names</a> and <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=481380">file extensions</a>, this is now checked.</p>
+
+<p>An usability test of the advanced configuration page revealed that especially less experienced users could had <a href="https://github.com/eclipse/xtext-eclipse/issues/119">issues with the dependencies between options</a>. From different proposals it turned out best from the user’s perspective if mandatory options are automatically selected and disable. Further an information message is presented to the user about this action. The ‘Generic IDE Support’ option gets an additional information hover.</p>
+
+<p><img src="/Xtext/images/releasenotes/2_11_project-wizard-autoselect.png" alt="" /></p>
+
+<p>The wizard’s text messages have been revised and <a href="https://github.com/eclipse/xtext-eclipse/pull/157">made consistent</a>.</p>
+
+<h3 id="line-delimiter">Line Delimiter</h3>
+
+<p>The Xtext project wizard now <a href="https://github.com/eclipse/xtext-core/issues/101">considers the workspace default line delimiter</a> and configures the generated MWE2 workflow accordingly. As a result the artifacts produced by the Xtext generator will use the same line delimiter explicitly.</p>
+
+<h3 id="tycho-build-configuration">Tycho Build Configuration</h3>
+
+<p>For projects that are created with Eclipse plug-in and Maven as build system, the generated target definition is upgraded to <a href="https://github.com/eclipse/xtext-core/issues/79">use the Eclipse Neon repository</a>. Eclipse Tycho is <a href="https://github.com/eclipse/xtext-core/issues/76">configured with version 0.25.0</a> now.</p>
+
+<h2 id="example-projects">Example Projects</h2>
+
+<p>The provided example projects have been revised and use the new generator workflow, new project structure and new testing modules.</p>
+
+<h2 id="deprecated-components">Deprecated Components</h2>
+
+<h3 id="old-xtext-generator">Old Xtext Generator</h3>
+
+<p>With Xtext 2.9 a <a href="/Xtext/releasenotes.html#/releasenotes/2015/11/16/version-2-9-0">new generator infrastructure was introduced</a>. In favor of this new generator <a href="https://github.com/eclipse/xtext-core/issues/58">the old generator has been deprecated</a>. Bugfixes will be done primarily for the new generator and most of them will not be backported, thus it is highly recommended to migrate your languages’ <code>.mwe2</code> workflows to use the new <a href="https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextGenerator.xtend"><code>org.eclipse.xtext.xtext.XtextGenerator</code></a> component.</p>
+
+<h3 id="running-the-language-generator-from-maven">Running the Language Generator from Maven</h3>
+
+<p>The Maven POM module <a href="http://repo1.maven.org/maven2/org/eclipse/xtext/org.eclipse.xtext.xtext/">org.eclipse.xtext.xtext</a>, which has been deprecated since 2015, is no longer published. If you use the old generator component, you should replace the <code>org.eclipse.xtext.xtext</code> dependency according to the <a href="http://repo1.maven.org/maven2/org/eclipse/xtext/org.eclipse.xtext.xtext/2.10.0/org.eclipse.xtext.xtext-2.10.0.pom">dependencies of that module</a>. The new generator component requires much fewer dependencies; a suitable configuration for it can be obtained by creating a new Maven project with the Xtext project wizard.</p>
+
+<h2 id="fixed-bugs">Fixed Bugs</h2>
+
+<h3 id="closed-memory-leaks">Closed Memory Leaks</h3>
+
+<p>The memory leak affected editors and <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=493784">downgraded performance while editing</a> resources for which JVM types are inferred (including Xtend).</p>
+
+<p>A second leak affected the <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=479328">Syntax Graph View</a> and slowed down the IDE.</p>
+
+<h3 id="performance">Performance</h3>
+
+<p>The Serializer was <a href="https://github.com/eclipse/xtext-core/issues/17">performing poor</a> for certain grammars. This has been fixed.</p>
+
+<h3 id="bug-lists">Bug Lists</h3>
+
+<p>In addition to the restructuring and the LSP support many bugs have been fixed:</p>
+
+<ul>
+  <li>
+    <p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;chfield=resolution&amp;chfieldfrom=2016-06-22&amp;chfieldto=2017-01-24&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.11&amp;list_id=15601548&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.11&amp;query_format=advanced&amp;resolution=FIXED">Fixed Eclipse Bugzilla tickets</a></p>
+  </li>
+  <li>
+    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3Arelease_v2.11+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
+  </li>
+  <li>
+    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3Arelease_v2.11+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
+  </li>
+</ul>
 
 				  </section>
 				
 				  <hr/>
-				  <section id="/releasenotes/2015/12/01/version-2-9-0">
-				  	<h1>Xtend 2.9.0 Release Notes<small>&nbsp;&nbsp;Dec 1, 2015</small></h1>
+				  <section id="/releasenotes/2016/05/25/version-2-10-0">
+				  	<h1>Xtext 2.10.0 Release Notes<small>&nbsp;&nbsp;May 25, 2016</small></h1>
 				    <br/>
-				    <p>Version 2.9 adds support for IntelliJ and includes many bug fixes. (<a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;list_id=11217573&amp;query_format=advanced&amp;status_whiteboard=v2.9&amp;status_whiteboard_type=allwordssubstr">full bugzilla list</a>).</p>
+				    <p>This is a bugfix release. <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;j1=OR&amp;list_id=15981214&amp;query_format=advanced&amp;status_whiteboard=v2.10&amp;status_whiteboard_type=allwordssubstr">Here</a> is the list of the fixed bugs.</p>
 
-<h2 id="intellij-idea-support">IntelliJ IDEA support</h2>
+				  </section>
+				
+				  <hr/>
+				  <section id="/releasenotes/2015/11/16/version-2-9-0">
+				  	<h1>Xtext 2.9.0 Release Notes<small>&nbsp;&nbsp;Nov 16, 2015</small></h1>
+				    <br/>
+				    <p>Version 2.9.0 is the first release of Xtext to ship with support for IntelliJ and the Web. Additionally, the “New Project Wizard” does now offer to create Maven or Gradle build support for your new project. Advanced uses may appreciate two new features in the Xtext grammar language.</p>
 
-<p>There is now an Xtend plug-in for IntelliJ IDEA. The plug-in provides a smart code editor for Xtend files, including syntax highlighting, code completion, on-the-fly validation, automatic compilation in the background, and more. The plug-in uses the same parser and compiler as Eclipse, but we had to re-implement large parts of the UI integration code.</p>
+<p>The release ships with over 240 bugfixes and enhancements. The full bugzilla log can be found <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;j1=OR&amp;list_id=11172029&amp;query_format=advanced&amp;status_whiteboard=v2.9&amp;status_whiteboard_type=allwordssubstr">here</a>.</p>
 
-<p><img src="/xtend/images/releasenotes/2_9_0_intellij_new_xtend_type.png" alt="" /><br />
-Create a new Xtend type (class, interface, or enum) inside Java packages.</p>
+<p>The following features have been added in particular.</p>
 
-<p><img src="/xtend/images/releasenotes/2_9_0_intellij_editor.png" alt="" /><br />
-Enjoy the smart code editor with syntax highlighting and code completion. The latter also proposes Xtend’s extension methods. The example from this screenshot is a small JUnit test, which - obviously - can also be launched as such.</p>
+<h2 id="develop-your-xtext-language-in-intellij-idea">Develop your Xtext Language in IntelliJ IDEA</h2>
 
-<h2 id="android-studio-support">Android Studio Support</h2>
+<p>Xtext not only lets you develop an IDEA plug-in for your language but you can also do the language development itself entirely within Jetbrains popular IDE. <br />
+Check out <a href="http://blogs.itemis.com/xtext/get-started-with-xtext-and-intellij-idea-in-5-minutes">this tutorial</a> to learn how this works.</p>
 
-<p>Xtend now supports <a href="http://developer.android.com/tools/revisions/studio.html">Android Studio</a>, which uses IntelliJ IDEA as a foundation. This is not to be confused with the <a href="http://developer.android.com/tools/help/adt.html">Android Developer Tools</a>, which are based on Eclipse and which have been supported by Xtend since the very beginning.</p>
+<h2 id="run-your-xtext-smart-editor-in-the-web">Run your Xtext Smart Editor in the Web</h2>
 
-<p>This is exciting news as it allows you to use lambda expressions and Active Annotations for Android development - something neither Android Studio nor ADT support out of the box.</p>
+<p>With Xtext you can now also have rich text editors for you language in the Web.<br />
+With Version 2.9.0 we already support three different javascript editor frameworks. For more details read the corresponding <a href="https://www.eclipse.org/Xtext/documentation/310_web_integration.html">section in the documentation</a>.</p>
+
+<h2 id="new-xtext-project-wizard">New Xtext Project Wizard</h2>
+
+<p>A new wizard to produce a readily configured Xtext project has been developed. It is used in both IntelliJ and Eclipse and allows the user to</p>
+<ul>
+  <li>decide which target editors your want (Eclipse, Web, IntelliJ)</li>
+  <li>what build system you prefer (Maven or Gradle)</li>
+  <li>tell the project layout. I.e. whether you want Maven-style src/main/java or the standard src/ folder scheme.</li>
+  <li>and whether you want testing support</li>
+</ul>
+
+<h2 id="new-xtext-code-generator">New Xtext Code Generator</h2>
+
+<p>We have entirely rewritten the code generator that produces the various artifacts from grammars. It is now simpler to configure and at the same time supports the various new options, the new Xtext wizard provides.</p>
+
+<h2 id="enhanced-gradle-and-maven-support">Enhanced Gradle and Maven Support</h2>
+
+<p>The Maven and Gradle plugins have been overhauled and improved. Additionally we added full support to run, build and test IntelliJ IDEA plugins from Gradle.</p>
+
+<h2 id="incremental-standalonebuilder">Incremental Standalonebuilder</h2>
+
+<p>The Eclipse builder always worked incrementally. We have now written one that is Eclipse-independent and is used from within IntelliJ as well as a Gradle Deamon.</p>
+
+<h2 id="grammar-language-enhancements">Grammar Language Enhancements</h2>
+
+<p>New features in the grammar language allow to reduce duplicate grammar information. Fragments are a way to inline similar productions in different rules, while parameters can be used to call turn off parts of a production. More details can be found <a href="http://zarnekow.blogspot.de/2015/10/the-xtext-grammar-learned-new-tricks.html">here</a>.</p>
+
 
 				  </section>
 				
 				  <hr/>
 				  <section id="/releasenotes/2015/03/11/version-2-8-0">
-				  	<h1>Xtend 2.8.0 Release Notes<small>&nbsp;&nbsp;Mar 11, 2015</small></h1>
+				  	<h1>Xtext 2.8.0 Release Notes<small>&nbsp;&nbsp;Mar 11, 2015</small></h1>
 				    <br/>
-				    <p>Version 2.8 got many new features, bug fixes, and performance improvements (<a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;list_id=11217573&amp;query_format=advanced&amp;status_whiteboard=v2.8&amp;status_whiteboard_type=allwordssubstr">full bugzilla list</a>).</p>
+				    <p>Version 2.8.0 comes with over 260 bugfixes and enhancements, the runtime performance as well as the tool performance has been improved significantly. The full bugzilla log can be found <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;j1=OR&amp;list_id=11172029&amp;query_format=advanced&amp;status_whiteboard=v2.8&amp;status_whiteboard_type=allwordssubstr">here</a>.</p>
 
-<p>The most noteworthy changes are the following.</p>
+<p>The following features have been added in particular.</p>
 
-<h2 id="target-java-version">Target Java Version</h2>
+<h2 id="whitespace-aware-languages">Whitespace-Aware Languages</h2>
+
+<p>Xtext 2.8 supports languages in which whitespace is used to specify the structure, e.g. using indentation to delimit code blocks as in <a href="https://www.python.org">Python</a>. This is done through <em>synthetic tokens</em> defined in the grammar:</p>
+
+<pre><code class="language-xtext">terminal BEGIN: 'synthetic:BEGIN';
+terminal END: 'synthetic:END';
+</code></pre>
+
+<p>These tokens can be used like other terminals in grammar rules:</p>
+
+<pre><code class="language-xtext">WhitespaceAwareBlock:
+    BEGIN
+        ...
+    END;
+</code></pre>
+
+<p>The new example language <em>Home Automation</em> available in the Eclipse examples (<em>File → New → Example → Xtext Examples</em>) demonstrates this concept. It allows code like the following:</p>
+
+<pre><code class="language-ruleengine">Rule 'Report error' when Heater.error then
+    var String report
+    do
+        Thread.sleep(500)
+        report = HeaterDiagnostic.readError
+    while (report == null)
+    println(report)
+</code></pre>
+
+<p>More details are found in the <a href="/Xtext/documentation/307_special_languages.html#whitespace-aware-languages">documentation</a>.</p>
+
+<h2 id="enhancements-of-the-grammar-editor">Enhancements of the Grammar Editor</h2>
+
+<h4 id="configurable-severities">Configurable Severities</h4>
+<p>You can configure the severity (<em>ignore / warning / error</em>) of certain problems that are detected in a grammar file. Open <em>Xtext → Errors/Warnings</em> in the workspace preferences for global settings or in the project properties for project-specific settings.</p>
+
+<p><img src="/Xtext/images/releasenotes/2_8_xtext-validation-preferences.png" alt="" /></p>
+
+<h4 id="improved-content-assist">Improved Content Assist</h4>
+<p>When you hit <em>Ctrl+Space</em> after the <code>with</code> keyword in a grammar definition, you get a list of available grammars which the currently edited grammar can inherit from.</p>
+
+<p><img src="/Xtext/images/releasenotes/2_8_xtext-grammar-inheritance.png" alt="" /></p>
+
+<h2 id="new-options-for-language-code-generation">New Options for Language Code Generation</h2>
+
+<p>The <em>Generator</em> component supports two new options.</p>
+
+<h4 id="class-annotations">Class Annotations</h4>
+
+<p>You can specify annotations to be added to each generated Java class. With the following workflow configuration, the annotation <code>@Generated</code> is added to each class:</p>
+
+<pre><code class="language-mwe2">Workflow {
+  component = Generator {
+      classAnnotation = GeneratedClassAnnotation {}
+      ...
+  }
+}
+</code></pre>
+
+<p>You can also specify your own class annotations by implementing the interface <em>IClassAnnotation</em> and adding that implementation to the configuration.</p>
+
+<h4 id="file-header">File Header</h4>
+
+<p>Xtext generates Java files with the following file header comment:</p>
+
+<pre><code class="language-java">/*
+ * generated by Xtext
+ */
+</code></pre>
+
+<p>With Xtext 2.8, this can be configured in the workflow configuration with the <em>fileHeader</em> property of the <em>Generator</em> component.</p>
+
+<pre><code class="language-mwe2">var myFileHeader = "/*----------------------------
+ * My fancy file header
+ * (c) \${year} Dr. Evil, inc.
+ *----------------------------*/"
+
+Workflow {
+  component = Generator {
+      fileHeader = myFileHeader
+      ...
+  }
+}
+</code></pre>
+
+<h2 id="target-java-version-xbase">Target Java Version (Xbase)</h2>
 
 <p>The new version of the Xbase compiler allows to configure the Java version of the generated code. The default is to use the same version as set for the source compatibility of the Java compiler (<em>Java → Compiler → Source compatibility</em>), which is in turn usually set to the same version as the <em>compiler compliance level</em>. The Xbase compiler settings can be configured in the <em>Compiler</em> preference page or project properties page of your Xbase language.</p>
 
-<p><img src="/xtend/images/releasenotes/2_8_xbase-java-version.png" alt="" /></p>
+<p><img src="/Xtext/images/releasenotes/2_8_xbase-java-version.png" alt="" /></p>
 
 <p>By unchecking <em>Use source compatibility level from Java settings</em>, you can choose to generate Java code with a different version than is set for the Java compiler. The actual changes in the generated code are described in the following.</p>
 
 <h3 id="java-5">Java 5</h3>
 
-<p>Java 5 has been the version level of the Xtend compiler from the beginning, so the generated code is the same as with earlier Xtend versions if you choose this target version.</p>
+<p>Java 5 has been the default version level of the Xbase compiler from the beginning, so the generated code is the same as with earlier Xbase versions if you choose this target version.</p>
 
 <h3 id="java-6">Java 6</h3>
 
-<p>When the Xtend compiler is set to at least Java 6, it generates an <code>@Override</code> annotation to each method that overrides a method from a superclass or implements an interface method.</p>
+<p>When the Xbase compiler is set to at least Java 6, it generates an <code>@Override</code> annotation to each method that overrides a method from a superclass or implements an interface method.</p>
 
 <h3 id="java-7">Java 7</h3>
 
-<p>Xtend expressions like <code>switch (obj) { ... }</code> where <code>obj</code> is of type <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html">String</a> are translated to Java <code>switch</code> statements (see <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/language/strings-switch.html">Strings in switch Statements</a>).</p>
+<p>Xbase expressions like <code>switch (obj) { ... }</code> where <code>obj</code> is of type <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html">String</a> are translated to Java <code>switch</code> statements (see <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/language/strings-switch.html">Strings in switch Statements</a>).</p>
 
-<p>In Xtend you can write number literals in the form <code>2_147_483_647</code> to enhance their readability. This is also <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/language/underscores-literals.html">supported by Java 7</a>. When the Xtend compiler is set to at least Java 7, underscores in number literals are retained in the generated code.</p>
+<p>In Xbase you can write number literals in the form <code>2_147_483_647</code> to enhance their readability. This is also <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/language/underscores-literals.html">supported by Java 7</a>. When the Xbase compiler is set to at least Java 7, underscores in number literals are retained in the generated code.</p>
 
 <h3 id="java-8">Java 8</h3>
 
-<p><a href="/xtend/documentation/203_xtend_expressions.html#lambdas">Xtend lambda expressions</a> like <code>[String s | s.toLowerCase]</code> are translated to <a href="http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html">Java 8 lambda expressions</a>, e.g. <code>(String s) -&gt; return s.toLowerCase();</code>. More details on this translation are discussed in <a href="http://spoenemann.blogspot.de/2015/02/xtend-for-java-8.html">this blog post</a>.</p>
+<p><a href="/Xtext/documentation/305_xbase.html#xbase-expressions-lambda">Xbase lambda expressions</a> like <code>[String s | s.toLowerCase]</code> are translated to <a href="http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html">Java 8 lambda expressions</a>, e.g. <code>(String s) -&gt; return s.toLowerCase();</code>. More details on this translation are discussed in <a href="http://spoenemann.blogspot.de/2015/02/xtend-for-java-8.html">this blog post</a>.</p>
 
-<p>Note that independent of which Java version is chosen for the generated code, Xtend works perfectly with the <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/language/lambda_api_jdk8.html">lambda-optimized Java 8 API</a> because Xtend lambdas are fully compatible with Java 8 lambdas.</p>
+<p>Note that independent of which Java version is chosen for the generated code, Xbase works perfectly with the <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/language/lambda_api_jdk8.html">lambda-optimized Java 8 API</a> because Xbase lambdas are fully compatible with Java 8 lambdas.</p>
 
-<p>Xtend allows to define non-abstract methods (static or non-static) in interfaces when Java 8 is chosen as target language level. If such a method is non-static, it is translated to a <a href="http://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html">Java 8 default method</a>.</p>
-
-<h2 id="more-compiler-options">More Compiler Options</h2>
+<h2 id="more-compiler-options-xbase">More Compiler Options (Xbase)</h2>
 
 <p>You can now disable the automatic generation of <code>@SuppressWarnings</code> annotations for generated classes. Furthermore, you can enable the generation of <code>@Generated</code> annotations for all generated types, which can be useful for automatic processing of the source code, e.g. when you want to exclude generated types in code analysis tools. The annotation also allows to attach more information, which can be enabled in the preferences.</p>
 
-<h2 id="enhancements-of-the-xtend-editor">Enhancements of the Xtend Editor</h2>
+<h2 id="unique-class-name-validation-xbase">Unique Class Name Validation (Xbase)</h2>
 
-<h3 id="open-generated-file">Open Generated File</h3>
+<p>Unique Java type name checks are now activated for all Xbase languages on a per project level.</p>
 
-<p>You can open the Java file that was generated from Xtend by right-clicking the Xtend editor and selecting <em>Open Generated File</em>.</p>
+<h2 id="open-generated-file-xbase">Open Generated File (Xbase)</h2>
 
-<p><img src="/xtend/images/releasenotes/2_8_xbase-open-generated.png" alt="" /></p>
+<p>You can open the Java file that was generated from an Xbase DSL instance by right-clicking the DSL editor and selecting <em>Open Generated File</em>.</p>
 
-<h3 id="open-inferred-type">Open Inferred Type</h3>
+<p><img src="/Xtext/images/releasenotes/2_8_xbase-open-generated.png" alt="" /></p>
 
-<p>You can open the declaration of the inferred type of a local variable by <em>Ctrl</em>-clicking (<em>Cmd</em> on Mac) the variable name.</p>
+<h2 id="interruption-of-incremental-build">Interruption of Incremental Build</h2>
 
-<p><img src="/xtend/images/releasenotes/2_8_open-inferred-type.png" alt="" /></p>
+<p>Instead of blocking the user with a modal dialog, running incremental builds will be now get interrupted when a user saves a file. Less blocking, yay!</p>
 
-<h3 id="improved-hover-for-annotations">Improved Hover for Annotations</h3>
+<h2 id="new-formatter-provisional">New Formatter (Provisional)</h2>
 
-<p>Hovers of annotated members have been improved and allow to navigate to annotation values.</p>
+<p>Xtext 2.8 comes with a new formatting API in addition to the previous API. The new API allows to implement formatting not only based on the static structure of the grammar but also on the actual model structure. This overcomes many limitations of the previous API, which was present since the first version of Xtext. Things that are now possible include:</p>
 
-<h3 id="unique-class-name-validation">Unique Class Name Validation</h3>
+<ul>
+  <li>Add line breaks to long lists of items but keep short lists in one line.</li>
+  <li>Arrange elements in a tabular layout.</li>
+  <li>Apply formatting to values of data type rules or comments.</li>
+  <li>Consider the existing whitespace information and implement an adaptive layout.</li>
+  <li>Provide user configurable preferences for the formatting settings.</li>
+</ul>
 
-<p>If your Xtend type’s qualified name collides with another Java or Xtend type in the same project you now get an error.</p>
+<p>More details are found in the <a href="/Xtext/documentation/303_runtime_concepts.html#formatting">documentation</a>.</p>
 
-<h2 id="convert-java-to-xtend">Convert Java to Xtend</h2>
+<h2 id="storable-resources-provisional">Storable Resources (Provisional)</h2>
 
+<p>Full resolution of Xtext resources can be very expensive. During compilation, complex languages like Xtend go through different phases that involve a lot of computation. With 2.8 we have introduced the possibility to store computed resource state and load it on demand if no changes are expected. We have activated this for Xtend and it reduces the amount of work for incremental changes significantly as dependent resources get loaded from storage much quicker. The API is still provisional for now.</p>
+
+<h2 id="xtend-features">Xtend Features</h2>
+
+<h4 id="convert-java-to-xtend">Convert Java to Xtend</h4>
 <p>The new version features a Java-to-Xtend converter. Right-click a Java file, package or source folder in the Package Explorer and select <em>Convert to Xtend</em>. You can choose to keep the original Java files (though that will lead to errors due to duplicate types), and you are warned if the Java code contains parts that cannot be translated automatically. These are marked with <code>FIXME</code> comments in the Xtend code. However, the converter is able to convert the majority of Java classes without problems.</p>
 
-<p><img src="/xtend/images/releasenotes/2_8_java-convert-to-xtend.png" alt="" /></p>
+<h4 id="more-java-8-support">More Java 8 Support</h4>
+<p>The new version of Xtend of course includes all enhancements of Xbase described above, including support for Java 8. In addition, Xtend allows to define non-abstract methods (static or non-static) in interfaces when Java 8 is chosen as target language level. If such a method is non-static, it is translated to a <a href="http://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html">Java 8 default method</a>.</p>
 
-<h2 id="active-annotations">Active Annotations</h2>
+<h2 id="important-changes">Important Changes</h2>
 
-<h4 id="constant-field-initializer">Constant Field Initializer</h4>
+<h4 id="execution-environment">Execution Environment</h4>
+<p>All Xtext plug-ins now require JavaSE-1.6 as execution environment. Furthermore, the Java code generated by Xtext uses <code>@Override</code> annotations for methods overriding or implementing other declared methods, so the plug-ins into which this code is generated must use at least JavaSE-1.6 as execution environment. If your plug-ins are set to J2SE-1.5 and you run the Xtext 2.8 code generator, you will probably get compiler errors like <em>The method ‘m’ of type ‘T’ must override a superclass method</em>; eliminate them by switching to a higher Java version.</p>
 
-<p><em>MutableFieldDeclaration</em> now features a set of methods like <code>setConstantValueAsInt(int value)</code> for creating static final fields with constant initializers. All primitive values as well as <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html">String</a> are supported.</p>
+<h4 id="regenerate-your-xbase-languages">Regenerate Your Xbase Languages</h4>
+<p>Xbase languages need to be regenerated once in order to work with version 2.8.</p>
 
-<h4 id="default-methods">Default Methods</h4>
-
-<p>If the Xtend compiler is set to Java 8, you can create a method with default implementation in a Java interface by defining a method body and setting the <em>abstract</em> flag on the <em>MutableMethodDeclaration</em>.</p>
-
-<h2 id="faster-builds-and-more-responsive-ui">Faster Builds and More Responsive UI</h2>
-
-<p>Compiling an Xtend resource involves a lot of computation. With 2.8 we store the computed resource state and reload it if no changes have happened. This leads to a significantly faster build.</p>
-
-<p>Into the bargain, user actions like saving an editor now cancel the auto-build and are no longer blocked by it.</p>
+<h4 id="expiring-junit-3-support">Expiring JUnit 3 Support</h4>
+<p>We are planing to remove support for JUnit version 3. The code form the plug-ins <code>org.eclipse.xtext.junit</code> and <code>org.eclipse.xtext.ui.junit</code> will be removed from our repository in the next version. Please migrate to the respective counterparts in <code>org.eclipse.xtext.junit4</code>.</p>
 
 				  </section>
 				
 				  <hr/>
 				  <section id="/releasenotes/2014/09/02/version-2-7-0">
-				  	<h1>Xtend 2.7.0 Release Notes<small>&nbsp;&nbsp;Sep 2, 2014</small></h1>
+				  	<h1>Xtext 2.7.0 Release Notes<small>&nbsp;&nbsp;Sep 2, 2014</small></h1>
 				    <br/>
 				    <p>
-  Version 2.7 got many new features, bug fixes and performance improvements (<a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&status_whiteboard=v2.7">full bugzilla list</a>). The most noteworthy changes are the following.
+  Version 2.7 got many new features, bug fixes and performance improvements (<a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&status_whiteboard=v2.7">full bugzilla list</a>). The most noteworthy changes are :
 </p>
-
-<section id="xtend_language_2_7" style="padding-top: 68px; margin-top: -68px;">
-	<h3>
-	   Language
-	</h3>
+      
+<section id="inferrer_api" style="padding-top: 68px; margin-top: -68px;">
+  <h2>Published Inferrer API of Xbase</h2>
+  <p>
+     The JVM model inferrer API, which is the heart of Xbase, has been finalized and is now public. We took the opportunity to simplify it in some places. Have a look at the <a href="https://github.com/xtext-dev/seven-languages-xtext/tree/xtext_2.7">updated seven languages example</a> for idiomatic usage of the API.
+  </p>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Sugared Lambdas With Zero And More Than Two Arguments
-	</h4>
-	<p>
-	   It is now allowed to leave out parameter declarations for all lambda expressions using a positional syntax, similar to Apple's Swift:
+<section id="xtext_performance_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h2>Performance Improvements</h2>
+  <p>
+     Xtext is now able to cancel many jobs (like refreshing the outline view) when the user starts typing, greatly improving responsiveness. Also, many UI actions can now be cancelled by hitting the "Stop" button.
+     Resource clustering is now supported in the builder participant and standalone builder, reducing the memory footprint for large projects. There is a new parallel builder participant that can be used for even more performance gains.
+  </p>
+</section>
+<section id="xtext_xcore_integration_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h2>
+     Better Integration with Xcore
+  </h2>
+  <p>
+     The "New Xtext Project" wizard now supports Xcore models and adding them to an existing mwe2 workflow is as simple as specifying them as a <code>loadedResource</code>. Xcore itself has undergone some serious performance improvements, making it suitable even for large models.
+  </p>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtext-xcore-wizard.png"/>
+</section>
+<section id="xtext_debugging_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h2>Debugging</h2>
+  <p>
+     Breakpoints can now be toggled, enabled/disabled and inspected via the ruler context menu. Partial support for conditional breakpoints was added. Content assist in the condition editor will be added in version 2.8.
+  </p>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtext-breakpoint-toggle.png"/>
+</section>
+<section id="xtext_find_references_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h2>
+     Find References improved
+  </h2>
+  <p>
+     The find references API is now available in the runtime plugin and has undergone some performance improvements.
+  </p>
+</section>
+<section id="xtext_cross_platform_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h2>
+     Cross Plattform Improvements
+  </h2>
+  <p>
+     All Xtext generator fragments now accept an explicit line delimiter, so heterogeneous teams get the same results when generating the language infrastructure.
+  </p>
+</section>
+<section id="xtend_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h1>
+     Xtend 2.7.0
+  </h1>
+</section>
+<section id="xtend_language_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h2>
+     Language
+  </h2>
+  <p>
+     It is now allowed to leave out parameter declarations for all lambda expressions using a positional syntax.
 <pre class="prettyprint lang-xtend linenums">
 #[1, 2, 3].reduce[$0 + $1]
 </pre>
-</section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Unqualified Enum Usage
-	</h4>
-	Enum constants in annotations and switch expressions can be referenced without their type name.
+  Enum constants in annotations can be referenced without their type name.
 <pre class="prettyprint lang-xtend linenums">
 @Retention(RUNTIME)
 </pre>
-</section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Inner Type of Parameterized Types
-	</h4>
-	Type inference for parameterized inner classes was improved and supports types like
+  Type inference for parameterized inner classes was improved and supports types like
 <pre class="prettyprint lang-xtend linenums">
-OuterType&LT;T&GT;.InnerType
+Option&LT;T&GT;.Some
 </pre>
-</section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Deprecated and Dead Code Analysis
-	</h4>
-	The validator will now detect use of deprecated API and is much better at finding dead code. Would you have spotted the following?
-	</p>
-	<img class="image_between_p" src="images/releasenotes/2_7_xtend-dead-code-analysis.png"/>
-	<img>
+  The validator will now detect use of deprecated API and is much better at finding dead code. Would you have spotted the following?
+  </p>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtend-dead-code-analysis.png"/>
+  <img>
 </section>
 <section id="xtend_library_2_7" style="padding-top: 68px; margin-top: -68px;">
-	<h3>
-	   Library
-	</h3>
-	</section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   New Extension Methods on Iterables
-	</h4>
-	<p>
-	   The standard library has new extension methods for <code>Iterables</code>, including <code>min</code>/<code>max</code>, <code>groupBy</code> and <code>indexed</code>.
-	</p>
+  <h2>
+     Library
+  </h2>
+  <p>
+     The standard library has new extension methods for <code>Iterables</code>, including <code>min</code>/<code>max</code>, <code>groupBy</code> and <code>indexed</code>.
+  </p>
 <pre class="prettyprint lang-xtend linenums">
 #["Xtend", "Java", "Eclipse"].maxBy[length]
 </pre>
-
-</section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   New Active Annotations
-	</h4>
-	<p>New Active Annotations have been added to free you of some repetitive tasks. The new <code>@Accessors</code> generates getters and setters, with fine grained control and even for all fields of a class if you want. The <code>@Delegate</code> annotation automatically implements the delegation pattern for you, so you only need to concentrate on methods that you actually want to implement differently than just delegating. Here is an example:</p>
+  <p>New Active Annotations have been added to free you of some repetitive tasks. The new <code>@Accessors</code> generates getters and setters, with fine grained control and even for all fields of a class if you want. The <code>@Delegate</code> annotation automatically implements the delegation pattern for you, so you only need to concentrate on methods that you actually want to implement differently than just delegating. Here is an example:</p>
 <pre class="prettyprint lang-xtend linenums">
 interface I {
 def void m1()
@@ -518,714 +1128,410 @@
 @Delegate A delegate = new A
 }
 </pre>
-	<p>Other additions include <code>@ToString</code>, <code>@EqualsHashCode</code>, <code>@FinalFieldsConstructor</code> and a new <code>@Data</code> (the old one is now deprecated as well as <code>@Property</code>).</p>
-	</section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Active Annotations API Improvements
-	</h4>
-	<p>The active annotation API integrates even deeper with the IDE. Every generated element can (and should) now declare its source element. This tracing information is used in places like the outline view. A separate validation phase has been added, so the end result after running all transformations can be validated. Also, changes to classes and even arbitrary resources that the annotation processor requested are detected and lead to automatic rebuilds.</p>
+  <p>Other additions include <code>@ToString</code>, <code>@EqualsHashCode</code>, <code>@FinalFieldsConstructor</code> and a new <code>@Data</code> (the old one is now deprecated as well as <code>@Property</code>).</p>
+  <p>The active annotation API integrates even deeper with the IDE. Every generated element can (and should) now declare its source element. This tracing information is used in places like the outline view. A separate validation phase has been added, so the end result after running all transformations can be validated. Also, changes to classes and even arbitrary resources that the annotation processor requested are detected and lead to automatic rebuilds.</p>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-<h3>IDE Features</h3>
+<section id="xtend_ide_features_2_7" style="padding-top: 68px; margin-top: -68px;">
+<h2>IDE Features</h2>
 </section>
 <section id="xtend_debugging_2_7" style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Debugging
-	</h4>
-	<p>
-	   Xtend breakpoints can now have conditions. Conditions are written in Java, so you get full access even to synthetic variables inserted by the Xtend compiler. Of course you also get content assist in the condition editor.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/2_7_xtend-conditional-breakpoint.png"/>
-	<p>
-	   Breakpoints can now be toggled, enabled/disabled and inspected via the ruler context menu.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/2_7_xtext-breakpoint-toggle.png"/>
+  <h3>
+     Debugging
+  </h3>
+  <p>
+     Xtend breakpoints can now have conditions. Conditions are written in Java, so you get full access even to synthetic variables inserted by the Xtend compiler. Of course you also get content assist in the condition editor.
+  </p>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtend-conditional-breakpoint.png"/>
+  <p>
+     Breakpoints can now be toggled, enabled/disabled and inspected via the ruler context menu.
+  </p>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtext-breakpoint-toggle.png"/>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Content Assist
-	</h4>
-	<p>
-	   Content Assist has become a lot faster and more accurate at the same time. It will now also retain the "is"-prefix of boolean properties.
-	</p>
+<section id="xtend_content_assist_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h3>
+     Content Assist
+  </h3>
+  <p>
+     Content Assist has become a lot faster and more accurate at the same time. It will now also retain the "is"-prefix of boolean properties.
+  </p>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Performance Improvements
-	</h4>
-	<p>
-	   Performance has reached a new level with big improvements to Content Assist, parallel code generation and lots of fine tuning. Also, Xtend will now cancel jobs (like outline refreshing) when you start typing again, making the editor much more responsive.
-	</p>
+<section id="xtend_performance_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h3>
+     Performance Improvements
+  </h3>
+  <p>
+     Performance has reached a new level with big improvements to Content Assist, parallel code generation and lots of fine tuning. Also, Xtend will now cancel jobs (like outline refreshing) when you start typing again, making the editor much more responsive.
+  </p>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Outline with Java-Mode
-	</h4>
-	<p>
-	   The outline view now supports two modes: One shows the original Xtend AST, the other one shows the resulting Java AST. This is very useful in the presence of Active Annotations that add a lot of new members to a class.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/2_7_xtend-outline-normal.png"/>
-	<img class="image_between_p" src="images/releasenotes/2_7_xtend-outline-jvm.png"/>
+<section id="xtend_outline_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h3>
+     Outline with Java-Mode
+  </h3>
+  <p>
+     The outline view now supports two modes: One shows the original Xtend AST, the other one shows the resulting Java AST. This is very useful in the presence of Active Annotations that add a lot of new members to a class.
+  </p>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtend-outline-normal.png"/>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtend-outline-jvm.png"/>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Organize imports on packages
-	</h4>
-	<p>
-	   You can now use "Organize Xtend Imports" on whole packages via the "Source" context menu.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/2_7_xtend-organize-imports.png"/>
+<section id="xtend_organize_imports_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h3>
+     Organize imports on packages
+  </h3>
+  <p>
+     You can now use "Organize Xtend Imports" on whole packages via the "Source" context menu.
+  </p>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtend-organize-imports.png"/>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Template proposals support import
-	</h4>
-	<p>
-	   A new type of template variable was added. It adds an import to an Xtend file when the template is inserted. This greatly reduces the need for qualified type names in templates.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/2_7_xtend-templates-import.png"/>
+<section id="xtend_template_proposals_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h3>
+     Template proposals support import
+  </h3>
+  <p>
+     A new type of template variable was added. It adds an import to an Xtend file when the template is inserted. This greatly reduces the need for qualified type names in templates.
+  </p>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtend-templates-import.png"/>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Open return type
-	</h4>
-	<p>
-	   Ever wondered what you can do with the type of a variable or the return type of a method? You can now CTRL-Click on feature calls and open the declaration of the return type of that call.
-	</p>
+<section id="xtend_open_return_type_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h3>
+     Open return type
+  </h3>
+  <p>
+     Ever wondered what you can do with the type of a variable or the return type of a method? You can now CTRL-Click on feature calls and open the declaration of the return type of that call.
+  </p>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Show errors from derived Java files
-	</h4>
-	<p>
-	   By using black box Java code within active annotations the generated Java source could sometimes have errors while the Xtend code is fine. In those cases, the errors are now shown at the appropriate locations in Xtend as well.
-	</p>
+<section id="xtend_show_java_errors_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h3>
+     Show errors from derived Java files
+  </h3>
+  <p>
+     By using black box Java code within active annotations the generated Java source could sometimes have errors while the Xtend code is fine. In those cases, the errors are now shown at the appropriate locations in Xtend as well.
+  </p>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>Maven and Java 8</h4>
-	<p>
-	   The Xtend Maven plugin is now toolchain-aware. Using this, you can for instance run Maven on Java 8, but compile against a JDK 6.
-	</p>
+<section id="xtend_maved_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h3>Maven and Java 8</h3>
+  <p>
+     The Xtend Maven plugin is now toolchain-aware. Using this, you can for instance run Maven on Java 8, but compile against a JDK 6.
+  </p>
 </section>
 
 				  </section>
 				
 				  <hr/>
 				  <section id="/releasenotes/2014/05/21/version-2-6-0">
-				  	<h1>Xtend 2.6.0 Release Notes<small>&nbsp;&nbsp;May 21, 2014</small></h1>
+				  	<h1>Xtext 2.6.0 Release Notes<small>&nbsp;&nbsp;May 21, 2014</small></h1>
 				    <br/>
 				    <p>
-  Version 2.6 got many bug fixes and performance improvements (<a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&status_whiteboard=v2.6">full bugzilla list</a>). The new features are the following.
+  Version 2.6 got many bug fixes and performance improvements (<a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&status_whiteboard=v2.6">full bugzilla list</a>). The new features are:
 </p>
+            
+<section id="todo_tags" style="padding-top: 68px; margin-top: -68px;">
+<h2>Task Tags</h2>
+<p>TODO, FIXME, and XXX markers in comments are now recognized by the IDE as task markers.
+It will be enabled for all Xtext languages, without any further ado (not even a rebuild is required). 
+To get an corresponding preference page for configuraing the kind of Task markers, a special generator fragment is available.</p>
+<img class="image_between_p" src="/Xtext/images/releasenotes/2_6_0_task_markers.png"/>
 
-<section id="anonymous_classes" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Anonymous Classes</h3>
-	<p>Xtend supports using lambdas to implement anonymous classes with just one abstract method since its inception. 
-	For interfaces and abstract classes with more than one method you can now also use the an anonymous class using the following syntax:</p>
+</section>
 
-<pre class="prettyprint lang-xtend linenums">
-val tabListener = new ActionBar.TabListener() {
-
-    override onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
-        // show the given tab
-    }
-
-    override onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
-        // hide the given tab
-    }
-
-    override onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
-        // probably ignore this event
-    }
-};
-</pre>     
-</section>
-<section id="static_nested_classes" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Static Nested Classes</h3>
-	<p>Xtend now supports static nested classes.</p>
-<pre class="prettyprint lang-xtend linenums">
-class A {
-    static class NestedClass {
-    }
-}
-</pre>
-</section>
-<section id="operator_declaration" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Operator Declarations</h3>
-	<p>In addition to overloading operators by adhering to the name mappings, listed in <a href="/xtend/documentation/203_xtend_expressions.html#operators">the documentation</a>, 
-	one can now use the actual operator in the declaration as well.</p>
-<pre class="prettyprint lang-xtend linenums">
-class Money {
-    def + (Money other) { ... }
-    def - (Money other) { ... }
-    def * (BigDecimal times) { ... }
-    ...
-}
-</pre>
-</section>
-<section id="synchronized_expression" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Synchronized Expression</h3>
-	<p>
-		The synchronized expression works basically like Java's synchronized statement.
-	</p>
-<pre class="prettyprint lang-xtend linenums">
-synchronized(lock) {
-    // do stuff
-}
-</pre>
-	<p>
-		But of course it is an expression, as everything in Xtend/Xbase. So you can write the following as well:
-	</p>
-<pre class="prettyprint lang-xtend linenums">
-someMethodCall(synchronized(lock) { ... })
-</pre>
-</section>
-<section id="qualified_static_imports" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Qualified Static Imports</h3>
-	<p>It is now possible to import features in a fully qualified way. This works for regular static imports as well as for extension imports.</p>
-<pre class="prettyprint lang-xtend linenums">
-// static import
-import static java.util.Collections.singleton
-// extension import
-import static extension java.util.Collections.min
-import static extension java.util.Collections.max
-</pre>
-</section>
-<section id="switch_fall_through" style="padding-top: 68px; margin-top: -68px;">
-<h3>Switch Fall Through</h3>
-	<p>The switch expression now supports a kind of fall through. Here's an example</p>
-	<pre class="prettyprint lang-xtend linenums">
-	switch myOperator {
-		case '+',
-		case '-' : handlePlusMinus()    
-		case '*',
-		case '/' : handleDivMultiply()
-		default : throw new IllegalStateException
-	}
-	</pre>
-</section>
-<section id="compound_assignments" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Compound Assignments</h3>
-	<p>Xtend now supports compound assignment operators.</p>
-<pre class="prettyprint lang-xtend linenums">
-var i = 0
-i += 42
-</pre>
-	<p>Compound operators work on overloaded operators as well. That is you don't need to declare '+=' if you have '+' defined. 
-	Example:</p>
-<pre class="prettyprint lang-xtend linenums">
-var distance = 15.km
-distance += 5.km
-</pre>
-</section>
-<section id="postfix_operators" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Postfix Operators</h3>
-	<p>Postfix operators for incrementing and decrementing numbers have been added.</p>
-<pre class="prettyprint lang-xtend linenums">
-var i = 0
-while (condition()) {
-    i++
-}
-</pre>
-</section>
-<section id="traditional_for_loop" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Traditional For-Loop</h3>
-	<p>The traditional for-loop from Java is now available in Xtend, too.</p>
-<pre class="prettyprint lang-xtend linenums">
-for (var i = 0; i < 99; i++) {
-    println(''+i+' bottles of beer on the wall.')
-}
-</pre>
-</section>
-<section id="multivalued_annotation_sugar" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Multivalued Annotations Sugar</h3>
-	<p>Instead of writing </p>
-<pre class="prettyprint lang-xtend linenums">
-@SurpressWarnings(#["unused", "unchecked"])
-</pre>
-	<p> you can write</p>
-<pre class="prettyprint lang-xtend linenums">
-@SurpressWarnings("unused", "unchecked")
-</pre>
-</section>
-<section id="active_annotation_mark_as_read" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Active Annotations - Flag fields as read resp. initialized</h3>
-	<p>When initializing a final field within a synthetic constructor, the control flow analysis couldn't detect it was in fact initialized and would raise an error. Another typical solution was a warning when a private field was only accessed through methods added by an active annotation (e.g. a setter or getter). You can now mark a field as read resp. initialized.</p>
-</section><section id="style_checks" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Style Checks</h3>
-	<p>2.6 adds the following optional compiler checks (inactive by default):</p>
-    <h4>Force return expression</h4>
-    <img class="image_between_p" src="images/releasenotes/2_6_0_validation-explicit-return.png"/>
-    <h4>Force declare return types</h4>
-    <img class="image_between_p" src="images/releasenotes/2_6_0_validation-explicit-return-declaration.png"/>
-    <h4>Force empty parenthesis on method invocation</h4>
-    <img class="image_between_p" src="images/releasenotes/2_6_0_validation-empty-parenthesis.png"/>
-</section>
-<section id="task_tags" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Task Tags</h3>
-	<p>TODO, FIXME, and XXX markers in comments are now recognized by the IDE as task markers.
-	The Xtend editor picks up the preference of JDT for adding new kind of markers or removing existing ones.</p>
-	<img class="image_between_p" src="images/releasenotes/2_6_0_task_markers.png"/>
-</section>
-<section id="open_implementation" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Open Implementation</h3>
-	<p>In addition to the "Go to declaration"-action, you can now navigate to existing implementations of a method. It works just like in JDT</p>
-	<img class="image_between_p" src="images/releasenotes/2_6_0_open_implementation.png"/>
-</section>
-<section id="debug_hover" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Debug Hover Shows Inspect Dialog</h3>
-	<p>In a debug session, when hovering over a local variable or a visible field, the popo up shows the inspection tree of the hovered value.</p>
-	<img class="image_between_p" src="images/releasenotes/2_6_0_debug_hover_variable.png"/>
-</section>
-<section id="hover_annotations" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Hover Shows Annotations</h3>
-	<p>The declaration hover now includes the annotations.</p>
-	<img class="image_between_p" src="images/releasenotes/2_6_0_annotations_in_hover.png"/>
-</section>
 <section id="gradle_plugin" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Gradle Plug-in</h3>
-	<p>A gradle plug-in for easy integration of the Xtend compiler in any gradle based Java projects is now available.
-	The gradle plug-in even also works with the new Android buildsystem developed by Google. <br/>
-	The gradle plug-in is hosted <a href="https://github.com/oehme/xtend-gradle-plugin">at github</a>. </p>
+ <h2>Gradle Plug-in</h2>
+ <p>A gradle plug-in for easy integration of the Xtext-based languages in any Gradle-based Java projects is now available.<br/>
+The gradle plug-in is hosted <a href="https://github.com/oehme/xtext-gradle-plugin">at github</a>. </p>
+<p>All ou need to do is to add the plugin to your build classpath:</p>
 <pre class="prettyprint lang-xtend linenums">
 buildscript {
   repositories {
     mavenCentral()
   }
   dependencies {
-    classpath 'org.xtend:xtend-gradle-plugin:0.0.8'
+    classpath 'org.xtext:xtext-gradle-plugin:0.0.2'
   }
 }
-apply plugin: 'xtend'
-repositories {
-    mavenCentral()
-}
+</pre>
+<p>Add your languages to the xtextTooling configuration</p>
+<pre class="prettyprint lang-xtend linenums">
 dependencies {
-  //or testCompile if you only want to use Xtend for some tests
-  compile 'org.eclipse.xtend:org.eclipse.xtend.lib:2.6.0'
+  xtextTooling 'org.example:org.example.hero.core:3.3.3'
+  xtextTooling 'org.example:org.example.villain.core:6.6.6'
 }
 </pre>
-</section>
-<section id="android_lib" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Treeshaken Lib for Android</h3>
-	<p>For large Android projects there is a need to have as little code packaged as possible. 
-	Usually this is achieved by proguarding cour code and the dependencies during the build. 
-	For people who find that tedious and want to work with a reduced lib from the get go, we offer a treeshaken version of the library, which is only 300k small.</p>
-	<p>The library can be <a href="http://search.maven.org/#search%7Cga%7C1%7Corg.eclipse.xtext.xbase.lib.slim">downloaded from maven central</a>.</p>
+<p>Add code that your models compile against to the xtext configuration. If you use the Java plugin, this configuration will automatically contain everything from compile and testCompile. So in many cases this can be omitted.</p>
+<pre class="prettyprint lang-xtend linenums">
+dependencies {
+  xtext 'com.google.guava:guava:15.0'
+}
+</pre>
+<p>Configure your languages</p>
+<pre class="prettyprint lang-xtend linenums">
+xtext {
+  version = '2.5.3' // the current default, can be omitted
+  encoding = 'UTF-8' //the default, can be omitted
+
+  /* Java sourceDirs are added automatically,
+   * so you only need this element if you have
+   * additional source directories to add
+   */
+  sources {
+    srcDir 'src/main/heroes'
+    srcDir 'src/main/villains'
+  }
+
+  languages{
+    heroes {
+      setup = 'org.example.hero.core.HeroStandaloneSetup'
+      consumesJava = true
+      outputs {
+        DEFAULT_OUTPUT.dir = 'build/heroes'
+        SIDEKICKS.dir = 'build/sidekicks'
+      }
+    }
+
+    villains {
+      setup = 'org.example.villain.core.VillainStandaloneSetup'
+      //equivalent to DEFAULT_OUTPUT.dir
+      output.dir = 'build/villains'
+    }
+  }
+}
+</pre>
+<section id="first_token_syntactic_predicates" style="padding-top: 68px; margin-top: -68px;">
+<h2>First-TokenSet Syntactic Predicates</h2>
+<p>Syntactic predicates are used to solve ambiguities in grammars. Sometimes the predicate needs to be set on a more complex rule call, which might involve consuming a great number of tokens.
+With traditional syntactic predicates using the <code>=&gt;</code> operator, the parser would need to match all of those tokens in order to make te decision. The new operator <code>-&gt;</code>
+tells the parser to only look at the first token and make the decision based on that, which is sufficient in most cases. As a result the parser is faster and does better error recovery.</p>
+
+</section><section id="synchronized_expression" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Synchronized Expression</h2>
+<p>
+    The synchronized expression works basically like Java's synchronized statement.
+</p>
+<pre class="prettyprint lang-xtend linenums">
+synchronized(lock) {
+    // do stuff
+}
+</pre>
+<p>
+    But of course it is an expression, as everything in Xtend/Xbase. So you can write the following as well:
+</p>
+<pre class="prettyprint lang-xtend linenums">
+someMethodCall(synchronized(lock) { ... })
+</pre>
+
+</section><section id="switch_fall_through" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Switch Fall Through</h2>
+<p>The switch expression now supports a kind of fall through. Here's an example</p>
+<pre class="prettyprint lang-xtend linenums">
+switch myOperator {
+    case '+',
+    case '-' : handlePlusMinus()    
+    case '*',
+    case '/' : handleDivMultiply()
+    default : throw new IllegalStateException
+}
+</pre>
+</section><section id="compound_assignments" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Compound Assignments</h2>
+<p>Xtend now supports compound assignment operators.</p>
+<pre class="prettyprint lang-xtend linenums">
+var i = 0
+i += 42
+</pre>
+<p>Compound operators work on overloaded operators as well. That is you don't need to declare '+=' if you have '+' defined. 
+Example:</p>
+<pre class="prettyprint lang-xtend linenums">
+var distance = 15.km
+distance += 5.km
+</pre>
+</section><section id="postfix_operators" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Postfix Operators</h2>
+<p>Postfix operators for incrementing and decrementing numbers have been added.</p>
+<pre class="prettyprint lang-xtend linenums">
+var i = 0
+while (condition()) {
+    i++
+}
+</pre>
+</section><section id="traditional_for_loop" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Traditional For-Loop</h2>
+<p>The traditional for-loop from Java is now available in Xtend, too.</p>
+<pre class="prettyprint lang-xtend linenums">
+for (var i = 0; i < 99; i++) {
+    println(''+i+' bottles of beer on the wall.')
+}
+</pre>
+
+</section><section id="multivalued_annotation_sugar" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Multivalued Annotations Sugar</h2>
+<p>Instead of writing </p>
+<pre class="prettyprint lang-xtend linenums">
+@SurpressWarnings(#["unused", "unchecked"])
+</pre>
+<p> you can write</p>
+<pre class="prettyprint lang-xtend linenums">
+@SurpressWarnings("unused", "unchecked")
+</pre>
+
+<section id="xbase_open_implementation" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Open Implementation</h2>
+<p>In addition to go to declaration, you can now navigate to existing implementations of a method. It works just like in JDT</p>
+<img class="image_between_p" src="/Xtext/images/releasenotes/2_6_0_open_implementation.png"/>
+
+</section><section id="xbase_debug_hover" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Debug Hover Shows Inspect Dialog</h2>
+<p>In a debug session, when hovering over a local variable or a visible field, the popo up shows the inspection tree of the hovered value.</p>
+<img class="image_between_p" src="/Xtext/images/releasenotes/2_6_0_debug_hover_variable.png"/>
+
+</section><section id="xbase_hover_annotations" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Hover Shows Annotations</h2>
+<p>The declaration hover now includes the annotations.</p>
+<img class="image_between_p" src="/Xtext/images/releasenotes/2_6_0_annotations_in_hover.png"/>
+
 </section>
 
+</section><section id="xbase_android_lib" style="padding-top: 68px; margin-top: -68px;">
+<h2>Treeshaken Xbase Lib for Android</h2>
+<p>For large Android projects there is a need to have as little code packaged as possible. 
+Usually this is achieved by proguarding cour code and the dependencies during the build. 
+For people who find that tedious and want to work with a reduced lib from the get go, we offer a treeshaken version of the library, which is only 300k small.</p>
+<p>The library can be <a href="http://search.maven.org/#search%7Cga%7C1%7Corg.eclipse.xtext.xbase.lib.slim">downloaded from maven central</a>.</p>
+</section>
 				  </section>
 				
 				  <hr/>
 				  <section id="/releasenotes/2013/12/11/version-2-5-0">
-				  	<h1>Xtend 2.5.0 Release Notes<small>&nbsp;&nbsp;Dec 11, 2013</small></h1>
+				  	<h1>Xtext 2.5.0 Release Notes<small>&nbsp;&nbsp;Dec 11, 2013</small></h1>
 				    <br/>
 				    <p>
-  With over <a href="http://goo.gl/7zorrn">100 bugfixes</a>, Version 2.5.0 is mainly a bugfix and
-  performance release. The team has been working on ironing out any glitches in the user experience
-  and further improving a fluent workflow with the language and the tools.
+  Xtext 2.5.0 includes 
+  <a href="https://bugs.eclipse.org/bugs/buglist.cgi?f1=OP&list_id=7722745&f0=OP&status_whiteboard_type=allwordssubstr&f4=CP&query_format=advanced&j1=OR&f3=CP&status_whiteboard=v2.5&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED">more than 100 bug fixes and enhancements</a>.
+  Some of the more important enhancements are :
 </p>
-
 <section id="annotations_2_5" style="padding-top: 68px; margin-top: -68px;">
-  <h3>Full support for Java 7 Annotations</h3>
+  <h2>Better Maven Support</h2>
   <p>
-	The Xtend compiler now supports all annotation values and constant expressions in annotations.
-	These annotation can be evaluated during compilation within active annotations. Also all values
-	supported in Java can now be set during annotation processing.
+    Xtext 2.5.0 comes with much improved support for integrating Xtext languages and the corresponding code generators in 
+  continuous integration builds. All the needed jars are available on Maven central now and we have added a dedicated Maven compiler plug-in that 
+  simulates the incremental build in a headless Java Maven build (no Tycho needed!). Please read the <a href="/Xtext/documentation/302_configuration.html#continuous-integration">new section in the documentation</a> for more 
+  details on the new Maven support.
   </p>
-<pre class="prettyprint lang-xtend linenums">
-annotation Columns {
-  Column[] value = #[ @Column('id') ]
-}
-annotation Column {
-  String value
-  int length = 2 << 16
-}
-</pre>
-<pre class="prettyprint lang-xtend linenums">
-class Entity {
+	<pre class="prettyprint xml linenums">
+&lt;plugin&gt;
+  &lt;groupId&gt;org.eclipse.xtext&lt;/groupId&gt;
+  &lt;artifactId&gt;xtext-maven-plugin&lt;/artifactId&gt;
+  &lt;version&gt;2.5.0&lt;/version&gt;
+  &lt;executions&gt;
+    &lt;execution&gt;
+      &lt;goals&gt;
+        &lt;goal&gt;generate&lt;/goal&gt;
+      &lt;/goals&gt;
+    &lt;/execution&gt;
+  &lt;/executions&gt;
+  &lt;configuration&gt;
+    &lt;languages&gt;
+      &lt;language&gt;
+        &lt;setup&gt;my.mavenized.HeroLanguageStandaloneSetup&lt;/setup&gt;
+        &lt;outputConfigurations&gt;
+          &lt;outputConfiguration&gt;
+            &lt;outputDirectory&gt;src/main/generated-sources/xtend/&lt;/outputDirectory&gt;
+          &lt;/outputConfiguration&gt;
+        &lt;/outputConfigurations&gt;
+      &lt;/language&gt;
+    &lt;/languages&gt;
+  &lt;/configuration&gt;
+  &lt;dependencies&gt;
+    &lt;dependency&gt;
+      &lt;groupId&gt;my.mavenized.herolanguage&lt;/groupId&gt;
+      &lt;artifactId&gt;my.mavenized.herolanguage&lt;/artifactId&gt;
+      &lt;version&gt;1.0.0-SNAPSHOT&lt;/version&gt;
+    &lt;/dependency&gt;
+  &lt;/dependencies&gt;
+&lt;/plugin&gt;	
+	</pre>
+	        </section>
+	        <section id="compilerchecks" style="padding-top: 68px; margin-top: -68px;">
+	          <h2>Enhancements for Xbase</h2>
+	          <p>
+	            The Xbase language and compiler has been improved in many ways.
+	          </p>
+	          <h3>Full support for Annotations</h3>
+	          <p>
+	            Xbase now supports all annotation values and constant expressions in annotations.
+	          </p>
+	<pre class="prettyprint lang-xtend linenums">
+class MyEntity {
   @Columns(#[@Column('id'), @Column(value = 'timestamp', length = 2 * 3 * 7)])
   CompositeKey key
 }
-</pre>
-</section>
-<section id="compiler_checks_2_5" style="padding-top: 68px; margin-top: -68px;">
-  <h3>Improved compiler checks</h3>
-  <p>
-	The Xtend compiler now detects ambiguously overloaded methods.
-  </p>
-  <h3 id="ambiguous_methods">Method overload validation</h4>
-  <p>
-	Ambiguous method invocations are checked and reported with a detailled message.
-	The compiler optionally detects valid but suspiciously overloaded methods
-	that could be implemented by accident. This is especially handy when property access and 
-	extension methods come into play.
-  </p>
-<pre class="prettyprint lang-xtend linenums">
+	</pre>
+	          <h3 id="ambiguous_methods">Method overload validation</h3>
+	          <p>
+	            Ambiguous method invocations are checked and reported with a detailled message.
+	            The compiler optionally detects valid but suspiciously overloaded methods
+	            that could be implemented by accident. This is especially handy when property access and 
+	            extension methods come into play.
+	          </p>
+	          <p>
+	            Here's an example how it is used within Xtend.
+	          </p>
+	<pre class="prettyprint lang-xtend linenums">
 class A {
   def isCheck() {..}
 }
 class B extends A {
   def m() {
-	/*
-	 * Ambiguous feature call.
-	 * The methods
-	 *     getCheck() in B and
-	 *     isCheck() in A
-	 * both match.
-	 */ 
-	this.check
+    /*
+     * Ambiguous feature call.
+     * The methods
+     * 	getCheck() in B and
+     * 	isCheck() in A
+     * both match.
+     */ 
+    this.check
   }
   def getCheck() {..}
 }
-</pre>
-  <em>Important note:</em>
-  <p>
-	You have to make sure to use the library in version 2.5 along with the introduced compiler checks.
-  </p>
-  <h3 id="discouraged_variable_names">Discouraged variable names</h4>
-  <p>
-	Some variable names are used implicitely by Xtend, for example the variable name 'self'.
-	The compiler optionally reports if these names were picked manually.
-  </p>
-</section>
-<section id="language_enhancements_2_5" style="padding-top: 68px; margin-top: -68px;">
-  <h3>Small language enhancements</h3>
-  <p>
-	Some refinements have been made to the Xtend language semantics to improve the overall experience.
-  </p>
-  <h3 id="improved_auto_casts">Auto casts</h4>
-  <p>
-	Xtend supported auto-casts right from the beginning with its powerful switch expression.
-	In 2.5, the more familiar syntax with instance-of checks caught up and also applies automatic
-	casts in if expressions and while loops. 
-  </p>
-<pre class="prettyprint lang-xtend linenums">
-def m(CharSequence c) {
-  if (c instanceof String) {
-	c.substring(42)
-  }
+	</pre>
+			  <em>Important note:</em>
+			  <p>
+			    You have to make sure to use the library in version 2.5 along with the introduced compiler checks.
+			  </p>
+	          <h3 id="discouraged_variable_names">Discouraged variable names</h3>
+	          <p>
+	            Some variable names are used implicitely by Xtend, for example the variable name 'self'.
+	            The compiler optionally reports if these names were picked manually.
+	          </p>
+	          <h3 id="improved_auto_casts">Auto casts</h3>
+	          <p>
+	            Xbase supported auto-casts right from the beginning with its powerful switch expression.
+	            In 2.5, the more familiar syntax with instance-of checks caught up and also applies automatic
+	            casts in if expressions and while loops. 
+	          </p>
+	<pre class="prettyprint lang-xtend linenums">
+if (c instanceof String) {
+  c.substring(42)
 }
-</pre>
-  <h3 id="switch_enum">Switch over enums</h4>
-  <p>
-	One of the few places where Xtend's syntax could be improved compared to Java, was a switch expression
-	over enumeration values. Now it's no longer necessary to use a qualified name or static imports for the enum values but
-	the literals are available automatically for the case guards. 
-  </p>
-<pre class="prettyprint lang-xtend linenums">
-def m(RetentionPolicy p) {
-  switch p {
-	case CLASS: 1
-	case RUNTIME: 2
-	case SOURCE: 3
-  }
+	</pre>
+	          <h3 id="switch_enum">Switch over enums</h3>
+	          <p>
+	            One of the few places where Xbase's syntax could be improved compared to Java, was a switch expression
+	            over enumeration values. Now it's no longer necessary to use a qualified name or static imports for the enum values but
+	            the literals are available automatically for the case guards.
+	          </p>
+	<pre class="prettyprint lang-xtend linenums">
+switch p {
+  case CLASS: 1
+  case RUNTIME: 2
+  case SOURCE: 3
 }
-</pre> 
-</section>
-<section id="template_expression_2_5" style="padding-top: 68px; margin-top: -68px;">
-  <h3>Customizable template expression</h3>
-  <p>
-	The template expressions can now be semantically enhanced via target typing.
-	One use case is code generation where imports are automatically added when concatenating a type
-	or if the appended object does not have a proper string representation. It is also possible
-	to pass an explicit line delimiter rather than using the platform default.
-  </p>
-<pre class="prettyprint lang-xtend linenums">
-def StringConcatenationClient m() '''my template''' // uses target type
-
-// caller code
-val result = new StringConcatenation(lineDelimiter) // custom line delimiter or subtype
-result.append(m)
-return result.toString()
-</pre>
-</section>
-<section id="primitive_types_2_5" style="padding-top: 68px; margin-top: -68px;">
-  <h3>Improved type inference with primitive values</h3>
-  <p>
-	The local type inference has been improved when primitive types are involved. Their wrapper
-	types will be used in fewer cases which prevents unexpected exceptions at runtime.
-	An optional compiler check can point to places where primitive defaults are used rather than
-	explicit values.
-  </p>
-</section>
-<section id="mvn_android_2_5" style="padding-top: 68px; margin-top: -68px;">
-  <h3>Better experience with Maven and Android</h3>
-  <p>
-	The Android archetype for Maven was improved. It
-	properly configures the compiler and debug settings, uses the latest Android libraries and the produced
-	Eclipse project matches the structure that is created by the ADT wizards.
-  </p>
-</section>
-
-				  </section>
-				
-				  <hr/>
-				  <section id="/releasenotes/2013/09/04/version-2-4-3">
-				  	<h1>Xtend 2.4.3 Release Notes<small>&nbsp;&nbsp;Sep 4, 2013</small></h1>
-				    <br/>
-				    <p>
-  The team is proud to present a release with 
-  more than <a href="https://bugs.eclipse.org/bugs/buglist.cgi?o5=anywordssubstr&f1=OP&f0=OP&resolution=FIXED&classification=Modeling&classification=Tools&f4=CP&v5=kepler&query_format=advanced&j1=OR&f3=CP&bug_status=RESOLVED&bug_status=VERIFIED&f5=flagtypes.name&component=Backlog&component=Common&component=Core&component=Releng&component=Website&component=Xtext&component=Xtext%20Backlog&product=TMF&product=Xtend&list_id=4768360">450 bug fixes</a> and features.
-</p>
-
-<section id="android_development" style="padding-top: 68px; margin-top: -68px;">
-  <h3>Android Support</h3>
-  <p>Xtend is a great choice for Android application development because it compiles to Java source code 
-  and doesn't require a fat runtime library. With version 2.4 the Android support has been 
-  further improved.
-  </p>
-  <h3 id="android_debugging">Debugging</h4>
-	<p>
-	Debugging Android applications works now. Previously Xtend supported debugging through JSR-45 only, which is not supported by the 
-	Dalvik VM. Now you can configure the compiler to install the debug information in a Dalvik-compatible manner.
-	</p>
-  <h3 id="android_maven">Maven Archetype</h4>
-	<p>
-	There is also a Maven archetype to set up a working Android project easily. If you 
-	have installed Maven and the Android SDK you only need the following command to 
-	get started:
-	</p>
-<pre class="prettyprint linenums">
-mvn archetype:generate -DarchetypeGroupId=org.eclipse.xtend \
--DarchetypeArtifactId=xtend-android-archetype \
--DarchetypeCatalog=http://repo.maven.apache.org/maven2
-</pre>
-</section>
-<section id="new_language_features" style="padding-top: 68px; margin-top: -68px;">
-	<h3>New Language Features</h3>
-	<p>
-	The following new features have been added to the Xtend language.
-	</p>
-	<h3 id="streamlined" >Streamlined Java syntax</h4>
-	<p>
-		In 2.4.2 we have introduced new (more Java-like) ways to access nested classes and static members. Also 
-		type literals can be written by just using the class name.
-	</p>
-	<p>
-		Here is an example for a static access of the generated methods in Android's ubiquitous R class:
-	</p>
-<pre class="prettyprint lang-xtend linenums">
-R.id.edit_message 
-// previously it was (still supported) :
-R$id::edit_message
-</pre> 
-	<p>
-		Type literals can now be written even shorter. Let's say you want to filter a list by type:
-	</p>
-<pre class="prettyprint lang-xtend linenums">
-myList.filter(MyType) 
-// where previously you had to write (still supported) :
-myList.filter(typeof(MyType)
-</pre> 
-	<p>
-		If you use the Java syntax (e.g. <i>MyType.class</i>), you'll get an error marker pointing you to the right syntax.
-	</p>
-	<h3 id="active_annotations" >Active Annotations (Provisional API)</h4>
-	<p>
-	<em>Active Annotations</em> let developers particpate in the translation process
-	from Xtend code to Java source code. The developer declares an annotation and a call back for the compiler where 
-	the generated Java code can be customized arbitrarily. This doesn't break static typing 
-	or the IDE! Any changes made in an active annotation are completely reflected by the environment.
-	A simple example would be a JavaBeans 
-	property supporting the Observer pattern. Here you need a getter and a 
-	setter method for each field and also an observer list and the proper code to notify 
-	them about changes. In many software systems you have hundreds of these properties. 
-	Active Annotation allow you to define and automate the implementation of such patterns 
-	and idioms at a single point and 
-	let the compiler expand it on the fly. And all this based on lightweight, custom libraries. 
-	You do no longer have to write nor 
-	read the boiler plate code anymore. <a href="/xtend/documentation/204_activeannotations.html">Read more...</a>
-	</p>
-	<h3 id="collection_literals">Collection Literals and Arrays</h4>
-	<p>
-	Xtend now has literals for unmodifiable collections.
-	</p>
-<pre class="prettyprint lang-xtend linenums">
-val listOfWords = #["Hello", "Xtend"]
-val setOfWords  = #{"Hello", "Xtend"}
-val mapOfWords  = #{1->"Hello", 2->"Xtend"}
-</pre> 
-	<p>
-	Collections created with a literal are immutable. The list literal can be used to natively create arrays, too. 
-	If the target type is an array, it will compile to an array initializer.
-	</p>
-<pre class="prettyprint lang-xtend linenums">
-val String[] arrayOfWords = #["Hello", "Xtend"]
-</pre> 
-	<p>
-	In addition to literals for arrays you can now also easily access and modify arrays 
-	as well as create empty arrays of any size.
-	</p>
-<pre class="prettyprint lang-xtend linenums">
-val String[] arrayOfWords = newArrayOfSize(2)
-arrayOfWords.set(0, 'Hello')
-arrayOfWords.set(1, 'Xtend')
-</pre> 
-	<h3 id="interfaces_enums_annotations">Interfaces, Enums and Annotations</h4>
-	<p>
-	Interfaces, enumerations and annotation types can now be declared directly in Xtend. 
-	</p>
-<pre class="prettyprint lang-xtend linenums">
-interface Container<T> {
-def T findChild((T)=>boolean matcher)
-}
-
-enum Color {
-RED, GREEN, BLUE
-}
-
-@Retention(RetentionPolicy::RUNTIME)
-@Target(ElementType::TYPE)
-annotation DependsOn {
-Class&lt;? extends Target&gt; value
-val version = "2.4.0" // type 'String' inferred 
-}
-</pre>
-
-	<h3 id="extension_provider">Extension Provider</h4>
-	<p>
-	Extension methods allow to add new methods to existing types without modifying them. 
-	Consider the omnipresent class <code class="prettyprint lang-java">java.lang.String</code>.
-	If you have to parse a string to a number, you could always write
-	</p>
-<pre class="prettyprint lang-java linenums">
-Integer::parseInt('42')
-</pre>
-	<p>but what you actually think of is</p>
-<pre class="prettyprint lang-xtend linenums">
-'42'.parseInt
-</pre>
-	<p>To make that possible, you simply import the class <code class="prettyprint lang-java">Integer</code> as a static extension:</p>
-<pre class="prettyprint lang-xtend linenums">
-import static extension java.lang.Integer.*
-</pre>
-	<p>This enables to pass the base of the number as an argument, too:</p>
-<pre class="prettyprint lang-xtend linenums">
-'2A'.parseInt(16)
-</pre>
-	Extension methods are available in other language such as C# as well, but Xtend can do better.
-	The new <em>Extensions Providers</em> render a former limitiation obsolete: In Xtend 2.4, fields, 
-	parameters and local variables can provide extensions, too. <a href="/xtend/documentation/202_xtend_classes_members.html#extension-provider">Read more...</a>
-	<br><br>
-	<h3 id="sam_types">SAM Type Conversion</h4>
-	<p>
-	Lambda expressions now work with interfaces and classes with a single abstract method 
-	(SAM types). For example, the <code class="prettyprint lang-java">AbstractIterator</code> 
-	from the Guava library has a single abstract method 
-	<code class="prettyprint lang-java">computeNext()</code>. A lambda can be used to implement that:
-	</p>
-<pre class="prettyprint lang-xtend linenums">
-val AbstractIterator&lt;Double&gt; infiniteRandomNumbers = [| Math::random]
-</pre>
-
-	<h3 id="new_operators">New Operators</h4>
-	<p>
-	Some new operators have been added. In addition to the usual <code>==</code> and <code>!=</code>
-	operators which map to <code>Object.equals(Object)</code>, the operators <code>===</code> and
-	<code>!==</code> respectively can be used to test for identity equality.
-<pre class="prettyprint lang-xtend linenums">
-if (myObject === otherObject) {
-println("same objects")
-}
-</pre>
-	<p>
-	Also new exclusive range operators have been introduced. In order to iterate over a list and
-	work with the index you can write:</p>
-<pre class="prettyprint lang-xtend linenums">
-for (idx : 0 ..&lt; list.size) {
-println("("+idx+") "+list.get(idx))
-}
-</pre>
-	<p>
-	Or if you want to iterate backwards :</p>
-<pre class="prettyprint lang-xtend linenums">
-for (idx : list.size &gt;.. 0) {
-println("("+idx+") "+list.get(idx))
-}
-</pre>
-</section>
-<section id="new_ide_features" style="padding-top: 68px; margin-top: -68px;">
-	<h3>New IDE Features</h3>
-	<p>Being an Eclipse project Xtend has always been designed with IDE integration in 
-	mind. The team is proud to announce that the editing support is now almost on par with 
-	Java's and in some aspects already even better. A user recently wrote in the newsgroup:
-	</p>
-	<blockquote>
-   Tooling for Xtend is unlike any other language for the JVM after Java. The IDE support 
-   is first class. It will take years for some languages to catch up. Some never will.
-   </blockquote>
-   <p>
-	The following new IDE features improve the editing experience significantly:
-	</p>
-<dl>
-	<h3 id="organize_imports">Organize Imports</h4>
-	<p>
-	With the new release we have overhauled the <em>Organize imports</em> action. It 
-	processes all kinds of imports, asks to resolve conflicts, and shortens qualified names
-	automatically.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/organize_imports.png"/>
-
-	<h3 id="extract_method">Extract Method and Extract Local Variable</h4>
-	<p>
-	New refactorings have been added. You can now extract code into a new local variable
-	</p>
-	<img class="image_between_p" src="images/releasenotes/extract_local_variable.png"/>
-	<p>
-	or into a new method.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/extract_method_refactoring.png"/>
-
-	<h3 id="suppression_followup">Supression of Follow-Up Errors</h4>
-	<p>
-	Follow-up error markers are now suppressed and errors in general are much more local, 
-	so it is very easy to spot the problem immediately.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/follow_up_errors.png"/>
-
-	<h3 id="optional_errors">Optional Errors and Warnings</h4>
-	<p>The severity of optional compiler errors can be configured globally as well as 
-	individually for a single project. They can either be set explicitly or delegate to the equivalent
-	setting of the Java compiler.</p>
-	<img class="image_between_p" src="images/releasenotes/issue_severities.png"/>
-
-	<h3 id="quickfixes">More Quickfixes</h4>
-	<p>
-	Xtend now offers to create missing fields, methods, and types through quick fix proposals.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/quickfixes.png"/> 
-
-	<h3 id="content_assist">Improved Content Assist</h4>
-	<p>
-	The content assist has become much smarter. It now proposes lambda brackets if the method 
-	accepts a single function and it offers hints on the parameter types when you 
-	are working with overloaded methods.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/content_assist.png"/>
-
-	<h3 id="formatter">Formatter</h4>
-	<p>
-	A configurable formatter which pretty prints and indents code idiomatically is now available.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/formatter.png"/>
-	<img class="image_between_p" src="images/releasenotes/formatter_preferences.png"/>
-	
-	<h3 id="javadoc">JavaDoc</h4>
-	<p>
-	An Xtend editor now has validation and content assist within JavaDoc comments.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/javadoc_content_assist.png"/>
-	
-	<h3 id="copy_qualifiedname">Copy Qualified Name</h4>
-	<p>
-	You can use <em>Copy Qualified Name</em> in the editor and the outline view to copy the name
-	of types, fields and methods into the clipboard.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/copy_qualified_name.png"/>
-</dl>
-</section>
+	</pre> 
+	          <h3>Improved type inference with primitive values</h3>
+	          <p>
+	            The local type inference has been improved when primitive types are involved. Their wrapper
+	            types will be used in fewer cases which prevents unexpected exceptions at runtime.
+	            An optional compiler check can point to places where primitive defaults are used rather than
+	            explicit values.
+	          </p>
+	        </section>
 
 				  </section>
 				
@@ -1236,56 +1542,54 @@
     
     <footer class="site-footer">
   <div id="extra">
-    <div class="container inner-footer">
-      <div class="row">
-        <div class="span6">
-          <h3 class="footer-links-header">Quick Links</h3>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
-            <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
-            <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
-            <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
-          </ul>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
-            <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
-            <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
-            <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
-          </ul>
-        </div>
-        <div class="span6">
+    <div class="inner">
+      <div class="container">
+        <div class="row">
+          <div class="span6">
+            <h3 class="footer-links-header">Quick Links</h3>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+              <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+              <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+              <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
+            </ul>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
+              <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
+              <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
+              <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
+            </ul>
+          </div>
+          <div class="span6">
             <!-- Social Media Links -->
             <h3 class="footer-links-header"">Social Media</h3>
             <ul class="footer-links clearfix">
               <li>
-                <a href="https://twitter.com/xtendlang"><img src="/xtend/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtendlang on Twitter</a>
+                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
               </li>
             </ul>
           </div>
-
+        </div>
       </div>
     </div>
   </div>
   <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
-  <a href="http://dryicons.com/">Icons by http://dryicons.com</a>
   <!-- Le javascript
       ================================================== -->
   <!-- Placed at the end of the document so the pages load faster -->
-  <script src="/xtend/js/jquery-1.7.1.min.js" type="text/javascript"></script>
-  <script src="/xtend/js/bootstrap.min.js" type="text/javascript"></script>
   
-  <!-- include pretty-print files -->
-  <script src="/xtend/js/prettify.js" type="text/javascript" ></script>
-  <script src="/xtend/js/lang-xtend.js" type="text/javascript"></script>
-  
-  <!-- Include the plug-in -->
-  <script src="/xtend/js/jquery.prettyPhoto.js" type="text/javascript"></script>
-  <script src="/xtend/js/jquery.easing.1.3.js" type="text/javascript"></script>
-  <script src="/xtend/js/custom.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
+  <script src="/Xtext/js/bootstrap.min.js"></script>
+  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
+  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
+  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
   <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
   <!--script type="text/javascript">
     var _gaq = _gaq || [];  
-      _gaq.push([ '_setAccount', 'UA-2429174-4' ]);
+      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -1298,8 +1602,31 @@
       s.parentNode.insertBefore(ga, s);
     })();
   </script-->
+  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
+  <script>
+      $(function() {
+        $('#coverflow').coverflow({
+          active : 1,
+          visibleAside: 2,
+          overlap : 0.5,
+          scale : 0.9,
+          angle : 20,
+          trigger : {
+            "itemfocus" : true,
+            "swipe" : true,
+            "mousewheel" : false
+          }
+        });
+        $('#coverflow :hidden').toggle();
+        $(window).resize(function() {
+          $('#coverflow').coverflow();
+        });
+      });
+
+  </script>
 </footer>
 
+
   </body>
 
 </html>
diff --git a/releasenotes/2013/12/11/version-2-5-0.html b/releasenotes/2013/12/11/version-2-5-0.html
index 306aa70..a190a22 100644
--- a/releasenotes/2013/12/11/version-2-5-0.html
+++ b/releasenotes/2013/12/11/version-2-5-0.html
@@ -3,10 +3,11 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtend - Xtend 2.5.0 Release Notes</title>
+	<title>Xtext - Xtext 2.5.0 Release Notes</title>
+	
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="Xtend is a statically typed programming language sitting on top of Java.">
+		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -16,19 +17,19 @@
 	<![endif]-->
 	
 	<!-- Le fav and touch icons -->
+	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
 	
-	<link rel="shortcut icon" href="/xtend/images/favicon.png">
-	
-	<link href="/xtend/css/bootstrap.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/shield-responsive.css" rel="stylesheet" type='text/css'>
-	<link href='/xtend/css/fonts.css' rel='stylesheet' type='text/css'>
-	<link href="/xtend/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
-	<link href="/xtend/css/prettify.css" type="text/css" rel="stylesheet"/>
-	<link href="/xtend/css/style.css" rel="stylesheet" type='text/css'>
-	
+	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
+	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
+	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
+	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
+	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
+	<!-- cover flow -->
+	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
 	<!--[if lt IE 9]>
-	<link href="css/iebugs.css" rel="stylesheet" type='text/css'>
+	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
 	<![endif]-->
 
 	<!-- BEGIN Cookie Consent
@@ -86,27 +87,35 @@
 
 
   <body>
+  
+    <header class="site-header">
 
-    <!-- Navbar -->
-  <div class="navbar navbar-fixed-top"
-    style="border-bottom: 1px solid #000;">
+  <!-- Navbar -->
+  <div class="navbar navbar-fixed-top">
     <div class="navbar-inner">
       <div class="container">
         <a class="btn btn-navbar" data-toggle="collapse"
           data-target=".nav-collapse"> <span class="icon-bar"></span> <span
           class="icon-bar"></span> <span class="icon-bar"></span>
-        </a> <a class="brand" href="/xtend/index.html"></a>
+        </a> <a class="brand" href="/Xtext/index.html"></a>
         <div class="nav-collapse collapse" style="height: 0px;">
           <ul class="nav">
-            <li ><a href="/xtend/download.html">Download</a></li>
-            <li ><a href="/xtend/documentation/index.html">Documentation</a></li>
-            <li ><a href="/xtend/community.html">Community</a></li>
-            <li ><a href="http://xtext.org">Xtext</a></li>
-            <li ><a href="http://www.eclipse.org">Eclipse.org</a></li>
+            <!--li ><a href="/Xtext/news.html">News</a></li-->
+            <li ><a href="/Xtext/download.html">Download</a></li>
+            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
+            <li ><a href="/Xtext/community.html">Community</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
+                <li><a href="https://typefox.io/trainings-2" target="_blank">TypeFox</a></li>
+              </ul>
+            </li>
+            <li ><a href="http://xtend-lang.org">Xtend</a></li>
           </ul>
-              <!--div class="btn-group pull-right">
-                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
-              </div-->
+          <!--div class="nav pull-right">
+            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
+          </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -114,210 +123,208 @@
   </div>
   <!-- Navbar End -->
 
+</header>
 
-    <div class="post">
 
-  <header class="post-header">
-    <h1 class="post-title">Xtend 2.5.0 Release Notes</h1>
-    <p class="post-meta">Dec 11, 2013</p>
-  </header>
-
-  <article class="post-content">
-    <p>
-  With over <a href="http://goo.gl/7zorrn">100 bugfixes</a>, Version 2.5.0 is mainly a bugfix and
-  performance release. The team has been working on ironing out any glitches in the user experience
-  and further improving a fluent workflow with the language and the tools.
+    <div class="page-content">
+  <div class="wrapper">
+    <div id="page">  
+    	<div class="inner">
+    		<br/><br/>
+    		<div id="maincontainer" class="container">
+    			<div class="span8 offset1">
+    				<h1>Xtext 2.5.0 Release Notes</h1>
+    				<h4>Dec 11, 2013</h4>
+    				<br/>
+    				<p>
+  Xtext 2.5.0 includes 
+  <a href="https://bugs.eclipse.org/bugs/buglist.cgi?f1=OP&list_id=7722745&f0=OP&status_whiteboard_type=allwordssubstr&f4=CP&query_format=advanced&j1=OR&f3=CP&status_whiteboard=v2.5&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED">more than 100 bug fixes and enhancements</a>.
+  Some of the more important enhancements are :
 </p>
-
 <section id="annotations_2_5" style="padding-top: 68px; margin-top: -68px;">
-  <h3>Full support for Java 7 Annotations</h3>
+  <h2>Better Maven Support</h2>
   <p>
-	The Xtend compiler now supports all annotation values and constant expressions in annotations.
-	These annotation can be evaluated during compilation within active annotations. Also all values
-	supported in Java can now be set during annotation processing.
+    Xtext 2.5.0 comes with much improved support for integrating Xtext languages and the corresponding code generators in 
+  continuous integration builds. All the needed jars are available on Maven central now and we have added a dedicated Maven compiler plug-in that 
+  simulates the incremental build in a headless Java Maven build (no Tycho needed!). Please read the <a href="/Xtext/documentation/302_configuration.html#continuous-integration">new section in the documentation</a> for more 
+  details on the new Maven support.
   </p>
-<pre class="prettyprint lang-xtend linenums">
-annotation Columns {
-  Column[] value = #[ @Column('id') ]
-}
-annotation Column {
-  String value
-  int length = 2 << 16
-}
-</pre>
-<pre class="prettyprint lang-xtend linenums">
-class Entity {
+	<pre class="prettyprint xml linenums">
+&lt;plugin&gt;
+  &lt;groupId&gt;org.eclipse.xtext&lt;/groupId&gt;
+  &lt;artifactId&gt;xtext-maven-plugin&lt;/artifactId&gt;
+  &lt;version&gt;2.5.0&lt;/version&gt;
+  &lt;executions&gt;
+    &lt;execution&gt;
+      &lt;goals&gt;
+        &lt;goal&gt;generate&lt;/goal&gt;
+      &lt;/goals&gt;
+    &lt;/execution&gt;
+  &lt;/executions&gt;
+  &lt;configuration&gt;
+    &lt;languages&gt;
+      &lt;language&gt;
+        &lt;setup&gt;my.mavenized.HeroLanguageStandaloneSetup&lt;/setup&gt;
+        &lt;outputConfigurations&gt;
+          &lt;outputConfiguration&gt;
+            &lt;outputDirectory&gt;src/main/generated-sources/xtend/&lt;/outputDirectory&gt;
+          &lt;/outputConfiguration&gt;
+        &lt;/outputConfigurations&gt;
+      &lt;/language&gt;
+    &lt;/languages&gt;
+  &lt;/configuration&gt;
+  &lt;dependencies&gt;
+    &lt;dependency&gt;
+      &lt;groupId&gt;my.mavenized.herolanguage&lt;/groupId&gt;
+      &lt;artifactId&gt;my.mavenized.herolanguage&lt;/artifactId&gt;
+      &lt;version&gt;1.0.0-SNAPSHOT&lt;/version&gt;
+    &lt;/dependency&gt;
+  &lt;/dependencies&gt;
+&lt;/plugin&gt;	
+	</pre>
+	        </section>
+	        <section id="compilerchecks" style="padding-top: 68px; margin-top: -68px;">
+	          <h2>Enhancements for Xbase</h2>
+	          <p>
+	            The Xbase language and compiler has been improved in many ways.
+	          </p>
+	          <h3>Full support for Annotations</h3>
+	          <p>
+	            Xbase now supports all annotation values and constant expressions in annotations.
+	          </p>
+	<pre class="prettyprint lang-xtend linenums">
+class MyEntity {
   @Columns(#[@Column('id'), @Column(value = 'timestamp', length = 2 * 3 * 7)])
   CompositeKey key
 }
-</pre>
-</section>
-<section id="compiler_checks_2_5" style="padding-top: 68px; margin-top: -68px;">
-  <h3>Improved compiler checks</h3>
-  <p>
-	The Xtend compiler now detects ambiguously overloaded methods.
-  </p>
-  <h3 id="ambiguous_methods">Method overload validation</h4>
-  <p>
-	Ambiguous method invocations are checked and reported with a detailled message.
-	The compiler optionally detects valid but suspiciously overloaded methods
-	that could be implemented by accident. This is especially handy when property access and 
-	extension methods come into play.
-  </p>
-<pre class="prettyprint lang-xtend linenums">
+	</pre>
+	          <h3 id="ambiguous_methods">Method overload validation</h3>
+	          <p>
+	            Ambiguous method invocations are checked and reported with a detailled message.
+	            The compiler optionally detects valid but suspiciously overloaded methods
+	            that could be implemented by accident. This is especially handy when property access and 
+	            extension methods come into play.
+	          </p>
+	          <p>
+	            Here's an example how it is used within Xtend.
+	          </p>
+	<pre class="prettyprint lang-xtend linenums">
 class A {
   def isCheck() {..}
 }
 class B extends A {
   def m() {
-	/*
-	 * Ambiguous feature call.
-	 * The methods
-	 *     getCheck() in B and
-	 *     isCheck() in A
-	 * both match.
-	 */ 
-	this.check
+    /*
+     * Ambiguous feature call.
+     * The methods
+     * 	getCheck() in B and
+     * 	isCheck() in A
+     * both match.
+     */ 
+    this.check
   }
   def getCheck() {..}
 }
-</pre>
-  <em>Important note:</em>
-  <p>
-	You have to make sure to use the library in version 2.5 along with the introduced compiler checks.
-  </p>
-  <h3 id="discouraged_variable_names">Discouraged variable names</h4>
-  <p>
-	Some variable names are used implicitely by Xtend, for example the variable name 'self'.
-	The compiler optionally reports if these names were picked manually.
-  </p>
-</section>
-<section id="language_enhancements_2_5" style="padding-top: 68px; margin-top: -68px;">
-  <h3>Small language enhancements</h3>
-  <p>
-	Some refinements have been made to the Xtend language semantics to improve the overall experience.
-  </p>
-  <h3 id="improved_auto_casts">Auto casts</h4>
-  <p>
-	Xtend supported auto-casts right from the beginning with its powerful switch expression.
-	In 2.5, the more familiar syntax with instance-of checks caught up and also applies automatic
-	casts in if expressions and while loops. 
-  </p>
-<pre class="prettyprint lang-xtend linenums">
-def m(CharSequence c) {
-  if (c instanceof String) {
-	c.substring(42)
-  }
+	</pre>
+			  <em>Important note:</em>
+			  <p>
+			    You have to make sure to use the library in version 2.5 along with the introduced compiler checks.
+			  </p>
+	          <h3 id="discouraged_variable_names">Discouraged variable names</h3>
+	          <p>
+	            Some variable names are used implicitely by Xtend, for example the variable name 'self'.
+	            The compiler optionally reports if these names were picked manually.
+	          </p>
+	          <h3 id="improved_auto_casts">Auto casts</h3>
+	          <p>
+	            Xbase supported auto-casts right from the beginning with its powerful switch expression.
+	            In 2.5, the more familiar syntax with instance-of checks caught up and also applies automatic
+	            casts in if expressions and while loops. 
+	          </p>
+	<pre class="prettyprint lang-xtend linenums">
+if (c instanceof String) {
+  c.substring(42)
 }
-</pre>
-  <h3 id="switch_enum">Switch over enums</h4>
-  <p>
-	One of the few places where Xtend's syntax could be improved compared to Java, was a switch expression
-	over enumeration values. Now it's no longer necessary to use a qualified name or static imports for the enum values but
-	the literals are available automatically for the case guards. 
-  </p>
-<pre class="prettyprint lang-xtend linenums">
-def m(RetentionPolicy p) {
-  switch p {
-	case CLASS: 1
-	case RUNTIME: 2
-	case SOURCE: 3
-  }
+	</pre>
+	          <h3 id="switch_enum">Switch over enums</h3>
+	          <p>
+	            One of the few places where Xbase's syntax could be improved compared to Java, was a switch expression
+	            over enumeration values. Now it's no longer necessary to use a qualified name or static imports for the enum values but
+	            the literals are available automatically for the case guards.
+	          </p>
+	<pre class="prettyprint lang-xtend linenums">
+switch p {
+  case CLASS: 1
+  case RUNTIME: 2
+  case SOURCE: 3
 }
-</pre> 
-</section>
-<section id="template_expression_2_5" style="padding-top: 68px; margin-top: -68px;">
-  <h3>Customizable template expression</h3>
-  <p>
-	The template expressions can now be semantically enhanced via target typing.
-	One use case is code generation where imports are automatically added when concatenating a type
-	or if the appended object does not have a proper string representation. It is also possible
-	to pass an explicit line delimiter rather than using the platform default.
-  </p>
-<pre class="prettyprint lang-xtend linenums">
-def StringConcatenationClient m() '''my template''' // uses target type
+	</pre> 
+	          <h3>Improved type inference with primitive values</h3>
+	          <p>
+	            The local type inference has been improved when primitive types are involved. Their wrapper
+	            types will be used in fewer cases which prevents unexpected exceptions at runtime.
+	            An optional compiler check can point to places where primitive defaults are used rather than
+	            explicit values.
+	          </p>
+	        </section>
 
-// caller code
-val result = new StringConcatenation(lineDelimiter) // custom line delimiter or subtype
-result.append(m)
-return result.toString()
-</pre>
-</section>
-<section id="primitive_types_2_5" style="padding-top: 68px; margin-top: -68px;">
-  <h3>Improved type inference with primitive values</h3>
-  <p>
-	The local type inference has been improved when primitive types are involved. Their wrapper
-	types will be used in fewer cases which prevents unexpected exceptions at runtime.
-	An optional compiler check can point to places where primitive defaults are used rather than
-	explicit values.
-  </p>
-</section>
-<section id="mvn_android_2_5" style="padding-top: 68px; margin-top: -68px;">
-  <h3>Better experience with Maven and Android</h3>
-  <p>
-	The Android archetype for Maven was improved. It
-	properly configures the compiler and debug settings, uses the latest Android libraries and the produced
-	Eclipse project matches the structure that is created by the ADT wizards.
-  </p>
-</section>
-
-  </article>
-
+    			</div>
+    		</div>
+      </div>
+    </div>
+  </div>
 </div>
-
     
     <footer class="site-footer">
   <div id="extra">
-    <div class="container inner-footer">
-      <div class="row">
-        <div class="span6">
-          <h3 class="footer-links-header">Quick Links</h3>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
-            <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
-            <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
-            <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
-          </ul>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
-            <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
-            <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
-            <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
-          </ul>
-        </div>
-        <div class="span6">
+    <div class="inner">
+      <div class="container">
+        <div class="row">
+          <div class="span6">
+            <h3 class="footer-links-header">Quick Links</h3>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+              <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+              <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+              <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
+            </ul>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
+              <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
+              <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
+              <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
+            </ul>
+          </div>
+          <div class="span6">
             <!-- Social Media Links -->
             <h3 class="footer-links-header"">Social Media</h3>
             <ul class="footer-links clearfix">
               <li>
-                <a href="https://twitter.com/xtendlang"><img src="/xtend/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtendlang on Twitter</a>
+                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
               </li>
             </ul>
           </div>
-
+        </div>
       </div>
     </div>
   </div>
   <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
-  <a href="http://dryicons.com/">Icons by http://dryicons.com</a>
   <!-- Le javascript
       ================================================== -->
   <!-- Placed at the end of the document so the pages load faster -->
-  <script src="/xtend/js/jquery-1.7.1.min.js" type="text/javascript"></script>
-  <script src="/xtend/js/bootstrap.min.js" type="text/javascript"></script>
   
-  <!-- include pretty-print files -->
-  <script src="/xtend/js/prettify.js" type="text/javascript" ></script>
-  <script src="/xtend/js/lang-xtend.js" type="text/javascript"></script>
-  
-  <!-- Include the plug-in -->
-  <script src="/xtend/js/jquery.prettyPhoto.js" type="text/javascript"></script>
-  <script src="/xtend/js/jquery.easing.1.3.js" type="text/javascript"></script>
-  <script src="/xtend/js/custom.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
+  <script src="/Xtext/js/bootstrap.min.js"></script>
+  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
+  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
+  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
   <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
   <!--script type="text/javascript">
     var _gaq = _gaq || [];  
-      _gaq.push([ '_setAccount', 'UA-2429174-4' ]);
+      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -330,8 +337,31 @@
       s.parentNode.insertBefore(ga, s);
     })();
   </script-->
+  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
+  <script>
+      $(function() {
+        $('#coverflow').coverflow({
+          active : 1,
+          visibleAside: 2,
+          overlap : 0.5,
+          scale : 0.9,
+          angle : 20,
+          trigger : {
+            "itemfocus" : true,
+            "swipe" : true,
+            "mousewheel" : false
+          }
+        });
+        $('#coverflow :hidden').toggle();
+        $(window).resize(function() {
+          $('#coverflow').coverflow();
+        });
+      });
+
+  </script>
 </footer>
 
+
   </body>
 
 </html>
diff --git a/releasenotes/2014/05/21/version-2-6-0.html b/releasenotes/2014/05/21/version-2-6-0.html
index f430bbf..097bf27 100644
--- a/releasenotes/2014/05/21/version-2-6-0.html
+++ b/releasenotes/2014/05/21/version-2-6-0.html
@@ -3,10 +3,11 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtend - Xtend 2.6.0 Release Notes</title>
+	<title>Xtext - Xtext 2.6.0 Release Notes</title>
+	
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="Xtend is a statically typed programming language sitting on top of Java.">
+		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -16,19 +17,19 @@
 	<![endif]-->
 	
 	<!-- Le fav and touch icons -->
+	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
 	
-	<link rel="shortcut icon" href="/xtend/images/favicon.png">
-	
-	<link href="/xtend/css/bootstrap.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/shield-responsive.css" rel="stylesheet" type='text/css'>
-	<link href='/xtend/css/fonts.css' rel='stylesheet' type='text/css'>
-	<link href="/xtend/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
-	<link href="/xtend/css/prettify.css" type="text/css" rel="stylesheet"/>
-	<link href="/xtend/css/style.css" rel="stylesheet" type='text/css'>
-	
+	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
+	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
+	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
+	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
+	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
+	<!-- cover flow -->
+	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
 	<!--[if lt IE 9]>
-	<link href="css/iebugs.css" rel="stylesheet" type='text/css'>
+	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
 	<![endif]-->
 
 	<!-- BEGIN Cookie Consent
@@ -86,27 +87,35 @@
 
 
   <body>
+  
+    <header class="site-header">
 
-    <!-- Navbar -->
-  <div class="navbar navbar-fixed-top"
-    style="border-bottom: 1px solid #000;">
+  <!-- Navbar -->
+  <div class="navbar navbar-fixed-top">
     <div class="navbar-inner">
       <div class="container">
         <a class="btn btn-navbar" data-toggle="collapse"
           data-target=".nav-collapse"> <span class="icon-bar"></span> <span
           class="icon-bar"></span> <span class="icon-bar"></span>
-        </a> <a class="brand" href="/xtend/index.html"></a>
+        </a> <a class="brand" href="/Xtext/index.html"></a>
         <div class="nav-collapse collapse" style="height: 0px;">
           <ul class="nav">
-            <li ><a href="/xtend/download.html">Download</a></li>
-            <li ><a href="/xtend/documentation/index.html">Documentation</a></li>
-            <li ><a href="/xtend/community.html">Community</a></li>
-            <li ><a href="http://xtext.org">Xtext</a></li>
-            <li ><a href="http://www.eclipse.org">Eclipse.org</a></li>
+            <!--li ><a href="/Xtext/news.html">News</a></li-->
+            <li ><a href="/Xtext/download.html">Download</a></li>
+            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
+            <li ><a href="/Xtext/community.html">Community</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
+                <li><a href="https://typefox.io/trainings-2" target="_blank">TypeFox</a></li>
+              </ul>
+            </li>
+            <li ><a href="http://xtend-lang.org">Xtend</a></li>
           </ul>
-              <!--div class="btn-group pull-right">
-                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
-              </div-->
+          <!--div class="nav pull-right">
+            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
+          </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -114,272 +123,251 @@
   </div>
   <!-- Navbar End -->
 
+</header>
 
-    <div class="post">
 
-  <header class="post-header">
-    <h1 class="post-title">Xtend 2.6.0 Release Notes</h1>
-    <p class="post-meta">May 21, 2014</p>
-  </header>
-
-  <article class="post-content">
-    <p>
-  Version 2.6 got many bug fixes and performance improvements (<a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&status_whiteboard=v2.6">full bugzilla list</a>). The new features are the following.
+    <div class="page-content">
+  <div class="wrapper">
+    <div id="page">  
+    	<div class="inner">
+    		<br/><br/>
+    		<div id="maincontainer" class="container">
+    			<div class="span8 offset1">
+    				<h1>Xtext 2.6.0 Release Notes</h1>
+    				<h4>May 21, 2014</h4>
+    				<br/>
+    				<p>
+  Version 2.6 got many bug fixes and performance improvements (<a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&status_whiteboard=v2.6">full bugzilla list</a>). The new features are:
 </p>
+            
+<section id="todo_tags" style="padding-top: 68px; margin-top: -68px;">
+<h2>Task Tags</h2>
+<p>TODO, FIXME, and XXX markers in comments are now recognized by the IDE as task markers.
+It will be enabled for all Xtext languages, without any further ado (not even a rebuild is required). 
+To get an corresponding preference page for configuraing the kind of Task markers, a special generator fragment is available.</p>
+<img class="image_between_p" src="/Xtext/images/releasenotes/2_6_0_task_markers.png"/>
 
-<section id="anonymous_classes" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Anonymous Classes</h3>
-	<p>Xtend supports using lambdas to implement anonymous classes with just one abstract method since its inception. 
-	For interfaces and abstract classes with more than one method you can now also use the an anonymous class using the following syntax:</p>
+</section>
 
-<pre class="prettyprint lang-xtend linenums">
-val tabListener = new ActionBar.TabListener() {
-
-    override onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
-        // show the given tab
-    }
-
-    override onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
-        // hide the given tab
-    }
-
-    override onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
-        // probably ignore this event
-    }
-};
-</pre>     
-</section>
-<section id="static_nested_classes" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Static Nested Classes</h3>
-	<p>Xtend now supports static nested classes.</p>
-<pre class="prettyprint lang-xtend linenums">
-class A {
-    static class NestedClass {
-    }
-}
-</pre>
-</section>
-<section id="operator_declaration" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Operator Declarations</h3>
-	<p>In addition to overloading operators by adhering to the name mappings, listed in <a href="/xtend/documentation/203_xtend_expressions.html#operators">the documentation</a>, 
-	one can now use the actual operator in the declaration as well.</p>
-<pre class="prettyprint lang-xtend linenums">
-class Money {
-    def + (Money other) { ... }
-    def - (Money other) { ... }
-    def * (BigDecimal times) { ... }
-    ...
-}
-</pre>
-</section>
-<section id="synchronized_expression" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Synchronized Expression</h3>
-	<p>
-		The synchronized expression works basically like Java's synchronized statement.
-	</p>
-<pre class="prettyprint lang-xtend linenums">
-synchronized(lock) {
-    // do stuff
-}
-</pre>
-	<p>
-		But of course it is an expression, as everything in Xtend/Xbase. So you can write the following as well:
-	</p>
-<pre class="prettyprint lang-xtend linenums">
-someMethodCall(synchronized(lock) { ... })
-</pre>
-</section>
-<section id="qualified_static_imports" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Qualified Static Imports</h3>
-	<p>It is now possible to import features in a fully qualified way. This works for regular static imports as well as for extension imports.</p>
-<pre class="prettyprint lang-xtend linenums">
-// static import
-import static java.util.Collections.singleton
-// extension import
-import static extension java.util.Collections.min
-import static extension java.util.Collections.max
-</pre>
-</section>
-<section id="switch_fall_through" style="padding-top: 68px; margin-top: -68px;">
-<h3>Switch Fall Through</h3>
-	<p>The switch expression now supports a kind of fall through. Here's an example</p>
-	<pre class="prettyprint lang-xtend linenums">
-	switch myOperator {
-		case '+',
-		case '-' : handlePlusMinus()    
-		case '*',
-		case '/' : handleDivMultiply()
-		default : throw new IllegalStateException
-	}
-	</pre>
-</section>
-<section id="compound_assignments" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Compound Assignments</h3>
-	<p>Xtend now supports compound assignment operators.</p>
-<pre class="prettyprint lang-xtend linenums">
-var i = 0
-i += 42
-</pre>
-	<p>Compound operators work on overloaded operators as well. That is you don't need to declare '+=' if you have '+' defined. 
-	Example:</p>
-<pre class="prettyprint lang-xtend linenums">
-var distance = 15.km
-distance += 5.km
-</pre>
-</section>
-<section id="postfix_operators" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Postfix Operators</h3>
-	<p>Postfix operators for incrementing and decrementing numbers have been added.</p>
-<pre class="prettyprint lang-xtend linenums">
-var i = 0
-while (condition()) {
-    i++
-}
-</pre>
-</section>
-<section id="traditional_for_loop" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Traditional For-Loop</h3>
-	<p>The traditional for-loop from Java is now available in Xtend, too.</p>
-<pre class="prettyprint lang-xtend linenums">
-for (var i = 0; i < 99; i++) {
-    println(''+i+' bottles of beer on the wall.')
-}
-</pre>
-</section>
-<section id="multivalued_annotation_sugar" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Multivalued Annotations Sugar</h3>
-	<p>Instead of writing </p>
-<pre class="prettyprint lang-xtend linenums">
-@SurpressWarnings(#["unused", "unchecked"])
-</pre>
-	<p> you can write</p>
-<pre class="prettyprint lang-xtend linenums">
-@SurpressWarnings("unused", "unchecked")
-</pre>
-</section>
-<section id="active_annotation_mark_as_read" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Active Annotations - Flag fields as read resp. initialized</h3>
-	<p>When initializing a final field within a synthetic constructor, the control flow analysis couldn't detect it was in fact initialized and would raise an error. Another typical solution was a warning when a private field was only accessed through methods added by an active annotation (e.g. a setter or getter). You can now mark a field as read resp. initialized.</p>
-</section><section id="style_checks" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Style Checks</h3>
-	<p>2.6 adds the following optional compiler checks (inactive by default):</p>
-    <h4>Force return expression</h4>
-    <img class="image_between_p" src="images/releasenotes/2_6_0_validation-explicit-return.png"/>
-    <h4>Force declare return types</h4>
-    <img class="image_between_p" src="images/releasenotes/2_6_0_validation-explicit-return-declaration.png"/>
-    <h4>Force empty parenthesis on method invocation</h4>
-    <img class="image_between_p" src="images/releasenotes/2_6_0_validation-empty-parenthesis.png"/>
-</section>
-<section id="task_tags" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Task Tags</h3>
-	<p>TODO, FIXME, and XXX markers in comments are now recognized by the IDE as task markers.
-	The Xtend editor picks up the preference of JDT for adding new kind of markers or removing existing ones.</p>
-	<img class="image_between_p" src="images/releasenotes/2_6_0_task_markers.png"/>
-</section>
-<section id="open_implementation" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Open Implementation</h3>
-	<p>In addition to the "Go to declaration"-action, you can now navigate to existing implementations of a method. It works just like in JDT</p>
-	<img class="image_between_p" src="images/releasenotes/2_6_0_open_implementation.png"/>
-</section>
-<section id="debug_hover" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Debug Hover Shows Inspect Dialog</h3>
-	<p>In a debug session, when hovering over a local variable or a visible field, the popo up shows the inspection tree of the hovered value.</p>
-	<img class="image_between_p" src="images/releasenotes/2_6_0_debug_hover_variable.png"/>
-</section>
-<section id="hover_annotations" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Hover Shows Annotations</h3>
-	<p>The declaration hover now includes the annotations.</p>
-	<img class="image_between_p" src="images/releasenotes/2_6_0_annotations_in_hover.png"/>
-</section>
 <section id="gradle_plugin" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Gradle Plug-in</h3>
-	<p>A gradle plug-in for easy integration of the Xtend compiler in any gradle based Java projects is now available.
-	The gradle plug-in even also works with the new Android buildsystem developed by Google. <br/>
-	The gradle plug-in is hosted <a href="https://github.com/oehme/xtend-gradle-plugin">at github</a>. </p>
+ <h2>Gradle Plug-in</h2>
+ <p>A gradle plug-in for easy integration of the Xtext-based languages in any Gradle-based Java projects is now available.<br/>
+The gradle plug-in is hosted <a href="https://github.com/oehme/xtext-gradle-plugin">at github</a>. </p>
+<p>All ou need to do is to add the plugin to your build classpath:</p>
 <pre class="prettyprint lang-xtend linenums">
 buildscript {
   repositories {
     mavenCentral()
   }
   dependencies {
-    classpath 'org.xtend:xtend-gradle-plugin:0.0.8'
+    classpath 'org.xtext:xtext-gradle-plugin:0.0.2'
   }
 }
-apply plugin: 'xtend'
-repositories {
-    mavenCentral()
-}
+</pre>
+<p>Add your languages to the xtextTooling configuration</p>
+<pre class="prettyprint lang-xtend linenums">
 dependencies {
-  //or testCompile if you only want to use Xtend for some tests
-  compile 'org.eclipse.xtend:org.eclipse.xtend.lib:2.6.0'
+  xtextTooling 'org.example:org.example.hero.core:3.3.3'
+  xtextTooling 'org.example:org.example.villain.core:6.6.6'
 }
 </pre>
-</section>
-<section id="android_lib" style="padding-top: 68px; margin-top: -68px;">
-	<h3>Treeshaken Lib for Android</h3>
-	<p>For large Android projects there is a need to have as little code packaged as possible. 
-	Usually this is achieved by proguarding cour code and the dependencies during the build. 
-	For people who find that tedious and want to work with a reduced lib from the get go, we offer a treeshaken version of the library, which is only 300k small.</p>
-	<p>The library can be <a href="http://search.maven.org/#search%7Cga%7C1%7Corg.eclipse.xtext.xbase.lib.slim">downloaded from maven central</a>.</p>
+<p>Add code that your models compile against to the xtext configuration. If you use the Java plugin, this configuration will automatically contain everything from compile and testCompile. So in many cases this can be omitted.</p>
+<pre class="prettyprint lang-xtend linenums">
+dependencies {
+  xtext 'com.google.guava:guava:15.0'
+}
+</pre>
+<p>Configure your languages</p>
+<pre class="prettyprint lang-xtend linenums">
+xtext {
+  version = '2.5.3' // the current default, can be omitted
+  encoding = 'UTF-8' //the default, can be omitted
+
+  /* Java sourceDirs are added automatically,
+   * so you only need this element if you have
+   * additional source directories to add
+   */
+  sources {
+    srcDir 'src/main/heroes'
+    srcDir 'src/main/villains'
+  }
+
+  languages{
+    heroes {
+      setup = 'org.example.hero.core.HeroStandaloneSetup'
+      consumesJava = true
+      outputs {
+        DEFAULT_OUTPUT.dir = 'build/heroes'
+        SIDEKICKS.dir = 'build/sidekicks'
+      }
+    }
+
+    villains {
+      setup = 'org.example.villain.core.VillainStandaloneSetup'
+      //equivalent to DEFAULT_OUTPUT.dir
+      output.dir = 'build/villains'
+    }
+  }
+}
+</pre>
+<section id="first_token_syntactic_predicates" style="padding-top: 68px; margin-top: -68px;">
+<h2>First-TokenSet Syntactic Predicates</h2>
+<p>Syntactic predicates are used to solve ambiguities in grammars. Sometimes the predicate needs to be set on a more complex rule call, which might involve consuming a great number of tokens.
+With traditional syntactic predicates using the <code>=&gt;</code> operator, the parser would need to match all of those tokens in order to make te decision. The new operator <code>-&gt;</code>
+tells the parser to only look at the first token and make the decision based on that, which is sufficient in most cases. As a result the parser is faster and does better error recovery.</p>
+
+</section><section id="synchronized_expression" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Synchronized Expression</h2>
+<p>
+    The synchronized expression works basically like Java's synchronized statement.
+</p>
+<pre class="prettyprint lang-xtend linenums">
+synchronized(lock) {
+    // do stuff
+}
+</pre>
+<p>
+    But of course it is an expression, as everything in Xtend/Xbase. So you can write the following as well:
+</p>
+<pre class="prettyprint lang-xtend linenums">
+someMethodCall(synchronized(lock) { ... })
+</pre>
+
+</section><section id="switch_fall_through" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Switch Fall Through</h2>
+<p>The switch expression now supports a kind of fall through. Here's an example</p>
+<pre class="prettyprint lang-xtend linenums">
+switch myOperator {
+    case '+',
+    case '-' : handlePlusMinus()    
+    case '*',
+    case '/' : handleDivMultiply()
+    default : throw new IllegalStateException
+}
+</pre>
+</section><section id="compound_assignments" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Compound Assignments</h2>
+<p>Xtend now supports compound assignment operators.</p>
+<pre class="prettyprint lang-xtend linenums">
+var i = 0
+i += 42
+</pre>
+<p>Compound operators work on overloaded operators as well. That is you don't need to declare '+=' if you have '+' defined. 
+Example:</p>
+<pre class="prettyprint lang-xtend linenums">
+var distance = 15.km
+distance += 5.km
+</pre>
+</section><section id="postfix_operators" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Postfix Operators</h2>
+<p>Postfix operators for incrementing and decrementing numbers have been added.</p>
+<pre class="prettyprint lang-xtend linenums">
+var i = 0
+while (condition()) {
+    i++
+}
+</pre>
+</section><section id="traditional_for_loop" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Traditional For-Loop</h2>
+<p>The traditional for-loop from Java is now available in Xtend, too.</p>
+<pre class="prettyprint lang-xtend linenums">
+for (var i = 0; i < 99; i++) {
+    println(''+i+' bottles of beer on the wall.')
+}
+</pre>
+
+</section><section id="multivalued_annotation_sugar" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Multivalued Annotations Sugar</h2>
+<p>Instead of writing </p>
+<pre class="prettyprint lang-xtend linenums">
+@SurpressWarnings(#["unused", "unchecked"])
+</pre>
+<p> you can write</p>
+<pre class="prettyprint lang-xtend linenums">
+@SurpressWarnings("unused", "unchecked")
+</pre>
+
+<section id="xbase_open_implementation" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Open Implementation</h2>
+<p>In addition to go to declaration, you can now navigate to existing implementations of a method. It works just like in JDT</p>
+<img class="image_between_p" src="/Xtext/images/releasenotes/2_6_0_open_implementation.png"/>
+
+</section><section id="xbase_debug_hover" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Debug Hover Shows Inspect Dialog</h2>
+<p>In a debug session, when hovering over a local variable or a visible field, the popo up shows the inspection tree of the hovered value.</p>
+<img class="image_between_p" src="/Xtext/images/releasenotes/2_6_0_debug_hover_variable.png"/>
+
+</section><section id="xbase_hover_annotations" style="padding-top: 68px; margin-top: -68px;">
+<h2>Xbase - Hover Shows Annotations</h2>
+<p>The declaration hover now includes the annotations.</p>
+<img class="image_between_p" src="/Xtext/images/releasenotes/2_6_0_annotations_in_hover.png"/>
+
 </section>
 
-  </article>
-
+</section><section id="xbase_android_lib" style="padding-top: 68px; margin-top: -68px;">
+<h2>Treeshaken Xbase Lib for Android</h2>
+<p>For large Android projects there is a need to have as little code packaged as possible. 
+Usually this is achieved by proguarding cour code and the dependencies during the build. 
+For people who find that tedious and want to work with a reduced lib from the get go, we offer a treeshaken version of the library, which is only 300k small.</p>
+<p>The library can be <a href="http://search.maven.org/#search%7Cga%7C1%7Corg.eclipse.xtext.xbase.lib.slim">downloaded from maven central</a>.</p>
+</section>
+    			</div>
+    		</div>
+      </div>
+    </div>
+  </div>
 </div>
-
     
     <footer class="site-footer">
   <div id="extra">
-    <div class="container inner-footer">
-      <div class="row">
-        <div class="span6">
-          <h3 class="footer-links-header">Quick Links</h3>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
-            <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
-            <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
-            <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
-          </ul>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
-            <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
-            <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
-            <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
-          </ul>
-        </div>
-        <div class="span6">
+    <div class="inner">
+      <div class="container">
+        <div class="row">
+          <div class="span6">
+            <h3 class="footer-links-header">Quick Links</h3>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+              <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+              <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+              <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
+            </ul>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
+              <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
+              <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
+              <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
+            </ul>
+          </div>
+          <div class="span6">
             <!-- Social Media Links -->
             <h3 class="footer-links-header"">Social Media</h3>
             <ul class="footer-links clearfix">
               <li>
-                <a href="https://twitter.com/xtendlang"><img src="/xtend/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtendlang on Twitter</a>
+                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
               </li>
             </ul>
           </div>
-
+        </div>
       </div>
     </div>
   </div>
   <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
-  <a href="http://dryicons.com/">Icons by http://dryicons.com</a>
   <!-- Le javascript
       ================================================== -->
   <!-- Placed at the end of the document so the pages load faster -->
-  <script src="/xtend/js/jquery-1.7.1.min.js" type="text/javascript"></script>
-  <script src="/xtend/js/bootstrap.min.js" type="text/javascript"></script>
   
-  <!-- include pretty-print files -->
-  <script src="/xtend/js/prettify.js" type="text/javascript" ></script>
-  <script src="/xtend/js/lang-xtend.js" type="text/javascript"></script>
-  
-  <!-- Include the plug-in -->
-  <script src="/xtend/js/jquery.prettyPhoto.js" type="text/javascript"></script>
-  <script src="/xtend/js/jquery.easing.1.3.js" type="text/javascript"></script>
-  <script src="/xtend/js/custom.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
+  <script src="/Xtext/js/bootstrap.min.js"></script>
+  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
+  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
+  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
   <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
   <!--script type="text/javascript">
     var _gaq = _gaq || [];  
-      _gaq.push([ '_setAccount', 'UA-2429174-4' ]);
+      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -392,8 +380,31 @@
       s.parentNode.insertBefore(ga, s);
     })();
   </script-->
+  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
+  <script>
+      $(function() {
+        $('#coverflow').coverflow({
+          active : 1,
+          visibleAside: 2,
+          overlap : 0.5,
+          scale : 0.9,
+          angle : 20,
+          trigger : {
+            "itemfocus" : true,
+            "swipe" : true,
+            "mousewheel" : false
+          }
+        });
+        $('#coverflow :hidden').toggle();
+        $(window).resize(function() {
+          $('#coverflow').coverflow();
+        });
+      });
+
+  </script>
 </footer>
 
+
   </body>
 
 </html>
diff --git a/releasenotes/2014/09/02/version-2-7-0.html b/releasenotes/2014/09/02/version-2-7-0.html
index 51f0ce3..3365132 100644
--- a/releasenotes/2014/09/02/version-2-7-0.html
+++ b/releasenotes/2014/09/02/version-2-7-0.html
@@ -3,10 +3,11 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtend - Xtend 2.7.0 Release Notes</title>
+	<title>Xtext - Xtext 2.7.0 Release Notes</title>
+	
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="Xtend is a statically typed programming language sitting on top of Java.">
+		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -16,19 +17,19 @@
 	<![endif]-->
 	
 	<!-- Le fav and touch icons -->
+	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
 	
-	<link rel="shortcut icon" href="/xtend/images/favicon.png">
-	
-	<link href="/xtend/css/bootstrap.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/shield-responsive.css" rel="stylesheet" type='text/css'>
-	<link href='/xtend/css/fonts.css' rel='stylesheet' type='text/css'>
-	<link href="/xtend/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
-	<link href="/xtend/css/prettify.css" type="text/css" rel="stylesheet"/>
-	<link href="/xtend/css/style.css" rel="stylesheet" type='text/css'>
-	
+	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
+	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
+	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
+	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
+	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
+	<!-- cover flow -->
+	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
 	<!--[if lt IE 9]>
-	<link href="css/iebugs.css" rel="stylesheet" type='text/css'>
+	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
 	<![endif]-->
 
 	<!-- BEGIN Cookie Consent
@@ -86,27 +87,35 @@
 
 
   <body>
+  
+    <header class="site-header">
 
-    <!-- Navbar -->
-  <div class="navbar navbar-fixed-top"
-    style="border-bottom: 1px solid #000;">
+  <!-- Navbar -->
+  <div class="navbar navbar-fixed-top">
     <div class="navbar-inner">
       <div class="container">
         <a class="btn btn-navbar" data-toggle="collapse"
           data-target=".nav-collapse"> <span class="icon-bar"></span> <span
           class="icon-bar"></span> <span class="icon-bar"></span>
-        </a> <a class="brand" href="/xtend/index.html"></a>
+        </a> <a class="brand" href="/Xtext/index.html"></a>
         <div class="nav-collapse collapse" style="height: 0px;">
           <ul class="nav">
-            <li ><a href="/xtend/download.html">Download</a></li>
-            <li ><a href="/xtend/documentation/index.html">Documentation</a></li>
-            <li ><a href="/xtend/community.html">Community</a></li>
-            <li ><a href="http://xtext.org">Xtext</a></li>
-            <li ><a href="http://www.eclipse.org">Eclipse.org</a></li>
+            <!--li ><a href="/Xtext/news.html">News</a></li-->
+            <li ><a href="/Xtext/download.html">Download</a></li>
+            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
+            <li ><a href="/Xtext/community.html">Community</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
+                <li><a href="https://typefox.io/trainings-2" target="_blank">TypeFox</a></li>
+              </ul>
+            </li>
+            <li ><a href="http://xtend-lang.org">Xtend</a></li>
           </ul>
-              <!--div class="btn-group pull-right">
-                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
-              </div-->
+          <!--div class="nav pull-right">
+            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
+          </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -114,83 +123,106 @@
   </div>
   <!-- Navbar End -->
 
+</header>
 
-    <div class="post">
 
-  <header class="post-header">
-    <h1 class="post-title">Xtend 2.7.0 Release Notes</h1>
-    <p class="post-meta">Sep 2, 2014</p>
-  </header>
-
-  <article class="post-content">
-    <p>
-  Version 2.7 got many new features, bug fixes and performance improvements (<a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&status_whiteboard=v2.7">full bugzilla list</a>). The most noteworthy changes are the following.
+    <div class="page-content">
+  <div class="wrapper">
+    <div id="page">  
+    	<div class="inner">
+    		<br/><br/>
+    		<div id="maincontainer" class="container">
+    			<div class="span8 offset1">
+    				<h1>Xtext 2.7.0 Release Notes</h1>
+    				<h4>Sep 2, 2014</h4>
+    				<br/>
+    				<p>
+  Version 2.7 got many new features, bug fixes and performance improvements (<a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&status_whiteboard=v2.7">full bugzilla list</a>). The most noteworthy changes are :
 </p>
-
-<section id="xtend_language_2_7" style="padding-top: 68px; margin-top: -68px;">
-	<h3>
-	   Language
-	</h3>
+      
+<section id="inferrer_api" style="padding-top: 68px; margin-top: -68px;">
+  <h2>Published Inferrer API of Xbase</h2>
+  <p>
+     The JVM model inferrer API, which is the heart of Xbase, has been finalized and is now public. We took the opportunity to simplify it in some places. Have a look at the <a href="https://github.com/xtext-dev/seven-languages-xtext/tree/xtext_2.7">updated seven languages example</a> for idiomatic usage of the API.
+  </p>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Sugared Lambdas With Zero And More Than Two Arguments
-	</h4>
-	<p>
-	   It is now allowed to leave out parameter declarations for all lambda expressions using a positional syntax, similar to Apple's Swift:
+<section id="xtext_performance_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h2>Performance Improvements</h2>
+  <p>
+     Xtext is now able to cancel many jobs (like refreshing the outline view) when the user starts typing, greatly improving responsiveness. Also, many UI actions can now be cancelled by hitting the "Stop" button.
+     Resource clustering is now supported in the builder participant and standalone builder, reducing the memory footprint for large projects. There is a new parallel builder participant that can be used for even more performance gains.
+  </p>
+</section>
+<section id="xtext_xcore_integration_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h2>
+     Better Integration with Xcore
+  </h2>
+  <p>
+     The "New Xtext Project" wizard now supports Xcore models and adding them to an existing mwe2 workflow is as simple as specifying them as a <code>loadedResource</code>. Xcore itself has undergone some serious performance improvements, making it suitable even for large models.
+  </p>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtext-xcore-wizard.png"/>
+</section>
+<section id="xtext_debugging_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h2>Debugging</h2>
+  <p>
+     Breakpoints can now be toggled, enabled/disabled and inspected via the ruler context menu. Partial support for conditional breakpoints was added. Content assist in the condition editor will be added in version 2.8.
+  </p>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtext-breakpoint-toggle.png"/>
+</section>
+<section id="xtext_find_references_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h2>
+     Find References improved
+  </h2>
+  <p>
+     The find references API is now available in the runtime plugin and has undergone some performance improvements.
+  </p>
+</section>
+<section id="xtext_cross_platform_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h2>
+     Cross Plattform Improvements
+  </h2>
+  <p>
+     All Xtext generator fragments now accept an explicit line delimiter, so heterogeneous teams get the same results when generating the language infrastructure.
+  </p>
+</section>
+<section id="xtend_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h1>
+     Xtend 2.7.0
+  </h1>
+</section>
+<section id="xtend_language_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h2>
+     Language
+  </h2>
+  <p>
+     It is now allowed to leave out parameter declarations for all lambda expressions using a positional syntax.
 <pre class="prettyprint lang-xtend linenums">
 #[1, 2, 3].reduce[$0 + $1]
 </pre>
-</section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Unqualified Enum Usage
-	</h4>
-	Enum constants in annotations and switch expressions can be referenced without their type name.
+  Enum constants in annotations can be referenced without their type name.
 <pre class="prettyprint lang-xtend linenums">
 @Retention(RUNTIME)
 </pre>
-</section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Inner Type of Parameterized Types
-	</h4>
-	Type inference for parameterized inner classes was improved and supports types like
+  Type inference for parameterized inner classes was improved and supports types like
 <pre class="prettyprint lang-xtend linenums">
-OuterType&LT;T&GT;.InnerType
+Option&LT;T&GT;.Some
 </pre>
-</section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Deprecated and Dead Code Analysis
-	</h4>
-	The validator will now detect use of deprecated API and is much better at finding dead code. Would you have spotted the following?
-	</p>
-	<img class="image_between_p" src="images/releasenotes/2_7_xtend-dead-code-analysis.png"/>
-	<img>
+  The validator will now detect use of deprecated API and is much better at finding dead code. Would you have spotted the following?
+  </p>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtend-dead-code-analysis.png"/>
+  <img>
 </section>
 <section id="xtend_library_2_7" style="padding-top: 68px; margin-top: -68px;">
-	<h3>
-	   Library
-	</h3>
-	</section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   New Extension Methods on Iterables
-	</h4>
-	<p>
-	   The standard library has new extension methods for <code>Iterables</code>, including <code>min</code>/<code>max</code>, <code>groupBy</code> and <code>indexed</code>.
-	</p>
+  <h2>
+     Library
+  </h2>
+  <p>
+     The standard library has new extension methods for <code>Iterables</code>, including <code>min</code>/<code>max</code>, <code>groupBy</code> and <code>indexed</code>.
+  </p>
 <pre class="prettyprint lang-xtend linenums">
 #["Xtend", "Java", "Eclipse"].maxBy[length]
 </pre>
-
-</section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   New Active Annotations
-	</h4>
-	<p>New Active Annotations have been added to free you of some repetitive tasks. The new <code>@Accessors</code> generates getters and setters, with fine grained control and even for all fields of a class if you want. The <code>@Delegate</code> annotation automatically implements the delegation pattern for you, so you only need to concentrate on methods that you actually want to implement differently than just delegating. Here is an example:</p>
+  <p>New Active Annotations have been added to free you of some repetitive tasks. The new <code>@Accessors</code> generates getters and setters, with fine grained control and even for all fields of a class if you want. The <code>@Delegate</code> annotation automatically implements the delegation pattern for you, so you only need to concentrate on methods that you actually want to implement differently than just delegating. Here is an example:</p>
 <pre class="prettyprint lang-xtend linenums">
 interface I {
 def void m1()
@@ -207,154 +239,149 @@
 @Delegate A delegate = new A
 }
 </pre>
-	<p>Other additions include <code>@ToString</code>, <code>@EqualsHashCode</code>, <code>@FinalFieldsConstructor</code> and a new <code>@Data</code> (the old one is now deprecated as well as <code>@Property</code>).</p>
-	</section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Active Annotations API Improvements
-	</h4>
-	<p>The active annotation API integrates even deeper with the IDE. Every generated element can (and should) now declare its source element. This tracing information is used in places like the outline view. A separate validation phase has been added, so the end result after running all transformations can be validated. Also, changes to classes and even arbitrary resources that the annotation processor requested are detected and lead to automatic rebuilds.</p>
+  <p>Other additions include <code>@ToString</code>, <code>@EqualsHashCode</code>, <code>@FinalFieldsConstructor</code> and a new <code>@Data</code> (the old one is now deprecated as well as <code>@Property</code>).</p>
+  <p>The active annotation API integrates even deeper with the IDE. Every generated element can (and should) now declare its source element. This tracing information is used in places like the outline view. A separate validation phase has been added, so the end result after running all transformations can be validated. Also, changes to classes and even arbitrary resources that the annotation processor requested are detected and lead to automatic rebuilds.</p>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-<h3>IDE Features</h3>
+<section id="xtend_ide_features_2_7" style="padding-top: 68px; margin-top: -68px;">
+<h2>IDE Features</h2>
 </section>
 <section id="xtend_debugging_2_7" style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Debugging
-	</h4>
-	<p>
-	   Xtend breakpoints can now have conditions. Conditions are written in Java, so you get full access even to synthetic variables inserted by the Xtend compiler. Of course you also get content assist in the condition editor.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/2_7_xtend-conditional-breakpoint.png"/>
-	<p>
-	   Breakpoints can now be toggled, enabled/disabled and inspected via the ruler context menu.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/2_7_xtext-breakpoint-toggle.png"/>
+  <h3>
+     Debugging
+  </h3>
+  <p>
+     Xtend breakpoints can now have conditions. Conditions are written in Java, so you get full access even to synthetic variables inserted by the Xtend compiler. Of course you also get content assist in the condition editor.
+  </p>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtend-conditional-breakpoint.png"/>
+  <p>
+     Breakpoints can now be toggled, enabled/disabled and inspected via the ruler context menu.
+  </p>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtext-breakpoint-toggle.png"/>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Content Assist
-	</h4>
-	<p>
-	   Content Assist has become a lot faster and more accurate at the same time. It will now also retain the "is"-prefix of boolean properties.
-	</p>
+<section id="xtend_content_assist_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h3>
+     Content Assist
+  </h3>
+  <p>
+     Content Assist has become a lot faster and more accurate at the same time. It will now also retain the "is"-prefix of boolean properties.
+  </p>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Performance Improvements
-	</h4>
-	<p>
-	   Performance has reached a new level with big improvements to Content Assist, parallel code generation and lots of fine tuning. Also, Xtend will now cancel jobs (like outline refreshing) when you start typing again, making the editor much more responsive.
-	</p>
+<section id="xtend_performance_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h3>
+     Performance Improvements
+  </h3>
+  <p>
+     Performance has reached a new level with big improvements to Content Assist, parallel code generation and lots of fine tuning. Also, Xtend will now cancel jobs (like outline refreshing) when you start typing again, making the editor much more responsive.
+  </p>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Outline with Java-Mode
-	</h4>
-	<p>
-	   The outline view now supports two modes: One shows the original Xtend AST, the other one shows the resulting Java AST. This is very useful in the presence of Active Annotations that add a lot of new members to a class.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/2_7_xtend-outline-normal.png"/>
-	<img class="image_between_p" src="images/releasenotes/2_7_xtend-outline-jvm.png"/>
+<section id="xtend_outline_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h3>
+     Outline with Java-Mode
+  </h3>
+  <p>
+     The outline view now supports two modes: One shows the original Xtend AST, the other one shows the resulting Java AST. This is very useful in the presence of Active Annotations that add a lot of new members to a class.
+  </p>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtend-outline-normal.png"/>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtend-outline-jvm.png"/>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Organize imports on packages
-	</h4>
-	<p>
-	   You can now use "Organize Xtend Imports" on whole packages via the "Source" context menu.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/2_7_xtend-organize-imports.png"/>
+<section id="xtend_organize_imports_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h3>
+     Organize imports on packages
+  </h3>
+  <p>
+     You can now use "Organize Xtend Imports" on whole packages via the "Source" context menu.
+  </p>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtend-organize-imports.png"/>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Template proposals support import
-	</h4>
-	<p>
-	   A new type of template variable was added. It adds an import to an Xtend file when the template is inserted. This greatly reduces the need for qualified type names in templates.
-	</p>
-	<img class="image_between_p" src="images/releasenotes/2_7_xtend-templates-import.png"/>
+<section id="xtend_template_proposals_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h3>
+     Template proposals support import
+  </h3>
+  <p>
+     A new type of template variable was added. It adds an import to an Xtend file when the template is inserted. This greatly reduces the need for qualified type names in templates.
+  </p>
+  <img class="image_between_p" src="/Xtext/images/releasenotes/2_7_xtend-templates-import.png"/>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Open return type
-	</h4>
-	<p>
-	   Ever wondered what you can do with the type of a variable or the return type of a method? You can now CTRL-Click on feature calls and open the declaration of the return type of that call.
-	</p>
+<section id="xtend_open_return_type_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h3>
+     Open return type
+  </h3>
+  <p>
+     Ever wondered what you can do with the type of a variable or the return type of a method? You can now CTRL-Click on feature calls and open the declaration of the return type of that call.
+  </p>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>
-	   Show errors from derived Java files
-	</h4>
-	<p>
-	   By using black box Java code within active annotations the generated Java source could sometimes have errors while the Xtend code is fine. In those cases, the errors are now shown at the appropriate locations in Xtend as well.
-	</p>
+<section id="xtend_show_java_errors_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h3>
+     Show errors from derived Java files
+  </h3>
+  <p>
+     By using black box Java code within active annotations the generated Java source could sometimes have errors while the Xtend code is fine. In those cases, the errors are now shown at the appropriate locations in Xtend as well.
+  </p>
 </section>
-<section style="padding-top: 68px; margin-top: -68px;">
-	<h4>Maven and Java 8</h4>
-	<p>
-	   The Xtend Maven plugin is now toolchain-aware. Using this, you can for instance run Maven on Java 8, but compile against a JDK 6.
-	</p>
+<section id="xtend_maved_2_7" style="padding-top: 68px; margin-top: -68px;">
+  <h3>Maven and Java 8</h3>
+  <p>
+     The Xtend Maven plugin is now toolchain-aware. Using this, you can for instance run Maven on Java 8, but compile against a JDK 6.
+  </p>
 </section>
 
-  </article>
-
+    			</div>
+    		</div>
+      </div>
+    </div>
+  </div>
 </div>
-
     
     <footer class="site-footer">
   <div id="extra">
-    <div class="container inner-footer">
-      <div class="row">
-        <div class="span6">
-          <h3 class="footer-links-header">Quick Links</h3>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
-            <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
-            <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
-            <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
-          </ul>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
-            <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
-            <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
-            <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
-          </ul>
-        </div>
-        <div class="span6">
+    <div class="inner">
+      <div class="container">
+        <div class="row">
+          <div class="span6">
+            <h3 class="footer-links-header">Quick Links</h3>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+              <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+              <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+              <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
+            </ul>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
+              <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
+              <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
+              <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
+            </ul>
+          </div>
+          <div class="span6">
             <!-- Social Media Links -->
             <h3 class="footer-links-header"">Social Media</h3>
             <ul class="footer-links clearfix">
               <li>
-                <a href="https://twitter.com/xtendlang"><img src="/xtend/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtendlang on Twitter</a>
+                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
               </li>
             </ul>
           </div>
-
+        </div>
       </div>
     </div>
   </div>
   <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
-  <a href="http://dryicons.com/">Icons by http://dryicons.com</a>
   <!-- Le javascript
       ================================================== -->
   <!-- Placed at the end of the document so the pages load faster -->
-  <script src="/xtend/js/jquery-1.7.1.min.js" type="text/javascript"></script>
-  <script src="/xtend/js/bootstrap.min.js" type="text/javascript"></script>
   
-  <!-- include pretty-print files -->
-  <script src="/xtend/js/prettify.js" type="text/javascript" ></script>
-  <script src="/xtend/js/lang-xtend.js" type="text/javascript"></script>
-  
-  <!-- Include the plug-in -->
-  <script src="/xtend/js/jquery.prettyPhoto.js" type="text/javascript"></script>
-  <script src="/xtend/js/jquery.easing.1.3.js" type="text/javascript"></script>
-  <script src="/xtend/js/custom.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
+  <script src="/Xtext/js/bootstrap.min.js"></script>
+  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
+  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
+  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
   <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
   <!--script type="text/javascript">
     var _gaq = _gaq || [];  
-      _gaq.push([ '_setAccount', 'UA-2429174-4' ]);
+      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -367,8 +394,31 @@
       s.parentNode.insertBefore(ga, s);
     })();
   </script-->
+  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
+  <script>
+      $(function() {
+        $('#coverflow').coverflow({
+          active : 1,
+          visibleAside: 2,
+          overlap : 0.5,
+          scale : 0.9,
+          angle : 20,
+          trigger : {
+            "itemfocus" : true,
+            "swipe" : true,
+            "mousewheel" : false
+          }
+        });
+        $('#coverflow :hidden').toggle();
+        $(window).resize(function() {
+          $('#coverflow').coverflow();
+        });
+      });
+
+  </script>
 </footer>
 
+
   </body>
 
 </html>
diff --git a/releasenotes/2015/03/11/version-2-8-0.html b/releasenotes/2015/03/11/version-2-8-0.html
index 77d7ce4..5c80ea7 100644
--- a/releasenotes/2015/03/11/version-2-8-0.html
+++ b/releasenotes/2015/03/11/version-2-8-0.html
@@ -3,10 +3,11 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtend - Xtend 2.8.0 Release Notes</title>
+	<title>Xtext - Xtext 2.8.0 Release Notes</title>
+	
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="Xtend is a statically typed programming language sitting on top of Java.">
+		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -16,19 +17,19 @@
 	<![endif]-->
 	
 	<!-- Le fav and touch icons -->
+	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
 	
-	<link rel="shortcut icon" href="/xtend/images/favicon.png">
-	
-	<link href="/xtend/css/bootstrap.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/shield-responsive.css" rel="stylesheet" type='text/css'>
-	<link href='/xtend/css/fonts.css' rel='stylesheet' type='text/css'>
-	<link href="/xtend/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
-	<link href="/xtend/css/prettify.css" type="text/css" rel="stylesheet"/>
-	<link href="/xtend/css/style.css" rel="stylesheet" type='text/css'>
-	
+	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
+	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
+	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
+	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
+	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
+	<!-- cover flow -->
+	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
 	<!--[if lt IE 9]>
-	<link href="css/iebugs.css" rel="stylesheet" type='text/css'>
+	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
 	<![endif]-->
 
 	<!-- BEGIN Cookie Consent
@@ -86,27 +87,35 @@
 
 
   <body>
+  
+    <header class="site-header">
 
-    <!-- Navbar -->
-  <div class="navbar navbar-fixed-top"
-    style="border-bottom: 1px solid #000;">
+  <!-- Navbar -->
+  <div class="navbar navbar-fixed-top">
     <div class="navbar-inner">
       <div class="container">
         <a class="btn btn-navbar" data-toggle="collapse"
           data-target=".nav-collapse"> <span class="icon-bar"></span> <span
           class="icon-bar"></span> <span class="icon-bar"></span>
-        </a> <a class="brand" href="/xtend/index.html"></a>
+        </a> <a class="brand" href="/Xtext/index.html"></a>
         <div class="nav-collapse collapse" style="height: 0px;">
           <ul class="nav">
-            <li ><a href="/xtend/download.html">Download</a></li>
-            <li ><a href="/xtend/documentation/index.html">Documentation</a></li>
-            <li ><a href="/xtend/community.html">Community</a></li>
-            <li ><a href="http://xtext.org">Xtext</a></li>
-            <li ><a href="http://www.eclipse.org">Eclipse.org</a></li>
+            <!--li ><a href="/Xtext/news.html">News</a></li-->
+            <li ><a href="/Xtext/download.html">Download</a></li>
+            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
+            <li ><a href="/Xtext/community.html">Community</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
+                <li><a href="https://typefox.io/trainings-2" target="_blank">TypeFox</a></li>
+              </ul>
+            </li>
+            <li ><a href="http://xtend-lang.org">Xtend</a></li>
           </ul>
-              <!--div class="btn-group pull-right">
-                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
-              </div-->
+          <!--div class="nav pull-right">
+            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
+          </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -114,154 +123,246 @@
   </div>
   <!-- Navbar End -->
 
+</header>
 
-    <div class="post">
 
-  <header class="post-header">
-    <h1 class="post-title">Xtend 2.8.0 Release Notes</h1>
-    <p class="post-meta">Mar 11, 2015</p>
-  </header>
+    <div class="page-content">
+  <div class="wrapper">
+    <div id="page">  
+    	<div class="inner">
+    		<br/><br/>
+    		<div id="maincontainer" class="container">
+    			<div class="span8 offset1">
+    				<h1>Xtext 2.8.0 Release Notes</h1>
+    				<h4>Mar 11, 2015</h4>
+    				<br/>
+    				<p>Version 2.8.0 comes with over 260 bugfixes and enhancements, the runtime performance as well as the tool performance has been improved significantly. The full bugzilla log can be found <a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;j1=OR&amp;list_id=11172029&amp;query_format=advanced&amp;status_whiteboard=v2.8&amp;status_whiteboard_type=allwordssubstr">here</a>.</p>
 
-  <article class="post-content">
-    <p>Version 2.8 got many new features, bug fixes, and performance improvements (<a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;list_id=11217573&amp;query_format=advanced&amp;status_whiteboard=v2.8&amp;status_whiteboard_type=allwordssubstr">full bugzilla list</a>).</p>
+<p>The following features have been added in particular.</p>
 
-<p>The most noteworthy changes are the following.</p>
+<h2 id="whitespace-aware-languages">Whitespace-Aware Languages</h2>
 
-<h2 id="target-java-version">Target Java Version</h2>
+<p>Xtext 2.8 supports languages in which whitespace is used to specify the structure, e.g. using indentation to delimit code blocks as in <a href="https://www.python.org">Python</a>. This is done through <em>synthetic tokens</em> defined in the grammar:</p>
+
+<pre><code class="language-xtext">terminal BEGIN: 'synthetic:BEGIN';
+terminal END: 'synthetic:END';
+</code></pre>
+
+<p>These tokens can be used like other terminals in grammar rules:</p>
+
+<pre><code class="language-xtext">WhitespaceAwareBlock:
+    BEGIN
+        ...
+    END;
+</code></pre>
+
+<p>The new example language <em>Home Automation</em> available in the Eclipse examples (<em>File → New → Example → Xtext Examples</em>) demonstrates this concept. It allows code like the following:</p>
+
+<pre><code class="language-ruleengine">Rule 'Report error' when Heater.error then
+    var String report
+    do
+        Thread.sleep(500)
+        report = HeaterDiagnostic.readError
+    while (report == null)
+    println(report)
+</code></pre>
+
+<p>More details are found in the <a href="/Xtext/documentation/307_special_languages.html#whitespace-aware-languages">documentation</a>.</p>
+
+<h2 id="enhancements-of-the-grammar-editor">Enhancements of the Grammar Editor</h2>
+
+<h4 id="configurable-severities">Configurable Severities</h4>
+<p>You can configure the severity (<em>ignore / warning / error</em>) of certain problems that are detected in a grammar file. Open <em>Xtext → Errors/Warnings</em> in the workspace preferences for global settings or in the project properties for project-specific settings.</p>
+
+<p><img src="/Xtext/images/releasenotes/2_8_xtext-validation-preferences.png" alt="" /></p>
+
+<h4 id="improved-content-assist">Improved Content Assist</h4>
+<p>When you hit <em>Ctrl+Space</em> after the <code>with</code> keyword in a grammar definition, you get a list of available grammars which the currently edited grammar can inherit from.</p>
+
+<p><img src="/Xtext/images/releasenotes/2_8_xtext-grammar-inheritance.png" alt="" /></p>
+
+<h2 id="new-options-for-language-code-generation">New Options for Language Code Generation</h2>
+
+<p>The <em>Generator</em> component supports two new options.</p>
+
+<h4 id="class-annotations">Class Annotations</h4>
+
+<p>You can specify annotations to be added to each generated Java class. With the following workflow configuration, the annotation <code>@Generated</code> is added to each class:</p>
+
+<pre><code class="language-mwe2">Workflow {
+  component = Generator {
+      classAnnotation = GeneratedClassAnnotation {}
+      ...
+  }
+}
+</code></pre>
+
+<p>You can also specify your own class annotations by implementing the interface <em>IClassAnnotation</em> and adding that implementation to the configuration.</p>
+
+<h4 id="file-header">File Header</h4>
+
+<p>Xtext generates Java files with the following file header comment:</p>
+
+<pre><code class="language-java">/*
+ * generated by Xtext
+ */
+</code></pre>
+
+<p>With Xtext 2.8, this can be configured in the workflow configuration with the <em>fileHeader</em> property of the <em>Generator</em> component.</p>
+
+<pre><code class="language-mwe2">var myFileHeader = "/*----------------------------
+ * My fancy file header
+ * (c) \${year} Dr. Evil, inc.
+ *----------------------------*/"
+
+Workflow {
+  component = Generator {
+      fileHeader = myFileHeader
+      ...
+  }
+}
+</code></pre>
+
+<h2 id="target-java-version-xbase">Target Java Version (Xbase)</h2>
 
 <p>The new version of the Xbase compiler allows to configure the Java version of the generated code. The default is to use the same version as set for the source compatibility of the Java compiler (<em>Java → Compiler → Source compatibility</em>), which is in turn usually set to the same version as the <em>compiler compliance level</em>. The Xbase compiler settings can be configured in the <em>Compiler</em> preference page or project properties page of your Xbase language.</p>
 
-<p><img src="/xtend/images/releasenotes/2_8_xbase-java-version.png" alt="" /></p>
+<p><img src="/Xtext/images/releasenotes/2_8_xbase-java-version.png" alt="" /></p>
 
 <p>By unchecking <em>Use source compatibility level from Java settings</em>, you can choose to generate Java code with a different version than is set for the Java compiler. The actual changes in the generated code are described in the following.</p>
 
 <h3 id="java-5">Java 5</h3>
 
-<p>Java 5 has been the version level of the Xtend compiler from the beginning, so the generated code is the same as with earlier Xtend versions if you choose this target version.</p>
+<p>Java 5 has been the default version level of the Xbase compiler from the beginning, so the generated code is the same as with earlier Xbase versions if you choose this target version.</p>
 
 <h3 id="java-6">Java 6</h3>
 
-<p>When the Xtend compiler is set to at least Java 6, it generates an <code>@Override</code> annotation to each method that overrides a method from a superclass or implements an interface method.</p>
+<p>When the Xbase compiler is set to at least Java 6, it generates an <code>@Override</code> annotation to each method that overrides a method from a superclass or implements an interface method.</p>
 
 <h3 id="java-7">Java 7</h3>
 
-<p>Xtend expressions like <code>switch (obj) { ... }</code> where <code>obj</code> is of type <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html">String</a> are translated to Java <code>switch</code> statements (see <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/language/strings-switch.html">Strings in switch Statements</a>).</p>
+<p>Xbase expressions like <code>switch (obj) { ... }</code> where <code>obj</code> is of type <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html">String</a> are translated to Java <code>switch</code> statements (see <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/language/strings-switch.html">Strings in switch Statements</a>).</p>
 
-<p>In Xtend you can write number literals in the form <code>2_147_483_647</code> to enhance their readability. This is also <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/language/underscores-literals.html">supported by Java 7</a>. When the Xtend compiler is set to at least Java 7, underscores in number literals are retained in the generated code.</p>
+<p>In Xbase you can write number literals in the form <code>2_147_483_647</code> to enhance their readability. This is also <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/language/underscores-literals.html">supported by Java 7</a>. When the Xbase compiler is set to at least Java 7, underscores in number literals are retained in the generated code.</p>
 
 <h3 id="java-8">Java 8</h3>
 
-<p><a href="/xtend/documentation/203_xtend_expressions.html#lambdas">Xtend lambda expressions</a> like <code>[String s | s.toLowerCase]</code> are translated to <a href="http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html">Java 8 lambda expressions</a>, e.g. <code>(String s) -&gt; return s.toLowerCase();</code>. More details on this translation are discussed in <a href="http://spoenemann.blogspot.de/2015/02/xtend-for-java-8.html">this blog post</a>.</p>
+<p><a href="/Xtext/documentation/305_xbase.html#xbase-expressions-lambda">Xbase lambda expressions</a> like <code>[String s | s.toLowerCase]</code> are translated to <a href="http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html">Java 8 lambda expressions</a>, e.g. <code>(String s) -&gt; return s.toLowerCase();</code>. More details on this translation are discussed in <a href="http://spoenemann.blogspot.de/2015/02/xtend-for-java-8.html">this blog post</a>.</p>
 
-<p>Note that independent of which Java version is chosen for the generated code, Xtend works perfectly with the <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/language/lambda_api_jdk8.html">lambda-optimized Java 8 API</a> because Xtend lambdas are fully compatible with Java 8 lambdas.</p>
+<p>Note that independent of which Java version is chosen for the generated code, Xbase works perfectly with the <a href="http://docs.oracle.com/javase/8/docs/technotes/guides/language/lambda_api_jdk8.html">lambda-optimized Java 8 API</a> because Xbase lambdas are fully compatible with Java 8 lambdas.</p>
 
-<p>Xtend allows to define non-abstract methods (static or non-static) in interfaces when Java 8 is chosen as target language level. If such a method is non-static, it is translated to a <a href="http://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html">Java 8 default method</a>.</p>
-
-<h2 id="more-compiler-options">More Compiler Options</h2>
+<h2 id="more-compiler-options-xbase">More Compiler Options (Xbase)</h2>
 
 <p>You can now disable the automatic generation of <code>@SuppressWarnings</code> annotations for generated classes. Furthermore, you can enable the generation of <code>@Generated</code> annotations for all generated types, which can be useful for automatic processing of the source code, e.g. when you want to exclude generated types in code analysis tools. The annotation also allows to attach more information, which can be enabled in the preferences.</p>
 
-<h2 id="enhancements-of-the-xtend-editor">Enhancements of the Xtend Editor</h2>
+<h2 id="unique-class-name-validation-xbase">Unique Class Name Validation (Xbase)</h2>
 
-<h3 id="open-generated-file">Open Generated File</h3>
+<p>Unique Java type name checks are now activated for all Xbase languages on a per project level.</p>
 
-<p>You can open the Java file that was generated from Xtend by right-clicking the Xtend editor and selecting <em>Open Generated File</em>.</p>
+<h2 id="open-generated-file-xbase">Open Generated File (Xbase)</h2>
 
-<p><img src="/xtend/images/releasenotes/2_8_xbase-open-generated.png" alt="" /></p>
+<p>You can open the Java file that was generated from an Xbase DSL instance by right-clicking the DSL editor and selecting <em>Open Generated File</em>.</p>
 
-<h3 id="open-inferred-type">Open Inferred Type</h3>
+<p><img src="/Xtext/images/releasenotes/2_8_xbase-open-generated.png" alt="" /></p>
 
-<p>You can open the declaration of the inferred type of a local variable by <em>Ctrl</em>-clicking (<em>Cmd</em> on Mac) the variable name.</p>
+<h2 id="interruption-of-incremental-build">Interruption of Incremental Build</h2>
 
-<p><img src="/xtend/images/releasenotes/2_8_open-inferred-type.png" alt="" /></p>
+<p>Instead of blocking the user with a modal dialog, running incremental builds will be now get interrupted when a user saves a file. Less blocking, yay!</p>
 
-<h3 id="improved-hover-for-annotations">Improved Hover for Annotations</h3>
+<h2 id="new-formatter-provisional">New Formatter (Provisional)</h2>
 
-<p>Hovers of annotated members have been improved and allow to navigate to annotation values.</p>
+<p>Xtext 2.8 comes with a new formatting API in addition to the previous API. The new API allows to implement formatting not only based on the static structure of the grammar but also on the actual model structure. This overcomes many limitations of the previous API, which was present since the first version of Xtext. Things that are now possible include:</p>
 
-<h3 id="unique-class-name-validation">Unique Class Name Validation</h3>
+<ul>
+  <li>Add line breaks to long lists of items but keep short lists in one line.</li>
+  <li>Arrange elements in a tabular layout.</li>
+  <li>Apply formatting to values of data type rules or comments.</li>
+  <li>Consider the existing whitespace information and implement an adaptive layout.</li>
+  <li>Provide user configurable preferences for the formatting settings.</li>
+</ul>
 
-<p>If your Xtend type’s qualified name collides with another Java or Xtend type in the same project you now get an error.</p>
+<p>More details are found in the <a href="/Xtext/documentation/303_runtime_concepts.html#formatting">documentation</a>.</p>
 
-<h2 id="convert-java-to-xtend">Convert Java to Xtend</h2>
+<h2 id="storable-resources-provisional">Storable Resources (Provisional)</h2>
 
+<p>Full resolution of Xtext resources can be very expensive. During compilation, complex languages like Xtend go through different phases that involve a lot of computation. With 2.8 we have introduced the possibility to store computed resource state and load it on demand if no changes are expected. We have activated this for Xtend and it reduces the amount of work for incremental changes significantly as dependent resources get loaded from storage much quicker. The API is still provisional for now.</p>
+
+<h2 id="xtend-features">Xtend Features</h2>
+
+<h4 id="convert-java-to-xtend">Convert Java to Xtend</h4>
 <p>The new version features a Java-to-Xtend converter. Right-click a Java file, package or source folder in the Package Explorer and select <em>Convert to Xtend</em>. You can choose to keep the original Java files (though that will lead to errors due to duplicate types), and you are warned if the Java code contains parts that cannot be translated automatically. These are marked with <code>FIXME</code> comments in the Xtend code. However, the converter is able to convert the majority of Java classes without problems.</p>
 
-<p><img src="/xtend/images/releasenotes/2_8_java-convert-to-xtend.png" alt="" /></p>
+<h4 id="more-java-8-support">More Java 8 Support</h4>
+<p>The new version of Xtend of course includes all enhancements of Xbase described above, including support for Java 8. In addition, Xtend allows to define non-abstract methods (static or non-static) in interfaces when Java 8 is chosen as target language level. If such a method is non-static, it is translated to a <a href="http://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html">Java 8 default method</a>.</p>
 
-<h2 id="active-annotations">Active Annotations</h2>
+<h2 id="important-changes">Important Changes</h2>
 
-<h4 id="constant-field-initializer">Constant Field Initializer</h4>
+<h4 id="execution-environment">Execution Environment</h4>
+<p>All Xtext plug-ins now require JavaSE-1.6 as execution environment. Furthermore, the Java code generated by Xtext uses <code>@Override</code> annotations for methods overriding or implementing other declared methods, so the plug-ins into which this code is generated must use at least JavaSE-1.6 as execution environment. If your plug-ins are set to J2SE-1.5 and you run the Xtext 2.8 code generator, you will probably get compiler errors like <em>The method ‘m’ of type ‘T’ must override a superclass method</em>; eliminate them by switching to a higher Java version.</p>
 
-<p><em>MutableFieldDeclaration</em> now features a set of methods like <code>setConstantValueAsInt(int value)</code> for creating static final fields with constant initializers. All primitive values as well as <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html">String</a> are supported.</p>
+<h4 id="regenerate-your-xbase-languages">Regenerate Your Xbase Languages</h4>
+<p>Xbase languages need to be regenerated once in order to work with version 2.8.</p>
 
-<h4 id="default-methods">Default Methods</h4>
+<h4 id="expiring-junit-3-support">Expiring JUnit 3 Support</h4>
+<p>We are planing to remove support for JUnit version 3. The code form the plug-ins <code>org.eclipse.xtext.junit</code> and <code>org.eclipse.xtext.ui.junit</code> will be removed from our repository in the next version. Please migrate to the respective counterparts in <code>org.eclipse.xtext.junit4</code>.</p>
 
-<p>If the Xtend compiler is set to Java 8, you can create a method with default implementation in a Java interface by defining a method body and setting the <em>abstract</em> flag on the <em>MutableMethodDeclaration</em>.</p>
-
-<h2 id="faster-builds-and-more-responsive-ui">Faster Builds and More Responsive UI</h2>
-
-<p>Compiling an Xtend resource involves a lot of computation. With 2.8 we store the computed resource state and reload it if no changes have happened. This leads to a significantly faster build.</p>
-
-<p>Into the bargain, user actions like saving an editor now cancel the auto-build and are no longer blocked by it.</p>
-
-  </article>
-
+    			</div>
+    		</div>
+      </div>
+    </div>
+  </div>
 </div>
-
     
     <footer class="site-footer">
   <div id="extra">
-    <div class="container inner-footer">
-      <div class="row">
-        <div class="span6">
-          <h3 class="footer-links-header">Quick Links</h3>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
-            <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
-            <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
-            <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
-          </ul>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
-            <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
-            <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
-            <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
-          </ul>
-        </div>
-        <div class="span6">
+    <div class="inner">
+      <div class="container">
+        <div class="row">
+          <div class="span6">
+            <h3 class="footer-links-header">Quick Links</h3>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+              <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+              <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+              <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
+            </ul>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
+              <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
+              <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
+              <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
+            </ul>
+          </div>
+          <div class="span6">
             <!-- Social Media Links -->
             <h3 class="footer-links-header"">Social Media</h3>
             <ul class="footer-links clearfix">
               <li>
-                <a href="https://twitter.com/xtendlang"><img src="/xtend/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtendlang on Twitter</a>
+                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
               </li>
             </ul>
           </div>
-
+        </div>
       </div>
     </div>
   </div>
   <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
-  <a href="http://dryicons.com/">Icons by http://dryicons.com</a>
   <!-- Le javascript
       ================================================== -->
   <!-- Placed at the end of the document so the pages load faster -->
-  <script src="/xtend/js/jquery-1.7.1.min.js" type="text/javascript"></script>
-  <script src="/xtend/js/bootstrap.min.js" type="text/javascript"></script>
   
-  <!-- include pretty-print files -->
-  <script src="/xtend/js/prettify.js" type="text/javascript" ></script>
-  <script src="/xtend/js/lang-xtend.js" type="text/javascript"></script>
-  
-  <!-- Include the plug-in -->
-  <script src="/xtend/js/jquery.prettyPhoto.js" type="text/javascript"></script>
-  <script src="/xtend/js/jquery.easing.1.3.js" type="text/javascript"></script>
-  <script src="/xtend/js/custom.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
+  <script src="/Xtext/js/bootstrap.min.js"></script>
+  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
+  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
+  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
   <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
   <!--script type="text/javascript">
     var _gaq = _gaq || [];  
-      _gaq.push([ '_setAccount', 'UA-2429174-4' ]);
+      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -274,8 +375,31 @@
       s.parentNode.insertBefore(ga, s);
     })();
   </script-->
+  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
+  <script>
+      $(function() {
+        $('#coverflow').coverflow({
+          active : 1,
+          visibleAside: 2,
+          overlap : 0.5,
+          scale : 0.9,
+          angle : 20,
+          trigger : {
+            "itemfocus" : true,
+            "swipe" : true,
+            "mousewheel" : false
+          }
+        });
+        $('#coverflow :hidden').toggle();
+        $(window).resize(function() {
+          $('#coverflow').coverflow();
+        });
+      });
+
+  </script>
 </footer>
 
+
   </body>
 
 </html>
diff --git a/releasenotes/2017/02/01/version-2-11-0.html b/releasenotes/2017/02/01/version-2-11-0.html
index 31e005d..b370c17 100644
--- a/releasenotes/2017/02/01/version-2-11-0.html
+++ b/releasenotes/2017/02/01/version-2-11-0.html
@@ -3,10 +3,11 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtend - Xtend 2.11.0 Release Notes</title>
+	<title>Xtext - Xtext 2.11.0 Release Notes</title>
+	
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="Xtend is a statically typed programming language sitting on top of Java.">
+		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -16,19 +17,19 @@
 	<![endif]-->
 	
 	<!-- Le fav and touch icons -->
+	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
 	
-	<link rel="shortcut icon" href="/xtend/images/favicon.png">
-	
-	<link href="/xtend/css/bootstrap.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/shield-responsive.css" rel="stylesheet" type='text/css'>
-	<link href='/xtend/css/fonts.css' rel='stylesheet' type='text/css'>
-	<link href="/xtend/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
-	<link href="/xtend/css/prettify.css" type="text/css" rel="stylesheet"/>
-	<link href="/xtend/css/style.css" rel="stylesheet" type='text/css'>
-	
+	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
+	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
+	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
+	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
+	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
+	<!-- cover flow -->
+	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
 	<!--[if lt IE 9]>
-	<link href="css/iebugs.css" rel="stylesheet" type='text/css'>
+	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
 	<![endif]-->
 
 	<!-- BEGIN Cookie Consent
@@ -86,27 +87,35 @@
 
 
   <body>
+  
+    <header class="site-header">
 
-    <!-- Navbar -->
-  <div class="navbar navbar-fixed-top"
-    style="border-bottom: 1px solid #000;">
+  <!-- Navbar -->
+  <div class="navbar navbar-fixed-top">
     <div class="navbar-inner">
       <div class="container">
         <a class="btn btn-navbar" data-toggle="collapse"
           data-target=".nav-collapse"> <span class="icon-bar"></span> <span
           class="icon-bar"></span> <span class="icon-bar"></span>
-        </a> <a class="brand" href="/xtend/index.html"></a>
+        </a> <a class="brand" href="/Xtext/index.html"></a>
         <div class="nav-collapse collapse" style="height: 0px;">
           <ul class="nav">
-            <li ><a href="/xtend/download.html">Download</a></li>
-            <li ><a href="/xtend/documentation/index.html">Documentation</a></li>
-            <li ><a href="/xtend/community.html">Community</a></li>
-            <li ><a href="http://xtext.org">Xtext</a></li>
-            <li ><a href="http://www.eclipse.org">Eclipse.org</a></li>
+            <!--li ><a href="/Xtext/news.html">News</a></li-->
+            <li ><a href="/Xtext/download.html">Download</a></li>
+            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
+            <li ><a href="/Xtext/community.html">Community</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
+                <li><a href="https://typefox.io/trainings-2" target="_blank">TypeFox</a></li>
+              </ul>
+            </li>
+            <li ><a href="http://xtend-lang.org">Xtend</a></li>
           </ul>
-              <!--div class="btn-group pull-right">
-                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
-              </div-->
+          <!--div class="nav pull-right">
+            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
+          </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -114,34 +123,82 @@
   </div>
   <!-- Navbar End -->
 
+</header>
 
-    <div class="post">
 
-  <header class="post-header">
-    <h1 class="post-title">Xtend 2.11.0 Release Notes</h1>
-    <p class="post-meta">Feb 1, 2017</p>
-  </header>
+    <div class="page-content">
+  <div class="wrapper">
+    <div id="page">  
+    	<div class="inner">
+    		<br/><br/>
+    		<div id="maincontainer" class="container">
+    			<div class="span8 offset1">
+    				<h1>Xtext 2.11.0 Release Notes</h1>
+    				<h4>Feb 1, 2017</h4>
+    				<br/>
+    				<p>Version 2.11.0 is the first release of Xtext after its big internal restructuring. The successful core of Xtext is used in many applications and projects around the world, as a result our main focus for 2.11 has been keeping the high quality and stability of the project while setting the course for a more sustainable future.</p>
 
-  <article class="post-content">
-    <p>Xtend version 2.11 comes with a new source repository and plenty of improvements and bug fixes.</p>
+<h2 id="restructuring-and-build">Restructuring and Build</h2>
 
-<h2 id="new-source-repository">New Source Repository</h2>
+<p>Xtext and Xtend used to be one big Git repository containing all sources for Eclipse, IDEA, Web integration etc. As of 2.11, we split that into multiple smaller repository, such that you can choose yourself which ones you need. These are</p>
 
-<p>The Xtend code base has been moved to a dedicated repository <a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a> in the course of the restructuring of Xtext (see the <a href="https://www.eclipse.org/Xtext/releasenotes.html">Xtext 2.11.0 Release Notes</a>).</p>
+<ul>
+  <li><a href="https://github.com/eclipse/xtext-core">xtext-core</a>: The core framework, <a href="https://github.com/Microsoft/vscode-languageserver-protocol">Language Server</a> support</li>
+  <li><a href="https://github.com/eclipse/xtext-lib">xtext-lib</a>: Libraries for <a href="/Xtext/documentation/305_xbase.html">Xbase</a> and <a href="http://www.xtend-lang.org">Xtend</a></li>
+  <li><a href="https://github.com/eclipse/xtext-extras">xtext-extras</a>: Additional editor-independent features, mostly Java support</li>
+  <li><a href="https://github.com/eclipse/xtext-eclipse">xtext-eclipse</a>: Plug-ins for <a href="http://eclipse.org">Eclipse</a></li>
+  <li><a href="https://github.com/eclipse/xtext-idea">xtext-idea</a>: Plug-ins for <a href="https://www.jetbrains.com/idea/">IntelliJ IDEA</a></li>
+  <li><a href="https://github.com/eclipse/xtext-web">xtext-web</a>: Support for <a href="http://eclipse.org/orion/">Orion</a>, <a href="http://ace.c9.io">Ace</a> and <a href="https://codemirror.net">CodeMirror</a></li>
+  <li><a href="https://github.com/eclipse/xtext-maven">xtext-maven</a>: Support for <a href="https://maven.apache.org">Maven</a></li>
+  <li><a href="https://github.com/eclipse/xtext-xtend">xtext-xtend</a>: The <a href="http://www.xtend-lang.org">Xtend</a> language</li>
+  <li><a href="https://github.com/eclipse/xtext-umbrella">xtext-umbrella</a>: Common Eclipse features and P2 update sites</li>
+</ul>
 
-<h2 id="the-xtend-language-and-library">The Xtend Language and Library</h2>
+<p>In addition to that, we use Gradle now to build all non-Eclipse artifacts and Maven/Tycho for the Eclipse plug-ins. We have also set up a very sophisticated staged Jenkins build that allows to build from individual branches as well.</p>
 
-<h3 id="string-concatenation-performance-improvements">String Concatenation Performance Improvements</h3>
+<h2 id="language-server-protocol">Language Server Protocol</h2>
 
-<p>The performance of string concatenation, e.g. as used for rich strings, <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=427909">has been improved</a>. This change has important consequences for working with Xtend: you should make sure that you use consistent versions of Xtend in your host IDE and your target platform in order to avoid <a href="https://github.com/eclipse/xtext-xtend/issues/122">compatibility problems</a>.</p>
+<p>With 2.11 the Xtext project supports the <a href="https://github.com/Microsoft/language-server-protocol">language server protocol</a> (LSP), which will allow users to host their languages in many different editors. So far LSP support for <a href="https://code.visualstudio.com/">VS Code</a>, the Eclipse IDE, <a href="https://www.eclipse.org/che/">Eclipse Che</a>, <a href="https://orionhub.org">Eclipse Orion</a>, and Emacs exists. Furthermore Microsoft’s Monaco editor provides support and can be integrated in any JavaScript application.</p>
 
-<h3 id="improved-compiler">Improved Compiler</h3>
+<p>The LSP support in Xtext v2.11 is marked as provisional to leave open the possibility to further enhance the architecture and API. That said it is known to be used in commercial products already. Also in the long term the LSP support might replace the native <a href="/Xtext/documentation/330_web_support.html">web-editor support</a>.</p>
 
-<p>The Java code produced by the Xtend compiler is now <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=492072">less verbose and more readable</a>. For many situations Xtend does not produce synthetic variables anymore.</p>
+<p><img src="/Xtext/images/releasenotes/2_11_vscode_example.png" alt="" /></p>
+
+<h2 id="idea-support">IDEA Support</h2>
+
+<p>The IntelliJ IDEA integration of Xtext is currently lacking contributors. Therefore, unfortunately, the IDEA support has <strong>not</strong> been part of the 2.11 release. <a href="https://github.com/eclipse/xtext-idea/issues">Contributions are very welcome</a>!</p>
+
+<h2 id="important-changes">Important Changes</h2>
+
+<h3 id="execution-environment">Execution Environment</h3>
+
+<p>All Xtext plug-ins now require JavaSE-1.8 as execution environment. The minimal supported target platform is Eclipse Luna.</p>
+
+<h3 id="testing-projects">Testing Projects</h3>
+
+<p>There are new projects <code>org.eclipse.xtext.testing</code> for general testing utility and <code>org.eclipse.xtext.xbase.testing</code> for testing Xbase languages. These projects contain the platform-independent code from <code>org.eclipse.xtext.junit4</code> and <code>org.eclipse.xtext.xbase.junit</code>, respectively. The classes that have been copied to the new <code>testing</code> projects are now marked as deprecated in the old <code>junit</code> projects, but those can still be used for testing Eclipse UI features.</p>
+
+<h3 id="ide-guice-module">IDE Guice Module</h3>
+
+<p>Xtext uses <a href="/Xtext/documentation/302_configuration.html#dependency-injection">dependency injection with Guice</a> for language-specific configuration. There are separated hierarchies of Guice modules that aim at different integration platforms: <a href="https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext/src/org/eclipse/xtext/service/DefaultRuntimeModule.java">Runtime</a> (core services used by all language integrations), <a href="https://github.com/eclipse/xtext-eclipse/blob/master/org.eclipse.xtext.ui/src/org/eclipse/xtext/ui/DefaultUiModule.java">Eclipse</a>, <a href="https://github.com/eclipse/xtext-idea/blob/master/org.eclipse.xtext.idea/src/org/eclipse/xtext/idea/DefaultIdeaModule.xtend">IDEA</a>, and <a href="https://github.com/eclipse/xtext-web/blob/master/org.eclipse.xtext.web/src/main/java/org/eclipse/xtext/web/server/DefaultWebModule.xtend">Web</a>. The 2.11 release introduces a new <a href="https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/DefaultIdeModule.xtend">IDE</a> module hierarchy, which is used for generic editor and IDE features. This new module is employed by the <a href="/Xtext/documentation/330_web_support.html">web-editor support</a> and the LSP support, but not by the Eclipse and IDEA integrations.</p>
+
+<p>The new IDE module brings reusability of many language-specific services, but the price for this is some API breakage. If you are already using the web-editor support, you’ll need to make a few changes to your language configuration:</p>
+
+<ul>
+  <li>Remove constructors from <code>&lt;Language Name&gt;WebModule</code>. ExecutorServices are now managed by the <a href="https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/ExecutorServiceProvider.xtend">ExecutorServiceProvider</a> and disposed by the <a href="https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.util/src/org/eclipse/xtext/util/DisposableRegistry.xtend">DisposableRegistry</a>.</li>
+  <li>Move custom bindings for generic IDE services from <code>&lt;Language Name&gt;WebModule</code> to the new <code>&lt;Language Name&gt;IdeModule</code> (e.g. content assist).</li>
+  <li>Fix <code>&lt;Language Name&gt;WebSetup</code> and <code>&lt;Language Name&gt;Servlet</code>; if unsure how to do that, delete them, re-run the language generator workflow, and reapply any customizations you made.</li>
+</ul>
+
+<h2 id="xbase-features">Xbase Features</h2>
+
+<h3 id="improved-xbase-compiler">Improved Xbase Compiler</h3>
+
+<p>The Java code produced by the Xbase compiler is now <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=492072">less verbose and more readable</a>. For many situations Xbase does not produce synthetic variables anymore.</p>
 
 <p>For <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=501975">switch statements on Strings</a> an additional null guard is produced. This lead to NPEs when a null argument was passed to the switch statement.</p>
 
-<p><img src="/xtend/images/releasenotes/2_11_xbase-switch-nullguard.png" alt="" /></p>
+<p><img src="/Xtext/images/releasenotes/2_11_xbase-switch-nullguard.png" alt="" /></p>
 
 <p>A for-loop over an array resulted in uncompilable Java code. This has been <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=440006">fixed</a>.</p>
 
@@ -149,75 +206,131 @@
 
 <p>For comparison expressions with <code>null</code> as argument it is more efficient to use the triple (not) equals operator <code>===</code> and <code>!==</code> instead of <code>==</code> and <code>!=</code>. While the “normal” operators will result in a call of <code>Objects.equal</code>, the triple equals operator can perform a direct comparison.</p>
 
-<p><img src="/xtend/images/releasenotes/2_11_xbase-compare-null-gen.png" alt="" /></p>
+<p><img src="/Xtext/images/releasenotes/2_11_xbase-compare-null-gen.png" alt="" /></p>
 
 <p>For these situations <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=401012">a warning is produced</a> and <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=403018">a quickfix is offered</a>.</p>
 
-<p><img src="/xtend/images/releasenotes/2_11_xbase-compare-null-quickfix.png" alt="" /></p>
+<p><img src="/Xtext/images/releasenotes/2_11_xbase-compare-null-quickfix.png" alt="" /></p>
 
-<h2 id="new-class-wizard">New Class Wizard</h2>
+<h2 id="xtext-project-wizard">Xtext Project Wizard</h2>
 
-<p>The New Xtend Class wizard has an option to create a main method.</p>
+<h3 id="usability">Usability</h3>
 
-<p><img src="/xtend/images/releasenotes/2_11_xtend-new-main-class.png" alt="" /></p>
+<p>We have examined the user experience with the New Xtext Project wizard and improved it with the input we gained from users. It was possible to enter invalid values for <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=481380">project names</a> and <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=481380">file extensions</a>, this is now checked.</p>
 
-  </article>
+<p>An usability test of the advanced configuration page revealed that especially less experienced users could had <a href="https://github.com/eclipse/xtext-eclipse/issues/119">issues with the dependencies between options</a>. From different proposals it turned out best from the user’s perspective if mandatory options are automatically selected and disable. Further an information message is presented to the user about this action. The ‘Generic IDE Support’ option gets an additional information hover.</p>
 
+<p><img src="/Xtext/images/releasenotes/2_11_project-wizard-autoselect.png" alt="" /></p>
+
+<p>The wizard’s text messages have been revised and <a href="https://github.com/eclipse/xtext-eclipse/pull/157">made consistent</a>.</p>
+
+<h3 id="line-delimiter">Line Delimiter</h3>
+
+<p>The Xtext project wizard now <a href="https://github.com/eclipse/xtext-core/issues/101">considers the workspace default line delimiter</a> and configures the generated MWE2 workflow accordingly. As a result the artifacts produced by the Xtext generator will use the same line delimiter explicitly.</p>
+
+<h3 id="tycho-build-configuration">Tycho Build Configuration</h3>
+
+<p>For projects that are created with Eclipse plug-in and Maven as build system, the generated target definition is upgraded to <a href="https://github.com/eclipse/xtext-core/issues/79">use the Eclipse Neon repository</a>. Eclipse Tycho is <a href="https://github.com/eclipse/xtext-core/issues/76">configured with version 0.25.0</a> now.</p>
+
+<h2 id="example-projects">Example Projects</h2>
+
+<p>The provided example projects have been revised and use the new generator workflow, new project structure and new testing modules.</p>
+
+<h2 id="deprecated-components">Deprecated Components</h2>
+
+<h3 id="old-xtext-generator">Old Xtext Generator</h3>
+
+<p>With Xtext 2.9 a <a href="/Xtext/releasenotes.html#/releasenotes/2015/11/16/version-2-9-0">new generator infrastructure was introduced</a>. In favor of this new generator <a href="https://github.com/eclipse/xtext-core/issues/58">the old generator has been deprecated</a>. Bugfixes will be done primarily for the new generator and most of them will not be backported, thus it is highly recommended to migrate your languages’ <code>.mwe2</code> workflows to use the new <a href="https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.xtext.generator/src/org/eclipse/xtext/xtext/generator/XtextGenerator.xtend"><code>org.eclipse.xtext.xtext.XtextGenerator</code></a> component.</p>
+
+<h3 id="running-the-language-generator-from-maven">Running the Language Generator from Maven</h3>
+
+<p>The Maven POM module <a href="http://repo1.maven.org/maven2/org/eclipse/xtext/org.eclipse.xtext.xtext/">org.eclipse.xtext.xtext</a>, which has been deprecated since 2015, is no longer published. If you use the old generator component, you should replace the <code>org.eclipse.xtext.xtext</code> dependency according to the <a href="http://repo1.maven.org/maven2/org/eclipse/xtext/org.eclipse.xtext.xtext/2.10.0/org.eclipse.xtext.xtext-2.10.0.pom">dependencies of that module</a>. The new generator component requires much fewer dependencies; a suitable configuration for it can be obtained by creating a new Maven project with the Xtext project wizard.</p>
+
+<h2 id="fixed-bugs">Fixed Bugs</h2>
+
+<h3 id="closed-memory-leaks">Closed Memory Leaks</h3>
+
+<p>The memory leak affected editors and <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=493784">downgraded performance while editing</a> resources for which JVM types are inferred (including Xtend).</p>
+
+<p>A second leak affected the <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=479328">Syntax Graph View</a> and slowed down the IDE.</p>
+
+<h3 id="performance">Performance</h3>
+
+<p>The Serializer was <a href="https://github.com/eclipse/xtext-core/issues/17">performing poor</a> for certain grammars. This has been fixed.</p>
+
+<h3 id="bug-lists">Bug Lists</h3>
+
+<p>In addition to the restructuring and the LSP support many bugs have been fixed:</p>
+
+<ul>
+  <li>
+    <p><a href="https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;bug_status=CLOSED&amp;chfield=resolution&amp;chfieldfrom=2016-06-22&amp;chfieldto=2017-01-24&amp;classification=Modeling&amp;classification=Tools&amp;columnlist=product%2Ccomponent%2Cassigned_to%2Cbug_status%2Cresolution%2Cshort_desc%2Cchangeddate%2Ckeywords&amp;f0=OP&amp;f1=OP&amp;f3=CP&amp;f4=CP&amp;known_name=Xtext%202.11&amp;list_id=15601548&amp;product=TMF&amp;product=Xtend&amp;query_based_on=Xtext%202.11&amp;query_format=advanced&amp;resolution=FIXED">Fixed Eclipse Bugzilla tickets</a></p>
+  </li>
+  <li>
+    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Aissue+milestone%3Arelease_v2.11+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;type=Issues&amp;ref=searchresults">Fixed GitHub issues</a></p>
+  </li>
+  <li>
+    <p><a href="https://github.com/search?utf8=%E2%9C%93&amp;q=is%3Apr+milestone%3Arelease_v2.11+is%3Aclosed+repo%3Aeclipse%2Fxtext+repo%3Aeclipse%2Fxtext-core+repo%3Aeclipse%2Fxtext-lib+repo%3Aeclipse%2Fxtext-extras+repo%3Aeclipse%2Fxtext-eclipse+repo%3Aeclipse%2Fxtext-idea+repo%3Aeclipse%2Fxtext-web+repo%3Aeclipse%2Fxtext-maven+repo%3Aeclipse%2Fxtext-xtend&amp;type=Issues&amp;ref=searchresults">Closed Pull Requests</a></p>
+  </li>
+</ul>
+
+    			</div>
+    		</div>
+      </div>
+    </div>
+  </div>
 </div>
-
     
     <footer class="site-footer">
   <div id="extra">
-    <div class="container inner-footer">
-      <div class="row">
-        <div class="span6">
-          <h3 class="footer-links-header">Quick Links</h3>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
-            <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
-            <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
-            <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
-          </ul>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
-            <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
-            <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
-            <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
-          </ul>
-        </div>
-        <div class="span6">
+    <div class="inner">
+      <div class="container">
+        <div class="row">
+          <div class="span6">
+            <h3 class="footer-links-header">Quick Links</h3>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+              <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+              <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+              <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
+            </ul>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
+              <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
+              <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
+              <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
+            </ul>
+          </div>
+          <div class="span6">
             <!-- Social Media Links -->
             <h3 class="footer-links-header"">Social Media</h3>
             <ul class="footer-links clearfix">
               <li>
-                <a href="https://twitter.com/xtendlang"><img src="/xtend/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtendlang on Twitter</a>
+                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
               </li>
             </ul>
           </div>
-
+        </div>
       </div>
     </div>
   </div>
   <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
-  <a href="http://dryicons.com/">Icons by http://dryicons.com</a>
   <!-- Le javascript
       ================================================== -->
   <!-- Placed at the end of the document so the pages load faster -->
-  <script src="/xtend/js/jquery-1.7.1.min.js" type="text/javascript"></script>
-  <script src="/xtend/js/bootstrap.min.js" type="text/javascript"></script>
   
-  <!-- include pretty-print files -->
-  <script src="/xtend/js/prettify.js" type="text/javascript" ></script>
-  <script src="/xtend/js/lang-xtend.js" type="text/javascript"></script>
-  
-  <!-- Include the plug-in -->
-  <script src="/xtend/js/jquery.prettyPhoto.js" type="text/javascript"></script>
-  <script src="/xtend/js/jquery.easing.1.3.js" type="text/javascript"></script>
-  <script src="/xtend/js/custom.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
+  <script src="/Xtext/js/bootstrap.min.js"></script>
+  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
+  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
+  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
   <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
   <!--script type="text/javascript">
     var _gaq = _gaq || [];  
-      _gaq.push([ '_setAccount', 'UA-2429174-4' ]);
+      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -230,8 +343,31 @@
       s.parentNode.insertBefore(ga, s);
     })();
   </script-->
+  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
+  <script>
+      $(function() {
+        $('#coverflow').coverflow({
+          active : 1,
+          visibleAside: 2,
+          overlap : 0.5,
+          scale : 0.9,
+          angle : 20,
+          trigger : {
+            "itemfocus" : true,
+            "swipe" : true,
+            "mousewheel" : false
+          }
+        });
+        $('#coverflow :hidden').toggle();
+        $(window).resize(function() {
+          $('#coverflow').coverflow();
+        });
+      });
+
+  </script>
 </footer>
 
+
   </body>
 
 </html>
diff --git a/releasenotes/2017/10/20/version-2-13-0.html b/releasenotes/2017/10/20/version-2-13-0.html
index 826f286..c50bb65 100644
--- a/releasenotes/2017/10/20/version-2-13-0.html
+++ b/releasenotes/2017/10/20/version-2-13-0.html
@@ -3,10 +3,11 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtend - Xtext 2.13.0 Release Notes</title>
+	<title>Xtext - Xtext 2.13.0 Release Notes</title>
+	
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="Xtend is a statically typed programming language sitting on top of Java.">
+		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -16,19 +17,19 @@
 	<![endif]-->
 	
 	<!-- Le fav and touch icons -->
+	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
 	
-	<link rel="shortcut icon" href="/xtend/images/favicon.png">
-	
-	<link href="/xtend/css/bootstrap.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/shield-responsive.css" rel="stylesheet" type='text/css'>
-	<link href='/xtend/css/fonts.css' rel='stylesheet' type='text/css'>
-	<link href="/xtend/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
-	<link href="/xtend/css/prettify.css" type="text/css" rel="stylesheet"/>
-	<link href="/xtend/css/style.css" rel="stylesheet" type='text/css'>
-	
+	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
+	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
+	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
+	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
+	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
+	<!-- cover flow -->
+	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
 	<!--[if lt IE 9]>
-	<link href="css/iebugs.css" rel="stylesheet" type='text/css'>
+	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
 	<![endif]-->
 
 	<!-- BEGIN Cookie Consent
@@ -86,27 +87,35 @@
 
 
   <body>
+  
+    <header class="site-header">
 
-    <!-- Navbar -->
-  <div class="navbar navbar-fixed-top"
-    style="border-bottom: 1px solid #000;">
+  <!-- Navbar -->
+  <div class="navbar navbar-fixed-top">
     <div class="navbar-inner">
       <div class="container">
         <a class="btn btn-navbar" data-toggle="collapse"
           data-target=".nav-collapse"> <span class="icon-bar"></span> <span
           class="icon-bar"></span> <span class="icon-bar"></span>
-        </a> <a class="brand" href="/xtend/index.html"></a>
+        </a> <a class="brand" href="/Xtext/index.html"></a>
         <div class="nav-collapse collapse" style="height: 0px;">
           <ul class="nav">
-            <li ><a href="/xtend/download.html">Download</a></li>
-            <li ><a href="/xtend/documentation/index.html">Documentation</a></li>
-            <li ><a href="/xtend/community.html">Community</a></li>
-            <li ><a href="http://xtext.org">Xtext</a></li>
-            <li ><a href="http://www.eclipse.org">Eclipse.org</a></li>
+            <!--li ><a href="/Xtext/news.html">News</a></li-->
+            <li ><a href="/Xtext/download.html">Download</a></li>
+            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
+            <li ><a href="/Xtext/community.html">Community</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
+                <li><a href="https://typefox.io/trainings-2" target="_blank">TypeFox</a></li>
+              </ul>
+            </li>
+            <li ><a href="http://xtend-lang.org">Xtend</a></li>
           </ul>
-              <!--div class="btn-group pull-right">
-                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
-              </div-->
+          <!--div class="nav pull-right">
+            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
+          </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -114,18 +123,215 @@
   </div>
   <!-- Navbar End -->
 
+</header>
 
-    <div class="post">
 
-  <header class="post-header">
-    <h1 class="post-title">Xtext 2.13.0 Release Notes</h1>
-    <p class="post-meta">Oct 20, 2017</p>
-  </header>
+    <div class="page-content">
+  <div class="wrapper">
+    <div id="page">  
+    	<div class="inner">
+    		<br/><br/>
+    		<div id="maincontainer" class="container">
+    			<div class="span8 offset1">
+    				<h1>Xtext 2.13.0 Release Notes</h1>
+    				<h4>Oct 20, 2017</h4>
+    				<br/>
+    				<h2 id="language-server-support">Language Server Support</h2>
 
-  <article class="post-content">
-    <h3 id="xtend-213-is-out">Xtend 2.13 is out</h3>
+<h3 id="eclipse-new-project-wizard-language-server-build">Eclipse New Project Wizard: Language Server Build</h3>
 
-<p>Xtend 2.13 is mainly a bugfix release.</p>
+<p>The New Project Wizard allows now to build an executable distribution of language server. On the advanced page a new option was added which is enabled when a Build System was selected. The option allows the selection of a distribution type:</p>
+
+<ul>
+  <li><strong>Regular</strong>: A batch script is created that is used to start the server. The DSL jars and all of its runtime dependencies are copied to the output folder.</li>
+  <li><strong>Fat Jar</strong>: The language server is packaged in a single executable jar.</li>
+</ul>
+
+<p>Both Gradle and Maven are supported. When activated, the build script of the language’s Generic IDE project is extended and the language server is packaged to the project’s build</p>
+
+<p><img src="/Xtext/images/releasenotes/2_13_project-wizard-ls.png" alt="" /></p>
+
+<h2 id="eclipse-integration">Eclipse Integration</h2>
+
+<h3 id="configuration-error-detection">Configuration Error Detection</h3>
+
+<p>Invalid combinations of bundles are a frequent source of errors. This can be caused by an invalid mixture of Xtext’s UI and runtime plugins, or by DSL plugins developed with a different version of Xtext than used in the environment where it fails.</p>
+
+<p>Although there can’t be done anything to get the plugins working on an invalid environment, the resulting failure messages were not good for the user, leaving an impression of an unstable framework.</p>
+
+<p>When running in an error during the initial creation of Guice injectors in the DSL’s UI or Xtext’s Shared UI bundle, the error is catched and an analysis of the runtime environment is included in the failure message. This allows better analysis of the root cause.</p>
+
+<h3 id="multi-quickfixes">Multi-Quickfixes</h3>
+
+<p>These are quickfixes that allow to be applied to multiple markers at once.</p>
+
+<p>TBD</p>
+
+<h3 id="better-cancellation-in-refactorings">Better Cancellation in Refactorings</h3>
+
+<p>You can how hit the cancel dialog in refactorings and it will actually cancel at the next opportunity and not at the end only.</p>
+
+<h3 id="content-type-descriptor">Content Type Descriptor</h3>
+
+<p>Xtext UI projects provide a Content Type Descriptor by contributing to the <a href="https://help.eclipse.org/oxygen/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Fguide%2Fruntime_content_contributing.htm"><code>org.eclipse.core.contenttype.contentTypes</code> extension point</a> to the <code>plugin.xml</code> file. This is affecting performance on text searches in Eclipse, since Eclipse can decide that a DSL file has no binary content based on the content type’s base type. (<a href="https://github.com/eclipse/xtext-eclipse/issues/379">xtext-eclipse/issues/379</a>)</p>
+
+<pre><code>&lt;extension point="org.eclipse.core.contenttype.contentTypes"&gt;
+	&lt;content-type
+		base-type="org.eclipse.core.runtime.text"
+		file-extensions="mydsl"
+		id="org.eclipse.xtext.mydsl.MyDSL.contenttype"
+		name="MyDSL File"
+		priority="normal"&gt;
+	&lt;/content-type&gt;
+&lt;/extension&gt;
+</code></pre>
+
+<h2 id="new-api">New API</h2>
+
+<h3 id="emf-model-manipulation-api-incubating">EMF Model Manipulation API (incubating)</h3>
+
+<p>The <code>IChangeSerializer</code> is a new API to listen to changes that are made to the EMF model of an XtextResource and serialize them back to the document’s text. It has a number of benefits to the old <code>XtextDocument.modify()</code> approach:</p>
+
+<ul>
+  <li>Direct integration with the formatter, such that changes are automatically nicely formatted.</li>
+  <li>Minimum text region changes resulting in less noise.</li>
+  <li>Many points to hook into, e.g. for automatic update of an import section.</li>
+  <li>More ways to optimize for a specific language and to tune performance.</li>
+  <li>Independence from Eclipse-UI concepts like the <code>Document</code>. This makes it reusable in languages server implementations.</li>
+</ul>
+
+<p>You can use the <code>IChangeSerializer</code> for refactorings, semantic quickfixes, code lens etc. It still has a few limitations, e.g. it does not work with derived state models, that’s why we keep it provisional for now.</p>
+
+<p>Nevertheless, we have added the following new features based on it:</p>
+
+<h3 id="rename-participants-for-eclipse-file-operations">Rename Participants for Eclipse File Operations</h3>
+
+<p>Some languages tie the model file name to the content, like the package declaration in Java. For such cases you might want to participate in operations on files or directories, like move, rename or paste, to adapt your models automatically. Based on the new <code>IChangeSerializer</code> we have implemented some generic file refactoring participants. You will get notified of such changes to react appropriately by registering your own <code>IResourceRelocationStrategy</code>.</p>
+
+<pre><code>&lt;extension point="org.eclipse.xtext.ui.resourceRelocationStrategy"&gt;
+   &lt;strategy class="mydsl.MydslExecutableExtensionFactory:mydsl.MydslResourceRelocationStrategy"&gt;
+   &lt;/strategy&gt;
+&lt;/extension&gt;
+</code></pre>
+
+<h3 id="alternative-rename-refactoring-for-xtext">Alternative Rename Refactoring for Xtext</h3>
+
+<p>By enabling <code>useChangeSerializer</code> flag in the workflow of your language</p>
+<pre><code>Workflow {
+  component = XtextGenerator {
+    ...
+    language = StandardLanguage {
+      ...
+      renameRefactoring = {
+        useChangeSerializer = true
+      ...
+</code></pre>
+<p>you will use an new, alternative rename refactoring for Eclipse based on the <code>IChangeSerializer</code>. This flag will also generate the binding for the <code>IRenameService</code> and thereby enable rename refactoring on your language server.</p>
+
+<h3 id="xbase-library-orgeclipsextextxbaselib">Xbase Library (<code>org.eclipse.xtext.xbase.lib</code>)</h3>
+
+<h4 id="no-arg-overloads-to-all-mutable-collection-literals">No-arg overloads to all mutable collection literals</h4>
+
+<p>Class <code>CollectionLiterals</code> was extended by no-arg methods for all mutable collection literals:</p>
+<ul>
+  <li><code>newArrayList()</code></li>
+  <li><code>newHashMap()</code></li>
+  <li><code>newHashSet()</code></li>
+  <li><code>newLinkedHashMap()</code></li>
+  <li><code>newLinkedHashSet()</code></li>
+  <li><code>newLinkedList()</code></li>
+</ul>
+
+<p>Xtext’s code base was refactored to use these methods where appropriate. As a consequence Xtext requires at least version 2.13 of <code>org.eclipse.xtext.xbase.lib</code>. Therefore bundle manifests were refactored to constraint the library bundle’s lower version. New projects will automatically add the version constraint to manifests.</p>
+
+<h4 id="flatmap-extension-method">flatMap extension method</h4>
+
+<p>A new convenience method <code>flatMap</code> has been added to <code>IterableExtensions</code> and <code>IteratorExtensions</code>, which combines <code>map</code> and <code>flatten</code>.</p>
+
+<pre><code>@FinalFieldsConstructor
+@Accessors
+class Planet {
+	final String name
+	final List&lt;Moon&gt; moons
+}
+
+@FinalFieldsConstructor
+@Accessors
+class Moon {
+	final String name
+}
+
+
+class Planets {
+	def static void main (String[] args) {
+		
+		val Iterable&lt;Planet&gt; planets = #[
+			new Planet("Earth", #[new Moon ("Moon")]),
+			new Planet("Mars", #[new Moon ("Phobos"), new Moon("Deimos")])
+		]
+		
+		val moonNames_old = planets.map[moons].flatten.map[name]
+		val moonNames_new = planets.flatMap[moons].map[name]
+	}
+}
+</code></pre>
+
+<h2 id="tracing">Tracing</h2>
+
+<p>Tracing can now be used for debugging in generated Java code as well. The <code>@Traced</code> annotation now takes optionally a <code>useForDebugging=true</code>. The <code>@TracedAccessors</code> are now adds to the <code>._&lt;feature&gt;()</code> extension method a <code>._&lt;feature&gt;(useForDebugging)</code> extension method.</p>
+
+<h2 id="refactoring">Refactoring</h2>
+
+<h3 id="jdt-dependency-reduction">JDT Dependency Reduction</h3>
+
+<p>Xtext languages can be deployed in environments without JDT UI. In some use cases it was detected that this can still lead to runtime errors due to  (<code>NoClassDefFoundError</code>). Dependencies in the following bundles have been resolved:</p>
+
+<ul>
+  <li><code>org.eclipse.xtext.builder</code> (<a href="https://github.com/eclipse/xtext-eclipse/issues/386">issue#386</a>)</li>
+  <li><code>org.eclipse.xtext.xbase.ui</code> (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=509630">bug#509630</a>)</li>
+</ul>
+
+<p>We reduced usage of internal API which is subject for removal in JDT. Since older Xtext versions rely on this API, the API is kept by the JDT team for backwards compatibility of Xtext. (<a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=525462">bug#525462</a>)</p>
+
+<h3 id="improved-support-for-indentation-based-languages">Improved Support for Indentation Based Languages</h3>
+
+<p>Token placement for INDENT / DEDENT tokens have been improved. This improves content assist for indentation based languages. (<a href="https://github.com/eclipse/xtext-core/pull/366">issue#366</a>)</p>
+
+<h3 id="new-generator-infrastructure">New Generator Infrastructure</h3>
+
+<p>Xtext 2.9 introduced a <a href="version-2-9-0">new generator infrastructure</a>. While new projects created with Xtext and the main languages in Xtext already used this generator, there were still some languages, especially test languages, that still used the deprecated old infrastructure. All languages are now migrated to the new generator.</p>
+
+<h2 id="an-eye-on-quality">An Eye on Quality</h2>
+
+<p>With every release we are working hard on fixing as many bugs as possible. Besides our Bugtrackers Eclipse Bugzilla and GitHub Issues the <a href="https://www.codetrails.com/error-analytics/">Automatic Error Reporting System</a> at Eclipse (AERI) is an incredible valuable source of information for us. It uncovers real problems by real users, and has made error reporting to Eclipse a no-brainer.</p>
+
+<p>As Xtext is a complex framework with an incredible flexibility, much can go wrong. Often these errors indicate ways of usage which we could not predict, or they show problems in custom DSLs. Sometimes they uncover also errors in code that we use. We are actively visiting the reports we get into EARI, with a focus on frequently occuring events and new ones.</p>
+
+<p>The Xtext team is proud that this continuous effort finally pays off. For the first time ever, we had several weeks with no new problem report. And fighting against the existing issues no a clear burn-down curve (see the Incidents Timeline). From all problems reported to AERI, we have just ~12% open, and the most frequent and urgent ones are solved.</p>
+
+<p><img src="/Xtext/images/releasenotes/2_13_aeri_problem_status.png" alt="" /><br />
+<img src="/Xtext/images/releasenotes/2_13_aeri_problem_resolution.png" alt="" /><br />
+<img src="/Xtext/images/releasenotes/2_13_aeri_incidents_timeline.png" alt="" /></p>
+
+<h2 id="improved-developer-contribution-support">Improved Developer Contribution Support</h2>
+
+<p>Setting up a developer workspace has never been so easy! We have reviewed and updated our Oomph Setup which allows you to create an Eclipse development environment for Xtext with a few clicks. Just get the <a href="https://www.eclipse.org/downloads/">Eclipse Installer</a>, go to Advanced Mode and select the Xtext subprojects you are working with. Let the Installer do the rest of the work while getting a fresh coffee.</p>
+
+<h3 id="execution-environment">Execution Environment</h3>
+
+<p>Minimal requirements are:</p>
+<ul>
+  <li>Java 8</li>
+  <li>Eclipse Luna</li>
+  <li>EMF 2.10</li>
+  <li>Guice 3.0</li>
+</ul>
+
+<p>Xtext has been tested also on Eclipse Oxygen.1a and Eclipse Photon M2.</p>
+
+<h2 id="some-words-on-java-9">Some words on Java 9</h2>
+
+<p>Java 9 Support in Eclipse Oxygen 1a and Xtext 2.13 is not yet in a perfect state. To be able to run mwe workflows you need either to remove <code>org.objectweb.asm</code> from the mwe classpath (adapting manifest or build.properties) or install ASM 6.0 from the latest Eclipse Orbit repositories. The Compilation of Xtext projects with Java 9 is terrible slow due to a know <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=526209">bug</a> in JDT. So using Xtext 2.13 and Java 9 in production should be considered thrice and is not recommended. Setting the compiler level to 1.8 mitigates the performance issue slightly.</p>
 
 <h2 id="fixed-issues">Fixed Issues</h2>
 
@@ -144,63 +350,63 @@
 </ul>
 
 
-  </article>
-
+    			</div>
+    		</div>
+      </div>
+    </div>
+  </div>
 </div>
-
     
     <footer class="site-footer">
   <div id="extra">
-    <div class="container inner-footer">
-      <div class="row">
-        <div class="span6">
-          <h3 class="footer-links-header">Quick Links</h3>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
-            <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
-            <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
-            <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
-          </ul>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
-            <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
-            <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
-            <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
-          </ul>
-        </div>
-        <div class="span6">
+    <div class="inner">
+      <div class="container">
+        <div class="row">
+          <div class="span6">
+            <h3 class="footer-links-header">Quick Links</h3>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+              <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+              <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+              <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
+            </ul>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
+              <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
+              <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
+              <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
+            </ul>
+          </div>
+          <div class="span6">
             <!-- Social Media Links -->
             <h3 class="footer-links-header"">Social Media</h3>
             <ul class="footer-links clearfix">
               <li>
-                <a href="https://twitter.com/xtendlang"><img src="/xtend/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtendlang on Twitter</a>
+                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
               </li>
             </ul>
           </div>
-
+        </div>
       </div>
     </div>
   </div>
   <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
-  <a href="http://dryicons.com/">Icons by http://dryicons.com</a>
   <!-- Le javascript
       ================================================== -->
   <!-- Placed at the end of the document so the pages load faster -->
-  <script src="/xtend/js/jquery-1.7.1.min.js" type="text/javascript"></script>
-  <script src="/xtend/js/bootstrap.min.js" type="text/javascript"></script>
   
-  <!-- include pretty-print files -->
-  <script src="/xtend/js/prettify.js" type="text/javascript" ></script>
-  <script src="/xtend/js/lang-xtend.js" type="text/javascript"></script>
-  
-  <!-- Include the plug-in -->
-  <script src="/xtend/js/jquery.prettyPhoto.js" type="text/javascript"></script>
-  <script src="/xtend/js/jquery.easing.1.3.js" type="text/javascript"></script>
-  <script src="/xtend/js/custom.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
+  <script src="/Xtext/js/bootstrap.min.js"></script>
+  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
+  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
+  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
   <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
   <!--script type="text/javascript">
     var _gaq = _gaq || [];  
-      _gaq.push([ '_setAccount', 'UA-2429174-4' ]);
+      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -213,8 +419,31 @@
       s.parentNode.insertBefore(ga, s);
     })();
   </script-->
+  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
+  <script>
+      $(function() {
+        $('#coverflow').coverflow({
+          active : 1,
+          visibleAside: 2,
+          overlap : 0.5,
+          scale : 0.9,
+          angle : 20,
+          trigger : {
+            "itemfocus" : true,
+            "swipe" : true,
+            "mousewheel" : false
+          }
+        });
+        $('#coverflow :hidden').toggle();
+        $(window).resize(function() {
+          $('#coverflow').coverflow();
+        });
+      });
+
+  </script>
 </footer>
 
+
   </body>
 
 </html>
diff --git a/releasenotes/2018/05/23/version-2-14-0.html b/releasenotes/2018/05/23/version-2-14-0.html
index 8e4c33d..5448d2c 100644
--- a/releasenotes/2018/05/23/version-2-14-0.html
+++ b/releasenotes/2018/05/23/version-2-14-0.html
@@ -3,10 +3,11 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtend - Xtend 2.14.0 Release Notes</title>
+	<title>Xtext - Xtext 2.14.0 Release Notes</title>
+	
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="Xtend is a statically typed programming language sitting on top of Java.">
+		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -16,19 +17,19 @@
 	<![endif]-->
 	
 	<!-- Le fav and touch icons -->
+	<link rel="shortcut icon" href="/Xtext/images/favicon.png">
 	
-	<link rel="shortcut icon" href="/xtend/images/favicon.png">
-	
-	<link href="/xtend/css/bootstrap.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
-	<link href="/xtend/css/shield-responsive.css" rel="stylesheet" type='text/css'>
-	<link href='/xtend/css/fonts.css' rel='stylesheet' type='text/css'>
-	<link href="/xtend/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
-	<link href="/xtend/css/prettify.css" type="text/css" rel="stylesheet"/>
-	<link href="/xtend/css/style.css" rel="stylesheet" type='text/css'>
-	
+	<link href="/Xtext/css/bootstrap.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/bootstrap-responsive.css" rel="stylesheet" type='text/css'>
+	<link href="/Xtext/css/shield-responsive.css" rel="stylesheet" type='text/css'>
+	<link href='/Xtext/css/fonts.css' rel='stylesheet' type='text/css'>
+	<link href="/Xtext/css/prettyPhoto.css" rel="stylesheet" media="screen" type='text/css'>
+	<link href="/Xtext/css/prettify.css" type="text/css" rel="stylesheet"/>
+	<link href="/Xtext/css/style.css" rel="stylesheet" type='text/css'>
+	<!-- cover flow -->
+	<link href="/Xtext/css/coverflow.css" rel="stylesheet" type='text/css'>
 	<!--[if lt IE 9]>
-	<link href="css/iebugs.css" rel="stylesheet" type='text/css'>
+	  <link href="/css/iebugs.css" rel="stylesheet" type='text/css'>
 	<![endif]-->
 
 	<!-- BEGIN Cookie Consent
@@ -86,27 +87,35 @@
 
 
   <body>
+  
+    <header class="site-header">
 
-    <!-- Navbar -->
-  <div class="navbar navbar-fixed-top"
-    style="border-bottom: 1px solid #000;">
+  <!-- Navbar -->
+  <div class="navbar navbar-fixed-top">
     <div class="navbar-inner">
       <div class="container">
         <a class="btn btn-navbar" data-toggle="collapse"
           data-target=".nav-collapse"> <span class="icon-bar"></span> <span
           class="icon-bar"></span> <span class="icon-bar"></span>
-        </a> <a class="brand" href="/xtend/index.html"></a>
+        </a> <a class="brand" href="/Xtext/index.html"></a>
         <div class="nav-collapse collapse" style="height: 0px;">
           <ul class="nav">
-            <li ><a href="/xtend/download.html">Download</a></li>
-            <li ><a href="/xtend/documentation/index.html">Documentation</a></li>
-            <li ><a href="/xtend/community.html">Community</a></li>
-            <li ><a href="http://xtext.org">Xtext</a></li>
-            <li ><a href="http://www.eclipse.org">Eclipse.org</a></li>
+            <!--li ><a href="/Xtext/news.html">News</a></li-->
+            <li ><a href="/Xtext/download.html">Download</a></li>
+            <li ><a href="/Xtext/documentation/index.html">Documentation</a></li>
+            <li ><a href="/Xtext/community.html">Community</a></li>
+            <li class="dropdown">
+              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support &amp; Trainings<span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="https://www.itemis.com/en/xtext/support-and-team/" target="_blank">itemis</a></li>
+                <li><a href="https://typefox.io/trainings-2" target="_blank">TypeFox</a></li>
+              </ul>
+            </li>
+            <li ><a href="http://xtend-lang.org">Xtend</a></li>
           </ul>
-              <!--div class="btn-group pull-right">
-                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
-              </div-->
+          <!--div class="nav pull-right">
+            <li ><a><iframe src="https://ghbtns.com/github-btn.html?user=eclipse&repo=xtext&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px"></iframe></a></li>
+          </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -114,98 +123,204 @@
   </div>
   <!-- Navbar End -->
 
+</header>
 
-    <div class="post">
 
-  <header class="post-header">
-    <h1 class="post-title">Xtend 2.14.0 Release Notes</h1>
-    <p class="post-meta">May 23, 2018</p>
-  </header>
+    <div class="page-content">
+  <div class="wrapper">
+    <div id="page">  
+    	<div class="inner">
+    		<br/><br/>
+    		<div id="maincontainer" class="container">
+    			<div class="span8 offset1">
+    				<h1>Xtext 2.14.0 Release Notes</h1>
+    				<h4>May 23, 2018</h4>
+    				<br/>
+    				<p>While the Xtext project has paid more attention on bug fixing for the past release, Xtext 2.14 is bringing a whole bunch of new features. This version is part of the Eclipse Photon (4.8) simultaneous release. An important focus was to keep up with the fast development pace of important technologies that Xtext is building on. Since its past release, Java 9 and 10 came out. Build technologies like Maven Tycho and Gradle were changed to support that, too. The Language Server Protocol is evolving rapidly. JUnit 5 is adopted by IDEs and build systems. And Xtext is now ready for all of them!</p>
 
-  <article class="post-content">
-    <h2 id="java-9-and-10-support">Java 9 and 10 Support</h2>
+<h2 id="java-9-and-10-support">Java 9 and 10 Support</h2>
 
-<p>Xtext and Xtend 2.14 are able to compile with and against Java 10. Here are a few notes on the Support</p>
+<p>Xtext and Xtend 2.14 are able to compile with and against Java 9 &amp; 10. Here are a few notes on the support</p>
+
 <ul>
   <li>There is no native support for Java 9/10 module visibilities but we fall back to jdt/javac on that topic.</li>
+  <li>A current Maven version is required (tested with 3.5)</li>
+  <li>When using Gradle, version 4.7 is required at least. The wizard will create projects accordingly.</li>
+  <li>Java 9 requires Tycho 1.1 or newer, Java 10 requires Tycho 1.2</li>
+  <li>Java 9 requires Oxygen.1a at least, Java 10 requires Oxygen.3a. Eclipse Photon works fine for both.</li>
+  <li>Java 10 requires the org.objectweb.asm library in version 6.1.1</li>
 </ul>
 
-<h2 id="compiler">Compiler</h2>
+<p>For upgrading existing project use the New Project Wizard to create a project with the desired settings and compare build relevant files (MANIFEST.MF, build.gradle, pom.xml, *.target) with the existing projects.</p>
 
-<h3 id="avoid-generation-of-unnecessary-exception-variables">Avoid generation of unnecessary exception variables</h3>
+<h2 id="junit-5-support">JUnit 5 Support</h2>
 
-<p>When an exception variable is not used within a catch block, the transpiled Java code contained an unused variable.</p>
+<p>Xtext now supports the JUnit 5 framework for writing tests. JUnit 5.1 or newer is required.</p>
 
-<p>Considering the following Xtend snippet:</p>
+<p>For new projects the project wizard’s advanced page allows to select the desired JUnit version.</p>
 
-<pre><code>try {
-  ... some code ...
-} catch (SomeException e) {
-  // do nothing with "e"
-}
+<p><img src="/Xtext/images/releasenotes/2_14_wizard_junit5.gif" alt="" /></p>
+
+<p>Created test projects directly only depend on the JUnit 5 API artifact</p>
+
+<pre><code>org.junit.jupiter:junit-jupiter-api:5.0.0
 </code></pre>
 
-<p>The catch block was transpiled to:</p>
+<p>Additional dependencies are configured by the JUnit Library container. This lowers the coupling to concrete JUnit versions and the test engine used. For example, Eclipse Photon is using JUnit 5.1, while Eclipse Oxygen is using JUnit 5.0. Furthermore, the execution of tests in build systems is using the test engines provided by the build system’s test plugins.</p>
 
-<pre><code>catch (final Throwable _t) {
-  if (_t instanceof SomeException) {
-    final SomeException e = (SomeException)_t;
-  } else {
-    throw Exceptions.sneakyThrow(_t);
-  }
-}
-</code></pre>
+<h2 id="new-grammar-annotations">New Grammar Annotations</h2>
 
-<p>Xtend will now avoid the generation of the variable when it is not used within the catch block:</p>
+<p>The Xtext Grammar language supports the following additional annotations for parser rules:</p>
 
-<pre><code>catch (final Throwable _t) {
-  if (_t instanceof SomeException) {
-  } else {
-    throw Exceptions.sneakyThrow(_t);
-  }
-}
-</code></pre>
+<h3 id="deprecated">@Deprecated</h3>
 
-<h3 id="multi-catch-support">Multi-Catch Support</h3>
-<p>With Xtend 2.14 the exception handling supports multi-catch clauses.</p>
+<p><img src="/Xtext/images/releasenotes/2_14_annotation_deprecated.png" alt="" /></p>
 
-<p><img src="/xtend/images/releasenotes/2_14_0_xtend-multi-catch-new.png" alt="" /></p>
+<p>This annotation marks a rule to be deprecated. Issue markers with are produced where a deprecated rule is used. By default the severity of issue is <em>Warning</em>. The severity level can be configured in the preferences. This feature will help you to do smooth langauage evolution of the time by informing your users about deprecated parts.</p>
 
-<p>The multi-catch clause can handle an arbitrary number of exceptions separated by “|”. <br />
-Within the catch block, the intersection exception type of the exceptions caught by the multi-catch statement is available for further processing.<br />
-Multi-catch support leads to semantically rich and more concise catch statements.</p>
+<p><img src="/Xtext/images/releasenotes/2_14_annotation_preference.png" alt="" /></p>
 
-<h3 id="multi-type-guard-support">Multi-Type Guard Support</h3>
-<p>The type guard feature in switch statements is enhanced by support for testing multiple types in one case statement.</p>
+<h3 id="final">@Final</h3>
 
-<p><img src="/xtend/images/releasenotes/2_14_0_xtend-multi-type-guard-new.png" alt="" /></p>
+<p><img src="/Xtext/images/releasenotes/2_14_annotation_final.png" alt="" /></p>
 
-<p>As for the multi-catch statements the different types handled by a single case statement are separated by “|”.<br />
-The intersection type of the types specified in the multi-type guard statement is available within the case block.</p>
+<p>A rule marked with <code>@Final</code> cannot be overridden.</p>
 
-<h2 id="unnecessary-modifiers-validation">Unnecessary Modifiers Validation</h2>
+<h3 id="exported">@Exported</h3>
 
-<p>Xtend detects unnecessary modifiers in code, e.g. the <code>public</code> modifier on types. By default issues of this kind are raised as warnings, the severity level is configurable.</p>
-
-<p><img src="/xtend/images/releasenotes/2_14_unnecessary_modifier.png" alt="" /></p>
-
-<p>For convenient resolution of these issues a quick fix has been added.</p>
+<p>As a default Xtext exports all elements to the index that have a name. For customizing this behaviour you need to create a custom IDefaultResourceDescriptionStrategy manually.<br />
+With <code>@Exported</code> it can be customized on grammar level, which element types are exported to the index. The customization takes effect when at least one rule in a grammar is annotated with <code>@Exported</code>. By doing that you can easily manage visibility of elements and safe memory.</p>
 
 <h2 id="eclipse-integration">Eclipse Integration</h2>
 
-<h3 id="organize-imports">Organize Imports</h3>
+<h3 id="create-action-quickfix">Create Action Quickfix</h3>
 
-<p>The Organize Imports feature has been improved to consider inner types properly.</p>
+<p>Rules that can be consumed without object instantiation usually require a <em>Create Action</em>. A typical example is when a rule defines an optional assignment. Xtext reports this as a warning in the grammar file.</p>
+
+<p>For problems of this kind a new <em>quickfix</em> has been added that inserts the <em>Create Action</em> at the proper place of the parser rule.</p>
+
+<p><img src="/Xtext/images/releasenotes/2_14_create-action.gif" alt="" /></p>
+
+<h3 id="code-mining-support">Code Mining Support</h3>
+
+<p>Eclipse Photon (4.8) adds a new API called <em>Code Mining</em>. With it text editors can inline additional semantic information into the text, which is not part of the text itself. A useful example to leverage this is to display names of inferred types, parameter names of a called function etc.</p>
+
+<p>Xtext adds a new bundle <code>org.eclipse.xtext.ui.codemining</code> which is offering an API for usage of Code Mining with Xtext. The code generator fragment <code>org.eclipse.xtext.xtext.generator.ui.codemining.CodeMiningFragment</code> can be added to the generator workflow to create a stub implementation and provide all dependencies and bindings for the use of this API.</p>
+
+<p>An example implementation has been added to the Domainmodel Example DSL. To learn more about the usage of this API install the example from the File menu and look up the <code>DomainmodelCodeMiningProvider</code> class.</p>
+
+<p><img src="/Xtext/images/releasenotes/2_14_domainmodel-codemining.gif" alt="" /></p>
+
+<h3 id="new-project-and-file-wizard">New Project and File Wizard</h3>
+
+<p>With two simple switches you can turn on the generation of a New Project Wizard and a New File Wizard for your language.</p>
+
+<p>These wizards are based on flexible templates to generate one or many projects with any number of files. You can enable the generation from your .mwe2 file with two simple switches:</p>
+
+<pre><code>language = StandardLanguage {
+    name = "org.xtext.example.mydsl.MyDsl"
+    fileExtensions = "mydsl"
+        
+    fileWizard = {
+        generate = true
+    }
+    projectWizard = {
+        generate = true
+    }
+}
+</code></pre>
+
+<p>The wizard to create projects allows to select from a number of templates and creates one or, in certain situations helpful, even many projects.</p>
+
+<p><img src="/Xtext/images/releasenotes/2_14_new-file-wizard.png" alt="" /></p>
+
+<p>The wizard to create files is more simple in its basic form and skips the template selection if there is only one file template.</p>
+
+<p><img src="/Xtext/images/releasenotes/2_14_new-project-wizard-template-selection.png" alt="" /></p>
+
+<p>In case there are many templates the wizard gets a second page to configure the parameter whereas on the first page a combo box to select the template appears.</p>
+
+<p>The UI for the parameters of the templates as well as the templates them self are defined in code with a concise API. You do not need to fiddle around with SWT widgets and get most UI stuff for free. The templates are generated in the UI project of your language. You can adapt the generated templates, add new ones or contribute new template providers through extension points.</p>
+
+<p>If you generate the wizards for an existing project the <code>plugin.xml</code> is not regenerated to not risk loosing manual changes you might have applied. Instead a <code>plugin.xml_gen</code> is created. You have to merge the generated extensions to your <code>plugin.xml</code> manually.</p>
+
+<h3 id="console-icon">Console Icon</h3>
+
+<p>The Xtext icon has been added for the Xtext console:</p>
+
+<p><img src="/Xtext/images/releasenotes/2_14_console-icon.png" alt="" /></p>
+
+<h2 id="language-server-support">Language Server Support</h2>
+
+<p>Xtext has been upgraded to LSP4J version 0.4.0. This includes the following features:</p>
+
+<ul>
+  <li>Implementation of the Language Server Protocol 3.7.0</li>
+  <li>Implementation of the VS Code Debug Protocol 1.25.0</li>
+  <li>Support multiple local and remote services</li>
+  <li>Improved error handling</li>
+</ul>
+
+<h2 id="emf-support">EMF Support</h2>
+
+<p>With EMF 2.14 a new registry <code>EAnnotationValidator.Registry.INSTANCE</code>, which had to be considered in Xtext’s testing support for resetting.</p>
+
+<p>EMF 2.8 <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=367569#c7">introduced</a> the concept <code>ResourceLocator</code> in <code>ResourceSet</code>s. Xtext’s specialized implementation <code>XtextResourceSet</code> did not support that so far and has been extended now.</p>
+
+<h2 id="change-serializer--rename-refactoring">Change Serializer &amp; Rename Refactoring</h2>
+
+<p>The past <a href="/Xtext/releasenotes.html#/releasenotes/2017/10/20/version-2-13-0">release 2.13</a> introduced a new API for EMF Model Manipulation and an improved rename refactoring based on the new <code>IChangeSerializer</code> API.</p>
+
+<p>These new features are still incubating. Several issues that were identified by the adoption of the features have been solved.</p>
+
+<h2 id="performance">Performance</h2>
+
+<h3 id="output-configurations-cache">Output Configurations Cache</h3>
+
+<p>A performance bottleneck was <a href="https://github.com/eclipse/xtext-eclipse/issues/535">discovered</a> in the access to <code>IOutputConfiguration</code>s in builder participants. The problem depends on the amount of files produced by code generators.</p>
+
+<p>A cache was introduced in class <code>BuilderParticipant</code> to solve the issue.</p>
+
+<h3 id="semantic-highlighting">Semantic Highlighting</h3>
+
+<p>Computation of semantic highlighting <a href="https://github.com/eclipse/xtext-eclipse/issues/347">was performed twice</a>. This was fixed and should improve editing experience especially for larger files with intensive use of semantic highlighting, for example like the Xtend language.</p>
+
+<h3 id="queuedbuilddata">QueuedBuildData</h3>
+
+<p>A bottleneck in class <code>QueuedBuildData</code> has been <a href="https://github.com/eclipse/xtext-eclipse/issues/40">found</a> that affects the build time for a large number of resources. The build time has been improved for this scenario.</p>
+
+<h2 id="execution-environment">Execution Environment</h2>
+
+<p>Xtext 2.14 comes with the following requirements for the execution environment:</p>
+
+<ul>
+  <li>Java: 1.8, 9 or 10</li>
+  <li>Eclipse Luna (4.4) or newer</li>
+  <li>EMF 2.10 or newer</li>
+  <li>Guice 3.0</li>
+  <li>Tycho 1.1, 1.2 (Java 10 or JUnit 5)</li>
+  <li>JUnit 4.12 or 5.1</li>
+</ul>
+
+<p>Note that bundle <code>org.eclipse.xtext.xbase.lib</code> was compiled with Java 1.8 now, while being compatible to 1.6 in earlier versions.</p>
 
 <h2 id="links">Links</h2>
 
+<p>More detailed information on some topics have been written in blog posts:</p>
+
 <ul>
-  <li><a href="https://blogs.itemis.com/en/xtend-2-14-unnecessary-modifiers-validation">“Unnecessary modifiers validation” blog post</a></li>
+  <li><a href="https://blogs.itemis.com/en/xtext-2.14-adds-support-for-junit-5">“Xtext 2.14 adds support for JUnit 5”</a></li>
+  <li><a href="https://blogs.itemis.com/en/code-mining-support-in-xtext">“Code Mining Support in Xtext”</a></li>
+  <li><a href="https://blogs.itemis.com/en/generating-a-new-project-wizard-with-xtext-2.14">“Generating a new project wizard with Xtext 2.14”</a></li>
+  <li><a href="https://blogs.itemis.com/en/new-file-wizard-easy-to-generate-with-xtext-2.14">“New File Wizard – easy to generate with Xtext 2.14”</a></li>
+  <li><a href="https://blogs.itemis.com/de/new-project-wizard-einfach-mit-xtext-2-14-generieren">“New Project Wizard: einfach mit Xtext 2.14 generieren”</a> (German)</li>
+  <li><a href="https://blogs.itemis.com/de/new-file-wizard-einfach-mit-xtext-2.14-generieren">“Erzeugen des New File Wizards”</a> (German)</li>
+  <li><a href="https://github.com/eclipse/lsp4j/blob/master/CHANGELOG.md">LSP4J Changelog</a></li>
 </ul>
 
 <h2 id="fixed-issues">Fixed Issues</h2>
 
-<p>As in every release we are eagerly hunting down the bugs, review and integrate lots of contributions. 88 issues, 62 Pull Requests and 20 Bugzilla tickets have made it into this release. For further details please refer to the following lists:</p>
+<p>As in every release we are eagerly hunting down the bugs, review and integrate lots of contributions. 88 issues, 62 Pull Requests and 60 Bugzilla tickets have made it into this release. For further details please refer to the following lists:</p>
 
 <ul>
   <li>
@@ -220,63 +335,63 @@
 </ul>
 
 
-  </article>
-
+    			</div>
+    		</div>
+      </div>
+    </div>
+  </div>
 </div>
-
     
     <footer class="site-footer">
   <div id="extra">
-    <div class="container inner-footer">
-      <div class="row">
-        <div class="span6">
-          <h3 class="footer-links-header">Quick Links</h3>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
-            <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
-            <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
-            <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
-          </ul>
-          <ul class="footer-links clearfix">
-            <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
-            <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
-            <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
-            <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
-          </ul>
-        </div>
-        <div class="span6">
+    <div class="inner">
+      <div class="container">
+        <div class="row">
+          <div class="span6">
+            <h3 class="footer-links-header">Quick Links</h3>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
+              <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
+              <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li>
+              <li><a href="http://www.eclipse.org/legal/">Legal</a></li>
+            </ul>
+            <ul class="footer-links clearfix">
+              <li><a href="http://www.eclipse.org">Eclipse Home</a></li>
+              <li><a href="http://marketplace.eclipse.org/">Market Place</a></li>
+              <li><a href="http://live.eclipse.org/">Eclipse Live</a></li>
+              <li><a href="http://www.planeteclipse.org/">Eclipse Planet</a></li>
+            </ul>
+          </div>
+          <div class="span6">
             <!-- Social Media Links -->
             <h3 class="footer-links-header"">Social Media</h3>
             <ul class="footer-links clearfix">
               <li>
-                <a href="https://twitter.com/xtendlang"><img src="/xtend/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtendlang on Twitter</a>
+                <a href="https://twitter.com/xtext"><img src="/Xtext/images/Twitter-bird-darkgray.png" class="img-responsive" style="margin-right: 5px;height: 1em;" alt="Twitter icon">@xtext on Twitter</a>
               </li>
             </ul>
           </div>
-
+        </div>
       </div>
     </div>
   </div>
   <a href="#" class="scrollup fadeOutRight animated" style="display: none;">ScrollUp</a>
-  <a href="http://dryicons.com/">Icons by http://dryicons.com</a>
   <!-- Le javascript
       ================================================== -->
   <!-- Placed at the end of the document so the pages load faster -->
-  <script src="/xtend/js/jquery-1.7.1.min.js" type="text/javascript"></script>
-  <script src="/xtend/js/bootstrap.min.js" type="text/javascript"></script>
   
-  <!-- include pretty-print files -->
-  <script src="/xtend/js/prettify.js" type="text/javascript" ></script>
-  <script src="/xtend/js/lang-xtend.js" type="text/javascript"></script>
-  
-  <!-- Include the plug-in -->
-  <script src="/xtend/js/jquery.prettyPhoto.js" type="text/javascript"></script>
-  <script src="/xtend/js/jquery.easing.1.3.js" type="text/javascript"></script>
-  <script src="/xtend/js/custom.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery-1.11.3.min.js"></script>
+  <script src="/Xtext/js/bootstrap.min.js"></script>
+  <script src="/Xtext/js/jquery.easing.1.3.js" type="text/javascript"></script>
+  <script src="/Xtext/js/jquery.prettyPhoto.js" type="text/javascript"></script>
+  <script src="/Xtext/js/prettify.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-xtend.js" type="text/javascript"></script>
+  <script src="/Xtext/js/lang-common.js" type="text/javascript"></script>
+  <script src="/Xtext/js/custom.js" type="text/javascript"></script>
   <!--script src="https://apis.google.com/js/platform.js" async defer></script-->
   <!--script type="text/javascript">
     var _gaq = _gaq || [];  
-      _gaq.push([ '_setAccount', 'UA-2429174-4' ]);
+      _gaq.push([ '_setAccount', 'UA-2429174-3' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -289,8 +404,31 @@
       s.parentNode.insertBefore(ga, s);
     })();
   </script-->
+  <script src="/Xtext/js/coverflow.min.js" type="text/javascript"></script>
+  <script>
+      $(function() {
+        $('#coverflow').coverflow({
+          active : 1,
+          visibleAside: 2,
+          overlap : 0.5,
+          scale : 0.9,
+          angle : 20,
+          trigger : {
+            "itemfocus" : true,
+            "swipe" : true,
+            "mousewheel" : false
+          }
+        });
+        $('#coverflow :hidden').toggle();
+        $(window).resize(function() {
+          $('#coverflow').coverflow();
+        });
+      });
+
+  </script>
 </footer>
 
+
   </body>
 
 </html>
