-------------------------------------------------------------------- 
                  The Xdebug License, version 1.0
             (Based on "The PHP License", version 3.0)
    Copyright (c) 2002, 2003 Derick Rethans. All rights reserved.
-------------------------------------------------------------------- 

Redistribution and use in source and binary forms, with or without
modification, is permitted provided that the following conditions
are met:

  1. Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.
 
  2. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in
     the documentation and/or other materials provided with the
     distribution.
 
  3. The name "Xdebug" must not be used to endorse or promote products
	 derived from this software without prior written permission. For
	 written permission, please contact xdebug@derickrethans.nl.
  
  4. Products derived from this software may not be called "Xdebug", nor
     may "Xdebug" appear in their name, without prior written permission
	 from xdebug@derickrethans.nl.
 
  5. Derick Rethans may publish revised and/or new versions of the
	 license from time to time. Each version will be given a
	 distinguishing version number.  Once covered code has been
	 published under a particular version of the license, you may
	 always continue to use it under the terms of that version. You
	 may also choose to use such covered code under the terms of any
	 subsequent version of the license published by Derick Rethans. No
	 one other than Derick Rethans has the right to modify the terms
	 applicable to covered code created under this License.

  6. Redistributions of any form whatsoever must retain the following
	 acknowledgment: "This product includes Xdebug, freely available
	 from <http://xdebug.derickrethans.nl/>".

THIS SOFTWARE IS PROVIDED BY DERICK RETHANS ``AS IS'' AND ANY
EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE PHP DEVELOPMENT TEAM OR
ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-------------------------------------------------------------------- 

This software consists of voluntary contributions made by some
individuals on behalf of Derick Rethans.

Derick Rethans can be contacted via e-mail at xdebug@derickrethans.nl.

For more information Xdebug, please see
<http://xdebug.derickrethans.nl>.
