//** Reference to CC-0. Source: numerous modules. **//

{{Types "CC0-1.0"}}

((
    This work is subject to the CC0 1.0 Universal (CC0 1.0) Public Domain Dedication
    license. Its contents can be found at:

    http://creativecommons.org/publicdomain/zero/1.0
    ((
    and http://creativecommons.org/publicdomain/zero/1.0/legalcode
    ))??

    ((Copyright (c) __6__ for the edited code.))??
||
    (( CC0 ; http://creativecommons.org/publicdomain/zero/1.0/ ))??

    (( Written in __1__ by __5__ ))??

    To the extent possible under law, __4__
    (( has waived || have dedicated))
    all copyright and related
    ((or || and))
    neighboring rights to __8__ .
    ((
	This work is published from
	(( United States || The Netherlands ))
	(( https://creativecommons.org/publicdomain/zero/1.0/legalcode 	))??
    ||
	This software is distributed without any warranty.

	You should have received a copy of the CC0 Public Domain Dedication along with this software.
	If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
    ))
))
