#
# Unicode Character Database: Derived Property Data
# This file shows when various code points were first assigned in Unicode.
#
# Caution: When using the Age *property*, all assigned code points
# in each version are included, not just the newly assigned code points.
# For more information, see http://www.unicode.org/reports/tr18/
#
# Notes:
#
# - The term 'assigned' means that a previously reserved code point was assigned
#   to be a character (graphic, format, control, or private-use); 
#   a noncharacter code point; or a surrogate code point.
#   For more information, see The Unicode Standard Section 2.4
#
# - Versions are only tracked from 1.1 onwards, since version 1.0
#   predated changes required by the ISO 10646 merger.
#
# - The Hangul Syllables that were removed from 2.0 are not included in the 1.1 listing.
#
# - The supplementary private use code points and the non-character code points
#   were assigned in version 2.0, but not specifically listed in the UCD
#   until versions 3.0 and 3.1 respectively.
#
# - Contiguous ranges are broken into separate lines where they would cross code point
#   types: graphic, format, control, private-use, surrogate, noncharacter
#
# For details on the contents of each version, see
#   http://www.unicode.org/versions/enumeratedversions.html.
