<?php
/*******************************************************************************
 * Copyright(c) 2015 Eclipse Foundation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Nathan Gervais (Eclipse Foundation) - Initial implementation
 *    Eric Poirier (Eclipse Foundation)
 *******************************************************************************/
?>

<h1>Europa Webinars</h1>

<p>Looking to learn more about the different projects involved in
  Europa? We are running a series of free webinars to help you better
  understand how you can use the different Eclipse projects. Take a look
  below and sign-up today.</p>

<h2>Webinar Title</h2>
<a href="#">Webinar Recording</a>
<ul>
  <li><p>Presenters:</p></li>
  <li><p>Morbi ut turpis vitae diam tempus gravida. Suspendisse faucibus
      justo at quam. Praesent nulla tortor, lacinia at, elementum et,
      semper vitae, elit. Praesent tincidunt pellentesque dui. Proin vel
      nisi eget neque vehicula consectetuer. Duis est. Integer fringilla
      lorem id odio. Praesent eget dolor. Aenean et magna.</p>

</ul>