<?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>Community Poll Vote</h1>
<h2>Help decide the name for the 2014 Eclipse Simultaneous Release!</h2>

<p>
  There will be an Eclipse Simultaneous Release on the fourth Wednesday
  of June, 2014. But what to call it? Please vote, only once, for your
  favorite name for that 2014 release. Remember, the simultaneous
  release name is an informal <i>marketing name</i>. It should be
  recognizable, pronounceable, relatively distinct and not obvious to
  confuse with other software or trademarks. Be sure to consider how it
  sounds in context, such as...
</p>

<p>
  <i>"Hey, go download the <b>Eclipse xyz Release</b> and see all the
    cool stuff in there!"
  </i>
</p>

<p>
  The following list was arrived at with input from the community (see <a
    href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=398191">bug
    398191</a>) and discussions inside the Eclipse Planning Council.
</p>

<div style="padding: 5px; margin-left: 1%; margin-right: 1%;">

  <p>
    Laila: 8%<br /> Ladon: 2%<br /> Laplace: 13%<br /> Lok: 2% <br />
    Lorentz: 4%<br /> Luna: 71%<br /> <b>Total votes: 274</b>
  </p>
</div>

<p>
  Thanks for your vote and your help with Eclipse! <b>Luna</b> was
  chosen as the name.
</p>

<p>
  <b>Note: The Planning Council reserves the right to make the final
    decision, in case some popularly voted item is later found to be
    unsuitable for some reason.</b>
<p>
<p>Current time: 29/09/15 : 14:09 (EDT)</p>
