<?php
/**
* Copyright (c) 2020 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:
*   Jesse McConnell
*
* SPDX-License-Identifier: EPL-2.0
*/
$jetty = array (
 'jetty_9.2' => array (
    'version' => '9.2.30.v20200428',
    'zip.md5' => 'fb9aa271289360caa00651fc3e348f90',
    'zip.sha1' => '195c08bb43362f79c9c0d29c2d80c0c62e5581e0',
    'tgz.md5' => 'b2a24a5989cc6c1fd9ad7af630e6e0bb',
    'tgz.sha1' => '320737b6594dd6ee17bf4f79cf61b001ba8c3245',
  ),
 'jetty_9.3' => array (
    'version' => '9.3.29.v20201019',
    'zip.md5' => '44847646d9821d6c8d252d6e761c96a9',
    'zip.sha1' => 'acf3118a5cbfb3a6dfe218d3f20ecff09974d921',
    'tgz.md5' => 'bdc54c7560d831db88eb4f3491cdc6e2',
    'tgz.sha1' => '1f61ece21ad87c9835be9d9440725698b6928baa',
  ),
 'jetty_9.4' => array (
    'version' => '9.4.35.v20201120',
    'zip.md5' => '110a94dbabef94003577655e24b3f8b4',
    'zip.sha1' => 'c6c4d050b2339e86e3fc9483ca85076412182bf4',
    'tgz.md5' => '0212098196f59b254ec51fa6aff75c13',
    'tgz.sha1' => 'd4969e3fe66c3ab213df86e6a468e51e7f7e5a3f',
  ),
 'jetty_10.0' => array (
    'version' => '10.0.0',
    'zip.md5' => 'c9f35b2b9107b1453cfd5040b27b3e7f',
    'zip.sha1' => 'fbfb6d4e5197971dedcf6a2a6195c9f7a013070c',
    'tgz.md5' => '3b2f412ae80ec916248edd7860d77b1d',
    'tgz.sha1' => '10444c772dcb8f627e135c50b692e51d53d02f78',
  ),
 'jetty_11.0' => array (
    'version' => '11.0.0',
    'zip.md5' => '5609d0cfdb4d1a759014705030982cf0',
    'zip.sha1' => 'fc955a0373f35a6fc8e3181d9c859e4f331fce6b',
    'tgz.md5' => 'ca2acdd1d5d6e3922f6caf3138436371',
    'tgz.sha1' => '06bb0ad49d9c18b21053ff5f34d8a55e28d4f606',
  )
);
