<?php
/**
 * Copyright (c) 2015, 2018 Eclipse Foundation.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 * Nathan Gervais (Eclipse Foundation) - Initial implementation
 * Eric Poirier (Eclipse Foundation)
 *
 * SPDX-License-Identifier: EPL-2.0
 */
?>
<h1><?php print $pageTitle; ?></h1>
<img style="float: left;" src="/donate/images/starTrans.png" />
<p>
  <strong>A big thank you to all <span style="font-size: 24px">487</span> of our
    Friends of Helios. The funds raised will be used to help support the Eclipse
    community. Your generousity is very much appreciated - Helios wouldn't be
    the same without you!
  </strong>
</p>
<hr>
<p>
  <strong>Daniele Gagliardi </strong> Anonymous <strong>Anonymous </strong>
  Anonymous <strong>Anonymous </strong> Anonymous <strong>Mark Tippetts </strong>
  Anonymous <strong>Anonymous </strong> Jody Garnett <strong>Cho Hyunjong </strong>
  Anonymous <strong>Craig Condit </strong> Anonymous <strong>Uwe Kitzmann </strong>
  Anonymous <strong>Ian Skerrett </strong> Anonymous <strong>Anonymous </strong>
  Anonymous <strong>Wendell Beckwith </strong> Marcus Hirt <strong>Anonymous </strong>
  Anonymous <strong>Wolfgang Schell </strong> Anonymous <strong>Sam Wu </strong>
  Anonymous <strong>Anonymous </strong> Anonymous <strong>Anonymous </strong>
  Anonymous <strong>Christian Schubert </strong> Anonymous <strong>Anonymous </strong>
  Anonymous <strong>Mickael Istria </strong> Anonymous <strong>Anonymous </strong>
  Anonymous <strong>Alex Weirig </strong> Anonymous <strong>Anonymous </strong>
  Anonymous <strong>Anonymous </strong> Anonymous <strong>Anonymous </strong>
  Robert Wloch <strong>Dong taek Kim </strong> Bruno Medeiros <strong>Anonymous
  </strong> Robert Meagher <strong>Anonymous </strong> Anonymous <strong>Anonymous
  </strong> Anonymous <strong>Anonymous </strong> Anonymous <strong>Anonymous </strong>
  Guy Shalev <strong>Anonymous </strong> Reibert Arbring <strong>Dennis
    Laliberte </strong>
</p>