                                  ---------------
                                  Acknowledgments
                                  ---------------

    Thanks to the following people who have offered constructive feedback, support, contribution,
    and/or praise for JOpt Simple:

    * Paul Armstrong

    * Guillaume Aubert

    * David Beckingsale

    * Jochen Bedersdorfer

    * Louis Bergelson

    * Ryan Breidenbach

    * Erik Broes

    * Carlos Cadete

    * Laurent Caillette

    * Matthew Daniel

    * Hans Dockter

    * Kevin C. Dorff

    * Adam Fisk

    * Raymund F\u00FCl\u00F6p

    * Dave Jarvis

    * Paul King

    * El Kodus

    * Alexander Kriegisch

    * Zachary Kurmas

    * Henning Luebbers

    * Derek Mahar

    * Bruno Mascret

    * Antoine Neveux

    * Christian Ohr

    * Michael Osipov

    * Brian Oxley (binkley)

    * Andrew Parker

    * Julien Ponge

    * Rob Reed

    * Mark Reinhold

    * Alex Renger

    * Andrew Robinson

    * Jonathan Shook

    * Jason Smith

    * Emils Solmanis

    * Leo Uzcategui

    * Alan van Dam

    * Douglas Wegscheid

    * Chris K Wensel

    * Ashley Williams

    * Daniel Yokomizo

    []
