diff --git a/community.html b/community.html
index bd93cef..80ea98c 100644
--- a/community.html
+++ b/community.html
@@ -3,11 +3,10 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtext - Community</title>
-	
+	<title>Xtend - Community</title>
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
+		content="Xtend is a statically typed programming language sitting on top of Java.">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -17,19 +16,19 @@
 	<![endif]-->
 	
 	<!-- 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'>
+	<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'>
+	
 	<!--[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
@@ -87,35 +86,27 @@
 
 
   <body>
-  
-    <header class="site-header">
 
-  <!-- Navbar -->
-  <div class="navbar navbar-fixed-top">
+    <!-- Navbar -->
+  <div class="navbar navbar-fixed-top"
+    style="border-bottom: 1px solid #000;">
     <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>
+        </a> <a class="brand" href="/xtend/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>
+            <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>
           </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 class="btn-group pull-right">
+                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
+              </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -123,701 +114,175 @@
   </div>
   <!-- Navbar End -->
 
-</header>
 
-
-    	<div id="page">
-		<div id="team" class="container clearfix"> 
-			<h2>Resources</h2>
-	        <hr>
-			<div class="row">
-				<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 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 class="span1">&nbsp;</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 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 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 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 class="span1">&nbsp;</div>
+			  </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>
+	</div>
+</div>
+
+	  <div class="inner">
+		<div class="container clearfix"> 
+			<h2>Videos of Presentations</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>
+				</div>
+			</div>
+		  </div>
+		</div>
+	  </div>
 
     
     <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">
+    <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">
             <!-- 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>
+                <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>
               </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>
   
-  <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>
+  <!-- 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="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([ '_setAccount', 'UA-2429174-4' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -830,31 +295,8 @@
       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 cb5b56a..054aea9 100644
--- a/css/bootstrap-responsive.css
+++ b/css/bootstrap-responsive.css
@@ -1,11 +1,11 @@
 /*!
- * Bootstrap Responsive v2.3.2
+ * Bootstrap Responsive v2.0.3
  *
- * Copyright 2013 Twitter, Inc
+ * Copyright 2012 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 by @mdo and @fat.
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
  */
 
 .clearfix {
@@ -15,7 +15,6 @@
 .clearfix:before,
 .clearfix:after {
   display: table;
-  line-height: 0;
   content: "";
 }
 
@@ -34,16 +33,13 @@
 .input-block-level {
   display: block;
   width: 100%;
-  min-height: 30px;
+  min-height: 28px;
   -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;
@@ -61,400 +57,144 @@
   display: none !important;
 }
 
-.visible-desktop {
-  display: inherit !important;
-}
-
-@media (min-width: 768px) and (max-width: 979px) {
-  .hidden-desktop {
-    display: inherit !important;
-  }
-  .visible-desktop {
-    display: none !important ;
-  }
-  .visible-tablet {
-    display: inherit !important;
-  }
-  .hidden-tablet {
-    display: none !important;
-  }
-}
-
 @media (max-width: 767px) {
-  .hidden-desktop {
-    display: inherit !important;
-  }
-  .visible-desktop {
-    display: none !important;
-  }
   .visible-phone {
     display: inherit !important;
   }
   .hidden-phone {
     display: none !important;
   }
-}
-
-.visible-print {
-  display: none !important;
-}
-
-@media print {
-  .visible-print {
+  .hidden-desktop {
     display: inherit !important;
   }
-  .hidden-print {
+  .visible-desktop {
     display: none !important;
   }
 }
 
-@media (min-width: 1200px) {
-  .row {
-    margin-left: -30px;
-    *zoom: 1;
+@media (min-width: 768px) and (max-width: 979px) {
+  .visible-tablet {
+    display: inherit !important;
   }
-  .row:before,
-  .row:after {
-    display: table;
-    line-height: 0;
-    content: "";
+  .hidden-tablet {
+    display: none !important;
   }
-  .row:after {
-    clear: both;
+  .hidden-desktop {
+    display: inherit !important;
   }
-  [class*="span"] {
-    float: left;
-    min-height: 1px;
-    margin-left: 30px;
+  .visible-desktop {
+    display: none !important ;
   }
-  .container,
-  .navbar-static-top .container,
-  .navbar-fixed-top .container,
-  .navbar-fixed-bottom .container {
-    width: 1170px;
+}
+
+@media (max-width: 480px) {
+  .nav-collapse {
+    -webkit-transform: translate3d(0, 0, 0);
   }
-  .span12 {
-    width: 1170px;
+  .page-header h1 small {
+    display: block;
+    line-height: 18px;
   }
-  .span11 {
-    width: 1070px;
+  input[type="checkbox"],
+  input[type="radio"] {
+    border: 1px solid #ccc;
   }
-  .span10 {
-    width: 970px;
+  .form-horizontal .control-group > label {
+    float: none;
+    width: auto;
+    padding-top: 0;
+    text-align: left;
   }
-  .span9 {
-    width: 870px;
+  .form-horizontal .controls {
+    margin-left: 0;
   }
-  .span8 {
-    width: 770px;
+  .form-horizontal .control-list {
+    padding-top: 0;
   }
-  .span7 {
-    width: 670px;
+  .form-horizontal .form-actions {
+    padding-right: 10px;
+    padding-left: 10px;
   }
-  .span6 {
-    width: 570px;
+  .modal {
+    position: absolute;
+    top: 10px;
+    right: 10px;
+    left: 10px;
+    width: auto;
+    margin: 0;
   }
-  .span5 {
-    width: 470px;
+  .modal.fade.in {
+    top: auto;
   }
-  .span4 {
-    width: 370px;
+  .modal-header .close {
+    padding: 10px;
+    margin: -10px;
   }
-  .span3 {
-    width: 270px;
+  .carousel-caption {
+    position: static;
   }
-  .span2 {
-    width: 170px;
+}
+
+@media (max-width: 767px) {
+  body {
+    padding-right: 20px;
+    padding-left: 20px;
   }
-  .span1 {
-    width: 70px;
+  .navbar-fixed-top,
+  .navbar-fixed-bottom {
+    margin-right: -20px;
+    margin-left: -20px;
   }
-  .offset12 {
-    margin-left: 1230px;
+  .container-fluid {
+    padding: 0;
   }
-  .offset11 {
-    margin-left: 1130px;
+  .dl-horizontal dt {
+    float: none;
+    width: auto;
+    clear: none;
+    text-align: left;
   }
-  .offset10 {
-    margin-left: 1030px;
+  .dl-horizontal dd {
+    margin-left: 0;
   }
-  .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;
+  .container {
+    width: auto;
   }
   .row-fluid {
     width: 100%;
-    *zoom: 1;
   }
-  .row-fluid:before,
-  .row-fluid:after {
-    display: table;
-    line-height: 0;
-    content: "";
+  .row,
+  .thumbnails {
+    margin-left: 0;
   }
-  .row-fluid:after {
-    clear: both;
-  }
+  [class*="span"],
   .row-fluid [class*="span"] {
     display: block;
-    float: left;
+    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: 30px;
-    margin-left: 2.564102564102564%;
-    *margin-left: 2.5109110747408616%;
+    min-height: 28px;
     -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.45299145299145%;
-    *width: 91.39979996362975%;
-  }
-  .row-fluid .span10 {
-    width: 82.90598290598291%;
-    *width: 82.8527914166212%;
-  }
-  .row-fluid .span9 {
-    width: 74.35897435897436%;
-    *width: 74.30578286961266%;
-  }
-  .row-fluid .span8 {
-    width: 65.81196581196582%;
-    *width: 65.75877432260411%;
-  }
-  .row-fluid .span7 {
-    width: 57.26495726495726%;
-    *width: 57.21176577559556%;
-  }
-  .row-fluid .span6 {
-    width: 48.717948717948715%;
-    *width: 48.664757228587014%;
-  }
-  .row-fluid .span5 {
-    width: 40.17094017094017%;
-    *width: 40.11774868157847%;
-  }
-  .row-fluid .span4 {
-    width: 31.623931623931625%;
-    *width: 31.570740134569924%;
-  }
-  .row-fluid .span3 {
-    width: 23.076923076923077%;
-    *width: 23.023731587561375%;
-  }
-  .row-fluid .span2 {
-    width: 14.52991452991453%;
-    *width: 14.476723040552828%;
-  }
-  .row-fluid .span1 {
-    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: 1156px;
-  }
-  input.span11,
-  textarea.span11,
-  .uneditable-input.span11 {
-    width: 1056px;
-  }
-  input.span10,
-  textarea.span10,
-  .uneditable-input.span10 {
-    width: 956px;
-  }
-  input.span9,
-  textarea.span9,
-  .uneditable-input.span9 {
-    width: 856px;
-  }
-  input.span8,
-  textarea.span8,
-  .uneditable-input.span8 {
-    width: 756px;
-  }
-  input.span7,
-  textarea.span7,
-  .uneditable-input.span7 {
-    width: 656px;
-  }
-  input.span6,
-  textarea.span6,
-  .uneditable-input.span6 {
-    width: 556px;
-  }
-  input.span5,
-  textarea.span5,
-  .uneditable-input.span5 {
-    width: 456px;
-  }
-  input.span4,
-  textarea.span4,
-  .uneditable-input.span4 {
-    width: 356px;
-  }
-  input.span3,
-  textarea.span3,
-  .uneditable-input.span3 {
-    width: 256px;
-  }
-  input.span2,
-  textarea.span2,
-  .uneditable-input.span2 {
-    width: 156px;
-  }
-  input.span1,
-  textarea.span1,
-  .uneditable-input.span1 {
-    width: 56px;
-  }
-  .thumbnails {
-    margin-left: -30px;
-  }
-  .thumbnails > li {
-    margin-left: 30px;
-  }
-  .row-fluid .thumbnails {
-    margin-left: 0;
+  .input-prepend input,
+  .input-append input,
+  .input-prepend input[class*="span"],
+  .input-append input[class*="span"] {
+    display: inline-block;
+    width: auto;
   }
 }
 
@@ -466,7 +206,6 @@
   .row:before,
   .row:after {
     display: table;
-    line-height: 0;
     content: "";
   }
   .row:after {
@@ -474,11 +213,9 @@
   }
   [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;
@@ -562,7 +299,6 @@
   .row-fluid:before,
   .row-fluid:after {
     display: table;
-    line-height: 0;
     content: "";
   }
   .row-fluid:after {
@@ -572,400 +308,387 @@
     display: block;
     float: left;
     width: 100%;
-    min-height: 30px;
-    margin-left: 2.7624309392265194%;
-    *margin-left: 2.709239449864817%;
+    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 .controls-row [class*="span"] + [class*="span"] {
-    margin-left: 2.7624309392265194%;
-  }
   .row-fluid .span12 {
-    width: 100%;
-    *width: 99.94680851063829%;
+    width: 99.999999993%;
+    *width: 99.9468085036383%;
   }
   .row-fluid .span11 {
-    width: 91.43646408839778%;
-    *width: 91.38327259903608%;
+    width: 91.436464082%;
+    *width: 91.38327259263829%;
   }
   .row-fluid .span10 {
-    width: 82.87292817679558%;
-    *width: 82.81973668743387%;
+    width: 82.87292817100001%;
+    *width: 82.8197366816383%;
   }
   .row-fluid .span9 {
-    width: 74.30939226519337%;
-    *width: 74.25620077583166%;
+    width: 74.30939226%;
+    *width: 74.25620077063829%;
   }
   .row-fluid .span8 {
-    width: 65.74585635359117%;
-    *width: 65.69266486422946%;
+    width: 65.74585634900001%;
+    *width: 65.6926648596383%;
   }
   .row-fluid .span7 {
-    width: 57.18232044198895%;
-    *width: 57.12912895262725%;
+    width: 57.182320438000005%;
+    *width: 57.129128948638304%;
   }
   .row-fluid .span6 {
-    width: 48.61878453038674%;
-    *width: 48.56559304102504%;
+    width: 48.618784527%;
+    *width: 48.5655930376383%;
   }
   .row-fluid .span5 {
-    width: 40.05524861878453%;
-    *width: 40.00205712942283%;
+    width: 40.055248616%;
+    *width: 40.0020571266383%;
   }
   .row-fluid .span4 {
-    width: 31.491712707182323%;
-    *width: 31.43852121782062%;
+    width: 31.491712705%;
+    *width: 31.4385212156383%;
   }
   .row-fluid .span3 {
-    width: 22.92817679558011%;
-    *width: 22.87498530621841%;
+    width: 22.928176794%;
+    *width: 22.874985304638297%;
   }
   .row-fluid .span2 {
-    width: 14.3646408839779%;
-    *width: 14.311449394616199%;
+    width: 14.364640883%;
+    *width: 14.311449393638298%;
   }
   .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%;
+    width: 5.801104972%;
+    *width: 5.747913482638298%;
   }
   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;
+    width: 714px;
   }
   input.span11,
   textarea.span11,
   .uneditable-input.span11 {
-    width: 648px;
+    width: 652px;
   }
   input.span10,
   textarea.span10,
   .uneditable-input.span10 {
-    width: 586px;
+    width: 590px;
   }
   input.span9,
   textarea.span9,
   .uneditable-input.span9 {
-    width: 524px;
+    width: 528px;
   }
   input.span8,
   textarea.span8,
   .uneditable-input.span8 {
-    width: 462px;
+    width: 466px;
   }
   input.span7,
   textarea.span7,
   .uneditable-input.span7 {
-    width: 400px;
+    width: 404px;
   }
   input.span6,
   textarea.span6,
   .uneditable-input.span6 {
-    width: 338px;
+    width: 342px;
   }
   input.span5,
   textarea.span5,
   .uneditable-input.span5 {
-    width: 276px;
+    width: 280px;
   }
   input.span4,
   textarea.span4,
   .uneditable-input.span4 {
-    width: 214px;
+    width: 218px;
   }
   input.span3,
   textarea.span3,
   .uneditable-input.span3 {
-    width: 152px;
+    width: 156px;
   }
   input.span2,
   textarea.span2,
   .uneditable-input.span2 {
-    width: 90px;
+    width: 94px;
   }
   input.span1,
   textarea.span1,
   .uneditable-input.span1 {
-    width: 28px;
+    width: 32px;
   }
 }
 
-@media (max-width: 767px) {
-  body {
-    //padding-right: 20px;
-    //padding-left: 20px;
+@media (min-width: 1200px) {
+  .row {
+    margin-left: -30px;
+    *zoom: 1;
   }
-  .navbar-fixed-top,
-  .navbar-fixed-bottom,
-  .navbar-static-top {
-    //margin-right: -20px;
-    //margin-left: -20px;
+  .row:before,
+  .row:after {
+    display: table;
+    content: "";
   }
-  .container-fluid {
-    padding: 0;
+  .row:after {
+    clear: both;
   }
-  .dl-horizontal dt {
-    float: none;
-    width: auto;
-    clear: none;
-    text-align: left;
+  [class*="span"] {
+    float: left;
+    margin-left: 30px;
   }
-  .dl-horizontal dd {
-    margin-left: 0;
+  .container,
+  .navbar-fixed-top .container,
+  .navbar-fixed-bottom .container {
+    width: 1170px;
   }
-  .container {
-    width: auto;
+  .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,
-  .thumbnails {
-    margin-left: 0;
+  .row-fluid:before,
+  .row-fluid:after {
+    display: table;
+    content: "";
   }
-  .thumbnails > li {
-    float: none;
-    margin-left: 0;
+  .row-fluid:after {
+    clear: both;
   }
-  [class*="span"],
-  .uneditable-input[class*="span"],
   .row-fluid [class*="span"] {
     display: block;
-    float: none;
+    float: left;
     width: 100%;
-    margin-left: 0;
+    min-height: 28px;
+    margin-left: 2.564102564%;
+    *margin-left: 2.510911074638298%;
     -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
+        -ms-box-sizing: border-box;
             box-sizing: border-box;
   }
-  .span12,
+  .row-fluid [class*="span"]:first-child {
+    margin-left: 0;
+  }
   .row-fluid .span12 {
     width: 100%;
-    -webkit-box-sizing: border-box;
-       -moz-box-sizing: border-box;
-            box-sizing: border-box;
+    *width: 99.94680851063829%;
   }
-  .row-fluid [class*="offset"]:first-child {
-    margin-left: 0;
+  .row-fluid .span11 {
+    width: 91.45299145300001%;
+    *width: 91.3997999636383%;
   }
-  .input-large,
-  .input-xlarge,
-  .input-xxlarge,
-  input[class*="span"],
-  select[class*="span"],
-  textarea[class*="span"],
+  .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 {
-    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;
+  input.span12,
+  textarea.span12,
+  .uneditable-input.span12 {
+    width: 1160px;
   }
-  .modal.fade {
-    top: -100px;
+  input.span11,
+  textarea.span11,
+  .uneditable-input.span11 {
+    width: 1060px;
   }
-  .modal.fade.in {
-    top: 20px;
+  input.span10,
+  textarea.span10,
+  .uneditable-input.span10 {
+    width: 960px;
   }
-}
-
-@media (max-width: 480px) {
-  .nav-collapse {
-    -webkit-transform: translate3d(0, 0, 0);
+  input.span9,
+  textarea.span9,
+  .uneditable-input.span9 {
+    width: 860px;
   }
-  .page-header h1 small {
-    display: block;
-    line-height: 20px;
+  input.span8,
+  textarea.span8,
+  .uneditable-input.span8 {
+    width: 760px;
   }
-  input[type="checkbox"],
-  input[type="radio"] {
-    border: 1px solid #ccc;
+  input.span7,
+  textarea.span7,
+  .uneditable-input.span7 {
+    width: 660px;
   }
-  .form-horizontal .control-label {
-    float: none;
-    width: auto;
-    padding-top: 0;
-    text-align: left;
+  input.span6,
+  textarea.span6,
+  .uneditable-input.span6 {
+    width: 560px;
   }
-  .form-horizontal .controls {
+  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;
   }
-  .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-bottom {
-    position: static;
-  }
   .navbar-fixed-top {
-    margin-bottom: 20px;
+    position: static;
+    margin-bottom: 18px;
   }
-  .navbar-fixed-bottom {
-    margin-top: 20px;
-  }
-  .navbar-fixed-top .navbar-inner,
-  .navbar-fixed-bottom .navbar-inner {
-    padding: 0px;
+  .navbar-fixed-top .navbar-inner {
+    padding: 5px;
   }
   .navbar .container {
     width: auto;
@@ -981,7 +704,7 @@
   }
   .nav-collapse .nav {
     float: none;
-    margin: 0 0 10px;
+    margin: 0 0 9px;
   }
   .nav-collapse .nav > li {
     float: none;
@@ -989,18 +712,19 @@
   .nav-collapse .nav > li > a {
     margin-bottom: 2px;
   }
+
   .nav-collapse .nav > .divider-vertical {
     display: none;
   }
   .nav-collapse .nav .nav-header {
-    color: #777777;
+    color: #999999;
     text-shadow: none;
   }
   .nav-collapse .nav > li > a,
   .nav-collapse .dropdown-menu a {
-    padding: 9px 15px;
+    padding: 6px 15px;
     font-weight: bold;
-    color: #777777;
+    color: #999999;
     -webkit-border-radius: 3px;
        -moz-border-radius: 3px;
             border-radius: 3px;
@@ -1016,20 +740,9 @@
     margin-bottom: 2px;
   }
   .nav-collapse .nav > li > a:hover,
-  .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 .dropdown-menu a:hover {
+    background-color: #A11111;
+    color:#fff !important;
   }
   .nav-collapse.in .btn-group {
     padding: 0;
@@ -1039,7 +752,7 @@
     position: static;
     top: auto;
     left: auto;
-    display: none;
+    display: block;
     float: none;
     max-width: none;
     padding: 0;
@@ -1053,9 +766,6 @@
        -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;
@@ -1063,26 +773,17 @@
   .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: 10px 15px;
-    margin: 10px 0;
-    border-top: 1px solid #f2f2f2;
-    border-bottom: 1px solid #f2f2f2;
+    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, 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 e2cf533..05ad3c3 100644
--- a/css/bootstrap.css
+++ b/css/bootstrap.css
@@ -1,28 +1,23 @@
 /*!
- * Bootstrap v2.3.2
+ * Bootstrap v2.0.3
  *
- * Copyright 2013 Twitter, Inc
+ * Copyright 2012 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 by @mdo and @fat.
+ * Designed and built with all the love in the world @twitter 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;
@@ -30,16 +25,15 @@
   background-color: transparent;
   border: 0;
 }
-
 .input-block-level {
   display: block;
   width: 100%;
-  min-height: 30px;
+  min-height: 28px;
   -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  -ms-box-sizing: border-box;
+  box-sizing: border-box;
 }
-
 article,
 aside,
 details,
@@ -52,7 +46,6 @@
 section {
   display: block;
 }
-
 audio,
 canvas,
 video {
@@ -60,28 +53,23 @@
   *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;
@@ -89,29 +77,18 @@
   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,
@@ -120,632 +97,275 @@
   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,
-html input[type="button"],
+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: 14px;
-  line-height: 20px;
+  font-size: 13px;
+  line-height: 18px;
   color: #333333;
   background-color: #ffffff;
 }
-
 a {
-  color: #0088cc;
+  color: #aa1111;
   text-decoration: none;
 }
-
-a:hover,
-a:focus {
-  color: #005580;
+a:hover {
+  color: #640a0a;
   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;
-  float: left;
   width: 100%;
-  min-height: 30px;
-  margin-left: 2.127659574468085%;
-  *margin-left: 2.074468085106383%;
+  min-height: 28px;
   -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          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%;
 }
-
 .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: 100%;
-  *width: 99.94680851063829%;
+  width: 99.99999998999999%;
+  *width: 99.94680850063828%;
 }
-
 .row-fluid .span11 {
-  width: 91.48936170212765%;
-  *width: 91.43617021276594%;
+  width: 91.489361693%;
+  *width: 91.4361702036383%;
 }
-
 .row-fluid .span10 {
-  width: 82.97872340425532%;
-  *width: 82.92553191489361%;
+  width: 82.97872339599999%;
+  *width: 82.92553190663828%;
 }
-
 .row-fluid .span9 {
-  width: 74.46808510638297%;
-  *width: 74.41489361702126%;
+  width: 74.468085099%;
+  *width: 74.4148936096383%;
 }
-
 .row-fluid .span8 {
-  width: 65.95744680851064%;
-  *width: 65.90425531914893%;
+  width: 65.95744680199999%;
+  *width: 65.90425531263828%;
 }
-
 .row-fluid .span7 {
-  width: 57.44680851063829%;
-  *width: 57.39361702127659%;
+  width: 57.446808505%;
+  *width: 57.3936170156383%;
 }
-
 .row-fluid .span6 {
-  width: 48.93617021276595%;
-  *width: 48.88297872340425%;
+  width: 48.93617020799999%;
+  *width: 48.88297871863829%;
 }
-
 .row-fluid .span5 {
-  width: 40.42553191489362%;
-  *width: 40.37234042553192%;
+  width: 40.425531911%;
+  *width: 40.3723404216383%;
 }
-
 .row-fluid .span4 {
-  width: 31.914893617021278%;
-  *width: 31.861702127659576%;
+  width: 31.914893614%;
+  *width: 31.8617021246383%;
 }
-
 .row-fluid .span3 {
-  width: 23.404255319148934%;
-  *width: 23.351063829787233%;
+  width: 23.404255317%;
+  *width: 23.3510638276383%;
 }
-
 .row-fluid .span2 {
-  width: 14.893617021276595%;
-  *width: 14.840425531914894%;
+  width: 14.89361702%;
+  *width: 14.8404255306383%;
 }
-
 .row-fluid .span1 {
-  width: 6.382978723404255%;
-  *width: 6.329787234042553%;
+  width: 6.382978723%;
+  *width: 6.329787233638298%;
 }
-
-.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 10px;
+  margin: 0 0 9px;
+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+  font-size: 13px;
+  line-height: 18px;
 }
-
+p small {
+  font-size: 11px;
+  color: #EBEBEB;
+}
 .lead {
-  margin-bottom: 20px;
-  font-size: 21px;
+  margin-bottom: 18px;
+  font-size: 20px;
   font-weight: 200;
-  line-height: 30px;
+  line-height: 27px;
 }
-
-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: 10px 0;
+  margin: 0;
   font-family: inherit;
   font-weight: bold;
-  line-height: 20px;
   color: inherit;
   text-rendering: optimizelegibility;
 }
-
 h1 small,
 h2 small,
 h3 small,
@@ -753,187 +373,148 @@
 h5 small,
 h6 small {
   font-weight: normal;
-  line-height: 1;
-  color: #999999;
+  color: #EBEBEB;
 }
-
-h1,
-h2,
-h3 {
-  line-height: 40px;
-}
-
 h1 {
-  font-size: 38.5px;
+  font-size: 30px;
+  line-height: 36px;
 }
-
-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;
+  font-size: 18px;
 }
-
+h2 {
+  font-size: 24px;
+  line-height: 36px;
+}
 h2 small {
-  font-size: 17.5px;
+  font-size: 18px;
 }
-
+h3 {
+  font-size: 18px;
+  line-height: 27px;
+}
 h3 small {
   font-size: 14px;
 }
-
-h4 small {
+h4,
+h5,
+h6 {
+  line-height: 18px;
+}
+h4 {
   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: 9px;
-  margin: 20px 0 30px;
+  padding-bottom: 17px;
+  margin: 18px 0;
   border-bottom: 1px solid #eeeeee;
 }
-
+.page-header h1 {
+  line-height: 1;
+}
 ul,
 ol {
   padding: 0;
-  margin: 0 0 10px 25px;
+  margin: 0 0 9px 25px;
 }
-
 ul ul,
 ul ol,
 ol ol,
 ol ul {
   margin-bottom: 0;
 }
-
-li {
-  line-height: 20px;
+ul {
+  list-style: disc;
 }
-
+ol {
+  list-style: decimal;
+}
+li {
+  line-height: 18px;
+}
 ul.unstyled,
 ol.unstyled {
   margin-left: 0;
   list-style: none;
 }
-
-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;
+  margin-bottom: 18px;
 }
-
 dt,
 dd {
-  line-height: 20px;
+  line-height: 18px;
 }
-
 dt {
   font-weight: bold;
+  line-height: 17px;
 }
-
 dd {
-  margin-left: 10px;
+  margin-left: 9px;
 }
-
-.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: 160px;
-  overflow: hidden;
+  width: 120px;
   clear: left;
   text-align: right;
+  overflow: hidden;
   text-overflow: ellipsis;
   white-space: nowrap;
 }
-
 .dl-horizontal dd {
-  margin-left: 180px;
+  margin-left: 130px;
 }
-
 hr {
-  margin: 20px 0;
+  margin: 18px 0;
   border: 0;
   border-top: 1px solid #eeeeee;
   border-bottom: 1px solid #ffffff;
 }
-
-abbr[title],
-abbr[data-original-title] {
-  cursor: help;
-  border-bottom: 1px dotted #999999;
+strong {
+  font-weight: bold;
 }
-
+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 20px;
+  margin: 0 0 18px;
   border-left: 5px solid #eeeeee;
 }
-
 blockquote p {
   margin-bottom: 0;
-  font-size: 17.5px;
+  font-size: 16px;
   font-weight: 300;
-  line-height: 1.25;
+  line-height: 22.5px;
 }
-
 blockquote small {
   display: block;
-  line-height: 20px;
-  color: #999999;
+  line-height: 18px;
+  color: #EBEBEB;
 }
-
 blockquote small:before {
   content: '\2014 \00A0';
 }
-
 blockquote.pull-right {
   float: right;
   padding-right: 15px;
@@ -941,59 +522,50 @@
   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: 20px;
+  margin-bottom: 18px;
   font-style: normal;
-  line-height: 20px;
+  line-height: 18px;
 }
-
+small {
+  font-size: 100%;
+}
+cite {
+  font-style: normal;
+}
 code,
 pre {
   padding: 0 3px 2px;
-  font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
+  font-family: Menlo, Monaco, 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: 9.5px;
-  margin: 0 0 10px;
-  font-size: 13px;
-  line-height: 20px;
+  padding: 8.5px;
+  margin: 0 0 9px;
+  font-size: 12.025px;
+  line-height: 18px;
   word-break: break-all;
   word-wrap: break-word;
   white-space: pre;
@@ -1002,272 +574,465 @@
   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: 20px;
+  margin-bottom: 18px;
 }
-
 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;
 }
-
-form {
-  margin: 0 0 20px;
+.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;
+}
 fieldset {
   padding: 0;
   margin: 0;
   border: 0;
 }
-
 legend {
   display: block;
   width: 100%;
   padding: 0;
-  margin-bottom: 20px;
-  font-size: 21px;
-  line-height: 40px;
+  margin-bottom: 27px;
+  font-size: 19.5px;
+  line-height: 36px;
   color: #333333;
   border: 0;
-  border-bottom: 1px solid #e5e5e5;
+  border-bottom: 1px solid #eee;
 }
-
 legend small {
-  font-size: 15px;
-  color: #999999;
+  font-size: 13.5px;
+  color: #EBEBEB;
 }
-
 label,
 input,
 button,
 select,
 textarea {
-  font-size: 14px;
+  font-size: 13px;
   font-weight: normal;
-  line-height: 20px;
+  line-height: 18px;
 }
-
 input,
 button,
 select,
 textarea {
   font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
 }
-
 label {
   display: block;
   margin-bottom: 5px;
+  color: #333333;
 }
-
-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;
-  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,
+select,
 .uneditable-input {
-  width: 206px;
+  display: inline-block;
+  width: 210px;
+  height: 18px;
+  padding: 4px;
+  margin-bottom: 9px;
+  font-size: 13px;
+  line-height: 18px;
+  color: #555555;
+  background-color: #ffffff;
+  border: 1px solid #ebebeb;
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  border-radius: 3px;
 }
-
-textarea {
+.uneditable-textarea {
+  width: auto;
   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 #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;
+label input,
+label textarea,
+label select {
+  display: block;
 }
-
-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);
-}
-
-input[type="radio"],
-input[type="checkbox"] {
-  margin: 4px 0 0;
-  margin-top: 1px \9;
-  *margin-top: 0;
-  line-height: normal;
-}
-
-input[type="file"],
 input[type="image"],
-input[type="submit"],
-input[type="reset"],
-input[type="button"],
-input[type="radio"],
-input[type="checkbox"] {
+input[type="checkbox"],
+input[type="radio"] {
   width: auto;
-}
+  height: auto;
+  padding: 0;
+  margin: 3px 0;
+  *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="reset"],
+input[type="submit"] {
+  width: auto;
+  height: auto;
+}
 select,
 input[type="file"] {
-  height: 30px;
+  height: 28px;
   /* 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: 30px;
+  line-height: 28px;
 }
-
+input[type="file"] {
+  line-height: 18px \9;
+}
 select {
   width: 220px;
   background-color: #ffffff;
-  border: 1px solid #cccccc;
 }
-
 select[multiple],
 select[size] {
   height: auto;
 }
-
-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;
+input[type="image"] {
+  -webkit-box-shadow: none;
+  -moz-box-shadow: none;
+  box-shadow: none;
 }
-
-.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;
+textarea {
   height: auto;
 }
-
-input:-moz-placeholder,
-textarea:-moz-placeholder {
-  color: #999999;
+input[type="hidden"] {
+  display: none;
 }
-
-input:-ms-input-placeholder,
-textarea:-ms-input-placeholder {
-  color: #999999;
-}
-
-input::-webkit-input-placeholder,
-textarea::-webkit-input-placeholder {
-  color: #999999;
-}
-
 .radio,
 .checkbox {
-  min-height: 20px;
-  padding-left: 20px;
+  min-height: 18px;
+  padding-left: 18px;
 }
-
 .radio input[type="radio"],
 .checkbox input[type="checkbox"] {
   float: left;
-  margin-left: -20px;
+  margin-left: -18px;
 }
-
 .controls > .radio:first-child,
 .controls > .checkbox:first-child {
   padding-top: 5px;
 }
-
 .radio.inline,
 .checkbox.inline {
   display: inline-block;
@@ -1275,36 +1040,61 @@
   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"],
@@ -1316,127 +1106,47 @@
   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;
 }
-
-.controls-row [class*="span"] + [class*="span"] {
-  margin-left: 20px;
+input.span12, textarea.span12, .uneditable-input.span12 {
+  width: 930px;
 }
-
-input.span12,
-textarea.span12,
-.uneditable-input.span12 {
-  width: 926px;
+input.span11, textarea.span11, .uneditable-input.span11 {
+  width: 850px;
 }
-
-input.span11,
-textarea.span11,
-.uneditable-input.span11 {
-  width: 846px;
+input.span10, textarea.span10, .uneditable-input.span10 {
+  width: 770px;
 }
-
-input.span10,
-textarea.span10,
-.uneditable-input.span10 {
-  width: 766px;
+input.span9, textarea.span9, .uneditable-input.span9 {
+  width: 690px;
 }
-
-input.span9,
-textarea.span9,
-.uneditable-input.span9 {
-  width: 686px;
+input.span8, textarea.span8, .uneditable-input.span8 {
+  width: 610px;
 }
-
-input.span8,
-textarea.span8,
-.uneditable-input.span8 {
-  width: 606px;
+input.span7, textarea.span7, .uneditable-input.span7 {
+  width: 530px;
 }
-
-input.span7,
-textarea.span7,
-.uneditable-input.span7 {
-  width: 526px;
+input.span6, textarea.span6, .uneditable-input.span6 {
+  width: 450px;
 }
-
-input.span6,
-textarea.span6,
-.uneditable-input.span6 {
-  width: 446px;
+input.span5, textarea.span5, .uneditable-input.span5 {
+  width: 370px;
 }
-
-input.span5,
-textarea.span5,
-.uneditable-input.span5 {
-  width: 366px;
+input.span4, textarea.span4, .uneditable-input.span4 {
+  width: 290px;
 }
-
-input.span4,
-textarea.span4,
-.uneditable-input.span4 {
-  width: 286px;
+input.span3, textarea.span3, .uneditable-input.span3 {
+  width: 210px;
 }
-
-input.span3,
-textarea.span3,
-.uneditable-input.span3 {
-  width: 206px;
+input.span2, textarea.span2, .uneditable-input.span2 {
+  width: 130px;
 }
-
-input.span2,
-textarea.span2,
-.uneditable-input.span2 {
-  width: 126px;
+input.span1, textarea.span1, .uneditable-input.span1 {
+  width: 50px;
 }
-
-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],
@@ -1445,384 +1155,260 @@
 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 .control-label,
+.control-group.warning > 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;
-}
-
-.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: 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;
+  -webkit-box-shadow: 0 0 6px #dbc59e;
+  -moz-box-shadow: 0 0 6px #dbc59e;
+  box-shadow: 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 .control-label,
+.control-group.error > 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;
-}
-
-.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: 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;
+  -webkit-box-shadow: 0 0 6px #d59392;
+  -moz-box-shadow: 0 0 6px #d59392;
+  box-shadow: 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 .control-label,
+.control-group.success > 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;
-}
-
-.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: 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;
+  -webkit-box-shadow: 0 0 6px #7aba7b;
+  -moz-box-shadow: 0 0 6px #7aba7b;
+  box-shadow: 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;
 }
-
-.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 {
+input:focus:required:invalid,
+textarea:focus:required:invalid,
+select:focus:required:invalid {
   color: #b94a48;
   border-color: #ee5f5b;
 }
-
-input:focus:invalid:focus,
-textarea:focus:invalid:focus,
-select:focus:invalid:focus {
+input:focus:required:invalid:focus,
+textarea:focus:required:invalid:focus,
+select:focus:required: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: 19px 20px 20px;
-  margin-top: 20px;
-  margin-bottom: 20px;
+  padding: 17px 20px 18px;
+  margin-top: 18px;
+  margin-bottom: 18px;
   background-color: #f5f5f5;
-  border-top: 1px solid #e5e5e5;
+  border-top: 1px solid #ddd;
   *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: #595959;
+  color: #555555;
 }
-
 .help-block {
   display: block;
-  margin-bottom: 10px;
+  margin-bottom: 9px;
 }
-
 .help-inline {
   display: inline-block;
   *display: inline;
-  padding-left: 5px;
-  vertical-align: middle;
+  /* IE7 inline-block hack */
+
   *zoom: 1;
-}
-
-.input-append,
-.input-prepend {
-  display: inline-block;
-  margin-bottom: 10px;
-  font-size: 0;
-  white-space: nowrap;
   vertical-align: middle;
+  padding-left: 5px;
 }
-
-.input-append input,
+.input-prepend,
+.input-append {
+  margin-bottom: 5px;
+}
 .input-prepend input,
-.input-append select,
+.input-append input,
 .input-prepend select,
-.input-append .uneditable-input,
+.input-append select,
 .input-prepend .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 {
+.input-append .uneditable-input {
   position: relative;
   margin-bottom: 0;
   *margin-left: 0;
-  vertical-align: top;
-  -webkit-border-radius: 0 4px 4px 0;
-     -moz-border-radius: 0 4px 4px 0;
-          border-radius: 0 4px 4px 0;
+  vertical-align: middle;
+  -webkit-border-radius: 0 3px 3px 0;
+  -moz-border-radius: 0 3px 3px 0;
+  border-radius: 0 3px 3px 0;
 }
-
-.input-append input:focus,
 .input-prepend input:focus,
-.input-append select:focus,
+.input-append input:focus,
 .input-prepend select:focus,
-.input-append .uneditable-input:focus,
-.input-prepend .uneditable-input:focus {
+.input-append select:focus,
+.input-prepend .uneditable-input:focus,
+.input-append .uneditable-input:focus {
   z-index: 2;
 }
-
-.input-append .add-on,
-.input-prepend .add-on {
+.input-prepend .uneditable-input,
+.input-append .uneditable-input {
+  border-left-color: #ccc;
+}
+.input-prepend .add-on,
+.input-append .add-on {
   display: inline-block;
   width: auto;
-  height: 20px;
+  height: 18px;
   min-width: 16px;
   padding: 4px 5px;
-  font-size: 14px;
   font-weight: normal;
-  line-height: 20px;
+  line-height: 18px;
   text-align: center;
   text-shadow: 0 1px 0 #ffffff;
+  vertical-align: middle;
   background-color: #eeeeee;
   border: 1px solid #ccc;
 }
-
-.input-append .add-on,
 .input-prepend .add-on,
-.input-append .btn,
+.input-append .add-on,
 .input-prepend .btn,
-.input-append .btn-group > .dropdown-toggle,
-.input-prepend .btn-group > .dropdown-toggle {
-  vertical-align: top;
+.input-append .btn {
+  margin-left: -1px;
   -webkit-border-radius: 0;
-     -moz-border-radius: 0;
-          border-radius: 0;
+  -moz-border-radius: 0;
+  border-radius: 0;
 }
-
-.input-append .active,
-.input-prepend .active {
+.input-prepend .active,
+.input-append .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: 4px 0 0 4px;
-     -moz-border-radius: 4px 0 0 4px;
-          border-radius: 4px 0 0 4px;
+  -webkit-border-radius: 3px 0 0 3px;
+  -moz-border-radius: 3px 0 0 3px;
+  border-radius: 3px 0 0 3px;
 }
-
 .input-append input,
 .input-append select,
 .input-append .uneditable-input {
-  -webkit-border-radius: 4px 0 0 4px;
-     -moz-border-radius: 4px 0 0 4px;
-          border-radius: 4px 0 0 4px;
+  -webkit-border-radius: 3px 0 0 3px;
+  -moz-border-radius: 3px 0 0 3px;
+  border-radius: 3px 0 0 3px;
 }
-
-.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 .uneditable-input {
+  border-right-color: #ccc;
+  border-left-color: #eee;
 }
-
-.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,
-.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-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-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: 4px 0 0 4px;
-     -moz-border-radius: 4px 0 0 4px;
-          border-radius: 4px 0 0 4px;
+  -webkit-border-radius: 3px 0 0 3px;
+  -moz-border-radius: 3px 0 0 3px;
+  border-radius: 3px 0 0 3px;
 }
-
 .input-prepend.input-append .add-on:last-child,
 .input-prepend.input-append .btn:last-child {
   margin-left: -1px;
-  -webkit-border-radius: 0 4px 4px 0;
-     -moz-border-radius: 0 4px 4px 0;
-          border-radius: 0 4px 4px 0;
+  -webkit-border-radius: 0 3px 3px 0;
+  -moz-border-radius: 0 3px 3px 0;
+  border-radius: 0 3px 3px 0;
 }
-
-.input-prepend.input-append .btn-group:first-child {
-  margin-left: 0;
-}
-
-input.search-query {
+.search-query {
   padding-right: 14px;
   padding-right: 4px \9;
   padding-left: 14px;
@@ -1830,44 +1416,10 @@
   /* IE7-8 doesn't have border-radius, so don't indent the padding */
 
   margin-bottom: 0;
-  -webkit-border-radius: 15px;
-     -moz-border-radius: 15px;
-          border-radius: 15px;
+  -webkit-border-radius: 14px;
+  -moz-border-radius: 14px;
+  border-radius: 14px;
 }
-
-/* 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,
@@ -1891,31 +1443,26 @@
 .form-horizontal .input-append {
   display: inline-block;
   *display: inline;
-  margin-bottom: 0;
-  vertical-align: middle;
-  *zoom: 1;
-}
+  /* IE7 inline-block hack */
 
+  *zoom: 1;
+  margin-bottom: 0;
+}
 .form-search .hide,
 .form-inline .hide,
 .form-horizontal .hide {
   display: none;
 }
-
 .form-search label,
-.form-inline label,
-.form-search .btn-group,
-.form-inline .btn-group {
+.form-inline label {
   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,
@@ -1924,7 +1471,6 @@
   margin-bottom: 0;
   vertical-align: middle;
 }
-
 .form-search .radio input[type="radio"],
 .form-search .checkbox input[type="checkbox"],
 .form-inline .radio input[type="radio"],
@@ -1933,1421 +1479,183 @@
   margin-right: 3px;
   margin-left: 0;
 }
-
 .control-group {
-  margin-bottom: 10px;
+  margin-bottom: 9px;
 }
-
 legend + .control-group {
-  margin-top: 20px;
+  margin-top: 18px;
   -webkit-margin-top-collapse: separate;
 }
-
 .form-horizontal .control-group {
-  margin-bottom: 20px;
+  margin-bottom: 18px;
   *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: 160px;
+  width: 140px;
   padding-top: 5px;
   text-align: right;
 }
-
 .form-horizontal .controls {
   *display: inline-block;
   *padding-left: 20px;
-  margin-left: 180px;
+  margin-left: 160px;
   *margin-left: 0;
 }
-
 .form-horizontal .controls:first-child {
-  *padding-left: 180px;
+  *padding-left: 160px;
 }
-
 .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: 180px;
-}
-
-table {
-  max-width: 100%;
-  background-color: transparent;
-  border-collapse: collapse;
-  border-spacing: 0;
-}
-
-.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;
-}
-
-.table-bordered th,
-.table-bordered td {
-  border-left: 1px solid #dddddd;
-}
-
-.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,
-.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;
-}
-
-.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;
-}
-
-.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;
-}
-
-.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;
-}
-
-.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;
-}
-
-.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;
-}
-
-.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;
-}
-
-.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;
-}
-
-.table-striped tbody > tr:nth-child(odd) > td,
-.table-striped tbody > tr:nth-child(odd) > th {
-  background-color: #f9f9f9;
-}
-
-.table-hover tbody tr:hover > td,
-.table-hover tbody tr:hover > th {
-  background-color: #f5f5f5;
-}
-
-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;
-}
-
-.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;
-  background-image: url("../images/glyphicons-halflings.png");
-  background-position: 14px 14px;
-  background-repeat: no-repeat;
-}
-
-/* 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;
-}
-
-.dropup,
-.dropdown {
-  position: relative;
-}
-
-.dropdown-toggle {
-  *margin-bottom: -3px;
-}
-
-.dropdown-toggle:active,
-.open .dropdown-toggle {
-  outline: 0;
-}
-
-.caret {
-  display: inline-block;
-  width: 0;
-  height: 0;
-  vertical-align: top;
-  border-top: 4px solid #000000;
-  border-right: 4px solid transparent;
-  border-left: 4px solid transparent;
-  content: "";
-}
-
-.dropdown .caret {
-  margin-top: 8px;
-  margin-left: 2px;
-}
-
-.dropdown-menu {
-  position: absolute;
-  top: 100%;
-  left: 0;
-  z-index: 1000;
-  display: none;
-  float: left;
-  min-width: 160px;
-  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: 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;
-}
-
-.dropdown-menu.pull-right {
-  right: 0;
-  left: auto;
-}
-
-.dropdown-menu .divider {
-  *width: 100%;
-  height: 1px;
-  margin: 9px 1px;
-  *margin: -5px 0 5px;
-  overflow: hidden;
-  background-color: #e5e5e5;
-  border-bottom: 1px solid #ffffff;
-}
-
-.dropdown-menu > li > a {
-  display: block;
-  padding: 3px 20px;
-  clear: both;
-  font-weight: normal;
-  line-height: 20px;
-  color: #333333;
-  white-space: nowrap;
-}
-
-.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: #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 {
-  display: block;
-}
-
-.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: "";
-}
-
-.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;
-}
-
-.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;
+  padding-left: 160px;
 }
-
 .btn {
   display: inline-block;
   *display: inline;
-  padding: 4px 12px;
+  /* IE7 inline-block hack */
+
+  *zoom: 1;
+  padding: 4px 10px 4px;
   margin-bottom: 0;
-  *margin-left: .3em;
-  font-size: 14px;
-  line-height: 20px;
+  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-color: #e6e6e6;
   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(to bottom, #ffffff, #e6e6e6);
+  background-image: linear-gradient(top, #ffffff, #e6e6e6);
   background-repeat: repeat-x;
-  border: 1px solid #cccccc;
-  *border: 0;
+  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 */
+
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  border: 1px solid #cccccc;
+  *border: 0;
   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);
+  -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);
 }
-
 .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 {
+.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;
-       -o-transition: background-position 0.1s linear;
-          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;
 }
-
 .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, 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);
+  -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;
+  -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;
+  padding: 9px 14px;
+  font-size: 15px;
+  line-height: normal;
+  -webkit-border-radius: 5px;
+  -moz-border-radius: 5px;
+  border-radius: 5px;
 }
-
-.btn-large [class^="icon-"],
-.btn-large [class*=" icon-"] {
-  margin-top: 4px;
+.btn-large [class^="icon-"] {
+  margin-top: 1px;
 }
-
 .btn-small {
-  padding: 2px 10px;
-  font-size: 11.9px;
-  -webkit-border-radius: 3px;
-     -moz-border-radius: 3px;
-          border-radius: 3px;
+  padding: 5px 9px;
+  font-size: 11px;
+  line-height: 16px;
 }
-
-.btn-small [class^="icon-"],
-.btn-small [class*=" icon-"] {
-  margin-top: 0;
-}
-
-.btn-mini [class^="icon-"],
-.btn-mini [class*=" icon-"] {
+.btn-small [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;
+  padding: 2px 6px;
+  font-size: 11px;
+  line-height: 14px;
 }
-
-.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-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-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,
@@ -3356,467 +1664,805 @@
 .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;
+.btn {
+  border-color: #ccc;
   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 {
+  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);
+}
 .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;
+  background-color: #aa3711;
+  *background-color: #93300f;
 }
-
 .btn-primary:active,
 .btn-primary.active {
-  background-color: #003399 \9;
+  background-color: #7c280c \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: -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(to bottom, #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);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
-}
+  *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);
+}
 .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: -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(to bottom, #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);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
-}
+  *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);
+}
 .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: -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(to bottom, #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);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
-}
+  *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);
+}
 .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: -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(to bottom, #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);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
-}
+  *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);
+}
 .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-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);
-  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);
-  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
-}
+  *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);
+}
 .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;
+  *padding-top: 2px;
+  *padding-bottom: 2px;
 }
-
 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;
+[class^="icon-"],
+[class*=" icon-"] {
+  display: inline-block;
+  width: 14px;
+  height: 14px;
+  *margin-right: .3em;
+  line-height: 14px;
+  vertical-align: text-top;
+  background-image: url("../images/glyphicons-halflings.png");
+  background-position: 14px 14px;
+  background-repeat: no-repeat;
 }
-
-.btn-link {
-  color: #0088cc;
-  cursor: pointer;
-  border-color: transparent;
-  -webkit-border-radius: 0;
-     -moz-border-radius: 0;
-          border-radius: 0;
+[class^="icon-"]:last-child,
+[class*=" icon-"]:last-child {
+  *margin-left: 0;
 }
-
-.btn-link:hover,
-.btn-link:focus {
-  color: #005580;
-  text-decoration: underline;
-  background-color: transparent;
+.icon-white {
+  background-image: url("../images/glyphicons-halflings-white.png");
 }
-
-.btn-link[disabled]:hover,
-.btn-link[disabled]:focus {
-  color: #333333;
-  text-decoration: none;
+.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 {
+  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 {
+  background-position: -384px -120px;
+}
+.icon-folder-open {
+  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;
-  display: inline-block;
-  *display: inline;
-  *margin-left: .3em;
-  font-size: 0;
-  white-space: nowrap;
-  vertical-align: middle;
   *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: 10px;
-  margin-bottom: 10px;
-  font-size: 0;
+  margin-top: 9px;
+  margin-bottom: 9px;
 }
+.btn-toolbar .btn-group {
+  display: inline-block;
+  *display: inline;
+  /* IE7 inline-block hack */
 
-.btn-toolbar > .btn + .btn,
-.btn-toolbar > .btn-group + .btn,
-.btn-toolbar > .btn + .btn-group {
-  margin-left: 5px;
+  *zoom: 1;
 }
-
 .btn-group > .btn {
   position: relative;
-  -webkit-border-radius: 0;
-     -moz-border-radius: 0;
-          border-radius: 0;
-}
-
-.btn-group > .btn + .btn {
+  float: left;
   margin-left: -1px;
+  -webkit-border-radius: 0;
+  -moz-border-radius: 0;
+  border-radius: 0;
 }
-
-.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;
+  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;
-          border-top-right-radius: 4px;
-  -webkit-border-bottom-right-radius: 4px;
-          border-bottom-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-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;
+  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;
-          border-top-right-radius: 6px;
-  -webkit-border-bottom-right-radius: 6px;
-          border-bottom-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 > .btn + .dropdown-toggle {
-  *padding-top: 5px;
-  padding-right: 8px;
-  *padding-bottom: 5px;
+.btn-group > .dropdown-toggle {
   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-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-large + .dropdown-toggle {
-  *padding-top: 7px;
-  padding-right: 12px;
-  *padding-bottom: 7px;
-  padding-left: 12px;
+.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, 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);
+  -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: #0044cc;
+  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: 8px;
+  margin-top: 7px;
   margin-left: 0;
 }
-
-.btn-large .caret {
+.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 {
-  border-top-width: 5px;
-  border-right-width: 5px;
+  margin-top: 6px;
   border-left-width: 5px;
+  border-right-width: 5px;
+  border-top-width: 5px;
 }
-
-.btn-mini .caret,
-.btn-small .caret {
-  margin-top: 8px;
-}
-
 .dropup .btn-large .caret {
-  border-bottom-width: 5px;
+  border-bottom: 5px solid #000000;
+  border-top: 0;
 }
-
 .btn-primary .caret,
 .btn-warning .caret,
 .btn-danger .caret,
@@ -3825,230 +2471,88 @@
 .btn-inverse .caret {
   border-top-color: #ffffff;
   border-bottom-color: #ffffff;
+  opacity: 0.75;
+  filter: alpha(opacity=75);
 }
-
-.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;
+  margin-bottom: 18px;
   list-style: none;
 }
-
 .nav > li > a {
   display: block;
 }
-
-.nav > li > a:hover,
-.nav > li > a:focus {
+.nav > li > a:hover {
   text-decoration: none;
   background-color: #eeeeee;
 }
-
-.nav > li > a > img {
-  max-width: none;
-}
-
 .nav > .pull-right {
   float: right;
 }
-
-.nav-header {
+.nav .nav-header {
   display: block;
   padding: 3px 15px;
   font-size: 11px;
   font-weight: bold;
-  line-height: 20px;
-  color: #999999;
+  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-right: 15px;
   padding-left: 15px;
+  padding-right: 15px;
   margin-bottom: 0;
 }
-
 .nav-list > li > a,
 .nav-list .nav-header {
-  margin-right: -15px;
   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,
-.nav-list > .active > a:focus {
+.nav-list > .active > a:hover {
   color: #ffffff;
   text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
-  background-color: #0088cc;
+  background-color: #aa1111;
 }
-
-.nav-list [class^="icon-"],
-.nav-list [class*=" icon-"] {
+.nav-list [class^="icon-"] {
   margin-right: 2px;
 }
-
 .nav-list .divider {
   *width: 100%;
   height: 1px;
-  margin: 9px 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;
-  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;
@@ -4056,489 +2560,380 @@
   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;
+  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;
+  -moz-border-radius: 4px 4px 0 0;
+  border-radius: 4px 4px 0 0;
 }
-
-.nav-tabs > li > a:hover,
-.nav-tabs > li > a:focus {
+.nav-tabs > li > a:hover {
   border-color: #eeeeee #eeeeee #dddddd;
 }
-
 .nav-tabs > .active > a,
-.nav-tabs > .active > a:hover,
-.nav-tabs > .active > a:focus {
+.nav-tabs > .active > a:hover {
   color: #555555;
-  cursor: default;
   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;
+  -moz-border-radius: 5px;
+  border-radius: 5px;
 }
-
 .nav-pills > .active > a,
-.nav-pills > .active > a:hover,
-.nav-pills > .active > a:focus {
+.nav-pills > .active > a:hover {
   color: #ffffff;
-  background-color: #0088cc;
+  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;
+  -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;
+  -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-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;
+  -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,
-.nav-tabs.nav-stacked > li > a:focus {
-  z-index: 2;
+.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 6px 6px;
-     -moz-border-radius: 0 0 6px 6px;
-          border-radius: 0 0 6px 6px;
+  -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: 6px;
-     -moz-border-radius: 6px;
-          border-radius: 6px;
+  -webkit-border-radius: 4px;
+  -moz-border-radius: 4px;
+  border-radius: 4px;
 }
-
-.nav .dropdown-toggle .caret {
+.nav-tabs .dropdown-toggle .caret,
+.nav-pills .dropdown-toggle .caret {
+  border-top-color: #aa1111;
+  border-bottom-color: #aa1111;
   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;
+.nav-tabs .dropdown-toggle:hover .caret,
+.nav-pills .dropdown-toggle:hover .caret {
+  border-top-color: #640a0a;
+  border-bottom-color: #640a0a;
 }
-
-/* move down carets for tabs */
-
-.nav-tabs .dropdown-toggle .caret {
-  margin-top: 8px;
+.nav-tabs .active .dropdown-toggle .caret,
+.nav-pills .active .dropdown-toggle .caret {
+  border-top-color: #333333;
+  border-bottom-color: #333333;
 }
-
-.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 {
+.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,
-.nav > li.dropdown.open.active > a:focus {
+.nav > li.dropdown.open.active > a:hover {
   color: #ffffff;
-  background-color: #999999;
-  border-color: #999999;
+  background-color: #EBEBEB;
+  border-color: #EBEBEB;
 }
-
 .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 {
+.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,
-.tabs-stacked .open > a:focus {
-  border-color: #999999;
+.tabs-stacked .open > a:hover {
+  border-color: #EBEBEB;
 }
-
 .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;
+  -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;
+.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,
-.tabs-below > .nav-tabs > .active > a:focus {
+.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;
+  -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 {
+.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,
-.tabs-left > .nav-tabs .active > a:focus {
+.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;
+  -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 {
+.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,
-.tabs-right > .nav-tabs .active > a:focus {
+.tabs-right > .nav-tabs .active > a:hover {
   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;
+  margin-bottom: 18px;
 }
-
 .navbar-inner {
-  min-height: 40px;
-  padding-right: 20px;
+  min-height: 60px;
   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);
+  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;
-  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);
-}
+  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 */
 
-.navbar-inner:before,
-.navbar-inner:after {
-  display: table;
-  line-height: 0;
-  content: "";
+/*  -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-inner:after {
-  clear: both;
-}
-
 .navbar .container {
   width: auto;
 }
-
 .nav-collapse.collapse {
   height: auto;
-  overflow: visible;
 }
-
+.navbar {
+  color: #EBEBEB;
+}
+.navbar .brand:hover {
+  text-decoration: none;
+}
 .navbar .brand {
-  display: block;
   float: left;
-  padding: 10px 20px 10px;
+  display: block;
+  padding: 18px 20px 22px;
   margin-left: -20px;
   font-size: 20px;
   font-weight: 200;
-  color: #777777;
-  text-shadow: 0 1px 0 #ffffff;
+  line-height: 1;
+  color: #000;
 }
-
-.navbar .brand:hover,
-.navbar .brand:focus {
-  text-decoration: none;
-}
-
-.navbar-text {
+.navbar .navbar-text {
   margin-bottom: 0;
-  line-height: 40px;
-  color: #777777;
+  line-height: 60px;
 }
-
-.navbar-link {
-  color: #777777;
+.navbar .navbar-link {
+  color: #EBEBEB;
 }
-
-.navbar-link:hover,
-.navbar-link:focus {
-  color: #333333;
+.navbar .navbar-link:hover {
+  color: #ffffff;
 }
-
-.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;
+  margin-top: 15px;
 }
-
-.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 .btn-group .btn {
+  margin: 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;
+  margin-top: 15px;
 }
-
 .navbar-form input,
-.navbar-form select,
-.navbar-form .btn {
+.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: 5px;
+  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: 5px;
+  margin-top: 16px;
   margin-bottom: 0;
 }
-
 .navbar-search .search-query {
-  padding: 4px 14px;
-  margin-bottom: 0;
+  padding: 4px 9px;
   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;
+  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-static-top {
-  position: static;
-  margin-bottom: 0;
+.navbar-search .search-query:-moz-placeholder {
+  color: #ebebeb;
 }
-
-.navbar-static-top .navbar-inner {
-  -webkit-border-radius: 0;
-     -moz-border-radius: 0;
-          border-radius: 0;
+.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;
@@ -4547,52 +2942,24 @@
   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;
+  padding-right: 0;
   -webkit-border-radius: 0;
-     -moz-border-radius: 0;
-          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;
@@ -4600,582 +2967,798 @@
   float: left;
   margin: 0 10px 0 0;
 }
-
 .navbar .nav.pull-right {
   float: right;
-  margin-right: 0;
 }
-
 .navbar .nav > li {
+  display: block;
   float: left;
 }
-
 .navbar .nav > li > a {
   float: none;
-  padding: 10px 15px 10px;
-  color: #777777;
+  padding: 19px 10px 21px;
+  line-height: 19px;
+  color: #999;
   text-decoration: none;
-  text-shadow: 0 1px 0 #ffffff;
+/*  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);*/
 }
-
-.navbar .nav .dropdown-toggle .caret {
-  margin-top: 8px;
+.navbar .btn {
+  display: inline-block;
+  padding: 4px 10px 4px;
+  margin: 15px 5px 16px;
+  line-height: 18px;
 }
-
-.navbar .nav > li > a:focus,
+.navbar .btn-group {
+  margin: 0;
+  padding: 15px 5px 16px;
+}
 .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;
+  color: #aa1111;
   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 .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-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);
+  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;
-  border-color: #e5e5e5 #e5e5e5 #bfbfbf;
+  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);
-  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);
-}
+  *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: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;
+  background-color: #222222;
+  *background-color: #151515;
 }
-
 .navbar .btn-navbar:active,
 .navbar .btn-navbar.active {
-  background-color: #cccccc \9;
+  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;
+  -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);
+  -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 {
+.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;
-  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 {
+.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;
-  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;
+.navbar-fixed-bottom .dropdown-menu:before {
   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 {
+  border-bottom: 0;
+  bottom: -7px;
   top: auto;
-  bottom: -6px;
+}
+.navbar-fixed-bottom .dropdown-menu:after {
   border-top: 6px solid #ffffff;
   border-bottom: 0;
+  bottom: -6px;
+  top: auto;
 }
-
-.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 .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 {
-  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 {
+.navbar .nav li.dropdown.active > .dropdown-toggle:hover {
   color: #ffffff;
 }
-
-.navbar-inverse .divider-vertical {
-  border-right-color: #222222;
-  border-left-color: #111111;
+.navbar .pull-right .dropdown-menu,
+.navbar .dropdown-menu.pull-right {
+  left: auto;
+  right: 0;
 }
-
-.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 .pull-right .dropdown-menu:before,
+.navbar .dropdown-menu.pull-right:before {
+  left: auto;
+  right: 12px;
 }
-
-.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 .pull-right .dropdown-menu:after,
+.navbar .dropdown-menu.pull-right:after {
+  left: auto;
+  right: 13px;
 }
-
-.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;
+  padding: 7px 14px;
+  margin: 0 0 18px;
   list-style: none;
-  background-color: #f5f5f5;
-  -webkit-border-radius: 4px;
-     -moz-border-radius: 4px;
-          border-radius: 4px;
+  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 {
+.breadcrumb li {
   display: inline-block;
   *display: inline;
-  text-shadow: 0 1px 0 #ffffff;
+  /* IE7 inline-block hack */
+
   *zoom: 1;
+  text-shadow: 0 1px 0 #ffffff;
 }
-
-.breadcrumb > li > .divider {
+.breadcrumb .divider {
   padding: 0 5px;
-  color: #ccc;
+  color: #EBEBEB;
 }
-
-.breadcrumb > .active {
-  color: #999999;
+.breadcrumb .active a {
+  color: #333333;
 }
-
 .pagination {
-  margin: 20px 0;
+  height: 36px;
+  margin: 18px 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);
-}
+  /* IE7 inline-block hack */
 
-.pagination ul > li {
+  *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 ul > li > a,
-.pagination ul > li > span {
+.pagination a {
   float: left;
-  padding: 4px 12px;
-  line-height: 20px;
+  padding: 0 14px;
+  line-height: 34px;
   text-decoration: none;
-  background-color: #ffffff;
-  border: 1px solid #dddddd;
+  border: 1px solid #ddd;
   border-left-width: 0;
 }
-
-.pagination ul > li > a:hover,
-.pagination ul > li > a:focus,
-.pagination ul > .active > a,
-.pagination ul > .active > span {
+.pagination a:hover,
+.pagination .active a {
   background-color: #f5f5f5;
 }
-
-.pagination ul > .active > a,
-.pagination ul > .active > span {
-  color: #999999;
+.pagination .active a {
+  color: #EBEBEB;
   cursor: default;
 }
-
-.pagination ul > .disabled > span,
-.pagination ul > .disabled > a,
-.pagination ul > .disabled > a:hover,
-.pagination ul > .disabled > a:focus {
-  color: #999999;
-  cursor: default;
+.pagination .disabled span,
+.pagination .disabled a,
+.pagination .disabled a:hover {
+  color: #EBEBEB;
   background-color: transparent;
+  cursor: default;
 }
-
-.pagination ul > li:first-child > a,
-.pagination ul > li:first-child > span {
+.pagination li:first-child a {
   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;
+  -webkit-border-radius: 3px 0 0 3px;
+  -moz-border-radius: 3px 0 0 3px;
+  border-radius: 3px 0 0 3px;
 }
-
-.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 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;
 }
-
-.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;
+  margin-left: 0;
+  margin-bottom: 18px;
   list-style: none;
+  text-align: center;
   *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 {
+.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;
+  -moz-border-radius: 15px;
+  border-radius: 15px;
 }
-
-.pager li > a:hover,
-.pager li > a:focus {
+.pager a:hover {
   text-decoration: none;
   background-color: #f5f5f5;
 }
-
-.pager .next > a,
-.pager .next > span {
+.pager .next a {
   float: right;
 }
-
-.pager .previous > a,
-.pager .previous > span {
+.pager .previous a {
   float: left;
 }
-
-.pager .disabled > a,
-.pager .disabled > a:hover,
-.pager .disabled > a:focus,
-.pager .disabled > span {
-  color: #999999;
-  cursor: default;
+.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;
@@ -5185,77 +3768,64 @@
   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%;
+  top: 50%;
   left: 50%;
   z-index: 1050;
+  overflow: auto;
   width: 560px;
-  margin-left: -280px;
+  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;
-  outline: none;
+  -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);
+  -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;
+  -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%;
-  -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%;
+  top: 50%;
 }
-
 .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;
+  overflow-y: auto;
   max-height: 400px;
   padding: 15px;
-  overflow-y: auto;
 }
-
 .modal-form {
   margin-bottom: 0;
 }
-
 .modal-footer {
   padding: 14px 15px 15px;
   margin-bottom: 0;
@@ -5263,777 +3833,220 @@
   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;
+  -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;
+  -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;
-  line-height: 0;
   content: "";
 }
-
 .modal-footer:after {
   clear: both;
 }
-
 .modal-footer .btn + .btn {
-  margin-bottom: 0;
   margin-left: 5px;
+  margin-bottom: 0;
 }
-
 .modal-footer .btn-group .btn + .btn {
   margin-left: -1px;
 }
-
-.modal-footer .btn-block + .btn-block {
-  margin-left: 0;
+.dropup,
+.dropdown {
+  position: relative;
 }
-
-.tooltip {
-  position: absolute;
-  z-index: 1030;
-  display: block;
-  font-size: 11px;
-  line-height: 1.4;
-  opacity: 0;
-  filter: alpha(opacity=0);
-  visibility: visible;
+.dropdown-toggle {
+  *margin-bottom: -3px;
 }
-
-.tooltip.in {
-  opacity: 0.8;
-  filter: alpha(opacity=80);
+.dropdown-toggle:active,
+.open .dropdown-toggle {
+  outline: 0;
 }
-
-.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;
+.caret {
+  display: inline-block;
   width: 0;
   height: 0;
-  border-color: transparent;
-  border-style: solid;
+  vertical-align: top;
+  border-top: 4px solid #000000;
+  border-right: 4px solid transparent;
+  border-left: 4px solid transparent;
+  content: "";
+  opacity: 0.3;
+  filter: alpha(opacity=30);
 }
-
-.tooltip.top .tooltip-arrow {
-  bottom: 0;
-  left: 50%;
-  margin-left: -5px;
-  border-top-color: #000000;
-  border-width: 5px 5px 0;
+.dropdown .caret {
+  margin-top: 8px;
+  margin-left: 2px;
 }
-
-.tooltip.right .tooltip-arrow {
-  top: 50%;
-  left: 0;
-  margin-top: -5px;
-  border-right-color: #000000;
-  border-width: 5px 5px 5px 0;
+.dropdown:hover .caret,
+.open .caret {
+  opacity: 1;
+  filter: alpha(opacity=100);
 }
-
-.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 {
+.dropdown-menu {
   position: absolute;
-  top: 0;
+  top: 100%;
   left: 0;
-  z-index: 1010;
+  z-index: 1000;
   display: none;
-  max-width: 276px;
-  padding: 1px;
-  text-align: left;
-  white-space: normal;
+  float: left;
+  min-width: 160px;
+  padding: 4px 0;
+  margin: 1px 0 0;
+  list-style: none;
   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;
+  *border-right-width: 2px;
+  *border-bottom-width: 2px;
+  -webkit-border-radius: 5px;
+  -moz-border-radius: 5px;
+  border-radius: 5px;
   -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;
 }
-
-.popover.top {
-  margin-top: -10px;
+.dropdown-menu.pull-right {
+  right: 0;
+  left: auto;
 }
-
-.popover.right {
-  margin-left: 10px;
+.dropdown-menu .divider {
+  *width: 100%;
+  height: 1px;
+  margin: 8px 1px;
+  *margin: -5px 0 5px;
+  overflow: hidden;
+  background-color: #e5e5e5;
+  border-bottom: 1px solid #ffffff;
 }
-
-.popover.bottom {
-  margin-top: 10px;
-}
-
-.popover.left {
-  margin-left: -10px;
-}
-
-.popover-title {
-  padding: 8px 14px;
-  margin: 0;
-  font-size: 14px;
+.dropdown-menu a {
+  display: block;
+  padding: 3px 15px;
+  clear: both;
   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);
+  color: #333333;
   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 {
+.dropdown-menu li > a:hover,
+.dropdown-menu .active > a,
+.dropdown-menu .active > a:hover {
   color: #ffffff;
   text-decoration: none;
-  cursor: pointer;
+  background-color: #aa1111;
 }
-
-.label-important,
-.badge-important {
-  background-color: #b94a48;
+.open {
+  *z-index: 1000;
 }
-
-.label-important[href],
-.badge-important[href] {
-  background-color: #953b39;
+.open .dropdown-menu {
+  display: block;
 }
-
-.label-warning,
-.badge-warning {
-  background-color: #f89406;
+.pull-right .dropdown-menu {
+  right: 0;
+  left: auto;
 }
-
-.label-warning[href],
-.badge-warning[href] {
-  background-color: #c67605;
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+  border-top: 0;
+  border-bottom: 4px solid #000000;
+  content: "\2191";
 }
-
-.label-success,
-.badge-success {
-  background-color: #468847;
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+  top: auto;
+  bottom: 100%;
+  margin-bottom: 1px;
 }
-
-.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;
+.typeahead {
+  margin-top: 2px;
   -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);
+  -moz-border-radius: 4px;
+  border-radius: 4px;
 }
-
-.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: 20px;
+  margin-bottom: 18px;
 }
-
 .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: 20px;
+  margin-bottom: 18px;
   line-height: 1;
 }
-
 .carousel-inner {
-  position: relative;
-  width: 100%;
   overflow: hidden;
-}
-
-.carousel-inner > .item {
+  width: 100%;
   position: relative;
-  display: none;
-  -webkit-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-inner > .item > img,
-.carousel-inner > .item > a > img {
+.carousel .item {
+  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;
+}
+.carousel .item > img {
   display: block;
   line-height: 1;
 }
-
-.carousel-inner > .active,
-.carousel-inner > .next,
-.carousel-inner > .prev {
+.carousel .active,
+.carousel .next,
+.carousel .prev {
   display: block;
 }
-
-.carousel-inner > .active {
+.carousel .active {
   left: 0;
 }
-
-.carousel-inner > .next,
-.carousel-inner > .prev {
+.carousel .next,
+.carousel .prev {
   position: absolute;
   top: 0;
   width: 100%;
 }
-
-.carousel-inner > .next {
+.carousel .next {
   left: 100%;
 }
-
-.carousel-inner > .prev {
+.carousel .prev {
   left: -100%;
 }
-
-.carousel-inner > .next.left,
-.carousel-inner > .prev.right {
+.carousel .next.left,
+.carousel .prev.right {
   left: 0;
 }
-
-.carousel-inner > .active.left {
+.carousel .active.left {
   left: -100%;
 }
-
-.carousel-inner > .active.right {
+.carousel .active.right {
   left: 100%;
 }
-
 .carousel-control {
   position: absolute;
   top: 40%;
@@ -6049,119 +4062,834 @@
   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 {
-  right: 15px;
   left: auto;
+  right: 15px;
 }
-
-.carousel-control:hover,
-.carousel-control:focus {
+.carousel-control:hover {
   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;
-  left: 0;
-  padding: 15px;
+  padding: 10px 15px 5px;
   background: #333333;
   background: rgba(0, 0, 0, 0.75);
 }
-
 .carousel-caption h4,
 .carousel-caption p {
-  line-height: 20px;
   color: #ffffff;
 }
-
-.carousel-caption h4 {
-  margin: 0 0 5px;
+.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 p {
-  margin-bottom: 0;
+.well blockquote {
+  border-color: #ddd;
+  border-color: rgba(0, 0, 0, 0.15);
 }
-
-.hero-unit {
-  padding: 60px;
-  margin-bottom: 30px;
-  font-size: 18px;
-  font-weight: 200;
-  line-height: 30px;
-  color: inherit;
-  background-color: #eeeeee;
+.well-large {
+  padding: 24px;
   -webkit-border-radius: 6px;
-     -moz-border-radius: 6px;
-          border-radius: 6px;
+  -moz-border-radius: 6px;
+  border-radius: 6px;
 }
-
-.hero-unit h1 {
-  margin-bottom: 0;
-  font-size: 60px;
-  line-height: 1;
-  letter-spacing: -1px;
-  color: inherit;
+.well-small {
+  padding: 9px;
+  -webkit-border-radius: 3px;
+  -moz-border-radius: 3px;
+  border-radius: 3px;
 }
-
-.hero-unit li {
-  line-height: 30px;
+.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);
 }
-
+.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;
 }
-
-.affix {
-  position: fixed;
+.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;
+  }
+}
+
diff --git a/css/fonts.css b/css/fonts.css
index 4f3ad60..4937aba 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('/Xtext/css/fonts/vollkorn/v3/Oiz0tNwvC-Nd29SBQWfWTL3hpw3pgy2gAi-Ip7WPMi0.woff') format('woff');
+  src: local('Vollkorn Italic'), local('Vollkorn-Italic'), url('/xtend/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('/Xtext/css/fonts/vollkorn/v3/BCFBp4rt5gxxFrX6F12DKnYhjbSpvc47ee6xR_80Hnw.woff') format('woff');
+  src: local('Vollkorn Regular'), local('Vollkorn-Regular'), url('/xtend/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('/Xtext/css/fonts/lato/v6/VNUH7ZAcagYBWsAiBBCEY6CWcynf_cDxXwCLxiixG1c.ttf') format('truetype');
+  src: local('Lato Black Italic'), local('Lato-BlackItalic'), url('/xtend/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('/Xtext/css/fonts/lato/v6/v0SdcGFAl2aezM9Vq_aFTQ.ttf') format('truetype');
+  src: local('Lato Regular'), local('Lato-Regular'), url('/xtend/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('/Xtext/css/fonts/lato/v6/LqowQDslGv4DmUBAfWa2Vw.ttf') format('truetype');
+  src: local('Lato Italic'), local('Lato-Italic'), url('/xtend/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 9ae31eb..54547e2 100644
--- a/css/prettify.css
+++ b/css/prettify.css
@@ -1,34 +1,29 @@
-pre {
-  border: none;
-  background: none;
-}
-
 code.prettyprint {
   padding: 0px;
   background-color: white;
 	border: none;
 }
-/* 	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; }
+
+.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; }
 .pln { color: #48484c; }
 
 .prettyprint {
   padding: 8px;
-  background-color: node;
-  border: none;
+  background-color: #f7f7f9;
+  border: 1px solid #e1e1e8;
 }
 .prettyprint.linenums {
   -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
@@ -41,8 +36,8 @@
   margin: 0 0 0 33px; /* IE indents via margin-left */
 } 
 ol.linenums li {
-  padding-left: 0px;
-  color: #ddd;
+  padding-left: 4px;
+  color: #bebec5;
   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 4411286..873c841 100644
--- a/css/shield-responsive.css
+++ b/css/shield-responsive.css
@@ -47,6 +47,8 @@
 	*/
         
 #page {
+		margin-left: -20px;
+		margin-right: -20px;
 		
 	}
 	
@@ -92,10 +94,17 @@
 	[Extra / #extra]
 	*/
 	
-    #extra h3{
-        
-      margin-top:10px;
-    }
+	#extra {
+		margin-right: -20px;
+		margin-left: -20px;
+                        padding-left:20px;
+        padding-right:20px;
+	}
+	
+        #extra h3{
+            
+          margin-top:10px;
+        }
 	
 		
 	
diff --git a/css/style.css b/css/style.css
index 87453b7..76990e0 100644
--- a/css/style.css
+++ b/css/style.css
@@ -3,32 +3,60 @@
 Author - hunzaboy
 URL : http://uexel.com
 
- #444
+ #74C0CF
  -> 
 */
+
+/*
+Shield Website Template
+Author - hunzaboy
+URL : http://uexel.com
+
+ #74C0CF
+ -> 
+*/
+
 body { 
-/*	background: url(../images/pattern1.jpg) repeat #ffffff;*/
-/*	font-family: "Helvetica Neue", Helvetica, sans-serif;
-	font-size: 14px;
-	font-weight: 300;
+	font-family: "Helvetica Neue", Helvetica, sans-serif;
 	font-size: 16px;
-	line-height: 1.5em; */
-	font-family: 'Lato', sans-serif;
+	line-height: 1.5em;
 	font-weight: 300;
-	line-height: 20px;
-	font-size: 16px;
-	color: #333;
+	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;
 }
 
 p {
-	font-family: 'Lato', sans-serif;
-	font-weight: 300;
-	line-height: 1.4em;
 	font-size: 16px;
+	line-height: 1.4em;
+}
+
+pre {
+	background-color: white;
+	padding : 5px;
+}
+
+code.prettyprint ol {
+	margin:0;
+	list-style: decimal;
+	list-style-position: inside;
 }
 
 li {
-	line-height: 20px;
+	line-height: 1.4em;
+}
+
+
+
+.btn-primary {
+/* 	background: url('/xtend/images/noise.png') #74C0CF; */
+	background: url('/xtend/images/noise.png') #005580;
 }
 
 .btn-primary:hover {
@@ -36,51 +64,52 @@
 }
 
 h1 {
-	margin-top: 20px;
-	margin-bottom: 12px;
+	margin-bottom: 10px;
+}
+
+h1 small {
+	color: #717576;
+	margin-left: 12px;
 }
 
 h2 {
-	margin-top: 28px;
+	margin-top: 20px;
 	margin-bottom: 10px;
 	font-size: 26px;
-	font-family: 'Lato', sans-serif;
+	font-family: 'Lato', serif;
 	font-weight: normal;
-	color: #000;
+	color: #383838;
 }
 
 h2 small {
-	font-family: 'Lato', sans-serif;
-	font-weight: normal;
 	font-size: 12px;
-	color: #444;
+	color: #717576;
+	margin-left: 10px;
 }
 
 h3 {
-	margin-top: 22px;
-	margin-bottom: 8px;
+	margin-top: 16px;
+	margin-bottom: 6px;
 	font-size: 20px;
 	font-family: 'Lato', sans-serif;
 	font-weight: normal;
-	color: #444;
+	color: #383838;
 }
 
 h4 {
-	margin-top: 18px;
-	margin-bottom: 8px;
+	margin-top: 14px;
+	margin-bottom: 2px;
 	font-size: 17px;
 	font-family: 'Lato', sans-serif;
 	font-weight: bold;
-	color: #444;
+	color: #484848;
 }
 
 h5 {
-	margin-top: 16px;
-	margin-bottom: 6px;
 	font-size: 15px;
 	font-family: 'Lato', sans-serif;
 	font-weight: bold;
-	color: #555;
+	color: #717576;
 }
 
 img {
@@ -89,7 +118,9 @@
 }
 
 em {
+	font-weight: 500;
 	font-style: italic;
+	padding: 0 2px 0 0;
 }
 
 strong {
@@ -97,132 +128,63 @@
 }
 
 code {
-  color: #222;
+  color: #48484c;
   font-size: 13px;
-  border: none;
-  background: none;
 }
 
 hr {
   border-top: 1px solid #d0d0d0;
   border-bottom: 1px solid #f0f0f0;
-  margin: 24px 0;
 }
 
-/* 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;
+#features {
+	background: url(/xtend/images/pattern1.jpg) repeat #ebebeb;
 }
 
-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);	
+#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;
 }
 
-/* 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 {
+	background-color: transparent; 
+	border: inherited;
 }
 
-/* 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;
+td.code pre {
+	background-color: transparent; 
+	border: none;
 }
 
 .btn_download {
-	background: url('/Xtext/images/download.png') no-repeat;
-	width: 225px;
-	height: 80px;
+	background: url(/xtend/images/download.png) no-repeat;
+	width: 160px;
+	height: 60px;
 /* 	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;
@@ -230,28 +192,22 @@
 	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('/Xtext/images/div-grey-top.png') no-repeat center top #f8f8f8;
+	background: url(/xtend/images/div-grey-top.png) no-repeat center top #f8f8f8;
 	bspwidth: 100%;
 	border-bottom: 1px solid #e2e2e2;
 }
@@ -270,97 +226,32 @@
 }
 
 #header_wrapper {
-	padding-bottom: 5px;
+	padding-bottom: 50px;
 	color: white;
 	height: auto;
 	border: none;
 	overflow: hidden;
-	min-height:60px;
-	margin-top: 40px;
-	margin-left: 0px;
-	background: url('/Xtext/images/header_background.jpg');
-	background-size:  cover;
+	padding-top : 80pt;
 }
 
-@media (max-width: 979px) {
-  #header_wrapper {
-	min-height:103px;
-  }
+#header_wrapper a {
+	color : #c1e6ff;
 }
 
 @media (max-width: 767px) {
-  #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;
+	#header_wrapper {
+		margin-left : -15pt;
+		margin-right : -15pt;
+		padding: 10pt;
+	}
 }
 
 .image-slider h2 {
-	margin-top: 80px;
-	margin-bottom: 50px;
+	margin-top: 80px; /*specify 'margin-top' as per your your choice*/
 	font-family: 'Lato', sans-serif;
 	font-size: 42px;
 	font-weight: 300;
-	color: #333333;
-	text-align: center;
+	color: #ffffff;
 	text-shadow: 0px 1px 1px #d4d4d4;
 	text-transform: uppercase;
 	word-spacing: 10px;
@@ -371,50 +262,20 @@
 	font-family: 'Lato', sans-serif;
 	font-size: 16px;
 	font-weight: 300;
-	color: #333333;
-	text-align: center;
+	color: #fff;
+	text-shadow: 0px 1px 4px #000000;
+	text-align: left;
 	word-spacing: 3px;
 }
 
-.image-slider img {
-	display: block;
-    margin: 0 auto;
-}
-
-.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 {
+#features {
 	height: auto;
 	padding-top: 10px;
-	padding-bottom: 20px;
 }
 
-#platform-comparison h2 {
-	color: #444;
+.feature h1 {
+	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+	color: #6B6B6B;
 	font-weight: 400;
 	line-height: 1.3em;
 	font-style: normal;
@@ -423,13 +284,31 @@
 	font-size: 32px;
 }
 
-#platform-comparison p {
-	color: #444;
+.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;
 	font-weight: 200;
 	line-height: 1.3em;
 	font-style: normal;
 	word-spacing: 1px;
-	text-align: center;
+	text-align: left;
+}
+
+.float {
+	float: left;
+	min-height: 220px;
 }
 
 .icon_bg {
@@ -466,159 +345,84 @@
 }
 
 img.screenshot {
-	min-width: 260px;
-	height: 134px;
-	margin-left: 16px;
-	float: left;
+/* 	width: 260px; */
+/* 	height: 134px; */
+/* 	margin-left: 42px; */
+/* 	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;
-  }
+.feature {
+	float:left;
 }
 
 .thumb {
 	position: relative;
 	overflow: hidden;
+	float:left;
+	margin:10pt;
 }
 
 .thumb .zoom {
-	background: url('/Xtext/images/videoOverlay.png') 0 0 no-repeat transparent;
+	background: url(/xtend/images/videoOverlay.png) 0 0 no-repeat transparent;
 	width: 80px;
 	height: 80px;
 	position: absolute;
-	left: 120px;
+	left: 140px;
 	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('/Xtext/images/videoOverlayBig.png') 0 0 no-repeat transparent;
+	background: url(/xtend/images/videoOverlayBig.png) 0 0 no-repeat transparent;
 	width: 140px;
 	height: 140px;
 	opacity: 0.4;
 	outline: none;
 	position: absolute;
-	left: 170px;
-	top: 160px;
+	left: 190px;
+	top: 140px;
 }
 
 @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 {
-	position: absolute;
-	left: 140px;
-	top: 140px;
+	left: 165px;
+	top: 120px;
   }
 }
 @media (max-width: 767px) {
-
   .introduction .zoom {
-	position: absolute;
-	left: 300px;
-	top: 38%;
+	top: 220px;
   }
 }
 
 /* .thumb .zoom:hover { */
-/* 	background: url(../images/videoOverlay.png) 0 -80px no-repeat transparent; */
+/* 	background: url(/xtend/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: #444;
+	color: #74C0CF;
 }
 
 a.onhover-red {
 	text-decoration: none;
-	color: #333;
+	color: #010220;
 }
 
 ul.team_info {
@@ -677,9 +481,18 @@
 	padding: 50px 0px;
 }
 
-.post {
-	margin-top: 20px;
-	margin-bottom: 20px;
+/* 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;
 }
 
 .pricing {
@@ -698,15 +511,18 @@
 	-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: #c0c2c2;
+	color: #c2c2c2;
 	font-weight: 400;
 }
 
 .pricing thead th {
-	background: #333;
+	background: #010220;
 	width: 84.3%;
 	padding: 13px 8%;
 	font-family: 'Lato', sans-serif;
@@ -739,17 +555,17 @@
 	background: #fff;
 	width: 84.3%;
 	padding: 10px 8%;
-	border: 1px solid #d4d4d4;
-
+	border-top: 1px solid #ffffff;
+	border-bottom: 1px solid #d4d4d4;
 	float: left;
 }
 
-.pricing tfoot td {
+tfoot td {
 	text-align: center;
 }
 
 .pricing td.focus {
-	background: #333;
+	background: #010220;
 	width: 84.3%;
 	padding: 25px 8%;
 	font-family: 'Lato', sans-serif;
@@ -761,7 +577,7 @@
 }
 
 .pricing td.focus-best {
-	background: #444;
+	background: #74C0CF;
 	width: 84.3%;
 	padding: 25px 8%;
 	font-family: 'Lato', sans-serif;
@@ -799,7 +615,12 @@
 }
 
 .inner {
-	padding: 10px 0px;
+	padding: 10px 0px 0px 15px;
+	background-color: white;
+}
+
+.inner-footer {
+	padding: 10px 0px 0px 15px;
 }
 
 .logo {
@@ -872,42 +693,137 @@
 }
 
 .team {
-/* 	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%);
+ 	background: rgba(80, 80, 90, 0.5); 
 	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:62px;
+	-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;
 	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;
-  } 
+    height: 70px;
+    margin-top: 10px;
+	margin-left: 80px;
+  }
 }
 @media (max-width: 979px) {
   .team {
-    
+    height: 70px;
+	padding: 10px;
+	margin-top: 10px;
+	margin-left: 40px;
   }
 }
 @media (max-width: 767px) {
   .team {
-    height:110px;
+    height: 70px;
+	padding: 10px;
+	margin-top: 10px;
+	margin-left: 10px;
+	margin-right: 10px;
   }
 }
 
+.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;
@@ -916,25 +832,27 @@
   left: 0;
   right: 0;
   text-indent: -9999px;
-  z-index: 200;
+  z-index: 1000;
 }
 
 .team :hover {
-  -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;
+  -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;
 }
 
 #extra {
-	background: url('/Xtext/images/bg-footer.png') #444;
+	background-color: #010211;
+	padding-top:20pt;
 }
 
 #extra .inner {
 	color: #fff;
-	font-family: 'Lato', sans-serif;
+	border-top: 1px solid #010211;
+	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
 	font-weight: 400;
 	line-height: 1.3em;
 	font-style: normal;
@@ -979,48 +897,15 @@
 }
 
 #nav-outline {
-/*	position: fixed;
-	left: 50%;
-	top: 60pt;
-	margin-left: -345pt; */
 	max-width: 200px;
 	list-style: none;
-	font-family: 'Lato', sans-serif;
+	margin:0;
 }
-/*
-@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;
@@ -1028,7 +913,9 @@
 	left: 50%;
 	margin-left: -50%;
 	width: 100%;
-	z-index: 999;
+	z-index: 1030;
+	background-image: none;
+	background-color: rgba(01,02,11,0.4);
 }
 
 .navbar .container {
@@ -1050,21 +937,46 @@
 	border-bottom: 1px solid #666;
 }
 
-.navbar-fixed-top {
-	position: static;
-	border-bottom: 1px solid #000;
+.navbar .nav .active > a, .navbar .nav .active > a:hover {
+	color: white;
+	font-weight: bold;
+	text-decoration: none;
 }
 
-.navbar-inner {
-	padding-top: 10px;
-	padding-bottom: 5px;
+.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;
 }
 
 .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;
@@ -1072,7 +984,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+); */
@@ -1091,13 +1003,19 @@
 /* 		rgba(235, 235, 235, 1) 100% ); W3C */
 /* 	filter: progid:DXImageTransform.Microsoft.gradient(  startColorstr='#ffffff', */
 /* 		endColorstr='#ebebeb', GradientType=0 ); IE6-8 */
-	border-top: 1px solid #000;
-	padding-top : 50px; 
-	padding-bottom : 20px; 
+	border-top: 1px solid #010211;
+	padding-top:50pt;
+}
+
+@media (max-width: 767px) {
+	#page {
+		padding-top:0;
+	}
 }
 
 #page h1 {
-	color: #222;
+	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+	color: #333333;
 	font-weight: 400;
 	line-height: 1.3em;
 	font-style: normal;
@@ -1105,13 +1023,8 @@
 	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: 'Lato', sans-serif;
+	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
 	color: #fff;
 	font-weight: 400;
 	line-height: 1.3em;
@@ -1121,14 +1034,15 @@
 }
 
 #page-heading {
-	font-family: 'Lato', sans-serif;
-	color: #444;
+	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+	color: #010211;
 	text-align: center;
 }
 
+
 /*List Styles */
 ul.list1 li {
-	background: url('/Xtext/images/bullet-checkmark.png') no-repeat 0 4px;
+	background: url(/xtend/images/bullet-checkmark.png) no-repeat 0 4px;
 	padding-left: 20px;
 	margin-bottom: 10px;
 	display: block;
@@ -1136,7 +1050,7 @@
 }
 
 ul.list2 li {
-	background: url('/Xtext/images/bullet-circles.png') no-repeat 0 4px;
+	background: url(/xtend/images/bullet-circles.png) no-repeat 0 4px;
 	padding-left: 22px;
 	margin-bottom: 10px;
 	display: block;
@@ -1144,7 +1058,7 @@
 }
 
 ul.list3 li {
-	background: url('/Xtext/images/bullet-plus.png') no-repeat 0 4px;
+	background: url(/xtend/images/bullet-plus.png) no-repeat 0 4px;
 	padding-left: 22px;
 	margin-bottom: 10px;
 	display: block;
@@ -1153,36 +1067,43 @@
 
 .navbar .brand {
 	display: block;
-	position: relative;
-	top: 0;
 	width: 90px;
 	height: 34px;
 	padding-top: 0;
 	padding-bottom: 0;
-	margin-top: 2px;
+	margin-top: 12px;
+	margin-left: 10px;
 	overflow: hidden;
-	font-weight: 600;
 	line-height: 600px;
-	color: #333;
-	background: url('/Xtext/images/logo.png') no-repeat 0 0px;
-	background-size: 90px;
-	background-position: center;
+	color: #010220;
+	background: url(/xtend/images/logo.png) no-repeat 0 0;
 }
 
-.intro-reference {
-	background: url('/Xtext/images/bg-footer.png');
+.navbar .brand {
+	position: relative;
+	top: 0;
+	margin-left: 0;
+	font-weight: 600;
+}
+
+#intro {
+	background-color: rgba(1,2,22,0.3);
 	padding-top: 10px;
 	color: #fff;
 	text-align: center;
 }
 
-.intro-reference .container {
+#intro h1 {
+	text-transform: uppercase;
+}
+
+#intro .container {
 	border-bottom: none;
 	padding: 10px;
 }
 
 .navbar li {
-	font-family: 'Lato', sans-serif;
+	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
 	color: #6B6B6B;
 	font-weight: 400;
 	line-height: 1.3em;
@@ -1190,118 +1111,45 @@
 	word-spacing: 1px;
 }
 
-.popover {
-	max-width: 450px;
+.embedded-video {
+	width: 460px;
+	height: 259px;
+	margin-top: 20px;
+	-moz-border-radius: 20px;
+    -webkit-border-radius: 20px;
+    -khtml-border-radius: 20px;
+    border-radius: 5px;
 }
 
-.languages .row {
-	margin : 0;
+@media (min-width: 1200px) {
+  .embedded-video {
+	width : 570px;
+	height : 318px;
+	margin-top:20px;
+  }
 }
-
-.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) {
-	.language-card {
-		height:200px;
-	}
-}
-@media (max-width: 767px) {
-	.language-card {
-		min-height:150px;
-		height:auto;
-	}
+  .embedded-video {
+	width: 352px;
+	height: 200px;
+	margin-top: 80px;
+  }
 }
 
-.language-card td {
-	padding-right: 12px;
-	height: 100%;
-}
-.language-icon {
-	max-width : 140px;
+h2.front-title {
+	margin-top: 20px;
 }
 
-.ribbon-wrapper-red {
-	width: 200px;
-	height: 172px;
-	overflow: hidden;
-	position: absolute;
-	top: -4px;
-	right: -4px;
+@media (min-width: 1200px) {
+  h2.front-title {
+	margin-top:40px;
+  }
 }
-
-.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) {
-	.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;
+  h2.front-title {
+	margin-top: 80px;
+  }
 }
 
 .search-bar {
diff --git a/documentation.html b/documentation.html
index 09bf4f0..48b25c3 100644
--- a/documentation.html
+++ b/documentation.html
@@ -1,228 +1,28 @@
 <!DOCTYPE html>
 <html>
-
-  <head>
+<head>
 	<meta charset="UTF-8">
-	<title>Xtext - Eclipse Support</title>
-	<meta http-equiv="refresh" content="3; URL=documentation/">
+    <meta http-equiv="refresh" content="3; URL=/xtend/documentation/">
+	<title>Xtend - Modernized Java</title>
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
-	<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 rel="shortcut icon" href="/xtend/images/favicon.png">
 	
-	<!-- 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 -->
+	<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'>
 </head>
-
-
-  <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;">
+<body>
+<div id="page">
+	<div class="inner">
 		<div class="container clearfix">
 			<h1>Documentation Has Moved</h1>
-			The Xtext documentation has been moved to <a href="documentation/">documentation/</a>.
+			The Xtend documentation has been moved to <a href="/xtend/documentation/">/xtend/documentation/</a>.
 		</div>
   	</div>
 </div>
-
-    
-    <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>
-
+</body>
 </html>
diff --git a/documentation/203_xtend_expressions.html b/documentation/203_xtend_expressions.html
index 7f012e4..e787d39 100644
--- a/documentation/203_xtend_expressions.html
+++ b/documentation/203_xtend_expressions.html
@@ -1272,24 +1272,6 @@
 '''
 </code></pre>
 
-<p>You can also use <code>IF...ELSE...ENDIF</code> or <code>IF...ELSEIF...ENDIF</code> expressions:</p>
-
-<pre><code class="language-xtend">def someHTML(Paragraph p) '''
-  &lt;html&gt;
-    &lt;body&gt;
-      «IF p.headLine != null»
-        &lt;h1&gt;«p.headline»&lt;/h1&gt;
-      «ELSE»
-        &lt;h1&gt;«p.standartHeadline»&lt;/h1&gt;
-      «ENDIF»
-      &lt;p&gt;
-        «p.text»
-      &lt;/p&gt;
-    &lt;/body&gt;
-  &lt;/html&gt;
-'''
-</code></pre>
-
 <h3 id="template-foreach">Loops in Templates</h3>
 
 <p>Also a <code>FOR</code> expression is available:</p>
diff --git a/documentation/index.html b/documentation/index.html
index 9c07544..083eb07 100644
--- a/documentation/index.html
+++ b/documentation/index.html
@@ -3,11 +3,10 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtext - Documentation</title>
-	
+	<title>Xtend - Documentation</title>
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
+		content="Xtend is a statically typed programming language sitting on top of Java.">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -17,19 +16,19 @@
 	<![endif]-->
 	
 	<!-- 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'>
+	<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'>
+	
 	<!--[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
@@ -87,35 +86,27 @@
 
 
   <body>
-  
-    <header class="site-header">
 
-  <!-- Navbar -->
-  <div class="navbar navbar-fixed-top">
+    <!-- Navbar -->
+  <div class="navbar navbar-fixed-top"
+    style="border-bottom: 1px solid #000;">
     <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>
+        </a> <a class="brand" href="/xtend/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>
+            <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>
           </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 class="btn-group pull-right">
+                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
+              </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -123,86 +114,68 @@
   </div>
   <!-- Navbar End -->
 
-</header>
-
 
     <div class="page-content">
   <script>
     function startSearch(event) {
         if (event.keyCode == 13) {
-            var q = 'site:eclipse.org/Xtext/documentation+' + event.target.value;
+            var q = 'site:eclipse.org/xtend/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/xtext-website/documentation/index.html">Edit on Github</a>
+            <a href="https://github.com/eclipse/xtext/edit/website-published/xtend-website/documentation/index.md">Edit on Github</a>
           </span>
           <div class="span3" style="margin-left: 0px;">
             <div class="search-bar">
-              <img src="/Xtext/images/search-gray.png"/>
+              <img src="/xtend/images/search-gray.png"/>
               <input type="search" id="google-search" onkeyup="startSearch(event);"/>
             </div>
-            <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 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>
           </div>
-          <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 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>
         </div>
@@ -213,54 +186,56 @@
     
     <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">
+    <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">
             <!-- 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>
+                <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>
               </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>
   
-  <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>
+  <!-- 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="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([ '_setAccount', 'UA-2429174-4' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -273,31 +248,8 @@
       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 c7b70d8..f93409d 100644
--- a/download.html
+++ b/download.html
@@ -3,11 +3,10 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtext - Download</title>
-	
+	<title>Xtend - Download</title>
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
+		content="Xtend is a statically typed programming language sitting on top of Java.">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -17,19 +16,19 @@
 	<![endif]-->
 	
 	<!-- 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'>
+	<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'>
+	
 	<!--[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
@@ -87,35 +86,27 @@
 
 
   <body>
-  
-    <header class="site-header">
 
-  <!-- Navbar -->
-  <div class="navbar navbar-fixed-top">
+    <!-- Navbar -->
+  <div class="navbar navbar-fixed-top"
+    style="border-bottom: 1px solid #000;">
     <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>
+        </a> <a class="brand" href="/xtend/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>
+            <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>
           </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 class="btn-group pull-right">
+                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
+              </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -123,20 +114,21 @@
   </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>
-		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.
+		Xtend can be used in Eclipse. You can use your IDE's plug-in mechanism to add Xtend, using one of the URLs below.
 				</p>
 				<p>
 				
-					<strong><a href="releasenotes.html">Xtext 2.14.0 Release Notes</a></strong>
+					<strong><a href="releasenotes.html">Xtend 2.14.0 Release Notes</a></strong>
 				
 				</p>
 			</div>
@@ -144,75 +136,141 @@
 		<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 xtext plug-in into a running Eclipse.</p>
+				<p> To install the Xtend 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 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>
+					<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>
 				</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="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">
+    <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">
             <!-- 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>
+                <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>
               </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>
   
-  <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>
+  <!-- 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="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([ '_setAccount', 'UA-2429174-4' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -225,31 +283,8 @@
       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 d92831e..d3a23cc 100644
--- a/feed.xml
+++ b/feed.xml
@@ -1,202 +1,100 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
-    <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.
+    <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.
 </description>
-    <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 05:33:14 -0400</pubDate>
-    <lastBuildDate>Tue, 28 Aug 2018 05:33:14 -0400</lastBuildDate>
+    <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 07:08:46 -0400</pubDate>
+    <lastBuildDate>Tue, 28 Aug 2018 07:08:46 -0400</lastBuildDate>
     <generator>Jekyll v2.5.3</generator>
     
       <item>
-        <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;
+        <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;
 
-&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;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;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;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;h2 id=&quot;compiler&quot;&gt;Compiler&lt;/h2&gt;
 
-&lt;h2 id=&quot;junit-5-support&quot;&gt;JUnit 5 Support&lt;/h2&gt;
+&lt;h3 id=&quot;avoid-generation-of-unnecessary-exception-variables&quot;&gt;Avoid generation of unnecessary exception variables&lt;/h3&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;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;For new projects the project wizard’s advanced page allows to select the desired JUnit version.&lt;/p&gt;
+&lt;p&gt;Considering the following Xtend snippet:&lt;/p&gt;
 
-&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;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;h2 id=&quot;new-grammar-annotations&quot;&gt;New Grammar Annotations&lt;/h2&gt;
-
-&lt;p&gt;The Xtext Grammar language supports the following additional annotations for parser rules:&lt;/p&gt;
-
-&lt;h3 id=&quot;deprecated&quot;&gt;@Deprecated&lt;/h3&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;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;&lt;img src=&quot;/Xtext/images/releasenotes/2_14_annotation_preference.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
-
-&lt;h3 id=&quot;final&quot;&gt;@Final&lt;/h3&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;A rule marked with &lt;code&gt;@Final&lt;/code&gt; cannot be overridden.&lt;/p&gt;
-
-&lt;h3 id=&quot;exported&quot;&gt;@Exported&lt;/h3&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;create-action-quickfix&quot;&gt;Create Action Quickfix&lt;/h3&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;pre&gt;&lt;code&gt;try {
+  ... some code ...
+} catch (SomeException e) {
+  // do nothing with &quot;e&quot;
 }
 &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;The catch block was transpiled to:&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;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;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;Xtend will now avoid the generation of the variable when it is not used within the catch block:&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;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;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;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;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;&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;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;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;h3 id=&quot;console-icon&quot;&gt;Console Icon&lt;/h3&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;p&gt;The Xtext icon has been added for the Xtext console:&lt;/p&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_console-icon.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;h2 id=&quot;language-server-support&quot;&gt;Language Server Support&lt;/h2&gt;
+&lt;h2 id=&quot;unnecessary-modifiers-validation&quot;&gt;Unnecessary Modifiers Validation&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;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;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;p&gt;&lt;img src=&quot;/xtend/images/releasenotes/2_14_unnecessary_modifier.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
 
-&lt;h2 id=&quot;emf-support&quot;&gt;EMF Support&lt;/h2&gt;
+&lt;p&gt;For convenient resolution of these issues a quick fix has been added.&lt;/p&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;h2 id=&quot;eclipse-integration&quot;&gt;Eclipse Integration&lt;/h2&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;h3 id=&quot;organize-imports&quot;&gt;Organize Imports&lt;/h3&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;p&gt;The Organize Imports feature has been improved to consider inner types properly.&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/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;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;/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 60 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 20 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;
@@ -212,8 +110,8 @@
 
 </description>
         <pubDate>Wed, 23 May 2018 00:00:00 -0400</pubDate>
-        <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>
+        <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>
         
         
         <category>releasenotes</category>
@@ -222,202 +120,9 @@
     
       <item>
         <title>Xtext 2.13.0 Release Notes</title>
-        <description>&lt;h2 id=&quot;language-server-support&quot;&gt;Language Server Support&lt;/h2&gt;
+        <description>&lt;h3 id=&quot;xtend-213-is-out&quot;&gt;Xtend 2.13 is out&lt;/h3&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;p&gt;Xtend 2.13 is mainly a bugfix release.&lt;/p&gt;
 
 &lt;h2 id=&quot;fixed-issues&quot;&gt;Fixed Issues&lt;/h2&gt;
 
@@ -437,8 +142,8 @@
 
 </description>
         <pubDate>Fri, 20 Oct 2017 00:00:00 -0400</pubDate>
-        <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>
+        <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>
         
         
         <category>releasenotes</category>
@@ -446,137 +151,26 @@
       </item>
     
       <item>
-        <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;
+        <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;
 
-&lt;h2 id=&quot;new-tracing-api-for-generators&quot;&gt;New Tracing API for Generators&lt;/h2&gt;
+&lt;h2 id=&quot;new-source-repository&quot;&gt;New Source Repository&lt;/h2&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;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;pre&gt;&lt;code class=&quot;language-xtend&quot;&gt;class MyDslGenerator extends AbstractGenerator {
-	
-	@TracedAccessors(MyDslFactory)
-	static class MyDslTraceExtensions {}
-	
-	@Inject extension MyDslTraceExtensions
+&lt;h2 id=&quot;the-xtend-language-and-library&quot;&gt;The Xtend Language and Library&lt;/h2&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;h3 id=&quot;string-concatenation-performance-improvements&quot;&gt;String Concatenation Performance Improvements&lt;/h3&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;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;h2 id=&quot;bug-lists&quot;&gt;Bug Lists&lt;/h2&gt;
+&lt;h3 id=&quot;improved-compiler&quot;&gt;Improved Compiler&lt;/h3&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;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;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;/Xtext/images/releasenotes/2_11_xbase-switch-nullguard.png&quot; alt=&quot;&quot; /&gt;&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;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;
 
@@ -584,77 +178,21 @@
 
 &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;/Xtext/images/releasenotes/2_11_xbase-compare-null-gen.png&quot; alt=&quot;&quot; /&gt;&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;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;/Xtext/images/releasenotes/2_11_xbase-compare-null-quickfix.png&quot; alt=&quot;&quot; /&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;h2 id=&quot;xtext-project-wizard&quot;&gt;Xtext Project Wizard&lt;/h2&gt;
+&lt;h2 id=&quot;new-class-wizard&quot;&gt;New Class Wizard&lt;/h2&gt;
 
-&lt;h3 id=&quot;usability&quot;&gt;Usability&lt;/h3&gt;
+&lt;p&gt;The New Xtend Class wizard has an option to create a main method.&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;
+&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;
 </description>
         <pubDate>Wed, 01 Feb 2017 03:00:00 -0500</pubDate>
-        <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>
+        <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>
         
         
         <category>releasenotes</category>
@@ -662,12 +200,28 @@
       </item>
     
       <item>
-        <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;
+        <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;
 </description>
-        <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>
+        <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>
         
         
         <category>releasenotes</category>
@@ -675,120 +229,15 @@
       </item>
     
       <item>
-        <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;
+        <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;
 
-&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;
-
+&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;
 </description>
-        <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>
+        <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>
         
         
         <category>news</category>
@@ -796,23 +245,18 @@
       </item>
     
       <item>
-        <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;
+        <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;
 
 &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;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;
+&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;
 </description>
         <pubDate>Fri, 02 Oct 2015 00:00:00 -0400</pubDate>
-        <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>
+        <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>
         
         
         <category>news</category>
@@ -820,63 +264,107 @@
       </item>
     
       <item>
-        <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;
+        <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;
 
-&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;p&gt;The most noteworthy changes are the following.&lt;/p&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;h2 id=&quot;target-java-version&quot;&gt;Target Java Version&lt;/h2&gt;
 
-&lt;h3 id=&quot;intellij-idea-support&quot;&gt;IntelliJ IDEA Support&lt;/h3&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;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;&lt;img src=&quot;/xtend/images/releasenotes/2_8_xbase-java-version.png&quot; alt=&quot;&quot; /&gt;&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;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;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;h3 id=&quot;java-5&quot;&gt;Java 5&lt;/h3&gt;
 
-&lt;h3 id=&quot;weborion-support&quot;&gt;Web/Orion Support&lt;/h3&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;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;h3 id=&quot;java-6&quot;&gt;Java 6&lt;/h3&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;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;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;h3 id=&quot;java-7&quot;&gt;Java 7&lt;/h3&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;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;&lt;img src=&quot;/Xtext/images/news/xtext-2.9-wizard.png&quot; alt=&quot;the new wizard&quot; /&gt;&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;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;h3 id=&quot;java-8&quot;&gt;Java 8&lt;/h3&gt;
 
-&lt;h3 id=&quot;other-themes-in-29&quot;&gt;Other Themes In 2.9&lt;/h3&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;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;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;h3 id=&quot;more-updates-soon&quot;&gt;More updates soon&lt;/h3&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;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;h2 id=&quot;more-compiler-options&quot;&gt;More Compiler Options&lt;/h2&gt;
 
-&lt;h3 id=&quot;download-links&quot;&gt;Download Links&lt;/h3&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;p&gt;Here are the download links for the beta:&lt;/p&gt;
+&lt;h2 id=&quot;enhancements-of-the-xtend-editor&quot;&gt;Enhancements of the Xtend Editor&lt;/h2&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;h3 id=&quot;open-generated-file&quot;&gt;Open Generated File&lt;/h3&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;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;&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>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>
+        <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>
         
         
         <category>news</category>
@@ -884,41 +372,31 @@
       </item>
     
       <item>
-        <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;
+        <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;
 
-&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;
+&lt;p&gt;Here is the &lt;a href=&quot;http://goo.gl/bPLxSD&quot;&gt;full log&lt;/a&gt;.&lt;/p&gt;
 </description>
-        <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>
+        <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>
         
         
         <category>news</category>
diff --git a/images/bullet-checkmark.png b/images/bullet-checkmark.png
index 4e94946..ac72175 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 1fb2791..2958055 100644
--- a/images/download.png
+++ b/images/download.png
Binary files differ
diff --git a/images/favicon.png b/images/favicon.png
index 2422b26..b017778 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 ed19d3e..f1c06fb 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 52bcd0c..b3df7f4 100644
--- a/images/logo.png
+++ b/images/logo.png
Binary files differ
diff --git a/index.html b/index.html
index 43a0b60..fe77062 100644
--- a/index.html
+++ b/index.html
@@ -3,11 +3,10 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtext - Language Engineering Made Easy!</title>
-	
+	<title>Xtend - Modernized Java</title>
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
+		content="Xtend is a statically typed programming language sitting on top of Java.">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -17,19 +16,19 @@
 	<![endif]-->
 	
 	<!-- 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'>
+	<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'>
+	
 	<!--[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
@@ -87,35 +86,27 @@
 
 
   <body>
-  
-    <header class="site-header">
 
-  <!-- Navbar -->
-  <div class="navbar navbar-fixed-top">
+    <!-- Navbar -->
+  <div class="navbar navbar-fixed-top"
+    style="border-bottom: 1px solid #000;">
     <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>
+        </a> <a class="brand" href="/xtend/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>
+            <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>
           </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 class="btn-group pull-right">
+                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
+              </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -123,367 +114,201 @@
   </div>
   <!-- Navbar End -->
 
-</header>
 
-
-    <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 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>
 </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 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>
 
-<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 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>
-
-<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="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">
+    <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">
             <!-- 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>
+                <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>
               </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>
   
-  <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>
+  <!-- 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="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([ '_setAccount', 'UA-2429174-4' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -496,31 +321,8 @@
       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 848258d..8c06421 100644
--- a/js/bootstrap.min.js
+++ b/js/bootstrap.min.js
@@ -1,6 +1,6 @@
-/*!
+/**
 * Bootstrap.js by @fat & @mdo
-* Copyright 2013 Twitter, Inc.
+* Copyright 2012 Twitter, Inc.
 * http://www.apache.org/licenses/LICENSE-2.0.txt
 */
-!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
+!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
diff --git a/js/custom.js b/js/custom.js
index 9753bd3..347c191 100644
--- a/js/custom.js
+++ b/js/custom.js
@@ -1,8 +1,7 @@
 
 
 $(document).ready(function() {
-	rotate("#screenshots", 10000);
-	rotate("#newsticker", 5000);
+	pimp_rotating_quotes();
 
 	pimp_prettyphoto_videos();
 
@@ -10,13 +9,12 @@
 	pimp_up_documentation_menu();
 
 	// syntax coloring
-	$('pre > code').filter(function() {
-			return !($(this).attr('class') === undefined);
-		}
-	).each(function() {
+	$('pre > code[class]').each(function() {
 		$(this).attr('class', $(this).attr('class').replace('language','lang'));
 		$(this).addClass('prettyprint')
-		$(this).addClass('linenums')
+		if ($(this).text().indexOf('\n') != $(this).text().lastIndexOf('\n')) {
+			$(this).addClass('linenums')
+		}
 	})
 	prettyPrint();
 
@@ -43,19 +41,12 @@
 	});
 	
 
-	$('.has-popover').popover({
-		trigger: 'click hover',
-		delay: { show: 100, hide: 50 },
-		placement: "bottom"
-	});
+	$('.has-popover').popover();
 
 	/**
-	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);
 	**/
 });
 
@@ -143,14 +134,17 @@
 	});
 }
 
-function rotate(id, timeout) {
-	var elements = $(id+" li");
+/**
+ * 
+ */
+function pimp_rotating_quotes() {
+	var elements = $(".newsticker li");
 	var showNext = function (index) {
 	    if (index >= elements.length) {
 	        index = 0;
 	    }
 	    elements.hide().slice(index, index+1).fadeIn();
-	    setTimeout(function(){ showNext(index+1) }, timeout);
+	    setTimeout(function(){ showNext(index+1) }, 5000);
 	}
 	showNext(Math.floor((Math.random() * elements.length) + 1));
 }
diff --git a/js/lang-xtend.js b/js/lang-xtend.js
index 66991e5..c83e927 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|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_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|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 33d6f3b..04304eb 100644
--- a/releasenotes.html
+++ b/releasenotes.html
@@ -3,11 +3,10 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtext - Release Notes</title>
-	
+	<title>Xtend - Release Notes</title>
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
+		content="Xtend is a statically typed programming language sitting on top of Java.">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -17,19 +16,19 @@
 	<![endif]-->
 	
 	<!-- 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'>
+	<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'>
+	
 	<!--[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
@@ -87,35 +86,27 @@
 
 
   <body>
-  
-    <header class="site-header">
 
-  <!-- Navbar -->
-  <div class="navbar navbar-fixed-top">
+    <!-- Navbar -->
+  <div class="navbar navbar-fixed-top"
+    style="border-bottom: 1px solid #000;">
     <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>
+        </a> <a class="brand" href="/xtend/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>
+            <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>
           </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 class="btn-group pull-right">
+                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
+              </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -123,8 +114,6 @@
   </div>
   <!-- Navbar End -->
 
-</header>
-
 
     <div id="page">  
 	<div class="inner">
@@ -134,218 +123,114 @@
 					<h3>Table of Contents</h3>
 					<ul>
 						
-							<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/2018/05/23/version-2-14-0">Xtend 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/05/25/version-2-12-0">Xtext 2.12.0 Release Notes &mdash; May 25, 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/02/01/version-2-11-0">Xtext 2.11.0 Release Notes &mdash; Feb 1, 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/2016/05/25/version-2-10-0">Xtext 2.10.0 Release Notes &mdash; May 25, 2016</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/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/09/02/version-2-7-0">Xtend 2.7.0 Release Notes &mdash; Sep 2, 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/2014/05/21/version-2-6-0">Xtend 2.6.0 Release Notes &mdash; May 21, 2014</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/12/11/version-2-5-0">Xtend 2.5.0 Release Notes &mdash; Dec 11, 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>
+							<li><p><a href="#/releasenotes/2013/09/04/version-2-4-3">Xtend 2.4.3 Release Notes &mdash; Sep 4, 2013</a></p>
 						
 					</ul>
 				</div>
 				
 				  <hr/>
 				  <section id="/releasenotes/2018/05/23/version-2-14-0">
-				  	<h1>Xtext 2.14.0 Release Notes<small>&nbsp;&nbsp;May 23, 2018</small></h1>
+				  	<h1>Xtend 2.14.0 Release Notes<small>&nbsp;&nbsp;May 23, 2018</small></h1>
 				    <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>
+				    <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 9 &amp; 10. Here are a few notes on the support</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>
 <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>
 
-<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>
+<h2 id="compiler">Compiler</h2>
 
-<h2 id="junit-5-support">JUnit 5 Support</h2>
+<h3 id="avoid-generation-of-unnecessary-exception-variables">Avoid generation of unnecessary exception variables</h3>
 
-<p>Xtext now supports the JUnit 5 framework for writing tests. JUnit 5.1 or newer is required.</p>
+<p>When an exception variable is not used within a catch block, the transpiled Java code contained an unused variable.</p>
 
-<p>For new projects the project wizard’s advanced page allows to select the desired JUnit version.</p>
+<p>Considering the following Xtend snippet:</p>
 
-<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>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>
-
-<h2 id="new-grammar-annotations">New Grammar Annotations</h2>
-
-<p>The Xtext Grammar language supports the following additional annotations for parser rules:</p>
-
-<h3 id="deprecated">@Deprecated</h3>
-
-<p><img src="/Xtext/images/releasenotes/2_14_annotation_deprecated.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><img src="/Xtext/images/releasenotes/2_14_annotation_preference.png" alt="" /></p>
-
-<h3 id="final">@Final</h3>
-
-<p><img src="/Xtext/images/releasenotes/2_14_annotation_final.png" alt="" /></p>
-
-<p>A rule marked with <code>@Final</code> cannot be overridden.</p>
-
-<h3 id="exported">@Exported</h3>
-
-<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="create-action-quickfix">Create Action Quickfix</h3>
-
-<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
-    }
+<pre><code>try {
+  ... some code ...
+} catch (SomeException e) {
+  // do nothing with "e"
 }
 </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>The catch block was transpiled to:</p>
 
-<p><img src="/Xtext/images/releasenotes/2_14_new-file-wizard.png" alt="" /></p>
+<pre><code>catch (final Throwable _t) {
+  if (_t instanceof SomeException) {
+    final SomeException e = (SomeException)_t;
+  } else {
+    throw Exceptions.sneakyThrow(_t);
+  }
+}
+</code></pre>
 
-<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>Xtend will now avoid the generation of the variable when it is not used within the catch block:</p>
 
-<p><img src="/Xtext/images/releasenotes/2_14_new-project-wizard-template-selection.png" alt="" /></p>
+<pre><code>catch (final Throwable _t) {
+  if (_t instanceof SomeException) {
+  } else {
+    throw Exceptions.sneakyThrow(_t);
+  }
+}
+</code></pre>
 
-<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>
+<h3 id="multi-catch-support">Multi-Catch Support</h3>
+<p>With Xtend 2.14 the exception handling supports multi-catch clauses.</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><img src="/xtend/images/releasenotes/2_14_0_xtend-multi-catch-new.png" alt="" /></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>
+<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>
 
-<h3 id="console-icon">Console Icon</h3>
+<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>
 
-<p>The Xtext icon has been added for the Xtext console:</p>
+<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_console-icon.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>
 
-<h2 id="language-server-support">Language Server Support</h2>
+<h2 id="unnecessary-modifiers-validation">Unnecessary Modifiers Validation</h2>
 
-<p>Xtext has been upgraded to LSP4J version 0.4.0. This includes the following features:</p>
+<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>
 
-<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>
+<p><img src="/xtend/images/releasenotes/2_14_unnecessary_modifier.png" alt="" /></p>
 
-<h2 id="emf-support">EMF Support</h2>
+<p>For convenient resolution of these issues a quick fix has been added.</p>
 
-<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>
+<h2 id="eclipse-integration">Eclipse Integration</h2>
 
-<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>
+<h3 id="organize-imports">Organize Imports</h3>
 
-<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>
+<p>The Organize Imports feature has been improved to consider inner types properly.</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/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>
+  <li><a href="https://blogs.itemis.com/en/xtend-2-14-unnecessary-modifiers-validation">“Unnecessary modifiers validation” blog post</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 60 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 20 Bugzilla tickets have made it into this release. For further details please refer to the following lists:</p>
 
 <ul>
   <li>
@@ -366,202 +251,9 @@
 				  <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/>
-				    <h2 id="language-server-support">Language Server Support</h2>
+				    <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>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>
+<p>Xtend 2.13 is mainly a bugfix release.</p>
 
 <h2 id="fixed-issues">Fixed Issues</h2>
 
@@ -583,134 +275,28 @@
 				  </section>
 				
 				  <hr/>
-				  <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>Xtext 2.12.0 brings several bug fixes and a new API for tracing generated code.</p>
-
-<h2 id="new-tracing-api-for-generators">New Tracing API for Generators</h2>
-
-<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>
-
-<pre><code class="language-xtend">class MyDslGenerator extends AbstractGenerator {
-	
-	@TracedAccessors(MyDslFactory)
-	static class MyDslTraceExtensions {}
-	
-	@Inject extension MyDslTraceExtensions
-
-	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>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>
-
-<h2 id="bug-lists">Bug Lists</h2>
-
-<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>
+				  	<h1>Xtend 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>
+				    <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><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>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>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="/Xtext/images/releasenotes/2_11_xbase-switch-nullguard.png" alt="" /></p>
+<p><img src="/xtend/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>
 
@@ -718,400 +304,204 @@
 
 <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="/Xtext/images/releasenotes/2_11_xbase-compare-null-gen.png" alt="" /></p>
+<p><img src="/xtend/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="/Xtext/images/releasenotes/2_11_xbase-compare-null-quickfix.png" alt="" /></p>
+<p><img src="/xtend/images/releasenotes/2_11_xbase-compare-null-quickfix.png" alt="" /></p>
 
-<h2 id="xtext-project-wizard">Xtext Project Wizard</h2>
+<h2 id="new-class-wizard">New Class Wizard</h2>
 
-<h3 id="usability">Usability</h3>
+<p>The New Xtend Class wizard has an option to create a main method.</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>
+<p><img src="/xtend/images/releasenotes/2_11_xtend-new-main-class.png" alt="" /></p>
 
 				  </section>
 				
 				  <hr/>
-				  <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>
+				  <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>
 				    <br/>
-				    <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>
+				    <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>
 
-				  </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>
+<h2 id="intellij-idea-support">IntelliJ IDEA support</h2>
 
-<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>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 following features have been added in particular.</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>
 
-<h2 id="develop-your-xtext-language-in-intellij-idea">Develop your Xtext Language in IntelliJ IDEA</h2>
+<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>
 
-<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>
+<h2 id="android-studio-support">Android Studio Support</h2>
 
-<h2 id="run-your-xtext-smart-editor-in-the-web">Run your Xtext Smart Editor in the Web</h2>
+<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>
 
-<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>
-
+<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>
 
 				  </section>
 				
 				  <hr/>
 				  <section id="/releasenotes/2015/03/11/version-2-8-0">
-				  	<h1>Xtext 2.8.0 Release Notes<small>&nbsp;&nbsp;Mar 11, 2015</small></h1>
+				  	<h1>Xtend 2.8.0 Release Notes<small>&nbsp;&nbsp;Mar 11, 2015</small></h1>
 				    <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>
+				    <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>
-
-<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>
+<h2 id="target-java-version">Target Java Version</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="/Xtext/images/releasenotes/2_8_xbase-java-version.png" alt="" /></p>
+<p><img src="/xtend/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 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>
+<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>
 
 <h3 id="java-6">Java 6</h3>
 
-<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>
+<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>
 
 <h3 id="java-7">Java 7</h3>
 
-<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>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>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>
+<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>
 
 <h3 id="java-8">Java 8</h3>
 
-<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><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>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>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>
 
-<h2 id="more-compiler-options-xbase">More Compiler Options (Xbase)</h2>
+<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>
 
 <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="unique-class-name-validation-xbase">Unique Class Name Validation (Xbase)</h2>
+<h2 id="enhancements-of-the-xtend-editor">Enhancements of the Xtend Editor</h2>
 
-<p>Unique Java type name checks are now activated for all Xbase languages on a per project level.</p>
+<h3 id="open-generated-file">Open Generated File</h3>
 
-<h2 id="open-generated-file-xbase">Open Generated File (Xbase)</h2>
+<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>
 
-<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>
+<p><img src="/xtend/images/releasenotes/2_8_xbase-open-generated.png" alt="" /></p>
 
-<p><img src="/Xtext/images/releasenotes/2_8_xbase-open-generated.png" alt="" /></p>
+<h3 id="open-inferred-type">Open Inferred Type</h3>
 
-<h2 id="interruption-of-incremental-build">Interruption of Incremental Build</h2>
+<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>
 
-<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>
+<p><img src="/xtend/images/releasenotes/2_8_open-inferred-type.png" alt="" /></p>
 
-<h2 id="new-formatter-provisional">New Formatter (Provisional)</h2>
+<h3 id="improved-hover-for-annotations">Improved Hover for Annotations</h3>
 
-<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>
+<p>Hovers of annotated members have been improved and allow to navigate to annotation values.</p>
 
-<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>
+<h3 id="unique-class-name-validation">Unique Class Name Validation</h3>
 
-<p>More details are found in the <a href="/Xtext/documentation/303_runtime_concepts.html#formatting">documentation</a>.</p>
+<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>
 
-<h2 id="storable-resources-provisional">Storable Resources (Provisional)</h2>
+<h2 id="convert-java-to-xtend">Convert Java to Xtend</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>
 
-<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>
+<p><img src="/xtend/images/releasenotes/2_8_java-convert-to-xtend.png" alt="" /></p>
 
-<h2 id="important-changes">Important Changes</h2>
+<h2 id="active-annotations">Active Annotations</h2>
 
-<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>
+<h4 id="constant-field-initializer">Constant Field Initializer</h4>
 
-<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>
+<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="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>
+<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>
 
 				  </section>
 				
 				  <hr/>
 				  <section id="/releasenotes/2014/09/02/version-2-7-0">
-				  	<h1>Xtext 2.7.0 Release Notes<small>&nbsp;&nbsp;Sep 2, 2014</small></h1>
+				  	<h1>Xtend 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 :
+  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.
 </p>
-      
-<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 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.
+	<h3>
+	   Language
+	</h3>
+</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:
 <pre class="prettyprint lang-xtend linenums">
 #[1, 2, 3].reduce[$0 + $1]
 </pre>
-  Enum constants in annotations can be referenced without their type name.
+</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.
 <pre class="prettyprint lang-xtend linenums">
 @Retention(RUNTIME)
 </pre>
-  Type inference for parameterized inner classes was improved and supports types like
+</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
 <pre class="prettyprint lang-xtend linenums">
-Option&LT;T&GT;.Some
+OuterType&LT;T&GT;.InnerType
 </pre>
-  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 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>
 </section>
 <section id="xtend_library_2_7" style="padding-top: 68px; margin-top: -68px;">
-  <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>
+	<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>
 <pre class="prettyprint lang-xtend linenums">
 #["Xtend", "Java", "Eclipse"].maxBy[length]
 </pre>
-  <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>
+
+</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>
 <pre class="prettyprint lang-xtend linenums">
 interface I {
 def void m1()
@@ -1128,410 +518,714 @@
 @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>
-  <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>
+	</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>
 </section>
-<section id="xtend_ide_features_2_7" style="padding-top: 68px; margin-top: -68px;">
-<h2>IDE Features</h2>
+<section style="padding-top: 68px; margin-top: -68px;">
+<h3>IDE Features</h3>
 </section>
 <section id="xtend_debugging_2_7" style="padding-top: 68px; margin-top: -68px;">
-  <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"/>
+	<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"/>
 </section>
-<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 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>
-<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 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>
-<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 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>
-<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 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>
-<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 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>
-<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 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>
-<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 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>
-<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 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>
 
 				  </section>
 				
 				  <hr/>
 				  <section id="/releasenotes/2014/05/21/version-2-6-0">
-				  	<h1>Xtext 2.6.0 Release Notes<small>&nbsp;&nbsp;May 21, 2014</small></h1>
+				  	<h1>Xtend 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:
+  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.
 </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>
+
+<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="gradle_plugin" style="padding-top: 68px; margin-top: -68px;">
- <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>
+<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">
-buildscript {
-  repositories {
-    mavenCentral()
-  }
-  dependencies {
-    classpath 'org.xtext:xtext-gradle-plugin:0.0.2'
-  }
-}
-</pre>
-<p>Add your languages to the xtextTooling configuration</p>
-<pre class="prettyprint lang-xtend linenums">
-dependencies {
-  xtextTooling 'org.example:org.example.hero.core:3.3.3'
-  xtextTooling 'org.example:org.example.villain.core:6.6.6'
-}
-</pre>
-<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'
-      }
+class A {
+    static class NestedClass {
     }
-
-    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>
+</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>
+	<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>
+</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">
-switch myOperator {
-    case '+',
-    case '-' : handlePlusMinus()    
-    case '*',
-    case '/' : handleDivMultiply()
-    default : throw new IllegalStateException
-}
+// 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="compound_assignments" style="padding-top: 68px; margin-top: -68px;">
-<h2>Xbase - Compound Assignments</h2>
-<p>Xtend now supports compound assignment operators.</p>
+</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>
+	<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>
+</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;">
-<h2>Xbase - Traditional For-Loop</h2>
-<p>The traditional for-loop from Java is now available in Xtend, too.</p>
+</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;">
-<h2>Xbase - Multivalued Annotations Sugar</h2>
-<p>Instead of writing </p>
+</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>
+	<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 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>
+<pre class="prettyprint lang-xtend linenums">
+buildscript {
+  repositories {
+    mavenCentral()
+  }
+  dependencies {
+    classpath 'org.xtend:xtend-gradle-plugin:0.0.8'
+  }
+}
+apply plugin: 'xtend'
+repositories {
+    mavenCentral()
+}
+dependencies {
+  //or testCompile if you only want to use Xtend for some tests
+  compile 'org.eclipse.xtend:org.eclipse.xtend.lib:2.6.0'
+}
+</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>
 </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>Xtext 2.5.0 Release Notes<small>&nbsp;&nbsp;Dec 11, 2013</small></h1>
+				  	<h1>Xtend 2.5.0 Release Notes<small>&nbsp;&nbsp;Dec 11, 2013</small></h1>
 				    <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 :
+  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.
 </p>
+
 <section id="annotations_2_5" style="padding-top: 68px; margin-top: -68px;">
-  <h2>Better Maven Support</h2>
+  <h3>Full support for Java 7 Annotations</h3>
   <p>
-    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.
+	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.
   </p>
-	<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 {
+<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 {
   @Columns(#[@Column('id'), @Column(value = 'timestamp', length = 2 * 3 * 7)])
   CompositeKey key
 }
-	</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">
+</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">
 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</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>
+  <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>
-	          <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>
+  <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>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>
+</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>
 
 				  </section>
 				
@@ -1542,54 +1236,56 @@
     
     <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">
+    <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">
             <!-- 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>
+                <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>
               </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>
   
-  <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>
+  <!-- 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="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([ '_setAccount', 'UA-2429174-4' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -1602,31 +1298,8 @@
       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 a190a22..306aa70 100644
--- a/releasenotes/2013/12/11/version-2-5-0.html
+++ b/releasenotes/2013/12/11/version-2-5-0.html
@@ -3,11 +3,10 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtext - Xtext 2.5.0 Release Notes</title>
-	
+	<title>Xtend - Xtend 2.5.0 Release Notes</title>
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
+		content="Xtend is a statically typed programming language sitting on top of Java.">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -17,19 +16,19 @@
 	<![endif]-->
 	
 	<!-- 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'>
+	<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'>
+	
 	<!--[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
@@ -87,35 +86,27 @@
 
 
   <body>
-  
-    <header class="site-header">
 
-  <!-- Navbar -->
-  <div class="navbar navbar-fixed-top">
+    <!-- Navbar -->
+  <div class="navbar navbar-fixed-top"
+    style="border-bottom: 1px solid #000;">
     <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>
+        </a> <a class="brand" href="/xtend/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>
+            <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>
           </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 class="btn-group pull-right">
+                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
+              </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -123,208 +114,210 @@
   </div>
   <!-- Navbar End -->
 
-</header>
 
+    <div class="post">
 
-    <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 :
+  <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.
 </p>
+
 <section id="annotations_2_5" style="padding-top: 68px; margin-top: -68px;">
-  <h2>Better Maven Support</h2>
+  <h3>Full support for Java 7 Annotations</h3>
   <p>
-    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.
+	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.
   </p>
-	<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 {
+<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 {
   @Columns(#[@Column('id'), @Column(value = 'timestamp', length = 2 * 3 * 7)])
   CompositeKey key
 }
-	</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">
+</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">
 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</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>
+  <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>
-	          <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>
+  <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>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>
+</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
 
-    			</div>
-    		</div>
-      </div>
-    </div>
-  </div>
+// 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>
+
     
     <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">
+    <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">
             <!-- 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>
+                <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>
               </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>
   
-  <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>
+  <!-- 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="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([ '_setAccount', 'UA-2429174-4' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -337,31 +330,8 @@
       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 097bf27..f430bbf 100644
--- a/releasenotes/2014/05/21/version-2-6-0.html
+++ b/releasenotes/2014/05/21/version-2-6-0.html
@@ -3,11 +3,10 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtext - Xtext 2.6.0 Release Notes</title>
-	
+	<title>Xtend - Xtend 2.6.0 Release Notes</title>
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
+		content="Xtend is a statically typed programming language sitting on top of Java.">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -17,19 +16,19 @@
 	<![endif]-->
 	
 	<!-- 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'>
+	<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'>
+	
 	<!--[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
@@ -87,35 +86,27 @@
 
 
   <body>
-  
-    <header class="site-header">
 
-  <!-- Navbar -->
-  <div class="navbar navbar-fixed-top">
+    <!-- Navbar -->
+  <div class="navbar navbar-fixed-top"
+    style="border-bottom: 1px solid #000;">
     <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>
+        </a> <a class="brand" href="/xtend/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>
+            <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>
           </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 class="btn-group pull-right">
+                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
+              </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -123,251 +114,272 @@
   </div>
   <!-- Navbar End -->
 
-</header>
 
+    <div class="post">
 
-    <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:
+  <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.
 </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>
+
+<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="gradle_plugin" style="padding-top: 68px; margin-top: -68px;">
- <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>
+<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">
-buildscript {
-  repositories {
-    mavenCentral()
-  }
-  dependencies {
-    classpath 'org.xtext:xtext-gradle-plugin:0.0.2'
-  }
-}
-</pre>
-<p>Add your languages to the xtextTooling configuration</p>
-<pre class="prettyprint lang-xtend linenums">
-dependencies {
-  xtextTooling 'org.example:org.example.hero.core:3.3.3'
-  xtextTooling 'org.example:org.example.villain.core:6.6.6'
-}
-</pre>
-<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'
-      }
+class A {
+    static class NestedClass {
     }
-
-    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>
+</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>
+	<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>
+</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">
-switch myOperator {
-    case '+',
-    case '-' : handlePlusMinus()    
-    case '*',
-    case '/' : handleDivMultiply()
-    default : throw new IllegalStateException
-}
+// 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="compound_assignments" style="padding-top: 68px; margin-top: -68px;">
-<h2>Xbase - Compound Assignments</h2>
-<p>Xtend now supports compound assignment operators.</p>
+</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>
+	<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>
+</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;">
-<h2>Xbase - Traditional For-Loop</h2>
-<p>The traditional for-loop from Java is now available in Xtend, too.</p>
+</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;">
-<h2>Xbase - Multivalued Annotations Sugar</h2>
-<p>Instead of writing </p>
+</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>
+	<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 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>
+<pre class="prettyprint lang-xtend linenums">
+buildscript {
+  repositories {
+    mavenCentral()
+  }
+  dependencies {
+    classpath 'org.xtend:xtend-gradle-plugin:0.0.8'
+  }
+}
+apply plugin: 'xtend'
+repositories {
+    mavenCentral()
+}
+dependencies {
+  //or testCompile if you only want to use Xtend for some tests
+  compile 'org.eclipse.xtend:org.eclipse.xtend.lib:2.6.0'
+}
+</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>
 </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>
-    			</div>
-    		</div>
-      </div>
-    </div>
-  </div>
+  </article>
+
 </div>
+
     
     <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">
+    <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">
             <!-- 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>
+                <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>
               </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>
   
-  <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>
+  <!-- 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="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([ '_setAccount', 'UA-2429174-4' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -380,31 +392,8 @@
       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 3365132..51f0ce3 100644
--- a/releasenotes/2014/09/02/version-2-7-0.html
+++ b/releasenotes/2014/09/02/version-2-7-0.html
@@ -3,11 +3,10 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtext - Xtext 2.7.0 Release Notes</title>
-	
+	<title>Xtend - Xtend 2.7.0 Release Notes</title>
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
+		content="Xtend is a statically typed programming language sitting on top of Java.">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -17,19 +16,19 @@
 	<![endif]-->
 	
 	<!-- 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'>
+	<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'>
+	
 	<!--[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
@@ -87,35 +86,27 @@
 
 
   <body>
-  
-    <header class="site-header">
 
-  <!-- Navbar -->
-  <div class="navbar navbar-fixed-top">
+    <!-- Navbar -->
+  <div class="navbar navbar-fixed-top"
+    style="border-bottom: 1px solid #000;">
     <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>
+        </a> <a class="brand" href="/xtend/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>
+            <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>
           </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 class="btn-group pull-right">
+                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
+              </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -123,106 +114,83 @@
   </div>
   <!-- Navbar End -->
 
-</header>
 
+    <div class="post">
 
-    <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 :
+  <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.
 </p>
-      
-<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 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.
+	<h3>
+	   Language
+	</h3>
+</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:
 <pre class="prettyprint lang-xtend linenums">
 #[1, 2, 3].reduce[$0 + $1]
 </pre>
-  Enum constants in annotations can be referenced without their type name.
+</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.
 <pre class="prettyprint lang-xtend linenums">
 @Retention(RUNTIME)
 </pre>
-  Type inference for parameterized inner classes was improved and supports types like
+</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
 <pre class="prettyprint lang-xtend linenums">
-Option&LT;T&GT;.Some
+OuterType&LT;T&GT;.InnerType
 </pre>
-  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 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>
 </section>
 <section id="xtend_library_2_7" style="padding-top: 68px; margin-top: -68px;">
-  <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>
+	<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>
 <pre class="prettyprint lang-xtend linenums">
 #["Xtend", "Java", "Eclipse"].maxBy[length]
 </pre>
-  <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>
+
+</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>
 <pre class="prettyprint lang-xtend linenums">
 interface I {
 def void m1()
@@ -239,149 +207,154 @@
 @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>
-  <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>
+	</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>
 </section>
-<section id="xtend_ide_features_2_7" style="padding-top: 68px; margin-top: -68px;">
-<h2>IDE Features</h2>
+<section style="padding-top: 68px; margin-top: -68px;">
+<h3>IDE Features</h3>
 </section>
 <section id="xtend_debugging_2_7" style="padding-top: 68px; margin-top: -68px;">
-  <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"/>
+	<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"/>
 </section>
-<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 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>
-<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 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>
-<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 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>
-<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 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>
-<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 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>
-<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 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>
-<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 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>
-<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 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>
 
-    			</div>
-    		</div>
-      </div>
-    </div>
-  </div>
+  </article>
+
 </div>
+
     
     <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">
+    <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">
             <!-- 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>
+                <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>
               </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>
   
-  <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>
+  <!-- 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="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([ '_setAccount', 'UA-2429174-4' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -394,31 +367,8 @@
       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 5c80ea7..77d7ce4 100644
--- a/releasenotes/2015/03/11/version-2-8-0.html
+++ b/releasenotes/2015/03/11/version-2-8-0.html
@@ -3,11 +3,10 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtext - Xtext 2.8.0 Release Notes</title>
-	
+	<title>Xtend - Xtend 2.8.0 Release Notes</title>
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
+		content="Xtend is a statically typed programming language sitting on top of Java.">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -17,19 +16,19 @@
 	<![endif]-->
 	
 	<!-- 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'>
+	<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'>
+	
 	<!--[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
@@ -87,35 +86,27 @@
 
 
   <body>
-  
-    <header class="site-header">
 
-  <!-- Navbar -->
-  <div class="navbar navbar-fixed-top">
+    <!-- Navbar -->
+  <div class="navbar navbar-fixed-top"
+    style="border-bottom: 1px solid #000;">
     <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>
+        </a> <a class="brand" href="/xtend/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>
+            <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>
           </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 class="btn-group pull-right">
+                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
+              </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -123,246 +114,154 @@
   </div>
   <!-- Navbar End -->
 
-</header>
 
+    <div class="post">
 
-    <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>
+  <header class="post-header">
+    <h1 class="post-title">Xtend 2.8.0 Release Notes</h1>
+    <p class="post-meta">Mar 11, 2015</p>
+  </header>
 
-<p>The following features have been added in particular.</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>
 
-<h2 id="whitespace-aware-languages">Whitespace-Aware Languages</h2>
+<p>The most noteworthy changes are the following.</p>
 
-<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>
+<h2 id="target-java-version">Target Java Version</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="/Xtext/images/releasenotes/2_8_xbase-java-version.png" alt="" /></p>
+<p><img src="/xtend/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 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>
+<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>
 
 <h3 id="java-6">Java 6</h3>
 
-<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>
+<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>
 
 <h3 id="java-7">Java 7</h3>
 
-<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>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>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>
+<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>
 
 <h3 id="java-8">Java 8</h3>
 
-<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><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>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>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>
 
-<h2 id="more-compiler-options-xbase">More Compiler Options (Xbase)</h2>
+<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>
 
 <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="unique-class-name-validation-xbase">Unique Class Name Validation (Xbase)</h2>
+<h2 id="enhancements-of-the-xtend-editor">Enhancements of the Xtend Editor</h2>
 
-<p>Unique Java type name checks are now activated for all Xbase languages on a per project level.</p>
+<h3 id="open-generated-file">Open Generated File</h3>
 
-<h2 id="open-generated-file-xbase">Open Generated File (Xbase)</h2>
+<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>
 
-<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>
+<p><img src="/xtend/images/releasenotes/2_8_xbase-open-generated.png" alt="" /></p>
 
-<p><img src="/Xtext/images/releasenotes/2_8_xbase-open-generated.png" alt="" /></p>
+<h3 id="open-inferred-type">Open Inferred Type</h3>
 
-<h2 id="interruption-of-incremental-build">Interruption of Incremental Build</h2>
+<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>
 
-<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>
+<p><img src="/xtend/images/releasenotes/2_8_open-inferred-type.png" alt="" /></p>
 
-<h2 id="new-formatter-provisional">New Formatter (Provisional)</h2>
+<h3 id="improved-hover-for-annotations">Improved Hover for Annotations</h3>
 
-<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>
+<p>Hovers of annotated members have been improved and allow to navigate to annotation values.</p>
 
-<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>
+<h3 id="unique-class-name-validation">Unique Class Name Validation</h3>
 
-<p>More details are found in the <a href="/Xtext/documentation/303_runtime_concepts.html#formatting">documentation</a>.</p>
+<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>
 
-<h2 id="storable-resources-provisional">Storable Resources (Provisional)</h2>
+<h2 id="convert-java-to-xtend">Convert Java to Xtend</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>
 
-<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>
+<p><img src="/xtend/images/releasenotes/2_8_java-convert-to-xtend.png" alt="" /></p>
 
-<h2 id="important-changes">Important Changes</h2>
+<h2 id="active-annotations">Active Annotations</h2>
 
-<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>
+<h4 id="constant-field-initializer">Constant Field Initializer</h4>
 
-<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>
+<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="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>
+<h4 id="default-methods">Default Methods</h4>
 
-    			</div>
-    		</div>
-      </div>
-    </div>
-  </div>
+<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>
+
     
     <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">
+    <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">
             <!-- 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>
+                <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>
               </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>
   
-  <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>
+  <!-- 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="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([ '_setAccount', 'UA-2429174-4' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -375,31 +274,8 @@
       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 b370c17..31e005d 100644
--- a/releasenotes/2017/02/01/version-2-11-0.html
+++ b/releasenotes/2017/02/01/version-2-11-0.html
@@ -3,11 +3,10 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtext - Xtext 2.11.0 Release Notes</title>
-	
+	<title>Xtend - Xtend 2.11.0 Release Notes</title>
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
+		content="Xtend is a statically typed programming language sitting on top of Java.">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -17,19 +16,19 @@
 	<![endif]-->
 	
 	<!-- 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'>
+	<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'>
+	
 	<!--[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
@@ -87,35 +86,27 @@
 
 
   <body>
-  
-    <header class="site-header">
 
-  <!-- Navbar -->
-  <div class="navbar navbar-fixed-top">
+    <!-- Navbar -->
+  <div class="navbar navbar-fixed-top"
+    style="border-bottom: 1px solid #000;">
     <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>
+        </a> <a class="brand" href="/xtend/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>
+            <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>
           </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 class="btn-group pull-right">
+                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
+              </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -123,82 +114,34 @@
   </div>
   <!-- Navbar End -->
 
-</header>
 
+    <div class="post">
 
-    <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>
+  <header class="post-header">
+    <h1 class="post-title">Xtend 2.11.0 Release Notes</h1>
+    <p class="post-meta">Feb 1, 2017</p>
+  </header>
 
-<h2 id="restructuring-and-build">Restructuring and Build</h2>
+  <article class="post-content">
+    <p>Xtend version 2.11 comes with a new source repository and plenty of improvements and bug fixes.</p>
 
-<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>
+<h2 id="new-source-repository">New Source Repository</h2>
 
-<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>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>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="the-xtend-language-and-library">The Xtend Language and Library</h2>
 
-<h2 id="language-server-protocol">Language Server Protocol</h2>
+<h3 id="string-concatenation-performance-improvements">String Concatenation Performance Improvements</h3>
 
-<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 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>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>
+<h3 id="improved-compiler">Improved Compiler</h3>
 
-<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>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>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="/Xtext/images/releasenotes/2_11_xbase-switch-nullguard.png" alt="" /></p>
+<p><img src="/xtend/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>
 
@@ -206,131 +149,75 @@
 
 <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="/Xtext/images/releasenotes/2_11_xbase-compare-null-gen.png" alt="" /></p>
+<p><img src="/xtend/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="/Xtext/images/releasenotes/2_11_xbase-compare-null-quickfix.png" alt="" /></p>
+<p><img src="/xtend/images/releasenotes/2_11_xbase-compare-null-quickfix.png" alt="" /></p>
 
-<h2 id="xtext-project-wizard">Xtext Project Wizard</h2>
+<h2 id="new-class-wizard">New Class Wizard</h2>
 
-<h3 id="usability">Usability</h3>
+<p>The New Xtend Class wizard has an option to create a main method.</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><img src="/xtend/images/releasenotes/2_11_xtend-new-main-class.png" alt="" /></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>
+  </article>
 
-<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="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">
+    <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">
             <!-- 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>
+                <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>
               </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>
   
-  <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>
+  <!-- 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="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([ '_setAccount', 'UA-2429174-4' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -343,31 +230,8 @@
       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 c50bb65..826f286 100644
--- a/releasenotes/2017/10/20/version-2-13-0.html
+++ b/releasenotes/2017/10/20/version-2-13-0.html
@@ -3,11 +3,10 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtext - Xtext 2.13.0 Release Notes</title>
-	
+	<title>Xtend - Xtext 2.13.0 Release Notes</title>
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
+		content="Xtend is a statically typed programming language sitting on top of Java.">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -17,19 +16,19 @@
 	<![endif]-->
 	
 	<!-- 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'>
+	<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'>
+	
 	<!--[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
@@ -87,35 +86,27 @@
 
 
   <body>
-  
-    <header class="site-header">
 
-  <!-- Navbar -->
-  <div class="navbar navbar-fixed-top">
+    <!-- Navbar -->
+  <div class="navbar navbar-fixed-top"
+    style="border-bottom: 1px solid #000;">
     <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>
+        </a> <a class="brand" href="/xtend/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>
+            <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>
           </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 class="btn-group pull-right">
+                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
+              </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -123,215 +114,18 @@
   </div>
   <!-- Navbar End -->
 
-</header>
 
+    <div class="post">
 
-    <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>
+  <header class="post-header">
+    <h1 class="post-title">Xtext 2.13.0 Release Notes</h1>
+    <p class="post-meta">Oct 20, 2017</p>
+  </header>
 
-<h3 id="eclipse-new-project-wizard-language-server-build">Eclipse New Project Wizard: Language Server Build</h3>
+  <article class="post-content">
+    <h3 id="xtend-213-is-out">Xtend 2.13 is out</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>
+<p>Xtend 2.13 is mainly a bugfix release.</p>
 
 <h2 id="fixed-issues">Fixed Issues</h2>
 
@@ -350,63 +144,63 @@
 </ul>
 
 
-    			</div>
-    		</div>
-      </div>
-    </div>
-  </div>
+  </article>
+
 </div>
+
     
     <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">
+    <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">
             <!-- 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>
+                <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>
               </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>
   
-  <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>
+  <!-- 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="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([ '_setAccount', 'UA-2429174-4' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -419,31 +213,8 @@
       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 5448d2c..8e4c33d 100644
--- a/releasenotes/2018/05/23/version-2-14-0.html
+++ b/releasenotes/2018/05/23/version-2-14-0.html
@@ -3,11 +3,10 @@
 
   <head>
 	<meta charset="UTF-8">
-	<title>Xtext - Xtext 2.14.0 Release Notes</title>
-	
+	<title>Xtend - Xtend 2.14.0 Release Notes</title>
 	<meta name="viewport" content="width=device-width, initial-scale=1.0">
 	<meta name="description"
-		content="The website of Eclipse Xtext, an open-source framework for development of programming languages and domain-specific languages">
+		content="Xtend is a statically typed programming language sitting on top of Java.">
 	<meta name="author" content="Sven Efftinge">
 	<meta name="author" content="Miro Spoenemann">
 	<!--  styles -->
@@ -17,19 +16,19 @@
 	<![endif]-->
 	
 	<!-- 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'>
+	<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'>
+	
 	<!--[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
@@ -87,35 +86,27 @@
 
 
   <body>
-  
-    <header class="site-header">
 
-  <!-- Navbar -->
-  <div class="navbar navbar-fixed-top">
+    <!-- Navbar -->
+  <div class="navbar navbar-fixed-top"
+    style="border-bottom: 1px solid #000;">
     <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>
+        </a> <a class="brand" href="/xtend/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>
+            <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>
           </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 class="btn-group pull-right">
+                <div class="g-plusone" data-href="http://www.xtend-lang.org"></div>
+              </div-->
         </div>
         <!--/.nav-collapse -->
       </div>
@@ -123,204 +114,98 @@
   </div>
   <!-- Navbar End -->
 
-</header>
 
+    <div class="post">
 
-    <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>
+  <header class="post-header">
+    <h1 class="post-title">Xtend 2.14.0 Release Notes</h1>
+    <p class="post-meta">May 23, 2018</p>
+  </header>
 
-<h2 id="java-9-and-10-support">Java 9 and 10 Support</h2>
+  <article class="post-content">
+    <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>
-
+<p>Xtext and Xtend 2.14 are able to compile with and against Java 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>
 
-<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>
+<h2 id="compiler">Compiler</h2>
 
-<h2 id="junit-5-support">JUnit 5 Support</h2>
+<h3 id="avoid-generation-of-unnecessary-exception-variables">Avoid generation of unnecessary exception variables</h3>
 
-<p>Xtext now supports the JUnit 5 framework for writing tests. JUnit 5.1 or newer is required.</p>
+<p>When an exception variable is not used within a catch block, the transpiled Java code contained an unused variable.</p>
 
-<p>For new projects the project wizard’s advanced page allows to select the desired JUnit version.</p>
+<p>Considering the following Xtend snippet:</p>
 
-<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>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>
-
-<h2 id="new-grammar-annotations">New Grammar Annotations</h2>
-
-<p>The Xtext Grammar language supports the following additional annotations for parser rules:</p>
-
-<h3 id="deprecated">@Deprecated</h3>
-
-<p><img src="/Xtext/images/releasenotes/2_14_annotation_deprecated.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><img src="/Xtext/images/releasenotes/2_14_annotation_preference.png" alt="" /></p>
-
-<h3 id="final">@Final</h3>
-
-<p><img src="/Xtext/images/releasenotes/2_14_annotation_final.png" alt="" /></p>
-
-<p>A rule marked with <code>@Final</code> cannot be overridden.</p>
-
-<h3 id="exported">@Exported</h3>
-
-<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="create-action-quickfix">Create Action Quickfix</h3>
-
-<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
-    }
+<pre><code>try {
+  ... some code ...
+} catch (SomeException e) {
+  // do nothing with "e"
 }
 </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>The catch block was transpiled to:</p>
 
-<p><img src="/Xtext/images/releasenotes/2_14_new-file-wizard.png" alt="" /></p>
+<pre><code>catch (final Throwable _t) {
+  if (_t instanceof SomeException) {
+    final SomeException e = (SomeException)_t;
+  } else {
+    throw Exceptions.sneakyThrow(_t);
+  }
+}
+</code></pre>
 
-<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>Xtend will now avoid the generation of the variable when it is not used within the catch block:</p>
 
-<p><img src="/Xtext/images/releasenotes/2_14_new-project-wizard-template-selection.png" alt="" /></p>
+<pre><code>catch (final Throwable _t) {
+  if (_t instanceof SomeException) {
+  } else {
+    throw Exceptions.sneakyThrow(_t);
+  }
+}
+</code></pre>
 
-<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>
+<h3 id="multi-catch-support">Multi-Catch Support</h3>
+<p>With Xtend 2.14 the exception handling supports multi-catch clauses.</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><img src="/xtend/images/releasenotes/2_14_0_xtend-multi-catch-new.png" alt="" /></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>
+<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>
 
-<h3 id="console-icon">Console Icon</h3>
+<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>
 
-<p>The Xtext icon has been added for the Xtext console:</p>
+<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_console-icon.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>
 
-<h2 id="language-server-support">Language Server Support</h2>
+<h2 id="unnecessary-modifiers-validation">Unnecessary Modifiers Validation</h2>
 
-<p>Xtext has been upgraded to LSP4J version 0.4.0. This includes the following features:</p>
+<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>
 
-<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>
+<p><img src="/xtend/images/releasenotes/2_14_unnecessary_modifier.png" alt="" /></p>
 
-<h2 id="emf-support">EMF Support</h2>
+<p>For convenient resolution of these issues a quick fix has been added.</p>
 
-<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>
+<h2 id="eclipse-integration">Eclipse Integration</h2>
 
-<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>
+<h3 id="organize-imports">Organize Imports</h3>
 
-<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>
+<p>The Organize Imports feature has been improved to consider inner types properly.</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/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>
+  <li><a href="https://blogs.itemis.com/en/xtend-2-14-unnecessary-modifiers-validation">“Unnecessary modifiers validation” blog post</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 60 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 20 Bugzilla tickets have made it into this release. For further details please refer to the following lists:</p>
 
 <ul>
   <li>
@@ -335,63 +220,63 @@
 </ul>
 
 
-    			</div>
-    		</div>
-      </div>
-    </div>
-  </div>
+  </article>
+
 </div>
+
     
     <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">
+    <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">
             <!-- 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>
+                <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>
               </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>
   
-  <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>
+  <!-- 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="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([ '_setAccount', 'UA-2429174-4' ]);
     _gaq.push([ '_trackPageview' ]);
     (function() {
       var ga = document.createElement('script');
@@ -404,31 +289,8 @@
       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>
