<!DOCTYPE html>
<html>
<head>
   <meta http-equiv="content-type" content="text/html;charset=utf-8" />
   <meta name="twitter:dnt" content="on">

   <title>EMFStore</title>
   <link rel="stylesheet" media="screen"
         href="public/stylesheets/bootstrap.css">
   <link rel="stylesheet" media="screen"
         href="public/stylesheets/bootstrap-responsive.css">
   <link rel="stylesheet" media="screen"
         href="public/stylesheets/theme.css">
   <link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
   <link rel="icon" href="public/images/favicon.ico" />
   <script src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
   <script src="public/javascripts/jquery-1.9.0.min.js" type="text/javascript"></script>
   <script src="public/javascripts/bootstrap.js" type="text/javascript"></script>
   <script src="public/javascripts/handlebars.js" type="text/javascript"></script>
   <script src="public/javascripts/init.js" type="text/javascript"></script>
   <script type="text/javascript">
     $(function(){
       $.get(
         'template.html',
         function(d){
           var template = Handlebars.compile(d);
           $.get('documentation-content.html', function(e) {
             var context = { content: e, active: "documentation" };
             var html    = template(context);
             $('#content-id').html(html);
           });
         }
       );
     });
   </script>
</head>
<link rel="stylesheet" type="text/css" href="/eclipse.org-common/themes/solstice/public/stylesheets/vendor/cookieconsent/cookieconsent.min.css" />
<script src="cookieconsent.js"></script>
<body id="content-id">
</body>
</html>