Subversion Repositories JSX

Compare Revisions

Last modification

Ignore whitespace Rev 509 → Rev 508

/branches/live/object/object-compat.js
File deleted
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/string/hyphenation.js
===================================================================
--- live/string/hyphenation.js (revision 509)
+++ live/string/hyphenation.js (nonexistent)
@@ -1,192 +0,0 @@
-/**
- * @fileOverview <title>PointedEars' JSX: String Library -- Hyphenation</title>
- * @file $Id$
- * @requires object.js
- *
- * @section Copyright & Disclaimer
- *
- * @author (C) 2012, 2013 Thomas Lahn &lt;js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-if (typeof jsx.string == "undefined")
-{
- /**
- * @namespace
- */
- jsx.string = {};
-};
-
-jsx.string.hyphenation = (function () {
- "use strict";
- var _jsx = jsx;
- var _jsx_object = _jsx.object;
- var _getDataObject = _jsx_object.getDataObject;
- var _getKeys = _jsx_object.getKeys;
- var _map = _jsx.array.map;
-
- var _dictionary = _getDataObject();
- var _hyphenateAll = false;
- var _rxWord = /(^|\s)(\S+)([\s,;:.?!\)\]]|$)/g;
- var _rxWords;
-
- /* U+00B7 MIDDLE DOT (often found in online dictionaries) */
- var _rxHyphen = /[-\u00b7]/g;
-
- var _chShy = "\u00ad";
- var _rxShy = new RegExp(_chShy, "g");
-
- var _compiled = false;
- var _compile = function () {
- _rxWords = new RegExp("(^|\\s)("
- + _getKeys(_dictionary).join("|")
- + ")([\\s,;:.?!\\)\\]]|$)", "g");
- _compiled = true;
- };
-
- var hyphenation = {
- /**
- * Loads a dictionary. The dictionary should contain at least
- * one {@link jsx.string.hyphenation#addRule} or
- * {@link jsx.string.hyphenation#addRules} call.
- *
- * @param {String} dictionary
- * URI of the dictionary
- * @return {boolean}
- * <code>true</code> if the dictionary could be successfully
- * <em>loaded</em> (not: included), <code>false</code> otherwise.
- * @requires jsx.net.http#Request
- * @see jsx#importFrom
- */
- loadDictionary: function (dictionary) {
- return jsx.importFrom(dictionary);
- },
-
- /**
- * Loads several dictionaries. A dictionary should contain
- * at least one {@link jsx.string.hyphenation#addRule} or
- * {@link jsx.string.hyphenation#addRules} call.
- *
- * @param {Array} dictionaries
- * URIs of the dictionaries
- * @param {Boolean} returnEarly (optional)
- * If <code>true</code>, return as soon as loading one
- * dictionary fails. The default is <code>false</code>.
- * @return {boolean}
- * <code>true</code> if all dictionaries could be successfully
- * <em>loaded</em> (not: included), <code>false</code> otherwise.
- * @requires jsx.net.http#Request
- * @see jsx#importFrom
- */
- loadDictionaries: function (dictionaries, returnEarly) {
- var success = true;
-
- for (var i = 0, len = dictionaries.length; i < len; ++i)
- {
- if (!this.addDictionary(dictionaries[i]))
- {
- success = false;
- }
-
- if (returnEarly && !success)
- {
- return success;
- }
- }
-
- return success;
- },
-
- /**
- * @memberOf jsx.string.hyphenation
- * @param rule
- * @returns
- */
- addRule: function (rule) {
- _dictionary[rule.replace(_rxHyphen, "")] = rule.replace(_rxHyphen, _chShy);
- _compiled = false;
- },
-
- addRules: function (rules) {
- for (var i = 0, len = rules.length; i < len; ++i)
- {
- this.addRule(rules[i]);
- }
- },
-
- getRules: function () {
- return _map(
- _getKeys(_dictionary),
- function (key) {
- return _dictionary[key].replace(_rxShy, "-");
- });
- },
-
- removeRule: function (rule) {
- delete _dictionary[rule];
- _compiled = false;
- },
-
- reset: function () {
- _dictionary = _getDataObject();
- _compiled = false;
- },
-
- getHyphenateAll: function () {
- return _hyphenateAll;
- },
-
- setHyphenateAll: function (hyphenateAll) {
- _hyphenateAll = !!hyphenateAll;
- },
-
- hyphenate: function (s) {
- if (!_compiled)
- {
- _compile();
- }
-
- return s.replace(_hyphenateAll ? _rxWord : _rxWords,
- function (match, wsp1, word, wsp2) {
- if (_hyphenateAll && !_dictionary[word])
- {
- return match;
- }
-
- return wsp1 + _dictionary[word] + wsp2;
- });
- }
- };
-
- _jsx_object.defineProperties(hyphenation, {
- rules: {
- "get": function () {
- return this.getRules();
- }
- }
- });
-
- return hyphenation;
-}());
\ No newline at end of file
/live/string/hyphenation.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/string/unicode.js
===================================================================
--- live/string/unicode.js (revision 509)
+++ live/string/unicode.js (nonexistent)
@@ -1,767 +0,0 @@
-/* vim:set fileencoding=utf-8 tabstop=2 shiftwidth=2 softtabstop=2 expandtab: */
-/**
- * @fileOverview <title>PointedEars' JSX: String Library -- Unicode Support</title>
- * @file $Id$
- * @requires object.js
- *
- * @section {Abstract}
- *
- * A value of the primitive type {@link String} is defined in
- * ECMAScript, Editions 1 to 5.1 inclusive, as a sequence of 16-bit
- * units. Each unit is assumed, unless specified otherwise, to be
- * the UTF-16 code sequence for a Unicode character. The length
- * of a String is defined as the number of 16-bit units in the
- * value, and the position of a character is defined as the position
- * of the corresponding 16-bit unit in the String value.
- *
- * However, Unicode characters with code points beyond the Basic
- * Multilingual Plane (BMP) require two UTF-16 code units, thus two
- * 16-bit units, to be encoded. This makes it hard to use them
- * in ECMAScript because they are not considered by ECMAScript's
- * string-related algorithms. For example, for a string value that
- * contains only one character but that has a code point beyond
- * the multilingual plane (non-BMP character), the specified length
- * and the value of the <code>length</code> property is
- * <code>2</code>. Retrieving the (code point of the) first
- * character from a string with
- * <code>{@link String.prototype#charAt}(0)</code>.
- * where the character has a code point beyond the multilingual
- * plane, returns the (code point of the) (non-)character for its
- * <em>lead surrogate</em>. Retrieving with
- * <code>{@link String.prototype#charAt}(1)</code>
- * the (code point of) the second character from a string that
- * contains a first non-BMP character returns the first character's
- * <em>trail surrogate</em> instead.
- * {@link String.fromCharCode()} returns the character for the
- * normalized code point value for arguments that are code point
- * values beyond the BMP (e.g., <code>String.fromCharCode(0x1DD1E)
- * === "\uDD1E"</code>).
- *
- * This library provides a new object type, <code>WideString</code>,
- * whose prototype object inherits from the <code>String</code>
- * prototype object, that is intended to be used as a drop-in
- * replacement for <code>String</code> values that may contain
- * Unicode characters from both inside and beyond the BMP, from
- * code points U+0000 to U+10FFFF inclusive.
- *
- * It also replaces by default the values of certain built-in
- * properties of the <code>String</code> constructor and
- * <code>String</code> prototype object such as the ones mentioned
- * above, and add others to the prototype object, so as to
- * support non-BMP characters as well in implementations of those
- * ECMAScript Editions almost seamlessly. However, non-callable
- * built-in own and inherited properties of <code>String</code>
- * values, like <code>length</code>, <em>cannot</em> be modified.
- * (In case of <code>length</code>, you would need to use
- * <code>getLength()</code> instead.) Whether and to what extent
- * built-in objects are modified, can be controlled with
- * {@link jsx#options}. (See {@link "object.js"} for details.)
- *
- * Your feedback is appreciated.
- *
- * <em>NOTE: Due to {@link Array} limitations, the maximum
- * supported string length is 2³²−1 characters.</em>
- *
- * @section {Copyright & Disclaimer}
- *
- * @author (C) 2013 Thomas Lahn &lt;js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-if (typeof jsx.string == "undefined")
-{
- /**
- * @namespace
- */
- jsx.string = {};
-}
-
-/**
- * @type jsx.string.unicode
- * @memberOf __jsx.string.unicode
- * @namespace
- */
-jsx.string.unicode = (/** @constructor */ function () {
- var String_prototype_charCodeAt = "".charCodeAt;
-
- var _isArray = jsx.object.isArray;
-
- /* Handles characters in UTF-16 encoding from U+0000 to U+10FFFF */
- var _rxWideString = /[\uD800-\uDBFF][\uDC00-\uDFFF]/;
- var _rxString = /[\uD800-\uDBFF][\uDC00-\uDFFF]|[\S\s]/g;
-
- /**
- * @private
- * @param {String} s
- * String to be split into an array of characters
- * @return {Array}
- */
- function _toCharArray (s)
- {
- return (s ? (String(s).match(_rxString) || []) : []);
- }
-
- /**
- * Converts a {@link String} value to a wide string.
- * <p>
- * A <code>WideString</code> supports all operations and methods
- * supported on <code>String</code> values also for Unicode
- * characters outside the Basic Multilingual Plane (BMP), that
- * is, code points from U+0000 to U+10FFFF inclusive. Because
- * strings of characters are stored as an {@link Array} of
- * <code>String</code>s, operations where such characters are
- * more common are faster than with the <code>String</code>
- * prototype augmentation. In other cases you should use
- * the augmentation instead.
- * </p><p>
- * You may call a <code>WideString</code>'s
- * {@link WideString#prototype.toString toString()} method
- * (implicitly called in string context, like concatenation)
- * to convert it back to a <code>String</code> value.
- * </p><p>
- * <em>NOTE: Due to <code>Array</code> limitations, a
- * <code>WideString</code> may not contain more than
- * 2³²−1 Unicode characters. Also note that normalization
- * is <strong>not</strong> performed at the moment.</em>
- * </p>
- * @type jsx.string.unicode.WideString
- * @extends String
- * @constructor
- */
- var _WideString = (
- /**
- * @param {String} s
- * @return {jsx.string.unicode.WideString}
- */
- function _jsx_string_unicode_WideString (s) {
- /* Factory support */
- if (!(this instanceof _jsx_string_unicode_WideString))
- {
- return new _jsx_string_unicode_WideString(s);
- }
-
- /**
- * @private
- * @type Array
- */
- var _chars =
- _isArray(s)
- ? s
- : (s instanceof _jsx_string_unicode_WideString
- ? s.getChars()
- : _toCharArray(s));
-
- /**
- * Returns the characters in this object as an {@link Array}
- * of {@link String}s.
- *
- * @protected
- * @return {Array}
- */
- this.getChars = function () {
- return _chars;
- },
-
- /**
- * @field
- * @name chars
- * @type Array
- * @memberOf jsx.string.unicode.WideString
- * @see #getChars()
- */
- jsx.object.defineProperty(this, "chars", {"get": this.getChars});
- }
- ).extend(String, {
- /**
- * Returns the character at the specified position.
- *
- * <em>NOTE: A single Unicode character may be composed out of
- * several other characters. Normalization is not performed.</em>
- *
- * @memberOf jsx.string.unicode.WideString#prototype
- * @param {int} position
- * If not an integer, replaced with the closest integer.
- * @return {string}
- * If <code><var>position</var></code> is greater than or
- * equal to zero, the character at that position, counted
- * from zero.
- * If <code><var>position</var></code> is less than zero,
- * it is treated as the number of characters in this object
- * + <code><var>position</var></code>; that is,
- * <code><var>position</var> === -1</code>
- * returns the last character.
- * If <code><var>position</var></code> is replaceable with
- * an integer out of this range, <code>undefined</code>
- * is returned.
- * By contrast, if <code><var>position</var></code> is
- * not a <code>Number</code>, the return value is
- * <strong>not defined</strong>.
- */
- charAt: function (position) {
- var chars = this.getChars();
- position = (position < 0 ? Math.ceil(position) : Math.floor(position));
- return (position < 0
- ? chars[chars.length + position]
- : chars[position]);
- },
-
- /**
- * Returns the Unicode code point value of the character
- * in this object at the specified position.
- *
- * <em>NOTE: A single Unicode character may be composed out of
- * several other characters. Normalization is not performed.</em>
- *
- * @memberOf jsx.string.unicode.WideString#prototype
- * @param {Number} position
- * If not an integer, replaced with the closest integer.
- * @return {number}
- * If <code><var>position</var></code> is greater than or
- * equal to zero, the code point value of the character
- * at that position, counted from zero.
- * If <code><var>position</var></code> is less than zero,
- * it is treated as the number of characters in this object
- * + <code><var>position</var></code>; that is,
- * <code><var>position</var> === -1</code>
- * returns the code point value of the last character.
- * If <code><var>position</var></code> is replacable with
- * an integer value out of this range, <code>NaN</code>
- * is returned.
- * By contrast, if <code><var>position</var></code> is
- * not a <code>Number</code>, the return value is
- * <strong>not defined</strong>.
- * @see #charAt()
- */
- charCodeAt: function (position) {
- var ch = this.charAt(position);
- if (typeof ch == "undefined")
- {
- return NaN;
- }
-
- if (/^[\uD800-\uDBFF]/.test(ch))
- {
- var leadSurrogate = String_prototype_charCodeAt.call(ch, 0);
- var trailSurrogate = String_prototype_charCodeAt.call(ch, 1);
-
- var leadBits = (leadSurrogate - 0xD800) << 10;
- var trailBits = trailSurrogate - 0xDC00;
- var bmpOffset = 0x10000;
-
- return leadBits + trailBits + bmpOffset;
- }
-
- return String_prototype_charCodeAt.call(ch, 0);
- },
-
- /**
- * Concatenates this string with other strings
- * and returns the result.
- *
- * Returns the <code>WideString</code> resulting from
- * concatenating the list of characters in this object with
- * the list of the arguments' characters.
- *
- * @function
- */
- concat: (function () {
- var _slice = [].slice;
-
- /**
- * @params {WideString|String}
- * @return {WideString}
- */
- function _concat ()
- {
- return new this.constructor(this.toString()
- + _slice.call(arguments).join(""));
- }
-
- return _concat;
- }()),
-
- /**
- * Returns the number of characters in this string
- *
- * @return {int}
- * @see #length
- */
- getLength: function () {
- return this.getChars().length;
- },
-
- /**
- * Returns the index of the first position of a substring
- * in this string.
- *
- * @param {jsx.string.unicode.WideString|String} searchString
- * Substring to look for.
- * @param {int} position
- * Position from where to start searching. The default is
- * <code>0</code>.
- * @return {number}
- */
- indexOf: function (searchString, position) {
- var needleChars = searchString instanceof this.constructor
- ? searchString.getChars()
- : _toCharArray(searchString);
- var needleLen = needleChars.length;
- var needleString = needleChars.join("");
- var chars = this.getChars();
- for (var i = (typeof position == "undefined"
- ? 0
- : (position < 0 ? 0 : Math.floor(position))),
- len = chars.length - needleLen + 1;
- i < len; ++i)
- {
- if (chars.slice(i, i + needleLen).join("") == needleString)
- {
- return i;
- }
- }
-
- return -1;
- },
-
- /**
- * Returns the index of the last position of a substring
- * in this string.
- *
- * @param {jsx.string.unicode.WideString|String} searchString
- * Substring to look for.
- * @param {int} position
- * Position from where to start searching backwards.
- * The default is the position of the last character.
- * @return {number}
- */
- lastIndexOf: function (searchString, position) {
- var needleChars = searchString instanceof this.constructor
- ? searchString.getChars()
- : _toCharArray(searchString);
- var needleLen = needleChars.length;
- var needleString = needleChars.join("");
- var chars = this.getChars();
- for (var i = (typeof position == "undefined"
- ? chars.length - needleLen
- : (position < 0 ? 0 : Math.floor(position)))
- + 1;
- i--;)
- {
- if (chars.slice(i, i + needleLen).join("") == needleString)
- {
- return i;
- }
- }
-
- return -1;
- },
-
- /**
- * Returns a slice (substring) of this string.
- *
- * @param {int} start
- * Position of the Unicode character from where to start slicing.
- * @param {int} end
- * Position of the first Unicode character that should not be
- * included in the slice.
- * @return {jsx.string.unicode.WideString}
- * @see String.prototype#slice()
- */
- slice: function (start, end) {
- return new this.constructor(
- this.getChars().slice(start, end).join(""));
- },
-
- /**
- * Returns a substring of this string.
- *
- * @param {int} start
- * Position of the Unicode character from where to start slicing.
- * @param {int} length
- * Number of Unicode characters in the substring.
- * If omitted or <code>undefined</code>, the substring
- * contains all characters from <code>start</code>
- * to the end of this string.
- * @return {jsx.string.unicode.WideString}
- * @see #slice()
- * @see String.prototype#substr()
- */
- substr: function (start, length) {
- return this.slice(start,
- typeof length == "undefined"
- ? length
- : start + length);
- },
-
- /**
- * Returns a substring of this string.
- *
- * @param {int} start
- * Position of the Unicode character from where to start slicing.
- * @param {int} end (optional)
- * Position of the first Unicode character that should not be
- * included in the slice. If <code><var>start</var></code>
- * is larger than <code><var>end</var></code>, they are swapped.
- * @return {jsx.string.unicode.WideString}
- * @see String.prototype#substring()
- */
- substring: function (start, end) {
- if (start > end)
- {
- var tmp = start;
- start = end;
- end = tmp;
- }
-
- return new this.constructor(
- this.getChars().slice(start, end).join(""));
- },
-
- /**
- * Returns the characters in this object as a primitive
- * string value.
- *
- * @return {string}
- */
- toString: function () {
- return this.getChars().join("");
- },
-
- /**
- * @see #toString()
- */
- valueOf: function () {
- return this.toString();
- }
- });
-
- /**
- * @name length
- * @type int
- * @memberOf jsx.string.unicode.WideString#prototype
- * @see #getLength()
- */
- jsx.object.defineProperty(_WideString.prototype, "length", {
- "get": function () {
- return this.getLength();
- }
- });
-
- /**
- * Returns the <code>string</code> value consisting of the
- * characters specified by their code point values.
- *
- * @function
- * @name jsx.string.unicode.WideString.fromCharCode
- */
- _WideString.fromCharCode = (function () {
- var String_fromCharCode = String.fromCharCode;
-
- /**
- * @params {int}
- * @return {jsx.string.unicode.WideString}
- */
- function _fromCharCode ()
- {
- var chars = [];
-
- for (var i = 0, len = arguments.length; i < len; ++i)
- {
- var arg = Math.floor(arguments[i]);
- var ch;
-
- if (arg > 0x10FFFF)
- {
- return jsx.throwThis(jsx.InvalidArgumentError,
- ["Unsupported Unicode code point value",
- "0x" + arg.toString(16).toUpperCase(),
- "0x0000..0x10FFFF"]);
- }
-
- if (arg > 0xFFFF)
- {
- var bmpOffset = arg - 0x10000;
- var leadSurrogate = 0xD800 + ((bmpOffset >> 10) & 0x3FF);
- var trailSurrogate = 0xDC00 + (bmpOffset & 0x3FF);
-
- ch = String_fromCharCode(leadSurrogate, trailSurrogate);
- }
- else
- {
- ch = String_fromCharCode(arg);
- }
-
- chars.push(ch);
- }
-
- return new _WideString(chars);
- }
-
- return _fromCharCode;
- }());
-
- if (jsx.options.augmentBuiltins)
- {
- if (jsx.options.augmentPrototypes)
- {
- jsx.object.extend(String.prototype, (function () {
- /**
- * @type jsx.string.unicode.WideString
- */
- var _prevWideString = null;
-
- /**
- * Returns the {@link jsx.string.unicode.WideString WideString}
- * created from this <code>String</code>.
- * <p>
- * NOTE: The previously created <code>WideString</code> is
- * retained in <code><var>prevWideString</var></code>, which
- * increases runtime efficiency with subsequent method calls
- * on the same string. Caching <em>all</em> previous values
- * would also increase runtime efficiency, but decrease memory
- * efficiency at the same time, as unused <code>WideString</code>s
- * could not be garbage-collected.<br>
- * Calling <code>toString</code> is required so that primitive
- * values, not object references, are compared (the latter
- * would always be <code>false</code> with internal wrapper
- * <code>String</code> objects created from primitive
- * string values).
- * </p>
- * @param {String} s
- * @return {jsx.string.unicode.WideString}
- */
- function _createWideString (s)
- {
- return (_prevWideString && _prevWideString.toString() == s
- ? _prevWideString
- : (_prevWideString = new _WideString(s)));
- }
-
- return {
- /**
- * Returns the character in this string
- * at the specified position.
- * <p>
- * Differs from the built-in {@link String.prototype#charAt}
- * method in that it considers characters with code points
- * beyond U+FFFF that require several UTF-16 code units,
- * and that the position may be negative, counting from
- * the end of the string.
- * </p>
- * @memberOf String.prototype
- * @param {Number} position
- * @return {string}
- * @see String.prototype#charAt()
- * @see jsx.string.unicode.WideString.prototype#charAt()
- */
- charAt: function (position) {
- return _createWideString(this).charAt(position);
- },
-
- /**
- * Returns the Unicode code point value of the character
- * in this string at the specified position.
- * <p>
- * Differs from the built-in {@link String.prototype#charCodeAt}
- * method in that it considers characters with code points
- * beyond U+FFFF that require several UTF-16 code units,
- * and that the position may be negative, counting from
- * the end of the string.
- * </p>
- * @param {Number} position
- * @return {number}
- * @see String.prototype#charCodeAt()
- * @see jsx.string.unicode.WideString.prototype#charCodeAt()
- */
- charCodeAt: function (position) {
- return _createWideString(this).charCodeAt(position);
- },
-
- /**
- * Returns the number of Unicode characters in this string.
- * <p>
- * Differs from the built-in {@link string#length length}
- * property in that it considers characters with code points
- * beyond U+FFFF that require several UTF-16 code units.
- * </p>
- * @return {number}
- * @see string#length
- */
- getLength: function () {
- return _createWideString(this).getLength();
- },
-
- /**
- * Returns the index of the first position of a substring
- * in this string.
- * <p>
- * Differs from the built-in {@link String.prototype#indexOf}
- * method in that it considers characters with code points
- * beyond U+FFFF that require several UTF-16 code units.
- * </p>
- * @param {jsx.string.unicode.WideString|String} searchString
- * Substring to look for.
- * @param {int} position
- * Position from where to start searching. The default is
- * <code>0</code>.
- * @return {number}
- * @see String.prototype#indexOf()
- */
- indexOf: function (searchString, position) {
- return _createWideString(this).indexOf(searchString, position);
- },
-
- /**
- * Returns the index of the last position of a substring
- * in this string.
- * <p>
- * Differs from the built-in {@link String.prototype#lastIndexOf}
- * method in that it considers characters with code points
- * beyond U+FFFF that require several UTF-16 code units.
- * </p>
- * @param {jsx.string.unicode.WideString|String} searchString
- * Substring to look for.
- * @param {int} position
- * Position from where to start searching backwards.
- * The default is the position of the last character.
- * @return {number}
- * @see String.prototype#lastIndexOf()
- */
- lastIndexOf: function (searchString, position) {
- return _createWideString(this).lastIndexOf(searchString, position);
- },
-
- /**
- * Returns a slice (substring) of this string.
- * <p>
- * Differs from the built-in {@link String.prototype#slice}
- * method in that it considers characters with code points
- * beyond U+FFFF that require several UTF-16 code units.
- * </p>
- * @see String.prototype#slice()
- */
- slice: (function () {
- var String_prototype_slice = "".slice;
-
- /**
- * @param {int} start
- * Position of the Unicode character from where to start slicing.
- * @param {int} end
- * Position of the first Unicode character that should not be
- * included in the slice.
- * @return {string}
- */
- return function (start, end) {
- return _rxWideString.test(this)
- ? _createWideString(this).slice(start, end).toString()
- : String_prototype_slice.apply(this, arguments);
- };
- }()),
-
- /**
- * Returns a substring of this string.
- * <p>
- * Differs from the built-in (non-standard)
- * {@link String.prototype#substr} method in that it
- * considers characters with code points beyond U+FFFF
- * that require several UTF-16 code units.
- * </p>
- * @param {int} start
- * Position of the Unicode character from where to start slicing.
- * @param {int} length
- * Number of Unicode characters in the substring.
- * If omitted or <code>undefined</code>, the substring
- * contains all characters from <code>start</code>
- * to the end of this string.
- * @return {string}
- * @see String.prototype#substr()
- * @see jsx.string.unicode.WideString.prototype#substr()
- */
- substr: function (start, length) {
- return _createWideString(this).substr(start, length).toString();
- },
-
- /**
- * Returns a substring of this string.
- * <p>
- * Differs from the built-in {@link String.prototype#substring}
- * method in that it considers characters with code points
- * beyond U+FFFF that require several UTF-16 code units.
- * </p>
- * @see String.prototype#substring()
- */
- substring: (function () {
- var String_prototype_substring = "".substring;
-
- /**
- * @param {int} start
- * Position of the Unicode character from where to start slicing.
- * @param {int} end (optional)
- * Position of the first Unicode character that should not be
- * included in the slice. If <code><var>start</var></code>
- * is larger than <code><var>end</var></code>, they are swapped.
- * @return {string}
- */
- return function (start, end) {
- return _rxWideString.test(this)
- ? _createWideString(this).substring(start, end).toString()
- : String_prototype_substring.apply(this, arguments);
- };
- }())
- };
- }()), jsx.object.ADD_OVERWRITE);
- }
- }
-
- if (jsx.options.replaceBuiltins)
- {
- jsx.object.extend(String, {
- /**
- * Returns a {@link String} containing the Unicode characters
- * specified by the code point arguments.
- * <p>
- * Differs from the built-in {@link String#fromCharCode}
- * method in that it considers characters with code points
- * beyond U+FFFF that require several UTF-16 code units.
- * </p>
- * @memberOf String
- * @params {Number}
- * Code points of the characters from <code>0</code> to
- * <code>0x10FFFF</code> inclusive.
- * @return {string}
- */
- fromCharCode: function () {
- return _WideString.fromCharCode.apply(this, arguments).toString();
- }
- }, jsx.object.ADD_OVERWRITE);
- }
-
- return {
- /**
- * @memberOf jsx.string.unicode
- */
- WideString: _WideString
- };
-}());
\ No newline at end of file
/live/string/unicode.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/string/parser-old.js
===================================================================
--- live/string/parser-old.js (revision 509)
+++ live/string/parser-old.js (nonexistent)
@@ -1,414 +0,0 @@
-/**
- * Generic parser implementation
- *
- * @author
- * Copyright (c) 2010 Thomas 'PointedEars' Lahn &lt;js@PointedEars.de&gt;
- */
-
-if (typeof jsx.string.parser == "undefined")
-{
- /**
- * @namespace
- */
- jsx.string.parser = {};
-}
-
-/**
- * A token as recognized by a {@link #Lexer}.
- *
- * @param pattern : RegExp|String
- * The pattern to match the token. <strong>Parenthesized subexpressions
- * must be marked as <em>non-capturing</em> (<code>(?:&#8230;)</code>) for
- * the correct token to be returned by the lexer.</strong>
- * @param type : optional any
- * A value to set the object's <code>type</code> property which can be used
- * for recognizing the type of the matched token in the parser's
- * {@link Parser.prototype#parseToken parseToken()} method. Using
- * a constant value is recommended, the default is the constructor
- * identifier or <code>"Token"</code> if the identifier is unavailable.
- * However, whenever a token requires further parsing, it is recommended
- * to use an object which constructor calls {@link Token Token()}, and
- * to compare against its <code>constructor</code> property instead.
- * @property pattern : RegExp|String
- * See the constructor's <var>pattern</var> argument
- * @property type
- * See the constructor's <var>type</var> argument
- * @property match : Array
- * The text and substrings that the token matched. If the {@link #Lexer}'s
- * {@link #Lexer.keepHistory keepHistory} property is <code>false</code>,
- * the text and substrings that the token matched last.
- * @method parse(lexer : Lexer)
- * When this method is defined, a {@link #Parser} calls it instead of
- * the parser's {@link Parser.prototype#parseToken parseToken(Token)} method.
- * A <code>Token</code> may implement this method to parse the token using
- * a specialized {@link #Lexer}. An implementation may
- * {@link jsx.object#clone clone()} the referred lexer to create a lexer
- * that can find more or less tokens than the suggested one.
- */
-jsx.string.parser.Token = function (pattern, type) {
- this.pattern = pattern;
- this.type = type || jsx.object.getFunctionName(this.constructor) || "Token";
-};
-
-/**
- * A <code>Lexer</code> (lexical analyzer) converts a sequence
- * of characters in an input string into a sequence of
- * {@link #Token Tokens} which can be used by a {@link Parser}.
- *
- * <p>The list of patterns to match the tokens can be built with calling
- * {@link Lexer.prototype#addToken addToken()}, whereas the calls
- * for the preferred matches must come first, or with
- * {@link Lexer.prototype#addTokens addTokens()}, whereas the arguments
- * for the preferred matches must come first.</p>
- *
- * @param text : optional String
- * The text to be analyzed by this lexer; the default is the empty string.
- * @property text : string
- * The text to be analyzed
- * @property _tokens : Array[Token]
- * The list of {@link #Token Tokens}
- * @property keepHistory : boolean = false
- * If <code>true</code>, each match initializes and returns a new {@link #Token};
- * use this if you need to retain a history of tokens. Otherwise the
- * existing {@link #Token Tokens} are reused which requires less memory.
- */
-jsx.string.parser.Lexer = function (text) {
- /**
- * @type String
- */
- this.text = text ? String(text) : "";
-
- this._tokens = [];
- this.keepHistory = false;
-};
-
-jsx.string.parser.Lexer.extend(null, {
- /**
- * <code>true</code> if the tokens have been compiled into a
- * single regular expression. Always false if the longest match
- * should win.
- *
- * @see _longestMatchWins
- */
- _compiled: false,
-
- /**
- * <code>true</code> if character case should not matter
- */
- _ignoreCase: false,
-
- /**
- * <code>true</code> if newline should be included in `.' matches
- */
- _dotAll: false,
-
- /**
- * <code>true</code> if the longest match, not the first one
- * in the list of token expressions, should be used. This is
- * important where there is ambiguity in token prefixes, but
- * wasteful in runtime complexity where there is not, because
- * the length of the matches for each token need to be compared
- * against one another then. Use with caution.
- */
- _longestMatchWins: false,
-
- /**
- * Text position where to continue scanning
- */
- _offset: 0,
-
- /**
- * Appends a {@link #Token} to the list of tokens.
- *
- * @memberOf jsx.string.parser.Lexer#prototype
- * @param token : RegExp|String|Token
- * If a reference to a <code>RegExp</code> or a <code>String</code>,
- * the value is used for the token pattern;<br>
- * if a reference to a <code>Token</code>, the reference is used and
- * <var>tokenType</var> is ignored.
- *
- * <p><strong>NOTE: Parenthesized subexpressions must be marked as
- * <em>non-capturing</em> (<code>(?:&#8230;)</code>) for the correct
- * token to be returned by the lexer.</strong></p>
- * @param tokenType : optional String|Function
- * If a <code>String</code>, passed for the the type name to {@link #Token Token()};<br>
- * if a reference to a <code>Function</code>, the function is used as
- * constructor to which <var>token</var> is passed.
- * @return {Lexer}
- * This object
- */
- addToken: function (token, tokenType) {
- if (!token)
- {
- jsx.throwThis("jsx.InvalidArgumentError",
- ["Invalid token", token + " : " + typeof token
- + (token ? "[" + token.constructor + "]" : ""),
- "(token: RegExp|String)"]);
- }
-
- if (token.constructor == RegExp
- || typeof token == "string")
- {
- if (typeof tokenType == "function")
- {
- token = new tokenType(token);
- }
- else
- {
- token = new jsx.string.parser.Token(token, tokenType);
- }
- }
-
- this._tokens.push(token);
- this._compiled = false;
-
- return this;
- },
-
- /**
- * Appends one or more {@link #Token Tokens} to the list of tokens.
- *
- * @params : [RegExp|String|Token, optional String|Function]
- * @return {Lexer}
- * This object
- */
- addTokens: function () {
- for (var i = 0, len = arguments.length; i < len; ++i)
- {
- var arg = arguments[i];
- this.addToken(arg[0], arg[1]);
- }
-
- return this;
- },
-
- _jsx_RegExp: jsx.object.getFeature(jsx, "regexp", "RegExp"),
-
- _RegExp: jsx.object.getFeature(jsx, "regexp", "RegExp") || RegExp,
-
- /**
- * Compiles <code>_expression</code> from token patterns
- *
- * @protected
- */
- _compile: (function () {
- var _jsx_RegExp;
- var _RegExp;
-
- return function () {
- var pattern = this._tokens.map(function (e) {
- return e.pattern.source ? e.pattern.source : e.pattern;
- });
-
- this._expression = new this._RegExp(
- "(" + pattern.join(")|(") + ")",
- "g" + (this._ignoreCase ? 'i' : '')
- + ((this._RegExp == this._jsx_RegExp && this._dotAll) ? 's' : ''));
-
- this._compiled = true;
-
- return this._expression;
- };
- }()),
-
- /**
- * Returns the next token in an input string.
- *
- * @return Token
- * The next token in the text assigned with this lexer
- */
- nextToken: function () {
- var tokens = this._tokens;
- var keepHistory = this.keepHistory;
- var match;
-
- if (this._longestMatchWins)
- {
- var token_matches = [];
- var max_match_len = 0;
- var max_index = -1;
- for (var index = tokens.length; index--;)
- {
- var token = tokens[index];
-
- /* match from where we left */
- match = this._jsx_RegExp
- ? this._jsx_RegExp.exec(token, this._text.substring(this._offset))
- : token.exec(this._text.substring(this._offset));
-
- if (match)
- {
- var token_match = token_matches[index] = match[0];
- var token_match_len = token_match.length;
- if (token_match_len > max_match_len)
- {
- max_match_len = token_match_len;
- max_index = index;
- }
- }
- }
-
- if (max_index > -1)
- {
- token = token_matches[max_index];
-
- if (token.match && keepHistory)
- {
- token = new token.constructor(token.pattern, token.type);
- }
-
- /* correct for offsetted search */
- match.index += this._offset;
- match.input = this._text;
-
- token.match = match;
- }
- }
- else
- {
- var expression = this._expression;
-
- if (!this._compiled)
- {
- expression = this._compile();
- }
-
- if (expression.source == "()")
- {
- jsx.throwThis(jsx.Error, "No tokens added");
- return null;
- }
-
- match = this._jsx_RegExp
- ? this._jsx_RegExp.exec(expression, this.text)
- : expression.exec(this.text);
-
- if (match)
- {
- for (var i = 1, len = match.length; i < len; ++i)
- {
- if (match[i])
- {
- token = tokens[i - 1];
-
- if (token.match && keepHistory)
- {
- token = new token.constructor(token.pattern, token.type);
- }
-
- token.match = match;
- break;
- }
- }
- }
- }
-
- if (match)
- {
- /* advance offset for next _longestMatchWins search */
- this._offset += match[0].length;
- }
-
- return token;
- },
-
- getIgnoreCase: function () {
- return this._ignoreCase;
- },
-
- setIgnoreCase: function (value) {
- value = !!value;
- if (value !== this._ignoreCase)
- {
- this._compiled = false;
- }
-
- this._ignoreCase = value;
- },
-
- getDotAll: function () {
- return this._dotAll;
- },
-
- setDotAll: function (value) {
- value = !!value;
- if (value !== this._dotAll)
- {
- this._compiled = false;
- }
-
- this._dotAll = value;
- },
-
- getExpression: function () {
- return this._expression;
- },
-
- getOffset: function () {
- return this._offset;
- },
-
- getTokens: function () {
- return this._tokens;
- }
-});
-
-/**
- * A <code>Parser</code> handles {@link #Token Tokens} in an input string
- * as provided by a {@link #Lexer}.
- *
- * @param lexer : Lexer
- * The lexer to be used by this parser
- * @property _lexer : Lexer
- * The lexer used by this parser
- */
-jsx.string.parser.Parser = function Parser (lexer) {
- if (!jsx.object.isInstanceOf(lexer, jsx.string.parser.Lexer))
- {
- jsx.warn("jsx.string.parser.Parser: saw " + lexer + ", expected jsx.string.parser.Lexer");
- }
-
- this._lexer = lexer;
-};
-
-jsx.string.parser.Parser.extend(null, {
- /**
- * Request the next token from the {@link #Lexer}.
- *
- * @memberOf jsx.string.parser.Parser#prototype
- * @return jsx.string.parser#Token
- */
- nextToken: function () {
- return this._lexer.nextToken();
- },
-
- /**
- * Parses an input string requesting the next token from a {@link #Lexer}.
- */
- parse: function () {
- var
- token,
- oLexer = this._lexer;
-
- while ((token = oLexer.nextToken()))
- {
- if (typeof token.parse == "function")
- {
- token.parse(oLexer);
- }
- else
- {
- this.parseToken(token);
- }
- }
- },
-
- /**
- * Parses an input token as provided by a {@link #Lexer}.
- *
- * @param token : Token
- */
- parseToken: function (token) {
- /* stub */
- }
-});
\ No newline at end of file
/live/string/parser-old.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/string/compat.js
===================================================================
--- live/string/compat.js (revision 509)
+++ live/string/compat.js (nonexistent)
@@ -1,65 +0,0 @@
-/**
- * <title>PointedEars' JSX: String Compatibility Layer</title>
- * @version $Id$
- * @requires object.js
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2002-2012 Thomas Lahn <js@PointedEars.de>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/*
- * Fix String.prototype.replace(..., Function) for Safari <= 2.0.2;
- * thanks to kangax <kangax@gmail.com>
- */
-if ("x".replace(/x/, function () { return "u"; }) != "u")
-{
- var jsx_string_compat_origReplace = String.prototype.replace;
- String.prototype.replace = function (searchValue, replaceValue) {
- if (jsx_object.isMethod(replaceValue))
- {
- if (searchValue.constructor == RegExp)
- {
- var
- result = this,
- m,
- i = searchValue.global ? -1 : 1;
-
- while (i-- && (m = searchValue.exec(result)))
- {
- result = result.replace(
- m[0],
- String(replaceValue.apply(null, m.concat(m.index, this))));
- }
-
- return result;
- }
-
- i = this.indexOf(searchValue);
- if (i > -1)
- {
- return replaceValue(String(searchValue), i, this);
- }
-
- return this;
- }
-
- return jsx_string_compat_origReplace.apply(this, arguments);
- };
-}
\ No newline at end of file
/live/string/compat.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/unicode-classifier
===================================================================
--- live/unicode-classifier (revision 509)
+++ live/unicode-classifier (nonexistent)
@@ -1,72 +0,0 @@
-#!/bin/bash
-
-awk -F ';' 'length($1) < 5 { print $3,$1; }' UnicodeData.txt | sort |
- awk '
- BEGIN {
- printf "jsx.RegExp.characterClasses = {"
- }
-
- {
- class = $1;
- codePoint = $2;
- num = strtonum("0x" codePoint);
-
-# printf "\n\nclass = \"%s\"\n", class
-# printf "prevClass = \"%s\"\n", prevClass
-# printf "codePoint = \"%s\"\n", codePoint
-# printf "prevCodePoint = \"%s\"\n", prevCodePoint
-# printf "num = \"%s\"\n", num
-# printf "startRange = \"%s\"\n", startRange
-
- if (class != prevClass)
- {
- if (num != prevNum + 1)
- {
- if (startRange)
- {
- printf "-\\u" prevCodePoint;
- }
- }
-
- if (prevClass)
- {
- printf "\",";
- }
-
- printf "\n " class ": \"\\u" codePoint;
-
- startRange = 0;
- }
- else
- {
- if (num != prevNum + 1)
- {
- if (startRange)
- {
- printf "-\\u" prevCodePoint;
-
- startRange = 0;
- }
-
- printf "\\u" codePoint;
- }
- else
- {
- startRange = 1
- }
- }
-
- prevClass = class;
- prevCodePoint = codePoint;
- prevNum = num;
- }
-
- END {
- if (startRange)
- {
- printf "-\\u" prevCodePoint;
- }
-
- printf "\"\n};";
- }'
-
/live/unicode-classifier
Property changes:
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: live/exception.js
===================================================================
--- live/exception.js (revision 509)
+++ live/exception.js (nonexistent)
@@ -1,146 +0,0 @@
-/**
- * @requires types.js
- */
-
-/**
- * Wrapper for a safer <code>try</code>...<code>catch</code>.
- *
- * Attempts to evaluate a value as a <i>StatementList</i>, and attempts
- * to evaluate another value as a <i>StatementList</i> if an exception
- * is thrown in the process. The argument identifiers may be used
- * in each value to refer to the used values; the <code>code</code>
- * word may be used to the refer to the entire constructed
- * <code>try</code>...<code>catch</code> string that is evaluated
- * as a <i>Program</i>.
- *
- * @param statements
- * Value to be evaluated as a <i>StatementList</i>.
- * Called if a <code>Function</code> object reference, converted
- * to string if not a string, and used as-is otherwise.
- * For compatibility, the <code>undefined</code> value
- * is evaluated like the empty string.
- * @param errorHandlers
- * Value to be evaluated as a <i>StatementList</i> in case of an
- * exception. Called if a <code>Function</code> object reference,
- * converted to string if not a string, and used as-is otherwise.
- * For compatibility, the <code>undefined</code> value
- * is evaluated like the empty string.
- * @return
- * The result of <code>statements</code>, or the result
- * of <code>errorHandlers</code> if an error occurred.
- * @author
- * Copyright (c) 2008
- * Thomas 'PointedEars' Lahn &lt;js@PointedEars.de&gt;
- * Distributed under the GNU GPL v3 and later.
- * @partof JSX:exception.js
- */
-function tryThis(statements, errorHandlers)
-{
- /**
- * @param s Value to be stringified
- * @return Stringified version of <code>s</code>
- */
- function stringify(s)
- {
- if (typeof s == "function")
- {
- s = "(" + s + ")()";
- }
- else if (typeof s == "undefined")
- {
- s = "";
- }
-
- return s;
- }
-
- statements = stringify(statements);
- errorHandlers = stringify(errorHandlers);
-
- var code = 'try { ' + statements + ' }'
- + 'catch (e) { ' + errorHandlers + ' }';
-
- return eval(code);
-}
-
-/**
- * Throws a qualified exception, including an execution context hint
- * if provided, followed by an error message.
- *
- * @param sErrorType : string
- * Identifier of the constructor for the error type
- * @param sMessage : string
- * Error message to be displayed
- * @param fContext : Callable
- * Optional callable object to specify the context
- * where the exception occurred.
- * @author
- * Copyright (c) 2008 Thomas 'PointedEars' Lahn <cljs@PointedEars.de>.
- * Distributed under the GNU GPL v3 and later.
- * @partof JSX:exception.js
- * @see JSX:types.js:isMethodType()
- */
-function throwException(sErrorType, sMessage, fContext)
-{
- if (isMethodType(typeof sErrorType) && sErrorType)
- {
- sErrorType = "(" + sErrorType + ")";
- }
-
- var sContext = "";
-
- if (isMethodType(typeof fContext) && fContext)
- {
- sContext = (String(fContext).match(/^\s*(function[^)]+\))/)
- || [0, null])[1];
- }
-
- var message = (sContext ? sContext + ': ' : '')
- + (sMessage ? String(sMessage).replace(/['"\\]/g, '\\$&') : '');
-
- var throwPrefix = ' throw new ' + sErrorType + '("' + message;
- eval(throwPrefix + '");');
-/*
- eval(
- 'try'
- + '{'
- // throw so that we can try obtaining a stack trace
- + throwPrefix + '");'
- + '}'
- + 'catch (e)'
- + '{'
- + ' var stack = e.stack;'
- + ' if (typeof stack == "string")'
- + ' {'
- // re-throw with stack trace if available
- + throwPrefix + '\\nStack trace:" + stack.split("\\n").reverse().slice(0, stack.length - 3).join("\\n"));'
- + ' }'
- + ' else'
- + ' {'
- + throwPrefix + '");'
- + ' }'
- + '}');
-*/
-}
-
-// first variant from math.js
-/*
-function throwException(e)
-{
- var supportsTry = false;
-
- _global.onerror = function()
- {
- this.onerror = null;
- return true;
- }
-
- eval('try { supportsTry = true; } catch (e2) {}');
-
- if (supportsTry)
- {
- eval('throw e;');
- _global.onerror();
- }
-}
-*/
\ No newline at end of file
Index: live/time.js
===================================================================
--- live/time.js (revision 509)
+++ live/time.js (nonexistent)
@@ -1,549 +0,0 @@
-/**
- * <title>PointedEars' JSX: Time Prototypes and Functions</title>
- *
- * WARNING: Refactoring in progress. Do not link to this resource.
- * Refer time.txt for general documentation.
- *
- * @requires string.js (for replaceText)
- * @deprecated requires enhancd2.js
- */
-/*
- * The original source file
- * _time.js/1.09/2003-10/time.js
- * contains a complete documentation written in JSdoc, see
- * <http://pointedears.de/scripts/JSdoc/> for details.
- *
- * Since JSdoc is not yet ready for production purposes to
- * generate a HTML documentation from these comments and
- * including them in the production version means about 25%
- * of code overhead, most of the JSdoc comments have been
- * stripped from this file.
- */
-
-var timeVersion = "1.09.2003.10";
-
-// Global variables
-
-var decimalSeparator = ".";
-var timeSeparator = ":";
-
-// Method definitions
-
-function SystemTime_decHours(iUnits)
-{
- (SystemTime_decHours.arguments.length > 0
- ? this.hours -= iUnits
- : this.hours--);
-
- if (this.dayCount)
- {
- while (this.hours < 0){this.hours += 24;}
- }
-
- return this.hours;
-}
-
-function SystemTime_decMinutes(iUnits)
-{
- (SystemTime_decMinutes.arguments.length > 0
- ? this.minutes -= iUnits
- : this.minutes--);
-
- while (this.minutes < 0)
- {
- this.decHours();
- this.minutes += 60;
- }
-
- return this.minutes;
-}
-
-function SystemTime_decSeconds(iUnits)
-{
- (SystemTime_decSeconds.arguments.length > 0
- ? this.seconds -= iUnits
- : this.seconds--);
-
- while (this.seconds < 0)
- {
- this.decMinutes();
- this.seconds += 60;
- }
-
- return this.seconds;
-}
-
-function SystemTime_decSec100(iUnits)
-{
- (SystemTime_decSec100.arguments.length > 0
- ? this.sec100 -= iUnits
- : this.sec100--);
-
- while (this.sec100 < 0)
- {
- this.decSeconds();
- this.sec100 += 1000;
- }
-
- return this.sec100;
-}
-
-function SystemTime_incHours(iUnits)
-{
- (SystemTime_incHours.arguments.length > 0
- ? this.hours += iUnits
- : this.hours++);
-
- if (this.dayCount)
- {
- while (this.hours > 23){this.hours -= 24;}
- }
-
- return this.hours;
-}
-
-function SystemTime_incMinutes(iUnits)
-{
- (SystemTime_incMinutes.arguments.length > 0
- ? this.minutes += iUnits
- : this.minutes++);
-
- while (this.minutes > 59)
- {
- this.incHours();
- this.minutes -= 60;
- }
-
- return this.minutes;
-}
-
-function SystemTime_incSeconds(iUnits)
-{
- (SystemTime_incSeconds.arguments.length > 0
- ? this.seconds += iUnits
- : this.seconds++);
-
- while (this.seconds > 59)
- {
- this.incMinutes();
- this.seconds -= 60;
- }
-
- return this.seconds;
-}
-
-function SystemTime_incSec100(iUnits)
-{
- (SystemTime_incSec100.arguments.length > 0
- ? this.sec100 += iUnits
- : this.sec100++);
-
- while (this.sec100 > 999)
- {
- this.incSeconds();
- this.sec100 -= 1000;
- }
-
- return this.sec100;
-}
-
-function SystemTime_fromData(iHours, iMinutes, iSeconds, iSec100, bDayCount)
-{
- var argnum = SystemTime_fromString.arguments.length;
-
- if (argnum > 0)
- {
- this.hours = Math.floor(Math.abs(Number(iHours)));
- if (argnum > 1)
- {
- this.minutes = Math.floor(Math.abs(Number(iMinutes)));
- if (argnum > 2)
- {
- this.seconds = Math.floor(Math.abs(Number(iSeconds)));
- if (argnum > 3)
- {
- this.sec100 = Math.floor(Math.abs(Number(iSec100)));
- if (argnum > 4){this.dayCount = bDayCount;}
- }
- }
- }
- return true;
- }
-
- return false;
-}
-
-function SystemTime_fromString(s)
-{
- var timeSep = s.split(timeSeparator);
-
- if (timeSep > 0)
- { // if 1 or more time separator, first number is considered to be hours
- var sep1 = s.indexOf(timeSeparator);
- this.hours = Number(s.substring(0, sep1 - 1)); // Extract hours
- // this.
- if (timeSep > 1)
- {
-
- }
- }
-
- return this;
-}
-
-function SystemTime_toString(bShowHours, bShowSeconds, bShowSec100)
-{
- var sSec100 = String(this.sec100);
- while (sSec100.length < 3){sSec100 = "0" + sSec100;}
-
- var sSeconds = String(this.seconds);
- if (this.seconds < 10){sSeconds = "0" + sSeconds;}
-
- var sMinutes = String(this.minutes);
- if (this.minutes < 10){sMinutes = "0" + sMinutes;}
-
- var sHours = String(this.hours);
- if (this.hours < 10){sHours = "0" + sHours;}
-
- var argnum = SystemTime_toString.arguments.length;
- var result =
- (argnum > 0 && bShowHours
- ? sHours + timeSeparator
- : "")
- + sMinutes
- + (argnum > 1 && bShowSeconds
- ? timeSeparator + sSeconds
- : "")
- + (argnum > 2 && bShowSec100
- ? decimalSeparator + sSec100
- : "");
-
- return result;
-}
-
-// Prototype definition
-
-function SystemTime(iHours, iMinutes, iSeconds, iSec100, bDayCount)
-{
- var argnum = SystemTime.arguments.length;
-
- this.hours =
- (argnum > 0
- ? Number(iHours)
- : 0);
- this.minutes =
- (argnum > 1
- ? Number(iMinutes)
- : 0);
- this.seconds =
- (argnum > 2
- ? Number(iSeconds)
- : 0);
- this.sec100 =
- (argnum > 3
- ? Number(iSec100)
- : 0);
- this.dayCount =
- (argnum > 4
- ? bDayCount
- : false);
-
- this.decHours = SystemTime_decHours;
- this.decMinutes = SystemTime_decMinutes;
- this.decSeconds = SystemTime_decSeconds;
- this.decSec100 = SystemTime_decSec100;
- this.incHours = SystemTime_incHours;
- this.incMinutes = SystemTime_incMinutes;
- this.incSeconds = SystemTime_incSeconds;
- this.incSec100 = SystemTime_incSec100;
- this.fromData = SystemTime_fromData;
- this.fromString = SystemTime_fromString;
- this.toString = SystemTime_toString;
-}
-
-function TZdescr(iGMToffsetMins, sDescr)
-{
- this.iGMToffsetMins = iGMToffsetMins || 0;
- this.sDescr = sDescr || "";
-}
-
-function DateNames_getTZdescr(iGMToffsetMins)
-{
- for (var i = 0; i < this.aTZdescr.length; i++)
- {
- if (this.aTZdescr[i].iGMToffsetMins == iGMToffsetMins)
- {
- return this.aTZdescr[i].sDescr;
- }
- }
-
- return "";
-}
-
-function DateNames(
- aaShortWeekdayNames,
- aaMedWeekdayNames,
- aaLongWeekdayNames,
- aaShortMonthNames,
- aaMedMonthNames,
- aaLongMonthNames,
- aaTZdescr)
-{
- var iArgNum = DateNames.arguments.length;
- this.aShortWeekdayNames =
- aaShortWeekdayNames || new Array(7);
- this.aMedWeekdayNames =
- aaMedWeekdayNames || new Array(7);
- this.aLongWeekdayNames =
- aaLongWeekdayNames || new Array(7);
- this.aShortMonthNames =
- aaShortMonthNames || new Array(12);
- this.aMedMonthNames =
- aaMedMonthNames || new Array(12);
- this.aLongMonthNames =
- aaLongMonthNames || new Array(12);
- this.aTZdescr =
- aaTZdescr || new Array();
- this.getTZdescr = DateNames_getTZdescr;
-}
-
-var cDateLblOpen = "_"; // A unique date label begins with this
-var cDateLblClose = "_"; // A unique date label ends with this
-
-function getDateFmt(dDate, sFormat, oDateNames)
-{
- var iArgNum = getDateFmt.arguments.length;
- if (iArgNum < 1)
- {
- return false;
- }
- if (iArgNum < 2 || sFormat.length == 0)
- {
- return String(dDate);
- }
-
- var ooDateNames;
- if (iArgNum < 3){// Default (english) weekdays, month labels and timezone descriptions
- oDateNames =
- new DateNames(
- new Array("Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"),
- new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"),
- new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
- "Friday", "Saturday"),
- new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
- "Sep", "Oct", "Nov", "Dec"),
- new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
- "Sep", "Oct", "Nov", "Dec"),
- new Array("January", "February", "March", "April", "May", "June",
- "July", "August", "September", "October", "November", "December"),
- new Array(
- new TZdescr(-60, "WET"),
- new TZdescr(0, "GMT"),
- new TZdescr(60, "CET"),
- new TZdescr(120, "CEST/EET")));}
-
- var sShortWeekday = oDateNames.aShortWeekdayNames[dDate.getDay()];
- var sMedWeekday = oDateNames.aMedWeekdayNames[dDate.getDay()];
- var sLongWeekday = oDateNames.aLongWeekdayNames[dDate.getDay()];
- var sShortMonth = oDateNames.aShortMonthNames[dDate.getMonth()];
- var sMedMonth = oDateNames.aMedMonthNames[dDate.getMonth()];
- var sLongMonth = oDateNames.aLongMonthNames[dDate.getMonth()];
-
- var iYear = dDate.getYear();
- if (iYear < 1000){iYear += 1900;}
-
- var sLongYear =
- (dDate.getFullYear
- ? String(dDate.getFullYear())
- : String(iYear));
- var sShortYear = sLongYear.substr(sLongYear.length - 2, 2);
- var sMonth = String(dDate.getMonth() + 1);
- var sDay = String(dDate.getDate());
- var sHours = String(dDate.getHours());
- var sMins = String(dDate.getMinutes());
- var sSecs = String(dDate.getSeconds());
- var sSecs1000;
- if (dDate.getMilliseconds){sSecs1000 = String(dDate.getMilliseconds());} else {sSecs1000 = "0";}
- var sTZmins = String(-dDate.getTimezoneOffset());
- var iTZhours = Math.floor(-dDate.getTimezoneOffset() / 60);
- var iTZmins = ((-dDate.getTimezoneOffset() / 60) + iTZhours) * 60;
- var sTZhoursMins =
- String(iTZhours) + ":" + ((iTZmins < 10) ? "0" : "") + String(iTZmins);
- var sTZhours2Mins =
- ((iTZhours < 10) ? "0" : "")
- + String(iTZhours)
- + ":"
- + ((iTZmins < 10) ? "0" : "")
- + String(iTZmins);
- var sTZdescr = oDateNames.getTZdescr(-dDate.getTimezoneOffset());
-
- sFormat =
- replaceText(sFormat, cDateLblOpen + "yyyy" + cDateLblClose, sLongYear);
- sFormat =
- replaceText(sFormat, cDateLblOpen + "yy" + cDateLblClose, sShortYear);
- sFormat =
- replaceText(sFormat, cDateLblOpen + "MMMM" + cDateLblClose, sLongMonth);
- sFormat =
- replaceText(sFormat, cDateLblOpen + "MMM" + cDateLblClose, sMedMonth);
- sFormat =
- replaceText(sFormat, cDateLblOpen + "MM" + cDateLblClose, sShortMonth);
- sFormat =
- replaceText(
- sFormat,
- cDateLblOpen + "0M" + cDateLblClose,
- ((sMonth.length < 2) ? "0" + sMonth : sMonth));
- sFormat = replaceText(sFormat, cDateLblOpen + "M" + cDateLblClose, sMonth);
- sFormat =
- replaceText(sFormat, cDateLblOpen + "dddd" + cDateLblClose, sLongWeekday);
- sFormat =
- replaceText(sFormat, cDateLblOpen + "ddd" + cDateLblClose, sMedWeekday);
- sFormat =
- replaceText(sFormat, cDateLblOpen + "dd" + cDateLblClose, sShortWeekday);
- sFormat =
- replaceText(
- sFormat,
- cDateLblOpen + "0d" + cDateLblClose,
- ((sDay.length < 2) ? "0" + sDay : sDay));
- sFormat = replaceText(sFormat, cDateLblOpen + "d" + cDateLblClose, sDay);
- sFormat =
- replaceText(
- sFormat,
- cDateLblOpen + "hh" + cDateLblClose,
- ((sHours.length < 2) ? "0" + sHours : sHours));
- sFormat = replaceText(sFormat, cDateLblOpen + "h" + cDateLblClose, sHours);
- sFormat =
- replaceText(
- sFormat,
- cDateLblOpen + "mm" + cDateLblClose,
- ((sMins.length < 2) ? "0" + sMins : sMins));
- sFormat = replaceText(sFormat, cDateLblOpen + "m" + cDateLblClose, sMins);
- sFormat =
- replaceText(
- sFormat,
- cDateLblOpen + "ss" + cDateLblClose,
- ((sSecs.length < 2) ? "0" + sSecs : sSecs));
- sFormat =
- replaceText(
- sFormat,
- cDateLblOpen + "SSS" + cDateLblClose,
- ((sSecs1000.length < 3) ? "0" : "")
- + ((sSecs1000.length < 2) ? "0" : "")
- + sSecs1000);
- sFormat =
- replaceText(
- sFormat,
- cDateLblOpen + "SS" + cDateLblClose,
- (sSecs1000.length < 3 ? "0" : "")
- + (sSecs1000.length < 2 ? "0" : "")
- + sSecs1000);
- sFormat = replaceText(sFormat, cDateLblOpen + "S" + cDateLblClose, sSecs1000);
- sFormat =
- replaceText(sFormat, cDateLblOpen + "TTTTT" + cDateLblClose, sTZdescr);
- sFormat =
- replaceText(sFormat, cDateLblOpen + "TTTT" + cDateLblClose, sTZhours2Mins);
- sFormat =
- replaceText(sFormat, cDateLblOpen + "TTT" + cDateLblClose, sTZhoursMins);
- sFormat =
- replaceText(
- sFormat,
- cDateLblOpen + "TT" + cDateLblClose,
- (iTZmins < 10
- ? "0" + iTZmins
- : String(iTZmins)));
- sFormat =
- replaceText(sFormat, cDateLblOpen + "T" + cDateLblClose, String(iTZmins));
-
- return sFormat;
-}
-
-// German weekdays, month labels and timezone descriptions
-var oDateNames_de =
- new DateNames(
- new Array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"),
- new Array("Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"),
- new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag",
- "Freitag", "Samstag"),
- new Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug",
- "Sep", "Okt", "Nov", "Dez"),
- new Array("Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug",
- "Sep", "Okt", "Nov", "Dez"),
- new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli",
- "August", "September", "Oktober", "November", "Dezember"),
- new Array(
- new TZdescr(-60, "WEZ"),
- new TZdescr(0, "GMT"),
- new TZdescr(60, "MEZ"),
- new TZdescr(120, "MESZ/OEZ")));
-
-function isValidDate(iYear, iMonth, iDate)
-{
- var
- d = new Date(iYear, iMonth, iDate), // create new Date object
- y = 0;
-
- if (d)
- {
- y =
- (d.getFullYear // prefer 4-digit year
- ? d.getFullYear()
- : d.getYear());
- if (!d.getFullYear && y < 1900){y += 1900;}
- }
-
- /*
- * If no Date object exists or if the properties of the object differ
- * from the passed arguments, the date was not valid (out of range,
- * e.g. not paying attention to leap years.)
- */
- return (
- d && y == iYear && d.getMonth() == iMonth && d.getDate() == iDate);
-}
-
-/**
- * Computes the dates when it is switched to and from Daylight Saving Time
- *
- * @param {int} iYear
- * The year for which DST change dates should be computed. The default
- * is the current year.
- * @return Array
- */
-function getDSTChangeDates(iYear)
-{
- var result = [];
-
- /* Date when it is switched to DST */
- var
- year = iYear || new Date().getFullYear(),
- dLeft = new Date(year, 0, 1),
- dRight = new Date(new Date(year + 1, 0, 1) - 1);
-
- /* See if there is any change in time zone at all */
- while (dRight > +dLeft + 1
- && dLeft.getTimezoneOffset() == dRight.getTimezoneOffset())
- {
- dRight = new Date(Math.floor((+dLeft + +dRight) / 2));
- }
-
- if (dLeft.getTimezoneOffset() == dRight.getTimezoneOffset())
- {
- return [null, null];
- }
-
- while (dRight > +dLeft + 1)
- {
- console.log("outer: ", dLeft, dRight);
- while (dLeft.getTimezoneOffset() != dRight.getTimezoneOffset())
- {
- var lastRight = dRight;
- dRight = new Date(Math.floor((+dLeft + +dRight) / 2));
- console.log("inner: ", dLeft, dRight);
- }
-
- dLeft = dRight;
- dRight = lastRight;
- }
-
- result.push(dRight);
-
- return result;
-}
\ No newline at end of file
Index: live/realtracker.js
===================================================================
--- live/realtracker.js (revision 509)
+++ live/realtracker.js (nonexistent)
@@ -1,63 +0,0 @@
-// RealTracker script as created by http://11.rtcode.com/netpoll/ifreev3i.asp?id=161409&amp;to=0
-// removed ads iframe and popup
-document.write('<table border="0" cellspacing="0" cellpadding="0"><tr><td>');
-
-function cv(s)
-{
- var c, r, i, b, e;
- c = document.cookie;
- r = '';
- i = c.indexOf(s);
- if (i > -1)
- {
- b = c.indexOf('=', i) + 1;
- e = c.indexOf(';', i);
- if (e < 0)
- {
- e = c.length;
- }
- r = c.substring(b, e);
- }
-
- return r;
-}
-
-function wc(n,v,t)
-{
- document.cookie = n + '=' + v + '; path=/; expires=' + t.toGMTString() + ';';
-}
-
-function td(n)
-{
- var s = '' + n;
- return(s.length < 2 ? '0' + s : s);
-}
-
-function fdy(n)
-{
- return (n < 100 ? '19' + n : '' + n);
-}
-
-var t, z, r, s, a, b, q, g, p, l;
-t = new Date();
-r = '&amp;tt=' + td(t.getMonth() + 1) + '%2F' + td(t.getDate()) + '%2F' + fdy(t.getYear()) + '+'
-+ td(t.getHours()) + '%3A' + td(t.getMinutes()) + '%3A' + td(t.getSeconds());
-t.setTime(t.getTime() + 5184000000);
-z = 'RTid';
-b = parseInt(2000000000 * Math.random())
-a = cv(z);
-if (a == '') a = b;
-wc(z, a, t);
-q = screen;
-r += '&amp;h=' + q.height +'&amp;w=' + q.width + '&amp;c=' + (q.pixelDepth ? q.pixelDepth : q.colorDepth)
-r += '&amp;cl=' + escape(window.location.href) + '&amp;d=' + b + '&amp;b=' + a + '&amp;ck=' + (cv(z) != '' ? 1 : 0) + '&amp;j=' + (navigator.javaEnabled() ? 1 : 0)
-g = document.referrer;
-r += '&ref=' + escape(g);
-s = '<a href="http://11.rtstats.com/netpoll/stat.asp?id=' + id
-+ '&amp;to=" target="_blank"><img'
-+ ' src="http://11.rtcode.com/netpoll/ifreev3.asp?id=' + id
-+ '&amp;to=&amp;js=1' + r + '" border="0" width="88" height="32"'
-+ '></' + 'a><br />';
-document.write(s);
-/*document.write('<IFRAME SRC="http://11.rtcode.com/netpoll/MHWAdLookup.asp?AdID=GNMde" WIDTH="88" HEIGHT="31" SCROLLING="no" FRAMEBORDER="0" FRAMESPACING="0" MARGINHEIGHT="0" MARGINWIDTH="0" BORDER="0" HSPACE="0" VSPACE="0"></IFRAME>\n');*/
-document.write('</td></tr></table>');
Index: live/enhanced.bak.js
===================================================================
--- live/enhanced.bak.js (revision 509)
+++ live/enhanced.bak.js (nonexistent)
@@ -1,981 +0,0 @@
-/* Original filename: enhanced.js
- *
- * <title>Level-1 Enhanced Website Features</title>
- * Part of PointedEars' JavaScript Extensions (JSX)
- * Copyright (c) 2001-2003 Thomas Lahn <enhanced.js@PointedEars.de>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License (GPL) for more details.
- *
- * You should have received a copy of the GNU GPL along with this
- * program (COPYING file); if not, go to [1] or write to the Free
- * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- *
- * [1] <http://www.gnu.org/licenses/licenses.html#GPL>
- *
- * Refer enhanced.htm file for general documentation.
- */
-
-var enhancedVersion = "1.29.2003.3b3+";
-var enhancedCopyright = "Copyright \xA9 1999-2002";
-var enhancedAuthor = "Thomas Lahn";
-var enhancedEmail = "PointedEars@gmx.de";
-var enhancedPath = "http://www.tu-ilmenau.de/~thla-in/scripts/";
-var enhancedDocURL = enhancedPath + "enhanced.htm";
-
-// Script exceptions
-
-function enhancedException(Msg)
-{
- alert(
- "enhanced.js "
- + enhancedVersion
- + "\n"
- + enhancedCopyright
- + " "
- + enhancedAuthor
- + " <"
- + enhancedEmail
- + ">\n\n"
- + Msg);
- return false;
-}
-
-function ENoBrowser()
-{
- return enhancedException(
- "This script is designed to be processed from a web browser only.");
-}
-
-function EInvalidArgNum(sFunctionName, iArg)
-{
- /* if (arguments.length < 2) iArg = "?";*/
- return enhancedException(
- sFunctionName
- + ": The user script did not pass the required number of arguments ("
- + iArg
- + ").\nRefer documentation in script file for correct function call.");
-}
-
-function EInvalidArg(sFunctionName, sArg)
-{
- return enhancedException(
- sFunctionName
- + ": The user script passed an invalid argument ("
- + sArg
- + ").\nRefer documentation in script file for correct function call.");
-}
-
-function getError(e)
-{
- var sError = e;
-
- if (e.name)
- sError += "\nName: " + e.name;
- if (e.number)
- sError += "\nCode: " + e.number;
- if (e.message)
- sError += "\nMessage: " + e.message;
- if (e.description)
- sError += "\nDescription: " + e.description;
- if (e.fileName)
- sError += "\nFilename: " + e.fileName;
-
- try
- {
- if (e.lineNumber)
- sError += "\nLine: " + e.lineNumber;
- }
- catch (e2)
- {
- sError += "\nLine: " + e2;
- }
-
- if (e.stack)
- sError += "\nStack:\n" + e.stack;
-
- return sError;
-}
-
-// Script features
-
-function isArray(value)
-{
- if (value.length)
- return true;
- else
- return false;
-}
-
-var CH_NBSP = unescape("%A0");
-
-function replaceText(sText, sReplaced, sReplacement, bForceLoop)
-{
- var result;
- var sNewText = sText;
- // alert(sText);
- if (sText)
- {
- if (sText.replace && !bForceLoop)
- {
- sReplaced = sReplaced.replace(/\\/g, "\\\\");
- /* Version 1.23.2002.4 bugfix: allows to replace \ with other
- strings, required for proper rxReplaced;
- Example (no quotes, no escaping):
- sReplaced (provided) "\\"
- sReplaced (evaluated) \
- sReplaced (replaced as formulated above) "\\\\"
- sReplaced (esc. in RegExp constructor) "\\\\"
- sReplaced (ev. in RegExp constructor) \\
- rxReplaced (with RegExp escaping) /\\/g
- rxReplaced (evaluated) all occurr. of \
- */
- var rxReplaced = new RegExp(sReplaced, "g");
- sText = sText.replace(rxReplaced, sReplacement);
-
- result = sText;
- }
- else
- {
- var i = sText.indexOf(sReplaced);
- if (i > -1)
- {
- sNewText = sText.substring(0, i);
- sNewText += sReplacement
- + replaceText(
- sText.substring(i + sReplaced.length),
- sReplaced,
- sReplacement);
- }
-
- result = sNewText;
- }
- }
- return result;
-}
-
-function trimLeft(s)
-{
- var iStart = 0, sResult = "";
-
- if (s != "")
- {
- var l = s.length - 1;
- for (i = 0; i < l; i++)
- {
- a = s.charAt(i);
- if ((a != " ") && (a != CH_NBSP))
- {
- iStart = i;
- break;
- }
- }
- var iRealLength = s.length;
- iRealLength += 1;
- sResult = s.substr(iStart, iRealLength);
- }
-
- return sResult;
-}
-
-function trimRight(s)
-{
- var iStop = 0, sResult = "";
-
- if (s != "")
- {
- for (i = (s.length - 1); i > 0; i--)
- {
- a = s.charAt(i);
- if ((a != " ") && (a != CH_NBSP))
- {
- iStop = i;
- iStop += 1;
- break;
- }
- }
- sResult = s.substr(0, iStop);
- }
-
- return sResult;
-}
-
-function trim(s)
-{
- var sResult = s; // version 1.06.2000.3 bugfix, formerly nullstring assigned
-
- if (s != "")
- {
- sResult = trimLeft(s);
- // direct processing via trimRight(trimLeft(...)) does not seem to work
- sResult = trimRight(sResult);
- }
-
- return sResult;
-}
-
-function LCaps(s)
-{
- return s.charAt(0).toUpperCase() + s.substr(1).toLowerCase();
-}
-
-function setStatus(sCaption)
-{
- window.status = sCaption;
- return true;
-}
-
-function stripTags(taggedStr)
-{
- var
- a = "",
- outOfTag = true,
- untaggedStr = "",
- l = taggedStr.length;
-
- for (var i = 0; i < l; i++)
- {
- a = taggedStr.charAt(i);
- if (outOfTag && (a == "<"))
- outOfTag = false;
- if (outOfTag)
- untaggedStr += a;
- if ((!outOfTag) && (a == ">"))
- outOfTag = true;
- }
-
- return untaggedStr;
-}
-
-function strCount(s, substr, bCaseSensitive)
-{
- var result = 0;
-
- if (!s || !substr)
- return -1;
- if (!bCaseSensitive)
- {
- if (s.toUpperCase)
- s = s.toUpperCase();
- if (substr.toUpperCase)
- substr = substr.toUpperCase();
- }
- if (window.RegExp)
- {
- var rxSub = new RegExp(substr, "g");
- if (s.match && rxSub)
- {
- result = s.match(rxSub);
- if (result && result.length)
- return result.length;
- else
- return 0;
- }
- }
- if (s.substr && substr.length)
- {
- for (var i = 0; i < s.length; i++)
- if (s.substr(i, substr.length) == substr)
- {
- result++;
- i += substr.length - 1;
- }
- return result;
- }
- else
- return -1;
-}
-
-var sLinkOutMsg_de =
- "Dieser Link ist offline nicht verfügbar.\n\n"
- + "Wenn Sie mit dem Internet verbunden sind, steht Ihnen die Seite online"
- + " zur Verfügung.\n\n"
- + "Möchten Sie jetzt eine Verbindung zu dieser Seite herstellen?";
-
-var sLinkOutMsg_us =
- "This link is not available offline.\n\n"
- + "If you are connected to the Internet, the website is available online.\n\n"
- + "Do you wish to connect to this website now?';"; -
-var sLinkOutMsg = sLinkOutMsg_de;
-
-function linkOut(sURL, sLink, bShowURL, aTarget, sWidth, sHeight, sOptions)
-{
- if (arguments.length < 1)
- {
- EInvalidArgNum("linkOut", 1);
- return false;
- }
-
- var arg = sLinkOutMsg;
- // version 1.05.2000.3 update, formerly bShowURL as 2nd argument; fixed problem with websites created earlier
- if (arguments.length < 3)
- bShowURL = true;
-
- if (((sURL != "") && (bShowURL == true))
- || ((arguments.length >= 2) && (sLink != "")))
- {
- var oldArg = arg;
- arg = "\n\n";
- arg += oldArg;
- }
-
- if ((sURL != "") && (bShowURL == true))
- {
- var oldArg = arg;
- arg = sURL;
- arg += oldArg;
- }
-
- if ((arguments.length >= 2) && (sLink != ""))
- {
- if ((sURL != "") && (bShowURL == true))
- {
- var oldArg = arg;
- arg = sLink;
- arg += "\n";
- arg += oldArg;
- }
- else
- {
- var oldArg = arg;
- arg = sLink;
- arg += oldArg;
- }
- }
-
- if (confirm(arg))
- {
- var oTarget = document;
- if ((arguments.length >= 4)
- && (aTarget != "")
- && (aTarget.toLowerCase() != "_self"))
- { // version 1.05.2000.3 update, formerly no nullstrings nor "_self" supported
- if (isNaN(aTarget))
- {
- if ((aTarget.toLowerCase() == "_new")
- || (aTarget.toLowerCase() == "_blank"))
- {
- popUp(sURL, sWidth, sHeight, sOptions);
- return;
- }
- else
- oTarget = parent.eval(aTarget).document;
- // and below: v1.09.2000.3 bugfix
- }
- else
- oTarget = parent.frames[aTarget].document;
- }
- oTarget.location = "";
- oTarget.location.href = sURL;
- }
-
- return false; // version 1.15.2000.11 update
-}
-
-function popUp(sURL, iWidth, iHeight, sOptions)
-{
- var sFeatures = "height=";
- sFeatures += String(iHeight);
- sFeatures += ",width=";
- sFeatures += String(iWidth);
- if (arguments.length > 3)
- {
- sFeatures += ",";
- sFeatures += sOptions;
- }
- var wndChild = window.open(sURL, null, sFeatures);
- return false;
-}
-
-// OpenChildWin(...) call redirected to popUp(...) for compatibility to previous versions
-
-function OpenChildWin(sURL, iWidth, iHeight, sOptions)
-{
- return popUp(sURL, iWidth, iHeight, sOptions);
-}
-
-function LoadFrame(sURL, targetFrame)
-{
- if (arguments.length < 2)
- {
- // Raise exception if required arguments are missing
- return EInvalidArgNum("LoadFrame", 2);
- }
- if (isNaN(targetFrame))
- {
- if (parent.eval(targetFrame))
- {
- parent.eval(targetFrame).location.href = sURL;
- return sURL;
- }
- else
- return targetFrame;
- }
- else
- {
- if (parent.frames[targetFrame])
- {
- parent.frames[targetFrame].location.href = sURL;
- return sURL;
- }
- else
- return targetFrame;
- }
-}
-
-var sDefaultInspectorPath = enhancedPath + "obj-insp.html";
-
-function noError()
-{
- this.onerror = null;
- return true;
-}
-
-function getObjInfo(aObject, aWhat, sStyle, sHeader, sFooter, sInspectorPath) {
- var sErrPrefix = "JSX:getObjInfo " + enhancedVersion + ": ";
- var sNoObj = "not an object";
- // alert("1: " + aObject + "[" + typeof aObject + "]");
- if (aObject) {
- /* check if `try {'...`} catch {'...`} finally {'...`}' is supported,
- do not guess object otherwise; Netscape 4.x workaround
- */
- tcf = false;
- window.onerror = noError; // JavaScript 1.0 compatible
- eval("try { tcf = false; } finally { tcf = true; };");
-// alert(aObject);
- window.onerror = null;
- var sObject = aObject;
- if (typeof aObject == "string") {
- if (tcf) {
- var bFailed = false;
- eval('\
- try { \
- // alert("2: " + aObject + "[" + typeof sObject + "]"); \n\
- aObject = eval(aObject); \
- } catch (e) { \
- // alert("3: " + sObject + "[" + typeof sObject + "]"); \n\
- var sObject = "window." + sObject; \
- try { \
- // alert("4: " + aObject + "[" + typeof aObject + "]"); \n\
- aObject = eval(sObject); \
- } catch (e) { \
- // alert("5: " + "[Not an object]"); \n\
- bFailed = true; \
- } \
- } \
- ');
- if (bFailed)
- return sErrPrefix + sObject + " is " + sNoObj + ".";
- }
- else {
- aObject = eval(aObject);
- if (!aObject)
- return (sErrPrefix + sObject + " is " + sNoObj + ".");
- // alert("6: " + "[Not an object]");
- }
- }
- // alert("7: " + aObject);
- } else{
- // alert("8: " + "[Not an object]");
- return (sErrPrefix + "[" + sNoObj + "]");
- }
- if (!aWhat) aWhat = ""; // v1.29.2002.10b3 bugfix
- var bShowProps = (aWhat && (!aWhat.test && aWhat.toUpperCase().indexOf("P") > -1));
- var bShowMethods = (aWhat && (!aWhat.test && aWhat.toUpperCase().indexOf("M") > -1));
- var bShowObjects = (aWhat && (!aWhat.test && aWhat.toUpperCase().indexOf("O") > -1));
- var bFormatAsArray = (sStyle && (sStyle.toUpperCase().indexOf("A") > -1));
- var bTextLineStyle = (sStyle && (sStyle.toUpperCase().indexOf("L") > -1));
- var bFormatAsLines = (sStyle && (sStyle.toUpperCase().indexOf("H") > -1));
- var bFormatAsTable = (sStyle && (sStyle.toUpperCase().indexOf("T") > -1));
- var bShowType = (sStyle && (sStyle.toUpperCase().indexOf("S") > -1));
- var bFormatAsHTML = (bFormatAsLines || bFormatAsTable);
-
- if (sHeader && (sHeader == "-"))
- sHeader = "";
- else if (!sHeader || (sHeader == "")) {
- sHeader = "";
- if (bShowObjects || bShowProps || bShowMethods) {
- if (bShowProps)
- sHeader = "Properties";
- else if (bShowObjects)
- sHeader = "Composed Objects";
- if (bShowMethods) {
- if (bShowObjects || bShowProps)
- sHeader += " and ";
- sHeader += "Methods";
- }
- } else
- sHeader = "Attributes";
- sHeader += " of " + (bFormatAsHTML ? '<code>' : '') + sObject
- + (aWhat.test ? ' matching ' + String(aWhat) : '') + (bFormatAsHTML ? '<\/code>' : '');
- }
- var sAttr =
- (bFormatAsTable ? '<table border="1" cellpadding="5" cellspacing="0">\n' : '')
- + ((sHeader != "") ?
- (bFormatAsTable ? '<tr><th align="left" colspan="' + (bShowType ? 3 : 2) + '">' : '')
- + sHeader
- + (bFormatAsHTML && bFormatAsLines ? "<br />\n" : (!bFormatAsHTML ? "\n__________________________________________________\n" : ""))
- + (bFormatAsTable ?
- ('<\/th><\/tr>\n<tr><th align="left">Name<\/th>'
- + (bShowType ? '<th align="left">Type<\/th>' : '')
- + '<th align="left">Value<\/th><\/tr>\n') : ''
- ) :
- "");
- var bCondition = false;
- var aAttributes = new Array();
- for (var Attribute in aObject) {
- if (!aWhat.test || aWhat.test(Attribute))
- aAttributes[aAttributes.length] = Attribute;
- }
- if (aAttributes.sort) // sort attributes lexically
- aAttributes.sort();
- if (bFormatAsArray) // return an array instead of text
- return aAttributes;
- for (var i = 0; i < aAttributes.length; i++) {
- var bCondition = false;
- var isError = false;
- if (tcf) // see above
- eval('\
- try { \
- if (aObject[aAttributes[i]]) \
- var attrValue = aObject[aAttributes[i]]; \
- else \
- var attrValue = eval("aObject." + aAttributes[i]); \
- var bMethod = (String(attrValue).toLowerCase().indexOf("function ") > -1); \
- } catch (e) { \
- var attrValue = "[" + e + "]"; \
- var bMethod = false; \
- isError = true; \
- } \
- ');
- else {
- if (aObject[aAttributes[i]])
- var attrValue = aObject[aAttributes[i]];
- else
- var attrValue = eval("aObject." + aAttributes[i]);
- var bMethod = (String(attrValue).toLowerCase().indexOf("function ") > -1);
- }
- var bProperty = !bMethod;
- var attrType = typeof attrValue;
- var bObject = (attrType == "object");
- if (aWhat && (aWhat != "") && (!aWhat.test))
- bCondition =
- (bProperty && bShowProps) || (bMethod && bShowMethods) || (bObject && bShowObjects);
- else
- bCondition = true;
- if (bCondition) {
- var s = ((isNaN(attrValue) || String(attrValue) == "")
- && !bObject && !isError) ? "\"" : "";
-
- var attrName = String(aAttributes[i]);
- var sAttrName = attrName;
- if (bFormatAsHTML) {
- sAttrName = "<code><b>" + attrName + "<\/b><\/code>";
- attrValue = replaceText(replaceText(String(attrValue), "<", "&lt;"), ">", "&gt;");
- }
- sAttr +=
- (bFormatAsTable ? '<tr valign="top"><td>' : '')
- + ((bObject && bFormatAsHTML) ?
- ("<a href='javascript:ObjectInspector(\"" + sObject + ")'>") : '')
- + sAttrName
- + (bObject && bFormatAsHTML ? '<\/a>' : '')
- + (bFormatAsTable ? '<\/td>' : "")
- + (bShowType ? (bFormatAsTable ? ('<td><code>' + attrType + '<\/code><\/td>') : (CH_NBSP + ":" + CH_NBSP + attrType)) : "")
- + (bFormatAsTable ? '<\/td><td><code>' : (CH_NBSP + "=" + CH_NBSP))
- + s + attrValue + s;
-// ("<a href='javascript:ObjectInspector(\'' + sObject + '[\"' + attrName + '\"]\'', \'' + aWhat + '\', \'' + sStyle +'\');"'
-// + ' !onclick="window.open(\''
-// + (sInspectorPath ? escape(sInspectorPath) : sDefaultInspectorPath)
-// + '?obj=' + escape(sObject) + "." + escape(attrName)
-// + '&what=' + escape(aWhat)
-// + '&style=' + escape(sStyle)
-// + '\', \'wndObjectInspector\', \'scrollbars=yes,resizable=yes\'); return false;"'
- if (bFormatAsHTML) {
- if (bFormatAsTable)
- sAttr += "<\/code><\/td><\/tr>\n";
- else
- sAttr += "<br />\n";
- } else if (bTextLineStyle)
- sAttr += "; ";
- else
- sAttr += "\n";
- }
- }
-
- switch (String(sFooter)) {
- case "-":
- sFooter = "";
- break;
-
- case "undefined":
- case "":
- case "null":
- if (bFormatAsHTML)
- sFooter = '<code><a href="' + enhancedDocURL + '" target="_blank" title="Show documentation for JSX:enhanced.js.">JSX:enhanced.js<\/a>:<a href="' + enhancedDocURL + '#getObjInfo" target="_blank" title="Show documentation for JSX:enhanced.js:getObjInfo(...).">getObjInfo<\/a>(...)<\/code><br>';
- else
- sFooter = "JSX:enhanced.js:getObjInfo(...)\n";
- sFooter += "Library version " + enhancedVersion;
- sFooter += (bFormatAsHTML ? "<br />" : "\n");
- sFooter += enhancedCopyright + (bFormatAsHTML ? "&nbsp;&nbsp;" : " ") + enhancedAuthor + " ";
- if (bFormatAsHTML) {
- sFooter = replaceText(sFooter, "©", "&copy;");
- sFooter += '&lt;<a href="mailto:Thomas%20\'PointedEars\'%20Lahn%20<' + enhancedEmail + '>" title="E-mail the author of this fabulous script ;-) E-mail client required.">' + enhancedEmail + '<\/a>&gt;'
- } else
- sFooter += "<" + enhancedEmail + ">"
- }
- if (sFooter != "") {
- sAttr += (bFormatAsHTML ? (bFormatAsTable ? '<tr>\n<td colspan="' + (bShowType ? 3 : 2) + '">' : '') : "\n__________________________________________________\n")
- + sFooter
- + (bFormatAsHTML ? (bFormatAsTable ? '<\/td>\n<\/tr>\n' : '<br>') : "");
- }
- if (bFormatAsTable) sAttr += '<\/table>';
- return sAttr;
-}
-
-var sInspectorVersion = "0.71";
-
-function ObjectInspector(sObject, aWhat, sStyle, sHeader, sFooter, iRecursionLevel) {
- var wInspector = window.open("enhanced.htm", "wndObjectInspector", "scrollbars=yes,resizable=yes");
- if (wInspector) {
- wInspector.document.open("text/html");
- var s = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"\n'
- + ' "http://www.w3.org/TR/html4/strict.dtd">\n'
- + '<html>\n'
- + ' <head>\n'
- + ' <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">\n'
- + ' <meta name="author" value="' + enhancedCopyright + ' ' + enhancedAuthor + ' (' + enhancedEmail + ')">\n'
- + ' <title>JavaScript ObjectInspector ' + sInspectorVersion + '<\/title>\n'
- + ' <script type="text/javascript">\n'
- + ' <!--\n'
- + ' ' + getObjInfo + '\n'
- + ' ' + arguments.callee + '\n'
- + ' //-->\n'
- + ' <\/script>\n'
- + ' <\/head>\n'
- + ' <body>\n'
- + ' <script type="text/javascript">\n'
- + ' <!--\n'
- + ' document.write(getObjInfo(' + sObject + ', "' + aWhat + '", "' + sStyle + '"));\n'
- + ' //-->\n'
- + ' <\/script>\n'
- + ' <\/body>\n'
- + '<\/html>';
- wInspector.document.write(s);
- wInspector.document.close();
- } else
- enhancedException("Error: Unable to create ObjectInspector window.\n\n"
- + "Disable popup blocking, or try alert(getObjInfo(...)) or"
- + " document.write(getObjInfo(...)) instead.");
-// return false;
-}
-
-function ObjectInspector2(sObject) {
- var sMsgClose_en = "Close Window"
- var sMsgClose_de = "Fenster schlie&szlig;en"
- var sInspector = "ObjectInspector " + sInspectorVersion;
- var sMsgClose = sMsgClose_en;
- var wImage = false;
- var iWidth = 640, iHeight = 480;
-
-// preset also window position and size in the case the temporary script below fails
- var sOptions = "toolbar=no,location=no,menubar=no,scrollbars=no,resizable=yes"
- + ",left=0,top=0,width=" + (iWidth) + ",height=" + (iHeight);
- var wInspector = window.open( "", null, sOptions );
- if (wInspector != null) {
- var dImage = wInspector.document.open("text/html");
- with(wInspector.document) {
- write(
-'<html>',
-
-'<head>',
-
-'<meta name="generator" value="JSX:enhanced.js:ObjectInspector(...) © 2001-2002 Thomas Lahn (webmaster@PointedEars.de)">',
-
-'<title>JavaScript ObjectInspector 0.7<\/title>',
-
-'<script language="JavaScript" type="text/javascript"><!--\n',
-
-'window.moveTo(screen.width/2 - 640/2, screen.height/2 - 480/2);\n',
-
-'function radioChkdVal(aForm, sRadioBtnGrpName) {',
- 'for (var i = 0; i < aForm.elements.length; i++) {',
- 'if ((aForm.elements[i].name == sRadioBtnGrpName) && aForm.elements[i].checked) return (aForm.elements[i].value);',
- '}',
- 'return "";',
-'}\n',
-
-'var CH_NBSP = unescape("%A0");\n',
-
-'function removeOptionsns(aSelect) {',
- 'if(aSelect && (aSelect.tagName) && (aSelect.tagName.toLowerCase() == "select"))',
- 'while(aSelect.options.length > 0) {',
- 'if (document.all)',
- 'aSelect.options.remove(aSelect.options.length - 1);',
- 'else {',
- 'aSelect.options[aSelect.options.length - 1] = null;',
- 'if (! document.all) history.go(0);',
- '}',
-
- '}',
-'}\n',
-
-'function addOption(aSelect, sText, iPosition) {',
- 'if(aSelect && (aSelect.tagName) && (aSelect.tagName.toLowerCase() == "select")) {',
- 'var newElement = new Option(sText);',
- 'if (document.all) {',
- 'if(arguments.length > 2)',
- 'aSelect.options.add(newElement, iPosition);',
- 'else\n',
- 'aSelect.options.add(newElement);',
- '} else {',
- 'aSelect.options[aSelect.options.length] = newElement;',
- 'aSelect.options[aSelect.options.length - 1].value = "";',
- '}',
- '}',
-'}\n',
-
-'function inspect(sObject, aWhat) {',
- 'if (sObject.toLowerCase().indexOf("document.all") > -1) {',
- 'alert ("Retrieval of the attributes of document.all canceled. This would have resulted in recursive listing and would have caused your browser to hang.");',
- 'up();',
- 'return false;',
- '}\n',
- 'var aObject = eval(sObject);',
- 'if(! aObject) {',
- 'alert (sObject + " is not an object.");',
- 'up();',
- 'return false;',
- '}\n',
- 'var bCondition = false;',
- 'removeOptions(document.forms[0].attr);',
- 'for(var Attribute in aObject) {',
- 'switch (Attribute) {',
- 'case "dataFormatAs":\n',
- 'case "clientInformation":\n',
- 'case "external":\n',
- 'case "navigator": break;\n',
- 'default:\n',
- 'var bCondition = false;',
- 'var bMethod = ( String(aObject[Attribute]).toLowerCase().indexOf("function") > -1 );',
- 'var bProperty = ! bMethod;',
- 'var bObject = ( String(aObject[Attribute]).toLowerCase().indexOf("object") > -1 );',
- 'if(arguments.length > 1) {',
- 'if(aWhat.toLowerCase() == "p")',
- 'bCondition = bProperty;',
- 'else if(aWhat.toLowerCase() == "m")',
- 'bCondition = bMethod;',
- 'else if(aWhat.toLowerCase() == "o")',
- 'bCondition = bObject;',
- 'else\n',
- 'bCondition = true;',
- '} else\n',
- 'bCondition = true;',
- 'if (bCondition) {',
-
- 'var sAttr = "[";',
- 'if (bObject)',
- 'sAttr += "O";',
- 'else if (bProperty)',
- 'sAttr += "P";',
- 'else if (bMethod)',
- 'sAttr += "M";',
- 'else\n',
- 'sAttr += "?";',
- 'sAttr += "]" + CH_NBSP + Attribute;',
- 'addOption(document.forms[0].attr, sItem);',
-
- '}',
- '}',
- '}',
-'}\n',
-
-'function up() {',
- 's = document.forms[0].identifier.value;',
- 'if (s.indexOf(".") > -1) {',
- 'document.forms[0].identifier.value = s.substr(0, s.lastIndexOf("."));',
- 'EditEnter();',
- '} else\n',
- 'alert("You are on the uppermost level of aggregation.");',
-'}\n',
-
-'function down(sAttrib) {',
- 'if (sAttrib.charAt(1) != "M") {',
- 'document.forms[0].identifier.value += "." + sAttrib.substr(sAttrib.lastIndexOf(CH_NBSP)+1);',
- 'EditEnter();',
- '}',
-'}\n',
-
-'function EditEnter() {',
- 'document.forms[0].val.value = "";',
- 'inspect(document.forms[0].identifier.value, radioChkdVal(document.forms[0], "attrib"));',
- 'return( false );',
-'}\n',
-
-'function showVal(sAttrib) {',
- 'if (sAttrib.charAt(1) != "M") {',
- 'var attrValue = eval(document.forms[0].identifier.value + "." + sAttrib.substr(sAttrib.lastIndexOf(CH_NBSP)+1));',
- 'var s = ( ( isNaN(attrValue) || (String(attrValue) == "") )',
- '&& ( String(attrValue).indexOf("object") < 0 ) ) ? "\\"" : "";',
-
- 'document.forms[0].val.value = s + attrValue + s;',
- '} else\n',
- 'document.forms[0].val.value = "";',
-'}',
-
-'//-->\n<\/script>',
-
-'<style type="text/css"><!--\n',
-
-'.bold { font-weight: bold; }',
-'.fixed { font-family: Lucida Console, Courier New, Courier; }',
-'hr { position: relative; left:-10px; width:100%; }',
-
-'//-->\n<\/style>',
-
-'<\/head>',
-'<body bgcolor="#d8dcd8" text="#000000">',
-'<div style="position:absolute; top:0px; left:0px;">',
-'<div style="background-color:#ffffff; width:101%; text-indent:10px; border-width: 1px; border-style: inset;"><h1>JavaScript ObjectInspector 0.7<\/h1>',
-'<p style="position:relative; top:-10px;">Copyright &copy; 2001 Thomas Lahn (<a href="mailto:webmaster@PointedEars.de">webmaster@PointedEars.de<\/a>)<\/p><\/div>',
-'<div style="position:relative; left:10px;">',
-'<form onSubmit="return EditEnter();">',
-'<p><span class="bold">Object: <\/span><input type="text" size=40 value="', ((arguments.length > 0) ? sObject : 'window'),
-'" name="identifier"> <input type="submit" value="Apply" id="btApply"> <input type="button" value="Up" onClick=\'up();\'><br>',
-'<span class="bold">Attributes to retrieve: <\/span><nobr><input name="attrib" value="" type="radio" checked lang="en-us" dir="ltr" onClick=\'EditEnter();\'>All<\/nobr> <nobr><input name="attrib" value="p" type="radio" lang="en-us" dir="ltr" onClick=\'EditEnter();\'>All&nbsp;[P]roperties<\/nobr> <nobr><input name="attrib" value="o" type="radio" lang="en-us" dir="ltr" onClick=\'EditEnter();\'>Composed&nbsp;[O]bjects<\/nobr> <nobr><input name="attrib" value="m" type="radio" lang="en-us" dir="ltr" onClick=\'EditEnter();\'>[M]ethods<\/nobr><\/p>',
-'<hr size=1 noshade>',
-'<table border=0 cellspacing=5 cellpadding=0 width="100%">',
-'<tr valign="top">',
- '<td width="50%" class="bold">Attribute:<\/td>',
- '<td class="bold">Value:<\/td><\/tr>',
-'<tr valign="top">',
- '<td><select size=13 name="attr" class="fixed" style="width:100%;" onChange=\'showVal(this.options[this.options.selectedIndex].text);\' onDblClick=\'if (this.options.selectedIndex > -1) down(this.options[this.options.selectedIndex].text);\'><\/select><\/td>',
- '<td><textarea rows=13 cols=40 name="val" class="fixed"><\/textarea><\/td><\/tr>',
-'<\/table>',
-'<hr size=2>',
-'<input type="button" value="Exit" onClick="window.close();">',
-'<\/form>',
-'<script language="JavaScript" type="text/javascript"><!--\n',
- 'EditEnter();',
-'//--><\/script><\/div>',
-'<\/div>',
-'<\/body>',
-'<\/html>');
- close();
- }
- if(wInspector.opener) wInspector.opener.blur();
- wInspector.focus();
- }
- return(false);
-}
-
-function ObjectInspector3(sRoot) {
- var s =
- '<script src="../enhanced.js" type="text/javascript"><\/script>\n' +
- '<script src="../dhtml.js" type="text/javascript"><\/script>\n' +
- '<script src="../search.js" type="text/javascript"><\/script>\n' +
- '<script type="text/javascript" language="JavaScript">\n <!--\n' +
- ' var s = new TSearchStr(location.search);\n' +
- ' var sRoot = "' + (sRoot ? sRoot : 'window') + '";\n' +
- ' if (s.hasValue("object"))\n' +
- ' sRoot = s.getValue("object");\n\n' +
-
- ' function ExpandCollapse(s, o2) {\n' +
- ' var o = getElem("id", s);\n' +
- ' if (o && o.style && (typeof o.style.display != "undefined")) {\n' +
- ' if (o.style.display == "none") {\n' +
- ' o.style.display = "";\n' +
- ' o2.innerHTML = "[-]";\n' +
- ' } else {\n' +
- ' o.style.display = "none";\n' +
- ' o2.innerHTML = "[+]";\n' +
- ' }\n' +
- ' }\n' +
- ' return false;\n' +
- ' }\n\n' +
-
- ' function writeProps(s) {\n' +
- ' var o = eval(s);\n' +
- ' var s2 = s;\n' +
- ' var iLastDot = s2.lastIndexOf("[");\n' +
- ' if (iLastDot < 0) iLastDot = s2.lastIndexOf(".");\n' +
- ' var sParent = s.substring(0, iLastDot);\n' +
- ' var sLoc = "";\n' +
- ' if (window.opera) {\n' +
- ' sLoc = String(location);\n' +
- ' var iQuery = sLoc.indexOf("?");\n' +
- ' if (iQuery < 0) iQuery = sLoc.length;\n' +
- ' sLoc = sLoc.substring(0, iQuery);\n' +
- ' }\n' +
- ' if (iLastDot >= 0)\n' +
- " s2 = '<a href=\"' + sLoc + '?object=' + sParent + '\">' + sParent + '<\\/a>' + s.substr(iLastDot);\n" +
- ' document.write("<b>" + s2 + "<\\/b> = " + o + "\\n");\n' +
- ' var a = new Array();\n' +
- ' var bShowLoc = true;\n' +
- ' var bShowDoc = true;\n' +
- ' var bShowNavi = true;\n' +
- ' var bShowItems = true;\n' +
- ' for (var Attr in o) {\n' +
- ' a[a.length] = Attr;\n' +
- ' if (Attr == "location") bShowLoc = false;\n' +
- ' if (Attr == "document") bShowDoc = false;\n' +
- ' if (Attr == "navigator") bShowNavi = false;\n' +
- ' if (Attr == "0") bShowItems = false;\n' +
- ' }\n' +
- ' if ((s == "window") && bShowLoc) a[a.length] = "location";\n' +
- ' if ((s == "window") && bShowDoc) a[a.length] = "document";\n' +
- ' if ((s == "window") && bShowNavi) a[a.length] = "navigator";\n' +
- ' if (o.length && bShowItems) {\n' +
- ' for (var i = 0; i < o.length; i++)\n' +
- ' a[a.length] = i;\n' +
- ' }\n' +
- ' if (a.sort) // sort attributes lexically\n' +
- ' a.sort();\n' +
- ' for (var i = 0; i < a.length; i++) {\n' +
- ' var val = replaceText(replaceText(String(o[a[i]]), "<", "&lt;"), ">", "&gt;");\n' +
- ' var t = typeof o[a[i]];\n' +
- ' if (t == "boolean")\n' +
- " val = '<a href=\"#\" title=\"Click to toggle value\" onclick=\"try {' + s + '.' + a[i] + '=' + !o[a[i]] + '; location.reload() } catch(e) { alert(\'Unable to toggle property value. Maybe there is no setter for this property.\') }; return false\">' + val + '<\\/a>';\n" +
- ' if (t == "string")\n' +
- " val = '\"' + val + '\"';\n" +
- ' if ((String(o[a[i]]).indexOf("\\n") >= 0) || (String(o[a[i]]).length > 72))\n' +
- " val = \"<a href='#'\"" +
- ' + " onclick=\"return ExpandCollapse(\'span" + i + "\', this)\"' +
- " + ' style=\"text-decoration:none\">' + (!window.opera ? '[+]' : '')" +
- " + '<\\/a> <span ' + (!window.opera ? 'style=\"display:none\" ' : '')" +
- " + 'id=\"span' + i + '\">' + val + '<\\/span>';\n" +
- ' document.write(" <b>."' +
- " + (((t == 'object') || ((t == 'function') && window.opera)) && o[a[i]] ? ('<a href=\"' + sLoc + '?object=' + s + '[\'' + a[i] + '\']\">') : '') + a[i] + (((t == 'object') || ((t == 'function') && window.opera)) ? '<\\/a>' : '') + '<\\/b> : '" +
- ' + t + " = " + val + "\\n");\n' +
- ' }\n' +
- ' }\n' +
- ' \/\/-->\n' +
- '<\/script>\n' +
- "<h1>PointedEars' ObjectInspector 0.8<\/h1>" +
- '<p style="font-size:small">Copyright &copy; 2003 Thomas Lahn &lt;<a href="mailto:obj-insp@PointedEars.de">obj-insp@PointedEars.de<\/a>&gt;<\/p>\n' +
- '<hr>\n' +
- '<script type="text/javascript" language="JavaScript">\n <!--\n' +
- ' s = \'<form action="">\\n\'\n' +
- ' + \' Object: <input name="object" value="\' + sRoot + \'" size="\' + ((sRoot.length > 20) ? sRoot.length : 20) + \'">\\n\'\n' +
- ' + \' <input type="submit" value="Inspect">\\n\'\n' +
- ' + \'<\/form>\\n\'\n' +
- ' document.write(s);\n' +
- ' document.write(\'<pre>\');\n' +
- ' writeProps(sRoot);\n' +
- ' document.write(\'<\/pre>\');\n' +
- ' \/\/-->\n' +
- '<\/script>';
- return s;
-}
-
-if(! document)
- ENoBrowser(); // Raise exception if not processed from a web browser
-
Index: live/.settings/org.eclipse.wst.validation.prefs
===================================================================
--- live/.settings/org.eclipse.wst.validation.prefs (revision 509)
+++ live/.settings/org.eclipse.wst.validation.prefs (nonexistent)
@@ -1,8 +0,0 @@
-DELEGATES_PREFERENCE=delegateValidatorList
-USER_BUILD_PREFERENCE=enabledBuildValidatorList
-USER_MANUAL_PREFERENCE=enabledManualValidatorList
-USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.402.v201301291945
-eclipse.preferences.version=1
-override=true
-suspend=false
-vf.version=3
/live/.settings/org.eclipse.wst.validation.prefs
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/.settings/org.eclipse.wst.jsdt.core.prefs
===================================================================
--- live/.settings/org.eclipse.wst.jsdt.core.prefs (revision 509)
+++ live/.settings/org.eclipse.wst.jsdt.core.prefs (nonexistent)
@@ -1,321 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.wst.jsdt.core.compiler.codegen.inlineJsrBytecode=disabled
-org.eclipse.wst.jsdt.core.compiler.codegen.targetPlatform=1.2
-org.eclipse.wst.jsdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.wst.jsdt.core.compiler.compliance=1.4
-org.eclipse.wst.jsdt.core.compiler.debug.lineNumber=generate
-org.eclipse.wst.jsdt.core.compiler.debug.localVariable=generate
-org.eclipse.wst.jsdt.core.compiler.debug.sourceFile=generate
-org.eclipse.wst.jsdt.core.compiler.doc.comment.support=enabled
-org.eclipse.wst.jsdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.wst.jsdt.core.compiler.problem.deprecation=warning
-org.eclipse.wst.jsdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.wst.jsdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.wst.jsdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.wst.jsdt.core.compiler.problem.duplicateLocalVariables=warning
-org.eclipse.wst.jsdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.wst.jsdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.wst.jsdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.wst.jsdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.wst.jsdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.wst.jsdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadoc=warning
-org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadocTags=enabled
-org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
-org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
-org.eclipse.wst.jsdt.core.compiler.problem.invalidJavadocTagsVisibility=default
-org.eclipse.wst.jsdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.looseVarDecleration=warning
-org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocComments=warning
-org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
-org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocCommentsVisibility=default
-org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocTags=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
-org.eclipse.wst.jsdt.core.compiler.problem.missingJavadocTagsVisibility=default
-org.eclipse.wst.jsdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.wst.jsdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.nullReference=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.optionalSemicolon=warning
-org.eclipse.wst.jsdt.core.compiler.problem.parameterAssignment=warning
-org.eclipse.wst.jsdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.potentialNullReference=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.undefinedField=warning
-org.eclipse.wst.jsdt.core.compiler.problem.undocumentedEmptyBlock=warning
-org.eclipse.wst.jsdt.core.compiler.problem.uninitializedGlobalVariable=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.uninitializedLocalVariable=warning
-org.eclipse.wst.jsdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.wst.jsdt.core.compiler.problem.unresolvedFieldReference=error
-org.eclipse.wst.jsdt.core.compiler.problem.unresolvedMethodReference=error
-org.eclipse.wst.jsdt.core.compiler.problem.unresolvedTypeReference=error
-org.eclipse.wst.jsdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.wst.jsdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.wst.jsdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.wst.jsdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.wst.jsdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.wst.jsdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.wst.jsdt.core.compiler.source=1.3
-org.eclipse.wst.jsdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.wst.jsdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,LOW
-org.eclipse.wst.jsdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,DEBUG
-org.eclipse.wst.jsdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_assignment=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_conditional_expression=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.wst.jsdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_method_declaration=18
-org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package=1
-org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field=0
-org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration=1
-org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method=1
-org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package=0
-org.eclipse.wst.jsdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations=0
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_block=next_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_block_in_case=next_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration=next_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_objlit_initializer=end_of_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch=next_line
-org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.wst.jsdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
-org.eclipse.wst.jsdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.wst.jsdt.core.formatter.comment.format_block_comments=true
-org.eclipse.wst.jsdt.core.formatter.comment.format_header=true
-org.eclipse.wst.jsdt.core.formatter.comment.format_html=true
-org.eclipse.wst.jsdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.wst.jsdt.core.formatter.comment.format_line_comments=true
-org.eclipse.wst.jsdt.core.formatter.comment.format_source_code=true
-org.eclipse.wst.jsdt.core.formatter.comment.indent_parameter_description=false
-org.eclipse.wst.jsdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.wst.jsdt.core.formatter.comment.line_length=72
-org.eclipse.wst.jsdt.core.formatter.compact_else_if=true
-org.eclipse.wst.jsdt.core.formatter.continuation_indentation=1
-org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_array_initializer=1
-org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_objlit_initializer=1
-org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.wst.jsdt.core.formatter.indent_empty_lines=true
-org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch=true
-org.eclipse.wst.jsdt.core.formatter.indentation.size=2
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_comma_in_objlit_initializer=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_objlit_initializer=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_objlit_initializer=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_object_initializer=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_object_initializer=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.wst.jsdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.wst.jsdt.core.formatter.keep_empty_objlit_initializer_on_one_line=false
-org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.wst.jsdt.core.formatter.lineSplit=80
-org.eclipse.wst.jsdt.core.formatter.never_indent_block_comments_on_first_column=false
-org.eclipse.wst.jsdt.core.formatter.never_indent_line_comments_on_first_column=false
-org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.wst.jsdt.core.formatter.tabulation.char=space
-org.eclipse.wst.jsdt.core.formatter.tabulation.size=2
-org.eclipse.wst.jsdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.wst.jsdt.core.formatter.wrap_before_binary_operator=true
-semanticValidation=enabled
/live/.settings/org.eclipse.wst.jsdt.core.prefs
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/.settings/org.eclipse.wst.xsl.core.prefs
===================================================================
--- live/.settings/org.eclipse.wst.xsl.core.prefs (revision 509)
+++ live/.settings/org.eclipse.wst.xsl.core.prefs (nonexistent)
@@ -1,12 +0,0 @@
-#Tue Apr 05 22:58:44 CEST 2011
-CHECK_CALL_TEMPLATES=2
-CHECK_XPATHS=2
-CIRCULAR_REF=2
-DUPLICATE_PARAMETER=2
-EMPTY_PARAM=1
-MISSING_INCLUDE=2
-MISSING_PARAM=1
-NAME_ATTRIBUTE_EMPTY=2
-NAME_ATTRIBUTE_MISSING=2
-TEMPLATE_CONFLICT=2
-eclipse.preferences.version=1
/live/.settings/org.eclipse.wst.xsl.core.prefs
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/.settings/org.eclipse.wst.jsdt.ui.prefs
===================================================================
--- live/.settings/org.eclipse.wst.jsdt.ui.prefs (revision 509)
+++ live/.settings/org.eclipse.wst.jsdt.ui.prefs (nonexistent)
@@ -1,52 +0,0 @@
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.wst.jsdt.ui.postsavelistener.cleanup=true
-formatter_profile=_PointedEars
-formatter_settings_version=11
-org.eclipse.wst.jsdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=false
-sp_cleanup.format_source_code=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
/live/.settings/org.eclipse.wst.jsdt.ui.prefs
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/.settings/org.eclipse.wst.jsdt.ui.superType.name
===================================================================
--- live/.settings/org.eclipse.wst.jsdt.ui.superType.name (revision 509)
+++ live/.settings/org.eclipse.wst.jsdt.ui.superType.name (nonexistent)
@@ -1 +0,0 @@
-Window
\ No newline at end of file
Index: live/.settings/org.eclipse.wst.sse.core.prefs
===================================================================
--- live/.settings/org.eclipse.wst.sse.core.prefs (revision 509)
+++ live/.settings/org.eclipse.wst.sse.core.prefs (nonexistent)
@@ -1,4 +0,0 @@
-eclipse.preferences.version=1
-task-tags/taskPriorities=1,2,1,0
-task-tags/taskTags=TODO,FIXME,XXX,DEBUG
-task-tags/use-project-settings=true
/live/.settings/org.eclipse.wst.sse.core.prefs
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/.settings/org.eclipse.wst.jsdt.ui.superType.container
===================================================================
--- live/.settings/org.eclipse.wst.jsdt.ui.superType.container (revision 509)
+++ live/.settings/org.eclipse.wst.jsdt.ui.superType.container (nonexistent)
@@ -1 +0,0 @@
-org.eclipse.wst.jsdt.launching.baseBrowserLibrary/StandardBrowser/html5
\ No newline at end of file
Index: live/.settings/org.eclipse.php.core.prefs
===================================================================
--- live/.settings/org.eclipse.php.core.prefs (revision 509)
+++ live/.settings/org.eclipse.php.core.prefs (nonexistent)
@@ -1,11 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.php.core.phpForamtterArrayInitSize=1
-org.eclipse.php.core.phpForamtterIndentationSize=2
-org.eclipse.php.core.phpForamtterIndentationWrappedLineSize=1
-org.eclipse.php.core.phpForamtterTabSize=2
-org.eclipse.php.core.phpForamtterUseTabs=false
-org.eclipse.php.core.taskCaseSensitive=enabled
-org.eclipse.php.core.taskPriorities=NORMAL,HIGH,NORMAL,NORMAL,LOW
-org.eclipse.php.core.taskTags=TODO,FIXME,XXX,@todo,DEBUG
-phpVersion=php5.3
-useShortTags=false
/live/.settings/org.eclipse.php.core.prefs
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/.settings/org.eclipse.ltk.core.refactoring.prefs
===================================================================
--- live/.settings/org.eclipse.ltk.core.refactoring.prefs (revision 509)
+++ live/.settings/org.eclipse.ltk.core.refactoring.prefs (nonexistent)
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
/live/.settings/org.eclipse.ltk.core.refactoring.prefs
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/.settings/org.eclipse.php.ui.prefs
===================================================================
--- live/.settings/org.eclipse.php.ui.prefs (revision 509)
+++ live/.settings/org.eclipse.php.ui.prefs (nonexistent)
@@ -1,5 +0,0 @@
-cleanup.remove_trailing_whitespaces=true
-cleanup.remove_trailing_whitespaces_all=false
-cleanup.remove_trailing_whitespaces_ignore_empty=true
-eclipse.preferences.version=1
-org.eclipse.php.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates/>
/live/.settings/org.eclipse.php.ui.prefs
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/.settings/.jsdtscope
===================================================================
--- live/.settings/.jsdtscope (revision 509)
+++ live/.settings/.jsdtscope (nonexistent)
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary/StandardBrowser/html5"/>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
- <attributes>
- <attribute name="hide" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry excluding="**/_*.js/**/*.js|**/tmp/**" kind="src" path=""/>
- <classpathentry kind="output" path=""/>
-</classpath>
Index: live/UniCalc/unicalc.js
===================================================================
--- live/UniCalc/unicalc.js (revision 509)
+++ live/UniCalc/unicalc.js (nonexistent)
@@ -1,150 +0,0 @@
-function toASCII (unicode)
-{
- var ascii = new jsx.regexp.String(unicode.value).replace(
- jsx.regexp.RegExp(
- "(?<operand>[−×∕])|(?<root>[√])|(?<delim>'+)"
- + "|(?<exponent>[⁰¹²³\u2074-\u2079⁺⁻⁽⁾]+)"
- + "|\\b(?<const>g)\\b",
- "g"),
- function (match) {
- var groups = this.groups;
- if (groups["operand"])
- {
- switch (match)
- {
- case "−": return "-";
- case "×": return "*";
- case "∕": return "/";
- }
- }
-
- if (groups["root"])
- {
- switch (match)
- {
- case "√": return "sqrt";
- default:
- return match;
- }
- }
-
- if (groups["delim"])
- {
- return "";
- }
-
- if (groups["exponent"])
- {
- var exponent = match.replace(
- /./g,
- function (match) {
- switch (match)
- {
- case "⁰": return "0";
- case "¹": return "1";
- case "²": return "2";
- case "³": return "3";
- case "⁺": return "+";
- case "⁻": return "-";
- case "⁼": return "=";
- case "⁽": return "(";
- case "⁾": return ")";
- default:
- if (/[\u2074-\u2079]/.test(match))
- {
- return String.fromCharCode(
- 0x30 + (match.charCodeAt(0) - 0x2070));
- }
-
- return match;
- }
- });
-
- return "^(" + exponent + ")";
- }
-
- if (groups["const"])
- {
- switch (match)
- {
- case "g": return "9.81 m/s^2";
- }
- }
-
- return match;
- });
-
- unicode.form.elements["q"].value = ascii;
-}
-
-function toUnicode (ascii)
-{
- var unicode = new jsx.regexp.String(ascii.value).replace(
- jsx.regexp.RegExp(
- "(?<operand>[-*/])|\\b(?<root>(sq|cub)rt)\\b|\\^(?<exponent>[\\d()]+)",
- "g"),
- function (match) {
- var groups = this.groups;
- if (groups["operand"])
- {
- return jsx.object.getProperty({
- "-": "−",
- "*": "×",
- "/": "∕"
- }, match);
- }
-
- if (groups["root"])
- {
- switch (match)
- {
- case "cubrt": return "∛";
- case "sqrt": return "√";
- default:
- return match;
- }
- }
-
- if (groups["exponent"])
- {
- var exponent = groups["exponent"].replace(
- /./g,
- function (match) {
- switch (match)
- {
- case "0": return "⁰";
- case "1": return "¹";
- case "2": return "²";
- case "3": return "³";
- case "+": return "⁺";
- case "-": return "⁻";
- case "=": return "⁼";
- case "(": return "⁽";
- case ")": return "⁾";
- default:
- if (/[4-9]/.test(match))
- {
- return String.fromCharCode(
- match.charCodeAt(0) - 0x30 + 0x2070);
- }
-
- return match;
- }
- });
-
- return exponent;
- }
-
- return match;
- });
-
- ascii.form.elements["unicode"].value = unicode;
-}
-
-function calc (form)
-{
- return !window.open(
- form.action + "?q=" + encodeURIComponent(form.elements["q"].value),
- form.target,
- "width=720,height=630,resizable");
-}
\ No newline at end of file
/live/UniCalc/unicalc.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/UniCalc/index.html
===================================================================
--- live/UniCalc/index.html (revision 509)
+++ live/UniCalc/index.html (nonexistent)
@@ -1,60 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>UniCalc (Unicode Calculator) — PointedEars’ Website</title>
- <style type="text/css">
- <!--
- table {
- width: 100%;
- }
-
- th {
- width: 8em;
- text-align: right;
- }
-
- th:after {
- content: ":";
- }
-
- [lang^="fr"] th:after {
- content: "\00A0 :";
- }
-
- .td3 {
- width: 8em;
- }
-
- input {
- width: 100%;
- }
- -->
- </style>
- <script type="text/javascript" src="../builder?src=object,regexp"></script>
- <script type="text/javascript" src="unicalc.js"></script>
- </head>
- <body>
- <h1>UniCalc – Unicode Calculator</h1>
- <form action="http://www.google.com/search" target="result"
- onsubmit="return calc(this)">
- <table>
- <tr>
- <th><label for="unicode">Unicode <u>f</u>ormula</label></th>
- <td><input type="search" id="unicode" name="unicode" accesskey="f"
- onkeyup="toASCII(this)"
- oninput="toASCII(this)"
- ></td>
- </tr>
- <tr>
- <th><label for="ascii"><u>A</u>SCII formula</label></th>
- <td><input type="search" id="ascii" name="q" accesskey="a"
- onkeyup="toUnicode(this)"
- oninput="toUnicode(this)"
- ></td>
- <td class="td3"><input type="submit" value="Calculate (Google)"></td>
- </tr>
- </table>
- </form>
- </body>
-</html>
/live/UniCalc/index.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/props.js
===================================================================
--- live/props.js (revision 509)
+++ live/props.js (nonexistent)
@@ -1,84 +0,0 @@
-function FuzzySort(aSelect) {
- var i = 0;
- while ( i < aSelect.options.length - 2 ) {
- var value1 = aSelect.options[i].text.substr(0, aSelect.options[i].text.toLowerCase().indexOf("=") - 1);
- var value2 = aSelect.options[i + 1].text.substr(0, aSelect.options[i].text.toLowerCase().indexOf("=") - 1);
- if( value1 > value2 ) {
- var Save;
- Save = aSelect.options[i].text;
- aSelect.options[i].text = aSelect.options[i + 1].text;
- aSelect.options[i + 1].text = Save;
- Save = null;
- if( i > 1 )
- i--;
- } else
- i++;
- }
-}
-
-function blurStartCtrl(aStartCtrl) {
- if(blurStartCtrl.arguments.length > 0)
- if(aStartCtrl != null)
- aStartCtrl.blur();
-}
-
-function getObjProp(sObject, aStartCtrl, aSelect) {
-// var ident = getObjProp;
- var aObject = eval(sObject);
- var bValidTarget = (aSelect != null);
- if(bValidTarget) bValidTarget = (aSelect.tagName.toLowerCase() == "select");
- if(! bValidTarget) {
- alert("Unable to continue without valid SELECT object as third argument.");
- blurStartCtrl(aStartCtrl);
- return(true);
- }
- removeOptions(aSelect);
- if(aObject == null) {
- addOption(aSelect, "[no object]");
- return(true);
- }
-/* if(sObject.indexOf("document.all") >= 0) {
- addOption(aSelect, "[Unable to retrieve document.all because it accesses its caller]");
- blurStartCtrl(aStartCtrl);
- return(true);
- } */
- aSelect.style.cursor = "wait";
- var sCondition = false;
- for(var Item in aObject) {
- sCondition = ( String(aObject[Item]).toLowerCase().substr(0, 9) != "function " );
- if(sCondition) {
- var propValue = aObject[Item];
- var s = ( ( isNaN(propValue) || String(propValue) == "" )
- && ( String(propValue).indexOf("object") < 0 ) ) ? "\"" : "";
- var sText = Item + " = " + s + propValue + s;
- addOption(aSelect, sText);
- }
- }
- FuzzySort(aSelect);
- blurStartCtrl(aStartCtrl);
- aSelect.style.cursor = "auto";
- return(false);
-}
-
-function checkProps(aWindow) {
- var wndProps = window.open();
- wndProps.document.open("text/html");
- wndProps.document.write('<html>\n<head>\n' +
- '<link href="../styles/lcars.css" rel="stylesheet" type="text/css">\n' +
- '<style type="text/css"><!--\n' +
- '\ta.button, a.button:visited {\n' +
- '\tfont-size: 20px;\n' +
- '}\n' +
- 'a.button:hover { color: #000000; }\n' +
- 'a.button:active { color: #000000; }\n' +
- '//--></style>\n' +
- '\t<script language="JavaScript1.1" src="../scripts/props.js" type="text/javascript"></script>\n' +
- '</head>\n<body>\n' +
- 'Object from which to retrieve properties:<br>\n' +
- '<input type="text" style="width: 96%;" id="edObject">' +
- '<a href="JavaScript:void(0)" class="button" style="position:relative; top:-3px;" id="btGo" onClick=\'getObjProp(edObject.value, this, document.all.props);\'>&nbsp;<u>G</u>O&nbsp;</a><br>\n' +
- '<select size=10 style="width: 100%;" id="props">' +
- '</select></body></html>'
- );
- wndProps.document.close();
-}
\ No newline at end of file
Index: live/ufpdbfrm.js
===================================================================
--- live/ufpdbfrm.js (revision 509)
+++ live/ufpdbfrm.js (nonexistent)
@@ -1,55 +0,0 @@
-function restoreLCARS()
-{
- if (top == self) // single document
- {
- var sURI = "";
-
- if (location.protocol.toLowerCase().indexOf("http") > -1) // http:
- {
- if (location.hostname.length > 0
- && location.hostname.toLowerCase().indexOf("pointedears.de") < 0
- && location.hostname.toLowerCase() != "localhost")
- sURI += "/~thla-in/";
- }
- else // file:
- {
- sURI = "file:/";
-
- if (navigator.platform.indexOf("Win") >= 0)
- sURI += "//F:";
- else
- sURI += "windows/F";
-
- sURI += "/LCARS";
- }
-
- sURI += "/ufpdb/main?content=" + location.pathname;
-
- if (parent.location)
- {
-/*
- if (parent.location.replace)
- parent.location.replace(sURI);
- else
- */
- parent.location = sURI;
- }
- }
- else if (parent.frames && parent.frames['ufpdb_banner'])
- { // within the frameset
- var f = parent.frames['ufpdb_banner'];
-
- if (f)
- f.makeLeftBanner(document.title);
- }
-}
-
-if (top == self) // single document
-{
- document.write(
- "<hr><p>This document is part of the United Federation of Planets Database"
- + "&trade; and is best viewed within the LCARS interface.<\/p>"
- + '<a href="javascript:restoreLCARS();"'
- + ' onclick="restoreLCARS(); return false;" class="button">'
- + '&nbsp;RESTORE FRAMESET&nbsp;<\/a><hr>');
-}
\ No newline at end of file
Index: live/engine.js
===================================================================
--- live/engine.js (revision 509)
+++ live/engine.js (nonexistent)
@@ -1,348 +0,0 @@
-/**
- * <title>Script Engine Detection Library</title>
- * @file $Id$
- *
- * @author (C) 2004, 2013 <a href="mailto:js@PointedEars.de">Thomas Lahn</a>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = new Object();
-}
-
-if (typeof jsx.engine == "undefined")
-{
- /**
- * @namespace
- */
- jsx.engine = new Object();
-}
-
-/** @version */
-jsx.engine.version = "$Revision$";
-
-jsx.engine.copyright = "Copyright \xA9 2004, 2013";
-jsx.engine.author = "Thomas Lahn";
-
-/**
- * Contact address of the author
- */
-jsx.engine.email = "js@PointedEars.de";
-
-/**
- * Base path of the script file resource
- */
-jsx.engine.path = "http://PointedEars.de/scripts/";
-// jsx.engine.docURL = this.path + "global.htm";
-
-/**
- * Encapsulates information about the used script engine.
- */
-function _EngineInfo ()
-{
- /**
- * @param {string} version
- * @param {Array} versionMap
- * @param {string} fallback
- * @return {string|boolean}
- */
- function _inferVersion (version, versionMap, fallback)
- {
- function gte (v1, v2)
- {
- v1 = v1.split(".");
- v2 = v2.split(".");
- for (var i = 0, len = v1.length; i < len; ++i)
- {
- if (parseInt(v1[i], 10) < parseInt(v2[i], 10))
- {
- return false;
- }
- }
-
- return true;
- }
-
- var s = "";
-
- for (var i = versionMap.length; i--;)
- {
- var mapping = versionMap[i];
- if (gte(version, mapping[0]))
- {
- s = mapping[1];
- break;
- }
- }
-
- if (!s && fallback)
- {
- s = fallback;
- }
-
- return s;
- }
-
- if (typeof ScriptEngine == "function")
- {
- /* JScript */
-
- /**
- * @type string
- */
- var _vendor = "Microsoft";
-
- /**
- * @type string
- */
- var _name = ScriptEngine();
-
- /**
- * @type string
- */
- var _majorVersion =
- typeof ScriptEngineMajorVersion == "function"
- ? ScriptEngineMajorVersion()
- : 'x';
-
- /**
- * @type string
- */
- var _minorVersion =
- typeof ScriptEngineMinorVersion == "function"
- ? ScriptEngineMinorVersion()
- : 'xx';
-
- /**
- * @type string
- */
- var _buildVersion =
- typeof ScriptEngineBuildVersion == "function"
- ? ScriptEngineBuildVersion()
- : 'xxxx';
-
- /**
- * @type string
- */
- var _version =
- (_majorVersion != 'x'
- ? _majorVersion
- + (_minorVersion != 'xx'
- ? '.' + _minorVersion
- + (_buildVersion != 'xxxx' ? '.' + _buildVersion : '')
- : '')
- : '');
- }
- else
- {
- var _inferred = true;
-
- if (typeof navigator != "undefined")
- {
- var ua = navigator.userAgent || "";
-
- if (typeof window != "undefined"
- && jsx.object.getFeature(window, "opera"))
- {
- _vendor = "Opera";
- _name = "ECMAScript";
- }
- else if (ua.indexOf("Konqueror") > -1)
- {
- _vendor = "KDE";
- _name = "JavaScript";
- }
- else if (ua.indexOf("WebKit") > -1)
- {
- var m = null;
-
- if (jsx.object.isMethod(ua, "match"))
- {
- if (ua.indexOf("Chrome") > -1)
- {
- m = ua.match(/\bChrome\/(\d+\.\d+(\.\d+)?)\b/);
-
- _vendor = "Google";
- _name = "V8";
-
- if (m)
- {
- var _minVersion = true;
- var s = _inferVersion(m[1],
- [
- [ "2.0.172", "0.4"],
- [ "3.0.195", "1.2"],
- [ "4.0.249", "1.3"],
- [ "5.0.375", "2.1"],
- [ "6.0.472", "2.2"],
- [ "7.0.517", "2.3.11.22"],
- [ "8.0.552", "2.4.9.19"],
- [ "9.0.597", "2.5.9.6"],
- ["10.0.648", "3.0.12.30"],
- ["11.0.696", "3.1.8.16"],
- ["12.0.742", "3.2.10.21"],
- ["13.0.782", "3.3.10.17"],
- ["14.0.835", "3.4.14.2"],
- ["15.0.874", "3.5.10.9"],
- ["16.0.891", "3.6.4"],
- ["17.0.963", "3.7.12.29"],
- ["18.0.1025", "3.8.9.19"],
- ["19.0.1084", "3.9.24.7"],
- ["20.0.1132", "3.10.6.0"],
- ["21.0.1180", "3.11.10.6"],
- ["22.0.1229", "3.12.19.4"],
- ["23.0.1271", "3.13.7.1"],
- ["24.0.1297", "3.14.4.1"],
- ["25.0.1364", "3.15.11.5"],
- ["26.0.1410", "3.16.14.9"],
- ["27.0.1453", "3.17.6.14"],
- ["28.0.1500", "3.18.5.5"],
- ["29.0.1530", "3.19.9"]
- ],
- "0.3");
-
- if (s)
- {
- _version = s;
- }
- }
- }
- else
- {
- _vendor = "Apple";
- _name = "JavaScriptCore";
-
- m = ua.match(/\bAppleWebKit\/(\d+\.\d+(\.\d+)*)\b/);
-
- if (m)
- {
- _version = m[1];
- }
- }
- }
- }
- else if (typeof netscape != "undefined" || ua.indexOf("Gecko") > -1)
- {
- m = null;
-
- if (jsx.object.isNativeMethod(ua, "match"))
- {
- m = ua.match(/\brv:((\d+)\.\d+(\.\d+)*)\b/);
- }
-
- _vendor = "Netscape/Mozilla";
- _name = "JavaScript";
-
- if (m)
- {
- _minVersion = true;
-
- if (parseInt(m[2], 10) >= 5)
- {
- s = m[2];
- }
- else
- {
- s = _inferVersion(m[1],
- [
- ["0.6", "1.5"],
- ["1.8", "1.6"],
- ["1.8.1", "1.7"],
- ["1.9", "1.8"],
- ["1.9.1", "1.8.1"],
- ["1.9.2", "1.8.2"],
- ["1.9.3", "1.8.5"]
- ]);
- }
-
- if (s)
- {
- _version = s;
- }
- }
- }
- }
- }
-
- function _getVendor ()
- {
- return _vendor;
- }
- this.getVendor = _getVendor;
-
- function _getName ()
- {
- return _name;
- }
- this.getName = _getName;
-
- function _getFullName ()
- {
- var vendor = _getVendor();
- return (vendor ? vendor + " " : "") + _getName();
- }
- this.getFullName = _getFullName;
-
- function _getMajorVersion ()
- {
- return _majorVersion;
- }
- this.getMajorVersion = _getMajorVersion;
-
- function _getMinorVersion ()
- {
- return _minorVersion;
- }
- this.getMinorVersion = _getMinorVersion;
-
- function _getVersion ()
- {
- return _version;
- }
- this.getVersion = _getVersion;
-
- function _isInferred ()
- {
- return !!_inferred;
- }
- this.isInferred = _isInferred;
-
- function _isMinVersion ()
- {
- return !!_minVersion;
- }
- this.isMinVersion = _isMinVersion;
-}
-
-/**
- * Returns name and version of the used script engine,
- * if available.
- *
- * @return {string}
- */
-function _EngineInfo_prototype_toString ()
-{
- var name = this.getName();
- return (name ? name + ' ' : '') + this.getVersion();
-}
-_EngineInfo.prototype.toString = _EngineInfo_prototype_toString;
-
-jsx.engine.EngineInfo = _EngineInfo;
\ No newline at end of file
/live/engine.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Index: live/close.js
===================================================================
--- live/close.js (revision 509)
+++ live/close.js (nonexistent)
@@ -1,13 +0,0 @@
-/**
- * <title>JavaScript ClosePage Support</title>
- */
-// Refer close.txt for general documentation.
-
-if (document.all && !window.opera)
-{
- document.write('<span class="symbol">r</span>');
-}
-else
-{
- document.write("&nbsp;");
-}
\ No newline at end of file
Index: live/.project
===================================================================
--- live/.project (revision 509)
+++ live/.project (nonexistent)
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>JSX</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.python.pydev.PyDevBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.validation.validationbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.dltk.core.scriptbuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.php.core.PHPNature</nature>
- <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
- <nature>org.python.pydev.pythonNature</nature>
- </natures>
-</projectDescription>
Index: live/dots.js
===================================================================
--- live/dots.js (revision 509)
+++ live/dots.js (nonexistent)
@@ -1,71 +0,0 @@
-// The following tag is for display in advanced filelists only:
-// <TITLE>JavaScript 3dots LCARS Support Part 1</title>
-//
-// Supports dhtml.js for usage of W3C-DOM
-// Refer dots.txt for general documentation.
-
-// Hiding loading content is potentially harmful
-// TODO: lcars.js::dots() and ::undots() to replace this
-/*
-
-if (!this.dhtml)
-{
- var dhtml = new Object();
- dhtml.supported = false;
- dhtml.visibility = function() {};
-}
-
-if (dhtml.supported && dhtml.visibility)
-{
- var divContent = getElem("id", "div_content");
- var divStatus = getElem("id", "div_status"), f;
- if (divContent && divStatus)
- {
- dhtml.visible(divContent, false);
-
- if (typeof divStatus.left != "undefined")
- {
- divStatus.left = document.body.offsetWidth;
- }
-
- dhtml.visible(divStatus, true);
- }
- else if ((f = parent.frames['ufpdb_banner']))
- {
- if (f.spanStatus) f.spanStatus.className = "standby";
- dhtml.setTextContent(f.spanStatus, "ACCESSING FILE");
- }
-}
-
-var dotCounter = 0;
-
-function animDots()
-{
- var dotString = "";
-
- for (var i = 0; i < dotCounter; i++)
- {
- dotString += ". ";
- }
-
- if (dhtml.setCont)
- {
- dhtml.setCont("id", "dots", null, dotString);
- }
-
- if (dotCounter == 3)
- {
- dotCounter = 0;
- }
- else
- {
- dotCounter++;
- }
-}
-
-if (dhtml.supported && divContent && divStatus)
-{
- var dotsAnim = window.setInterval("animDots();", 1000);
-}
-
-*/
\ No newline at end of file
Index: live/style.css
===================================================================
--- live/style.css (revision 509)
+++ live/style.css (nonexistent)
@@ -1,112 +0,0 @@
-/* Script documentation style-sheet */
-
-/* General */
-body {
- background-color: white;
- color: black;
-}
-
-h1 {
- margin-bottom: 0;
-}
-
-a:link:hover, a:visited:hover {
- background-color: transparent;
- color: red;
- text-decoration: none;
-}
-
-code {
- /* Inconsolata is borken in Safari 5.0 on Wine */
- font-family: Inconsolata, Consolas, monospace;
-}
-
-/* HTML language elements */
-.text {
- background-color: transparent;
- color: black;
-}
-
-.entity {
- background-color: transparent;
- color: black;
- font-weight: bold;
- font-style: italic;
-}
-
-.tag, .tagname {
- background-color: transparent;
- color: navy;
-}
-
-.img {
- background-color: transparent;
- color: purple;
-}
-
-.object {
- background-color: transparent;
- color: maroon;
-}
-
-.attrval {
- background-color: transparent;
- color: blue;
-}
-
-.scr {
- background-color: transparent;
- color: #900;
-}
-
-.a {
- background-color: transparent;
- color: #090;
-}
-
-/* JavaScript language elements */
-.comm {
- background-color: transparent;
- color: #999;
- font-style: italic;
-}
-
-.ident {
- background-color: transparent;
- color: black;
- font-weight: bold;
-}
-
-.rswd {
- background-color: transparent;
- color: #009;
- font-weight: bold;
-}
-
-.regexp {
- background-color: transparent;
- color: #900;
-}
-
-var {
- font-style: italic;
-}
-
-.str {
- font-style: italic;
-}
-
-.num {
- background-color: transparent;
- color: red;
-}
-
-.punct {
- background-color: transparent;
- color: blue;
-}
-
-.punct2 {
- background-color: transparent;
- color: #090;
-}
\ No newline at end of file
Index: live/document.js
===================================================================
--- live/document.js (revision 509)
+++ live/document.js (nonexistent)
@@ -1,703 +0,0 @@
-/*
- * The following tag used for display in advanced file listings only:
- * <title>JavaScript Routines and Objects to Create Temporary Documents</title>
- *
- * See document.txt file for general documentation.
- */
-
-var documentVersion = "v1.20.2005080609";
-var sAuthorCopyright = "\xA9 2000-2005 by Thomas Lahn (PES)";
-var sAuthorEMail = "webmaster@PointedEars.de";
-
-/* Script exceptions */
-
-var sCopyright =
- "document.js "
- + documentVersion
- + " "
- + sAuthorCopyright
- + "\nmailto:"
- + sAuthorEMail
- + "\n\n";
-
-function HTMLException(Msg)
-{
- alert( sCopyright + Msg );
- return false;
-}
-
-function ENoDocument(sFunctionName)
-{
- // var sFunctionName = (sFunctionName != null) ? sFunctionName + ": " : "";
-
- /*
- * Passing the name of the function which caused the exception currently not
- * possible
- */
- return HTMLException(
- "The specified target object does not exist."
- + " Please check your assignment(s) to the HTMLdoc variable.");
-}
-
-function EInvalidArgNum(sFunctionName, iArg)
-{
- return HTMLException(
- sFunctionName
- + ": The user script did not pass the required number of arguments ("
- + iArg
- + "). Refer documentation in script file for correct function call.");
-}
-
-/* Script features */
-if (typeof jsx == "undefined") var jsx = {};
-
-if (typeof jsx.document == "undefined")
-{
- jsx.document = {
- write: function(s) {
- return jsx.tryThis(
- function() {
- document.write(s);
-
- /* fix circular reference */
- s = null;
-
- return true;
- },
- function() {
- /* try without namespaces first (presumably HTML or loose XHTML) */
- var scripts = document.getElementsByTagName("script");
-
- if (!scripts || !scripts.length)
- {
- /* try with namespace (presumably strict XHTML) */
- scripts = document.getElementsByTagNameNS(
- document.documentElement.getAttribute("xmlns"),
- "script");
- }
-
- /* Can we locate ourselves at all? */
- if (scripts && scripts.length)
- {
- var thisScript = scripts[scripts.length - 1];
- var node = thisScript.parentNode.insertBefore(
- document.createTextNode(s),
- thisScript);
- }
-
- /* fix circular reference */
- s = null;
-
- return node;
- }) || false;
- }
- };
-}
-
-var HTMLdoc = document;
-
-/* Version 1.05.x OOP Extension */
-var HTMLinstance = new _HTMLDocument(HTMLdoc);
-
-function docCheck(bRaiseException)
-{
- if (HTMLdoc)
- {
- return true;
- }
-
- if (arguments.length = 1 && bRaiseException == true)
- {
- ENoDocument(docCheck.caller);
- }
-
- return false;
-}
-
-/* Document Type Definitions and HTML 4.0 Tag Policy URLs */
-
-/* DTD for HTML 2.0 documents */
-var dtdHTML2 = '"-//W3C//DTD HTML 2.0//EN"';
-
-/* DTD for HTML 3.2 documents */
-var dtdHTML32 = '"-//W3C//DTD HTML 3.2//EN"';
-
-/* DTD for HTML 4.01 documents */
-var dtdHTML4 = '"-//W3C//DTD HTML 4.01//EN"';
-
-/* DTD for HTML 4.01 documents including frameset definition */
-var dtdHTML4frm = '"-//W3C//DTD HTML 4.01 Frameset//EN"';
-
-/* DTD for HTML 4.01 documents containing deprecated elements and attributes */
-var dtdHTML4scr = '"-//W3C//DTD HTML 4.01 Transitional//EN"';
-
-/* URL of DTD for HTML 4.01 documents containing deprecated elements and attribs */
-var dtdURL_HTML4dep = '\n "http://www.w3.org/TR/html4/loose.dtd"';
-
-/* URL of DTD for HTML 4.01 documents that define framesets */
-var dtdURL_HTML4frm = '\n "http://www.w3.org/TR/html4/frameset.dtd"';
-
-/* URL of DTD for documents that use strict HTML 4.01 syntax */
-var dtdURL_HTML4str = '\n "http://www.w3.org/TR/html4/strict.dtd"';
-
-function HTMLdocOpen(sDTD, bReplace)
-{
- if (!docCheck(true)) return;
-
- /*
- * version 1.08.2000.3 bugfix, formerly: ...length = 2(!)
- * and separated sections
- */
-
- // if( HTMLdoc.location.href != "" ) HTMLdoc.close();
- if (arguments.length == 2 && bReplace == true)
- {
- HTMLdoc.open("text/html", "replace");
- }
- else
- {
- HTMLdoc.open("text/html");
- }
-
- if (arguments.length < 1)
- {
- sDTD = "";
- }
- HTMLdoc.writeln("<!DOCTYPE html PUBLIC ", sDTD, ">\n<html>\n");
-}
-
-function HTMLdocClose()
-{
- if (!docCheck(true))
- {
- return;
- }
-
- HTMLdoc.writeln("</html>");
- HTMLdoc.close();
-}
-
-function docWrite(s)
-{
- if (!docCheck(true))
- {
- return;
- }
-
- HTMLdoc.write(s);
-}
-
-function docWriteLn(s)
-{
- if (!docCheck(true))
- {
- return;
- }
-
- HTMLdoc.writeln(s);
-}
-
-var HTMLtagCount = 0;
-
-function HTMLwriteTag(sTag, sAttrib, sContent)
-{
- var sWrite = "";
-
- if (!docCheck(true))
- {
- return;
- }
-
- if (arguments.length < 1 || sTag == "")
- {
- EInvalidArgNum("HTMLwriteTag", 1);
- return;
- }
-
- /* for better document compression rates */
-
- sTag = sTag.toLowerCase();
-
- if (arguments.length < 2)
- {
- /* use default value if argument missing */
- sAttrib = "";
- }
-
- if (arguments.length < 3)
- {
- /* use default value if argument missing */
- sContent = "";
- }
-
- sWrite = "<" + sTag;
-
- if (sAttrib != "" )
- {
- sWrite += " " + sAttrib;
- }
-
- sWrite += ">";
-
- if (sContent != "")
- {
- sWrite +=
- sContent + "</" + sTag + ">";
- for (var i = 4; i < arguments.length; i++)
- {
- sWrite += arguments[i];
- }
- }
-
- HTMLdoc.write(sWrite);
- HTMLtagCount++;
-
- /* OOP extension */
- HTMLinstance.tagCount = HTMLtagCount;
-
- /*
- * TODO Bug: Text is written twice into the document when the function
- * result is used as argument. Workaround required to uncomment
- * return statement.
- */
- // return sWrite;
-}
-
-var HTMLmetaCount = 0;
-
-function HTMLwriteMeta(sName, sHTTPequiv, sContent)
-{
- if (arguments.length != 3)
- {
- EInvalidArgNum("HTMLwriteMeta", 3);
- return;
- }
-
- if (! docCheck(true))
- {
- return;
- }
-
- if (sName.toLowerCase() != "generator")
- {
- HTMLdoc.write("<meta ");
-
- if (sName != "")
- {
- HTMLdoc.write('name="', sName, '" ');
- }
-
- if (sHTTPequiv != "")
- {
- HTMLdoc.write('http-equiv="', sHTTPequiv, '" ');
- HTMLdoc.writeln('content="', sContent, '">');
- HTMLmetaCount++;
-
- /* OOP extension */
- HTMLinstance.metaCount = HTMLmetaCount;
- }
- }
-}
-
-function HTMLwriteLinkFavIcon(sURL)
-{
- if (sURL.length > 0)
- {
- HTMLdoc.HTMLwriteTag("link", 'rel="shortcut icon" href="' + sURL + '"');
- }
-}
-
-var HTMLscriptCount = 0;
-
-function HTMLwriteScript(sLang, sSrc, sType, sContent)
-{
- if (sSrc == "" && (arguments.length < 4 || sContent == ""))
- {
- EInvalidArgNum("HTMLwriteScript", 4);
- return;
- }
-
- if (!docCheck(true))
- {
- return;
- }
-
- if (arguments.length == 0 || sLang == "")
- {
- sLang = "JavaScript";
- }
-
- HTMLdoc.write('<script language="', sLang, '"');
-
- if (arguments.length < 2)
- {
- sSrc = "";
- }
-
- if (sSrc != "")
- {
- HTMLdoc.write(' src="', sSrc, '"');
- }
-
- if (arguments.length < 3 || sType == "")
- {
- sType = "text/javascript";
- }
-
- if (sType != "")
- {
- HTMLdoc.write( ' type="', sType, '"' );
- }
-
- HTMLdoc.write('>');
-
- if (arguments.length < 4)
- {
- sContent = "";
- }
-
- if (sSrc == "" && sContent != "")
- {
- HTMLdoc.write('<!--\n', sContent, '\n//-->');
- }
-
- HTMLdoc.write('</script>\n');
- HTMLscriptCount++;
-
- /* OOP extension */
- HTMLinstance.scriptCount = HTMLscriptCount;
-}
-
-var HTMLstyleCount = 0;
-
-function HTMLwriteStyle(sType, sAttrib, sContent)
-{
- if (sContent == "" || arguments.length < 3)
- {
- EInvalidArgNum("HTMLwriteStyle", 3);
- return;
- }
-
- if (!docCheck(true))
- {
- return;
- }
-
- if (sType == "")
- {
- sType = "text/css";
- }
-
- HTMLdoc.write('<style type="', sType, '"');
-
- if (sAttrib != "")
- {
- HTMLdoc.write( ' ', sAttrib );
- }
-
- HTMLdoc.write('><!--\n', sContent, '\n//--></style>\n');
- HTMLstyleCount++;
- /* OOP extension */
- HTMLinstance.styleCount = HTMLstyleCount;
-}
-
-function HTMLheadOpen(sTitle)
-{
- if (!docCheck(true)) return;
-
- HTMLdoc.writeln(
- "<head>\n\n<title>",
- sTitle,
- '</title>\n\n<meta name="generator" content="document.js ',
- documentVersion,
- " ",
- sAuthorCopyright,
- ' (' + sAuthorEMail + ')">');
-}
-
-function HTMLheadClose()
-{
- if (!docCheck(true))
- {
- return;
- }
- HTMLdoc.writeln('\n</head>\n');
-}
-
-/** background color */
-var clBodyBg = "";
-
-/** default text color */
-var clBodyText = "";
-
-/** default color for an unvisited link */
-var clBodyLink = "";
-
-/** default color for a visited link */
-var clBodyVLink = "";
-
-/** default color for a selected link */
-var clBodyALink = "";
-
-/** URL of the background image */
-var imgBody = "";
-
-/** Defines whether the background image is a watermark */
-var bBodyBgFixed = false;
-
-function HTMLbodyOpen()
-{
- if (!docCheck(true))
- {
- return;
- }
- HTMLdoc.write( "<body" );
-
- if (clBodyBg != "")
- {
- HTMLdoc.write(' bgcolor="', clBodyBg, '"');
- }
-
- if (clBodyText != "")
- {
- HTMLdoc.write(' text="', clBodyText, '"');
- }
-
- if (clBodyLink != "")
- {
- HTMLdoc.write(' link="', clBodyLink, '"');
- }
-
- if (clBodyVLink != "")
- {
- HTMLdoc.write(' vlink="', clBodyVLink, '"');
- }
-
- if (clBodyALink != "")
- {
- HTMLdoc.write(' alink="', clBodyALink, '"');
- }
-
- if (imgBody != "")
- {
- HTMLdoc.write(' background="', imgBody, '"');
- }
-
- if (bBodyBgFixed)
- {
- HTMLdoc.write(' bgproperties="fixed"');
- }
- HTMLdoc.writeln ( ">\n" );
-}
-
-function HTMLbodyClose()
-{
- if (!docCheck(true))
- {
- return;
- }
-
- HTMLdoc.writeln('\n</body>\n');
-}
-
-/* OOP Support for Multiple Document Access (MDA): Methods and prototype */
-
-function DocumentListAdd(aItem)
-{
- this.items.push(aItem);
-}
-
-function DocumentListRemove()
-{
- this.items.pop();
-}
-
-function DocumentList()
-{
- /* Properties */
- this.items = new Array();
-
- /* Methods */
- this.add = DocumentListAdd;
- this.remove = DocumentListRemove;
-}
-
-var docList = new DocumentList();
-
-/* General OOP support: Methods, global counter variable and class */
-
-function HTMLDocumentActivate()
-{
- HTMLinstance = this;
- HTMLdoc = this.target;
- clBodyBg = this.clBodyBg;
- clBodyText = this.clBodyText;
- clBodyLink = this.clBodyLink;
- clBodyVLink = this.clBodyVLink;
- clBodyALink = this.clBodyALink;
- imgBody = this.imgBody;
- bBodyBgFixed = this.bBodyBgFixed;
- HTMLtagCount = this.tagCount;
- HTMLmetaCount = this.metaCount;
- HTMLscriptCount = this.scriptCount;
- HTMLstyleCount = this.styleCount;
-}
-
-function HTMLDocumentShowProperties()
-{
- var sCaller =
- (HTMLDocumentShowProperties.caller != null
- ? "Caller: \n\n" + HTMLDocumentShowProperties.caller + "\n"
- : "");
-
- var sResult =
- sCopyright
- + "Current properties of the HTMLDocument instance named \""
- + this.name
- + "\";\nUsed HTMLDocument.showProperties() method:\n\n";
-
- for (var Property in this)
- {
- var isNotMethod =
- (String(this[Property]).toLowerCase().substr(0, 9) != "function ");
-
- var isNotNameProp =
- (String(Property).toLowerCase().substr(0, 4) != "name");
-
- if (isNotMethod && isNotNameProp)
- {
- var isString =
- (isNaN(this[Property]) || String(this[Property]) == "");
-
- var bDblQuote =
- (isString
- ? '"'
- : "");
-
- var sProp = String(this[Property]);
-
- if (sProp == "[object]") bDblQuote = "";
-
- sResult +=
- Property
- + " = "
- + bDblQuote
- + sProp
- + bDblQuote
- + "\n";
- }
- }
-
- sResult += "\nCreator URL: \"" + document.URL + "\"\n\n" + sCaller;
- alert(sResult);
-}
-
-/** Number of _HTMLDocument instances created by the script caller document */
-var HTMLDocumentCount = 0;
-
-/* `HTMLDocument' is a W3C DOM 2 HTML interface literally implemented in Geckos */
-function _HTMLDocument(aTarget, sDTD, bReplace, sName)
-{
- // Properties
- if (arguments.length < 1)
- {
- this.target = HTMLdoc;
- }
- else
- {
- if (aTarget)
- {
- HTMLinstance = this;
- this.target = aTarget;
- HTMLdoc = this.target;
- HTMLtagCount = 0;
- HTMLmetaCount = 0;
- HTMLscriptCount = 0;
-
- /* Open doc. automatically on more arg. */
- if (arguments.length > 1)
- {
- HTMLdocOpen(sDTD, bReplace);
- }
- }
- else
- {
- /* Error if passed object is not available */
- ENoDocument("_HTMLDocument");
- return;
- }
- }
-
- /* "" is v1.08.2000.3 bugfix, formerly used colors of last activated object */
-
- /** background color */
- this.clBodyBg = "";
-
- /** text color */
- this.clBodyText = "";
-
- /** color for an unvisited link */
- this.clBodyLink = "";
-
- /** color for a visited link */
- this.clBodyVLink = "";
-
- /** color for a selected link */
- this.clBodyALink = "";
-
- /** URL of the background image */
- this.imgBody = "";
-
- /** Default: background image is no watermark */
- this.bBodyBgFixed = false;
-
- /** HTML tags written by writeTag(...) method */
- this.tagCount = 0;
-
- /** &lt;meta&gt; tags written except "generator" */
- this.metaCount = 0;
-
- /** &lt;script&gt;&lt;/script&gt; sections written */
- this.scriptCount = 0;
-
- /** &lt;style&gt;&lt;/style&gt; sections written */
- this.styleCount = 0;
-
- /* Increase the number of created _HTMLDocument instances for auto-naming */
- HTMLDocumentCount++;
-
- if (arguments.length >= 4)
- {
- /* Recommended to name the object for debug purposes */
- this.name = sName;
- }
- else
- {
- this.name = "_HTMLDocument_" + String(HTMLDocumentCount);
- }
-
- /* Methods */
- this.activate = HTMLDocumentActivate;
-
- /* DEBUG */
- this.showProperties = HTMLDocumentShowProperties;
- this.checkTarget = docCheck;
- this.open = HTMLdocOpen;
- this.close = HTMLdocClose;
- this.write = docWrite;
- this.writeLn = docWriteLn;
- this.writeTag = HTMLwriteTag;
- this.writeMeta = HTMLwriteMeta;
- this.writeScript = HTMLwriteScript;
- this.writeStyle = HTMLwriteStyle;
- this.headOpen = HTMLheadOpen;
- this.headClose = HTMLheadClose;
- this.bodyOpen = HTMLbodyOpen;
- this.bodyClose = HTMLbodyClose;
-}
-
-/* Raise exception if not processed from a web browser */
-if (! document)
-{
- ENoBrowser();
-}
\ No newline at end of file
Index: live/math/base.js
===================================================================
--- live/math/base.js (revision 509)
+++ live/math/base.js (nonexistent)
@@ -1,136 +0,0 @@
-/**
- * <title>PointedEars' JSX: Math Library: Number Systems</title>
- * @requires object.js
- * @requires types.js
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2000-2011 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/**
- * @author
- * Copyright (c) 2003, 2004 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- * @partof
- * http://pointedears.de/scripts/math.js
- * @param nDec : optional number = 0
- * Optional. Decimal number to be converted to another number
- * system. No conversion is performed if <var>nDec</var> is
- * the default 0 (zero).
- * @param iBase : optional number = 2
- * Optional. Base of the number system to which <var>nDec</var>
- * should be converted. Use 2 for binary, 8 for octal, 16 for
- * hexadecimal aso. No conversion is performed if <var>iBase</var>
- * ist 10 (decimal, the default) or not provided.
- * @param iLength : optional number
- * Optional. If provided and greater that 0, this argument
- * specifies the length of the resulting string. If the result
- * is shorter than <var>iLength</var>, leading zeroes are
- * added until the result is as long as <var>iLength</var>.
- * @return type string
- * <var>nDec</var> converted to the number system specified
- * with <var>iBase</var> in lowercase, optionally with leading
- * zeroes. Uses Number.toString(<var>iBase</var>) is supported, an
- * algorithm to convert both the integer and the fractional
- * part otherwise.
- * @see Global#parseFloat(any)
- * @see Global#parseInt(any)
- */
-Math.dec2base = function(nDec, iBase, iLength) {
- // default values
- if (!nDec)
- {
- nDec = 0;
- }
-
- if (!iBase)
- {
- /* binary */
- iBase = 2;
- }
-
- var sResult = "";
- /* if converting with toString() is poss. */
- if ((15).toString(16).length == 1)
- {
- sResult = Number(nDec).toString(iBase);
- }
- else
- {
- var f = nDec % 1;
- var aDigits = new Array();
-
- var i;
- if (nDec != 0 && iBase != 10)
- {
- /*
- * No calculation required if number is 0 or target base is decimal
- */
-
- /* Create array of _required_ digits */
- for (i = 0; i < (iBase < 10 ? iBase : 10); i++)
- {
- aDigits[aDigits.length] = i;
- }
-
- if (iBase > 10)
- {
- var iFirstLetter = "a".charCodeAt(0);
- for (i = iFirstLetter; i < iFirstLetter + iBase - 10; i++)
- {
- aDigits[aDigits.length] = String.fromCharCode(i);
- }
- }
-
- nDec = Math.floor(nDec);
- while (nDec > 0)
- {
- sResult = aDigits[nDec % iBase] + sResult;
- nDec = Math.floor(nDec / iBase);
- }
-
- if (f > 0)
- {
- sResult += ".";
-
- while (f > 0 && sResult.length < 255)
- {
- f *= iBase;
-
- /* get integer part */
- i = Math.floor(f);
-
- /* append fraction digit */
- sResult += aDigits[i];
- f -= i;
- }
- }
- }
- }
-
- if (iLength)
- {
- while (sResult.length < iLength)
- {
- sResult = "0" + sResult;
- }
- }
-
- return sResult;
-};
/live/math/base.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/math/integer.js
===================================================================
--- live/math/integer.js (revision 509)
+++ live/math/integer.js (nonexistent)
@@ -1,321 +0,0 @@
-/**
- * <title>PointedEars' JSX: Math Library: Integer arithmetics</title>
- * @requires object.js
- * @requires types.js
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2000-2011 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/**
- * Returns the greatest common divisor (GCD) of two integers
- * <code>a</code> and <code>b</code>, implementing (the optimized form of) the
- * Euclidean algorithm (also called Euclid's algorithm). The
- * GCD of two integer arguments is the largest positive integer
- * that both arguments are integer multiples of, i.e. by which
- * either argument can be divided without remainder. Since
- * integers are required, the floor of <code>a</code> and <code>b</code> will
- * be used for computation.
- *
- * @param a : number
- * @param b : number
- * @return type number
- * The GCD of <code>a</code> and <code>b</code>;
- * <code>NaN</code> if an argument is not a number.
- * @see Math#floor(number)
- */
-Math.gcd = function(a, b) {
- if (isNaN(a) || isNaN(b))
- {
- return Number.NaN;
- }
-
- a = Math.floor(a);
- b = Math.floor(b);
- var c;
-
- while (b != 0)
- {
- c = a % b;
- a = b;
- b = c;
- }
-
- return Math.abs(a);
-};
-
-/**
- * Returns the greatest common divisor (GCD) of two or more
- * integers, implementing (the optimized form of) the Euclidean
- * algorithm (also called Euclid's algorithm). The GCD of
- * integer arguments is the largest positive integer that all
- * arguments are integer multiples of, i.e. by which either
- * argument can be divided without remainder. Since integers
- * are required, the floor of the arguments will be used for
- * computation.
- *
- * @return number
- * The GCD of the arguments;
- * <code>NaN</code> if one or more arguments are not a number.
- * @see Math#floor(number)
- */
-Math.gcdN = function(a, b) {
- /* Currently supports only 2 integers */
- return Math.gcd(a, b);
-};
-
-/**
- * Returns the least common multiple (LCM) of two integers
- * <code>a</code> and <code>b</code>. The LCM of two integer arguments is
- * the smallest positive integer that is a multiple of the
- * arguments. If there is no such positive integer, i.e.,
- * if either argument is zero, then <code>lcm(a, b)</code>
- * is defined to be zero. Since integers are required, the
- * floor of <code>a</code> and <code>b</code> will be used for computation.
- *
- * @param a : number
- * @param b : number
- * @return number
- * The LCM of <code>a</code> and <code>b</code>;
- * <code>0</code> if an argument is <code>0</code>;
- * <code>NaN</code> if an argument is not a number.
- * @see Math#floor(number)
- * @see Math#gcd(number, number)
- */
-Math.lcm = function(a, b) {
- if (isNaN(a) || isNaN(b))
- {
- return Number.NaN;
- }
-
- if (!a || !b)
- {
- return 0;
- }
-
- a = Math.floor(a);
- b = Math.floor(b);
-
- return ((a * b) / Math.gcd(a, b));
-};
-
-/**
- * @author (c) 2000 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- * @param n : number
- * If <code>n</code> is not an integer, <code>Math.floor(n)</code> is used.
- * @return number
- * The factorial of <code>n</code> (<code>n</code><code><b>!</b></code>)
- * which is (for practical reasons) implemented here as follows:
- * @ifdef{MathML2}
- * <math>
- * <apply>
- * <eq/>
- * <apply>
- * <factorial/>
- * <ci> n </ci>
- * </apply>
- * <piecewise>
- * <piece>
- * <cn>1</cn>
- * <apply><lt/> <ci> n </ci> <cn> 2 </cn></apply>
- * </piece>
- * <piece>
- * <mrow>
- * <ci> n </ci>
- * <mo>&InvisibleTimes;</mo>
- * <mfenced>
- * <apply>
- * <factorial/>
- * <apply><minus/> <ci> n </ci> <cn> 1 </cn></apply>
- * </apply>
- * </mfenced>
- * </mrow>
- * <apply><gt/> <ci> n </ci> <cn> 1 </cn></apply>
- * </piece>
- * </piecewise>
- * </apply>
- * </math>
- * @else
- * <table>
- * <tr valign="top">
- * <td rowspan="2"><code>n<code><b>!</b></td>
- * <td>n &lt; 2:</td>1; (strict: 0<b>!</b> = 1<b>!</b> := 1)</td>
- * </tr>
- * <tr valign="top">
- * <td>n &gt; 1:</td>n * (n - 1)<b>!</b></td>
- * </tr>
- * <table>
- * @endif
- *
- * Unlike common recursive implementations, the algorithm is
- * implemented iterative here, saving stack space and thus
- * allowing larger factorials to be computed.
- *
- * @throws Math#OverflowError
- */
-Math.fac = function(n) {
- if (n % 1)
- {
- n = Math.floor(n);
- }
-
- var result = 1;
-
- for (var i = 2; i <= n; result *= i++)
- {
- if (result == Number.POSITIVE_INFINITY)
- {
- result = 0;
- // [Exception] <- [MathErrorException] <- [OverflowException] }
- throwException(new Math.OverflowError("fac"));
- break;
- }
- }
-
- return result;
-};
-
-/**
- * @author (c) 2000 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- * @param nBase : number
- * @param iExponent : number
- * @return number
- * <var>nBase</var> to the power of <var>iExponent</var>
- */
-Math.powInt = function(nBase, iExponent) {
- var i = iExponent;
- var result = 1.0;
-
- while (i > 0)
- {
- if (i % 2)
- {
- result *= nBase;
- }
- i = Math.floor(i / 2);
- nBase *= nBase;
- }
-
- return result;
-};
-
-/**
- * Computes the base <code>nBase</code> powered
- * by the exponent <code>nExponent</code>
- * (<code>nBase</code>^<code>nExponent</code>).
- * Uses the Math.exp() and Math.log() methods to
- * workaround the bug in Math.pow() that positive
- * roots of certain negative values, like root(-9,
- * 1/3) cannot be computed (results in NaN there)
- * but should be.
- *
- * @author
- * (c) 2000-2004 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- * @param nBase : number
- * @param nExponent : number
- * @throws Math#InvalidArgumentError
- * @return type number
- * NaN if computation result lies beyond real numbers,
- * the result (as double-precision floating-point number)
- * otherwise.
- */
-Math.power = function(nBase, nExponent) {
- var result;
-
- if (nBase != 0)
- {
- /* e^(Exponent * ln(|Base|)) */
- result = Math.exp(nExponent * Math.log(Math.abs(nBase)));
- if (nBase < 0)
- {
- if (!(nExponent % 1))
- {
- if (Math.floor(nExponent) % 2)
- {
- result = -result;
- }
- }
- else
- {
- result = Number.NaN;
- /* [Exception]<- [Math.MathError] <- [Math.InvalidArgumentError] */
- throwException(new Math.InvalidArgumentError(
- "power(" + nBase + ", " + nExponent + ")"));
- }
- }
- else if (nBase == 0 && nExponent == 0)
- {
- result = 0;
- throwException(new Math.InvalidArgumentError(
- "power(" + nBase + ", " + nExponent + ")"));
- }
- }
-
- return result;
-};
-
-/**
- * @return type number
- * The logarithm of <code>x</code> to the base <code>nBase</code>.
- *
- * @author (c) 2000 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- * @param x : number
- * @param nBase : number
- */
-Math.logN = function(x, nBase) {
- return Math.log(x) / Math.log(nBase);
-};
-
-/**
- * @author
- * (c) 2000 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- *
- * @param x : number
- * @return type number
- * The logarithm digitalis (<code>ld</code>) of <code>x</code>
- * (the logarithm of <code>x</code> to the base 2).
- */
-Math.log2 = function(x) {
- return Math.logN(x, 2);
-};
-
-/**
- * Computes the decimal logarithm (<code>lg</code>) of
- * <code>x</code> (the log. of <code>x</code> to the base 10).
- *
- * @author (c) 2000 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- * @param x : number
- * @return number
- * The logarithm of <var>x</var> to the base 10
- */
-Math.log10 = function(x) {
- return Math.logN(x, 10);
-};
-
-/**
- * @author
- * (c) 2000 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- * @param x : number
- * @return type number
- * the reciprocal of <code>x</code> (<code>1/x</code>).
- */
-Math.rec = function(x) {
- return (1 / x);
-};
/live/math/integer.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/math/algebra.js
===================================================================
--- live/math/algebra.js (revision 509)
+++ live/math/algebra.js (nonexistent)
@@ -1,526 +0,0 @@
-/**
- * <title>PointedEars' JSX: Math Library: Linear Algebra</title>
- * @requires object.js
- * @requires types.js
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2000-2011 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/** @subsection Matrix Operations */
-
-/**
- * Creates a <code>Matrix</code> object encapsulating an m × n matrix
- * represented by an array of arrays.
- *
- * Different to a "multi-dimensional" array, a <code>Matrix</code>'s
- * elements are indexed (like in math) starting from 1, i. e. the
- * first element of the first row has the coordinates <code>[1, 1]</code>.
- *
- * @param rows : optional Array
- * The array containing the elements of the new matrix or the number
- * of rows of the new matrix.
- * If not provided, the matrix has only one element, <code>0</code>.
- * @param columns: optional Number
- * The number of columns of the matrix, if <var>rows</var> is not an
- * <code>Array</code>
- * @param fill: optional Number
- * The number the matrix should be filled with, if <var>rows</var>
- * is not an <code>Array</code>. The default is <code>0</code>.
- */
-jsx.math.Matrix = (function () {
- var isMethod = jsx.object.isMethod;
-
- return function (rows, columns, fill) {
- this.data = [0];
-
- if (rows)
- {
- if (jsx.types.isArray(rows))
- {
- if (isMethod(rows, "slice"))
- {
- for (var i = rows.length; i--;)
- {
- this.data[i] = rows[i].slice();
- }
- }
- else
- {
- for (var i = rows.length; i--;)
- {
- var row = rows[i];
- this.data[i] = [];
- for (var j = row.length; j--;)
- {
- this.data[i][j] = row[j];
- }
- }
- }
- }
- else
- {
- var a = [];
-
- var tmp = [];
- tmp.length = columns;
-
- if (typeof fill == "undefined")
- {
- fill = 0;
- }
-
- for (var j = 0; j < columns; ++j)
- {
- tmp[j] = fill;
- }
-
- for (var i = 0; i < rows; ++i)
- {
- if (i == 0)
- {
- a.push(tmp);
- }
- else
- {
- a.push(tmp.slice());
- }
- }
-
- this.data = a;
- }
- }
- };
-}());
-
-/**
- * @param A
- * @return number
- * the row dimension of <code>A</code>;
- * 1 if <code>A</code> is a scalar,
- * greater than 1 if <code>A</code> is a vector or a matrix.
- *
- * <pre>
- * Term X x dimRow(x)
- * --------------------------------------------------------
- * scalar 1 1 1
- *
- * mX1 col vector (1)
- * (2) [1, 2, ..., m] m
- * (.)
- * (m)
- *
- * 1Xn row vector (1 2 ... n) [[1, 2, ..., n]] 1
- *
- * (1 2 ... n) [[1, 2, ..., n],
- * mXn matrix (2 . ... .) [2, ... ], m
- * (. . ... .) [... ],
- * (m . ... .) [m, ... ]]
- * </pre>
- */
-jsx.math.Matrix.dimRow = function(A) {
- return (Array.isArray(A)
- ? A.length
- : 1);
-};
-
-/**
- * @param a
- * @return number
- * The column dimension of <code>A</code>, provided all
- * rows of <code>A</code> have the same length (as the first one);
- * 0 if <code>A</code> is a scalar,
- * greater than 0 if <code>A</code> is a vector or a matrix.
- *
- * <pre>
- * Term X x dimCol(x)
- * --------------------------------------------------------
- * scalar 1 1 0
- *
- * mX1 col vector (1)
- * (2) [1, 2, ..., m] 1
- * (.)
- * (m)
- *
- * 1Xn row vector (1 2 ... n) [[1, 2, ..., n]] n
- *
- * (1 2 ... n) [[1, 1, ..., n],
- * mXn matrix (2 . ... .) [2, ... ], n
- * (. . ... .) [... ],
- * (m . ... .) [m, ... ]]
- * </pre>
- */
-jsx.math.Matrix.dimCol = function(a) {
- return (
- typeof (a = a[0]) != "undefined"
- ? (Array.isArray(a[0]) ? a[0].length : 1)
- : 0);
-};
-
-/**
- * @param a
- * @return the square root of the product of A's row dimension
- * and its column dimension. The return value indicates
- * whether a matrix A is square or not; for square matrices,
- * the return value is an integer.
- * @see jsx.math#add()
- */
-jsx.math.Matrix.dim = function(a) {
- return Math.sqrt(jsx.math.Matrix.dimRow(a) * jsx.math.Matrix.dimCol(a));
-};
-
-jsx.math.Matrix.prototype = {
- constructor: Math.Matrix,
-
- putValue: function (coords, value) {
- var tmp = this.data;
-
- for (var i = 0, len = coords.length; i < len - 1; ++i)
- {
- var arg = coords[i] - 1;
- if (arg < 0)
- {
- jsx.throwThis("jsx.math.CoordinateError");
- return;
- }
-
- if (typeof tmp[arg] == "undefined")
- {
- tmp[arg] = [];
- }
-
- tmp = tmp[arg];
- }
-
- var lastCoord = coords.slice(coords.length - 1);
- if (lastCoord < 1)
- {
- jsx.throwThis("jsx.math.CoordinateError");
- return;
- }
-
- tmp[lastCoord - 1] = value;
-
- return tmp[lastCoord - 1];
- },
-
- getValue: function (coords) {
- var tmp = this.data;
-
- for (var i = 0, len = coords.length; i < len; ++i)
- {
- var arg = coords[i] - 1;
- tmp = tmp[arg];
-
- if (typeof tmp == "undefined")
- {
- break;
- }
- }
-
- return tmp;
- },
-
- inc: function (coords) {
- var
- v = +this.getValue.apply(this, coords);
-
- return this.putValue.apply(
- this, coords.concat((isNaN(v) ? 0 : +v) + 1));
- },
-
- toString:
- /**
- * Returns the matrix converted to string, i.e.
- * elements of arrays arranged in rows and columns.
- * Makes use of string.js#format() if available.
- *
- * @param m : optional Matrix
- * @return string
- * @todo
- */
- function(m) {
- if (!m)
- {
- m = this;
- }
-
- if ((m = m.data))
- {
- var
- as = [],
- bHasFormat = (typeof format != "undefined"),
- maxLen;
-
- if (bHasFormat)
- {
- maxLen = Math.max(m);
- }
-
- for (var i = 0, len = m.length; i < len; i++)
- {
- var row = m[i];
- if (bHasFormat)
- {
- as[i] = format("%*$s", row, maxLen + 1);
- }
- else
- {
- as[i] = row.join(" ");
- }
- }
- }n
-
- return as.join("\n");
- },
-
- minor:
- /**
- * Returns the minor of the matrix, i.e. the matrix produced
- * by removing the original's first row and i-th column.
- *
- * @param i : number
- * @param m : optional Matrix
- * @return string
- * @todo
- */
- function (i, m) {
- if (!m)
- {
- m = this;
- }
-
- if ((m = m.data))
- {
- m = new Math.Matrix(m);
- m.data = m.data.slice(1);
- var j;
- for (m, j = (m = m.data).length; j--;)
- {
- m[j].splice(i, 1);
- }
- }
-
- return m;
- }
-};
-
-/**
- * @param a
- * @param b
- * @return Array
- * The sum of the matrixes <var>a</var> and <var>b</var>
- */
-jsx.math.add = function(a, b) {
- /*
- * x00 x01 x02 y00 y01 y02 x00+y00 x01+y01 x02+y02
- * x10 x11 x12 + y10 y11 y12 = x10+y10 x11+y11 x12+y12
- * x20 x21 x22 y20 y21 y22 x20+y20 x21+y21 x22+y22
- */
- var result = new Array();
-
- var dimARow,
- dimACol = jsx.math.dimCol(a),
- dimBRow,
- dimBCol = Math.dimCol(b);
- if ((dimARow = jsx.math.dimRow(a)) == (dimBRow = Math.dimRow(b))
- && (dimACol == dimBCol))
- {
- for (var i = 0; i < dimARow; i++)
- {
- result[i] = [];
- for (var j = 0; j < dimACol; j++)
- {
- result[i][j] = a[i][j] + b[i][j];
- }
- }
- }
- else
- {
- throwException(new Math.InvalidOperandError(
- "First matrix's dimension (" + dimARow + "," + dimACol
- + ") != second matrix's dimension (" + dimBRow + ", " + dimBCol + ")"));
- return null;
- }
-
- return result;
-};
-
-/**
- * This routine uses the dimensions of <var>a</var> and <var>b</var>
- * to choose the corresponding multiplication routine. The argument
- * dimensions, the dimension of the corresponding result, and the
- * multiplication routine that is called are shown in the following
- * table.
- <pre>
- B
-
- A qXn 1Xn qX1
- Matrix row Vector col Vector scalar
-
- mXq mXn Matrix ERROR mX1 col Vector mXq Matrix
- Matrix MatrixMatrixMultiply MatrixVectorMultiply MatrixScalarMultiply
-
- 1Xq 1Xn row Vector ERROR scalar 1Xq Vector
- row Vector VectorMatrixMultiply VectorScalarMultiply
-
- mX1 ERROR mXn Matrix (outer product) ERROR mX1 Vector
- col Vector OuterProductMatrix VectorScalarMultiply
-
- qXn Matrix 1Xn row Vector qX1 col Vector scalar
- scalar MatrixScalarMultiply VectorScalarMultiply VectorScalarMultiply standard multipliction
- </pre>
-
- * @param a
- * @param b
- * @return number|Array
- * @throws Math#InvalidOperandError
- */
-jsx.math.multiply = function(a, b) {
- /*
- * a00 a01 ... b00 b01 ...
- * a10 a11 ... * b10 b11 ...
- * ... ... ... ... ... ...
- *
- * a00*b00+a01*b10+...*... a00*b01+a01*b11+...*... a00*...+a01*...+...*...
- * = a10*b10+a11*b10+...*... a10*b01+a11*b11+...*... a00*...+a01*...+...*...
- * ...*...+...*...+...+... ...*b01+...*b11+...*... a00*...+a01*...+...*...
- */
-
- var dimRowA = Math.dimRow(a);
- var dimColA = Math.dimCol(a);
- var dimRowB = Math.dimRow(b);
- var dimColB = Math.dimCol(b);
- if ((dimRowA && dimColA) || (dimRowB && dimColB))
- {
- if (dimRowA || dimRowB)
- {
-// if (dimRowX && d
- var result = matrixMatrixMultiply(a, b);
- }
- else if (Array.isArray(a) && !Array.isArray(b))
- {
- if (Array.isArray(a[0]))
- {
- // ...
- }
- result = matrix;
- }
-
- result = new Array();
- // matrixMultiply
- }
- else
- {
- result = a * b;
- }
-
- var x_len = a.length;
- var y_len = b.length;
- for (var i = 0, j, xi_len, sum = 0, k;
- i < x_len;
- i++)
- {
- result[i] = new Array();
- xi_len = a[i].length;
- for (j = 0;
- j < xi_len;
- j++, sum = 0)
- {
- if (y_len != xi_len)
- {
- jsx.throwThis(new jsx.math.InvalidOperandError(
- "First matrix's column dimension (" + xi_len
- + ") != second matrix's row dimension (" + y_len + ")"));
- return null;
- }
- sum += a[i][k] + b[k][i];
- }
- result[i][j] = sum;
- }
-
- if (result.length == 1 && result[i].length == 1)
- {
- result = result[0][0];
- }
-
- return result;
-};
-
-/**
- * Computes the intersection of two orthotopes (intervals, rectangles,
- * rectangular cuboids, etc.)
- * <pre>
- * ,------------------.
- * | ,----+------.
- * | |/ / | |
- * | | / /| |
- * | `----+------'
- * `------------------'
- * </pre>
- * <p>
- * Each orthotope is given as a list of Arrays of numbers (which may
- * be encapsulated in a Vector), where each Array or Vector consists
- * of the coordinates of the adjacent vertices of the orthotope
- * (for a rectangle, the x and y coordinates of the left top and
- * right bottom corners). FIXME: Not reliable in 3D+!
- * </p><p>
- * If you need to compute the intersection of more than two
- * orthotopes, you can compute the intersection of their
- * intersections.
- * </p>
- * @param orthotope1 : Array[Array[double]|Math.Vector]
- * First orthotope
- * @param orthotope2 : Array[Array[double]|Math.Vector]
- * Second orthotope
- * @return Array[Array|Vector]
- * An Array of two Arrays or Vectors of, each of which holds one
- * vector pointing to an adjacent vertex of the resulting orthotope
- * that includes all points that the input orthotopes have in common.
- */
-jsx.math.intersect = function (orthotope1, orthotope2) {
- var result = [[], []];
-
- var ortho1LeftTop = orthotope1[0];
- for (var i = ortho1LeftTop.length; i--;)
- {
- result[0][i] = (ortho1LeftTop[i] < orthotope2[0][i])
- ? orthotope2[0][i]
- : ortho1LeftTop[i];
- }
-
- var ortho1RightBottom = orthotope1[1];
- for (i = ortho1RightBottom.length; i--;)
- {
- result[1][i] = (ortho1RightBottom[i] > orthotope2[1][i])
- ? orthotope2[1][i]
- : ortho1RightBottom[i];
- }
-
- return result;
-};
-
-jsx.math.CoordinateError = function () {
- arguments.callee._super.call(this, "Coordinate must be 1 or greater")
-};
-
-jsx.math.CoordinateError.extend(jsx.InvalidArgumentError, {
- name: "jsx.math.CoordinateError"
-});
\ No newline at end of file
/live/math/algebra.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/math/bigdecimal.js
===================================================================
--- live/math/bigdecimal.js (revision 509)
+++ live/math/bigdecimal.js (nonexistent)
@@ -1,398 +0,0 @@
-/**
- * <title>PointedEars' JSX: Arbitrary precision decimals</title>
- * $Id$
- * @requires math.js
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2011 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/**
- * Arbitrary precision decimal
- *
- * @param value : Number[optional]
- * If <var>scale</var> is not provided: Value to be translated to a
- * <code>BigDecimal</code>; the default is <code>NaN</code>.
- * If <var>scale</var> is provided: The unscaled internal value of
- * the <code>BigDecimal</code>. The value of the <code>BigDecimal</code>
- * is (<var>value</var> × 10<sup>−<var>scale</var></sup>).
- * @param scale : Number[optional]
- * The internal scale value, i. e. the number of times that the internal
- * value must be divided by 10 to compute the number represented by
- * the <code>BigDecimal</code>.
- */
-jsx.math.BigDecimal = function (value, scale) {
- /* null or undefined */
- if (value == null)
- {
- value = NaN;
- }
-
- var originalValue, unscaledValue;
-
- /* null or undefined */
- if (scale == null)
- {
- this.originalValue = value;
-
- var s = (+value).toString();
- var digits = (s.match(/\.(\d+)$/) || [, ""])[1];
-
- this.scale = digits.length;
- this.unscaledValue = value * Math.pow(10, this.scale);
- }
- else
- {
- this.originalValue = NaN;
- this.unscaledValue = +value;
- this.scale = +scale;
- }
-
- /**
- * @return Number
- */
- this.getOriginalValue = function () {
- return this.originalValue;
- };
-
- /**
- * @return Number
- */
- this.getUnscaledValue = function () {
- return this.unscaledValue;
- };
-
- /**
- * @param value : Number
- * @return BigDecimal
- */
- this._setUnscaledValue = function (value) {
- this.unscaledValue = value;
- return this;
- };
-
- /**
- * @return Number
- */
- this.getScale = function () {
- return this.scale;
- };
-
- /**
- * @param value : Number
- * @return BigDecimal
- */
- this._setScale = function (value) {
- this.scale = value;
- return this;
- };
-};
-
-/**
- * Returns the normalization of two <code>BigDecimal</code> values.
- *
- * The normalization of two <code>BigDecimal</code> values are two
- * <code>BigDecimal</code> values that represent the same values as
- * before but with the same scale.
- *
- * @param value1 : jsx.math.BigDecimal
- * @param value2 : jsx.math.BigDecimal
- * @returns Array of the normalized values, in the order in which their
- * corresponding original values were passed.
- */
-jsx.math.BigDecimal.normalize = (function () {
- var BigDecimal = jsx.math.BigDecimal;
-
- return function (value1, value2) {
- var scale1 = value1.getScale();
- var scale2 = value2.getScale();
- if (scale1 == scale2)
- {
- return [value1, value2];
- }
-
- var switched = false;
- if (scale1 < scale2)
- {
- switched = true;
- var tmp = value2;
- value2 = value1;
- value1 = tmp;
-
- var tmp = scale2;
- scale2 = scale1;
- scale1 = tmp;
- }
-
- value2 = new BigDecimal(
- value2.getUnscaledValue() * Math.pow(10, scale1 - scale2),
- scale1);
-
- if (switched)
- {
- tmp = value2;
- value2 = value1;
- value1 = tmp;
- }
-
- return [value1, value2];
- };
-}());
-
-jsx.math.BigDecimal.extend(null, {
- /**
- * Returns a <code>BigDecimal</code> whose value is
- * (<code>-this.getUnscaledValue()</code>),
- * and whose scale is <code>this.getScale()</code>.
- *
- * @memberOf jsx.math.BigDecimal.prototype
- * @return BigDecimal
- */
- negate: (function () {
- var BigDecimal = jsx.math.BigDecimal;
-
- return function () {
- return new BigDecimal(-this.getUnscaledValue(), this.getScale());
- };
- }()),
-
- /**
- * Adds a number to the <code>BigDecimal</code> and returns the result.
- * The original internal value remains unchanged.
- *
- * @param summand2 : jsx.math.BigDecimal|number
- * The <code>BigDecimal</code> or <code>Number</code> to be added.
- * If a <code>Number</code>, <var>summand2</var> is converted to a
- * <code>BigDecimal</code> first.
- * @returns {jsx.math.BigDecimal}
- */
- add: (function () {
- var BigDecimal = jsx.math.BigDecimal;
-
- return function (summand2) {
- if (!(summand2 instanceof BigDecimal))
- {
- summand2 = new BigDecimal(summand2);
- }
-
- var normalized = BigDecimal.normalize(this, summand2);
-
- var summand1 = normalized[0].getUnscaledValue();
- var summand2 = normalized[1].getUnscaledValue();
-
- /* Improve precision by using the smaller summand first */
- if (summand2 < summand1)
- {
- var tmp = summand1;
- summand1 = summand2;
- summand2 = tmp;
- }
-
- var d = new BigDecimal(summand1 + summand2, normalized[0].getScale());
-
- return d;
- };
- }()),
-
- /**
- * Subtracts a number from the <code>BigDecimal</code> and returns the result.
- * The original internal value remains unchanged.
- *
- * @memberOf jsx.math.BigDecimal.prototype
- * @param subtrahend : jsx.math.BigDecimal|number
- * The <code>BigDecimal</code> or <code>Number</code> to be subtracted.
- * If a <code>Number</code>, <var>summand2</var> is converted to a
- * <code>jsx.math.BigDecimal</code> first.
- * @returns {jsx.math.BigDecimal}
- * @see jsx.math.BigDecimal.prototype#add
- */
- subtract: (function () {
- var BigDecimal = jsx.math.BigDecimal;
-
- return function (subtrahend) {
- if (!(subtrahend instanceof BigDecimal))
- {
- subtrahend = new BigDecimal(subtrahend);
- }
-
- return this.add(subtrahend.negate());
- };
- }()),
-
- /**
- * Multiplies the <code>jsx.math.BigDecimal</code> with a number and returns the result.
- * The original internal value remains unchanged.
- *
- * @param factor2 : jsx.math.BigDecimal|number
- * The <code>jsx.math.BigDecimal</code> or <code>Number</code> to be multiplied by.
- * If a <code>Number</code>, <var>summand2</var> is converted to a
- * <code>jsx.math.BigDecimal</code> first.
- * @returns {jsx.math.BigDecimal}
- */
- multiply: (function () {
- var BigDecimal = jsx.math.BigDecimal;
-
- return function (factor2) {
- if (!(factor2 instanceof BigDecimal))
- {
- factor2 = new BigDecimal(factor2);
- }
-
- var normalized = BigDecimal.normalize(this, factor2);
-
- var factor1_value = normalized[0].getUnscaledValue();
- var factor2_value = normalized[1].getUnscaledValue();
-
- var d = new BigDecimal(factor1_value * factor2_value, 2 * normalized[0].getScale());
-
- return d;
- };
- }()),
-
- /**
- * Compares this <code>BigDecimal</code> with the specified BigDecimal.
- *
- * @param d : jsx.math.BigDecimal
- * @return Number
- * <code>&lt; -1</code> if this <code>BigDecimal</code> is smaller than <var>d</var>,
- * <code>&gt; 1</code> if it is greater than <var>d</var>,
- * <code>0</code> if they are equal.
- */
- compareTo: (function () {
- var BigDecimal = jsx.math.BigDecimal;
-
- return function (d) {
- if (!(d instanceof BigDecimal))
- {
- d = new BigDecimal(d);
- }
-
- var normalized = BigDecimal.normalize(this, d);
-
- return normalized[0].getUnscaledValue() - normalized[1].getUnscaledValue();
- };
- }()),
-
- equals: (function () {
- var BigDecimal = jsx.math.BigDecimal;
-
- return function (d) {
- if (!(d instanceof BigDecimal))
- {
- d = new BigDecimal(d);
- }
-
- return this.getUnscaledValue() == d.getUnscaledValue()
- && this.getScale() == d.getScale();
- };
- }()),
-
- /**
- * Returns a <code>BigDecimal</code> which is numerically equal to
- * this one but with any trailing zeros removed from the representation.
- *
- * @return jsx.math.BigDecimal
- */
- stripTrailingZeros: (function () {
- var BigDecimal = jsx.math.BigDecimal;
-
- return function () {
- var unscaledString = this.getUnscaledValue().toString();
- /* FIXME: new BigDecimal(2, 21) */
- var parts = unscaledString.match(/(0+)$/) || ["", ""];
- var insignificantLength = parts[1].length;
- if (insignificantLength > 0)
- {
- return new BigDecimal(
- unscaledString.substring(0, unscaledString.length - insignificantLength),
- -insignificantLength);
- }
-
- return this;
- };
- }()),
-
- /**
- * Returns the <code>Number</code> value represented by the
- * <code>BigDecimal</code>.
- *
- * @returns {Number}
- */
- valueOf: function () {
- return this.getUnscaledValue() * Math.pow(10, -this.getScale());
- },
-
- /**
- * Returns the JSON representation of the <code>BigDecimal</code>
- *
- * @returns {String}
- */
- toJSON: function () {
- return "{" + [
- "'originalValue': " + this.getOriginalValue(),
- "'unscaledValue': " + this.getUnscaledValue(),
- "'scale': " + this.getScale()
- ].join(", ")
- + "}";
- },
-
- /**
- * Returns the string representation of value represented by the
- * <code>BigDecimal</code>, without using exponent notation.
- *
- * @returns {String}
- */
- toPlainString: function () {
- var unscaledValue = this.getUnscaledValue();
- var unscaledString = unscaledValue.toString();
- var unscaledLength = unscaledString.length;
- var scale = this.getScale();
- var result;
- var a = [];
-
- if (scale - unscaledLength > 0)
- {
- a.length = scale - unscaledLength + 1;
- result = "0." + a.join("0") + unscaledString;
- }
- else if (scale - unscaledLength < 0)
- {
- a.length = -scale + 1;
-
- var decimals = unscaledString.substring(unscaledLength - scale);
- result = unscaledString.slice(0, unscaledLength - scale)
- + a.join("0")
- + (decimals ? "." + decimals : "");
- }
-
- return result;
- },
-
- /**
- * Returns the string representation of the value of
- * the <code>BigDecimal</code>, rounded if necessary.
- *
- * @returns string
- * @see jsx.math.BigDecimal.prototype#valueOf()
- */
- toString: function () {
- return this.valueOf().toString();
- }
-});
\ No newline at end of file
/live/math/bigdecimal.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/math/probability.js
===================================================================
--- live/math/probability.js (revision 509)
+++ live/math/probability.js (nonexistent)
@@ -1,187 +0,0 @@
-/**
- * <title>PointedEars' JSX: Math Library: Stochastics</title>
- * @requires object.js
- * @requires types.js
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2000-2011 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/**
- * Returns a uniformly distributed random value in the
- * closed interval
- * [<var>iLeftBorder</var>, <var>iRightBorder</var>]
- * (including <var>iLeftBorder</var> and
- * <var>iRightBorder</var>).
- *
- * @author
- * (C) 2000-2003 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- * @param nLeftBorder : optional number
- * Left border of the interval. If left out, <code>null</code>
- * or <code>undefined</code>, <code>-Number.MAX_VALUE</code> is
- * assumed.
- * @param nRightBorder : optional number
- * Right border of the interval. If left out, <code>null</code>
- * or <code>undefined</code>, <code>Number.MAX_VALUE</code> is
- * assumed.
- * @param fRandom : Function = Math.random
- * Function to be used for calculating the uniform random number
- * in the open unit interval (0.0, 1.0) (excluding 0.0 and 1.0).
- * If left out, <code>Math.random()</code> is used where the
- * the random number generator is seeded from the current time.
- * @return number
- * @see Math#random()
- */
-Math.rand = function(nLeftBorder, nRightBorder, fRandom) {
- if (nLeftBorder == null || typeof nLeftBorder == "undefined")
- {
- iLeftBorder = -Number.MAX_VALUE;
- }
-
- if (nRightBorder == null || typeof nRightBorder == "undefined")
- {
- iRightBorder = Number.MAX_VALUE;
- }
-
- if (!fRandom)
- {
- fRandom = function() {
- return Math.random();
- };
- }
-
- return fRandom() * (nRightBorder - nLeftBorder) + nLeftBorder;
-};
-
-/**
- * Returns a uniformly distributed random integer value in the
- * closed interval
- * [<var>iLeftBorder</var>, <var>iRightBorder</var>]
- * (including <var>iLeftBorder</var> and
- * <var>iRightBorder</var>).
- *
- * @author
- * (C) 2000-2003 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- * @param iLeftBorder : optional number
- * Left border of the interval. If left out, <code>null</code>
- * or <code>undefined</code>,
- * <code>Math.floor(-Number.MAX_VALUE)</code> is assumed.
- * @param iRightBorder : optional number
- * Right border of the interval. If left out, <code>null</code>
- * or <code>undefined</code>,
- * <code>Math.ceil(Number.MAX_VALUE)</code> is assumed.
- * @param fRandom : Function = Math.random
- * Function to be used for calculating the uniform random number
- * in the open unit interval (0.0, 1.0) (excluding 0.0 and 1.0).
- * If left out, <code>Math.random()</code> is used where the
- * the random number generator is seeded from the current time.
- * @return number
- * @see Math#random()
- */
-Math.randInt = function(iLeftBorder, iRightBorder, fRandom) {
- if (iLeftBorder == null || typeof iLeftBorder == "undefined")
- {
- iLeftBorder = -Number.MAX_VALUE;
- }
- iLeftBorder = Math.floor(iLeftBorder);
-
- if (iRightBorder == null || typeof iRightBorder == "undefined")
- {
- iRightBorder = Number.MAX_VALUE;
- }
- iRightBorder = Math.ceil(iRightBorder);
-
- if (! fRandom)
- {
- fRandom = function() {
- return Math.random();
- };
- }
-
- return Math.round(Math.rand(iLeftBorder, iRightBorder, fRandom));
-};
-
-/**
- * Returns a value dependent on statistical probability.
- *
- * @param nChance : number
- * Statistical probability that <var>ifChance</var> is returned.
- * <code>1.0</code> means 100% of all possible cases.
- * @param ifChance
- * Value that is returned if chances are in favor of it.
- * @param otherwise
- * Value that is returned if chances are against
- * <var>ifChance</var>, i.e. the one that is returned
- * in <code>((1 - nChance) * 100)</code>% of all
- * possible cases.
- * @param fRandom : Function = Math.random
- * Function to be used for calculating the uniformly
- * distributed random number in the open unit interval
- * <code>(0.0, 1.0)</code> (excluding 0.0 and 1.0).
- * If left out, <code>Math.random()</code> is used where
- * the random number generator is seeded from the current
- * time.
- * @return mixed
- * <var>ifChance</var> if the chances are in favour of it,
- * <var>otherwise</var> if they are against it.
- * @see Math#random()
- */
-Math.byChance = function(nChance, ifChance, otherwise, fRandom) {
- if (!fRandom)
- {
- fRandom = function() {
- return Math.random();
- };
- }
-
- return (
- fRandom() < nChance
- ? ifChance
- : otherwise);
-};
-
-/**
- * Calculates the binomial coefficient.
- *
- * @param iUpper : number
- * @param iLower : number
- * @return number
- * The binomial coefficient <var>iUpper</var> above
- * <var>iLower</var> (|_<var>iUpper</var><b>!</b> /
- * <var>iLower<var><b>!</b>_| * (<var>iUpper</var>
- * - <var>iLower</var>)<b>!</b>)
- * @author (c) 2000 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- */
-Math.binomCoeff = function(iUpper, iLower) {
- var result = 0;
-
- if (iUpper >= iLower)
- {
- result = Math.floor(Math.fac(iUpper)
- / (Math.fac(iLower) * Math.fac(iUpper - iLower)));
- }
- else
- {
- throwException(new Math.InvalidArgumentError(
- "binomCoeff(" + iUpper + ", " + iLower + ")"));
- }
-
- return result;
-};
/live/math/probability.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/math/interval.js
===================================================================
--- live/math/interval.js (revision 509)
+++ live/math/interval.js (nonexistent)
@@ -1,230 +0,0 @@
-/**
- * <title>PointedEars' JSX: Math Library: Intervals</title>
- * @requires object.js
- * @requires types.js
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2000-2011 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/**
- * Specifies a numeric interval, closed by default.
- *
- * @param aSections : Array, @property sections : Array = [0, 1]
- * Specifies the sections of the interval, starting
- * with the left border, continuing with a non-zero
- * number of optional intermitting borders and
- * ending with the right border. Note that the
- * elements are automatically arranged in numerically
- * ascending order.
- * @param bLeftOpen : boolean, @property leftOpen : boolean = false
- * If true, specifies that the interval is open
- * on the left, meaning that its left border
- * is not part of the interval.
- * @param bRightOpen : boolean, @property rightOpen : boolean = false
- * If true, specifies that the interval is open
- * on the right, meaning that its right border
- * is not part of the interval.
- */
-Math.Interval = function(aSections, bLeftOpen, bRightOpen) {
- if (isArray(aSections))
- {
- aSections.sort(function(a, b) { return a - b; });
- this.sections = aSections || [0, 1];
- this.leftOpen = !!bLeftOpen || false;
- this.rightOpen = !!bRightOpen || false;
- }
-};
-
-/**
- * Returns the left border of the interval.
- *
- * @return mixed
- * The left border of the interval
- */
-Math.Interval.prototype.getLeftBorder = function() {
- return this.sections[0];
-};
-
-/**
- * Returns the right border of the interval.
- *
- * @return mixed
- * The right border of the interval
- */
-Math.Interval.prototype.getRightBorder = function() {
- return this.sections[this.sections.length - 1];
-};
-
-/**
- * @param n : number
- * @param o : optional Interval
- * @return number
- * @todo
- */
-Math.getSubIntervalIndex = function(n, o) {
- var result = null;
-
- if (!(o instanceof Math.Interval) && this instanceof Math.Interval)
- {
- o = this;
- }
-
- if (o instanceof Math.Interval)
- {
- var
- start = 0,
- s = o.sections,
- end = s.length,
- max = end,
- pivot = 0;
-
- do
- {
- /* Use interpolation search [O(log(log n))] for many sections */
- if (max > 10000)
- {
- var nS = s[start];
-
- pivot = start + Math.floor((end - start) * (n - nS) / (s[end] - nS));
- }
- else
- {
- /* Use binary search [O(log n)] */
- pivot = (start + end) >> 1;
- }
-
- if (start + 1 == end)
- {
- if (n - s[start] <= s[end] - n)
- {
- result = start;
- }
- else
- {
- result = end;
- }
- break;
- }
- else if (n < s[pivot])
- {
- /* continue search left-hand side */
- end = pivot;
- }
- else
- {
- /* continue search right-hand side */
- start = pivot;
- }
- }
- while (n >= s[start] && n <= s[end]);
- }
-
- return result;
-};
-
-/**
- * @param n : number
- * @param o : optional Interval
- * @return boolean
- * @todo
- */
-Math.isInInterval = function(n, o) {
- var result = false;
-
- if (!(o instanceof Math.Interval) && this instanceof Math.Interval)
- {
- o = this;
- }
-
- if (o instanceof Math.Interval)
- {
- var lo, l, ro, r;
-
- result =
- (((lo = o.leftOpen) && n > (l = o.getLeftBorder()))
- || (!lo && n >= l))
- &&
- (((ro = o.rightOpen) && n < (r = o.getRightBorder()))
- || (!ro && n <= r));
- }
-
- return result;
-};
-
-/**
- * @return Array
- */
-Math.getRightOpenIntervals = function() {
- var a = new Array();
-
- var len = arguments.length;
- if (len == 0)
- {
- a.push(new Math.Interval(0, 1, true));
- }
- else
- {
- a.push(new Math.Interval(arguments[0], arguments[1], true));
- }
-
- if (len > 2)
- {
- len = arguments.length;
- for (var i = 1; i < len; i++)
- {
- a.push(new Math.Interval(arguments[i], arguments[i+1], true));
- }
- }
-
- return a;
-};
-
-/**
- * @param n : number
- * @param a : [Interval]
- * @return number
- * the index of the first interval in <code>a</code> that contains
- * <code>n</code>, -1 if there is no (such) interval.
- */
-Math.getIntervalIndex = function(n, a) {
- var result = -1;
-
- if (a instanceof Array)
- {
- for (var i = 0, len = a.length; i < len; i++)
- {
- var o;
- if ((o = a[i]) instanceof Math.Interval && o.contains(n))
- {
- result = i;
- break;
- }
- }
- }
-
- return result;
-};
-
-jsx.object.extend(Math.Interval.prototype, {
- 'contains': Math.isInInterval,
- 'getRightOpenIntervals': Math.getRightOpenIntervals,
- 'getIntervalIndex': Math.getIntervalIndex
-});
/live/math/interval.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/math/float.js
===================================================================
--- live/math/float.js (revision 509)
+++ live/math/float.js (nonexistent)
@@ -1,817 +0,0 @@
-/**
- * <title>PointedEars' JSX: Math Library: Floating-point arithmetics</title>
- * @requires object.js
- * @requires types.js
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2000-2012 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-if (typeof jsx.math == "undefined")
-{
- /**
- * @namespace
- */
- jsx.math = {};
-}
-
-/**
- * Returns the numerical value of an object.
- *
- * @param obj : Object
- * @return {number}
- * <code>NaN</code> if <var>obj</var> does not refer to an object
- * or does not have a <code>valueOf()</code> method that returns
- * a number value; the return value of the object's
- * <code>valueOf()</code> method otherwise.
- */
-jsx.math.getValue = function (obj) {
- var value = (typeof obj != "undefined" && (typeof obj == "object" && obj)
- && typeof obj.valueOf == "function")
- ? obj.valueOf()
- : value;
-
- if (typeof value == "number")
- {
- return value;
- }
-
- return NaN;
-};
-
-/**
- * Returns the value of the smallest argument.
- *
- * @return {number}
- * The value of the smallest argument.
- * If an argument is an object but not an <code>Array</code>,
- * and has a <code>valueOf()</code> method that returns a number,
- * the return value is used; if it does not have such a
- * method or is an <code>Array</code>, the values of its
- * enumerable non-function properties or (with Arrays) its
- * number-indexed properties are evaluated.
- * If no arguments are provided, <code>Number.POSITIVE_INFINITY</code>
- * is returned.
- */
-jsx.math.min = (function () {
- var getValue = jsx.math.getValue;
-
- return function () {
- var result = Number.POSITIVE_INFINITY;
- var min_el;
-
- for (var i = 0, len = arguments.length; i < len; ++i)
- {
- var a = arguments[i];
- if (jsx.object.isArray(a))
- {
- var a2 = a.slice();
- a2.sort(function (a, b) { return a - b; });
- if (a2[0] < result)
- {
- result = a2[0];
- }
- }
- else if (typeof a == "object")
- {
- var value = getValue(a);
- if (value)
- {
- if (value < result)
- {
- result = value;
- }
- }
- else
- {
- for (var j in a)
- {
- if ((min_el = jsx.math.min(a[j])) < result)
- {
- result = min_el;
- }
- }
- }
- }
- else if (a < result)
- {
- result = a;
- }
- }
-
- return result;
- };
-}());
-
-/**
- * Returns the value of the greatest argument.
- *
- * @return {number}
- * The value of the greatest argument.
- * If an argument is an object but not an <code>Array</code>,
- * and has a <code>valueOf()</code> method that returns a number,
- * the return value is used; if it does not have such a
- * method or is an <code>Array</code>, the values of its
- * enumerable non-function properties or (with Arrays) its
- * number-indexed properties are evaluated.
- * If no arguments are provided, <code>Number.NEGATIVE_INFINITY</code>
- * is returned.
- */
-jsx.math.max = (function () {
- var getValue = jsx.math.getValue;
-
- return function () {
- var result = Number.NEGATIVE_INFINITY;
-
- for (var i = 0, len = arguments.length; i < len; ++i)
- {
- var a = arguments[i], max_el;
- if (jsx.object.isArray(a))
- {
- var a2 = a.slice();
- a2.sort(function (a, b) { return b - a; });
- if (a2[0] > result)
- {
- result = a2[0];
- }
- }
- else if (typeof a == "object")
- {
- var value = getValue(a);
- if (value)
- {
- if (value > result)
- {
- result = value;
- }
- }
- else
- {
- for (var j in a)
- {
- if ((max_el = jsx.math.max(a[j])) > result)
- {
- result = max_el;
- }
- }
- }
- }
- else if (a > result)
- {
- result = a;
- }
- }
-
- return result;
- };
-}());
-
-/**
- * Returns the average value of the arguments.
- *
- * @return number
- * The average value of the arguments.
- * If an argument is an object but not an <code>Array</code>,
- * and has a <code>valueOf()</code> method that returns a number,
- * the return value is used; if it does not have such a
- * method or is an <code>Array</code>, the values of its
- * enumerable non-function properties or (with Arrays) its
- * number-indexed properties are evaluated.
- * If no arguments are provided, <code>NaN</code> is returned.
- */
-jsx.math.avg = (function () {
- var getValue = jsx.math.getValue;
-
- return function () {
- var sum = 0;
- var count = 0;
-
- for (var i = 0, len = arguments.length; i < len; i++)
- {
- var a = arguments[i];
- if (jsx.object.isArray(a))
- {
- for (var j = 0; j < a.length; j++)
- {
- ++count;
- sum += jsx.math.avg(a[j]);
- }
- }
- else if (typeof a == "object")
- {
- var value = getValue(a);
- if (value)
- {
- ++count;
- sum += value;
- }
- else
- {
- for (j in a)
- {
- ++count;
- sum += jsx.math.avg(a[j]);
- }
- }
- }
- else
- {
- count++;
- sum += parseFloat(a);
- }
- }
-
- return (sum / count);
- };
-}());
-
-/**
- * Returns the arithmetic median of the arguments.
- *
- * The [arithmetic (one-dimensional)] median is [defined] as
- * the numerical value separating the higher half of a sample
- * from the lower half of a sample. If there is an even number
- * of observations, then there is no single middle value; the
- * median is then […] defined to be the mean of the two middle
- * values. (From Wikipedia, the free encyclopedia)
- *
- * @return number
- * The arithmetic median of the arguments.
- * If an argument is an object but not an <code>Array</code>,
- * and has a <code>valueOf()</code> method that returns a number,
- * the return value is used; if it does not have such a
- * method or is an <code>Array</code>, the values of its
- * enumerable non-function properties or (with Arrays) its
- * number-indexed properties are evaluated.
- * If no arguments are provided, <code>NaN</code> is returned.
- */
-jsx.math.median = (function () {
- var getValue = jsx.math.getValue;
-
- return function () {
- var values = [];
- var result;
-
- for (var i = 0, len = arguments.length; i < len; i++)
- {
- var a = arguments[i];
- if (jsx.object.isArray(a))
- {
- for (var j = 0; j < a.length; j++)
- {
- values.push(a[j]);
- }
- }
- else if (typeof a == "object")
- {
- var value = getValue(a);
- if (value)
- {
- values.push(value);
- }
- else
- {
- for (j in a)
- {
- values.push(a[j]);
- }
- }
- }
- else
- {
- values.push(parseFloat(a));
- }
- }
-
- values.sort(function (a, b) { return a - b; });
-
- len = values.length;
- if (len > 1)
- {
- var middle = (len / 2) - 1;
- if (len % 2 == 0)
- {
- result = jsx.math.avg(
- values[Math.floor(middle)], values[Math.ceil(middle)]);
- }
- else
- {
- result = values[middle];
- }
- }
- else if (len > 0)
- {
- result = values[0];
- }
- else
- {
- result = NaN;
- }
-
- return result;
- };
-}());
-
-/**
- * @param n : number
- * Number of which to compare the <code>iRoot</code>-th root.
- * @param iRoot : optional number = 2
- * Root exponent. If not integer, the floor (largest integer
- * less than the argument) of <code>iRoot</code> is used.
- * @return number
- * The <var>iRoot</var>-th root of <var>n</var>
- */
-jsx.math.root = function(n, iRoot) {
- return (iRoot % 2 && n < 0 ? -1 : +1)
- * Math.pow(Math.abs(n), 1/Math.floor(iRoot));
-};
-
-/**
- * @param n : number
- * @return number
- * <var>n</var> squared, i.e. <code>Math.pow(n, 2)</code>.
- * @author (c) 2003 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- */
-jsx.math.sqr = function(n) {
- return Math.pow(n, 2);
-};
-
-/**
- * @param n : number
- * @return type number
- * The cubic value of <code>n</code>, i.e.
- * <code>Math.pow(n, 3)</code>.
- * @author (c) 2000 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- */
-jsx.math.cub = function(n) {
- return Math.pow(n, 3);
-};
-
-/**
- * @param n : number
- * @return type number
- * the cubic root of <code>n</code>, i.e.
- * <code>Math.pow(n, 1/3)</code>, but also works
- * with negative values of <code>n</code>.
- * @author (c) 2000 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- */
-jsx.math.cubrt = function(n) {
- return jsx.math.root(n, 3);
-};
-
-
-/** @subsection Rounding */
-
-/*
- * TODO:
- * Original round function from JavaScript-FAQ (http://dcljs.de/faq)
- * Why not this way?
- */
-
-/**
- * @param x
- * @param n
- * @return string
- * @deprecated
- */
-function roundDigits_deprecated(x, n) {
- if (n < 1 || n > 14)
- {
- return false;
- /* Impossible to round left to point;
- Returns non-numeric value if invalid number of digits
- which causes further calculations to fail (NaN) although
- they could succeed
- */
- }
-
- var e = Math.pow(10, n);
-
- var k = (Math.round(x * e) / e).toString();
- /* Do not use toString() because it is part of JavaScript 1.1
- and not all JavaScript capable browsers support it.
- Use the String(...) function instead.
- */
-
- if (k.indexOf('.') == -1){k += '.';
- /* Sometimes it is not desired to have the decimal point
- when dealing with integers. The function does not allow
- output without point. A further argument is required.
- */}
-
- k += e.toString().substring(1);
- /* See above: Do not use Numeric.toString(...) method.
- */
-
- return k.substring(0, k.indexOf('.') + n+1);
- /* Why this complicated though it could be much more simple? */
-}
-
-/**
- * @param n : number
- * Numeric value to round. Required.
- * @param iSigDecimals : optional number
- * Significant decimals to round to. If negative
- * round to positive powers of 10. Optional.
- * If out of the closed interval of [-14;14], the
- * function exits and returns n (unchanged).
- * If not provided, assume 0 and round the value to
- * a whole number.
- * @param iForceDecimals : optional number
- * Number of digits to be returned with the number.
- * If smaller than iSigDigits, the value will be
- * ignored and the result is a Numeric value.
- * Otherwise the required number of zeroes will be
- * appended and the result is a String value.
- * Optional.
- * @param bForceLeadingZero : optional number
- * If true, force leading zero if the value is between
- * 0 and 1 or 0 and -1. The argument is optional.
- * If not provided, apply bForceLeadingZero=false;
- * @param sDecSeparator : optional string
- * The character used for decimal delimiter instead.
- * In English speaking countries the point (".")
- * is used instead of comma (",") and vice-versa.
- * Optional. If not provided, use default decimal
- * separator. If provided, the result is a String value.
- * @return number|string
- * <var>n</var> rounded to the number of specified digits, optionally
- * with leading zeroes.
- */
-jsx.math.roundDigits = function(n, iSigDecimals, iForceDecimals,
- bForceLeadingZero, sDecSeparator)
-{
- if (! iSigDecimals)
- {
- iSigDecimals = 0;
- }
-
- /*
- * Returns the number itself when called with invalid arguments,
- * so further calculations will not fail because of a wrong
- * function call.
- */
- if (iSigDecimals < -14 || iSigDecimals > 14)
- {
- return n;
- }
-
- var e = Math.pow(10, iSigDecimals);
- var i = String(n).indexOf(".");
-
- if (i < 0)
- {
- i = String(n).length - 1;
- }
-
- if (String(n).substring(0, i).length <= -iSigDecimals)
- {
- return n;
- }
-
- var k = Math.round(n * e) / e;
-
- if (arguments.length < 3)
- {
- iForceDecimals = 0;
- }
-
- if (iForceDecimals > 0)
- {
- k = String(k);
- if ((i = k.indexOf(".")) < 0 && iForceDecimals > 0)
- {
- k += ".";
- }
-
- for (i = k.slice(k.indexOf(".") + 1).length;
- i < iForceDecimals;
- i++)
- {
- k += "0";
- }
- }
-
- if (bForceLeadingZero && String(k).charAt(0) == ".")
- {
- k = "0" + k;
- }
-
- if (arguments.length < 5)
- {
- sDecSeparator = "";
- }
-
- if (sDecSeparator.length > 0)
- {
- k = String(k);
- i = k.indexOf(".");
- if (i >= 0)
- {
- k = k.substring(0, i) + sDecSeparator + k.slice(i + 1);
- }
- }
-
- return k;
-};
-
-
-/** @subsection Rational arithmetics */
-
-/**
- * Returns the period of a number, i.e. a repeated
- * substring of its decimals that entirely make up
- * following decimals.
- *
- * @param n : number
- * The number of which the period should be found out.
- * @param bLoose : optional boolean = false
- * If <code>true</code>, triggers Loose Mode
- * which notes <code>iPrecision</code>.
- * @param iPrecision : optional number = 14
- * In Loose Mode, defines the maximum number
- * of decimals to parse for a period. The default
- * is 14 (one less than maximum known precision).
- * @return string
- * The period of <code>n</code> as a string;
- * "0" if there is none.
- */
-jsx.math.getPeriod = function(n, bLoose, iPrecision) {
- var s = String(n);
- for (var i = 3; i < s.length; i++)
- {
- var
- currentPeriod = s.substring(2, i),
- rx = new RegExp("^\\d*\\.\\d*(" + currentPeriod + ")+$");
-
- if (rx.test(s))
- {
- return currentPeriod;
- }
- }
-
- return "0";
-};
-
-/**
- * @param fDec : number
- * @return string
- * The representation of <var>fDec</var> in whole fractions
- */
-jsx.math.toFraction = function(fDec) {
- /**
- * I: x = 0.111111111111111 y = 1
- * II: 10x = 1.111111111111111
- * II - I: 9x = 1
- * x = 1/9
- *
- * 1. Y = periodLength(X)
- * 2. Z = X * 10^Y
- * 3. A = Z - X
- * 4. RESULT = 'A "/" (10^Y - 1)'
- */
-
- var y = jsx.math.getPeriod(fDec).length;
- var z = fDec * Math.pow(10, y);
- var dividend = Math.round(z - fDec);
- var divisor = Math.round((Math.pow(10, y) - 1));
-
- /* Cancel-out the fraction */
- var d = jsx.math.gcd(dividend, divisor);
- if (d > 1)
- {
- dividend /= d;
- divisor /= d;
- }
-
- var result = dividend + "/" + divisor;
-
- return result;
-};
-
-
-/** @subsection Trigonometry */
-
-jsx.math.UNIT_RAD = 0;
-jsx.math.UNIT_DEG = 1;
-jsx.math.UNIT_GRAD = 2;
-
-/**
- * Unlike the {@link js#Math built-in methods}, the following
- * functions accept a second argument to determine if the argument
- * should be handled as radian (dtRad == 0 [default];
- * x = n*[0..2*Math.PI], degree (dtDeg == 1; x = n*[0..360])
- * or gradian (dtGrad == 2; x = n*[0..400] gon) value.
- */
-
-/**
- * Returns the sine of an angle.
- *
- * Call this method instead of <code>jsx.math.sinX()</code>,
- * which is deprecated.
- *
- * @param x : number
- * @param iArgType : number
- * @return number
- * The sine of <var>x</var>
- */
-jsx.math.sin = function(x, iArgType) {
- switch (iArgType)
- {
- case jsx.math.UNIT_DEG:
- x = x/180 * Math.PI;
- break;
-
- case jsx.math.UNIT_GRAD:
- x = x/200 * Math.PI;
- }
-
- return Math.sin(x);
-};
-
-/* (non-JSdoc)
- * @deprecated
- */
-jsx.math.sinX = jsx.math.sin;
-
-/**
- * Returns the cosine of an angle.
- *
- * Call this method instead of <code>jsx.math.cosX()</code>,
- * which is deprecated.
- *
- * @param x : number
- * @param iArgType : number
- * @return number
- * The cosine of <var>x</var>
- */
-jsx.math.cos = function(x, iArgType) {
- switch (iArgType)
- {
- case jsx.math.UNIT_DEG:
- x = x/180 * Math.PI;
- break;
-
- case jsx.math.UNIT_GRAD:
- x = x/200 * Math.PI;
- }
-
- return Math.cos(x);
-};
-
-/* (non-JSdoc)
- * @deprecated
- */
-jsx.math.cosX = jsx.math.cos;
-
-/**
- * Returns the tangent of an angle.
- *
- * Call this method instead of <code>jsx.math.tanX()</code>,
- * which is deprecated.
- *
- * @param x : number
- * @param iArgType : number
- * @return number
- * The tangent of <var>x</var>. If @link{js#Math.tan()} is
- * undefined, it uses @link{jsx.math#sin()} and
- * @link{jsx.math#cos()}.
- * @requires jsx.object#isMethod()
- */
-jsx.math.tan = function(x, iArgType) {
- var jsx_object = jsx.object;
-
- switch (iArgType)
- {
- case jsx.math.UNIT_DEG:
- x = x/180 * Math.PI;
- break;
-
- case jsx.math.UNIT_GRAD:
- x = x/200 * Math.PI;
- }
-
- if (jsx_object.isMethod(Math, "tan"))
- {
- return Math.tan(x);
- }
-
- return (jsx.math.sin(x) / jsx.math.cos(x));
-};
-
-/* (non-JSdoc)
- * @deprecated
- */
-jsx.math.tanX = jsx.math.tan;
-
-/** @subsection Complex numbers */
-
-/**
- * @param nRe : number
- * @param nIm : number
- */
-jsx.math.Complex = function (nRe, nIm) {
- Number.call(this);
- this.re = Number(nRe) || 0;
- this.im = Number(nIm) || 0;
-};
-
-jsx.math.Complex.extend(Number);
-
-/**
- * @param a : Complex
- * @param b : Complex
- * @return Complex
- * The complex sum of <var>a</var> and <var>b</var>
- */
-jsx.math.addComplex =
-jsx.math.Complex.prototype.add = function (a, b) {
- var result = null;
- var math = jsx.math;
-
- if (this instanceof math.Complex)
- {
- b = a;
- a = this;
- }
-
- if (a && b)
- {
- if (!(a instanceof math.Complex))
- {
- a = new math.Complex(a);
- }
-
- if (!(b instanceof math.Complex))
- {
- b = new math.Complex(b);
- }
-
- return new math.Complex(a.re + b.re, a.im + b.im);
- }
-};
-
-/**
- * @param a : Complex
- * @param b : Complex
- * @return Complex
- * The complex product of <var>a</var> and <var>b</var>
- */
-jsx.math.mulComplex =
-jsx.math.Complex.prototype.mul = function(a, b) {
- var result = null;
-
- if (this instanceof jsx.math.Complex)
- {
- b = a;
- a = this;
- }
-
- if (a && b)
- {
- if (!(a instanceof jsx.math.Complex))
- {
- a = new jsx.math.Complex(a);
- }
-
- if (!(b instanceof jsx.math.Complex))
- {
- b = new jsx.math.Complex(b);
- }
-
- // a.re, a.im b.re, b.im
- // (a, b ) * (c, d ) = (a * c - b * d, a * d + b * c)
- return new jsx.math.Complex(
- a.re * b.re - a.im * b.im,
- a.re * b.im + a.im * b.re);
- }
-};
-
-/*
- * TODO: Hyperbolic functions
- */
/live/math/float.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/.buildpath
===================================================================
--- live/.buildpath (revision 509)
+++ live/.buildpath (nonexistent)
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<buildpath>
- <buildpathentry excluding="test/es-matrix/**|test/es-matrix2/**" kind="src" path=""/>
- <buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>
-</buildpath>
Index: live/http.js
===================================================================
--- live/http.js (revision 509)
+++ live/http.js (nonexistent)
@@ -1,863 +0,0 @@
-/**
- * @fileOverview <title>HTTP Library</title>
- * @file $Id$
- * @requires
- * object.js for jsx.object#isMethod()
- *
- * @author (C) 2004-2013 <a href="mailto:js@PointedEars.de">Thomas Lahn</a>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx.net == "undefined")
-{
- /**
- * @namespace
- */
- jsx.net = {};
-}
-
-/**
- * @idl{WebIDL}
- *
- * interface HTTPResponseListener : Function {
- * boolean HTTPResponseListener(IXMLHttpRequest x);
- * // Handles the response for the HTTP request initiated with x.send()
- * // SHOULD return a true-value if successful, a false-value otherwise
- * };
- *
- * interface HTTPMethod {
- * const string GET="GET"
- * const string POST="POST"
- * };
- *
- * interface HTTPRequestReadyState {
- * const int COMPLETED=4
- * };
- *
- * interface HTTPStatus {
- * const RegExp OK_EXPR=/\b(0|2\d\d|1223)\b/
- * const RegExp FAILED_EXPR=/\b[45]\d\d\b/
- * };
- *
- * interface HTTPRequest {
- * attribute string URL
- * setter=setURL(string)
- * default=setURL();
- * attribute HTTPMethod method
- * setter=setMethod(string)
- * default=setMethod();
- * attribute boolean async
- * setter=setAsync(boolean)
- * default=setAsync();
- * attribute string data
- * setter=setData(string)
- * default=setData();
- * attribute string requestType
- * setter=setRequestType(string)
- * default=setRequestType();
- * readonly attribute HTTPRequestReadyState readyState
- * readonly attribute HTTPStatus status
- * attribute HTTPResponseListener _responseListener
- * attribute HTTPResponseListener successListener
- * attribute HTTPResponseListener errorListener
- *
- * HTTPRequest HTTPRequest(
- * optional string sURL = document.URL,
- * optional string sMethod = HTTPMethod.GET,
- * optional boolean bAsync = true,
- * optional HTTPResponseListener fSuccessListener = null,
- * optional HTTPResponseListener fErrorListener = null);
- * // URL=sURL, method=sMethod, async=bAsync,
- * // successListener=fSuccessListener, errorListener=fErrorListener
- *
- * boolean setURL(optional string sURL = "");
- * // URL=sURL
- *
- * boolean setMethod(optional string sMethod = HTTPMethod.GET);
- * // method=sMethod
- *
- * boolean setAsync(optional boolean bAsync = true);
- * // async=bAsync
- *
- * boolean setData(optional string sData = "");
- * // data=sData
- *
- * boolean setRequestType(
- * optional string sRequestType = "application/x-www-form-urlencoded");
- * // requestType=sRequestType
- *
- * boolean send(optional string sData = null,
- * optional string sURL = document.URL,
- * optional string sMethod = HTTPMethod.GET,
- * optional boolean bAsync = true);
- * // URL=sURL, method=sMethod
- * };
- *
- * @end
- */
-jsx.net.http = {
- /** @version */
- version: "0.1.$Revision$ ($Date$)",
- copyright: "Copyright \xA9 2004-2012",
- author: "Thomas Lahn",
- email: "js@PointedEars.de",
- path: "http://PointedEars.de/scripts/",
-
- /**
- * Creates a new <code>Request</code> object.
- *
- * You can set up response listeners per argument (see below), or
- * {@link jsx.net.http.Request.prototype#setResponseListener setResponseListener()},
- * {@link jsx.net.http.Request.prototype#setSuccessListener setSuccessListener()},
- * and {@link jsx.net.http.Request.prototype#setErrorListener setErrorListener()};
- * then call {@link jsx.net.http.Request.prototype#send send()} to submit
- * the request.
- *
- * NOTE: The objects so created are not thread-safe. You should
- * not modify their properties while another request with the same
- * object is in progress. When in doubt, create a new object for
- * each request. (This issue may be fixed in a later version.)
- *
- * @param {string} sURL = document.URL
- * Request URL. The default is the URL of the sending resource.
- * @param {string} sMethod = jsx.net.http.Request.method.GET
- * Request method. Use the <code>jsx.net.http.Request.method.GET</code>
- * (default) and <code>.POST</code> properties to avoid problems
- * caused by case mismatch, and other typos.
- * @param {boolean} bAsync = true
- * Pass <code>true</code> to make an asynchronous request (default),
- * that is, a request that is processed in the background and does
- * not interrupt user operation.
- * @param {jsx.net.http.ResponseListener} fSuccessListener = null
- * The function to handle the response of a successful request
- * (default: <code>null</code>).
- * @param {jsx.net.http.ResponseListener} fErrorListener = null
- * The function to handle the response of a request that failed
- * (default: <code>null</code>).
- * @constructor
- */
- Request: function (sURL, sMethod, bAsync, fSuccessListener, fErrorListener) {
- this.setURL(sURL, true);
- this.setMethod(sMethod);
- this.setAsync(bAsync);
- this.setSuccessListener(fSuccessListener);
- this.setErrorListener(fErrorListener);
- this.setData();
- this.setRequestType();
- }
-};
-
-/**
- * @namespace
- * @name jsx.net.http.Request
- */
-jsx.object.extend(jsx.net.http.Request, {
- /**
- * @namespace
- */
- method: {
- /**
- * Use the predefined properties to avoid problems
- * caused by case mismatch and other typos.
- */
- GET: "GET",
- POST: "POST"
- },
-
- /**
- * @namespace
- */
- readyState: {
- UNINITIALIZED: 0,
- LOADING: 1,
- LOADED: 2,
- INTERACTIVE: 3,
- COMPLETED: 4
- },
-
- /**
- * @namespace
- */
- status: {
- /*
- * NOTE: MSXML translates 204 to 1223, see
- * https://prototype.lighthouseapp.com/projects/8886/tickets/129-ie-mangles-http-response-status-code-204-to-1223
- */
- OK_EXPR: /\b(0|2\d\d|1223)\b/,
- LOCAL_NONE: 0,
-
- CONTINUE: 100,
- SWITCH_PROTOCOL: 101,
-
- OK: 200,
- CREATED: 201,
- ACCEPTED: 202,
- NONAUTHOR_INFO: 203,
- NO_CONTENT: 204,
- RESET_CONTENT: 205,
- PARTIAL_CONTENT: 206,
-
- MULTIPLE_CHOICES: 300,
- MOVED_PERMANENTLY: 301,
- FOUND: 302,
- SEE_OTHER: 303,
- NOT_MODIFIED: 304,
- USE_PROXY: 305,
- TEMP_REDIR: 307,
-
- FAILED_EXPR: /\b[45]\d\d\b/,
-
- CLIENT_ERROR_EXPR: /\b4\d\d\b/,
- BAD_REQUEST: 400,
- UNAUTHORIZED: 401,
- PAYMENT_REQUIRED: 402,
- FORBIDDEN: 403,
- NOT_FOUND: 404,
- METHOD_NOT_ALLOWED: 405,
- NOT_ACCEPTABLE: 406,
- PROXY_AUTH_REQUIRED: 407,
- REQ_TIMEOUT: 408,
- CONFLICT: 409,
- GONE: 410,
- LENGTH_REQUIRED: 411,
- PRECOND_FAILED: 412,
- REQ_ENTITY_TOO_LARGE: 413,
- REQ_URI_TOO_LONG: 414,
- UNSUPP_MEDIA_TYPE: 415,
- REQ_RANGE_NOT_SUITABLE: 416,
- EXPECT_FAILED: 417,
-
- SERVER_ERROR_EXPR: /\b5\d\d\b/,
- INT_SERVER_ERROR: 500,
- NOT_IMPLEMENTED: 501,
- BAD_GATEWAY: 502,
- SVC_UNAVAIL: 503,
- GATEWAY_TIMEOUT: 504,
- HTTP_VER_NOT_SUPP: 505
- }
-});
-
-jsx.net.http.Request.prototype = {
- constructor: jsx.net.http.Request,
-
- /**
- * Cached XHR object
- *
- * @protected
- */
- _xhr: null,
-
- requestHeaders: jsx.object.getDataObject(),
-
- useCache: true,
-
- /**
- * Method to be called onreadystatechange
- *
- * @private
- * @function
- */
- _responseListener: (function() {
- var
- Request = jsx.net.http.Request,
- jsx_object = jsx.object,
- oStatus = Request.status;
-
- /**
- * @param {XMLHttpRequest} response
- */
- return function (response) {
- if (response.readyState === Request.readyState.COMPLETED)
- {
- var reqStatus = response.status;
- if (oStatus.OK_EXPR.test(reqStatus))
- {
- if (jsx_object.isMethod(this.successListener))
- {
- return this.successListener(response);
- }
- }
- else if (oStatus.FAILED_EXPR.test(reqStatus))
- {
- if (jsx_object.isMethod(this.errorListener))
- {
- this.errorListener(response);
- }
- }
- }
- };
- }()),
-
- /**
- * Sets the <code>URL</code> property.
- *
- * @param {string} sURL
- * If not provided or a false-value, the
- * URL of the sending recource is set.
- * @param {boolean} bDontEncode (optional)
- * If <code>true</code>, do not encode the request URI.
- */
- setURL: function (sURL, bDontEncode) {
- if (!bDontEncode && sURL)
- {
- sURL = encodeURI(sURL);
- }
-
- /**
- * @type string
- */
- this.URL = (sURL || document.URL);
- },
-
- /**
- * Sets the <code>method</code> property. Use the
- * <code>HTTPRequest.method.(GET|POST)</code> properties
- * to avoid problems with character case and typos.
- *
- * @param {string} sMethod (optional)
- * If not provided or a false-value, the value
- * of <code>HTTPRequest.method.GET</code> is used.
- */
- setMethod: function (sMethod) {
- this.method =
- sMethod
- ? String(sMethod).toUpperCase()
- : this.constructor.method.GET;
- },
-
- /**
- * Defines whether the request should be synchronous (blocking the UA until
- * the response was fully received) or asynchronous (waiting for the
- * response to be fully received in the background, this is the default
- * and recommended).
- *
- * @param {boolean} bAsync (optional)
- * If not provided or a true-value, the request will be asynchronous.
- */
- setAsync: function (bAsync) {
- this.async = (typeof bAsync == "undefined" ? true : !!bAsync);
- },
-
- /**
- * Defines the response Listener method to be used for handling
- * requests.
- *
- * A <code>HTTPRequest</code> object is always initialized with
- * an inherited default response Listener that calls
- * {@link HTTPRequest.prototype#successListener() successListener()}
- * on success, and
- * {@link HTTPRequest.prototype#errorListener() errorListener()}
- * on failure. Once initialized, passing a reference to a
- * non-callable object as argument, throws an
- * {@link jsx#InvalidArgumentError InvalidArgumentError}
- * exception.
- *
- * @param {HTTPResponseListener} fResponseListener
- * @throws jsx.InvalidArgumentError if the argument is not a method
- */
- setResponseListener: function (fResponseListener) {
- /* initialization */
- if (typeof fResponseListener == "undefined"
- && typeof this._responseListener == "undefined")
- {
- this._responseListener = new jsx.net.http.ResponseListener();
- return true;
- }
-
- if (jsx.object.isMethod(fResponseListener))
- {
- this._responseListener = fResponseListener;
- return (this._responseListener == fResponseListener);
- }
-
- jsx.throwThis("jsx.InvalidArgumentError",
- "jsx:HTTPRequest::setResponseListener: Argument is not a method");
- return false;
- },
-
- /**
- * Defines a response listener method to be used for handling
- * successful requests.
- *
- * An <code>HTTPRequest</code> object is always initialized with
- * an inherited dummy success listener (a {@link jsx.net.http.ResponseListener}
- * instance) that does nothing, if you do not specify one. Once initialized,
- * passing a reference to a non-callable object as argument throws an
- * {@link jsx#InvalidArgumentError InvalidArgumentError}
- * exception.
- *
- * @param {HTTPResponseListener} fSuccessListener
- * <code>true</code> if the listener could be successfully
- * set or changed; <code>false</code> on error, unless an exception is thrown.
- * @throws jsx.InvalidArgumentError if the argument is not a method
- * @return {Request} This object on success, <code>null</code> otherwise
- */
- setSuccessListener: function (fSuccessListener) {
- /* initialization */
- if (typeof fSuccessListener == "undefined"
- && typeof this.successListener == "undefined")
- {
- this.successListener = new jsx.net.http.ResponseListener();
- return this;
- }
-
- if (typeof fSuccessListener == "function")
- {
- this.successListener = fSuccessListener;
- return (this.successListener == fSuccessListener) ? this : null;
- }
-
- jsx.throwThis("jsx.InvalidArgumentError",
- "jsx:HTTPRequest::setResponseListener: Argument is not a method");
- return null;
- },
-
- /**
- * Defines the response listener method to be used for handling
- * unsuccessful requests.
- *
- * An <code>HTTPRequest</code> object is always initialized with
- * an inherited dummy error listener that does nothing (a
- * {@link jsx.net.http.ResponseListener} instance), if you
- * do not specify one. Once initialized, passing a reference
- * to a non-callable object as argument throws an
- * {@link jsx#InvalidArgumentError InvalidArgumentError}
- * exception.
- *
- * @param {HTTPResponseListener} fErrorListener
- * @throws jsx.InvalidArgumentError if the argument is not a method
- */
- setErrorListener: function (fErrorListener) {
- if (typeof fErrorListener == "undefined"
- && typeof this.errorListener == "undefined")
- {
- this.errorListener = new jsx.net.http.ResponseListener();
- return true;
- }
-
- if (jsx.object.isMethod(fErrorListener))
- {
- this.errorListener = fErrorListener;
- return (this.errorListener == this.errorListener);
- }
-
- jsx.throwThis('jsx.InvalidArgumentError',
- "jsx:HTTPRequest::setErrorListener: Argument is not a method");
- return false;
- },
-
- /**
- * Sets the <code>data</code> property.
- *
- * @param {string} sData (optional)
- * If not provided or a false-value, sets
- * the property to the empty string.
- * @see HTTPRequest.prototype#resetData()
- */
- setData: function (sData) {
- this.data = (sData || "");
- return this;
- },
-
- /**
- * Resets the <code>data</code> property to the empty string.
- *
- * @see HTTPRequest.prototype#setData()
- */
- resetData: function () {
- this.setData();
- },
-
- /**
- * Retrieves the data to send in the request, and optionally the request
- * method, from an (X)HTML form. TODO: select[multiple] elements
- *
- * @param {HTMLFormElement} f
- * @param {boolean} bUseFormMethod (optional)
- * If <code>true</code>, the form's request method becomes the
- * <code>HTTPRequest</code> object's request method. The default
- * is <code>false</code>.
- * @return boolean
- */
- getDataFromForm: function (f, bUseFormMethod) {
- var result = false, es, len;
-
- if (f && (es = f.elements) && (len = es.length))
- {
- if (bUseFormMethod)
- {
- this.setMethod(f.method);
- }
-
- var aData = [];
-
- for (var i = 0; i < len; i++)
- {
- var o = es[i];
- if (o.name)
- {
- aData.push(encodeURIComponent(o.name) + "=" + encodeURIComponent(o.value != "" ? o.value : ""));
- }
- }
-
- this.data = aData.join("&");
- result = true;
- }
-
- return result;
- },
-
- /**
- * Sets the Content-Type for the HTTP request. The default is
- * "application/x-www-form-urlencoded" to indicate form submission,
- * which is what Web browsers send as default then, although this
- * media type is currently not registered with IANA.
- *
- * @param {string} sRequestType
- * <code>"application/x-www-form-urlencoded"</code>, if omitted or
- * a false-value (like "", the empty string).
- * @param {string} sEncoding
- * Character encoding of the message body
- * @return {jsx.net.http.Request}
- * This object
- */
- setRequestType: function (sRequestType, sEncoding) {
- this.requestType =
- (sRequestType || "application/x-www-form-urlencoded")
- + (sEncoding ? "; charset=" + sEncoding : "");
-
- return this;
- },
-
- /**
- * Sets a request header field value
- *
- * @param name
- * @param value
- * @return {jsx.net.http.Request}
- * This object
- */
- setRequestHeader: function (name, value) {
- this.requestHeaders[name] = value;
- return this;
- },
-
- /**
- * Sets additional request header field values
- */
- setRequestHeaders: (function () {
- var _hasOwnProperty = jsx.object._hasOwnProperty;
-
- /**
- * @param {Object} obj
- * Object specifying the additional header fields for the
- * next request. Names of own properties of this object
- * define the header field names, their values the corresponding
- * field values.
- * @return {jsx.net.http.Request}
- * This object
- */
- return function (obj) {
- for (var name in obj)
- {
- if (_hasOwnProperty(obj, name))
- {
- this.requestHeaders[name] = obj[name];
- }
- }
-
- return this;
- };
- }()),
-
- dontCache: function () {
- this.useCache = false;
- return this;
- },
-
- /**
- * Returns a reference to an XML HTTP Request object. Reuses an existing
- * object if possible (if it has processed the previous request); creates
- * a new object if necessary;
- *
- * @protected
- * @return {IXMLHttpRequest}
- * A reference to an XML HTTP Request object or <code>null</code>,
- * if no such object can be created.
- */
- _getXHR: function () {
- var
- jsx_global = jsx.global,
- jsx_object = jsx.object,
- x = this._xhr;
-
- /* Reuse existing XHR instance if possible */
- if (x !== null
- && x.readyState == this.constructor.readyState.COMPLETED)
- {
- return x;
- }
-
- /*
- * Create new XHR instance:
- * Feature detection based on Jim Ley's XML HTTP Request tutorial
- * at <http://jibbering.com/2002/4/httprequest.html>
- */
-
- /* Initialize to detect failure later */
- x = null;
-
- /*
- * IE 6+ (JScript allows for conditional compilation; an ordinary comment
- * to other script engines). Note that IE 7 supports XMLHttpRequest() but
- * currently not for `file:' URIs, so we don't prefer that wrapper (see
- * <http://xhab.blogspot.com/2006/11/ie7-support-for-xmlhttprequest.html>).
- */
- if (jsx_object.isMethod(jsx_global, "ActiveXObject"))
- {
- /*@cc_on @*/
- /*@if (@_jscript_version >= 5)
- try
- {
- // TODO: Try this first?
- // new ActiveXObject("Msxml2.XMLHTTP");
-
- // MSXML 3.0-
- x = new ActiveXObject("Microsoft.XMLHTTP");
- }
- catch (e)
- {
- x = null;
- }
- @end @*/
- }
-
- /* Gecko and Opera 8.1+ */
- if (!x && jsx_object.isMethod(jsx_global, "XMLHttpRequest"))
- {
- jsx.tryThis(
- function () { x = new XMLHttpRequest(); },
- function () { x = null; });
- }
-
- /* IceBrowser */
- if (!x && typeof window != "undefined"
- && jsx_object.isMethod(window, "createRequest"))
- {
- jsx.tryThis(
- function () { x = window.createRequest(); },
- function () { x = null; });
- }
-
- /* Update cache if unused */
- if (x && this._xhr === null)
- {
- this._xhr = x;
- }
-
- return x;
- },
-
- /**
- * Submits the HTTP request.
- *
- * @param {string} sData (optional)
- * The data to form the request body. If the request method is "GET",
- * this argument is ignored and <code>null</code> is used instead (no body).
- * If the request method is "POST", and this value is not provided, the
- * value defaults to that of the <code>data</code> property, which is
- * the empty string if not set different previously.
- * @param {string} sURL (optional)
- * The request URL. If not provided, this value defaults to that of the
- * <code>URL</code> property, which is the empty string if not set
- * different previously.
- * @param {string} sMethod (optional)
- * The request method. If not provided, this value defaults to that of
- * the <code>HTTPRequest.method.GET</code> property, which is "GET".
- * @param {boolean} bAsync (optional)
- * The request is asynchronous if <code>true</code> is passed, synchronous
- * if <code>false</code> is passed. If not provided, this value defaults
- * to that of the <code>async</code> property, which is <code>true</code>
- * if not set different previously.
- * @return {boolean}
- * <code>true</code> (async) or what was returned by the success
- * listener (sync) if the XHR object could be created and
- * <code>IXMLHTTPRequest::send()</code> was successful;
- * <code>false</code> otherwise. Note that for asynchronous handling
- * "successful" does not imply that the server has actually received
- * the message, and responded with an OK status code; only that the
- * method could be called successfully.
- */
- send: function (sData, sURL, sMethod, bAsync) {
- var
- jsx_object = jsx.object,
- C = this.constructor,
- x = this._getXHR();
-
- if (!x || !jsx_object.isMethod(x, "open"))
- {
- return false;
- }
-
- /* Assume everything goes smoothly from here */
- var result = true;
-
- if (arguments.length < 1)
- {
- sData = this.data;
- }
-
- if (arguments.length < 2)
- {
- sURL = this.URL;
- }
-
- if (arguments.length < 3)
- {
- sMethod = this.method;
- }
-
- sMethod = sMethod.toUpperCase();
-
- var bGET = (sMethod == C.method.GET);
-
- bAsync = (arguments.length > 3) ? !!bAsync : this.async;
-
- x.open(
- sMethod,
- sURL
- + ((bGET && (sData || !this.useCache))
- ? (!/[?&]$/.test(sURL)
- ? (sURL.indexOf("?") < 0 ? "?" : "&")
- : "")
- + sData
- + (!this.useCache
- ? (sData ? "&" : "")
- + "timestamp=" + (new Date()).getTime()
- : "")
- : ""),
- bAsync);
-
- var me = this;
-
- if (jsx_object.isMethod(x, "setRequestHeader"))
- {
- /* NOTE: Failure to call this method is _not_ considered a fatal error. */
- jsx.tryThis(
- function () {
- x.setRequestHeader("Content-Type", me.requestType);
-
- if (!this.useCache)
- {
- this.setRequestHeaders({
- "If-Modified-Since": (new Date(0)).toUTCString()
- });
- }
-
- var _hasOwnProperty = jsx.object._hasOwnProperty;
- var requestHeaders = me.requestHeaders;
-
- for (var name in requestHeaders)
- {
- if (_hasOwnProperty(requestHeaders, name))
- {
- x.setRequestHeader(name, requestHeaders[name]);
- }
- }
- }
- );
- }
-
- if (bAsync)
- {
- x.onreadystatechange = (function(x2) {
- return function () {
- // alert(x.readyState);
- // alert(x.status);
-
- // console.log("readyState = %i, status = %i", x.readyState, x.status);
- // console.log(C.status.OK_EXPR);
-
- if (jsx_object.isMethod(me._responseListener))
- {
- me._responseListener(x2);
- }
-
- /* Let the garbage collector handle this per the closure */
-// if (x2.readyState == C.readyState.COMPLETED)
-// {
-// x2 = null;
-// }
- };
- }(x));
- }
-
- jsx.tryThis(
- function () { x.send(bGET ? null : (sData || me.data)); },
- function () { result = false; me.errorListener(x); });
-
- if (!bAsync)
- {
- if (jsx_object.isMethod(this._responseListener))
- {
- result = this._responseListener(x);
- }
-
- /* Handle stopped servers */
-// jsx.tryThis(
-// function () {
-// if (C.status.OK_EXPR.test(x.status)) {
-// result = true;
-// }
-// }
-// );
-
- /* TODO: Is this error-prone? */
-// x = null;
- }
-
- return result;
- }
-};
-
-/**
- * Creates a new HTTPResponseListener object.
- *
- * A HTTPResponseListener object is a specialized Function object
- * that takes an IXMLHttpRequest object <var>x</var> as its only
- * argument. This method is a factory to create such an object.
- *
- * Recommended usage:
- * <pre><code>
- * var f = jsx.net.http.ResponseListener(
- * 'statement;',
- * + 'statement;'
- * );
- * </code></pre>
- *
- * @param sCode
- * @return Function
- * @constructor
- */
-jsx.net.http.ResponseListener = function (sCode) {
- return Function("x", sCode + "" || "");
-};
-
-/* Usage: */
-// var x = new HTTPRequest("", HTTPRequest.method.GET, true, processResponse);
-/* ... */
-// x.send();
\ No newline at end of file
/live/http.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Index: live/UnicodeData.js
===================================================================
--- live/UnicodeData.js (revision 509)
+++ live/UnicodeData.js (nonexistent)
@@ -1,53 +0,0 @@
-/**
- * <title>Unicode Character Properties Support Library</title>
- * @file UnicodeData.js
- * @version $Id$
- * @author (C) 2010-2012 Thomas Lahn &lt;js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-jsx.regexp.RegExp.propertyClasses = {
- Cc: "\u0000-\u001F\u007F-\u009F",
- Cf: "\u00AD\u0600-\u0603\u06DD\u070F\u17B4-\u17B5\u200B-\u200F\u202A-\u202E\u2060-\u2064\u206A-\u206F\uFEFF\uFFF9-\uFFFB",
- Co: "\uE000\uF8FF",
- Cs: "\uD800\uDB7F-\uDB80\uDBFF-\uDC00\uDFFF",
- Ll: "\u0061-\u007A\u00AA\u00B5\u00BA\u00DF-\u00F6\u00F8-\u00FF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0561-\u0587\u1D00-\u1D2B\u1D62-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7C\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2D00-\u2D25\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A",
- Lm: "\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D61\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u2094\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA717-\uA71F\uA770\uA788\uA9CF\uAA70\uAADD\uFF70\uFF9E-\uFF9F",
- Lo: "\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05F0-\u05F2\u0621-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972\u0979-\u097F\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58-\u0C59\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D3D\u0D60-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDD\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8B\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10D0-\u10FA\u1100-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u2135-\u2138\u2D30-\u2D65\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31B7\u31F0-\u31FF\u3400\u4DB5\u4E00\u9FCB\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uABC0-\uABE2\uAC00\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA2D\uFA30-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",
- Lt: "\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC",
- Lu: "\u0041-\u005A\u00C0-\u00D6\u00D8-\u00DE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0531-\u0556\u10A0-\u10C5\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E-\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D-\uA77E\uA780\uA782\uA784\uA786\uA78B\uFF21-\uFF3A",
- Mc: "\u0903\u093E-\u0940\u0949-\u094C\u094E\u0982-\u0983\u09BE-\u09C0\u09C7-\u09C8\u09CB-\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB-\u0ACC\u0B02-\u0B03\u0B3E\u0B40\u0B47-\u0B48\u0B4B-\u0B4C\u0B57\u0BBE-\u0BBF\u0BC1-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82-\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7-\u0CC8\u0CCA-\u0CCB\u0CD5-\u0CD6\u0D02-\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82-\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2-\u0DF3\u0F3E-\u0F3F\u0F7F\u102B-\u102C\u1031\u1038\u103B-\u103C\u1056-\u1057\u1062-\u1064\u1067-\u106D\u1083-\u1084\u1087-\u108C\u108F\u109A-\u109C\u17B6\u17BE-\u17C5\u17C7-\u17C8\u1923-\u1926\u1929-\u192B\u1930-\u1931\u1933-\u1938\u19B0-\u19C0\u19C8-\u19C9\u1A19-\u1A1B\u1A55\u1A57\u1A61\u1A63-\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B44\u1B82\u1BA1\u1BA6-\u1BA7\u1BAA\u1C24-\u1C2B\u1C34-\u1C35\u1CE1\u1CF2\uA823-\uA824\uA827\uA880-\uA881\uA8B4-\uA8C3\uA952-\uA953\uA983\uA9B4-\uA9B5\uA9BA-\uA9BB\uA9BD-\uA9C0\uAA2F-\uAA30\uAA33-\uAA34\uAA4D\uAA7B\uABE3-\uABE4\uABE6-\uABE7\uABE9-\uABEA\uABEC",
- Me: "\u0488-\u0489\u06DE\u20DD-\u20E0\u20E2-\u20E4\uA670-\uA672",
- Mn: "\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065E\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0900-\u0902\u093C\u0941-\u0948\u094D\u0951-\u0955\u0962-\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2-\u09E3\u0A01-\u0A02\u0A3C\u0A41-\u0A42\u0A47-\u0A48\u0A4B-\u0A4D\u0A51\u0A70-\u0A71\u0A75\u0A81-\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7-\u0AC8\u0ACD\u0AE2-\u0AE3\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62-\u0B63\u0B82\u0BC0\u0BCD\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55-\u0C56\u0C62-\u0C63\u0CBC\u0CBF\u0CC6\u0CCC-\u0CCD\u0CE2-\u0CE3\u0D41-\u0D44\u0D4D\u0D62-\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB-\u0EBC\u0EC8-\u0ECD\u0F18-\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86-\u0F87\u0F90-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039-\u103A\u103D-\u103E\u1058-\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108D\u109D\u135F\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193B\u1A17-\u1A18\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80-\u1B81\u1BA2-\u1BA5\u1BA8-\u1BA9\u1C2C-\u1C33\u1C36-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1DC0-\u1DE6\u1DFD-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2DE0-\u2DFF\u302A-\u302F\u3099-\u309A\uA66F\uA67C-\uA67D\uA6F0-\uA6F1\uA802\uA806\uA80B\uA825-\uA826\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uAA29-\uAA2E\uAA31-\uAA32\uAA35-\uAA36\uAA43\uAA4C\uAAB0\uAAB2-\uAAB4\uAAB7-\uAAB8\uAABE-\uAABF\uAAC1\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE26",
- Nd: "\u0030-\u0039\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19",
- Nl: "\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF",
- No: "\u00B2-\u00B3\u00B9\u00BC-\u00BE\u09F4-\u09F9\u0BF0-\u0BF2\u0C78-\u0C7E\u0D70-\u0D75\u0F2A-\u0F33\u1369-\u137C\u17F0-\u17F9\u2070\u2074-\u2079\u2080-\u2089\u2150-\u215F\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3192-\u3195\u3220-\u3229\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA830-\uA835",
- Pc: "_\u203F-\u2040\u2054\uFE33-\uFE34\uFE4D-\uFE4F\uFF3F",
- Pd: "\u002D\u058A\u05BE\u1400\u1806\u2010-\u2015\u2E17\u2E1A\u301C\u3030\u30A0\uFE31-\uFE32\uFE58\uFE63\uFF0D",
- Pe: "\u0029\u005D\u007D\u0F3B\u0F3D\u169C\u2046\u207E\u208E\u232A\u2769\u276B\u276D\u276F\u2771\u2773\u2775\u27C6\u27E7\u27E9\u27EB\u27ED\u27EF\u2984\u2986\u2988\u298A\u298C\u298E\u2990\u2992\u2994\u2996\u2998\u29D9\u29DB\u29FD\u2E23\u2E25\u2E27\u2E29\u3009\u300B\u300D\u300F\u3011\u3015\u3017\u3019\u301B\u301E-\u301F\uFD3F\uFE18\uFE36\uFE38\uFE3A\uFE3C\uFE3E\uFE40\uFE42\uFE44\uFE48\uFE5A\uFE5C\uFE5E\uFF09\uFF3D\uFF5D\uFF60\uFF63",
- Pf: "\u00BB\u2019\u201D\u203A\u2E03\u2E05\u2E0A\u2E0D\u2E1D\u2E21",
- Pi: "\u00AB\u2018\u201B-\u201C\u201F\u2039\u2E02\u2E04\u2E09\u2E0C\u2E1C\u2E20",
- Po: "\u0021-\u0023\u0025-\u0027\u002A\u002C\u002E-\u002F\u003A-\u003B\u003F-\u0040\u005C\u00A1\u00B7\u00BF\u037E\u0387\u055A-\u055F\u0589\u05C0\u05C3\u05C6\u05F3-\u05F4\u0609-\u060A\u060C-\u060D\u061B\u061E-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u0964-\u0965\u0970\u0DF4\u0E4F\u0E5A-\u0E5B\u0F04-\u0F12\u0F85\u0FD0-\u0FD4\u104A-\u104F\u10FB\u1361-\u1368\u166D-\u166E\u16EB-\u16ED\u1735-\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u1805\u1807-\u180A\u1944-\u1945\u19DE-\u19DF\u1A1E-\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1C3B-\u1C3F\u1C7E-\u1C7F\u1CD3\u2016-\u2017\u2020-\u2027\u2030-\u2038\u203B-\u203E\u2041-\u2043\u2047-\u2051\u2053\u2055-\u205E\u2CF9-\u2CFC\u2CFE-\u2CFF\u2E00-\u2E01\u2E06-\u2E08\u2E0B\u2E0E-\u2E16\u2E18-\u2E19\u2E1B\u2E1E-\u2E1F\u2E2A-\u2E2E\u2E30-\u2E31\u3001-\u3003\u303D\u30FB\uA4FE-\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE-\uA8CF\uA8F8-\uA8FA\uA92E-\uA92F\uA95F\uA9C1-\uA9CD\uA9DE-\uA9DF\uAA5C-\uAA5F\uAADE-\uAADF\uABEB\uFE10-\uFE16\uFE19\uFE30\uFE45-\uFE46\uFE49-\uFE4C\uFE50-\uFE52\uFE54-\uFE57\uFE5F-\uFE61\uFE68\uFE6A-\uFE6B\uFF01-\uFF03\uFF05-\uFF07\uFF0A\uFF0C\uFF0E-\uFF0F\uFF1A-\uFF1B\uFF1F-\uFF20\uFF3C\uFF61\uFF64-\uFF65",
- Ps: "\u0028\u005B\u007B\u0F3A\u0F3C\u169B\u201A\u201E\u2045\u207D\u208D\u2329\u2768\u276A\u276C\u276E\u2770\u2772\u2774\u27C5\u27E6\u27E8\u27EA\u27EC\u27EE\u2983\u2985\u2987\u2989\u298B\u298D\u298F\u2991\u2993\u2995\u2997\u29D8\u29DA\u29FC\u2E22\u2E24\u2E26\u2E28\u3008\u300A\u300C\u300E\u3010\u3014\u3016\u3018\u301A\u301D\uFD3E\uFE17\uFE35\uFE37\uFE39\uFE3B\uFE3D\uFE3F\uFE41\uFE43\uFE47\uFE59\uFE5B\uFE5D\uFF08\uFF3B\uFF5B\uFF5F\uFF62",
- Sc: "\u0024\u00A2-\u00A5\u060B\u09F2-\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20B8\uA838\uFDFC\uFE69\uFF04\uFFE0-\uFFE1\uFFE5-\uFFE6",
- Sk: "\u005E\u0060\u00A8\u00AF\u00B4\u00B8\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384-\u0385\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD-\u1FFE\u309B-\u309C\uA700-\uA716\uA720-\uA721\uA789-\uA78A\uFF3E\uFF40\uFFE3",
- Sm: "\u002B\u003C-\u003E\u007C\u007E\u00AC\u00B1\u00D7\u00F7\u03F6\u0606-\u0608\u2044\u2052\u207A-\u207C\u208A-\u208C\u2140-\u2144\u214B\u2190-\u2194\u219A-\u219B\u21A0\u21A3\u21A6\u21AE\u21CE-\u21CF\u21D2\u21D4\u21F4-\u22FF\u2308-\u230B\u2320-\u2321\u237C\u239B-\u23B3\u23DC-\u23E1\u25B7\u25C1\u25F8-\u25FF\u266F\u27C0-\u27C4\u27C7-\u27CA\u27CC\u27D0-\u27E5\u27F0-\u27FF\u2900-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2AFF\u2B30-\u2B44\u2B47-\u2B4C\uFB29\uFE62\uFE64-\uFE66\uFF0B\uFF1C-\uFF1E\uFF5C\uFF5E\uFFE2\uFFE9-\uFFEC",
- So: "\u00A6-\u00A7\u00A9\u00AE\u00B0\u00B6\u0482\u060E-\u060F\u06E9\u06FD-\u06FE\u07F6\u09FA\u0B70\u0BF3-\u0BF8\u0BFA\u0C7F\u0CF1-\u0CF2\u0D79\u0F01-\u0F03\u0F13-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE-\u0FCF\u0FD5-\u0FD8\u109E-\u109F\u1360\u1390-\u1399\u1940\u19E0-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u2100-\u2101\u2103-\u2106\u2108-\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A-\u213B\u214A\u214C-\u214D\u214F\u2195-\u2199\u219C-\u219F\u21A1-\u21A2\u21A4-\u21A5\u21A7-\u21AD\u21AF-\u21CD\u21D0-\u21D1\u21D3\u21D5-\u21F3\u2300-\u2307\u230C-\u231F\u2322-\u2328\u232B-\u237B\u237D-\u239A\u23B4-\u23DB\u23E2-\u23E8\u2400-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u25B6\u25B8-\u25C0\u25C2-\u25F7\u2600-\u266E\u2670-\u26CD\u26CF-\u26E1\u26E3\u26E8-\u26FF\u2701-\u2704\u2706-\u2709\u270C-\u2727\u2729-\u274B\u274D\u274F-\u2752\u2756-\u275E\u2761-\u2767\u2794\u2798-\u27AF\u27B1-\u27BE\u2800-\u28FF\u2B00-\u2B2F\u2B45-\u2B46\u2B50-\u2B59\u2CE5-\u2CEA\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012-\u3013\u3020\u3036-\u3037\u303E-\u303F\u3190-\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u32FE\u3300-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA828-\uA82B\uA836-\uA837\uA839\uAA77-\uAA79\uFDFD\uFFE4\uFFE8\uFFED-\uFFEE\uFFFC-\uFFFD",
- Zl: "\u2028",
- Zp: "\u2029",
- Zs: "\u0020\u00A0\u1680\u180E\u2000-\u200A\u202F\u205F\u3000"
-};
/live/UnicodeData.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/python.js
===================================================================
--- live/python.js (revision 509)
+++ live/python.js (nonexistent)
@@ -1,423 +0,0 @@
-"use strict";
-/**
- * @fileOverview <title>Pythonic functions for ECMAScript implementations</title>
- * @file $Id$
- * @requires object.js
- *
- * @author (C) 2011-2013 <a href="mailto:js@PointedEars.de">Thomas Lahn</a>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-/* for JSDT only */
-if (typeof jsx.python == "undefined")
-{
- /** @namespace */
- jsx.python = {};
-}
-
-/**
- * @type jsx.python
- * @memberOf __jsx.python
- * @namespace
- */
-jsx.python = (/** @constructor */ function () {
- var _jsx_object = jsx.object;
- var _getKeys = _jsx_object.getKeys;
- var _isArray = _jsx_object.isArray;
- var _isObject = _jsx_object.isObject;
-
- return {
- /**
- * @version
- * @memberOf jsx.python
- */
- version: "$Revision$ ($Date$)",
- copyright: "Copyright \xA9 2011-2013",
- author: "Thomas Lahn",
- email: "js@PointedEars.de",
- path: "http://PointedEars.de/scripts/",
-
- /**
- * Returns a reference to an <code>Array</code> whose
- * items are the numbers from <var>start</var> inclusive to
- * <var>end</var> exclusive using step width <var>step</var>
- * (may be negative).
- *
- * @param {number} start
- * @param {number} end
- * @param {number} step = 1
- * @return {Array}
- */
- range: function (start, end, step) {
- var result = [];
-
- if (!step)
- {
- if (step === 0)
- {
- jsx.throwThis(
- "jsx.InvalidArgumentError", "step argument must not be zero");
- }
-
- step = 1;
- }
-
- end = +end;
- step = +step;
-
- for (var i = +start; (step > 0) ? (i < end) : (i > end); i += step)
- {
- result.push(i);
- }
-
- return result;
- },
-
- /**
- * Returns a reference to an Array instance containing
- * the names of the enumerable properties of another object;
- * returns a reference to a passed Array.
- *
- * @function
- */
- list: jsx.object.extend((
- /**
- * @factory
- */
- function () {
- var _hasOwnProperty = _jsx_object._hasOwnProperty;
-
- /**
- * @param {Object} iterable
- * @return {Array}
- */
- return function (iterable) {
- var result = [];
-
- if (_isArray(iterable))
- {
- return iterable;
- }
-
- for (var property in iterable)
- {
- if (_hasOwnProperty(iterable, property))
- {
- result.push(property);
- }
- }
-
- return result;
- };
- }()), {
- /**
- * List comprehension.
- *
- * Returns a reference to an <code>Array</code>
- * instance containing the result of passing each item
- * of <var>list</var> to <var>mapper</var> (or <var>mapper</var>
- * itself if <var>mapper</var> is not a function) for which
- * <var>condition</var> returns a true-value (or all items
- * if <var>condition</var> is a <code>true-value</code> or
- * <code>undefined</code>, and no items if it is another
- * false-value).
- *
- * @memberOf jsx.python.list
- * @param {Function|any} mapper
- * @param {Object} iterable
- * @param {Function|boolean} condition
- * @return {Array}
- */
- from: function (mapper, iterable, condition) {
- var result = [];
-
- var iterableIsArray = _isArray(iterable);
- var _range = jsx.python.range;
- if (iterableIsArray)
- {
- var len = iterable.length;
- var keys = _range(0, len);
- }
- else
- {
- keys = _isObject(iterable) && _getKeys(iterable);
- len = keys.length;
- }
-
- var hasCondition = (typeof condition == "function");
- for (var i = 0; i < len; ++i)
- {
- if (iterableIsArray && !(i in iterable))
- {
- continue;
- }
-
- var key = keys[i];
- var item = iterable[key];
-
- if (hasCondition)
- {
- var conditionMet = condition(item, key, iterable);
- }
- else
- {
- conditionMet = condition;
- }
-
- if (!hasCondition || conditionMet)
- {
- if (typeof mapper == "function")
- {
- var value = mapper(item, key, iterable);
- }
- else
- {
- value = mapper;
- }
-
- result.push(value);
- }
- }
-
- return result;
- }
- }
- ),
-
- /**
- * Returns a reference to an object
- *
- * @param mapping
- * @return {Object}
- */
- dict: function (mapping, values) {
- var result = {};
-
- if (typeof mapping == "undefined")
- {
- return result;
- }
-
- if (mapping.length)
- {
- if (arguments.length > 1)
- {
- for (var index in mapping)
- {
- result[mapping[index]] = values[index];
- }
-
- return result;
- }
-
- var props = mapping[0];
- var vals = mapping[1];
- for (var index2 in props)
- {
- result[props[index2]] = vals[index2];
- }
- }
- else
- {
- for (var name in mapping)
- {
- result[name] = mapping[name];
- }
- }
-
- return result;
- },
-
- /**
- * Build an unordered collection of unique elements.
- *
- * @type jsx.python.set
- * @function
- */
- set: (
- /**
- * @constructor
- * @factory
- */
- function () {
- var _jsx = jsx;
- var _jsx_object = _jsx.object;
- var _Map;
- var _getKeys = _jsx_object.getKeys;
- var _isMethod = _jsx_object.isMethod;
-
- /**
- * @param {Object} iterable
- * @return {Array}
- */
- return function jsx_python_set (iterable) {
- if (!(this instanceof jsx_python_set))
- {
- return new jsx_python_set(iterable);
- }
-
- if (_isMethod(iterable, "slice"))
- {
- var result = iterable.slice();
- }
- else
- {
- result = [];
-
- for (var i = 0, keys = _getKeys(iterable), len = keys.length;
- i < len;
- ++i)
- {
- result.push(iterable[keys[i]]);
- }
- }
-
- /* Prefer more efficient (best case: O(n)) Map approach if possible */
- if (_Map || typeof _jsx.map != "undefined")
- {
- if (!_Map)
- {
- _Map = _jsx.map.Map;
- }
-
- var map = new _Map();
- for (i = 0, len = result.length; i < len; ++i)
- {
- map.put(result[i], true);
- }
-
- result = map.keys();
- }
- else
- {
- /* comparisons(n) = (n^2 - n)/2 ~ O(n^2) */
- for (var i = 0, len = result.length; i < len; ++i)
- {
- for (var j = i + 1; j < len; ++j)
- {
- if (result[i] === result[j])
- {
- result.splice(j, 1);
- --j;
- --len;
- }
- }
- }
- }
-
- this._elements = result;
- this.length = this._elements.length;
- };
- }()
- ).extend(null, {
- /**
- * @memberOf jsx.python.set.prototype
- */
- intersection: function (other) {
- if (!(other instanceof jsx.python.set))
- {
- other = new jsx.python.set(other);
- }
-
- var elements = this._elements;
- elements.sort();
- other.sort();
-
- var intersection = [];
-
- /* FIXME: Identical elements need not sort to the same position */
- for (var i = 0, len = elements.length; i < len; ++i)
- {
- var element = elements[i];
- if (element === other[i])
- {
- intersection.push(element);
- }
- }
-
- return new jsx.python.set(intersection);
- },
-
- isDisjoint: function (other) {
- return (this.intersection(other).length === 0);
- },
-
- toArray: function () {
- return this._elements;
- }
- }),
-
- /**
- * Return an {@link Array} of <code>Array</code>s, where each
- * inner array contains the i-th element from each of the
- * argument arrays.
- * The returned <code>Array</code> is truncated in length
- * to the length of the shortest argument array.
- *
- * @params {Array}
- * @return {Array}
- */
- zip: function () {
- var result = [];
-
- for (var i = 0, len = arguments[0].length; i < len; ++i)
- {
- result[i] = [];
-
- for (var j = 0, len2 = arguments.length; j < len2; ++j)
- {
- if (arguments[j].length - 1 < i)
- {
- delete result[i];
- break;
- }
-
- result[i][j] = arguments[j][i];
- }
- }
-
- return result;
- },
-
- /**
- * Extends an Array with elements from another Array.
- *
- * Different from Array.prototype.concat() in that the first Array is modified.
- * To emphasize this, there is no explicit return value (i.e. returns
- * <code>undefined</code>).
- *
- * @param {Array} list1
- * Array which is to be extended
- * @param {Array} list2
- * Array which elements should be appended to <var>list1</var>
- */
- extend: function (list1, list2) {
- for (var i = 0, len = list2.length; i < len; ++i)
- {
- Array.prototype.push.call(list1, list2[i]);
- }
- }
- };
-}());
\ No newline at end of file
/live/python.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/enhancd2.js
===================================================================
--- live/enhancd2.js (revision 509)
+++ live/enhancd2.js (nonexistent)
@@ -1,434 +0,0 @@
-/*
- The following tag is for display in advanced filelists only:
- <TITLE>Level-2 Enhanced Website Features</title>
-
- enhancd2.js
- Part of PointedEars' JavaScript Extensions (JSX)
- Copyright (c) 2001-2002 Thomas Lahn <PointedEars@gmx.de>
-
- This code may be distributed freely under the terms of the
- GNU General Public License; either version 2 of the License
- or (at your option) any later version.
- See http://www.gnu.org/copyleft/gpl.html for details.
-
- Refer enhancd2.htm file for general documentation.
-*/
-
-var enhanced2Version = "1.23.20080120";
-var enhanced2Copyright = "Copyright � 2000-2008";
-var enhanced2Author = "Thomas Lahn";
-var enhanced2Email = "PointedEars@gmx.de";
-var enhanced2DocURL = "http://www.tu-ilmenau.de/~thla-in/scripts/enhancd2.htm";
-
-function linkOutWin(sURL, sCaption, bShowURL) {
- return(linkOut( sURL, sCaption, bShowURL, "_new", 0, 0, "fullscreen=no,channelmode=no,toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,top=0,left=0" ));
-}
-
-var sEnlargeImgTitle_en = "Click to close window";
-var sEnlargeImgTitle_de = "Klicken, um Fenster zu schlie&szlig;en";
-var sEnlargeImgTitle = sEnlargeImgTitle_en;
-
-function enlargeImg(sImageURL, sCaption, iWidth, iHeight, bCenter) {
-/* PointedEars' JavaScript Extensions (JSX)
- Copyright (c) 2000-2002 Thomas Lahn <PointedEars@gmx.de>
- Protected under the terms of the GNU General Public License.
- See http://www.fsf.org/copyleft/gpl.html for details.
-
- JSX:enhancd2.js:enlargeImg
-
- Opens a dependent browser child window containing an (enlarged) image.
- A primary button mouse click on the image or the window closes the
- window.
-
- Arguments:
-
- sImageURL Required. URL of the (enlarged) image.
- sCaption Optional. Caption of the browser child window.
- If not provided, sImageURL will be used as caption.
- iWidth Optional. Width of the browser child window in pixels.
- If not provided or 0, the window will be resized
- to fit image width.
- iHeight Optional. Height of the browser child window in pixels.
- If not provided or 0, the window will be resized
- to fit image height.
- bCenter Optional. If true, the window will be centered on
- the screen.
- Note: Use with caution! Not all desktops return
- the correct position for the centered window.
-
- Return value:
-
- Always false which allows
- <a href="..." ... onclick="return enlargeImg(...);">
-*/
-
- var ident = enlargeImg;
- var argnum = ident.arguments.length;
- var wImage = false;
- if (sImageURL.charAt(0) != "/") {
- // Version 1.17.2002.2 bugfix:
- // Calculates absolute image file paths of relative ones
- // Fixes bug with Mozilla 0.9.7 and above (includes Netscape 6.1+)
- // that generated pages have no path except about:blank which causes
- // relative paths for their resources to fail
- var iPathEnd = location.pathname.lastIndexOf('\\');
- // Windows local path
- if (iPathEnd < 0)
- iPathEnd = location.pathname.lastIndexOf('/');
- // URL
- if (iPathEnd > -1) // Extends filename to full path
- sImageURL = location.pathname.substring(0, iPathEnd) + "/" + sImageURL;
- }
- if (argnum < 1) return(EInvalidArgNum("Level 2: enlargeImg", 1));
-
-// preset also window position and size in the case the temporary script below fails
- var sOptions = "toolbar=no,location=no,menubar=no,scrollbars=yes,resizable=yes"
- + (((argnum > 2) && !isNaN(iWidth)) ? (",width=" + iWidth + 12) : "")
- + (((argnum > 3) && !isNaN(iHeight)) ? (",height=" + iHeight + 32) : "")
- + ",left="
- + parseInt(screen.width/2
- - (((argnum > 2) && !isNaN(iWidth))?(iWidth/2):0))
- + ",top="
- + parseInt(screen.height/2
- - (((argnum > 3) && !isNaN(iHeight))?(iHeight/2):0));
-
- var wImage = window.open(null, "wndZoom", sOptions);
-
- if (wImage)
- {
- var dImage = wImage.document;
- dImage.open("text/html");
-
- var a = new Array(
- '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">',
- '<html>',
- ' <head>',
- ' <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15">',
- ' <meta name="generator" value="JSX:enhancd2.js{'
- + enhanced2Version + '}:enlargeImg(...) ' + enhanced2Copyright
- + ' ' + enhanced2Author + ' &lt;' + enhanced2Email + '&gt;">',
- ' <title>' + ((argnum > 1 && sCaption != "") ? sCaption : sImageURL),
-
- // temporary script and updated inline code to fix BUG_Enlarge:ALWAYS_FIT-TO-IMAGE
- ' <\/title>',
- ' <script type="text/javascript">',
- ' // <![CDATA[',
- ' function fitWindowToImage() {',
- ' var imgWidth = ' + (((argnum > 2) && (iWidth != 0)) ? iWidth : ("document.images[0].width + 12")) + ';',
- ' var imgHeight = ' + (((argnum > 3) && (iHeight != 0)) ? iHeight : ("document.images[0].height + 32")) + ';',
- ' if (document.all) window.resizeTo(imgWidth, imgHeight);',
- ' else if (window.sizeToContent) window.sizeToContent();',
- ' else if (document.layers) { window.innerWidth = document.width; window.innerHeight = document.height; }',
- (argnum < 5 || (argnum > 4 && bCenter))
- ? ' window.moveTo(screen.width/2 - imgWidth/2, screen.height/2 - imgHeight/2);'
- : '',
- ' }',
- ' // ]]>',
- ' <\/script>',
- ' <\/head>',
- ' <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"'
- + ' style="margin: 0px">',
- ' <a href="#" title="'
- + sEnlargeImgTitle + '" onclick="window.close(); return false;">'
- + '<img src="' + sImageURL + '" border="0"'
- + ' onload="fitWindowToImage(this);"><\/a>',
- ' <\/body>',
- '<\/html>'
- );
-
- dImage.write(s);
- dImage.close();
- wImage.focus();
- }
- return(false);
-}
-
-// Enlarge(...) call redirects to enlargeImg(...) for compatibility with previous versions
-
-function Enlarge(sImageURL, sCaption, iWidth, iHeight) {
- switch(Enlarge.arguments.length) {
- case 0: { enlargeImg(); break; }
- case 1: { enlargeImg(sImageURL); break; }
- case 2: { enlargeImg(sImageURL, sCaption); break; }
- case 3: { enlargeImg(sImageURL, sCaption, iWidth); break; }
- case 4: { enlargeImg(sImageURL, sCaption, iWidth, iHeight); }
- }
-}
-
-var colMouseout = "#000000";
-var colMouseover = "#ffffff";
-
-function hoverImg(imgID, state) {
- var img = "null";
- if (document.all)
- img = document.all(imgID);
- else if (document.getElementById)
- img = document.getElementById(imgID);
- if (typeof img == "object") {
- var col = "";
- switch (state) {
- case 0: col = colMouseout; break;
- default: col = colMouseover; break;
- }
- if (col != "") img.style.borderColor = col;
- }
- return true;
-}
-
-function TTZdescr(iGMToffsetMins, sDescr) {
- this.iGMToffsetMins = iGMToffsetMins;
- this.sDescr = sDescr;
-}
-
-function TDateNames_getTZdescr(iGMToffsetMins) {
- for (var i = 0; i < this.aTZdescr.length; i++) {
- if (this.aTZdescr.iGMToffsetMins == iGMToffsetMins)
- return (this.aTZdescr.sDescr);
- }
-}
-
-function TDateNames(
- aaShortWeekdayNames, aaMedWeekdayNames, aaLongWeekdayNames,
- aaShortMonthNames, aaMedMonthNames, aaLongMonthNames,
- aaTZdescr) {
-/*
- JSX:enhancd2.js:TDateNames(...)
-
- Prototype for weekday and month names
-
- Properties:
- aShortWeekdayNames
- aMedWeekdayNames
- aLongWeekdayNames
- aShortMonthNames
- aMedMonthNames
- aLongMonthNames
- aTZdescr
-
- Methods:
- getTZdescr(...)
-
- Pass arrays containing the respective strings as arguments
- to set properties on creation of object.
-*/
-// var iArgNum = TDateNames.arguments.length;
- this.aShortWeekdayNames = aaShortWeekdayNames || new Array(7);
- this.aMedWeekdayNames = aaMedWeekdayNames || new Array(7);
- this.aLongWeekdayNames = aaLongWeekdayNames || new Array(7);
- this.aShortMonthNames = aaShortMonthNames || new Array(12);
- this.aMedMonthNames = aaMedMonthNames || new Array(12);
- this.aLongMonthNames = aaLongMonthNames || new Array(12);
- this.aTZdescr = aaTZdescr || new Array();
-
- this.getTZdescr = TDateNames_getTZdescr;
-}
-
-var cDateLblOpen = "_"; // A unique date label begins with this
-var cDateLblClose = "_"; // A unique date label ends with this
-
-function getDateFmt(dDate, sFormat, oDateNames) {
-/*
- JSX:enhancd2.js:getDateFmt(...)
-
- Returns the dDate value as a formatted string as specified with
- sFormat. Use the following format labels enclosed in the
- characters defined above with the cDateLbl... global variables:
-
- CC Century (19 if not supported by script engine).
- yyyy Year with century. Please note that if the script engine's
- Date.getYear(...) returns only two characters for year,
- century is set to 19 (02 becomes 1902). yyyy is equal to
- CCyy.
- yy Year without century
- MMMM Long name of month
- MMM Medium name of month
- MM Short name of month
- 0M Two-digit month number (preceded by "0" if smaller than 10)
- M Month number
- dddd Long name of weekday
- ddd Medium name of weekday
- dd Short name of weekday
- 0d Two-digit day number (preceded by "0" if smaller than 10)
- d Day number.
- hh Two-digit hours (preceded by "0" if smaller than 10)
- h Hours
- mm Two-digit minutes (preceded by "0" if smaller than 10)
- m Minutes
- ss Two-digit seconds
- s Seconds
- SS Three-digit milliseconds (with leading zeroes)
- S Milliseconds (if supported by script engine, otherwise "0").
- TTTTT Timezone description. oDateNames.aTimeZones required.
- TTTT Timezone offset to GMT in hh:mm (with leading zero).
- TTT Timezone offset to GMT in h:mm.
- TT Timezone offset to GMT as two-digit minutes (with leading zero)
- T Timezone offset to GMT in minutes.
-*/
- var iArgNum = getDateFmt.arguments.length;
- if (iArgNum < 1)
- return false;
- if ((iArgNum < 2) || (sFormat.length == 0))
- return String(dDate);
- if (iArgNum > 2)
- var ooDateNames = oDateNames;
- else
- // Default (english) weekdays, month labels and timezone descriptions
- ooDateNames = new TDateNames(
- new Array("Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"),
- new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"),
- new Array(
- "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
- "Friday", "Saturday"
- ),
- new Array(
- "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
- "Sep", "Oct", "Nov", "Dec"
- ),
- new Array(
- "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
- "Sep", "Oct", "Nov", "Dec"
- ),
- new Array(
- "January", "February", "March", "April", "May", "June",
- "July", "August", "September", "October", "November", "December"
- ),
- new Array(
- new TTZdescr(-60, "WET"),
- new TTZdescr( 0, "GMT"),
- new TTZdescr( 60, "CET"),
- new TTZdescr(120, "CEST/EET")
- )
- );
- var sShortWeekday = ooDateNames.aShortWeekdayNames[dDate.getDay()];
- var sMedWeekday = ooDateNames.aMedWeekdayNames[dDate.getDay()];
- var sLongWeekday = ooDateNames.aLongWeekdayNames[dDate.getDay()];
- var sShortMonth = ooDateNames.aShortMonthNames[dDate.getMonth()];
- var sMedMonth = ooDateNames.aMedMonthNames[dDate.getMonth()];
- var sLongMonth = ooDateNames.aLongMonthNames[dDate.getMonth()];
- var iYear = dDate.getYear();
- if (iYear < 100)
- iYear += 1900;
- var sLongYear = String(iYear);
- var sShortYear = sLongYear.substr(sLongYear.length - 2, 2);
- var sMonth = String(dDate.getMonth() + 1);
- var sDay = String(dDate.getDate());
- var sHours = String(dDate.getHours());
- var sMins = String(dDate.getMinutes());
- var sSecs = String(dDate.getSeconds());
- if (dDate.getMilliseconds)
- var sSecs1000 = String(dDate.getMilliseconds());
- else
- var sSecs1000 = "0";
- var sTZmins = String(-dDate.getTimezoneOffset());
- var iTZhours = Math.floor(-dDate.getTimezoneOffset() / 60);
- var iTZmins = ((-dDate.getTimezoneOffset() / 60) + iTZhours) * 60;
- var sTZhoursMins = String(iTZhours) + ":" + ((iTZmins < 10) ? "0" : "") + String(iTZmins);
- var sTZhours2Mins = ((iTZhours < 10) ? "0" : "") + String(iTZhours) + ":" + ((iTZmins < 10) ? "0" : "") + String(iTZmins);
- var sTZdescr = ooDateNames.getTZdescr(-dDate.getTimezoneOffset());
- alert(ooDateNames);
-
- sFormat = replaceText(sFormat, cDateLblOpen + "yyyy" + cDateLblClose,
- sLongYear);
- sFormat = replaceText(sFormat, cDateLblOpen + "yy" + cDateLblClose,
- sShortYear);
- sFormat = replaceText(sFormat, cDateLblOpen + "MMMM" + cDateLblClose,
- sLongMonth);
- sFormat = replaceText(sFormat, cDateLblOpen + "MMM" + cDateLblClose,
- sMedMonth);
- sFormat = replaceText(sFormat, cDateLblOpen + "MM" + cDateLblClose,
- sShortMonth);
- sFormat = replaceText(sFormat, cDateLblOpen + "0M" + cDateLblClose,
- ((sMonth.length < 2) ? "0" + sMonth : sMonth));
- sFormat = replaceText(sFormat, cDateLblOpen + "M" + cDateLblClose,
- sMonth);
- sFormat = replaceText(sFormat, cDateLblOpen + "dddd" + cDateLblClose,
- sLongWeekday);
- sFormat = replaceText(sFormat, cDateLblOpen + "ddd" + cDateLblClose,
- sMedWeekday);
- sFormat = replaceText(sFormat, cDateLblOpen + "dd" + cDateLblClose,
- sShortWeekday);
- sFormat = replaceText(sFormat, cDateLblOpen + "0d" + cDateLblClose,
- ((sDay.length < 2) ? "0" + sDay : sDay));
- sFormat = replaceText(sFormat, cDateLblOpen + "d" + cDateLblClose,
- sDay);
- sFormat = replaceText(sFormat, cDateLblOpen + "hh" + cDateLblClose,
- ((sHours.length < 2) ? "0" + sHours : sHours));
- sFormat = replaceText(sFormat, cDateLblOpen + "h" + cDateLblClose,
- sHours);
- sFormat = replaceText(sFormat, cDateLblOpen + "mm" + cDateLblClose,
- ((sMins.length < 2) ? "0" + sMins : sMins));
- sFormat = replaceText(sFormat, cDateLblOpen + "m" + cDateLblClose,
- sMins);
- sFormat = replaceText(sFormat, cDateLblOpen + "ss" + cDateLblClose,
- ((sSecs.length < 2) ? "0" + sSecs : sSecs));
- sFormat = replaceText(sFormat, cDateLblOpen + "SSS" + cDateLblClose,
- ((sSecs1000.length < 3) ? "0" : "") +
- ((sSecs1000.length < 2) ? "0" : "") + sSecs1000);
- sFormat = replaceText(sFormat, cDateLblOpen + "SS" + cDateLblClose,
- ((sSecs1000.length < 3) ? "0" : "") +
- ((sSecs1000.length < 2) ? "0" : "") + sSecs1000);
- sFormat = replaceText(sFormat, cDateLblOpen + "S" + cDateLblClose,
- sSecs1000);
- sFormat = replaceText(sFormat, cDateLblOpen + "TTTTT" + cDateLblClose,
- sTZdescr);
- sFormat = replaceText(sFormat, cDateLblOpen + "TTTT" + cDateLblClose,
- sTZhours2Mins);
- sFormat = replaceText(sFormat, cDateLblOpen + "TTT" + cDateLblClose,
- sTZhoursMins);
- sFormat = replaceText(sFormat, cDateLblOpen + "TT" + cDateLblClose,
- (iTZmins < 10) ? "0" + iTZmins : String(iTZmins));
- sFormat = replaceText(sFormat, cDateLblOpen + "T" + cDateLblClose,
- String(iTZmins));
-
- return sFormat;
-}
-
-// German weekdays, month labels and timezone descriptions
-var oDateNames_de = new TDateNames(
- new Array("So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"),
- new Array("Son", "Mon", "Die", "Mit", "Don", "Fre", "Sam"),
- new Array(
- "Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag",
- "Freitag", "Samstag"
- ),
- new Array(
- "Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug",
- "Sep", "Okt", "Nov", "Dez"
- ),
- new Array(
- "Jan", "Feb", "M�r", "Apr", "Mai", "Jun", "Jul", "Aug",
- "Sep", "Okt", "Nov", "Dez"
- ),
- new Array(
- "Januar", "Februar", "M�rz", "April", "Mai", "Juni",
- "Juli", "August", "September", "Oktober", "November", "Dezember"
- ),
- new Array(
- new TTZdescr(-60, "WEZ"),
- new TTZdescr( 0, "GMT"),
- new TTZdescr( 60, "MEZ"),
- new TTZdescr(120, "MESZ/OET")
- )
-);
-
-
-function playSound( sSoundFile, Loop, sAttrib ) {
- if( playSound.arguments.length < 2 )
- return(EInvalidArgNum( "Level 2: playSound", 2 ));
- if( document.all ) {
- var sAdjacent = "<bgsound ";
- if( (playSound.arguments.length == 3) && (sAttrib.length != "") ) {
- sAdjacent += sAttrib;
- sAdjacent += " ";
- }
- sAdjacent += "src=\"";
- sAdjacent += sSoundFile;
- sAdjacent += "\" loop=\"";
- if( isNaN(Loop) )
- sAdjacent += Loop;
- else
- sAdjacent += String(Loop);
- sAdjacent += "\">";
- document.all.tags("head")[0].insertAdjacentHTML( "BeforeEnd", sAdjacent );
- }
-}
Index: live/grammar.js
===================================================================
--- live/grammar.js (revision 509)
+++ live/grammar.js (nonexistent)
@@ -1,161 +0,0 @@
-function Grammar(aProductions)
-{
- this.version = "0.0.1";
- this.productions = aProductions;
-}
-
-function Production(source, target)
-{
- this.source = source;
- this.target = target;
-}
-
-Production.prototype.toString = function() {
- return this.source + '\n : ' + this.target;
-};
-
-function Modifier(expression, type)
-{
- this.expression = expression;
- this.type = type;
-}
-
-Modifier.prototype.toString = function() {
- return this.expression + this.type;
-};
-
-function Group(aItems)
-{
- this.items = aItems;
-}
-
-Group.prototype.toString = function() {
- var result = "";
- for ( var i = 0; i < this.items.length; i++)
- {
- if (i > 0)
- {
- result += ' ';
- }
- result += this.items[i];
- }
- return result;
-};
-
-function Alternative(aExpressions)
-{
- this.expressions = aExpressions;
-}
-
-Alternative.prototype.toString = function() {
- var result = "";
- for ( var i = 0; i < this.expressions.length; i++)
- {
- if (this.expressions[i] instanceof Group)
- {
- result += "\n";
- }
- if (i > 0)
- {
- result += ' | ';
- }
- result += this.expressions[i];
- }
-
- return result;
-};
-
-function Expression(value)
-{
- this.value = value;
-}
-
-Expression.prototype.toString = function() {
- return this.value;
-};
-
-function Literal(sValue)
-{
- this.value = sValue;
-}
-
-Literal.prototype.toString = function() {
- return "'" + this.value + "'";
-};
-
-if (typeof jsx == "undefined")
-{
- var jsx = {};
-}
-
-jsx.grammar = {
- Grammar2: function (productions, autoResolve) {
- for (var property in productions)
- {
- productions[property] = {
- value: productions[property],
- enumerable: true,
- writable: true
- };
- }
-
- this.productions = Object.create(null, productions);
- if (autoResolve)
- {
- this.resolve();
- }
- }.extend(null, {
- /**
- * @memberOf jsx.grammar.Grammar2.prototype
- */
- resolve: function () {
- var productions = this.productions;
- for (var symbol in productions)
- {
- var production = productions[symbol];
- var rxSymbol = /\\\{|\{([^\}]+)\}/g;
- var resolverStack = [];
- resolverStack.toString = function () {
- return this.join(" --> ");
- };
-
- productions[symbol] = production.replace(rxSymbol,
- function resolver (match, symbolRef) {
- if (!symbolRef)
- {
- return match;
- }
-
- if (resolverStack.indexOf(symbolRef) > -1)
- {
- throw new Error(
- "Grammar is not finite, goal symbol '" + symbolRef
- + "' is cyclically defined: " + resolverStack);
- }
-
- resolverStack.push(symbolRef);
-
- var unresolved = productions[symbolRef];
-
- if (typeof unresolved != "undefined")
- {
- /* Resolve references recursively */
- var rxSymbol = /\\\{|\{([^\}]+)\}/g;
- var resolved = unresolved.replace(rxSymbol, resolver);
- }
- else
- {
- throw new Error(
- "Goal symbol '" + symbolRef
- + "' referenced in definition of goal symbol '" + symbol
- + "' is not defined");
- }
-
- resolverStack.pop();
-
- return resolved;
- });
- }
- }
- })
-};
\ No newline at end of file
Index: live/accessng.js
===================================================================
--- live/accessng.js (revision 509)
+++ live/accessng.js (nonexistent)
@@ -1,12 +0,0 @@
-if (!this.dhtml)
-{
- var dhtml = new Object();
- dhtml.supported = false;
-}
-
-if (dhtml.supported)
-{
- document.write(
- '<div class="standby" id="div_status">ACCESSING FILE <span id="dots"'
- + '>&nbsp;<\/span><\/div>');
-}
Index: live/JSdoc/jsdoc-simple.js
===================================================================
--- live/JSdoc/jsdoc-simple.js (revision 509)
+++ live/JSdoc/jsdoc-simple.js (nonexistent)
@@ -1,84 +0,0 @@
-if (typeof de.pointedears.jsdoc == "undefined")
-{
- /**
- * @namespace
- */
- de.pointedears.jsdoc = {};
-}
-
-de.pointedears.jsdoc.generate = function (code) {
- var rx = /\/\*\*(([^*]|\*[^\/])+)\*\//g, m;
-
- while ((m = rx.exec(code)))
- {
- var comment = m[1].replace(/(<pre>[\S\s]+?<\/pre>)|^\s*\*\s*/gm, "$1");
-
- comment = comment.replace(
- /<title>([\S\s]+?)<\/title>/gi,
- function (match, title) {
- var newTitle = title + " – " + document.title;
- document.title = newTitle;
- window.top.document.title = newTitle;
- return "";
- });
-
- comment = comment.replace(
- /@filename\s+(\S+)/,
- function (match, filename) {
- var title = document.getElementById("title");
- jsx.dom.removeChildren(title, title.childNodes);
- title.appendChild(jsx.dom.createElementFromObj({
- type: "tt",
- childNodes: [
- filename
- ]
- }));
-
- return "";
- });
-
- comment = comment.replace(
- /@version\s+(.+)/,
- function (match, version) {
- document.body.appendChild(jsx.dom.createElementFromObj({
- type: "p",
- childNodes: [
- {
- type: "b",
- childNodes: [
- "Version: "
- ]
- }, " " + version
- ]
- }));
-
- return "";
- });
-
- comment = comment.replace(
- /@section\s+(.+)|@author\s+(.*)|@partof\s+(.*)/g,
- function (match, section, author, partof)
- {
- if (section)
- {
- return "<h2>" + section + "<\/h2>";
- }
-
- if (author)
- {
- return "<p>" + author + "<\/p>";
- }
-
- if (partof)
- {
- return "<p>Part of " + partof + "<\/p>";
- }
-
- return match;
- });
-
- var div = document.createElement("div");
- div.innerHTML = comment;
- document.body.appendChild(div);
- }
-};
\ No newline at end of file
/live/JSdoc/jsdoc-simple.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/math.js
===================================================================
--- live/math.js (revision 509)
+++ live/math.js (nonexistent)
@@ -1,150 +0,0 @@
-/**
- * @fileOverview <title>PointedEars' JSX: Basic Math Library</title>
- * @file $Id$
- * @requires object.js
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2000-2011, 2013 Thomas Lahn &lt;math.js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-/*
- * This document contains JavaScriptDoc[tm], see
- * <http://pointedears.de/scripts/JSDoc/>
- * for details.
- *
- * Refer math.htm file for general documentation.
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-/**
- * @namespace
- */
-jsx.math = {
- version: "1.16.$Rev$",
- copyright: "Copyright \xA9 1999-2011, 2013",
- author: "Thomas Lahn",
- email: "math.js@PointedEars.de",
- path: "http://pointedears.de/scripts/"
-};
-// jsx.math.docURL = jsx.math.path + "math.htm";
-
-/* User interface language */
-jsx.math.language = "en";
-
-/** @section Exceptions */
-
-jsx.math.msgInvArg = {
- 'en': 'Invalid function argument',
- 'de': 'Ungültiges Funktionsargument'
-};
-
-jsx.math.msgArgMissing = {
- 'en': 'Required argument missing',
- 'de': 'Erforderliches Argument fehlt'
-};
-
-jsx.math.msgInvOp = {
- 'en': 'Invalid operand',
- 'de': 'Ungültiger Operand'
-};
-
-jsx.math.msgOverflow = {
- 'en': 'Overflow',
- 'de': 'Überlauf'
-};
-
-jsx.math.msgUnderflow = {
- 'en': 'Underflow',
- 'de': 'Unterlauf'
-};
-
-jsx.math.msgDivByZero = {
- 'en': 'Division by zero',
- 'de': 'Division durch Null'
-};
-
-/**
- * @param sError
- * @param sMessage
- */
-jsx.math.MathError = function(sError, sMessage) {
- this.constructor._super.call(this,
- "math.js Error: "
- + (typeof sError[jsx.math.language] != "undefined"
- ? sError[jsx.math.language]
- : sError["en"])
- + " " + (sMessage || ""));
-};
-jsx.math.MathError.extend(jsx.Error);
-
-/**
- * @param sMethodCall
- * @param iErrorCode
- * @todo
- */
-jsx.math.InvalidArgumentError = function(sMethodCall, iErrorCode) {
- var sSubErrType = jsx.math.msgInvArg;
-
- switch (iErrorCode)
- {
- case -1:
- sSubErrType = jsx.math.msgArgMissing;
- break;
- }
-
- jsx.math.MathError.call(this, sSubErrType);
-};
-
-jsx.math.InvalidOperandError = function() {
- jsx.math.MathError.call(this, jsx.math.msgInvOp);
-};
-
-jsx.math.OverflowError = function() {
- jsx.math.MathError.call(jsx.math.msgOverflow);
-};
-
-jsx.math.UnderflowError = function() {
- jsx.math.MathError.call(jsx.math.msgUnderflow);
-};
-
-jsx.math.DivisionByZeroError = function() {
- jsx.math.MathError.call(jsx.math.msgDivByZero);
-};
-
-
-/*
- * TODO:
-
-"I want the *option* to switch from standard 32-bit doubles to double
-precision long doubles since it is not always necessary to run at such
-high precision [sometimes I'll trade performance for precision.]
-
-I would like *native* precision handlers (anything scripted
-is considerably slower).
-
-I would like a native fixed point and integer math package."
-
- */
/live/math.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Index: live/doc/tree.html
===================================================================
--- live/doc/tree.html (revision 509)
+++ live/doc/tree.html (nonexistent)
@@ -1,208 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Object Hierarchy &#8212; JSX API Documentation</title>
- <base target="main">
- <link rel="stylesheet" href="../style.css" type="text/css">
- <style type="text/css">
- <!--
- ul {
- padding-left: 1em;
- margin-top: 0;
- list-style: none;
- }
-
- ul {
- padding-left: 0;
- }
-
- li:before {
- content: "\251C";
- }
-
- li li:before {
- content: "\2502 \251C";
- }
-
- li:last-child li:before {
- content: "\2000 \251C";
- }
-
- li:last-child li li:before {
- content: "\2000 \2502 \251C";
- }
-
- li:last-child li:last-child li:before {
- content: "\2000 \2000 \251C";
- }
-
- li li li:before {
- content: "\2502 \2502 \251C";
- }
-
- li li li li:before {
- content: "\2502 \2502 \2502 \251C";
- }
-
- li:last-child:before {
- content: "\2514";
- }
-
- li li:last-child:before {
- content: "\2502 \2514";
- }
-
- li:last-child li:last-child:before {
- content: "\2000 \2514";
- }
-
- li li li:last-child:before {
- content: "\2502 \2502 \2514";
- }
-
- li li li:last-child:before li {
- content: "\2502 \2502 \2000 \2514";
- }
-
- li li li li:last-child:before {
- content: "\2502 \2502 \2502 \2514";
- }
-
- li:last-child li li:last-child:before {
- content: "\2000 \2502 \2514";
- }
-
- li li:last-child li:last-child:before {
- content: "\2502 \2000 \2514";
- }
-
- li:last-child li:last-child li:last-child:before {
- content: "\2000 \2000 \2514";
- }
-
- li:last-child li:last-child li:last-child li:last-child:before {
- content: "\2000 \2000 \2000 \2514";
- }
-
- [title] {
- cursor: help;
- }
- -->
- </style>
- <script type="text/javascript" src="../builder.php?src=object,regexp,dom"></script>
- <script type="text/javascript">
- var traverseHistory = []
-
- function buildTree (root, path)
- {
- var ul = document.createElement("ul");
- var ownProperties = Object.getOwnPropertyNames(root);
- ownProperties.sort();
- for (var i = 0, len = ownProperties.length; i < len; ++i)
- {
- var li = document.createElement("li");
- var code = document.createElement("code");
- var propertyName = ownProperties[i];
- var propertyValue = root[propertyName];
-
- switch (typeof propertyValue)
- {
- case "boolean":
- li.appendChild(document.createTextNode("[B] "));
- break;
-
- case "function":
- li.appendChild(document.createTextNode("[F] "));
- break;
-
- case "number":
- li.appendChild(document.createTextNode("[N] "));
- break;
-
- case "object":
- li.appendChild(document.createTextNode("[O] "));
- break;
-
- case "string":
- li.appendChild(document.createTextNode("[S] "));
- break;
-
- default:
- break;
- }
-
- code.appendChild(document.createTextNode(propertyName));
- code.title = path + "." + propertyName;
- var a = document.createElement("a");
- a.href = "details.html?" + (code.title.match(/^jsx\.(.*)/) || [, ""])[1].replace(/\./g, "/");
- a.appendChild(code);
- li.appendChild(a);
- if (((typeof propertyValue == "object" && propertyValue)
- || (propertyName == "prototype"))
- && propertyValue != jsx.global
- && traverseHistory.indexOf(propertyValue) < 0)
- {
- traverseHistory.push(propertyValue);
- li.appendChild(buildTree(propertyValue, code.title));
- traverseHistory.pop();
- }
-
- ul.appendChild(li);
- }
-
- return ul;
- }
-
- function startTree ()
- {
- document.body.appendChild(jsx.dom.createElementFromObj({type: "code", childNodes: ["Function"]}));
- document.body.appendChild(buildTree(Function, "Function"));
- document.body.appendChild(jsx.dom.createElementFromObj({type: "code", childNodes: ["jsx"]}));
- document.body.appendChild(buildTree(jsx, "jsx"));
- }
- </script>
- </head>
-
- <body onload="startTree()">
- <h1>Object Hierarchy</h1>
-<!--
- <ul>
- <li><code>de</code>
- <ul>
- <li><code>pointedears</code>
- <ul>
- <li><code><a href="jsx/object#jsx">jsx</a></code></li>
- </ul></li>
- </ul></li>
- <li><code><a href="jsx/object#jsx">jsx</a></code>
- <ul>
- <li><code>MSG_INFO</code></li>
- <li><code>MSG_WARN</code></li>
- <li><code>MSG_DEBUG</code></li>
- <li><code>animation</code>
- <ul>
- <li><a href="jsx/animation/Animation"><code>Animation</code></a></li>
- <li><code>Frame</code></li>
- <li><code>KeyFrame</code></li>
- <li><code>KeyValue</code></li>
- <li><code>NoKeyFramesError</code></li>
- <li><code>NoTimelineError</code></li>
- <li><a href="jsx/animation/Timeline"><code>Timeline</code></a></li>
- </ul></li>
- <li><code>dom</code></li>
- <li><code><a href="jsx/object#jsx.object">object</a></code>
- <ul>
- <li><code>ADD_OVERWRITE</code></li>
- <li><code>COPY_ENUM</code></li>
- </ul></li>
- <li><code>options</code>
- <ul>
- <li><code>emulate</code></li>
- </ul></li>
- </ul></li>
- </ul>
- -->
- </body>
-</html>
\ No newline at end of file
/live/doc/tree.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/doc/historic/undots.txt
===================================================================
--- live/doc/historic/undots.txt (revision 509)
+++ live/doc/historic/undots.txt (nonexistent)
@@ -1,40 +0,0 @@
-ORIGINAL FILENAME: undots.js
-PURPOSE: Provides Part 2 of the JavaScript 3dots LCARS Support
-SCRIPT LANGUAGE/VERSION: JavaScript 1.2
-FILE VERSION: 1.00.2000.10
-PART OF: PointedEars' LCARS extensions
-DEPENDS ON: Any JavaScript 1.2 or HTML that defines the <div> objects
- named "div_status" and "div_content"
- dots.js
-TESTED WITH:
- Microsoft Internet Explorer 5.50, displayed 5.50.4134.0600IC
-
-VERSION HISTORY
-1.01.2001.1 2001-01-11 Moved general documentation to text file for faster processing.
-1.00.2000.10 2000-10-21 Introduced script file moved from HTML inline scripts
-
-COPYRIGHT (c) 2000 by PointedEars Software (PES).
-mailto:webmaster@PointedEars.de
-
-TERMS OF USE:
-This code may be used and modified within the limits described below
-for non-commercial purposes only and if the copyright above is also
-mentioned.
-
-HOW TO USE:
-I recommend to utilize the functions of this script in different
-HTML documents when saving the entire file as script.js and appending the
-following section within the <BODY><DIV id="div_content"></DIV></BODY> tags
-of that documents where DIV defines the text to be hidden until loading is completed:
-
-<script language="JavaScript1.2" src="undots.js" type="text/javascript"></script>
-
-undots.js requires dots.js (initializes the status display)
-to be called before undots.js in the HTML document for the function make sense.
-
-
-Description
-------------
-
-This script clears the window interval in which the <span> object named "dots" is
-modified and displays the content within the <div> object named "div_content".
Index: live/doc/historic/document.txt
===================================================================
--- live/doc/historic/document.txt (revision 509)
+++ live/doc/historic/document.txt (nonexistent)
@@ -1,390 +0,0 @@
-ORIGINAL FILENAME: document.js
-PURPOSE: Provides JavaScript routines and objects to create
- temporary documents
-SCRIPT LANGUAGE/VERSION: JavaScript 1.1
-FILE VERSION: 1.19.2001.1
- (see documentVersion variable definition in script file)
-TESTED WITH:
- Microsoft Internet Explorer 5.50.4134.0600IC
- Microsoft Internet Explorer 5.01, "5.00.2919.6307IC"
- Microsoft Internet Explorer 5.00.2314.1003IC
-
-VERSION HISTORY (current on top)
-1.19.2001.1 2001-01-11 Moved general documentation to text file for faster processing.
-1.18.2000.8 2000-08-22 Improved CHTMLdoc.showProperties() method, now uses for-in-loop
- to retrieve available properties dynamically.
-1.17.2000.8 2000-08-13 Improved documentation texts.
- Tested script file successfully with IE5.5
-1.16.2000.7 2000-07-24 Added HTMLwriteLinkFavIcon() function and resp. method
-1.15.2000.6 2000-06-10 Improved documentation texts.
-1.14.2000.5 2000-05-24 Changed message box display in CHTMLdoc.showProperties() method
- Added tagCount global variable and resp. CHTMLdoc property
- Added CHTMLdocCount global variable for instance auto-naming
-1.13.2000.4 2000-04-20 Added HTMLwriteStyle(...) function and resp. method
-1.12.2000.4 2000-04-09 Improved HTMLdocOpen, now uses default argument values
-1.11.2000.4 2000-04-04 Improved HTMLwriteScript, now uses default argument values
-1.10.2000.3 2000-03-31 Usage of global variables for script data like version,
- author and contact e-mail address
-1.09.2000.3 2000-03-25 Renamed non-HTML-specific functions
-1.08.2000.3 2000-03-24 Fixed default color and background image properties
- of new CHTMLdoc instances
- Fixed invalid condition in HTMLdocOpen(...) function
- Fixed invalid func. name in HTMLdocShowProperties()
-1.07.2000.3 2000-03-24 Improved HTMLwriteTag, now uses default arg. values
- Improved DTD strings with "\"" instead of '"'
-1.06.2000.3 2000-03-23 Fixed some minor issues, renamed from html.js to
- document.js
-1.05.2000.3 2000-03-19 Added OOP support for Multiple Document Access (MDA)
-1.05.2000.3 2000-03-17 Added support for Object-Oriented Programming (OOP)
-
-Copyright © 2000-2001 by Thomas Lahn (PES);
-See sAuthorCopyright variable definition in script file.
-
-TERMS OF USE:
-This code may be used and modified within the limits described below
-for non-commercial purposes only and if the copyright above is also
-mentioned.
-
-HOW TO USE:
-I recommend to utilize the functions of this script in different
-HTML documents when saving the entire file as document.js and appending the
-following section within the <HEAD></HEAD> tags of that documents:
-
-<script language="JavaScript1.2" src="document.js" type="text/javascript"></script>
-
-Sometimes it may be necessary to add the tag
-
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-
-to the document that uses functions defined herein for the script to work.
-
-All functions to perform HTML write operations defined herein use the
-HTMLdoc variable as target (see below) to create a temporary HTML document.
-
-This script file provides the following functions:
-
-docCheck Checks whether the document specified by HTMLdoc exists.
-HTMLdocOpen Opens a new HTML document.
-HTMLdocClose Closes a new HTML document.
-docWrite Writes directly into a temporary document.
-docWriteLn Writes an entire line directly into a temporary document.
-HTMLwriteTag Writes an HTML tag.
-HTMLwriteMeta Writes an HTML <META> tag.
-HTMLwriteScript Writes an HTML <SCRIPT> section.
-HTMLwriteStyle Writes an HTML <STYLE> section.
-HTMLwriteLinkFavIcon Writes an HTML <LINK> tag to determine the icon used when the
- web page is bookmarked in Internet Explorer Favorites folder.
-HTMLheadOpen Opens the HTML header.
-HTMLheadClose Closes the HTML header.
-HTMLbodyOpen Opens the HTML body.
-HTMLbodyClose Closes the HTML body.
-
-See the function documentations below for details.
-
-_______________________________________________________________________________
-
-The HTMLdoc variable specifies the document object that is used for
-write operations.
-The default is the document where this script file is included.
-You would surely prefer another frame of the previously defined frameset
-as target. Therefore you can modify the variable's value and add the section
-
-<script language="JavaScript1.1"><!--
-...
-HTMLdoc = parent.frames[2].document;
-...
-//--></script>
-
-in the HTML document file where this script is included. It will cause the
-following function calls of this script to write into the third frame
-of that frameset (frames are counted from 0).
-Do not use the TYPE attribute on the script section because
-M$ Internet Explorer will then ignore the whole script.
-
-_______________________________________________________________________________
-
-function docCheck(bRaiseException)
-
-Returns true if the document object specified by HTMLdoc is available/is valid/
-does exist, otherwise it returns false.
-If you pass true as only argument, the function will raise an ENoDocument
-exception if it will return false.
-No exception will be raised if you pass an invalid argument or
-an invalid number of arguments (silent mode).
-
-Note: All functions defined herein to write HTML content call docCheck
-by default to raise an exception if the document object specified HTMLdoc
-is not available/is invalid/does not exist.
-
-_______________________________________________________________________________
-
-function HTMLdocOpen(sDTD, bReplace)
-
-Replaces the document specified by HTMLdoc with a blank HTML document.
-
-Use the sDTD argument and one of the variables named dtd... defined above
-to specify a registered Document Type Definition (DTD) for the document,
-e. g. the DTD may specify the HTML version of the document's tags use.
-You may also add one of the variables named dtdURL_... to the variables
-named dtdHTML4... to define the tag policy you are using:
-
-<script language="JavaScript1.2" src="document.js" type="text/javascript"></script>
-<script language="JavaScript1.2">
-<!--
-HTMLdoc = parent.document; Assign required document object
-HTMLdocOpen( dtdHTML4frm + dtdURL_HTML4frm ); Create document for frameset
-... Other statements
-HTMLdocClose(); Close the created HTML document
--->
-</script>
-
-The document created with the example above will contain the following:
-
-<!doctype html public "-W3CDTD HTML 4.0 FramesetEN"
- "http:www.w3.org/TR/REC-html40/frameset.dtd">
-<html>
-
-Use true for the bReplace argument to specify whether the new document
-should also replace the previous document in the browser's document history.
-
-Note: The function call keeps the new document open for further
-write operations. Recommended to use HTMLdocClose() on the same document after
-completed writing. If you have formerly opened the previous document
-in that frame with document.open() or HTMLdocOpen(), it is recommended that
-you call HTMLdocClose() first for saving system resources (see below).
-
-_______________________________________________________________________________
-
-function HTMLdocClose()
-
-Closes the document specified by HTMLdoc.
-Use HTMLdocClose() if you have formerly opened a new document with
-document.open() or HTMLdocOpen() (see above).
-
-_______________________________________________________________________________
-
-function docWrite(s)
-
-Writes the passed argument into the HTML document.
-Unlike HTMLdoc.write() it checks the document object before using it
-and raises an exception if it is not available.
-
-_______________________________________________________________________________
-
-function docWriteLn(s)
-
-Writes the passed argument into the HTML document including
-Carriage Return character.
-Unlike HTMLdoc.writeln() it checks the document object before using it
-and raises an exception if it is not available.
-
-_______________________________________________________________________________
-
-function HTMLwriteTag(sTag, sAttrib, sContent)
-
-Writes an opening and closing HTML tag into the HTML document.
-Note: Does not write Carriage Return character when finished.
-Unlike HTMLdoc.write() it checks the document object before using it
-and raises an exception if it is not available.
-
-The function requires the following arguments to be passed:
-
-sTag Name of the tag to be written: Null-string causes exception.
-sAttrib Tag attributes: Null-string allowed. Combine two or more attributes
- separated by spaces.
-sContent Content between the opening and closing tag. If you pass a
- null-string the function does not write a closing tag.
-
-The variable HTMLtagCount stores the number of HTML tags that has
-been written into the document with HTMLwriteTag().
-
-_______________________________________________________________________________
-
-function HTMLwriteMeta(sName, sHTTPequiv, sContent) {
-
-Appends a <META ...> tag to the HTML document specified by HTMLdoc.
-This type of tag is allowed within the HTML header only.
-
-ARGUMENT MEANING
-sName If not a null-string, the argument defines the value of the
- NAME attribute of the <META> tag.
-sHTTPequiv If not a null-string, the argument defines the value of the
- HTTP-EQUIV attribute of the <META> tag.
-sContent Defines the CONTENT attribute of the <META> tag
- (null-string allowed).
-
-All described arguments are required for the function call. Otherwise
-an EInvalidArgNum exception is raised.
-
-Note: The function call keeps the document body open for further
-write operations. Recommended to use HTMLheadClose() on the same document
-after completed writing into the header.
-
-The variable HTMLmetaCount stores the number of <META> tags that has been
-written into the document with HTMLwriteMeta() except the
-<META NAME="GENERATOR" ...> tag that is written automatically into the
-document on call of HTMLheadopen().
-Thus the GENERATOR value for the NAME attribute is refused to write into
-the document when calling HTMLwriteMeta. In that case, no exception is raised.
-
-_______________________________________________________________________________
-
-function HTMLwriteLinkFavIcon(sURL)
-
-Writes an HTML <LINK> tag to determine the icon used when the web page is
-bookmarked in Internet Explorer Favorites folder. The icon file (sURL) must be
-of 16x16 pixels in size.
-You can leave the use of this function if you place an icon file of 16x16
-pixels in size named favicon.ico in the root directory of your domain
-(www.your-domain.com/favicon.ico).
-
-_______________________________________________________________________________
-
-function HTMLwriteScript(sLang, sSrc, sType, sContent)
-
-Appends a <SCRIPT ...></SCRIPT> section to the HTML document specified by
-HTMLdoc. This type of tag is allowed within both the HTML header and body.
-
-ARGUMENT MEANING
-sLang Defines the language of the SCRIPT section (required).
-sSrc If not a null-string, the argument defines the included script
- file for the SCRIPT section (optional).
-sType If not a null-string, the argument defines the MIME type of the
- SCRIPT section (optional).
-sContent If not a null-string, the argument defines the statements that
- should be added to the script. Passing a null-string will cause
- the function not to write the remark tags. When sSrc is not a
- null-string, this argument is ignored.
-
-All described arguments are required for the function call if sSrc is not
-a null-string (therefore only arguments sLang, sSrc and sType required).
-Otherwise an EInvalidArgNum exception is raised.
-
-Note: The function call keeps the document body open for further
-write operations. See HTMLdocClose() for details.
-
-The variable HTMLscriptCount stores the number of script sections that has
-been written into the document with HTMLwriteScript().
-
-_______________________________________________________________________________
-
-function HTMLwriteStyle(sType, sAttrib, sContent)
-
-Appends a <STYLE ...></STYLE> section to the HTML document specified by
-HTMLdoc. This type of tag is allowed within the HTML header only.
-
-ARGUMENT MEANING
-sType Defines the type of the STYLE section.
- Valid values are a null-string or "text/css" for cascading
- style-sheets (IE and NN) and "text/javascript" for JavaScript
- style sheets (NN only).
- Invalid values cause an EInvalidArgument exception.
-sAttrib If not a null-string, the argument defines the the additional
- attributes for the STYLE section.
-sContent The argument defines the definitions and/or statements that
- should be added to the style sheet. Passing a null-string will
- raise an EInvalidArgument exception as the style section is
- not allowed to be empty.
-
-All described arguments are required for the function call.
-Otherwise an EInvalidArgNum exception is raised.
-
-Note: The function call keeps the document body open for further
-write operations. See HTMLdocClose() for details.
-
-The variable HTMLstyleCount stores the number of style sections that has
-been written into the document with HTMLwriteStyle().
-
-_______________________________________________________________________________
-
-function HTMLheadOpen(sTitle)
-
-Appends the beginning of an HTML document header into the document specified by
-HTMLdoc including the title tag.
-
-Use the sTitle argument to pass a string that is used for document title.
-Most browsers display this string in the title bar if the document is not
-displayed within a frameset.
-
-Note: The function call keeps the document header open for further
-write operations. Recommended to use HTMLheadClose() on the same document
-after completed writing into the header.
-
-_______________________________________________________________________________
-
-function HTMLheadClose()
-
-Closes the header of the document specified by HTMLdoc.
-Use HTMLheadClose() if you have formerly opened a document header with
-<head> or HTMLheadOpen() (see above).
-
-Note: The function call keeps the new document open for further
-write operations. See HTMLdocOpen() above for details.
-
-_______________________________________________________________________________
-
-function HTMLbodyOpen() {
-
-Appends the beginning of an HTML document body into the document specified by
-HTMLdoc.
-
-The function uses the clBody... variables for color attributes if their values
-are not null-strings (default).
-
-The function uses the imgBody variable to define the URL of the background
-image of the document if its value is not a null-string (default).
-
-The bBodyBgFixed variable is currently used by M$ Internet Explorer only.
-The default value is false. If true is assigned, and imgBody is also assigned,
-the background image will be in watermark style, meaning that it stands still
-when the document text is scrolled.
-
-Note: The function call keeps the document body open for further
-write operations. Recommended to use HTMLbodyClose() on the same document
-after completed writing into the document's body.
-
-_______________________________________________________________________________
-
-function HTMLbodyClose() {
-
-Closes the body of the document specified by HTMLdoc.
-Use HTMLbodyClose() if you have formerly opened a document body with
-<BODY> or HTMLbodyOpen() (see above).
-
-Note: The function call keeps the new document open for further
-write operations. See HTMLdocOpen() above for details.
-
-_______________________________________________________________________________
-
-Version 1.05.x Extension: Object-Oriented Programming (OOP)
-
-OOP using the CHTMLdoc class allows you to access different temporary
-HTML documents virtually simultaneously.
-You need to create an instance of this class for each temporary document
-using the JavaScript:new keyword as follows:
-
-Document1 = new CHTMLdoc(Target1);
-Document2 = new CHTMLdoc(Target2);
-
-TargetX is to be replaced with the document object you wish to access via
-the new instance.
-Then, after all necessary values have been assigned to the properties of the
-instance, you can activate the respective instance using its activate()
-method. After that, you can use the properties and methods as defined below
-to access the respective document object.
-
-Note that the activate() method is the only "gatekeeper" for HTML write
-operations via OOP. Once an instance is activated, the methods of all CHTMLdoc
-instances and the HTML...() functions themselves will use the properties of
-it as data source. Therefore there is no need to use the CHTMLdoc class and OOP
-instead of the HTML...() functions defined above if you wish to access a
-single document object only.
-The HTMLinstance object represents the currently active CHTMLdoc instance.
-
-If you wish to change the target document of an instance after creation,
-then assign a document object to its target property.
-Note that you need to call the activate() method of an instance every time
-after you have changed its properties to make the changes have effect on
-future method calls.
-_______________________________________________________________________________
-END OF FILE
Index: live/doc/historic/enhanced.htm
===================================================================
--- live/doc/historic/enhanced.htm (revision 509)
+++ live/doc/historic/enhanced.htm (nonexistent)
@@ -1,742 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>PointedEars' JavaScript Extensions (JSX): enhanced.js</title>
-<link rel="stylesheet" type="text/css" href="style.css">
-</head>
-
-<body>
-<h1>PointedEars' JavaScript Extensions (JSX)</h1>
-<h2>enhanced.js</h2>
-<pre>
-
-ORIGINAL FILENAME: <a href="enhanced.js" type="text/javascript"
- target="_blank">enhanced.js</a>
-PURPOSE: Provides level-1 enhanced web site features
-SCRIPT LANGUAGE/VERSION: JavaScript 1.1+
-PART OF: PointedEars' JavaScript Extensions (JSX)
-FILE VERSION: 1.29.2002.10b3;
- See <var>enhancedVersion</var> variable definition in script file.
-REQUIRED FOR: <a href="enhancd2.htm"
- title="View documentation of JSX:enhancd2.js">JSX:enhancd2.js</a>
- </pre>
-<h3>Contents</h3>
-<ul>
- <li><a href="#features">Features provided by this script</a></li>
- <li><a href="#testlist">List of browser tests</a></li>
- <li><a href="#history">Version history</a></li>
- <li><a href="#copyright">Copyright &amp; disclaimer</a></li>
- <li><a href="#def">Expressions used herein</a></li>
- <li><a href="#details">Detailed description of features</a></li>
-</ul>
-<p align="center" style="font-size: small;">Created with<br>
-<a href="http://quanta.sourceforge.net/" target="_blank"><img
- src="../media/quanta.png" alt="Quanta Plus" width="32" height="32"
- border="0"></a> <a
- href="http://www.macromedia.com/software/homesite/" target="_blank"><img
- src="../media/homesite3.gif" alt=" | Macromedia HomeSite | "
- width="44" height="34" border="0"></a><a
- href="http://www.macromedia.com/software/dreamweaver/" target="_blank"><img
- src="../media/dreamweaver2.gif" alt="Macromedia Dreamweaver MX"
- width="44" height="34" border="0"></a></p>
-<p align="center" style="font-size: small;"><a
- href="http://validator.w3.org/check/referer" target="_blank"><img
- src="http://www.w3.org/Icons/valid-html401"
- alt="This is valid HTML 4.01, " width="88" height="31" border="0"></a>
-<a href="http://jigsaw.w3.org/css-validator/check/referer"
- target="_blank"><img
- src="http://jigsaw.w3.org/css-validator/images/vcss" alt="valid CSS "
- style="border: 0; width: 88px; height: 31px"></a> <a
- href="http://www.anybrowser.org/campaign/" target="_blank"><img
- src="../media/anybrowser.gif"
- alt="and therefore optimized for ALL browsers!" width="88" height="31"
- border="0"></a></p>
-<hr>
-<h4><a name="features">Features Provided By This Script</a></h4>
-<dl>
- <dt><code><a href="#isArray">isArray</a></code></dt>
- <dd><pre>Checks whether a value is an array or not.</pre></dd>
- <dt><code><a href="#replaceText">replaceText</a></code></dt>
- <dd><pre>Replaces text within a string.</pre></dd>
- <dt><code><a href="#trimLeft">trimLeft</a></code></dt>
- <dd><pre>Returns a string where all leading spaces are stripped from.</pre></dd>
- <dt><code><a href="#trimRight">trimRight</a></code></dt>
- <dd><pre>Returns a string where all following spaces are stripped from.</pre></dd>
- <dt><code><a href="#trim">trim</a></code></dt>
- <dd><pre>Returns a string where all leading and following spaces are stripped from.</pre></dd>
- <dt><code>setStatus</code></dt>
- <dd><pre>Set the text that is displayed in the browser's status bar.</pre></dd>
- <dt><code>stripTags</code></dt>
- <dd><pre>Returns a string where all tags are stripped from.</pre></dd>
- <dt><code>linkOut</code></dt>
- <dd><pre>Questions the user before following an online link (useful in offline
-documents with Internet support.)</pre></dd>
- <dt><code>popUp</code></dt>
- <dd><pre>Loads a user-defined browser child window (pop-up window).
-(Previously addressed by OpenChildWin(...) function,
-see version history info above.)</pre></dd>
- <dt><code>LoadFrame</code></dt>
- <dd><pre>Loads a document within a specified frame.</pre></dd>
- <dt><code><a href="#getObjInfo">getObjInfo</a></code></dt>
- <dd><pre>Retrieves attributes of an object.</pre></dd>
-</dl>
-<h4><a name="testlist">Tested To Work At Least With</a></h4>
-<pre><!--script type="text/javascript">
-document.write(navigator.userAgent + "\n");
-</script-->Mozilla 1.2b nightly
- [Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.2b) Gecko/2002102108]
-Mozilla 1.2b nightly
- [Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.2b) Gecko/2002100604]
-Mozilla 1.2a
- [Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.2a) Gecko/20020911]
-Netscape 7.0
- [Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.0.1) Gecko/20020823
- Netscape/7.0]
-Mozilla 1.1b
- [Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.1b) Gecko/20020722]
-Mozilla 1.0
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0) Gecko/20020605]
-Mozilla 1.0 Release Candidate 3
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:1.0rc3) Gecko/20020523]
-Mozilla 1.0 Release Candidate 2
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:1.0rc2) Gecko/20020510]
-Mozilla 1.0 Release Candidate 1 nightly
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:1.0rc1) Gecko/20020417]
-Mozilla 0.9.9
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.9) Gecko/20020311]
-Mozilla 0.9.8 de-AT
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.8) Gecko/20020204]
-Mozilla 0.9.4
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.4) Gecko/20010913]
-Microsoft Internet Explorer 6.0.2600.0000
- [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Hotbar 3.0)]
-Netscape 6.1
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.2) Gecko/20010726
- Netscape6/6.1]
-Netscape 6.1
- [Mozilla/5.0 (X11; U; Linux 2.2.16 i586; de-DE; m18) Gecko/20010131
- Netscape6/6.01]
-Microsoft Internet Explorer 5.50.4807.2300IC
-Microsoft Internet Explorer 5.50.4134.0600IC
-Microsoft Internet Explorer 5.01 [5.00.2919.6307IC]
-Microsoft Internet Explorer 5.00.2314.1003IC
- </pre>
-<h4><a name="history">Version History</a></h4>
-<pre>
-<a href="#first">First version</a>
-
-<a name="last" id="last">1.29.2002.10b3 (2002-10-09)</a>
-----------------------------
-* Updated <code>getObjInfo</code> function:
- - Now supports a <a href="#regexp">RegExp</a> for the second argument (now <var><a
- href="#getObjInfo_aWhat">aWhat</a></var>, formerly <var>sWhat</var>)
- - Fixed bug with not provided <var>aWhat</var> argument by assigning a <a
- href="#def">null string</a>
-* Updated documentation:
- - Added link to last version
- - Added links to definitions
- - Updated definitions
- - Updated "null string" term
- - Unified Version History layout
-
-<a name="v1.29.2002.8b2" id="v1.29.2002.8b2">1.29.2002.8b2 (2002-08-30)</a>
-----------------------------
-* Updated <code>getObjInfo</code> function:
- - Now supports combination of (case-insensitive) attribute options
-
-<a name="v1.29.2002.8b" id="v1.29.2002.8b">1.29.2002.8b (2002-08-25)</a>
-----------------------------
-* Updated all functions:
- - changed $ident<code><span class="punct">.</span>arguments</code> to <code>arguments</code> because it is an intrinsic property
- of the function prototype
-
-<a name="v1.29.2002.8a" id="v1.29.2002.8a">1.29.2002.8a (2002-08-20)</a>
----------------------------
-* Updated <code>getObjInfo</code> function:
- - Now supports all types of objects, correct syntax provided
- - Now supports combination of (case-insensitive) style options
- - Introducing new style option 'S' that specifies to display attribute type
-* ObjectInspector still buggy
-
-<a name="v1.29.2002.7" id="v1.29.2002.7">1.29.2002.7 (2002-07-22)</a>
----------------------------
-* Updated <code>replaceText</code> function:
- - Introduced additional <var>bForceLoop</var> argument to prefer
- for-loop instead of <a href="#regexp">RegExps</a>. Useful when replacement with RegExp<a
- href="#regexp"></a>s
- requires too much modification of arguments.
-
-<a name="v1.28.2002.7" id="v1.28.2002.7">1.28.2002.7 (2002-07-15)</a>
----------------------------
-* Updated <code>ObjectInspector</code> function:
- - Workaround for suprising Mozilla bug with window.open(...):
- Creates exception to recommend use of <code>getObjInfo(...)</code>
-
-<a name="v1.25.2002.5" id="v1.25.2002.5">1.25.2002.5 (2002-05-10)</a>
----------------------------
-* Updated <code>getObjInfo(...)</code> function:
- - Fixed error when trying to retrieve attribute values without permission,
- use <code>try...catch</code> statements of JavaScript 1.5
- - Fixed &quot;empty lines above table in IE&quot; bug
-* Fixed undetected bug in <code>EInvalidArg(...)</code>, simplified <code>EInvalidArg(...)</code>
- and <code>EInvalidArgNum(...)</code> exceptions
-* Renamed <code>EnhancedException</code> to <code>enhancedException</code> and simplified code
-* Introduced <var>enhancedCopypright</var>, <var>enhancedAuthor</var> and <var>enhancedEMail</var>
- global variables to store script-related data for <strong>all</strong> script features,
- including <code>getObjInfo(...)</code>
-* Documentation update:
- - Updated <code>getObjInfo(...)</code> description
- - Have all code-related identifiers properly formatted
-
-1.24.2002.5 (2002-05-06)
----------------------------
-* Updated <code>replaceText(...)</code> function:
- - Fixed the &quot;<var>sText</var> has no properties&quot; bug with undefined attributes
- tried to retrieve with <code>getObjInfo(...)</code>
-* Updated <code>getObjInfo(...)</code> function with XHTML support
-* Documentation update:
- - Link to jump to the first version listed in history
- - Updated <code>replaceText(...)</code> description
- - Use of definition lists
- - Changed headers
-
-1.23.2002.4 (2002-04-30)
----------------------------
-* Updated <code>replaceText(...)</code> function, resolving the <code><a
- href="#regexp">RegExp</a></code> issues:
- - Replaces all occurrences of a string
- - Replaces also <code>\</code>
-
-1.22.2002.4 (2002-04-22)
----------------------------
-* Updated replaceText(...) function:
- - Support of the more effective <code>String.replace(...)</code> with <code><a
- href="#regexp">RegExp</a></code> of
- JavaScript 1.2
-* Documentation update:
- - Word wrap at 72 characters (applies to documentation standards)
- - Version History is no longer in columns but separate paragraphs
-* First version under the terms of the GNU GPL, version 2 or later.
-
-1.20.2002.2 (2002-02-24)
----------------------------
-* Updated <code>getObjInfo(...)</code> function:
- - Now supports also HTML output as list or table
-
-1.19.2001.10 (2001-10-20)
----------------------------
-* Added <code>isArray(...)</code> function
-
-1.19.2001.9 (2001-09-10)
----------------------------
-* Updated <code>getObjInfo(...)</code> function:
- - Now denies retrieval of all the attributes the ObjectInspector does
- (obsoleted by <a href="#v1.25.2002.5">version 1.25.2002.5</a>)
-
-1.18.2001.4 (2001-04-17)
----------------------------
-* Added <code>ObjectInspector(...)</code> function
-
-1.17.2001.2 (2001-02-28)
----------------------------
-* Added <code>getObjInfo(...)</code> function
-
-1.16.2001.1 (2001-01-11)
----------------------------
-* Moved general documentation to text file for faster processing
-
-1.15.2000.11 (2000-11-24)
----------------------------
-* Improved <code>linkOut(...)</code> function:
- - Now always returns false for combined document use in both
- <span class="a">href</span> attribute and <span class="a">onclick</span> event handler of <span
- class="a">A</span>-elements
-
-1.14.2000.11 (2000-11-15)
----------------------------
-* Improved <code>popUp(...)</code> and <code>OpenChildWin(...)</code> functions:
- - Now both functions return false for combined document use in both
- <span class="a">href</span> attribute and <span class="a">onclick</span> event handler of <span
- class="a">A</span>-elements
-* Established string variable named <var>enhancedVersion</var> to contain
- library version
-
-1.13.2000.10 (2000-10-17)
----------------------------
-* Improved inline documentation
-
-1.12.2000.8 (2000-08-13)
----------------------------
-* Tested script file successfully with IE5.5
-
-1.11.2000.7 (2000-07-03)
----------------------------
-* Fixed some mysterious bugs with IE 5.01 on string arguments and large
- HTML documents by assigning those strings to local variables and
- splitting string assignments (+= Workaround).
-* Modified email subject line to Feedback/JSX/enhanced
-
-1.10.2000.6 (2000-06-10)
----------------------------
-* Renamed <code>OpenChildWin(...)</code> function identifier to more familiar and
- easier recognized term <code>popUp(...)</code>;
- Compatibility to previous file versions is provided by internal call
- redirection, though new documents should use the new identifier.
-* Improved inline documentation
-
-1.09.2000.3 (2000-03-27)
----------------------------
-* Fixed &quot;location is not an object&quot; bug in <code>linkOut(...)</code>
-* Fixed spelling error in <code>EInvalidArg(...)</code> exception
-* Fixed global frame ID evaluation bug
-
-1.08.2000.3 (2000-03-23)
----------------------------
-* Improved <code>setStatus(...)</code> function
-
-1.07.2000.3 (2000-03-20)
----------------------------
-* Added <code>setStatus(...)</code> function
-
-1.06.2000.3 (2000-03-19)
----------------------------
-* Fixed <var>sResult</var> variable assignment in <code>trim(...)</code>
-
-<a name="first" id="first">1.05.2000.3 (2000-03-21)</a>
----------------------------
-* Fixed and updated <code>linkOut(...)</code> function
-
-<a href="#last">Last version</a>
- </pre>
-<h4><a name="copyright">Copyright &amp; Disclaimer</a></h4>
-<pre>
-Copyright (c) 1999-2002 Thomas Lahn &lt;<a
- href="mailto:webmaster@PointedEars.de?subject=Feedback/JSX/enhanced">webmaster@PointedEars.de</a>&gt;
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the <a
- href="http://www.gnu.org/copyleft/gpl.html" target="_blank">GNU General Public License</a>
-as published by the <a href="http://www.fsf.org/" target="_blank">Free Software Foundation</a>; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program (<a href="COPYING" target="_blank">COPYING</a> file); if not, write to the
-Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.
-
-HOW TO USE:
-I recommend to utilize the functions of this script in
-different HTML documents when saving the entire file as
-script.js and appending the following section within the
-<span class="tags">&lt;head&gt;...&lt;/head&gt;</span> tags of that documents:
-
-<span class="scr">&lt;script src="enhanced.js" type="text/javascript"&gt;&lt;/script&gt;</span>
- </pre>
-<h4><a name="def">Expressions Used Herein</a></h4>
-<dl>
- <dt>null string</dt>
- <dd><pre>An empty string that contains no characters, i.e. is of length 0 (zero).</pre></dd>
- <dt><code>(Expression1 | Expression2 | ...)</code></dt>
- <dd><pre>Exclusive selection of expressions in Backus-Naur Form (BNF). [<a
- href="http://google.com/search?q=Backus-Naur+Form" target="_blank">details</a>]</pre></dd>
- <dt><code><a name="regexp">RegExp</a></code></dt>
- <dd><pre>A regular expression encapsulated by the RegExp object. [<a
- href="http://web.archive.org/devedge.netscape.com/library/manuals/2000/javascript/1.5/reference/regexp.html#1193136"
- target="_blank">details</a>]</pre></dd>
-</dl>
-<pre>
-<a name="details">Following the detailed description of the features of this script file.</a>
-_______________________________________________________________________________
-
-<code><a name="isArray"><span class="rswd">function</span> isArray<span
- class="punct">(</span><var>value</var><span class="punct">)</span></a></code>
-
-Returns <span class="rswd">true</span> if <var>value</var> is <strong>probably</strong> an array, i.e. provides the <code>length</code>
-property. Returns <span class="rswd">false</span> otherwise.
-
-Note: This function checks for the <code>length</code> property only. It cannot provide
-definitive indication whether the value is really an array or not, as
-e.g., the <code class="rswd">String</code> object provides the <code>length</code> property, too.
-
-_______________________________________________________________________________
-
-<code><a name="replaceText"><span class="rswd">function</span> replaceText<span
- class="punct">(</span><var>sText</var>, <var>sReplaced</var>, <var>sReplacement</var><span
- class="punct">)</span></a></code>
-
-Replaces occurences of <var>sReplaced</var> in the string <var>sText</var> with <var>sReplacement</var>.
-Returns the new string.
-
-Because of the result it returns, <code>replaceText</code> may be nested
-into other calls of itself:
-
- <code><span class="rswd">var</span> s <span class="punct">=</span> replaceText<span
- class="punct">(</span>replaceText<span class="punct">(</span><span
- class="str">&quot;test me&quot;</span><span class="punct">,</span> <span
- class="str">&quot;test&quot;</span><span class="punct">,</span> <span
- class="str">&quot;#test#&quot;</span><span class="punct">)</span><span
- class="punct">,</span> <span class="str">&quot;#&quot;</span><span
- class="punct">,</span> <span class="str">&quot;$&quot;</span><span
- class="punct">)</span>;
- <span class="comm">// displays &quot;$test$ me&quot;</span></code>
-
-When available, <code>replaceText(...)</code> uses <code>String.replace(...)</code>
-to replace text. Therefore, if the method is available, <var>sReplaced</var> may be
-a regular expression to be replaced with <var>sReplacement</var>.
-
-_______________________________________________________________________________
-
-<code><a name="trimLeft"><span class="rswd">function</span> trimLeft<span
- class="punct">(</span><var>s</var><span class="punct">)</span></a></code>
-
-Returns a copy of <var>s</var> where all leading spaces are stripped from.
-
-_______________________________________________________________________________
-
-<code><a name="trimRight"><span class="rswd">function</span> trimRight<span
- class="punct">(</span><var>s</var><span class="punct">)</span></a></code>
-
-Returns a copy of <var>s</var> where all following spaces are stripped from.
-
-_______________________________________________________________________________
-
-<code><a name="trim"><span class="rswd">function</span> trim<span
- class="punct">(</span><var>s</var><span class="punct">)</span></a></code>
-
-Returns a copy of <var>s</var> where all leading and following spaces are stripped from.
-Uses <code>trimLeft</code> and <code>trimRight</code> defined above to calculate that resulting string.
-
-_______________________________________________________________________________
-
-<code><span class="rswd">function</span> setStatus<span
- class="punct">(</span><var>sCaption</var><span class="punct">)</span></code>
-
-Sets the text of the browser's status bar user-defined.
-Pass the string to be displayed as the only function argument.
-Removes the necessity to include a script into the HTML 4.0 event
-handlers of an HTML object, e. g.
-
- <span class="a">&lt;a href=</span><span class="attr">&quot;...&quot;</span> <span
- class="a">onmouseover=</span><span class="attr">&quot;</span><code>status='<span
- class="str">Text</span>'<span class="punct">;</span> <span
- class="rswd">return true</span><span class="punct">;</span></code><span
- class="attr">&quot;</span><span class="a">&gt;</span>dasd<span
- class="a">&lt;/a&gt;</span>
-
-can be replaced with:
-
- <span class="a">&lt;a href=</span><span class="attr">&quot;...&quot;</span> <span
- class="a">onmouseover=</span><span class="attr">'</span><code><span
- class="rswd">return</span> setStatus<span class="punct">(</span>&quot;<span
- class="str">Text</span>&quot;<span class="punct">);</span></code><span
- class="attr">'</span><span class="a">&gt;</span>dasd<span class="a">&lt;/a&gt;</span>
-
-_______________________________________________________________________________
-
-<code><span class="rswd">function</span> stripTags<span
- class="punct">(</span><var>taggedStr</var><span class="punct">)</span></code>
-
-Returns a string where all tags are stripped from the passed argument string
-(<var>taggedStr</var>). You may use it to analyze the displayed content of an HTML document
-for fulltext search (example works with Internet Explorer only):
-
- <code><span class="rswd">function</span> foundText<span
- class="punct">(</span><var>sSub</var><span class="punct">)</span> {
- <span class="rswd">return</span> <span class="punct">(</span>stripTags<span
- class="punct">(</span>document.all.tags<span class="punct">(</span>&quot;<span
- class="str">body</span>&quot;<span class="punct">)[</span><span
- class="num">0</span><span class="punct">].</span>innerHTML<span
- class="punct">).</span>indexOf<span class="punct">(</span><var>sSub</var><span
- class="punct">)</span> &gt; <span class="num">-1</span><span
- class="punct">);</span>
- }
-
- if( foundText("Text") )
- document.write( 'Found "Text" in the document.' );</code>
-
-_______________________________________________________________________________
-
-<code><span class="rswd">function</span> linkOut<span
- class="punct">(</span><var>sURL</var>[, <var>sLink</var>[, <var>bShowURL</var>[, <var>aTarget</var>[, <var>sWidth</var>[, <var>sHeight</var>[, <var>sOptions</var>]]]]<span
- class="punct">)</span></code>
-
-Insert the following link to a HTML document. A click on it will run the
-function defined below and ask the user if he/she is willing to connect
-to the Internet because of an online link:
-
-&lt;a href="sURL" onClick='return(linkOut(sURL));'&gt;&lt;/a&gt;
-
-Replace the sURL argument with the URL of the document to be loaded.
-
-Note that the TARGET attribute is required only to avoid script errors
-when the link is placed within a frameset where the &lt;BASE TARGET=...&gt; tag
-has been used previously.
-
-The function appears useful in offline pages only. You should remove the
-event handler before the respective offline site is uploaded to a public
-server.
-Use the return value of linkOut (return(false) will cancel the event) to
-support users who have JavaScript available and enabled.
-Those users will receive the dialog box, other users will only see a
-popup window with the linked website.
-
-_______________________________________________________________________________
-
-function popUp(sURL, iWidth, iHeight, sOptions)
-
-Insert the following link to a HTML document. A click on it will run this
-function to open a browser child window:
-
-&lt;a href="URL" target="_new"
- onClick='popUp("URL", aWidth, aHeight[,sOptions])'&gt;&lt;/a&gt;
-
-Note that the TARGET attribute is only necessary to avoid script errors
-when the link is placed within a frameset where the &lt;BASE TARGET=...&gt; tag
-has been used previously.
-
-The iWidth argument will specify the width in pixels, and the iHeight
-argument will specify the height in pixels of the new window using the
-features argument string of the JavaScript:window.open() function.
-
-The sOptions argument will modify the default features for the child window.
-For this argument pass a string that extends the features settings for the
-JavaScript:window.open() function. You may leave the comma at first position
-as it is implemented in the JSX:popUp() function.
-Refer the respective documentation for details of window features.
-Please do note that if an option is used more than one time, the final result
-of that option is undefined. Nevertheless, most browsers will then use the
-last option as argument.
-
-Use the return value of popUp (return(false) will cancel the event) to support
-users who have JavaScript available and enabled.
-All users will receive the window, those without JavaScript will have the
-window size defined not by your definitions but by browser defaults.
-
-_______________________________________________________________________________
-
-function OpenChildWin(sURL, iWidth, iHeight, sOptions)
-
-OpenChildWin(...) call is redirected to popUp(...) and contained for
-backward compatibility to previous versions only.
-It may become obsolete in future versions, use popUp(...) instead.
-
-_______________________________________________________________________________
-
-function LoadFrame(sURL, targetFrame)
-
-Insert the following script within the &lt;HEAD&gt;&lt;/HEAD&gt; section of HTML documents:
-
-&lt;script type="text/javascript"&gt;&lt;!--
-LoadFrame( sURL, targetFrame );
-//--&gt;&lt;/script&gt;
-
-Replace the sURL argument with the URL of the document that should be loaded
-within the frame specified with targetFrame. Double-quoted string recommended.
-Replace the targetFrame argument with a valid frame number or identifier.
-
-You can evaluate the functions success by its return value:
-
-RETURN VALUE MEANING
-false An invalid number of required arguments has been provided
-(targetFrame) The function failed because the passed frame does not exist
-(sURL) Success
-
-Please do note that unlike the Go(...) function (for dropdown objects;
-defined in dropdown.js) no exception is raised if the defined frame does not
-exist as LoadFrame() is designed to stay silent also in websites without
-framesets.
-
-_______________________________________________________________________________
-
-<code><a name="getObjInfo"><span class="rswd">function</span> getObjInfo<span
- class="punct">(</span></a><a href="#getObjInfo_sObject"><var>sObject</var></a>[, <a
- href="#getObjInfo_aWhat"><var>aWhat</var></a>[, <a
- href="#getObjInfo_sStyle"><var>sStyle</var></a>[, <a
- href="#getObjInfo_sHeader"><var>sHeader</var></a>[, <a
- href="#getObjInfo_sFooter"><var>sFooter</var></a>]]]]<span
- class="punct">)</span></code>
-
-Returns names of the attributes of an object and their respective
-value. Without formatting as HTML table (see below), attribute name
-and value/source code will be separated by &quot; = &quot;, where &quot; &quot; is the
-<code class="entity">&amp;nbsp;</code> character (%A0).
-
-Note:
-If the user agent does not grant permission to retrieve the value of an
-attribute, it is tried to use the error message that would have occurred
-as attribute value, enclosed in rectangle brackets (&quot;[&quot; and &quot;]&quot;).
-Since this behavior can only be achieved using the <a
- href="http://web.archive.org/devedge.netscape.com/library/manuals/2000/javascript/1.5/reference/stmt.html#1051663"
- target="_blank"><code><span class="rswd">try</span>...<span
- class="rswd">catch</span></code> statement</a> of
-(at least) JavaScript 1.5, the function uses the <code>document.getElementById(...)</code>
-method that accesses the W3C-DOM and is therefore distinct for JavaScript 1.5,
-to determine whether this is possible. If the test fails, you may encounter
-a script error or an &quot;unhandled exception&quot; error when retrieving those
-attributes, and with some script engines (like of Mozilla before 0.9.x) the
-whole operation would fail. This would be <strong>NOT</strong> a bug of this function, but
-a feature of the used script engine.
- </pre>
-<dl>
- <dt><var><a name="getObjInfo_sObject">sObject</a></var></dt>
- <dd><pre>Required. String that evaluates to a JavaScript object from which
-to retrieve data. If the string does not evaluate to an object, the
-function will return "[Not an object]" without header and footer
-(see below). In this case, no exception is raised.
-
-<a href="#getObjInfo">Argument list</a></pre></dd>
- <dt><var><a name="getObjInfo_aWhat">aWhat</a></var></dt>
- <dd><pre>Optional. Either a <a href="#regexp">RegExp</a> that the names of attributes to retrieve
-should match or a case-insensitive string consisting of one or more
-of the following characters, specifying the type of attributes to
-retrieve:</pre>
- <dl>
- <dt><code>&quot;P&quot;</code></dt>
- <dd><pre>Properties. Values of string properties will be retrieved
-as double-quoted strings, other properties as they are.
-If an object does not have any properties, the function
-returns a <a href="#def">null string</a>.
-This option overwrites the &quot;O&quot; option described below.</pre></dd>
- <dt><code>&quot;M&quot;</code></dt>
- <dd><pre>Methods. If possible, this also returns the source
-code of methods. If an object does not have methods,
-the function returns a <a href="#def">null string</a>.</pre></dd>
- <dt><code>&quot;O&quot;</code></dt>
- <dd><pre>Objects. Returns properties that are composed objects.
-If an object does not have object properties, the function
-returns a <a href="#def">null string</a>.</pre></dd>
- </dl>
- <pre>Other characters will be accepted, but ignored. If <var>aWhat</var> is a <a
- href="#def">null string</a>
-or contains only characters not defined herein, the function will return
-all attributes of <var><a href="#getObjInfo_sObject">sObject</a></var>.
-
-<a href="#getObjInfo">Argument list</a></pre></dd>
- <dt><var><a name="getObjInfo_sStyle">sStyle</a></var></dt>
- <dd><pre>Optional. Case-insensitive string consisting of one or more of
-the following characters, specifying how the returned string
-will be formatted:</pre>
- <dl>
- <dt><code>&quot;L&quot;</code></dt>
- <dd><pre>Line. Separate attribute/value pairs by &quot;; &quot;.
-Useful if an object has many attributes, thus the bottom
-of a message box displaying the returned string with line-
-breaks (see example below) would probably extend <code><span
- class="ident">alert</span><span class="punct">(</span>...<span
- class="punct">)</span></code>
-window and/or screen height.</pre></dd>
- <dt><code>&quot;H&quot;</code></dt>
- <dd><pre>HTML. Separate attribute/value pairs by <span
- class="tags">&lt;br /&gt;</span>.
-Useful if the result of the function should be
-used for display in HTML documents.</pre></dd>
- <dt><code>&quot;T&quot;</code></dt>
- <dd><pre>Table. Format the result as a HTML table, with
-the attribute's name in the first column and the
-attribute's value in the other one. Very useful
-in HTML documents.</pre></dd>
- <dt><code>&quot;S&quot;</code></dt>
- <dd><pre>Show type of attribute. In HTML table formatting,
-a column is inserted between the attribute name
-column and the attribute value column to display
-the desired information. Otherwise, the attribute
-value is followed by <code>&quot; : &quot;</code> followed by its type,
-where &quot; &quot; is the <code class="entity">&amp;nbsp;</code> character.</pre></dd>
- </dl>
- <pre>With <code>&quot;H&quot;</code> or <code>&quot;T&quot;</code> provided, HTML formatting is enabled, thus that
-the attribute name is enclosed in <span class="tags">&lt;code&gt;&lt;b&gt;</span>...<span
- class="tags">&lt;/b&gt;&lt;/code&gt;</span>, which
-displays it with a fixed pitch font and bold style on most browsers.
-
-Other values will separate properties/methods by LF.
-
-<a href="#getObjInfo">Argument list</a></pre></dd>
- <dt><var><a name="getObjInfo_sHeader">sHeader</a></var></dt>
- <dd><pre>Optional. String containing an additional header for the string to
-return, appended at the beginning. It is followed by 2 LF characters
-if not formatted for HTML output.
-If not provided, <code class="rswd">null</code> or a <a href="#def">null string</a>, the default header is used
-that is defined as &quot;<span class="punct">(</span>Attributes | <span
- class="punct2">(</span>(Properties | Composed Objects)
-([and] Methods)<span class="punct2">)</span><span class="punct">)</span> of {<var><a
- href="#getObjInfo_sObject">sObject</a></var>}&quot;, depending on the value of <var><a
- href="#getObjInfo_aWhat">aWhat</a></var>.
-If &quot;-&quot; is provided, no header will be generated.
-
-<a href="#getObjInfo">Argument list</a></pre></dd>
- <dt><var><a name="getObjInfo_sFooter">sFooter</a></var></dt>
- <dd><pre>Optional. String containing an additional footer for the
-string to return, appended at the end. It is preceded by
-2 LF characters if not formatted for HTML output.
-If not provided, <code class="rswd">null</code> or a <a href="#def">null string</a>, the default footer
-is used that is defined as the function's Copyright string,
-including hyperlinks to the function's documentation
-(with HTML formatting only). If &quot;-&quot; is provided, no footer
-will be generated.
-
-<a href="#getObjInfo">Argument list</a></pre></dd>
-</dl>
-<pre>
-Example:
-
-Include the following script section in the <span class="tags">&lt;head&gt;</span>...<span
- class="tags">&lt;/head&gt;</span> section of an
-HTML document:
-
- <span class="scr">&lt;script type="text/javascript"&gt;</span>
- <span class="comm">&lt;!--</span>
- <span class="rswd">alert</span><span class="punct">(</span>getObjInfo<span
- class="punct">(</span><span class="str">&quot;sObject&quot;</span><span
- class="punct">,</span> cWhat<span class="punct">,</span> sStyle<span
- class="punct">,</span> sHeader<span class="punct">,</span> sFooter<span
- class="punct">));</span>
- <span class="comm">//--&gt;</span>
- <span class="scr">&lt;/script&gt;</span>
-
-Now replace <var>sObject</var> with a string that evaluates to a JavaScript object from
-which to retrieve data. Replace <var>cWhat</var>, <var>sStyle</var>, <var>sHeader</var>, <var>sFooter</var> with
-appropriate strings as described above or leave the last argument(s) out
-(optional arguments). When you load the HTML document you will see
-a message box displaying the attributes of the object you requested and
-their respective value.
-
-_______________________________________________________________________________
-
-function ObjectInspector(sObject)
-
-Creates a JavaScript-written popup containing a form that allows retrieval
-of the attributes of an object and their value.
-
-ARGUMENT MEANING
-sObject Optional. Should define the root object from which to process
- attributes. Currently unused.
- The default root object is "window".
-
-Example:
-
-Include the following script section at the bottom of the &lt;BODY&gt;...&lt;/BODY&gt;
-section of the HTML document to be analyzed.
-
-&lt;script src="enhanced.js" type="text/javascript"&gt;&lt;/script&gt;
-&lt;script type="text/javascript"
- &gt;&lt;!--
- ObjectInspector();
- //--&gt;
-&lt;/script&gt;
-
-Note:
-
-The sInspectorVersion public variable defined in enhanced.js provides
-a string containing the current ObjectInspector() version.
- </pre>
-<hr>
-<p>END OF FILE</p>
-</body>
-</html>
Index: live/doc/historic/search.htm
===================================================================
--- live/doc/historic/search.htm (revision 509)
+++ live/doc/historic/search.htm (nonexistent)
@@ -1,436 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>PointedEars' JavaScript Extensions (JSX): search.js</title>
-<style type="text/css">
-code {
- font-family: "Courier New", Courier, monospace;
-}
-
-.entity {
- color: #000000;
- font-weight: bold;
- font-style: italic;
- font-family: "Courier New", Courier, monospace;
-}
-
-.tags {
- color: #000080;
-}
-
-.scr {
- color: #800000;
-}
-
-.a {
- color: #008000;
-}
-
-.comm {
- color: #808080;
- font-style: italic;
- font-family: "Courier New", Courier, monospace;
-}
-
-.ident {
- color: #000000;
- font-weight: bold;
- font-family: "Courier New", Courier, monospace;
-}
-
-.rswd {
- color: #000080;
- font-weight: bold;
- font-family: "Courier New", Courier, monospace;
-}
-
-.arg,.str {
- font-style: italic;
- font-family: "Courier New", Courier, monospace;
-}
-
-.num {
- color: #ff00ff;
-}
-
-.punct {
- color: #0000ff;
- font-family: "Courier New", Courier, monospace;
-}
-
-dl {
- margin-top: 0px;
-}
-
-dt {
- margin-top: 1em;
-}
-</style>
-</head>
-
-<body>
-<h1><a name="top">PointedEars' JavaScript Extensions (JSX)</a></h1>
-<h2>search.js</h2>
-<pre>
-
-ORIGINAL FILENAME: <a href="search.js">search.js</a>
-PURPOSE: <a href="#def" title="Show definition">Search-string</a> support
-SCRIPT LANGUAGE/VERSION: JavaScript 1.1
-FILE VERSION: 1.06.2003.11
-PART OF: PointedEars' JavaScript Extensions (JSX)
-DEPENDS ON: <a href="string.htm"
- title="View documentation of JSX:string.js">JSX:string.js</a>
- </pre>
-<h3>Contents</h3>
-<ul>
- <li><a href="#features">Features provided by this script</a></li>
- <li><a href="#testlist">List of browser tests</a></li>
- <li><a href="#history">Version history</a></li>
- <li><a href="#copyright">Copyright &amp; disclaimer</a></li>
- <li><a href="#def">Expressions used herein</a></li>
- <li><a href="#details">Detailed description of features</a></li>
- <li><a href="#faq">FAQ -- Frequently Asked Questions</a></li>
-</ul>
-<p align="center" style="font-size: small;">Created with<br>
-<a href="http://quanta.sourceforge.net/" target="_top"><img
- src="../media/quanta.png" alt="Quanta Plus" width="32" height="32"
- border="0"></a> <a
- href="http://www.macromedia.com/software/homesite/" target="_top"><img
- src="../media/homesite3.gif" alt=" | Macromedia HomeSite | "
- width="44" height="34" border="0"></a> <a
- href="http://www.macromedia.com/software/dreamweaver/" target="_top"><img
- src="../media/dreamweaver2.gif" alt="Macromedia Dreamweaver MX"
- width="44" height="34" border="0"></a></p>
-<p align="center" style="font-size: small;"><a
- href="http://validator.w3.org/check/referer" target="_top"><img
- src="../media/valid-html401.png" alt="This is valid HTML 4.01, "
- width="88" height="31" border="0"></a> <a
- href="http://jigsaw.w3.org/css-validator/check/referer" target="_top"><img
- src="../media/valid-css.png" alt="valid CSS "
- style="border: 0; width: 88px; height: 31px"></a> <a
- href="http://www.anybrowser.org/campaign/" target="_top"><img
- src="../media/anybrowser.gif"
- alt="and therefore optimized for ALL browsers!" width="88" height="31"
- border="0"></a></p>
-<hr>
-<h4><a name="features">Features Provided By This Script</a></h4>
-<ul>
- <li><pre><a href="#SearchString"><code>SearchString</code></a> prototype</pre></li>
- <li><pre><a href="#globvar"><code>searchStringVersion</code></a> global variable</pre></li>
-</ul>
-<pre> </pre>
-<h4><a name="testlist">Tested To Work At Least With</a></h4>
-<pre><!-- <script type="text/javascript">
- document.write(navigator.userAgent);
-</script>
- -->
- Mozilla 1.6a Nightly
- [Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.6a)
- Gecko/20031025]
- Mozilla 1.5b Nightly
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5b)
- Gecko/20030811]
- Mozilla 0.9.8 de-AT
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.8)
- Gecko/20020204]
- Microsoft Internet Explorer 6.0 build 2600
- [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Hotbar 3.0)]
-
-<a href="#top">Goto top</a>
-
-</pre>
-<h4><a name="history">Version History</a></h4>
-
-<pre>
-1.06.2003.11 (2003-11-19)
--------------------------
-* Allows for storing more than one value for a name
-* Changed from array-based search to property lookup;
- removed <code>Value</code> prototype
-* Use decodeURIComponent(...) if available, unescape
- or a dummy function
-* Updated documentation:
- - Completed <a href="JSDoc/">JavaScriptDoc</a>&trade;.
- - Use asterisks at the beginning of multi-line comments.
- - Changed order of HTML documentation sections, updated
- headings.
-
-1.05.2003.11 (2003-11-18)
--------------------------
-* Updated documentation:
- - Use <a href="JSDoc/">JavaScriptDoc</a>&trade; for newly edited code.
-* [to do]
-
-1.04.2003.10 (2003-10-??)
--------------------------
-* Renamed <code>TSearchStr</code> to <code>SearchString</code>
-* Updated references to deprecated <tt>enhanced.js</tt> in the
- documentation
-* [to do]
-
-1.03.200?.? (?)
--------------------------
-[to do]
-
-1.02.200?.? (?)
--------------------------
-[to do]
-
-1.01.200?.? (?)
--------------------------
-[to do]
-
-1.00.2000.8 (2000-08-13)
--------------------------
-Introduced <code>TSearchStr</code> prototype
-
-<a href="#top">Goto top</a>
-
-</pre>
-<h4><a name="copyright">Copyright &amp; Disclaimer</a></h4>
-
-<pre>COPYRIGHT (c) 2000-2002 Thomas Lahn (PES).
-<a href="mailto:search.js@PointedEars.de">mailto:search.js@PointedEars.de</a>
-
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License (GPL) for more details.
-
-You should have received a copy of the GNU GPL along with this
-program (COPYING file); if not, go to [1] or write to the Free
-Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-MA 02111-1307, USA.
-
-[1] &lt;<a href="http://www.gnu.org/licenses/licenses.html#GPL">http://www.gnu.org/licenses/licenses.html#GPL</a>&gt;
-
-<a href="#top">Goto top</a>
-
- </pre>
-<h4><a name="def">Expressions Used Herein</a></h4>
-<dl>
- <dt>search-string</dt>
- <dd><pre>The part of a URI following the question mark (&quot;?&quot;) character.
-This string may contain a number of pairs of required names and
-associated values. A value may be the <a href="#def">empty&nbsp;string</a>.
-A name and its associated value are to be separated from each
-other by an equals (&quot;=&quot;), each name/value pair is to be separated
-from the other by an ampersand (&quot;&amp;&quot;):
-
- name1=value1&amp;name2=&amp;name3&amp;name4=value4...</pre></dd>
- <dt>empty string</dt>
- <dd><pre>A string that contains no characters, i.e. is of length 0.</pre></dd>
-</dl>
-<pre>
-
-<a name="details">Following the detailed description of the features of this script file.</a>
-_______________________________________________________________________________
-
-<a name="SearchString"><code>SearchString</code> prototype</a>
----------------------
-
-The <code>SearchString</code> prototype encapsulates associated names and
-values of a <a href="#def" title="Show definition">search-string</a>.
-
-<code>SearchString<span class="punct">(</span>[<span class="arg">s</span>]<span
- class="punct">)</span></code>
-
-Constructor arguments:
-
-<code><span class="arg">s</span></code> Original <a href="#def"
- title="Show definition">search-string</a>. Optional. If not provided or not
- a string, `location.search' is assumed. The object will
- then have no properties if access to `location.search'
- fails.
-
-Non-Function Properties:
-
-<code>text</code> The full <a href="#def" title="Show definition">search-string</a> without the leading &quot;?&quot; and
- &quot;%26&quot; entities converted to &quot;&amp;&quot;.
-<code>length</code> Length of <code>text</code>.
-<code>values</code> Object that stores the values defined in the
- <a href="#def" title="Show definition">search-string</a>.
- Each name is a property of that object, the value of the
- property is the value assigned to the name. If more than
- one value has been assigned to a name, the property is an
- array where each element is an assigned value.
-
-Function Properties (Methods):
-
-<code><a href="#isName">isName</a></code> Returns <code class="rswd">true</code> if a name is contained in the search-string.
-<code><a href="#hasValue">hasValue</a></code> Returns <code
- class="rswd">true</code> if a name is contained in the search-string
- and has a value different from the <a href="#def"
- title="Show definition">empty string</a>.
-<code><a href="#getValue">getValue</a></code> Returns the value of a name as a string. If the name is
- not contained in the search-string, an <a href="#def"
- title="Show definition">empty string</a> is
- returned.
-
-Usage:
-
-Provide a string with a structure described above as constructor
-argument of the prototype. This will convert the string to an
-array with names and values as the properties of each item of this
-array where undefined values are assigned as <a href="#def">empty strings</a>:
-
- <code><span class="rswd">var</span> s <span class="punct">=</span> <span
- class="rswd">new</span> SearchString<span class="punct">(</span>location<span
- class="punct">.</span>search<span class="punct">)</span>;</code>
-
-Then you can use the object's methods to access its properties
-easily:
-
-<a name="isName">Use the <code>isName<span class="punct">(</span>...<span
- class="punct">)</span></code> method to determine whether a name has been
-provided with the string or not:</a>
-
- <code><span class="rswd">if</span> <span class="punct">(!</span> s<span
- class="punct">.</span>isName<span class="punct">(</span><span
- class="str">&quot;url&quot;</span><span class="punct">))</span>
- <span class="ident">alert</span><span class="punct">(</span><span
- class="str">&quot;Required name 'url' missing!&quot;</span><span
- class="punct">)</span>;</code>
-
-<a name="hasValue">Use the <code>hasValue<span class="punct">(</span>...<span
- class="punct">)</span></code> method to determine whether a name has a
-value different from the </a><a href="#def">empty string</a>:
-
- <code><span class="rswd">if</span> <span class="punct">(</span>s<span
- class="punct">.</span>hasValue<span class="punct">(</span><span
- class="str">&quot;test&quot;</span><span class="punct">))</span>
- document<span class="punct">.</span><span class="ident">write</span><span
- class="punct">(</span><span class="str">&quot;This is only a test&quot;</span><span
- class="punct">)</span>;</code>
-
-<a name="getValue">Use the <code>getValue<span class="punct">(</span>...<span
- class="punct">)</span></code> method to retrieve the value of a provided
-name:</a>
-
- <code><span class="rswd">if</span> <span class="punct">(</span>s<span
- class="punct">.</span><a href="#hasValue">hasValue</a><span
- class="punct">(</span><span class="str">&quot;url&quot;</span><span
- class="punct">))</span>
- frames<span class="punct">[</span><span class="num">0</span><span
- class="punct">].</span>location<span class="punct">.</span>href <span
- class="punct">=</span> s<span class="punct">.</span>getValue<span
- class="punct">(</span><span class="str">&quot;url&quot;</span><span
- class="punct">)</span>;</code>
-
-With these methods, names are accessed case-insensitive by
-default. If you need case-sensitivity, add <code class="rswd">true</code> as second
-argument to the method calls:
-
- <code><span class="rswd">if</span> <span class="punct">(</span>s<span
- class="punct">.</span><a href="#hasValue">hasValue</a><span
- class="punct">(</span><span class="str">&quot;URL&quot;</span>, <span
- class="rswd">true</span><span class="punct">))</span>
- frames<span class="punct">[</span><span class="num">0</span><span
- class="punct">].</span>location<span class="punct">.</span>href <span
- class="punct">=</span> s<span class="punct">.</span><a
- href="#getValue">getValue</a><span class="punct">(</span><span
- class="str">&quot;URL&quot;</span><span class="punct">,</span> <span
- class="rswd">true</span><span class="punct">)</span>;</code>
-
-<a href="#features">Goto list of features</a>
-<a href="#top">Goto top</a>
-
-
-<a name="globvar"><code>searchStringVersion</code> global variable</a>
-----------------------------------
-
-The initial value of the <code>searchStringVersion</code> variable shows the
-version of the library containing the <code><a
- href="#SearchString">SearchString</a></code> prototype you
-are using. This can be displayed, e.g. if you use the
-<code>window<span class="punct">.</span><span class="ident">alert</span><span
- class="punct">(</span>...<span class="punct">)</span></code> method with that variable as argument.
-
-<a href="#features">Goto list of features</a>
-<a href="#top">Goto top</a>
-
-
-<a name="how-to">HOW TO USE:</a>
-
-I recommend to utilize the functions of this script in different
-HTML documents when saving the entire file as search.js and
-appending the following sections within the <code><span
- class="tags">&lt;head&gt;...&lt;/head&gt;</span></code> tags
-of that documents:
-
-<code><span class="scr">&lt;script src=&quot;string.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</span>
-<span class="scr">&lt;script src=&quot;search.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</span></code>
-
-<a href="#top">Goto top</a>
-
-</pre>
-<h4><a name="faq">FAQ (Frequently Asked Questions)</a></h4>
-<ul>
- <li><pre><a href="#faq-error">Strange error messages with Internet Explorer and Netscape</a></pre></li>
-</ul>
-<pre>
-<a href="#top">Goto top</a>
-
-</pre>
-<h5><a name="faq-error">Strange error messages with Internet
-Explorer and Netscape</a></h5>
-<pre>
-Q: When I include the search.js library into my HTML/script, in
- Netscape/Mozilla I get an <cite>&quot;Alert&quot;</cite> message saying a necessary
- <cite>&quot;file&quot; [filename] &quot;cannot be found&quot;</cite>. [filename] has the form
- of [pathname] &quot;/%3Cnoscript%3E%3CFRAMESET%20rows=&quot;. But I
- have not specified such a filename in my documents/scripts!
-
- Instead, Internet Explorer shows either no alert message or
- this one:
-
- ,-----------------------------------------------------.
- | Line: [number] |
- | Column: [number] |
- | Error: Object expected |
- | Code: 0 |
- | URL: [fully qualified path of the HTML document] |
- `-----------------------------------------------------'
-
- Then, when I click the <cite>&quot;OK&quot;</cite> button of this alert message it
- shows <cite>&quot;Error 404: File not found&quot;</cite> (or anything similar) in the
- browser window, with the address bar containing a URL that has
- the form of [pathname] &quot;/&lt;noscript&gt;&lt;FRAMESET%20rows=&quot;.
-
- What have I done wrong?
-
-A: This occurs if the <a href="string.htm"
- title="View documentation of JSX:string.js">JSX:string.js</a> script has <strong>not</strong> been included
- <strong>before</strong> including the search.js library and you try to use
- <code>SearchString</code> for a dynamic frameset.
-
- <code>search.js</code> now requires <a href="string.htm"
- title="View documentation of JSX:string.js">JSX:string.js</a> because the latter contains
- the <code><a href="string.htm#replaceText"
- title="View documentation of JSX:string.js:replaceText(...)">replaceText</a><span
- class="punct">(</span>...<span class="punct">)</span></code> function that is called by the constructor
- of <code>SearchString</code> to replace HTML entities like <span
- class="entity">&amp;nbsp;</span> with the
- respective ASCII characters (here: <code>unescape<span
- class="punct">(</span><span class="str">&quot;%A0&quot;</span><span
- class="punct">)</span></code>; you'll see
- that in the Netscape/Mozilla JavaScript Console under the &quot;Task&quot;
- menu, &quot;Tools&quot; submenu.)
- Include <a href="string.htm"
- title="View documentation of JSX:string.js">JSX:string.js</a> in the correct order <a
- href="#how-to">as described above</a> and
- the problem should not occur again.
- This is a known issue and I am working on a cross-platform bugfix.
-
-<a href="#top">Goto top</a>
- </pre>
-</body>
-</html>
Index: live/doc/historic/string.htm
===================================================================
--- live/doc/historic/string.htm (revision 509)
+++ live/doc/historic/string.htm (nonexistent)
@@ -1,390 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>PointedEars' JavaScript Extensions (JSX): string.js</title>
-<link rel="stylesheet" type="text/css" href="style.css">
-</head>
-
-<body>
-<h1>PointedEars' JavaScript Extensions (JSX)</h1>
-<h2>string.js</h2>
-<pre>
-
-ORIGINAL FILENAME: <a href="string.js" type="text/javascript"
- target="_top">string.js</a>
-PURPOSE: Provides support for string operations
-SCRIPT LANGUAGE/VERSION: JavaScript 1.1+
-PART OF: PointedEars' JavaScript Extensions (JSX)
-FILE VERSION: 1.29.2003.10b5+;
- See <var>stringVersion</var> variable definition in script file.
-REQUIRED FOR: <a href="search.htm"
- title="View documentation of JSX:search.js">JSX:search.js</a>
- <a href="time.htm"
- title="View documentation of JSX:time.js">JSX:time.js</a>
- </pre>
-<h3>Contents</h3>
-<ul>
- <li><a href="#features">Features provided by this script</a></li>
- <li><a href="#testlist">List of browser tests</a></li>
- <li><a href="#history">Version history</a></li>
- <li><a href="#copyright">Copyright &amp; disclaimer</a></li>
- <li><a href="#def">Expressions used herein</a></li>
- <li><a href="#details">Detailed description of features</a></li>
-</ul>
-<p align="center" style="font-size: small;">Created with<br>
-<a href="http://quanta.sourceforge.net/" target="_top"><img
- src="../media/quanta.png" alt="Quanta Plus" width="32" height="32"
- border="0"></a> <a
- href="http://www.macromedia.com/software/homesite/" target="_top"><img
- src="../media/homesite3.gif" alt=" | Macromedia HomeSite | "
- width="44" height="34" border="0"></a><a
- href="http://www.macromedia.com/software/dreamweaver/" target="_top"><img
- src="../media/dreamweaver2.gif" alt="Macromedia Dreamweaver MX"
- width="44" height="34" border="0"></a></p>
-<p align="center" style="font-size: small;"><a
- href="http://validator.w3.org/check/referer" target="_top"><img
- src="../media/valid-html401" alt="This is valid HTML 4.01, "
- width="88" height="31" border="0"></a> <a
- href="http://jigsaw.w3.org/css-validator/check/referer" target="_top"><img
- src="../media/valid-css" alt="valid CSS "
- style="border: 0; width: 88px; height: 31px"></a> <a
- href="http://www.anybrowser.org/campaign/" target="_top"><img
- src="../media/anybrowser.gif"
- alt="and therefore optimized for ALL browsers!" width="88" height="31"
- border="0"></a></p>
-<hr>
-<h4><a name="features">Features Provided By This Script</a></h4>
-<dl>
- <dt><code><a href="#leadingCaps">leadingCaps</a></code></dt>
- <dd><pre>Replaces the first character by a capital character.</pre></dd>
- <dt><code><a href="#replaceText">replaceText</a></code></dt>
- <dd><pre>Replaces text within a string.</pre></dd>
- <dt><code><a href="#strCount">strCount</a></code></dt>
- <dd><pre>Returns the number of times that a substring is found in a string.</pre></dd>
- <dt><code><a href="#stripTags">stripTags</a></code></dt>
- <dd><pre>Returns a string where all tags are stripped from.</pre></dd>
- <dt><code><a href="#trim">trim</a></code></dt>
- <dd><pre>Returns a string where all leading and following spaces are stripped from.</pre></dd>
- <dt><code><a href="#trimLeft">trimLeft</a></code></dt>
- <dd><pre>Returns a string where all leading spaces are stripped from.</pre></dd>
- <dt><code><a href="#trimRight">trimRight</a></code></dt>
- <dd><pre>Returns a string where all following spaces are stripped from.</pre></dd>
-</dl>
-<h4><a name="testlist">Tested To Work At Least With</a></h4>
-<pre><!--script type="text/javascript">
-document.write(navigator.userAgent + "\n");
-</script-->
-Mozilla 1.5
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.5) Gecko/20031007]
-Mozilla 1.2b nightly
- [Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.2b) Gecko/2002102108]
-Mozilla 1.2b nightly
- [Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.2b) Gecko/2002100604]
-Mozilla 1.2a
- [Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.2a) Gecko/20020911]
-Netscape 7.0
- [Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.0.1) Gecko/20020823
- Netscape/7.0]
-Mozilla 1.1b
- [Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.1b) Gecko/20020722]
-Mozilla 1.0
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0) Gecko/20020605]
-Mozilla 1.0 Release Candidate 3
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:1.0rc3) Gecko/20020523]
-Mozilla 1.0 Release Candidate 2
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:1.0rc2) Gecko/20020510]
-Mozilla 1.0 Release Candidate 1 nightly
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:1.0rc1) Gecko/20020417]
-Mozilla 0.9.9
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.9) Gecko/20020311]
-Mozilla 0.9.8 de-AT
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.8) Gecko/20020204]
-Mozilla 0.9.4
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.4) Gecko/20010913]
-Netscape 6.1
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.2) Gecko/20010726
- Netscape6/6.1]
-Netscape 6.1
- [Mozilla/5.0 (X11; U; Linux 2.2.16 i586; de-DE; m18) Gecko/20010131
- Netscape6/6.01]
-Microsoft Internet Explorer 6.0.2800.1160 (SP-1)
- [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461)]
-Microsoft Internet Explorer 6.0.2600.0000
- [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Hotbar 3.0)]
-Microsoft Internet Explorer 5.50.4807.2300IC
-Microsoft Internet Explorer 5.50.4134.0600IC
-Microsoft Internet Explorer 5.01 [5.00.2919.6307IC]
-Microsoft Internet Explorer 5.00.2314.1003IC
- </pre>
-<h4><a name="history">Version History</a></h4>
-<pre>
-<a href="#first">First version</a>
-
-<a name="last" id="last">1.29.3.2007090212 (2007-09-02)</a>
--------------------------------
-* Fixed leadingZero (did prepend with &nbsp; instead of "0")
-
-1.29.2.2006090919 (2006-09-09)
--------------------------------
-* [TODO]
-
-1.29.2003.10b5+ (2003-10-22)
-----------------------------
-* Added <code>leadingCaps</code> and <code>strCount</code> functions
-* Functions become methods of the String prototype if supported
-
-1.29.2003.10b4+ (2003-10-20)
-----------------------------
-* Added JavaScriptDoc comments
-* Moved string functions from obsolete enhanced.js to string.js
- and updated documentation
-
-1.29.2002.10b3 (2002-10-09)
-----------------------------
-* Updated documentation:
- - Added link to last version
- - Added links to definitions
- - Updated definitions
- - Updated "null string" term
- - Unified Version History layout
-
-<a name="v1.29.2002.8b" id="v1.29.2002.8b">1.29.2002.8b (2002-08-25)</a>
-----------------------------
-* Updated all functions:
- - changed $ident<code><span class="punct">.</span>arguments</code> to <code>arguments</code> because it is an intrinsic property
- of the function prototype
-
-<a name="v1.29.2002.7" id="v1.29.2002.7">1.29.2002.7 (2002-07-22)</a>
----------------------------
-* Updated <code>replaceText</code> function:
- - Introduced additional <var>bForceLoop</var> argument to prefer
- for-loop instead of <a href="#regexp">RegExps</a>. Useful when replacement with RegExp<a
- href="#regexp"></a>s
- requires too much modification of arguments.
-
-<a name="v1.25.2002.5" id="v1.25.2002.5">1.25.2002.5 (2002-05-10)</a>
----------------------------
-* Fixed undetected bug in <code>EInvalidArg(...)</code>, simplified <code>EInvalidArg(...)</code>
- and <code>EInvalidArgNum(...)</code> exceptions
-* Renamed <code>stringException</code> to <code>stringException</code> and simplified code
-* Introduced <var>stringCopypright</var>, <var>stringAuthor</var> and <var>stringEMail</var>
- global variables to store script-related data for <strong>all</strong> script features,
- including <code>getObjInfo(...)</code>
-* Documentation update:
- - Have all code-related identifiers properly formatted
-
-1.24.2002.5 (2002-05-06)
----------------------------
-* Updated <code>replaceText(...)</code> function:
- - Fixed the &quot;<var>sText</var> has no properties&quot; bug with undefined attributes
- tried to retrieve with <code>getObjInfo(...)</code>
-* Documentation update:
- - Link to jump to the first version listed in history
- - Updated <code>replaceText(...)</code> description
- - Use of definition lists
- - Changed headers
-
-1.23.2002.4 (2002-04-30)
----------------------------
-* Updated <code>replaceText(...)</code> function, resolving the <code><a
- href="#regexp">RegExp</a></code> issues:
- - Replaces all occurrences of a string
- - Replaces also <code>\</code>
-
-1.22.2002.4 (2002-04-22)
----------------------------
-* Updated replaceText(...) function:
- - Support of the more effective <code>String.replace(...)</code> with <code><a
- href="#regexp">RegExp</a></code> of
- JavaScript 1.2
-* Documentation update:
- - Word wrap at 72 characters (applies to documentation standards)
- - Version History is no longer in columns but separate paragraphs
-* First version under the terms of the GNU GPL, version 2 or later.
-
-1.16.2001.1 (2001-01-11)
----------------------------
-* Moved general documentation to text file for faster processing
-
-1.14.2000.11 (2000-11-15)
----------------------------
-* Established string variable named <var>stringVersion</var> to contain
- library version
-
-1.13.2000.10 (2000-10-17)
----------------------------
-* Improved inline documentation
-
-1.12.2000.8 (2000-08-13)
----------------------------
-* Tested script file successfully with IE5.5
-
-1.11.2000.7 (2000-07-03)
----------------------------
-* Fixed some mysterious bugs with IE 5.01 on string arguments and large
- HTML documents by assigning those strings to local variables and
- splitting string assignments (+= Workaround).
-* Modified email subject line to Feedback/JSX/string
-
-1.10.2000.6 (2000-06-10)
----------------------------
-* Improved inline documentation
-
-1.09.2000.3 (2000-03-27)
----------------------------
-* Fixed spelling error in <code>EInvalidArg(...)</code> exception
-* Fixed global frame ID evaluation bug
-
-<a name="first" id="first">1.06.2000.3 (2000-03-19)</a>
----------------------------
-* Fixed <var>sResult</var> variable assignment in <code>trim(...)</code>
-
-<a href="#last">Last version</a>
- </pre>
-<h4><a name="copyright">Copyright &amp; Disclaimer</a></h4>
-<pre>
-Copyright (c) 1999-2003 Thomas Lahn &lt;<a
- href="mailto:string.js@PointedEars.de%20%28Thomas%20Lahn%28?subject=Feedback/JSX/string">string.js@PointedEars.de</a>&gt;
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the <a
- href="http://www.gnu.org/copyleft/gpl.html" target="_top">GNU General Public License</a>
-as published by the <a href="http://www.fsf.org/" target="_top">Free Software Foundation</a>; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program (<a href="COPYING" target="_top">COPYING</a> file); if not, write to the
-Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.
-
-HOW TO USE:
-I recommend to utilize the functions of this script in
-different HTML documents when saving the entire file as
-script.js and appending the following section within the
-<span class="tags">&lt;head&gt;...&lt;/head&gt;</span> tags of that documents:
-
-<span class="scr">&lt;script src="string.js" type="text/javascript"&gt;&lt;/script&gt;</span>
- </pre>
-<h4><a name="def">Expressions Used Herein</a></h4>
-<dl>
- <dt>null string</dt>
- <dd><pre>An empty string that contains no characters, i.e. is of length 0 (zero).</pre></dd>
- <dt><code>(Expression1 | Expression2 | ...)</code></dt>
- <dd><pre>Exclusive selection of expressions in Backus-Naur Form (BNF). [<a
- href="http://google.com/search?q=Backus-Naur+Form" target="_top">details</a>]</pre></dd>
- <dt><code><a name="regexp">RegExp</a></code></dt>
- <dd><pre>A regular expression encapsulated by the RegExp object. [<a
- href="http://devedge.netscape.com/library/manuals/2000/javascript/1.5/reference/regexp.html#1193136"
- target="_top">details</a>]</pre></dd>
-</dl>
-<pre>
-<a name="details">Following the detailed description of the features of this script file.</a>
-_______________________________________________________________________________
-
-<code><a name="leadingCaps"><span class="rswd">function</span> leadingCaps<span
- class="punct">(</span><var>s</var><span class="punct">)</span></a></code>
-
-Replaces the first character of <var>s</var> by a capital character.
-Returns the new string.
-
-_______________________________________________________________________________
-
-<code><a name="replaceText"><span class="rswd">function</span> replaceText<span
- class="punct">(</span><var>sText</var>, <var>sReplaced</var>, <var>sReplacement</var><span
- class="punct">)</span></a></code>
-
-Replaces occurences of <var>sReplaced</var> in the string <var>sText</var> with <var>sReplacement</var>.
-Returns the new string.
-
-Because of the result it returns, <code>replaceText</code> may be nested into other calls
-of itself:
-
- <code><span class="rswd">var</span> s <span class="punct">=</span> replaceText<span
- class="punct">(</span>replaceText<span class="punct">(</span><span
- class="str">&quot;test me&quot;</span><span class="punct">,</span> <span
- class="str">&quot;test&quot;</span><span class="punct">,</span> <span
- class="str">&quot;#test#&quot;</span><span class="punct">)</span><span
- class="punct">,</span> <span class="str">&quot;#&quot;</span><span
- class="punct">,</span> <span class="str">&quot;$&quot;</span><span
- class="punct">);</span>
- <span class="comm">// displays &quot;$test$ me&quot;</span></code>
-
-If supported, <code>replaceText(...)</code> uses <code>String.replace(...)</code> to replace text.
-Therefore, if the method is available, <var>sReplaced</var> may be a regular expression
-matching substrings to be replaced with <var>sReplacement</var>.
-
-If supported, <code>replaceText(...)</code> becomes also a method of the <code>String</code> prototype,
-thus applicable to all <code>String</code> objects and literals where the first argument
-is ignored if <code>undefined</code>, <code class="rswd">null</code>, <code
- class="rswd">false</code>, a null-string or not a <code>String</code>.
-The above example could then be written as
-
- <code><span class="rswd">var</span> s <span class="punct">=</span> replaceText<span
- class="punct">(</span><span class="str">&quot;test me&quot;</span><span
- class="punct">,</span> <span class="str">&quot;test&quot;</span><span
- class="punct">,</span> <span class="str">&quot;#test#&quot;</span><span
- class="punct">).</span>replaceText<span class="punct">(</span><span
- class="str">""</span><span class="punct">,</span> <span class="str">&quot;#&quot;</span><span
- class="punct">,</span> <span class="str">&quot;$&quot;</span><span
- class="punct">);</span>
- <span class="comm">// displays &quot;$test$ me&quot;</span></code>
-
-_______________________________________________________________________________
-
-<code><a name="stripTags"><span class="rswd">function</span> stripTags<span
- class="punct">(</span><var>s</var><span class="punct">)</span></a></code>
-
-Returns a string where all tags are stripped from the passed argument string
-(<var>taggedStr</var>). You may use it to analyze the displayed content of an HTML document
-for fulltext search:
-
- <code><span class="rswd">function</span> foundText<span
- class="punct">(</span><var>sSub</var><span class="punct">)</span>
- <span class="punct">{</span>
- <span class="rswd">return</span> <span class="punct">(</span>stripTags<span
- class="punct">(</span>document<span class="punct">.</span>body<span
- class="punct">.</span>innerHTML<span class="punct">).</span>indexOf<span
- class="punct">(</span><var>sSub</var><span class="punct">)</span> &gt; <span
- class="num">-1</span><span class="punct">);</span>
- <span class="punct">}</span>
-
- <span class="rswd">if</span> <span class="punct">(</span>foundText<span
- class="punct">(</span><span class="str">"Text"</span><span
- class="punct">))</span>
- document.<span class="ident">write</span><span class="punct">(</span><span
- class="str">'Found "Text" in the document.'</span><span class="punct">);</span></code>
-
-_______________________________________________________________________________
-
-<code><a name="trim"><span class="rswd">function</span> trim<span
- class="punct">(</span><var>s</var><span class="punct">)</span></a></code>
-
-Returns a copy of <var>s</var> where all leading and following spaces are stripped from.
-Uses <code>trimLeft</code> and <code>trimRight</code> defined above to calculate that resulting string.
-
-_______________________________________________________________________________
-
-<code><a name="trimLeft"><span class="rswd">function</span> trimLeft<span
- class="punct">(</span><var>s</var><span class="punct">)</span></a></code>
-
-Returns a copy of <var>s</var> where all leading spaces are stripped from.
-
-_______________________________________________________________________________
-
-<code><a name="trimRight"><span class="rswd">function</span> trimRight<span
- class="punct">(</span><var>s</var><span class="punct">)</span></a></code>
-
-Returns a copy of <var>s</var> where all following spaces are stripped from.
-
- </pre>
-<hr>
-<p>END OF FILE</p>
-</body>
-</html>
Index: live/doc/historic/multimedia.html
===================================================================
--- live/doc/historic/multimedia.html (revision 509)
+++ live/doc/historic/multimedia.html (nonexistent)
@@ -1,339 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>PointedEars' JavaScript Extensions (JSX): enhancd2.js</title>
-<link rel="stylesheet" type="text/css" href="style.css">
-</head>
-
-<body>
-<h1>PointedEars' JavaScript Extensions (JSX)</h1>
-<h2>enhancd2.js</h2>
-<pre>
-
-ORIGINAL FILENAME: enhancd2.js
-PURPOSE: Provides level-2 enhanced web site features
-SCRIPT LANGUAGE/VERSION: JavaScript 1.2
-FILE VERSION: 1.18.2002.2;
- See enhanced2Version variable intialization in
- script file.
-PART OF: PointedEars' JavaScript Extensions (JSX)
-DEPENDS ON: <a href="enhanced.htm"
- title="View documentation of JSX:enhanced.js">JSX:enhanced.js</a>, v1.08.2000.3 or later
-
-<h3>Contents</h3>
-<ul>
- <li><a href="#features">Features provided by this script</a></li>
- <li><a href="#testlist">List of browser tests</a></li>
- <li><a href="#history">Version history</a></li>
- <li><a href="#copyright">Copyright &amp; disclaimer</a></li>
- <li><a href="#details">Detailed description of features</a></li>
-</ul>
-
-
-<a name="features">FEATURES PROVIDED BY THIS SCRIPT:</a>
-
-linkOutWin Questions the user before following an online link and
- if confirmed, displays the result in a new window.
- Calls and returns enhanced.js:linkOut(...).
-enlargeImg Opens a dependent browser child window with an
- enlarged image. (Previously addressed by Enlarge(...)
- function, see version history info above.)
-maximize Maximizes the width and height of the browser window.
-playSound Plays a sound file (experimental)
-
-
-<a name="testlist">TESTED TO WORK AT LEAST WITH:</a>
-
- Mozilla 1.0 Release Candidate 2
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:1.0rc2)
- Gecko/20020510]
- Mozilla 1.0 Release Candidate 1 nightly
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:1.0rc1)
- Gecko/20020417]
- Mozilla 0.9.9
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.9)
- Gecko/20020311]
- Mozilla 0.9.8 de-AT
- "Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.8)
- Gecko/20020204"
- Mozilla 0.9.6 de-AT
- "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.6)
- Gecko/20011120"
- Netscape 6.2.1
- "Mozilla/5.0 (Windows; U; Windows NT 5.0; de-DE; rv:0.9.4)
- Gecko/20011128 Netscape6/6.2.1"
- Opera 6.0 [de]
- "Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.0 [de]"
- Microsoft Internet Explorer 6.00.2600.0000 (SP-2)
- "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461;
- Hotbar 3.0)"
- Microsoft Internet Explorer 5.50, displayed 5.50.4134.0600IC
- Microsoft Internet Explorer 5.01, displayed 5.00.2919.6307IC
- Microsoft Internet Explorer 5.00, displayed 5.00.2314.1003IC
- Netscape Navigator 4.74
-
-
-<a name="history">VERSION HISTORY:</a>
-
-1.20.2002.4 (2002-04-22)
--------------------------
-First version under the terms of the GNU GPL, version 2 or later.
-
-1.18.2002.2 (2002-02-28)
--------------------------
-- Updated hoverImg(...) function:
- Now supports W3C-DOM of both NN 6+/Mozilla 0.9+ and IE 6+.
-
-1.17.2002.2 (2002-02-23)
--------------------------
-- Updated enlargeImg(...) function:
- Fixed bad bug with Mozilla/Netscape. Version of Mozilla newer than
- 0.9.6. and of Netscape newer than 6.1 do assign "about:blank" to a
- temporary document which causes relative paths used for its resources
- to be invalid. Further use of relative paths is provided by an
- algorithm, used in JSX:<a href="outline.txt">outline.js</a> before and now improved, that calculates
- the correct absolute path when provided the caller document's URL.
-
-1.16.2002.2 (2002-02-05)
--------------------------
-- Updated enlargeImg(...) function:
- Changed back to wImage.document because Opera's document.open(...)
- function does not return the created object --> dImage is useless :(
-- Documentation update: Changed to HTML format
-
-1.15.2002.1 (2002-01-26)
--------------------------
-- Updated enlargeImg(...) function:
- Now uses previously defined dImage variable instead of wImage.document
-
-1.14.2002.1 (2002-01-18)
--------------------------
-- Updated enlargeImg(...) function:
- Masked / in written closing tags with \/ (backslash-slash) as
- described in <a href="http://selfhtml.teamone.de/" target="_blank">SELFHTML 8.0</a>
-- Documentation update:
- Word wrap at 72 characters (applies to documentation standards),
- and version history is no longer in columns but separate paragraphs.
-
-1.13.2001.9 (2001-09-11)
--------------------------
-Removed maximize() function:
-When used with virtual desktops larger than the physical resolution
-(screen), setting the window size to screen.width and screen.height
-causes the window to occupy the desktop but exceed the screen size,
-thus the browser window blocks the other desktop content.
-With this course of action it is intended not to support designers
-causing this undesired behavior on the computers of certain users.
-
-1.12.2001.4 (2001-04-03)
-------------------------
-Updated enlargeImg(...) function:
-Now checks if created window object exists and focuses it after creating
-its document (always focuses the popup, even if already open).
-
-1.11.2001.2 (2001-02-05)
--------------------------
-Updated enlargeImg(...) function:
-Now allows to close zoom window when clicking on enlarged image and
-displays tooltip on mouse over.
-
-1.10.2001.1 (2001-01-11)
--------------------------
-Moved general documentation to text file for faster processing.
-
-1.09.2000.11 (2000-11-24)
---------------------------
-- Improved linkOutWin(...) function:
- Now returns value of linkOut(...) (always false) for combined use
- in both HREF attribute and onClick event handler of <span class="a">&lt;a&gt;</span>...<span
- class="a">&lt;/a&gt;</span> tag.
-- Established string variable named enhanced2Version to contain
- library version.
-
-1.08.2000.10 (2000-10-30)
---------------------------
-Improved maximize() function due to Netscape missing screen.left
-
-1.07.2000.10 (2000-10-17)
---------------------------
-- Improved Enlarge(...) function:
- - Fixed BUG_Enlarge:ALWAYS_FIT-TO-IMAGE (see code).
- - Changed window name for temporary HTML document to "wndZoom".
- - Renamed to "enlargeImg". Compatibility by internal redirection.
-- Bugfixed exception calls.
-- Improved inline documentation.
-
-1.06.2000.9 (2000-09-25)
--------------------------
-Improved Enlarge(...) function:
-- iWidth and iHeight arguments are not longer mandatory
- (moved to third and fourth argument) due to use of temporary
- HTML document that displays the image and uses inline JavaScript code
- to resize the window to fit image automatically
- (standalone version; does neither utilize JSX:enhanced.js:popUp(...)
- nor elements from document.js).
-- Additionally established window caption for second argument;
- optional, uses image URL if not provided.
-
-1.05.2000.8 (2000-08-13)
--------------------------
-Tested script file successfully with IE5.5
-
-1.04.2000.7 (2000-06-10)
--------------------------
-- Changed function names beginning with lowercase character.
-- Added playSound(...) function.
-
-1.03.2000.6 (2000-06-10)
--------------------------
-- Changed OpenChildWin(...) call to popUp(...) and moved to enhanced.js
-- Improved Enlarge(...) function to display dependent browser
- child window (with Netscape and compatibles only).
-- Improved documentation texts.
-
-1.02.2000.4 (2000-04-06)
--------------------------
-Added Maximize(...) function.
-
-1.01.2000.3 (2000-03-24)
--------------------------
-Added Enlarge(...) function.
-
-1.00.2000.3 (2000-03-23)
--------------------------
-Added linkOutWin(...) function.
-
-
-<a name="copyright">Copyright (c) 1999-2002 Thomas Lahn</a> &lt;<a
- href="mailto:webmaster@PointedEars.de?subject=Feedback/JSX/enhancd2">webmaster@PointedEars.de</a>&gt;
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the <a
- href="http://www.gnu.org/copyleft/gpl.html" target="_blank">GNU General Public License</a>
-as published by the <a href="http://www.fsf.org/" target="_blank">Free Software Foundation</a>; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program (<a href="COPYING" target="_blank">COPYING</a> file); if not, write to the
-Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.
-
-
-HOW TO USE:
-Note that this script depends on elements defined in JSX:enhanced.js
-For dependent scripts, the referred script file (enhanced.js) needs to
-be loaded previously and should be loaded only one time per document.
-To avoid providing the required elements in enhanced.js via copy&paste,
-I recommend to utilize the functions of this script in (different)
-HTML documents when saving the entire file as enhancd2.js and appending
-the following sections within the &lt;head&gt;&lt;/head&gt; tags of these documents:
-
-<span class="scr">&lt;script src="enhanced.js" type="text/javascript"&gt;&lt;/script&gt;
-&lt;script src="enhancd2.js" type="text/javascript"&gt;&lt;/script&gt;</span>
-
-If dependencies cannot be resolved, you will always get a
-JavaScript error even if there are no bugs herein.
-
-
-<a name="details">Following the detailed description of the features of this script.</a>
-_______________________________________________________________________________
-
-function enlargeImg(sImageURL, sCaption, iWidth, iHeight, bCenter)
-
-The function defined below will open an independent browser child window
-(here: popup) calling the window.open(...) and document.open(...)
-functions to display the enlarged image of a thumbnail the user has
-clicked.
-Arguments: Pass the URL of the enlarged image, optionally the caption
-of the popup (if you leave it the URL is used as caption).
-Pass also width and/or height as arguments to override
-fit-window-to-image feature which results in the following behavior
-(disable automatic line-wrap and use fixed font for proper display):
-
-sImageURL sCaption iWidth iHeight
-------------------------------------------------------------------------
- - ( ) ( ) ( )
-enhanced.js:EInvalidArgNum exception is raised
-
- + ( ) ( ) ( )
-Use sImageURL as caption, fit-window-to-image horizontally & vertically
-
- + x ( ) ( )
-Use sCaption as caption, fit-window-to-image horizontally & vertically
-
- + x x (0)
-Window width is defined by iWidth, fit-window-to-image vertically
-
- + x 0 (x)
-Window height is defined by iHeight, fit-window-to-image horizontally
-
- + x x x
-Window size is defined by iWidth and iHeight
-
-Legend:
- - Required argument not passed;
- + Required argument passed;
- x Mandatory optional argument passed except zero;
- 0 Zero ("0") passed for mandatory optional argument;
- ( ) Optional argument not passed;
- (0) Optional argument not passed, or zero passed;
- (x) Optional argument not passed, or passed but not zero;
-
-The fifth argument, bCenter, is a Boolean expression that is true by
-default.
-You may pass an expression that returns false if you define the size of
-the popup by yourself. If bCenter==false, the popup will not be
-positioned in the center of the screen automatically but its left top
-corner is defined by the browser defaults (usually cascaded with other
-windows.)
-Pass iWidth=0 and/or iHeight=0, and bCenter=false if you wish the popup
-to be automatically resized horizontally and/or vertically, but not
-to be centered.
-
-NOTE:
-This feature had been previously addressed by the Enlarge(...) function
-with less arguments and therefore less possibilities to influence the
-display behavior (see below).
-Calls to Enlarge(...) are possible furthermore as they redirect
-internally to enlargeImg(...), incl. exceptions. Nevertheless, calling
-Enlarge(...) disables you to define whether the popup should be centered
-as the old function definition is not being updated.
-New scripts should call enlargeImg(...) anyway instead because
-Enlarge(...) may become obsolete in future versions.
-
-________________________________________________________________________
-
-function Enlarge(sImageURL, sCaption, iWidth, iHeight)
-
-Enlarge(...) call redirects to enlargeImg(...) for compatibility with
-previous versions.
-
-________________________________________________________________________
-
-function maximize()
-
-Maximizes the browser window.
-
-________________________________________________________________________
-
-function playSound( sSoundFile, Loop, sAttrib ) {
-
-Plays a sound file as background sound if the insertAdjacentHTML method
-is supported (currently on JScript browsers like IE5+ only, hence tests
-document.all object before).
-
-Note: If you specify the SRC or LOOP attributes in sAttrib, then
-sSoundFile and Loop will overwrite the respective values.
-________________________________________________________________________
-END OF FILE
-
- </pre>
-</body>
-</html>
\ No newline at end of file
Index: live/doc/historic/outline.txt
===================================================================
--- live/doc/historic/outline.txt (revision 509)
+++ live/doc/historic/outline.txt (nonexistent)
@@ -1,144 +0,0 @@
-ORIGINAL FILENAME: outline.js
-PURPOSE: Support for outline-styled structure using
- Dynamic HTML statements
-SCRIPT LANGUAGE/VERSION: JavaScript 1.1, JScript
-REQUIRED HTML VERSION: 4.0
-FILE VERSION: 1.15.2001.4
-
-TESTED WITH (navigator.userAgent):
-
- Mozilla/5.0 (X11; U; Linux 2.2.16 i586; de-DE; m18)
- Gecko/20010131 Netscape6/6.01
- (with this browser, outline features are not available
- [missing document.all object], but file won't produce
- serious script errors)
- Microsoft Internet Explorer 5.50.4134.0600IC
- Microsoft Internet Explorer 5.01 ("5.00.2919.6307IC")
- Microsoft Internet Explorer 5.00.2314.1003IC
-
-
-TERMS OF USE:
-
- JSX:outline.js - Support for outline-styled structure using DHTML statements
- Copyright (C) 1999-2001 Thomas Lahn
- mailto:webmaster@PointedEars.de?subject=Feedback/JSX/outline
- Check http://PointedEars.de/dev/jsx/outline/ for new versions.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program (COPYING file); if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-
-VERSION HISTORY (current on top):
-
- =============================================================================
- Version Date Changes
- =============================================================================
- 1.15.2001.4 2001-04-10 Fixed some nesting errors in parantheses and
- conditionals (THNX 2 Netscape!)
- Updated /doc (indent and more), now also includes
- a tiny CSS section (2 B cont'd)
- Updated "terms of use" section:
- Now applies to the GNU GPL(!) 2 and later
- -----------------------------------------------------------------------------
- 1.14.2001.3 2001-03-24 Updated pretty printing (parantheses/quotes),
- e-mail address and /doc
- 1.13.2001.1 2001-01-24 Updated alert message: Netscape 4 Linux does not
- line-break.
- -----------------------------------------------------------------------------
- 1.12.2001.1 2001-01-11 Moved general documentation to text file for
- faster processing.
- -----------------------------------------------------------------------------
- 1.11.2000.7 2000-07-06 Fixed targetID:invalid_object bug in clickHandler()
- -----------------------------------------------------------------------------
- 1.10.2000.7 2000-07-03 Fixed some mysterious bugs with IE5.01
- on string arguments and large HTML documents
- by assigning those strings to local variables
- and splitting string assignments (+= Workaround).
- Changed email subject line to Feedback/JSX/outline.
- -----------------------------------------------------------------------------
- 1.09.2000.4 2000-04-22 Fixed NoObject (FOR loop) bug in FullTree()
- 1.08.2000.4 2000-04-22 Improved message for ENoTarget exception
- Added "user modifications" section and improved
- "terms of use" section
- -----------------------------------------------------------------------------
- 1.06.2000.4 2000-04-08 Improved clickHandler() and FullTree(...) functions,
- now ignores img... and s... variables if they are
- null-strings
- -----------------------------------------------------------------------------
- 1.05.2000.3 ? First published version
- =============================================================================
-
-USER MODIFICATIONS:
-
- Please provide the full documentation of your modifications using the fields
- below (email address appreciated for "User ID") in order to enable contact
- and support. Note the "terms of use" section above.
-
- =============================================================================
- User ID Changed Version->New Version Number Date Changes
- =============================================================================
- [ insert your modifications here ]
- -----------------------------------------------------------------------------
- [ insert your modifications here ]
- =============================================================================
-
- Please email me for further questions and bugs.
- Your support is really appreciated.
-
-
-HOW TO USE:
-
- I recommend to utilize the functions of this script in different HTML
- documents when downloading the entire file as outline.js and appending the
- section
-
- <script language="JavaScript1.1" src="outline.js" type="text/javascript">
- </script>
-
- (without newline) within the <HEAD></HEAD> section of that HTML documents.
-
- The script uses either image files or text for node symbols as defined by
- the variables below.
-
- If you would like to use image files as outline nodes symbols (recommended),
- please define an image object with the <img class="outline" src="..."> tag.
- Assign URLs to the imgCollapsed and imgExpanded variables in a separate
- JavaScript 1.1 script (file) after you included this script (see above)
- to apply the image files used for node symbols.
- YOU ARE NOT ALLOWED TO MODIFY THE INITIAL SCRIPT VALUES DIRECTLY!
- Note: The clicked object needs to support the SRC or the ALT attribute.
- The website where you have downloaded this file also provides the following
- images for free to be used as outline node symbols:
-
- bookclos.gif Closed book (collapsed tree; online help)
- bookopen.gif Opened book (expanded tree; online help)
- plus.gif white-on-black "+" (collapsed tree; miscellanous use)
- minus.gif black-on-white "-" (expanded tree; miscellanous use)
-
- If you would like to use text instead of image files, please define a text
- area with the <span class="outline"></span> tags.
- Assign strings to the sCollapsed and sExpanded variables in a separate
- JavaScript 1.1 script (file) after you included this script (see above)
- to apply the text used for node symbols.
- YOU ARE NOT ALLOWED TO MODIFY THE INITIAL VALUES DEFINED HEREIN DIRECTLY!
-
- Note: The clicked object needs to support the innerHTML attribute.
-
- Redefine the .outlined CSS class to apply indent and other properties
- of the text for a node content.
-
-
- Live long and prosper
-
- PointedEars
\ No newline at end of file
Index: live/doc/historic/types.html
===================================================================
--- live/doc/historic/types.html (revision 509)
+++ live/doc/historic/types.html (nonexistent)
@@ -1,81 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>types.js &#8212;&nbsp;Type Function Library</title>
- </head>
-
- <body>
- <h1><tt>types.js</tt> &#8212;&nbsp;Type Function Library</h1>
-
- <p><b>Version:</b> 1.29.8.2009070702</p>
-
- <p><b>Part of:</b> PointedEars' JavaScript Extensions (JSX)</p>
- <p>(C) 2001-2009 Thomas Lahn &lt;types.js@PointedEars.de&gt;</p>
-
- <h2>Dependencies</h2>
- <ul>
- <li><tt>object.js</tt>
- <ul>
- <li>&#9492; types.js</li>
- </ul></li>
-
- </ul>
-
- <div>
- <p>This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.</p>
-
- <p>This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License (GPL) for more details.</p>
-
- <p>You should have received a copy of the GNU GPL along with this
- program (COPYING file); if not, go to [1] or write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA.</p>
-
- <p>[1] &lt;http://www.gnu.org/licenses/licenses.html#GPL&gt;</p>
- </div>
-
- <h2>Global Variables</h2>
-
- <h3><code>jsx :&nbsp;Object</code></h3>
-
- <h2>Objects</h2>
-
- <h3><code>Types :&nbsp;Function</code></h3>
-
- <h4>Properties</h4>
-
- <table>
- <tr>
- <th><code>version</code></th>
- <td><code>String</code></td>
- </tr>
- <tr>
- <th><code>copyright :&nbsp;String</code></th>
- </tr>
-
- <tr>
- <th><code>author :&nbsp;String</code></th>
- </tr>
-
- <tr>
- <th><code>email :&nbsp;String</code></th>
- </tr>
-
- <tr>
- <th><code>path :&nbsp;String</code></th>
- </tr>
-
- <tr>
- <th><code>URI :&nbsp;String</code></th>
- </tr>
- </table>
- </body>
-</html>
\ No newline at end of file
/live/doc/historic/types.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/doc/historic/object.html
===================================================================
--- live/doc/historic/object.html (revision 509)
+++ live/doc/historic/object.html (nonexistent)
@@ -1,76 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>object.js &#8212;&nbsp;Basic Object Library</title>
- </head>
-
- <body>
- <h1><tt>object.js</tt> &#8212;&nbsp;Basic Object Library</h1>
-
- <p><b>Version:</b> 0.1.5a.2009071612</p>
-
- <p><b>Part of:</b> PointedEars' JavaScript Extensions (JSX)</p>
- <p>(C) 2004-2009 Thomas Lahn &lt;object.js@PointedEars.de&gt;</p>
-
- <h2>Dependencies</h2>
- <ul>
- <li><tt>object.js</tt></li>
- </ul>
-
- <div>
- <p>This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.</p>
-
- <p>This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License (GPL) for more details.</p>
-
- <p>You should have received a copy of the GNU GPL along with this
- program (COPYING file); if not, go to [1] or write to the Free
- Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- MA 02111-1307, USA.</p>
-
- <p>[1] &lt;http://www.gnu.org/licenses/licenses.html#GPL&gt;</p>
- </div>
-
- <h2>Global Variables</h2>
-
- <h3><code>jsx :&nbsp;Object</code></h3>
-
- <h2>Objects</h2>
-
- <h3><code>jsx.object :&nbsp;Object</code></h3>
-
- <h4>Properties</h4>
-
- <table>
- <tr>
- <th><code>version :&nbsp;String</code></th>
- </tr>
- <tr>
- <th><code>copyright :&nbsp;String</code></th>
- </tr>
-
- <tr>
- <th><code>author :&nbsp;String</code></th>
- </tr>
-
- <tr>
- <th><code>email :&nbsp;String</code></th>
- </tr>
-
- <tr>
- <th><code>path :&nbsp;String</code></th>
- </tr>
- </table>
-
- <h3><code>Object :&nbsp;Function</code></h3>
-
- <h4>Properties</h4>
- </body>
-</html>
\ No newline at end of file
/live/doc/historic/object.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/doc/historic/enhancd2.htm
===================================================================
--- live/doc/historic/enhancd2.htm (revision 509)
+++ live/doc/historic/enhancd2.htm (nonexistent)
@@ -1,339 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>PointedEars' JavaScript Extensions (JSX): enhancd2.js</title>
-<link rel="stylesheet" type="text/css" href="style.css">
-</head>
-
-<body>
-<h1>PointedEars' JavaScript Extensions (JSX)</h1>
-<h2>enhancd2.js</h2>
-<pre>
-
-ORIGINAL FILENAME: enhancd2.js
-PURPOSE: Provides level-2 enhanced web site features
-SCRIPT LANGUAGE/VERSION: JavaScript 1.2
-FILE VERSION: 1.18.2002.2;
- See enhanced2Version variable intialization in
- script file.
-PART OF: PointedEars' JavaScript Extensions (JSX)
-DEPENDS ON: <a href="enhanced.htm"
- title="View documentation of JSX:enhanced.js">JSX:enhanced.js</a>, v1.08.2000.3 or later</pre>
-
-<h3>Contents</h3>
-<ul>
- <li><a href="#features">Features provided by this script</a></li>
- <li><a href="#testlist">List of browser tests</a></li>
- <li><a href="#history">Version history</a></li>
- <li><a href="#copyright">Copyright &amp; disclaimer</a></li>
- <li><a href="#details">Detailed description of features</a></li>
-</ul>
-
-<pre>
-<a name="features">FEATURES PROVIDED BY THIS SCRIPT:</a>
-
-linkOutWin Questions the user before following an online link and
- if confirmed, displays the result in a new window.
- Calls and returns enhanced.js:linkOut(...).
-enlargeImg Opens a dependent browser child window with an
- enlarged image. (Previously addressed by Enlarge(...)
- function, see version history info above.)
-maximize Maximizes the width and height of the browser window.
-playSound Plays a sound file (experimental)
-
-
-<a name="testlist">TESTED TO WORK AT LEAST WITH:</a>
-
- Mozilla 1.0 Release Candidate 2
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:1.0rc2)
- Gecko/20020510]
- Mozilla 1.0 Release Candidate 1 nightly
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:1.0rc1)
- Gecko/20020417]
- Mozilla 0.9.9
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.9)
- Gecko/20020311]
- Mozilla 0.9.8 de-AT
- "Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.8)
- Gecko/20020204"
- Mozilla 0.9.6 de-AT
- "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.6)
- Gecko/20011120"
- Netscape 6.2.1
- "Mozilla/5.0 (Windows; U; Windows NT 5.0; de-DE; rv:0.9.4)
- Gecko/20011128 Netscape6/6.2.1"
- Opera 6.0 [de]
- "Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.0 [de]"
- Microsoft Internet Explorer 6.00.2600.0000 (SP-2)
- "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461;
- Hotbar 3.0)"
- Microsoft Internet Explorer 5.50, displayed 5.50.4134.0600IC
- Microsoft Internet Explorer 5.01, displayed 5.00.2919.6307IC
- Microsoft Internet Explorer 5.00, displayed 5.00.2314.1003IC
- Netscape Navigator 4.74
-
-
-<a name="history">VERSION HISTORY:</a>
-
-1.20.2002.4 (2002-04-22)
--------------------------
-First version under the terms of the GNU GPL, version 2 or later.
-
-1.18.2002.2 (2002-02-28)
--------------------------
-- Updated hoverImg(...) function:
- Now supports W3C-DOM of both NN 6+/Mozilla 0.9+ and IE 6+.
-
-1.17.2002.2 (2002-02-23)
--------------------------
-- Updated enlargeImg(...) function:
- Fixed bad bug with Mozilla/Netscape. Version of Mozilla newer than
- 0.9.6. and of Netscape newer than 6.1 do assign "about:blank" to a
- temporary document which causes relative paths used for its resources
- to be invalid. Further use of relative paths is provided by an
- algorithm, used in JSX:<a href="outline.txt">outline.js</a> before and now improved, that calculates
- the correct absolute path when provided the caller document's URL.
-
-1.16.2002.2 (2002-02-05)
--------------------------
-- Updated enlargeImg(...) function:
- Changed back to wImage.document because Opera's document.open(...)
- function does not return the created object --> dImage is useless :(
-- Documentation update: Changed to HTML format
-
-1.15.2002.1 (2002-01-26)
--------------------------
-- Updated enlargeImg(...) function:
- Now uses previously defined dImage variable instead of wImage.document
-
-1.14.2002.1 (2002-01-18)
--------------------------
-- Updated enlargeImg(...) function:
- Masked / in written closing tags with \/ (backslash-slash) as
- described in <a href="http://selfhtml.teamone.de/" target="_blank">SELFHTML 8.0</a>
-- Documentation update:
- Word wrap at 72 characters (applies to documentation standards),
- and version history is no longer in columns but separate paragraphs.
-
-1.13.2001.9 (2001-09-11)
--------------------------
-Removed maximize() function:
-When used with virtual desktops larger than the physical resolution
-(screen), setting the window size to screen.width and screen.height
-causes the window to occupy the desktop but exceed the screen size,
-thus the browser window blocks the other desktop content.
-With this course of action it is intended not to support designers
-causing this undesired behavior on the computers of certain users.
-
-1.12.2001.4 (2001-04-03)
-------------------------
-Updated enlargeImg(...) function:
-Now checks if created window object exists and focuses it after creating
-its document (always focuses the popup, even if already open).
-
-1.11.2001.2 (2001-02-05)
--------------------------
-Updated enlargeImg(...) function:
-Now allows to close zoom window when clicking on enlarged image and
-displays tooltip on mouse over.
-
-1.10.2001.1 (2001-01-11)
--------------------------
-Moved general documentation to text file for faster processing.
-
-1.09.2000.11 (2000-11-24)
---------------------------
-- Improved linkOutWin(...) function:
- Now returns value of linkOut(...) (always false) for combined use
- in both HREF attribute and onClick event handler of <span class="a">&lt;a&gt;</span>...<span
- class="a">&lt;/a&gt;</span> tag.
-- Established string variable named enhanced2Version to contain
- library version.
-
-1.08.2000.10 (2000-10-30)
---------------------------
-Improved maximize() function due to Netscape missing screen.left
-
-1.07.2000.10 (2000-10-17)
---------------------------
-- Improved Enlarge(...) function:
- - Fixed BUG_Enlarge:ALWAYS_FIT-TO-IMAGE (see code).
- - Changed window name for temporary HTML document to "wndZoom".
- - Renamed to "enlargeImg". Compatibility by internal redirection.
-- Bugfixed exception calls.
-- Improved inline documentation.
-
-1.06.2000.9 (2000-09-25)
--------------------------
-Improved Enlarge(...) function:
-- iWidth and iHeight arguments are not longer mandatory
- (moved to third and fourth argument) due to use of temporary
- HTML document that displays the image and uses inline JavaScript code
- to resize the window to fit image automatically
- (standalone version; does neither utilize JSX:enhanced.js:popUp(...)
- nor elements from document.js).
-- Additionally established window caption for second argument;
- optional, uses image URL if not provided.
-
-1.05.2000.8 (2000-08-13)
--------------------------
-Tested script file successfully with IE5.5
-
-1.04.2000.7 (2000-06-10)
--------------------------
-- Changed function names beginning with lowercase character.
-- Added playSound(...) function.
-
-1.03.2000.6 (2000-06-10)
--------------------------
-- Changed OpenChildWin(...) call to popUp(...) and moved to enhanced.js
-- Improved Enlarge(...) function to display dependent browser
- child window (with Netscape and compatibles only).
-- Improved documentation texts.
-
-1.02.2000.4 (2000-04-06)
--------------------------
-Added Maximize(...) function.
-
-1.01.2000.3 (2000-03-24)
--------------------------
-Added Enlarge(...) function.
-
-1.00.2000.3 (2000-03-23)
--------------------------
-Added linkOutWin(...) function.
-
-
-<a name="copyright">Copyright (c) 1999-2002 Thomas Lahn</a> &lt;<a
- href="mailto:webmaster@PointedEars.de?subject=Feedback/JSX/enhancd2">webmaster@PointedEars.de</a>&gt;
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the <a
- href="http://www.gnu.org/copyleft/gpl.html" target="_blank">GNU General Public License</a>
-as published by the <a href="http://www.fsf.org/" target="_blank">Free Software Foundation</a>; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program (<a href="COPYING" target="_blank">COPYING</a> file); if not, write to the
-Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.
-
-
-HOW TO USE:
-Note that this script depends on elements defined in JSX:enhanced.js
-For dependent scripts, the referred script file (enhanced.js) needs to
-be loaded previously and should be loaded only one time per document.
-To avoid providing the required elements in enhanced.js via copy&amp;paste,
-I recommend to utilize the functions of this script in (different)
-HTML documents when saving the entire file as enhancd2.js and appending
-the following sections within the &lt;head&gt;&lt;/head&gt; tags of these documents:
-
-<span class="scr">&lt;script src="enhanced.js" type="text/javascript"&gt;&lt;/script&gt;
-&lt;script src="enhancd2.js" type="text/javascript"&gt;&lt;/script&gt;</span>
-
-If dependencies cannot be resolved, you will always get a
-JavaScript error even if there are no bugs herein.
-
-
-<a name="details">Following the detailed description of the features of this script.</a>
-_______________________________________________________________________________
-
-function enlargeImg(sImageURL, sCaption, iWidth, iHeight, bCenter)
-
-The function defined below will open an independent browser child window
-(here: popup) calling the window.open(...) and document.open(...)
-functions to display the enlarged image of a thumbnail the user has
-clicked.
-Arguments: Pass the URL of the enlarged image, optionally the caption
-of the popup (if you leave it the URL is used as caption).
-Pass also width and/or height as arguments to override
-fit-window-to-image feature which results in the following behavior
-(disable automatic line-wrap and use fixed font for proper display):
-
-sImageURL sCaption iWidth iHeight
-------------------------------------------------------------------------
- - ( ) ( ) ( )
-enhanced.js:EInvalidArgNum exception is raised
-
- + ( ) ( ) ( )
-Use sImageURL as caption, fit-window-to-image horizontally & vertically
-
- + x ( ) ( )
-Use sCaption as caption, fit-window-to-image horizontally & vertically
-
- + x x (0)
-Window width is defined by iWidth, fit-window-to-image vertically
-
- + x 0 (x)
-Window height is defined by iHeight, fit-window-to-image horizontally
-
- + x x x
-Window size is defined by iWidth and iHeight
-
-Legend:
- - Required argument not passed;
- + Required argument passed;
- x Mandatory optional argument passed except zero;
- 0 Zero ("0") passed for mandatory optional argument;
- ( ) Optional argument not passed;
- (0) Optional argument not passed, or zero passed;
- (x) Optional argument not passed, or passed but not zero;
-
-The fifth argument, bCenter, is a Boolean expression that is `true' by
-default.
-You may pass an expression that returns `false' if you define the size
-of the popup by yourself. If bCenter == false, the popup will not be
-positioned in the center of the screen automatically but its left top
-corner is defined by the browser defaults (usually cascaded with other
-windows.)
-Pass iWidth == 0 and/or iHeight == 0, and bCenter == false if you wish
-the popup to be automatically resized horizontally and/or vertically,
-but not to be centered.
-
-NOTE:
-This feature had been previously addressed by the Enlarge(...) function
-with less arguments and therefore less possibilities to influence the
-display behavior (see below).
-Calls to Enlarge(...) are still possible as they redirect internally to
-enlargeImg(...), incl. exceptions. Nevertheless, calling Enlarge(...)
-disables you to define whether the popup should be centered as the old
-function definition is not being updated. New scripts should call
-enlargeImg(...) anyway instead because Enlarge(...) may become obsolete
-in future versions.
-
-________________________________________________________________________
-
-function Enlarge(sImageURL, sCaption, iWidth, iHeight)
-
-Enlarge(...) call redirects to enlargeImg(...) for compatibility with
-previous versions.
-
-________________________________________________________________________
-
-function maximize()
-
-Maximizes the browser window.
-
-________________________________________________________________________
-
-function playSound( sSoundFile, Loop, sAttrib ) {
-
-Plays a sound file as background sound if the insertAdjacentHTML method
-is supported (currently on JScript browsers like IE5+ only, hence tests
-document.all object before).
-
-Note: If you specify the SRC or LOOP attributes in sAttrib, then
-sSoundFile and Loop will overwrite the respective values.
-________________________________________________________________________
-END OF FILE
-
- </pre>
-</body>
-</html>
Index: live/doc/historic/window.html
===================================================================
--- live/doc/historic/window.html (revision 509)
+++ live/doc/historic/window.html (nonexistent)
@@ -1,741 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta http-equiv="Content-Language" content="en">
- <meta name="GENERATOR" content="PHPEclipse 1.0">
- <title>Window Library</title>
- <link
- rel="stylesheet"
- href="style.css"
- type="text/css"
- charset="ISO-8859-1"
- hreflang="en"
- title="">
- </head>
- <body>
- <h1>Window Library</h1>
-
- <table>
- <tr>
- <th align="left">Original filename:</th>
- <td><a href="window.js">window.js</a></td>
- </tr>
- <tr>
- <th align="left">Part of:</th>
- <td>PointedEars' JavaScript Extensions (JSX)</td>
- </tr>
- </table>
-
- <h2>Contents</h2>
-
- <ul>
- <li><a href="#copyright">Copyright &amp; disclaimer</a></li>
-
- <li><a href="#variables">Global variables</a></li>
-
- <li><a href="#methods">Global methods</a></li>
-
- <li><a href="#def">Expressions used herein</a></li>
-
- <li><a href="#testlist">List of browser tests</a></li>
-
- <li><a href="#history">Version history</a></li>
- </ul>
-
- <h2><a href="#copyright" name="copyright" id="copyright"
- >Copyright &amp; Disclaimer</a></h2>
-
- <p class="author">Copyright &copy; 2001-2004 Thomas Lahn
- &lt;<a href="mailto:window.js@PointedEars.de"
- >window.js@PointedEars.de</a>&gt;</p>
-
- <p>This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.</p>
-
- <p>This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License (GPL) for more details.</p>
-
- <p>You should have received a copy of the GNU GPL along with this
- program (<a href="COPYING">COPYING</a> file); if not, go to [1]
- or write to the Free Software Foundation, Inc., 59 Temple Place
- - Suite 330, Boston, MA 02111-1307, USA.</p>
-
- <p>[1] &lt;<a href="http://www.gnu.org/licenses/licenses.html#GPL"
- >http://www.gnu.org/licenses/licenses.html#GPL</a>&gt;</p>
-
- <h2><a href="#variables" name="variables" id="variables"
- >Global Variables</a></h2>
-
- <dl>
- <dt><code>string <span class="ident">windowVersion</span></code></dt>
- <dd></dd>
-
- <dt><code>string <span class="ident">windowCopyright</span></code></dt>
- <dd></dd>
-
- <dt><code>string <span class="ident">windowAuthor</span></code></dt>
- <dd></dd>
-
- <dt><code>string <span class="ident">windowEmail</span></code></dt>
- <dd></dd>
-
- <dt><code>string <span class="ident">windowPath</span></code></dt>
- <dd></dd>
-
- <dt><code>string <span class="ident">sLinkOutMsg_de</span></code></dt>
- <dd></dd>
-
- <dt><code>string <span class="ident">sLinkOutMsg_us</span></code></dt>
- <dd></dd>
-
- <dt><code>string <span class="ident">sLinkOutMsg</span></code></dt>
- <dd></dd>
-
- <dt><code>string
- <span class="ident">sEnlargeImgTitle_en</span></code></dt>
- <dd></dd>
-
- <dt><code>string
- <span class="ident">sEnlargeImgTitle_de</span></code></dt>
- <dd></dd>
-
- <dt><code>string <span class="ident">sEnlargeImgTitle</span></code></dt>
- <dd></dd>
-
- <dt><code><span class="rswd">function</span>
- <span class="ident">Enlarge</span></code></dt>
- <dd></dd>
- </dl>
-
- <h2><a href="#methods" name="methods" id="methods">Global Methods</a></h2>
-
- <dl>
- <dt><code><span class="ident"><a href="#windowException"
- >windowException</a></span></code></dt>
- <dd></dd>
-
- <dt><code><span class="ident"><a href="#EInvalidArgNum"
- >EInvalidArgNum</a></span></code></dt>
- <dd></dd>
-
- <dt><code><span class="ident"><a href="#setStatus"
- >setStatus</a></span></code></dt>
- <dd>Set the text that is displayed in the browser's status bar.</dd>
-
- <dt><code><span class="ident"><a href="#resetStatus"
- >resetStatus</a></span></code></dt>
- <dd></dd>
-
- <dt><code><span class="ident"><a href="#linkOut"
- >linkOut</a></span></code></dt>
- <dd>Questions the user before following an online link (useful in
- offline documents with Internet support.)</dd>
-
- <dt><code><span class="ident"><a href="#popUp"
- >popUp</a></span></code></dt>
- <dd>Loads a user-defined browser child window (pop-up window).
- (Previously addressed by OpenChildWin(...) function,
- see version history info above.)</dd>
-
- <dt><code><span class="ident"><a href="#OpenChildWin"
- >OpenChildWin</a></span></code></dt>
- <dd></dd>
-
- <dt><code><span class="ident"><a href="#LoadFrame"
- >LoadFrame</a></span></code></dt>
- <dd>Loads a document within a specified frame.</dd>
-
- <dt><code><span class="ident"><a href="#enlargeImg"
- >enlargeImg</a></span></code></dt>
- <dd>Opens a dependent browser child window containing an (enlarged)
- image.</dd>
- </dl>
-
- <hr size="2">
-
- <p><code><span class="rswd">boolean</span> <span class="ident"><a
- href="#windowException" name="windowException" id="windowException"
- >windowException</a></span><span class="punct"
- >(</span><var>Msg</var><span class="punct">)</span></code></p>
-
- <p><code><span class="rswd">boolean</span> <span class="ident"><a
- href="#EInvalidArgNum" name="EInvalidArgNum" id="EInvalidArgNum"
- >EInvalidArgNum</a></span><span class="punct"
- >(</span><var>sFunctionName</var><span class="punct">,</span>
- <var>iArg</var><span class="punct">)</span></code></p>
-
- <hr size="1">
-
- <p><code><span class="rswd">boolean</span> <span class="ident"><a
- href="#setStatus" name="setStatus" id="setStatus"
- >setStatus</a></span><span class="punct"
- >(</span><var>sCaption</var><span class="punct">)</span></code></p>
-
- <p>Sets the text of the browser's status bar. Pass the string to be
- displayed as the only function argument. Removes the necessity to
- include a script into the HTML 4.0 event handlers of an HTML object,
- e.g.</p>
-
- <p><code><span class="a">&lt;a href=</span><span class="attrval"
- >&quot;...&quot;</span> <span class="a">onmouseover=</span><span
- class="attrval">&quot;</span><code>status='<span class="str"
- >Text</span>'<span class="punct">;</span> <span class="rswd"
- >return true</span></code><span class="attrval">&quot;</span><span
- class="a">&gt;</span>...<span class="a">&lt;/a&gt;</span></code></p>
-
- <p>can be replaced with:</p>
-
- <p><code><span class="a">&lt;a href=</span><span class="attrval"
- >&quot;...&quot;</span> <span class="a">onmouseover=</span><span
- class="attrval">&quot;</span><code><span class="rswd">return</span>
- <span class="ident">setStatus</span><span class="punct">(</span>'<span
- class="str">Text</span>'<span class="punct">)</span></code><span
- class="attrval">&quot;</span><span class="a">&gt;</span>...<span
- class="a">&lt;/a&gt;</span></code></p>
-
- <hr size="1">
-
- <p><code><span class="rswd">boolean</span> <span class="ident"><a
- href="#resetStatus" name="resetStatus" id="resetStatus"
- >resetStatus</a></span><span class="punct">()</span></code></p>
-
- <hr size="1">
-
- <p><code><span class="rswd">boolean</span> <span class="ident"><a
- href="#linkOut" name="linkOut" id="linkOut"
- >linkOut</a></span><span class="punct"
- >(</span>string&nbsp;<var>sURL</var><span class="punct">,</span>
- string&nbsp;<var>sLink</var><span class="punct">,</span> [<span
- class="rswd">boolean</span>&nbsp;<var>bShowURL</var><span class="punct"
- >,</span> [string|number&nbsp;<var>aTarget</var><span class="punct"
- >,</span> [number&nbsp;<var>iWidth</var><span class="punct">,</span>
- [number&nbsp;<var>iHeight</var><span class="punct">,</span>
- [string&nbsp;<var>sOptions</var>]]]]]<span class="punct"
- >)</span></code></p>
-
- <p>Insert the following link into a HTML document. A click on it will run the
- function defined below and ask the user if he/she is willing to connect
- to the Internet because of an online link:</p>
-
- <p><code><span class="a">&lt;a href=</span><span class="attrval"
- >&quot;<var>sURL</var>&quot;</span> onClick=<span class="attrval"
- >&quot;</span><span class="rswd">return</span> <span class="ident"
- >linkOut</span><span class="punct">(</span><span class="rswd"
- >this</span><span class="punct">.</span>href<span
- class="punct">)</span><span class="attrval">&quot;</span><span class="a"
- >&gt;</span>...<span class="a">&lt;/a&gt;</span></code></p>
-
- <p>Replace the <var><a href="#linkOut_sURL">sURL</a></var> argument with
- the URL of the document to be loaded.</p>
-
- <p>Use the return value of <code><span class="ident">linkOut</span><span
- class="punct">()</span></code>
- (<code class="rswd">return false</code> will cancel the
- <code>click</code> event) to support users who have JavaScript available
- and enabled. Those users will receive the dialog box, other users will
- only see a popup window with the linked website.</p>
-
- <p>The function appears useful in offline pages only. You should remove the
- event handler before the respective offline site is uploaded to a public
- server.</p>
-
- <hr size="1">
-
- <p><code><span class="rswd">boolean</span> <span class="ident"><a
- href="#popUp" name="popUp" id="popUp">popUp</a></span><span class="punct"
- >(</span><var>sURL</var><span class="punct">,</span>
- <var>iWidth</var><span class="punct">,</span>
- <var>iHeight</var><span class="punct">,</span>
- <var>sOptions</var><span class="punct">)</span></code></p>
-
- <p>Insert the following link into a HTML document. A click on it will run
- this function to open a browser child window:</p>
-
- <p><code><span class="a">&lt;a href=<span class="attrval"
- >&quot;URL&quot;</span> target=<span class="attrval"
- >&quot;_blank&quot;</span> onClick=</span><span class="attrval"
- >&quot;</span><span class="ident">popUp</span><span class="punct"
- >(</span><span class="rswd">this</span><span class="punct"
- >.</span>href<span class="punct">,</span> <var>aWidth</var><span
- class="punct">,</span> <var>aHeight</var>[<span class="punct">,</span>
- <var>sOptions</var>]<span class="punct">)</span>&quot;<span class="a"
- >&gt;</span>...<span class="a">&lt;/a&gt;</span></code></p>
-
- <p>Note that the <code class="a">target</code> attribute is only necessary
- to avoid script errors when the link is placed within a frameset where
- the <code class="tag">&lt;base&nbsp;target=<span class="attrval"
- >&quot;...&quot;</span>&gt;</code> element has been used previously.</p>
-
- <p>The <var>iWidth</var> argument will specify the width in pixels, and the
- <var>iHeight</var> argument will specify the height in pixels of the new
- window using the features argument string of the <code>JavaScript:<span
- class="ident">window</span><span class="punct">.</span><span
- class="ident">open</span><span class="punct">()</span></code> method.</p>
-
- <p>The <var>sOptions</var> argument will modify the default features for the
- child window. For this argument pass a string that extends the features
- settings for the <code>JavaScript:<span class="ident"
- >window</span><span class="punct">.</span><span class="ident"
- >open</span><span class="punct">()</span></code> method. You may leave
- the comma at first position as it is implemented in the
- <code>JSX:<span class="ident">popUp</span><span class="punct"
- >()</span></code> method.<br>
- Refer the respective documentation for details of window features.
- Please do note that if an option is used more than one time, the final
- result of that option is undefined. Nevertheless, most browsers will
- then use the last option as argument.</p>
-
- <p>Use the return value of <code><span class="ident">popUp</span><span
- class="punct">()</span></code> (<code class="rswd">return false</code>
- will cancel the <code>click</code> event) to support users who have
- JavaScript available and enabled. All users will receive the window,
- those without JavaScript will have the window size defined not by
- your definitions but by browser defaults.</p>
-
- <hr size="1">
-
- <p><code><span class="rswd">boolean</span> <span class="ident"><a
- href="#OpenChildWin" name="OpenChildWin" id="OpenChildWin"
- >OpenChildWin</a></span><span class="punct">(</span><var>sURL</var><span
- class="punct">,</span> <var>iWidth</var><span class="punct">,</span>
- <var>iHeight</var><span class="punct">,</span>
- <var>sOptions</var><span class="punct">)</span></code></p>
-
- <p>The <code><span class="ident">OpenChildWin</span><span class="punct"
- >()</span></code> call is redirected to <code><span class="ident"
- >popUp</span><span class="punct">()</span></code> and contained
- for backwards compatibility to previous versions only.
- It may become obsolete in future versions, use <code><span class="ident"
- >popUp</span><span class="punct">()</span></code> instead.</p>
-
- <hr size="1">
-
- <p><code><span class="ident"><a href="#LoadFrame" name="LoadFrame"
- id="LoadFrame">LoadFrame</a></span><span class="punct"
- >(</span><var>sURL</var><span class="punct">,</span>
- <var>targetFrame</var><span class="punct">)</span></code></p>
-
- <p>Insert the following script within the
- <code class="tagname">head</code> element of HTML documents:</p>
-
- <p><code><span class="scr">&lt;script
- type=<span class="attrval">&quot;text/javascript&quot;</span>&gt;</span><br>
- &nbsp;&nbsp;<span class="ident">LoadFrame</span><span class="punct"
- >(</span><var>sURL</var><span class="punct">,</span>
- <var>targetFrame</var><span class="punct">);</span><br>
- <span class="scr">&lt;/script&gt;</span></code></p>
-
- <p>Replace the <var>sURL</var> argument with the URL of the document that
- should be loaded within the frame specified with <var>targetFrame</var>.
- Double-quoted string recommended. Replace the <var>targetFrame</var>
- argument with a valid frame number or identifier.</p>
-
- <p>You can evaluate the function's success by its return value:</p>
-
- <table>
- <tr valign="top">
- <th align="left">Return Value&nbsp;</th>
- <th align="left">Meaning</th>
- </tr>
-
- <tr valign="top">
- <td><code class="rswd">false</code></td>
- <td>An invalid number of required arguments has been provided</td>
- </tr>
-
- <tr valign="top">
- <td><var>targetFrame</var></td>
- <td>The function failed because the passed frame does not exist</td>
- </tr>
-
- <tr valign="top">
- <td><var>sURL</var></td>
- <td>Success</td>
- </tr>
- </table>
-
- <p>Please do note that unlike the Go() function (for dropdown objects;
- defined in dropdown.js) no exception is raised if the defined frame
- does not exist as LoadFrame() is designed to stay silent also in
- websites without framesets.</p>
-
- <hr size="1">
-
- <p><code><span class="rswd">boolean</span> <span class="ident"
- ><a href="#enlargeImg" name="enlargeImg"
- id="enlargeImg">enlargeImg</a></span><span class="punct"
- >(</span>string&nbsp;<var><a href="#enlargeImg_sImageURL"
- >sImageURL</a></var>,
- [string&nbsp;<var><a href="#enlargeImg_sCaption"
- >sCaption</a></var>, [number&nbsp;<var><a href="#enlargeImg_iWidth"
- >iWidth</a></var>, [number&nbsp;<var><a href="#enlargeImg_iHeight"
- >iHeight</a></var>, [<span class="rswd">boolean</span>&nbsp;<var><a
- href="#enlargeImg_bCenter">bCenter</a></var>]]]]<span class="punct"
- >)</span></code></p>
-
- <p>Opens a dependent browser child window containing an (enlarged)
- image. A primary button mouse click on the image or the window
- closes the window.</p>
-
- <dl>
- <dt><var><a name="enlargeImg_sImageURL" id="enlargeImg_sImageURL"
- >sImageURL</a></var></dt>
- <dd>Required. URL of the (enlarged) image.</dd>
-
- <dt><var><a name="enlargeImg_sCaption" id="enlargeImg_sCaption"
- >sCaption</a></var></dt>
- <dd>Optional. Caption of the browser child window.
- If not provided,
- <var><a href="#enlargeImg_sImageURL">sImageURL</a></var>
- will be used as caption.</dd>
-
- <dt><var><a name="enlargeImg_iWidth" id="enlargeImg_iWidth"
- >iWidth</a></var></dt>
- <dd>Optional. Width of the browser child window in pixels.
- If not provided or <span class="num">0</span>, the window
- will be resized to fit image width.</dd>
-
- <dt><var><a name="enlargeImg_iHeight" id="enlargeImg_iHeight"
- >iHeight</a></var></dt>
- <dd>Optional. Height of the browser child window in pixels.
- If not provided or <span class="num">0</span>, the window
- will be resized to fit image height.</dd>
-
- <dt><var><a name="enlargeImg_bCenter" id="enlargeImg_bCenter"
- >bCenter</a></var></dt>
- <dd>Optional. If <code class="rswd">true</code>, the window will be
- centered on the screen. Note: Use with caution! Not all desktops
- return the correct position for the centered window.</dd>
- </dl>
-
- <table>
- <tr valign="top">
- <th align="left">Returns:</th>
- <td>Always <code class="rswd">false</code> which allows for<br>
- <code class="a">&lt;a href=<span class="attrval"
- >&quot;...&quot;</span> ... onclick=<span class="attrval"
- >&quot;return&nbsp;enlargeImg(...)&quot;</span>&gt;...&lt;/a&gt;</code></td>
- </tr>
- </table>
-
- <hr>
-
- <h2><a href="#def" name="def" id="def">Expressions Used Herein</a></h2>
- <dl>
- <dt>null string</dt>
- <dd>An empty string that contains no characters, i.e. is of
- length 0 (zero).</dd>
-
- <dt><code>(Expression1 | Expression2 | ...)</code></dt>
- <dd>Exclusive selection of expressions in Backus-Naur Form (BNF).
- [<a href="http://google.com/search?q=Backus-Naur+Form"
- >details</a>]</dd>
-
- <dt><code><a name="regexp">RegExp</a></code></dt>
- <dd>A regular expression encapsulated by the RegExp object.
- [<a href="http://web.archive.org/devedge.netscape.com/library/manuals/2000/javascript/1.5/reference/regexp.html#1193136"
- >details</a>]</dd>
- </dl>
-
- <h2><a href="#testlist" name="testlist" id="testlist"
- >List of Browser Tests</a></h2>
-
- <p>Tested to work at least with:</p>
-
- <ul>
- <li>Mozilla 1.2b nightly<br>
- [Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.2b)
- Gecko/2002102108]</li>
-
- <li>Mozilla 1.2b nightly<br>
- [Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.2b)
- Gecko/2002100604]</li>
-
- <li>Mozilla 1.2a<br>
- [Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.2a)
- Gecko/20020911]</li>
-
- <li>Mozilla 1.1b<br>
- [Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.1b)
- Gecko/20020722]</li>
-
- <li>Netscape 7.0<br>
- [Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.0.1)
- Gecko/20020823 Netscape/7.0]</li>
-
- <li>Mozilla 1.0<br>
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.0)
- Gecko/20020605]</li>
-
- <li>Mozilla 1.0 Release Candidate 3<br>
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:1.0rc3)
- Gecko/20020523]</li>
-
- <li>Mozilla 1.0 Release Candidate 2<br>
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:1.0rc2)
- Gecko/20020510]</li>
-
- <li>Mozilla 1.0 Release Candidate 1 nightly<br>
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:1.0rc1)
- Gecko/20020417]</li>
-
- <li>Mozilla 0.9.9<br>
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.9)
- Gecko/20020311]</li>
-
- <li>Mozilla 0.9.8<br>
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.8)
- Gecko/20020204]</li>
-
- <li>Mozilla 0.9.6<br>
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.6)
- Gecko/20011120]</li>
-
- <li>Mozilla 0.9.4<br>
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.4)
- Gecko/20010913]</li>
-
- <li>Netscape 6.1<br>
- [Mozilla/5.0 (Windows; U; Windows NT 5.0; de-AT; rv:0.9.2)
- Gecko/20010726 Netscape6/6.1]</li>
-
- <li>Netscape 6.01<br>
- [Mozilla/5.0 (X11; U; Linux 2.2.16 i586; de-DE; m18)
- Gecko/20010131 Netscape6/6.01]</li>
-
- <li>Microsoft Internet Explorer 6.0.2600.0000<br>
- [Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Hotbar 3.0)]</li>
-
- <li>Microsoft Internet Explorer 5.50.4807.2300IC</li>
-
- <li>Microsoft Internet Explorer 5.50.4134.0600IC</li>
-
- <li>Microsoft Internet Explorer 5.01 [5.00.2919.6307IC]</li>
-
- <li>Microsoft Internet Explorer 5.00.2314.1003IC</li>
- </ul>
-
- <p>Your user agent <script type="text/javascript">
- document.write('is <b>' + navigator.userAgent + '<\/b>');
- </script>.
- If it is not listed and the script works anyway,
- send e-mail to add it to the list.</p>
-
-
- <h2><a href="#history" name="history" id="history">Version History</a></h2>
-
- <p><a href="#first">First version</a></p>
-
- <h3><a name="last" id="last">1.29.20021009
- / 1.29.2002.10b3 (2002-10-09)</a></h3>
- <ul>
- <li>Updated documentation:
- <ul>
- <li>Added link to last version</li>
-
- <li>Added links to definitions</li>
-
- <li>Updated definitions</li>
-
- <li>Updated &quot;null&nbsp;string&quot; term</li>
-
- <li>Unified Version History layout</li>
- </ul></li>
- </ul>
-
- <h3><a name="v1.29.2002.8b" id="v1.29.2002.8b"
- >1.29.20020825 / 1.29.2002.8b (2002-08-25)</a></h3>
-
- <ul>
- <li>Updated all functions:
- <ul>
- <li>changed $ident<code><span class="punct">.</span>arguments</code>
- to <code>arguments</code> because it is an intrinsic property
- of the function prototype</li>
- </ul></li>
- </ul>
-
- <h3><a name="v1.25.2002.5" id="v1.25.2002.5"
- >1.25.20020510 / 1.25.2002.5 (2002-05-10)</a></h3>
- <ul>
- <li>Renamed <code>EnhancedException</code> to
- <code>enhancedException</code> and simplified code</li>
-
- <li>Introduced <var>enhancedCopypright</var>, <var>enhancedAuthor</var>
- and <var>enhancedEMail</var> global variables to store script-related
- data for <strong>all</strong> script features, including
- <code>getObjInfo(...)</code></li>
-
- <li>Documentation update:
- <ul>
- <li>Have all code-related identifiers properly formatted</li>
- </ul></li>
- </ul>
-
- <h3>1.24.20020506 / 1.24.2002.5 (2002-05-06)</h3>
- <ul>
- <li>Documentation update:
- <ul>
- <li>Link to jump to the first version listed in history</li>
-
- <li>Use of definition lists</li>
-
- <li>Changed headers</li>
- </ul></li>
- </ul>
-
- <h3>1.22.20020422 / 1.22.2002.4 (2002-04-22)</h3>
- <ul>
- <li>Documentation update:
- <ul>
- <li>Word wrap at 72 characters (applies to documentation
- standards)</li>
-
- <li>Version History is no longer in columns but separate
- paragraphs</li>
- </ul></li>
-
- <li>First version under the terms of the GNU GPL, version 2 or later.</li>
- </ul>
-
- <h3>1.19.20020223 / 1.19.2002.2 (2002-02-23)
- / <tt>enhancd2.js</tt> 1.17.2002.2</h3>
- <ul>
- <li>Updated enlargeImg(...) function:<br>
- Fixed bad bug with Mozilla/Netscape. Version of Mozilla newer than
- 0.9.6. and of Netscape newer than 6.1 do assign "about:blank" to a
- temporary document which causes relative paths used for its resources
- to be invalid. Further use of relative paths is provided by an
- algorithm, used in JSX:<a href="outline.txt">outline.js</a> before and
- now improved, that calculates the correct absolute path when provided
- the caller document's URL.</li>
- </ul>
-
- <h3>1.19.20020205 / 1.19.2002.2 (2002-02-05)
- / <tt>enhancd2.js</tt> 1.16.2002.2</h3>
- <ul>
- <li>Updated enlargeImg(...) function:<br>
- Changed back to wImage.document because Opera's document.open(...)
- function does not return the created object --> dImage is useless
- :(</li>
-
- <li>Documentation update: Changed to HTML format</li>
- </ul>
-
- <h3>1.19.20020126 / 1.19.2002.1 (2002-01-26)
- / <tt>enhancd2.js</tt> 1.15.2002.1</h3>
- <ul>
- <li>Updated enlargeImg(...) function:<br>
- Now uses previously defined dImage variable instead of
- wImage.document</li>
- </ul>
-
- <h3>1.19.20020118 / 1.19.2002.1 (2002-01-18)
- / <tt>enhancd2.js</tt> 1.14.2002.1</h3>
- <ul>
- <li>Updated enlargeImg(...) function:<br>
- Masked / in written closing tags with \/ (backslash-slash) as
- described in <a href="http://selfhtml.teamone.de/"
- >SELFHTML 8.0</a></li>
-
- <li>Documentation update:<br>
- Word wrap at 72 characters (applies to documentation standards),
- and version history is no longer in columns but separate
- paragraphs.</li>
- </ul>
-
- <h3>1.16.20010111 / 1.16.2001.1 (2001-01-11)</h3>
- <ul>
- <li>Moved general documentation to text file for faster processing</li>
- </ul>
-
- <h3>1.15.20001124 / 1.15.2000.11 (2000-11-24)</h3>
- <ul>
- <li>Improved <code>linkOut(...)</code> function:
- <ul>
- <li>Now always returns false for combined document use in both
- <span class="a">href</span> attribute and
- <span class="a">onclick</span> event handler of
- <span class="a">A</span>-elements</li>
- </ul></li>
- </ul>
-
- <h3>1.14.20001115 / 1.14.2000.11 (2000-11-15)</h3>
- <ul>
- <li>Improved <code>popUp(...)</code> and <code>OpenChildWin(...)</code>
- functions:
- <ul>
- <li>Now both functions return false for combined document use in both
- <span class="a">href</span> attribute and
- <span class="a">onclick</span> event handler of
- <span class="a">A</span>-elements</li>
- </ul></li>
-
- <li>Established string variable named <var>enhancedVersion</var> to
- contain library version</li>
- </ul>
-
- <h3>1.13.20001017 / 1.13.2000.10 (2000-10-17)</h3>
- <ul>
- <li>Improved inline documentation</li>
- </ul>
-
- <h3>1.12.20000813 / 1.12.2000.8 (2000-08-13)</h3>
- <ul>
- <li>Tested script file successfully with IE5.5</li>
- </ul>
-
- <h3>1.11.20000703 / 1.11.2000.7 (2000-07-03)</h3>
- <ul>
- <li>Fixed some mysterious bugs with IE 5.01 on string arguments and large
- HTML documents by assigning those strings to local variables and
- splitting string assignments (+= Workaround).</li>
-
- <li>Modified email subject line to Feedback/JSX/enhanced</li>
- </ul>
-
- <h3>1.10.20000610 / 1.10.2000.6 (2000-06-10)</h3>
- <ul>
- <li>Renamed <code>OpenChildWin(...)</code> function identifier to more
- familiar and easier recognized term <code>popUp(...)</code>;
- Compatibility to previous file versions is provided by internal call
- redirection, though new documents should use the new identifier.</li>
-
- <li>Improved inline documentation</li>
- </ul>
-
- <h3>1.09.20000327 / 1.09.2000.3 (2000-03-27)</h3>
- <ul>
- <li>Fixed &quot;location is not an object&quot; bug in
- <code>linkOut(...)</code></li>
-
- <li>Fixed spelling error in <code>EInvalidArg(...)</code> exception</li>
-
- <li>Fixed global frame ID evaluation bug</li>
- </ul>
-
- <h3>1.08.20000323 / 1.08.2000.3 (2000-03-23)</h3>
- <ul>
- <li>Improved <code>setStatus(...)</code> function</li>
- </ul>
-
- <h3>1.07.20000320 / 1.07.2000.3 (2000-03-20)</h3>
- <ul>
- <li>Added <code>setStatus(...)</code> function</li>
- </ul>
-
- <h3><a name="first" id="first">1.05.20000321
- / 1.05.2000.3 (2000-03-21)</a></h3>
- <ul>
- <li>Fixed and updated <code>linkOut(...)</code> function</li>
- </ul>
-
- <p><a href="#last">Last version</a></p>
- </body>
-</html>
Index: live/doc/historic/time.txt
===================================================================
--- live/doc/historic/time.txt (revision 509)
+++ live/doc/historic/time.txt (nonexistent)
@@ -1,86 +0,0 @@
-ORIGINAL FILENAME: time.js
-PURPOSE: Provides SystemTime JavaScript Class
-SCRIPT LANGUAGE/VERSION: JavaScript 1.2
-FILE VERSION: 1.06.2001.1;
- See timeVersion variable definition in script file.
-PART OF: PointedEars' JavaScript Extensions (JSX)
-DEPENDS ON: no file
-TESTED WITH:
- Microsoft Internet Explorer 5.50, displayed 5.50.4134.0600IC
-
-VERSION HISTORY
-1.08.2003.10 2003-10-09
-Changed CSystemTime to SystemTime
-
-1.06.2001.1 2001-01-11
-Moved general documentation to text file for faster processing.
-
-1.05.2000.10 2000-10-30
-Added fromData(...) method that allows to set props at once.
-
-1.04.2000.10 2000-10-30
-Improved initialization; now integers are stored only
-
-1.03.2000.10 2000-10-28
-Updated toString(...) method with bShowHours argument.
-Added dec...(...) methods and updated documentation.
-Corrected file header.
-
-1.02.2000.10 2000-10-22
-Added dayCount property
-Bugfixed BUG_INC_OVERFLOW
-
-1.01.2000.10 2000-10-22
-Added inc...(...) methods and arguments
-
-1.00.2000.10 2000-10-22
-Introduced script file moved from HTML inline scripts
-
-COPYRIGHT (c) 2000 by PointedEars Software (PES).
-mailto:webmaster@PointedEars.de
-
-TERMS OF USE:
-This code may be used and modified within the limits described below
-for non-commercial purposes only and if the copyright above is also
-mentioned.
-
-HOW TO USE:
-I recommend to utilize the functions of this script in different
-HTML documents when saving the entire file as time.js and appending the
-following section within the <HEAD></HEAD> tags of that documents:
-
-<script src="time.js" type="text/javascript"></script>
-
-The following items are provided by this script:
-
-SystemTime class
-__________________
-
-Properties: hours, minutes, seconds, sec100, dayCount
-Methods: decHours(...), decMinutes(...), decSeconds(...), decSec100(...),
- incHours(...), incMinutes(...), incSeconds(...), incSec100(...), toString()
-
-Description:
-
-The JSX:SystemTime class provides encapsulation for time data independent from the
-JavaScript:Date class (which encapsulates date and time).
-
-The properties except dayCount define the time value stored in a SystemTime instance.
-
-The dayCount property is a Boolean value that defines whether the hours interval should
-be restricted from 0 to 23 (dayCount == true) or counted upwards until the
-upper Integer border (dayCount == false) is reached. Default is (dayCount == false).
-
-Use the dec...(...) methods to decrease and the inc...(...) methods to increase (tick)
-the value stored in the SystemTime in defined intervals
-[dec...(...) useful for a countdown display and inc...(...) for a website clock counter].
-
-Use the fromData(...) method to set all properties at once via the method call.
-
-Use the fromString(...) method to set properties reading a string that contain their values.
-
-Use the toString(...) method to return a string vice-versa that you can assign to the
-innerHTML property or other String properties for the visualization of the stored data.
-
-The fromString(...) and toString(...) methods are complementary
-[ t.fromString(t.toString()) should change nothing ].
Index: live/doc/historic/back.txt
===================================================================
--- live/doc/historic/back.txt (revision 509)
+++ live/doc/historic/back.txt (nonexistent)
@@ -1,40 +0,0 @@
-ORIGINAL FILENAME: back.js
-PURPOSE: Provides German JavaScript PageBack Support
-SCRIPT LANGUAGE/VERSION: JavaScript 1.2
-FILE VERSION: 1.00.2001.1
-PART OF: PointedEars' LCARS extensions
-DEPENDS ON: Any HTML that includes lcars.css with defined span.symbol
-TESTED WITH:
- Microsoft Internet Explorer 5.50, displayed 5.50.4134.0600IC
-
-VERSION HISTORY
-1.01.2001.1 2001-01-11 Moved general documentation to text file for faster processing.
-1.00.2000.12 2000-12-05 Introduced script file moved from adapted top.js 1.01.2000.11
-
-COPYRIGHT (c) 2000 by PointedEars Software (PES).
-mailto:webmaster@PointedEars.de
-
-TERMS OF USE:
-This code may be used and modified within the limits described below
-for non-commercial purposes only and if the copyright above is also
-mentioned.
-
-HOW TO USE:
-I recommend to utilize the functions of this script in different
-HTML documents when saving the entire file as back.js and appending the
-following section within the <BODY></BODY> as follows:
-
-<p><a href="backfile.htm" class="button" onClick='this.blur(); history.back();'>
-<script language="JavaScript1.2" src="back.js" type="text/javascript"></script>
-<noscript>&nbsp;</noscript>[...]</a></p>
-
-You should write the code including the <script></script> section without any (CR)LF
-to avoid undesired spaces on display.
-
-
-Description
-------------
-
-Dependent whether W3C-conform DHTML is available (at the creation of this script this was only IE 5 and above),
-it utilizes the cascading style-sheet (CSS) named span.symbol defined in lcars.css to write the the "back" character
-(kind of "<") defined by this CSS instead of writing &nbsp;.
Index: live/doc/historic/top.txt
===================================================================
--- live/doc/historic/top.txt (revision 509)
+++ live/doc/historic/top.txt (nonexistent)
@@ -1,46 +0,0 @@
-ORIGINAL FILENAME: top.js
-PURPOSE: Provides JavaScript TopOfPage Support
-SCRIPT LANGUAGE/VERSION: JavaScript 1.2
-FILE VERSION: 1.02.2001.1
-PART OF: PointedEars' LCARS extensions
-DEPENDS ON: Any HTML that includes lcars.css with defined span.symbol
-REQUIRES: no file(s)
-TESTED WITH:
- Netscape Navigator 6.1
- Microsoft Internet Explorer 5.50, displayed 5.50.4522.1800IC
- Microsoft Internet Explorer 5.50, displayed 5.50.4134.0600IC
-
-VERSION HISTORY
-1.02.2001.1 2001-01-11 Moved general documentation to text file for faster processing.
-1.01.2000.11 2001-01-08 Updated documentation
-1.01.2000.11 2000-11-15 Updated script with advanced Netscape-compatible version;
- requires application of HTML code if formerly used with
- previous version
-1.00.2000.11 2000-11-10 Introduced script file moved from HTML inline scripts
-
-COPYRIGHT (c) 2000 by PointedEars Software (PES).
-mailto:webmaster@PointedEars.de
-
-TERMS OF USE:
-This code may be used and modified within the limits described below
-for non-commercial purposes only and if the copyright above is also
-mentioned.
-
-HOW TO USE:
-I recommend to utilize the functions of this script in different
-HTML documents when saving the entire file as top.js and appending the
-following section within the <BODY></BODY> as follows:
-
-<p><a href="#top" class="button" onClick='this.blur();'><script language="JavaScript1.2" src="top.js" type="text/javascript"></script><noscript>&nbsp;</noscript>[...]</a></p>
-
-You should write the code including the <script></script> section without any (CR)LF
-to avoid undesired spaces on display.
-
-
-Description
-____________
-
-Dependent whether W3C-conform DHTML is available (at the creation of
-this script this was only IE 5 and above, and NS 6 and above), it utilizes the cascading style-sheet
-(CSS) named span.symbol defined in lcars.css to write the "top" character
-defined by this CSS instead of writing &nbsp;.
Index: live/doc/historic/close.txt
===================================================================
--- live/doc/historic/close.txt (revision 509)
+++ live/doc/historic/close.txt (nonexistent)
@@ -1,40 +0,0 @@
-ORIGINAL FILENAME: close.js
-PURPOSE: Provides JavaScript ClosePage Support
-SCRIPT LANGUAGE/VERSION: JavaScript 1.2
-FILE VERSION: 1.00.2001.8
-PART OF: PointedEars' LCARS extensions
-DEPENDS ON: Any HTML that includes lcars.css with defined span.symbol
-REQUIRES: no file(s)
-TESTED WITH:
- Netscape Navigator 6.1
- Microsoft Internet Explorer 5.50, displayed 5.50.4522.1800IC
-
-VERSION HISTORY
-1.00.2001.8 2001-08-26 Introduced script file by slight adaption of top.js
-
-COPYRIGHT (c) 2001 by PointedEars Software (PES).
-mailto:webmaster@PointedEars.de
-
-TERMS OF USE:
-This code may be used and modified within the limits described below
-for non-commercial purposes only and if the copyright above is also
-mentioned.
-
-HOW TO USE:
-I recommend to utilize the functions of this script in different
-HTML documents when saving the entire file as top.js and appending the
-following section within the <BODY></BODY> as follows:
-
-<p><a href="#" class="button" onClick='window.close(); return false();'><script language="JavaScript1.2" src="close.js" type="text/javascript"></script><noscript>&nbsp;</noscript>[...]</a></p>
-
-You should write the code including the <script></script> section without any (CR)LF
-to avoid undesired spaces on display.
-
-
-Description
-____________
-
-Dependent whether W3C-conform DHTML is available (at the creation of
-this script this was only IE 5 and above, and NS 6 and above), it utilizes the cascading style-sheet
-(CSS) named span.symbol defined in lcars.css to write the "top" character
-defined by this CSS instead of writing &nbsp;.
Index: live/doc/historic/csearch.txt
===================================================================
--- live/doc/historic/csearch.txt (revision 509)
+++ live/doc/historic/csearch.txt (nonexistent)
@@ -1,136 +0,0 @@
-ORIGINAL FILENAME: csearch.js
-PURPOSE: CSearchStr Data Access Class Library
-SCRIPT LANGUAGE/VERSION: JavaScript 1.0
-FILE VERSION: 1.00.2001.10
-PART OF: PointedEars' JavaScript Extensions (JSX)
-DEPENDS ON: enhanced.js
-TESTED WITH:
- Microsoft Internet Explorer 6.0.2600.0000
-
-VERSION HISTORY
-1.00.2000.8 2000-08-13 Introduced CSearchString class
-
-COPYRIGHT (c) 2000 by PointedEars Software (PES).
-mailto:webmaster@PointedEars.de
-
-TERMS OF USE:
-This code may be used and modified within the limits described below
-for non-commercial purposes only and if the copyright above is also
-mentioned.
-
-HOW TO USE:
-I recommend to utilize the functions of this script in different
-HTML documents when saving the entire file as script.js and appending the
-following section within the <HEAD></HEAD> tags of that documents:
-
-<script language="JavaScript1.1" src="cookies.js" type="text/javascript">
-</script>
-
-The following items are provided by this script:
-
-CSearchStr class
------------------
-
-Built-in properties:
-
- text The full search string without the leading "?" and
- "%26" entities converted to "&".
- If no search string is provided
- length Length of the text property's value
- values Array of the values defined in the search string.
- Each value is a pair of name and value defined as a Value object
- (see above).
-
-Constructor arguments:
-
- s Original search string. Required.
- (If not provided, the object will have no properties and methods.)
-
-
-Description:
-
-The CSearchStr class provides encapsulation for a search string's properties,
-which is the part of a URL following the question mark ("?") character.
-This string may contain a number of pairs of required names and optional values,
-separated by an equal character ("="), and each name/value pair separated from
-the other by an ampersand character ("&"):
-
-name1=value1&name2=&name3&name4=value4...
-
-Usage:
-
-Provide a string with a structure described above as constructor argument of the
-CSearchStr class. This will convert the string to an array with names and values
-as the properties of each item of this array where undefined values are assigned
-as null-strings:
-
- s = new CSearchStr(window.location.search);
-
-Then you can use the object's methods to access to its properties easily:
-
-Use the isName(...) method to determine whether a name has been provided
-with the string or not:
-
- if (! s.isName("url"))
- alert("Required name 'url' missing!");
-
-Use the hasValue(...) method to determine whether a name has a value different
-from the null-string (""):
-
- if (s.hasValue("test"))
- document.write("This is only a test");
-
-Use the getValue(...) method to retrieve the value of a provided name:
-
- if (s.hasValue("url"))
- frames[0].location.href = s.getValue("url");
-
-Via these methods, names are accessed case-insensitive by default.
-If you need case-sensitivity, add "true" as second argument to the
-method calls:
-
- if (s.hasValue("URL", true))
- frames[0].location.href = s.getValue("URL", true);
-
-
- The initial value of the CSearchStrVersion variable shows the version of the
-library containing the CSearchString class you are using. This can be displayed,
-e.g. if you use the window.alert(...) method with that variable as argument.
-
-
-FAQ (Frequently Asked Questions)
----------------------------------
-
-Q: When I include the CSearchStr class library into my HTML/script, in Netscape/Mozilla
- I get an "Alert" message saying a necessary "file "[filename]" cannot be found".
- [filename] has the form of [pathname]"/%3Cnoscript%3E%3CFRAMESET%20rows=".
- But I have not specified such a filename in my documents/scripts.
-
- Instead, Internet Explorer shows either no alert message or one containing the
- following text:
-
- "Line: "[number]
- "Column: "[number]
- "Error: Object expected"
- "Code: 0"
- "URL: "[fully qualified path of the HTML document]
-
- Then when I click the "OK" button of this alert message it shows
- "Error 404: File not found" (or anything similar) in the browser window,
- with the Address Bar containing a URL that has the form of
- [pathname]"/<noscript><FRAMESET%20rows=".
-
-
- What have I done wrong?
-
-A: This occurs if the JSX:enhanced.js script has not been included before
- including the library and you try to use CSearchStr for a dynamic frameset.
- CSearchStr now depends on JSX:enhanced.js because the latter contains the
- replaceText(...) function that is called by the constructor of CSearchStr
- to replace HTML entities like &nbsp; with the respective ASCII characters
- (here: unescape("%A0")).
- (you'll see that in the Netscape/Mozilla JavaScript Console under the "Task" menu,
- "Tools" submenu.)
- Include JSX:enhanced.js in the correct order as described above and the problem
- should not occur again.
- This is a known issue and I am working on a cross-platform bugfix.
Index: live/doc/historic/dots.txt
===================================================================
--- live/doc/historic/dots.txt (revision 509)
+++ live/doc/historic/dots.txt (nonexistent)
@@ -1,42 +0,0 @@
-ORIGINAL FILENAME: dots.js
-PURPOSE: Provides Part 1 of the JavaScript 3dots LCARS Support
-SCRIPT LANGUAGE/VERSION: JavaScript 1.2
-FILE VERSION: 1.01.2001.1
-PART OF: PointedEars' LCARS extensions
-DEPENDS ON: Any JavaScript 1.2 or HTML that defines the <span> object named "dots"
-REQUIRES: undots.js
-TESTED WITH:
- Microsoft Internet Explorer 5.50, displayed 5.50.4134.0600IC
-
-VERSION HISTORY
-1.01.2001.1 2001-01-11 Moved general documentation to text file for faster processing.
-1.00.2000.10 2000-10-21 Introduced script file moved from HTML inline scripts
-
-COPYRIGHT (c) 2000 by PointedEars Software (PES).
-mailto:webmaster@PointedEars.de
-
-TERMS OF USE:
-This code may be used and modified within the limits described below
-for non-commercial purposes only and if the copyright above is also
-mentioned.
-
-HOW TO USE:
-I recommend to utilize the functions of this script in different
-HTML documents when saving the entire file as script.js and appending the
-following section within the <BODY><DIV id="div_content"></DIV></BODY> tags
-of that documents where DIV defines the text to be hidden until loading is completed:
-
-<script language="JavaScript1.2" src="dots.js" type="text/javascript"></script>
-
-dots.js requires undots.js (removes the status display and returns to normal display)
-to be called at the end of the HTML document for the function make sense.
-
-
-Description
-------------
-
-This script initializes a window interval in which the <span> object named "dots" is
-modified. For the first second the script is running, one dot is displayed in "dots".
-The next second a dot and a space is added to that display. When the amount of dots
-reaches 3, the next second it will continue displaying with no dots and so on until
-undots.js is included.
Index: live/doc/historic/cookie.txt
===================================================================
--- live/doc/historic/cookie.txt (revision 509)
+++ live/doc/historic/cookie.txt (nonexistent)
@@ -1,53 +0,0 @@
-ORIGINAL FILENAME: ccookies.js
-PURPOSE: CCookie Data Access Class Library
-SCRIPT LANGUAGE/VERSION: JavaScript 1.0
-FILE VERSION: 1.02.2001.1
-PART OF: PointedEars' JavaScript Extensions (JSX)
-DEPENDS ON: no file
-TESTED WITH:
- Microsoft Internet Explorer 5.50, displayed 5.50.4134.0600IC
-
-VERSION HISTORY
-1.02.2001.1 2001-01-11 Moved general documentation to text file for faster processing.
-1.01.2000.8 2000-08-24 Improved code for initialization and property view
-1.00.2000.8 2000-08-13 Introduced CCookie class
-
-COPYRIGHT (c) 2000 by PointedEars Software (PES).
-mailto:webmaster@PointedEars.de
-
-TERMS OF USE:
-This code may be used and modified within the limits described below
-for non-commercial purposes only and if the copyright above is also
-mentioned.
-
-HOW TO USE:
-I recommend to utilize the functions of this script in different
-HTML documents when saving the entire file as script.js and appending the
-following section within the <HEAD></HEAD> tags of that documents:
-
-<script language="JavaScript1.1" src="cookies.js" type="text/javascript">
-</script>
-
-The following items are provided by this script:
-
-CCookie class
---------------
-
-Properties: name, value, expires, domain, path, secure
-Methods: LoadData(sData), toString(), aboutMe(showMsg)
-
-Description:
-
-The CCookie class provides encapsulation for a cookie's properties.
-Pass a cookie data string as retrieved from document.cookie (sData) to
-the LoadData method to convert the cookie's data into object properties.
-Use the toString() method to convert the data vice-versa and return a string
-that you can assign to document.cookie.
-The aboutMe(...) method either retrieves a string where all properties
-are divided by a CR character (showMsg == false), and property name and
-value are divided by an equal sign (=), or displays that string in a
-common message box (showMsg == true).
-aboutMe(true) also displays the version of the library containing the
-CCookie class you are using. You can also retrieve the library version
-without a message box when reading the CCookieVersion variable
-as defined in the script file.
Index: live/doc/jsx/animation/Animation.html
===================================================================
--- live/doc/jsx/animation/Animation.html (revision 509)
+++ live/doc/jsx/animation/Animation.html (nonexistent)
@@ -1,90 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>jsx.animation.Animation &#8212; JSX API Documentation</title>
- <link rel="stylesheet" href="../../../style.css" type="text/css">
- <link rel="stylesheet" href="../../style.css" type="text/css">
- </head>
-
- <body>
- <h1><code>jsx.animation.Animation</code></h1>
- <ul>
- <li><code>Object</code>
- <ul>
- <li><code>jsx.animation.Animation</code></li>
- </ul></li>
- </ul>
-
- <p>An <code class="ident">Animation</code> is a set of one or more
- <a href="Timeline"><code>Timelines</code></a> being played in parallel
- when the animation is played. Each <code>Timeline</code> is supposed
- to animate another target object (but that is not required).</p>
-
- <h2>Prototype Properties</h2>
- <dl>
- <dt><code><var>target</var> <span class="punct">:</span>&nbsp;<span
- class="ident">Object</span> <span class="punct">=</span>
- <span class="rswd">null</span></code></dt>
- <dd></dd>
-
- <dt><code><var>timelines</var> <span class="punct">:</span>&nbsp;<span
- class="ident">Array</span> <span class="punct">= []</span></code></dt>
- <dd></dd>
- </dl>
-
- <h2>Constructor</h2>
- <p><code><span class="ident">jsx<span class="punct">.</span>animation<span
- class="punct">.</span>Animation</span><span
- class="punct">(</span><var>oParams</var>
- <span class="punct">:</span>&nbsp;<span class="ident">Object</span><span
- class="punct">)</span></code></p>
- <h3>Arguments</h3>
- <dl>
- <dt><code><var>oParams</var> <span class="punct">:</span>&nbsp;<span class="ident">Object</span></code></dt>
- <dd>The parameters of this animation. Supported parameters, to
- be defined as properties of <code><var>oParams</var></code>,
- include:
- <dl>
- <dt><code><var>target</var>
- <span class="punct">:</span>&nbsp;<span
- class="ident">Object</span></code></dt>
- <dd>Reference specifiying the object to animate.
- If specified, the timelines of this animation
- automatically inherit its target; if not
- specified for the animation, each timeline of an
- animation MUST specify its target.</dd>
- <dt><code><var>timelines</var>
- :&nbsp;<span class="ident">Array</span></code></dt>
- <dd><a href="Timeline"><code>Timelines</code></a>
- of this animation (required)</dd>
- </dl></dd>
- </dl>
- <h3>Throws</h3>
- <dl>
- <dt><code class="ident">jsx<span class="punct">.</span>InvalidArgumentError</code></dt>
- <dd>if no parameters were specified</dd>
- </dl>
-
- <h2>Methods</h2>
- <dl>
- <dt><h3><code><span class="ident">play</span><span class="punct">()</span></code></h3></dt>
- <dd><p>Plays the animation by playing all of its <a href="Timeline"><code>Timelines</code></a>.</p>
- <h4>Throws</h4>
- <dl>
- <dt><code class="ident">jsx<span class="punct">.</span>animation<span
- class="punct">.</span>NoTimelineError</code></dt>
- <dd>if no <code>Timelines</code> have been defined</dd>
- </dl></dd>
- <dt><h3><code><span class="ident">stop</span><span class="punct">()</span></code></h3></dt>
- <dd><p>Stops the animation by stopping all of its <a href="Timeline"><code>Timelines</code></a>.</p>
- <h4>Throws</h4>
- <dl>
- <dt><code class="ident">jsx<span class="punct">.</span>animation<span
- class="punct">.</span>NoTimelineError</code></dt>
- <dd>if no <code>Timelines</code> have been defined</dd>
- </dl></dd>
- </dl>
- </body>
-</html>
\ No newline at end of file
/live/doc/jsx/animation/Animation.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/doc/jsx/animation/Timeline.html
===================================================================
--- live/doc/jsx/animation/Timeline.html (revision 509)
+++ live/doc/jsx/animation/Timeline.html (nonexistent)
@@ -1,195 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>jsx.animation.Timeline &#8212; JSX API Documentation</title>
- <link rel="stylesheet" href="../../../style.css" type="text/css">
- <link rel="stylesheet" href="../../style.css" type="text/css">
- </head>
-
- <body>
- <h1><code>jsx.animation.Timeline</code></h1>
- <ul>
- <li><code>Object</code>
- <ul>
- <li><code>jsx.animation.Timeline</code></li>
- </ul></li>
- </ul>
-
- <p>A <code class="ident">Timeline</code> consists of
- <a href="KeyFrame"><code>KeyFrames</code></a> and can have subordered
- timelines ("child timelines"). Unless specified otherwise, the time
- offset of an item in one timeline depends on the previous item in
- that timeline.</p>
-
- <pre>
-Timeline: ---Action0------Action1------Action2-----Action3->
-</pre>
- <p>A <code>Timeline</code> may be standalone or part an
- <a href="Animation"><code>Animation</code></a>, specified by the
- <code>Animation</code>'s <code>timelines</code> property,
- which allows it to be played parallel to other timelines:</p>
- <pre>
-Animation ---.
-Timeline 1: :--Action0------Action1------Action2-----Action3->
-Timeline 2: `----------Action0------Action1-------Action2---->
-</pre>
-<!-- <p>An item in a timeline can also be a <code>Timeline</code> itself
- ("child timeline"), in which case the time offset of the child
- timeline depends on the previous action in the parent timeline,
- however the time offset of the next action in the parent is
- independent of the child. In that case, the child timeline
- affects the same target object as its parent unless specified
- otherwise.</p>
- <pre>
-Animation -\-\-.
-Timeline 1: :-\-\-Action0-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-Action1a-\-\-\-\-\-\-\-\-\-\-\-\->
-Timeline 1a: | `-\-\-Action1a:0-\-\-Action1a:1-\-\-\-\->
-Timeline 2: `-\-\-\-\-\-\-Action0-\-\-\-\-\-Action1-\-\-\-\-\-\-Action2-\-\-\-\-\-\->
-</pre>
-
- <p>There is no explicit limit as to how deep timelines may be nested.
- However, for playing the frames of the animation each timeline's
- play() method must call the play() method of its child timelines.
- As a result, nesting depth is limited implicitly by the available
- stack space or limits imposed by the ECMAScript implementation,
- whichever comes first. Further, the more timelines are nested,
- the more operations need be performed at approximately the same time;
- this can slow down the entire animation considerably and lead to
- considerably higher CPU load.</p>
- -->
- <h2>Static Properties</h2>
- <dl>
- <dt><code><var>INDEFINITE</var>
- <span class="punct">:</span>&nbsp;number <span class="punct">=</span>
- Number.POSITIVE_INFINITY</code></dt>
- <dd></dd>
-
- <dt><code><var>MIN_FRAME_LENGTH</var>
- <span class="punct">:</span>&nbsp;number <span class="punct">=</span>
- <span class="num">11</span></code></dt>
- <dd></dd>
-
- <dt><code><var>MIN_TIMEOUT</var> <span
- class="punct">:</span>&nbsp;number <span class="punct">=</span>
- <span class="num">10</span></code></dt>
- <dd></dd>
-
- <dt><code><var>types</var> <span
- class="punct">:</span>&nbsp;<span class="ident">Object</span></code></dt>
- <dd>Supported CSS data types. Properties include:
- <dl>
- <dt><code>NUMBER</code></dt>
- <dd>Numeric scalar value</dd>
-
- <dt><code>LENGTH</code></dt>
- <dd>Length given relative in <code>em</code> (width of the
- M&nbsp;square) or <code>ex</code> (height of the x square),
- or absolute in <code>in</code> (inches), <code>cm</code>
- (centimeters), <code>mm</code> (millimeters), <code>pt</code>
- (points), <code>pc</code> (picas), or <code>px</code>
- (pixels).</dd>
-
- <dt><code>PERCENTAGE</code></dt>
- <dd>Length given in percentage</dd>
-
- <dt><code>URI</code></dt>
- <dd>Uniform Resource Identifier or URI-reference (see RFC 3986),
- enclosed in <code>url(…)</code></dd>
-
- <dt><code>COUNTER</code></dt>
- <dd>CSS counter</dd>
-
- <dt><code>COLOR</code></dt>
- <dd>Color in RGB(A) or HSV format</dd>
-
- <dt><code>STRING</code></dt>
- <dd>String of Unicode characters</dd>
- </dl></dd>
-
- <dt><code><var>propertyInfo</var></code></dt>
- <dd>Provides information about the type of a CSS property and its relation
- to other CSS properties</dd>
- </dl>
-
- <h2>Prototype Properties</h2>
- <dl>
- <dt><code><var>autoReverse</var>
- <span class="punct">:</span>&nbsp;boolean
- <span class="punct">=</span> <span clasS="rswd">false</span></code></dt>
- <dd>Defines whether this animation reverses direction on alternating
- cycles. If <code>true</code>, the animation will proceed forward
- on the first cycle, then reverses on the second cycle, and so on.
- Otherwise, animation will loop such that each cycle proceeds
- forward from the initial
- <a href="KeyFrame"><code>KeyFrame</code></a>.</dd>
-
- <dt><code><var>frameLength</var> <span
- class="punct">:</span>&nbsp;number <span class="punct">=</span>
- jsx.animation.Timeline.MIN_FRAME_LENGTH</code></dt>
- <dd>Length of a frame in milliseconds (ms). The default value is
- <code>MIN_FRAME_LENGTH</code> so that frames at 0&nbsp;ms
- normalized to <code>MIN_TIMEOUT</code> are played before
- the second frame.</dd>
-
- <dt><code><var>keyFrames</var> <span
- class="punct">:</span>&nbsp;<span class="ident">Array</span>[<a
- href="KeyFrame"><span class="ident">KeyFrame</span></a>]
- <span class="punct">=</span> <span class="punct">[]</span></code></dt>
- <dd></dd>
-
- <dt><code><var>repeatCount</var> <span
- class="punct">:</span>&nbsp;number <span class="punct">=</span>
- <span class="num">1</span></code></dt>
- <dd>Defines the number of cycles in this animation. The
- <code><var>repeatCount</var></code> may be <code>INDEFINITE</code>
- for animations that repeat indefinitely, but must otherwise be
- &le; 0.</dd>
-
- <dt><code><var>target</var>
- <span class="punct">:</span>&nbsp;<span
- class="ident">Object</span> <span class="punct">=</span>
- <span class="rswd">null</span></code></dt>
- <dd>Target object</dd>
- </dl>
-
- <h2>Constructor</h2>
- <p><code><span class="ident">jsx<span class="punct">.</span>animation<span
- class="punct">.</span>Timeline</span><span
- class="punct">(</span><var>oParams</var>
- <span class="punct">:</span>&nbsp;<span class="ident">Object</span><span
- class="punct">)</span></code></p>
- <h3>Arguments</h3>
- <dl>
- <dt><code><var>oParams</var> <span class="punct">:</span>&nbsp;<span class="ident">Object</span></code></dt>
- <dd></dd>
- </dl>
- <h3>Throws</h3>
- <dl>
- <dt><code class="ident">jsx<span class="punct">.</span>InvalidArgumentError</code></dt>
- <dd>if no parameters were specified</dd>
- </dl>
-
- <h2>Methods</h2>
- <dl>
- <dt><h3><code><span class="ident">play</span><span
- class="punct">(</span><var>target</var> <span
- class="punct">:</span>&nbsp;<span class="ident">Object</span></code><span
- class="punct">)</span></code></h3></dt>
- <dd><p>Plays this <code>Timeline</code>.</p>
- <h4>Arguments</h4>
- <dl>
- <dt><code><var>target</var>
- <span class="punct">:</span>&nbsp;<span
- class="ident">Object</span></code></dt>
- <dd>Target object (optional). Is usually only provided
- if this <code>Timeline</code> is part of an
- <a href="Animation"><code>Animation</code></a>.</dd>
- </dl></dd>
-
- <dt><h3><code><span class="ident">stop</span><span class="punct">()</span></code></h3></dt>
- <dd>Prevents the <code>Timeline</code> from continuing to play.</dd>
- </dl>
- </body>
-</html>
\ No newline at end of file
/live/doc/jsx/animation/Timeline.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/doc/jsx/object.html
===================================================================
--- live/doc/jsx/object.html (revision 509)
+++ live/doc/jsx/object.html (nonexistent)
@@ -1,188 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>jsx.object &#8212; JSX API Documentation</title>
- <link rel="stylesheet" href="../../../style.css" type="text/css">
- <link rel="stylesheet" href="../../style.css" type="text/css">
- </head>
-
- <body>
- <h1><tt>object.js</tt></h1>
- <h2><a name="globals" id="globals">Global Variables</a></h2>
-
- <dl>
- <dt><code><var>_global</var> <span class="punct">:</span>&nbsp;Global</code></dt>
- <dd>Reference to the ECMAScript Global Object.<br>
- <strong>deprecated</strong> since 0.1.5a.2009063012 in favor of
- <code><a href="#jsx.global">jsx.global</a></code> for library references.</dd>
-
- <dt><code><var><a href="#jsx">jsx</a></var>
- <span class="punct">:</span>&nbsp;Object</code></dt>
- <dd>Top-level namespace</dd>
- </dl>
-
- <h2><code><a name="jsx" id="jsx">jsx</a></code></h2>
- <ul>
- <li><code>Object</code>
- <ul>
- <li><code>jsx</code></li>
- </ul></li>
- </ul>
-
- <h3>Properties of <code>jsx</code></h3>
- <dl>
- <dt><code><var><a name="jsx.MSG_INFO" id="jsx.MSG_INFO">MSG_INFO</a></var>
- <span class="punct">:</span>&nbsp;string
- <span class="punct">=</span> <span class="string">"info"</span></code></dt>
- <dd></dd>
-
- <dt><code><var><a name="jsx.MSG_WARN" id="jsx.MSG_WARN">MSG_WARN</a></var>
- <span class="punct">:</span>&nbsp;string
- <span class="punct">=</span> <span class="string">"warn"</span></code></dt>
- <dd></dd>
-
- <dt><code><var>MSG_DEBUG</var> <span class="punct">:</span>&nbsp;string
- <span class="punct">=</span> <span class="string">"debug"</span></code></dt>
- <dd></dd>
-
- <dt><code><var><a name="jsx.global" id="jsx.global">global</a></var>
- <span class="punct">:</span>&nbsp;Global</code></dt>
- <dd>Reference to the ECMAScript Global Object</dd>
-
- <dt><code><var><a href="#jsx.object">object</a></var>
- <span class="punct">:</span>&nbsp;Object</code></dt>
- <dd>Namespace for basic object-specific features</dd>
- </dl>
-
- <h3>Methods of <code>jsx</code></h3>
- <dl>
- <dt><h3><code><span class="ident"><a name="jsx.dmsg" id="jsx.dmsg"
- >dmsg</a></span><span class="punct">(</span><var>sMsg</var></code>[<code><span
- class="punct">,</span>
- <var>sType</var></code> = <code><span class="str">"log"</span></code>]<code><span
- class="punct">)</span>
- :&nbsp;<span class="rswd">boolean</span></code></h3></dt>
- <dd><p>Prints debug messages to the script console.</p>
- <p>NOTE: This method has previously been provided by
- {@link debug.js}; optimizations in code reuse
- moved it here.</p>
- <h4>Arguments</h4>
- <dl>
- <dt><code><var>sMsg</var> : string</code></dt>
- <dd>Message to be printed</dd>
-
- <dt><code><var>sType</var> : string</code></dt>
- <dd>Type of the message. Supported values include
- <code class="str">"log"</code> (default), <code class="str">"info"</code>,
- <code class="str">"warn"</code>, and <code class="str">"debug"</code>.
- If a script console does not support a message type,
- the default value is used.</dd>
- </dl>
-
- <h4>Returns</h4>
- <p><code class="rswd">true</code> if it was possible to cause the
- message to be printed; <code class="rswd">false</code> otherwise.</p></dd>
-
- <dt><h3><code><span class="ident">info</span><span class="punct">(</span><var>sMsg</var><span class="punct">)</span>
- :&nbsp;<span class="rswd">boolean</span></code></h3></dt>
- <dd><p>Issues an info message, if possible.</p>
- <h4>Arguments</h4>
- <dl>
- <dt><code><var>sMsg</var> : string</code></dt>
- </dl>
-
- <h4>Returns</h4>
- <p>The return value of <code><a href="#jsx.dmsg">jsx.dmsg</a><span
- class="punct">(</span><var>sMsg</var></span>, <a href="#jsx.MSG_INFO">jsx.MSG_INFO</a><span
- class="punct">)</span></code></p>
-
- <dt><h3><code><span class="ident">warn</span><span class="punct">(</span><var>sMsg</var><span class="punct">)</span>
- :&nbsp;<span class="rswd">boolean</span></code></h3></dt>
- <dd><p>Issues a warning, if possible.</p>
- <h4>Arguments</h4>
- <dl>
- <dt><code><var>sMsg</var> : string</code></dt>
- </dl>
-
- <h4>Returns</h4>
- <p>The return value of <code><a href="#jsx.dmsg">jsx.dmsg</a><span
- class="punct">(</span><var>sMsg</var></span>,
- <a href="#jsx.MSG_WARN">jsx.MSG_WARN</a><span
- class="punct">)</span></code></p>
- </dl>
-
- <h2><code><a name="jsx.object" id="jsx.object">jsx.object</a></code></h2>
- <ul>
- <li><code>Object</code>
- <ul>
- <li><code><a href="#jsx">jsx</a>.object</code></li>
- </ul></li>
- </ul>
-
- <h3>Properties of <code>jsx.object</code></h3>
- <dl>
- <dt><code><var>ADD_OVERWRITE</var> <span class="punct">:</span>&nbsp;number
- <span class="punct">=</span> <span class="num">1</span></code></dt>
- <dd>Used by {@link #addProperties()} to overwrite existing properties.</dd>
-
- <dt><code><var>COPY_ENUM</var> <span class="punct">:</span>&nbsp;number
- <span class="punct">=</span> <span class="num">0</span></code></dt>
- <dd>Used by {@link #addProperties()} and {@link #clone()}
- to make a shallow copy of all enumerable properties
- (default).</dd>
-
- <dt><code><var>COPY_ENUM_DEEP</var> <span class="punct">:</span>&nbsp;number
- <span class="punct">=</span> <span class="num">2</span></code></dt>
- <dd>Used by {@link #addProperties()} and {@link #clone()}
- to make a deep copy of all enumerable properties.</dd>
-
- <dt><code><var>COPY_INHERIT</var> <span class="punct">:</span>&nbsp;number
- <span class="punct">=</span> <span class="num">4</span></code></dt>
- <dd>Used by {@link #addProperties()} and {@link #clone()}
- to copy a property by inheritance.</dd>
-
- <dt><code><var>author</var> <span class="punct">:</span>&nbsp;string</code></dt>
- <dd>Script author</dd>
-
- <dt><code><var>copyright</var> <span class="punct">:</span>&nbsp;string</code></dt>
- <dd>Script Copyright</dd>
-
- <dt><code><var>email</var> <span class="punct">:</span>&nbsp;string</code></dt>
- <dd>Contact e-mail address</dd>
-
- <dt><code><var>path</var> <span class="punct">:</span>&nbsp;string</code></dt>
- <dd>Original script path</dd>
-
- <dt><code><var>version</var> <span class="punct">:</span>&nbsp;string</code></dt>
- <dd>Script version</dd>
- </dl>
-
- <h3>Methods of <code>jsx.object</code></h3>
- <dl>
- <dt><h3><code><span class="ident">addProperties</span><span
- class="punct">(</span><var>oSource</var> :&nbsp;Object</code>[<code><span
- class="punct">,</span> <var>iFlags</var></code>[<code><span class="punct">,</span>
- <var>oOwner</var></code>]]<code><span class="punct">)</span></code></h3></dt>
- <dd><p>Adds/replaces properties of an object</p>
- <h4>Arguments</h4>
- <dl>
- <dt><code><var>oSource</var> : Object</code></dt>
- <dd>Object specifying the properties to be added/replaced.
- The name of each property serves as the name for the
- property of the target object, its value as the value
- of that property.</dd>
-
- <dt><code><var>iFlags</var> : number</code></dt>
- <dd>Flags for the modification, see {@link Object#ADD_OVERWRITE ADD_*}
- and {@link Object#COPY_ENUM COPY_*}.</dd>
-
- <dt><code><var>oOwner</var> : Object</code></dt>
- <dd>If provided, used as target object instead of the
- calling object. This makes it possible to call
- the method without an explicit calling object.</dd>
- </dl></dd>
- </dl>
- </body>
-</html>
\ No newline at end of file
/live/doc/jsx/object.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/doc/files.html
===================================================================
--- live/doc/files.html (revision 509)
+++ live/doc/files.html (nonexistent)
@@ -1,46 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="language">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Files &#8212; JSX API Documentation</title>
- <base target="tree">
- <style type="text/css">
- <!--
- ul {
- padding-left: 0;
- list-style: none;
- }
-
- li {
- margin-left: 0;
- }
- -->
- </style>
- </head>
-
- <body>
- <h1>Files</h1>
- <ul>
- <li><a href="tree">All files</a></li>
- <li><tt><a href="tree-ani.js">ani.js</a></tt></li>
- <li><tt>array.js</tt></li>
- <li><tt>collection.js</tt></li>
- <li><tt>css.js</tt></li>
- <li><tt>dhtml.js</tt></li>
- <li><tt>exception.js</tt></li>
- <li><tt>flash.js</tt></li>
- <li><tt>global.js</tt></li>
- <li><tt>grammar.js</tt></li>
- <li><tt>httprequest.js</tt></li>
- <li><tt>map.js</tt></li>
- <li><tt>math.js</tt></li>
- <li><tt>object.js</tt></li>
- <li><tt>regexp.js</tt></li>
- <li><tt>string.js</tt></li>
- <li><tt>types.js</tt></li>
- <li><tt>window.js</tt></li>
- <li><tt>xpath.js</tt></li>
- </ul>
- </body>
-</html>
\ No newline at end of file
/live/doc/files.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/doc/style.css
===================================================================
--- live/doc/style.css (revision 509)
+++ live/doc/style.css (nonexistent)
@@ -1,7 +0,0 @@
-th, td {
- vertical-align: top;
-}
-
-th {
- text-align: left;
-}
\ No newline at end of file
/live/doc/style.css
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/doc/details.html
===================================================================
--- live/doc/details.html (revision 509)
+++ live/doc/details.html (nonexistent)
@@ -1,50 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>JSX API Documentation</title>
- <style type="text/css">
- <!--
- ol {
- list-style-type: decimal;
- }
-
- ol ol {
- list-style-type: lower-latin;
- }
-
- ol ol ol {
- list-style-type: lower-roman;
- }
-
- ol ol ol ol {
- list-style-type: decimal;
- }
- -->
- </style>
- <script type="text/javascript" src="../builder.php?src=object,dom,http,JSdoc/jsdoc-simple"></script>
- <script type="text/javascript">
- function getDoc ()
- {
- var xhr = new jsx.net.http.Request(
- "../" + (String(window.location.search).match(/^\??(.*)/) || [, ""])[1] + ".js",
- "GET",
- true,
- function (response) {
- de.pointedears.jsdoc.generate(response.responseText);
- },
- function () {
- var div = document.createElement("div");
- div.appendChild(document.createTextNode("File " + xhr.URL + " could not be loaded."));
- document.body.appendChild(div);
- });
- xhr.dontCache().send();
- }
- </script>
- </head>
-
- <body onload="getDoc()">
- <h1 id="title">JSX API Documentation</h1>
- </body>
-</html>
\ No newline at end of file
/live/doc/details.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/doc/index.html
===================================================================
--- live/doc/index.html (revision 509)
+++ live/doc/index.html (nonexistent)
@@ -1,21 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
- "http://www.w3.org/TR/html4/frameset.dtd">
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>JSX API Documentation</title>
- </head>
-
- <frameset cols="20%,*">
- <frameset rows="30%,*">
- <frame src="files">
- <frame src="tree" name="tree">
- </frameset>
- <frame src="summary" name="main">
- <noframes>
- <body>
- <h1>JSX API Documentation</h1>
- </body>
- </noframes>
- </frameset>
-</html>
\ No newline at end of file
/live/doc/index.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/doc/summary.html
===================================================================
--- live/doc/summary.html (revision 509)
+++ live/doc/summary.html (nonexistent)
@@ -1,12 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="language">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Summary &#8212; JSX API Documentation</title>
- </head>
-
- <body>
- <h1>Summary</h1>
- </body>
-</html>
\ No newline at end of file
/live/doc/summary.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/regexp.js
===================================================================
--- live/regexp.js (revision 509)
+++ live/regexp.js (nonexistent)
@@ -1,1413 +0,0 @@
-"use strict";
-/* vim:set fileencoding=utf-8 tabstop=2 shiftwidth=2 softtabstop=2 expandtab: */
-/**
- * <title>PointedEars' JSX: RegExp Library</title>
- * @filename regexp.js
- * @version $Id$
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2005-2013 Thomas Lahn &lt;js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx != "object")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-if (typeof jsx.regexp == "undefined")
-{
- /* (for JSDT only) */
- jsx.regexp = {};
-}
-
-/**
- * @type jsx.regexp
- * @memberOf __jsx.regexp
- * @namespace
- */
-jsx.regexp = (/** @constructor */ function () {
- var _jsx_object = jsx.object;
- var _getClass = _jsx_object.getClass;
- var _getDataObject = _jsx_object.getDataObject;
-
- /**
- * @type jsx.regexp.RegExp
- * @memberOf __jsx.regexp.RegExp
- * @namespace
- * @property pattern : String
- * The original pattern string, including pattern-match
- * modifiers.
- * @property _patternGroups : Array
- * The part of the pattern string from the opening parenthesis
- * of each pattern group to the end of the pattern, before
- * character class expansion, and without pattern-match
- * modifiers. The first item (index 0) holds the complete
- * pattern without modifiers. Used internally; do not modify.
- * <em>NOTE: For efficiency, the pattern groups are not isolated;
- * further parsing on your part may very well be necessary.</em>
- * @property groups : Object
- * An Array-like object mapping group indexes to group names.
- * Its <code>length</code> property yields the number of grouped
- * subpatterns in the original pattern, including named groups.
- * @property names : Object
- * An object mapping group names to group indexes.
- * @property flags : String
- * The original flags string
- * @property dotAll : boolean
- * Flag specifying whether the used expression was built from
- * a pattern where the dot matches newline as well (PCRE_DOTALL).
- * @property extended : boolean
- * Flag specifying whether the used expression was built from
- * an extended pattern (PCRE_EXTENDED).
- * @property unicodeMode : boolean
- * Flag specifying whether the used expression was built using
- * Unicode mode.
- * @method exec
- * A variant of the built-in {@link RegExp.prototype#exec()}
- * to support named groups and Unicode mode transparently.
- * @method _oldExec
- * The original inherited exec() method. Used internally.
- * @method _realExec
- * The used exec() method. Used internally.
- * @function
- */
- var _RegExp2 = jsx.object.extend(
- (/** @constructor */function () {
- var
- _destructure = jsx.array.destructure,
- _WideString = _jsx_object.getFeature(
- jsx, "string", "unicode", "WideString"),
- _fromCharCode = function (codePoint) {
- if (codePoint > 0xFFFF)
- {
- return _WideString.fromCharCode(codePoint);
- }
-
- return String.fromCharCode(codePoint);
- },
-
- propertyClasses,
- ucdFields = ["codePoint",, "propertyClass"],
-
- _parseUCDText = function () {
- (new jsx.net.http.Request(
- _RegExp2.ucdTextPath, "GET", false,
- function (xhr) {
- var lines = xhr.responseText.split(/\r?\n|\r/).map(
- function (e) {
- var entry = _destructure(e.split(";"), ucdFields);
- entry.codePoint = parseInt(entry.codePoint, 16);
- return entry;
- });
-
- lines.sort(function (a, b) {
- if (a.propertyClass < b.propertyClass)
- {
- return -1;
- }
-
- if (a.propertyClass > b.propertyClass)
- {
- return 1;
- }
-
- if (a.codePoint < b.codePoint)
- {
- return -1;
- }
-
- if (a.codePoint > b.codePoint)
- {
- return 1;
- }
-
- return 0;
- });
-
- propertyClasses = _RegExp2.propertyClasses = {};
-
- for (var i = 0, len = lines.length; i < len; ++i)
- {
- var
- line = lines[i],
- propertyClass = line.propertyClass,
- prevClass,
- codePoint = line.codePoint,
- prevCodePoint;
-
- if (isNaN(codePoint) || (codePoint > 0xFFFF && !_WideString))
- {
- continue;
- }
-
- if (propertyClass != prevClass)
- {
- if (codePoint != prevCodePoint + 1)
- {
- if (startRange)
- {
- propertyClasses[prevClass] +=
- "-" + _fromCharCode(prevCodePoint);
- }
- }
-
- propertyClasses[propertyClass] =
- _fromCharCode(codePoint);
-
- var startRange = false;
- }
- else
- {
- if (codePoint != prevCodePoint + 1)
- {
- if (startRange)
- {
- propertyClasses[prevClass] +=
- "-" + _fromCharCode(prevCodePoint);
-
- startRange = false;
- }
-
- propertyClasses[propertyClass] +=
- _fromCharCode(codePoint);
- }
- else
- {
- startRange = true;
- }
- }
-
- prevClass = propertyClass,
- prevCodePoint = codePoint;
- }
-
- if (startRange)
- {
- propertyClasses[prevClass] +=
- "-" + _fromCharCode(prevCodePoint);
- }
- }
- )).send();
- },
-
- /**
- * @param {String} charClassContent
- * @param {boolean} bUnicodeMode
- * @return {string}
- */
- _normalizeCharClass = function (charClassContent, bUnicodeMode) {
- var negEscapes = [];
-
- if (charClassContent == "")
- {
- return "[]";
- }
-
- if (charClassContent == "^")
- {
- return "[^]";
- }
-
- var reduced = charClassContent.replace(
- /\\((P)\{([^\}]+)\}|(W))/g,
- function (m, p1, cP, charProperty, cW) {
- var escapeChar = cP || cW;
- if (escapeChar == "P" || bUnicodeMode)
- {
- negEscapes.push("\\" + escapeChar.toLowerCase()
- + (charProperty ? "{" + charProperty + "}" : ""));
- return "";
- }
-
- return m;
- });
-
- if (negEscapes.length > 0)
- {
- /* Do not let negated empty class from reduction match everything */
- if (reduced == "^")
- {
- reduced = "";
- }
-
- if (reduced != "")
- {
- jsx.warn(
- "jsx.regexp.RegExp: Combined negative escapes in character classes"
- + " require support for non-capturing parentheses");
- }
-
- return (reduced ? "(?:[" + reduced + "]|" : "")
- + "[" + (charClassContent.charAt(0) == "^" ? "" : "^")
- + negEscapes.join("") + "]"
- + (reduced ? ")" : "");
- }
-
- return "[" + reduced + "]";
- },
-
- sPropertyEscapes = "\\\\(p)\\{([^\\}]+)\\}",
- rxPropertyEscapes = new RegExp(sPropertyEscapes, "gi"),
- sNonPropEscInRange = "([^\\]\\\\]|\\\\[^p])*",
- sEscapes =
- "\\[(\\^?(" + sNonPropEscInRange + "(" + sPropertyEscapes
- + ")+" + sNonPropEscInRange + ")+)\\]"
- + "|" + sPropertyEscapes + "",
- rxEscapes = new RegExp(sEscapes, "gi"),
-
- fEscapeMapper = function (match, classRanges, p2, p3, p4, p5, p6, p7,
- standalonePropSpec, standaloneClass) {
- propertyClasses = _RegExp2.propertyClasses;
-
- /* If the Unicode Character Database (UCD) is not statically loaded */
- if (!propertyClasses)
- {
- /* load it dynamically, ignore exceptions */
- var ucdScriptPath = _RegExp2.ucdScriptPath;
- if (ucdScriptPath)
- {
- jsx.tryThis(function () { jsx.importFrom(ucdScriptPath); });
-
- propertyClasses = _RegExp2.propertyClasses;
- }
-
- /* if this failed */
- if (!propertyClasses)
- {
- if (!jsx.net || !jsx.net.http
- || typeof jsx.net.http.Request != "function")
- {
- jsx.throwThis("jsx.regexp.UCDLoadError",
- ['"' + _RegExp2.ucdScriptPath + '" (jsx.regexp.RegExp.ucdScriptPath)',
- "http.js"]);
- }
-
- /* parse the text version of the UCD */
- _parseUCDText();
- }
-
- /*
- * Define property classes required for Unicode mode
- * if not already defined (not available from text version
- * of UCD)
- */
- _jsx_object.extend(propertyClasses, {
- L: "\\p{Ll}\\p{Lm}\\p{Lo}\\p{Lt}\\p{Lu}",
- M: "\\p{Mc}\\p{Me}\\p{Mn}",
- N: "\\p{Nd}\\p{Nl}\\p{No}",
- Digit: "\\p{Nd}",
- Space: "\u0009\u000a\u000c\u000d\u0020\u0085\u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000",
- Word: "\\p{L}\\p{M}\\p{N}\\p{Pc}"
- });
- }
-
- var _rangesStack = [];
- /**
- * @return {string}
- */
- _rangesStack.toString = function () {
- return this.join(" --> ");
- };
-
- var _propertyClassReplacer = function (match, propertySpecifier, propertyClass) {
- if (propertySpecifier === "P")
- {
- jsx.throwThis("jsx.regexp.InvalidPropertyClassError",
- _rangesStack.pop()
- + " contains the negative property specifier \\P{" + propertyClass + "}");
- return;
- }
-
- return _getRanges(propertyClass);
- };
-
- var _getRanges =
- /**
- * Retrieves class ranges by property class, and throws a specialized
- * exception if this fails.
-
- * @param {String} propertyClass
- * @throws jsx.regexp#UndefinedPropertyClassError
- */
- function (propertyClass) {
- return jsx.tryThis(
- function () {
- if (_rangesStack.indexOf(propertyClass) > -1)
- {
- jsx.throwThis("jsx.regexp.InvalidPropertyClassError",
- propertyClass + " is cyclically defined ("
- + _rangesStack + " --> " + propertyClass
- + ")");
- return;
- }
-
- _rangesStack.push(propertyClass);
-
- var escapedRange = _jsx_object.getProperty(propertyClasses, propertyClass);
-
- /*
- * Resolve property class references in property class values,
- * watch for cyclic structures.
- */
- var rxPropertyEscapes = new RegExp(sPropertyEscapes, "gi");
- var unescapedRange = escapedRange.replace(rxPropertyEscapes, _propertyClassReplacer);
-
- _rangesStack.pop();
-
- return unescapedRange;
- },
- function (e) {
- if (e.name == "jsx.object.PropertyError")
- {
- jsx.throwThis("jsx.regexp.UndefinedPropertyClassError",
- propertyClass + (_rangesStack.length > 1 ? " in " + _rangesStack : ""));
- }
- else
- {
- jsx.rethrowThis(e);
- }
- });
- };
-
- /* We can handle standalone class references … */
- if (standaloneClass)
- {
- var result = _getRanges(standaloneClass);
- result = "[" + (standalonePropSpec == "P" ? "^" : "") + result + "]";
- }
- else
- {
- /* … and class references in character classes */
- result = _normalizeCharClass(classRanges);
-
- result = result.replace(
- rxPropertyEscapes,
- function (match, propertySpecifier, propertyClass) {
- var ranges = _getRanges(propertyClass);
- return ranges;
- });
- }
-
- return result;
- };
-
- /**
- * Creates and returns an extended {@link RegExp} object.
- *
- * This constructor accepts pattern and flags arguments where you
- * can use some features of Perl and Perl-compatible regular
- * expressions (PCRE); like {@link RegExp()}, it can also be called
- * as a function to do the same. The {@link RegExp} instance it
- * returns is augmented with properties to support those features
- * when matching it against a string.
- *
- * The following additional features are currently supported:
- * <ul>
- * <li>Flags:
- * <ul>
- * <li><tt>s</tt> (PCRE_DOTALL) – the <tt>.</tt> metacharacter
- * matches newline as well.</li>
- * <li><tt>u</tt> (Unicode mode) – the meaning of
- * character class escape sequences <tt>\b</tt>, <tt>\w</tt>,
- * and <tt>\W</tt> is extended to include Unicode character
- * properties.</li>
- * <li><tt>x</tt> (PCRE_EXTENDED) – whitespace within
- * the pattern is ignored, so that it is easier
- * human-readable.</li>
- * </ul><p>
- * Flags except for Unicode mode can be set and unset for
- * parts of the expression outside of character classes using
- * the <tt>(?…)</tt> and <tt>(?-…)</tt> notations.
- * </li>
- * <li>Unicode property classes using e.g. the \p{…} notation</li>
- * <li>Named capturing groups by passing strings with the
- * <tt>(?P&lt;name>…)</tt> or <tt>(?P'name'…)</tt> notation,
- * where the <tt>P</tt> is optional, respectively.</li>
- * </ul><p>
- * This is facilitated through the following steps:
- * </p><ol>
- * <li>The flags <code>x</code>, <code>s</code> and <code>u</code>
- * in the optional <var>sFlags</var> argument set the initial
- * state of the pattern-match modifiers; the extended
- * {@link RegExp}'s <code>extended</code>, <code>dotAll</code>,
- * and <code>unicodeMode</code> properties are set accordingly.
- * These flags are removed from the <var>sFlags</var>
- * argument subsequently, as it is reused to create the
- * {@link RegExp} instance. [Conforming implementations of
- * ECMA-262-5.1 MUST throw a <code>SyntaxError</code>
- * exception on flags other than <code>g</code>, <code>i</code>,
- * and <code>m</code> (section 15.10.4.1); Mozilla JavaScript
- * may also support the <code>y</code> (sticky) flag,
- * but nothing else.]</li>
- * <li>The pattern is run through several passes, where in each
- * one it is scanned from left to right using another
- * {@link RegExp}:
- * <ol style="margin-bottom: 1em; list-style-type: lower-roman">
- * <li><p>Capturing groups and pattern-match modifiers in the
- * pattern are matched and replaced.
- * <p>Capturing groups are replaced with the opening
- * parenthesis if they were assigned a name. The
- * extended {@link RegExp}'s <code>groups</code>,
- * <code>names</code>, and <code>_patternGroups</code>
- * properties are set accordingly. They are used in an
- * overwritten <code>exec()</code> method and when matching
- * against a <code>jsx.regexp.String</code> using its
- * <tt>match(…)</tt> method.</p>
- * <p style="margin-bottom: 0">
- * Pattern-match modifiers are set and unset as they
- * are scanned. The corresponding substrings are
- * removed from the pattern. If the group is otherwise
- * empty, and therefore is not a group at all,
- * the entire pseudo-group is removed.</p>
- * <ol style="margin-top: 0; list-style-type: lower-latin">
- * <li>With PCRE_EXTENDED set, single-line
- * comments starting with <tt>#</tt> and unescaped
- * whitespace are removed from the pattern. The backslash
- * is removed from the pattern when in front of
- * whitespace.</li>
- * <li>With PCRE_DOTALL set, unescaped <tt>.</tt>
- * (period) characters are replaced with the character class
- * <tt>[\S\s]</tt> which matches all Unicode characters.</li>
- * </ol>
- * <p><em>NOTE: Unlike in Perl and PCRE, a pattern-match
- * modifier affects all of the pattern that follows,
- * even outside the group in which the modifier was
- * set/unset. This will be fixed in a later version.</em>
- * </p></li>
- * <li>When in Unicode mode,
- * <ol style="list-style-type: lower-latin">
- * <li>in the second pass, character class escape sequences
- * <tt>\w</tt> and <tt>\W</tt> are replaced with
- * corresponding uses of <tt>\p{Word}</tt>.</li>
- * <li>in the third pass, <tt>\b</tt> is replaced with
- * corresponding uses of character classes and negative
- * lookahead.
- * </ol></li>
- * <li style="margin-top: 1em">The <tt>\p{…}</tt> and <tt>\P{…}</tt>
- * escape sequences are replaced with the corresponding
- * character classes.</li>
- * </ol></li>
- * <li>The resulting expression and remaining flags are passed
- * to the {@link RegExp} constructor.</li>
- * <li>The created {@link RegExp} instance is augmented with
- * properties and returned.</li>
- * </ol><p>
- * There are the following possibilities to make Unicode property
- * classes known to this constructor:
- * </p><ol>
- * <li>Provide the Unicode Character Database, or parts thereof,
- * as an Object;</li>
- * <li>Provide the Unicode Character Database, or parts thereof,
- * as a plain text resource that is accessed with
- * XMLHttpRequest;</li>
- * <li>Define property classes manually</li>
- * </ol>
- * <p>
- * Variant #1 requires you to define a mapping object with
- * the following namespace and structure:
- * </p>
- * <pre><code>
- * jsx.regexp.RegExp.propertyClasses = {
- * ...,
- * Sc: "\u20AC...",
- * ...
- * };
- * </code></pre>
- * <p>
- * The property name is the name of the Unicode property class
- * (here: <tt>Sc</tt>). The property value (a string) defines
- * which characters belong to that class. You may use "-"
- * to specify character ranges, i.e., the range of characters
- * including the characters having the boundaries as code point
- * value, and all characters that have a code point value
- * in-between. (For a literal "-", you may use "\\-".)
- * An example file to mirror the Unicode 5.0 Character Database,
- * UnicodeData.js, is distributed with this file. Include it
- * <em>after</em> the file that declares the constructor (this
- * file) to use it. If you do not include it, but use the
- * <code>\p{...}</code> notation, an attempt will be made to load
- * the file specified by the <code>ucdScriptPath</code> property
- * (default: <code>"/scripts/UnicodeData.js"</code>) using
- * synchronous XHR (see below).
- * </p>
- * <p>
- * Variant #2 is going to support two different methods:
- * Synchronous and asynchronous request-response handling.
- * Synchronous request-response handling requests the (partial)
- * Unicode Character Database from the resource specified by
- * the <code>ucdTextPath</code> property (default:
- * <code>"/scripts/UnicodeData.txt"</code>) and halts execution
- * until a response has been received or the connection timed out.
- * Asynchronous request-response handling allows script execution
- * to continue while the request and response are in progress, but
- * you need to provide a callback as third argument where actions
- * related to the regular expression must be performed.
- * Asynchronous handling is recommended for applications that need
- * to be responsive to user input. <strong>Currently, only
- * synchronous handling is implemented.</strong>
- * </p>
- * <p>
- * Variant #3 can be combined with the other variants.
- * The constructor has a definePropertyClasses() method which can
- * be used to define and redefine property classes. This allows
- * an extended RegExp object to support only a subset of Unicode
- * property classes, and to support user-defined character
- * property classes.
- * </p>
- *
- * The returned {@link RegExp} has additional properties to
- * accomodate syntax extensions in the pattern string:
- *
- * @param {String|RegExp} expression
- * A regular expression pattern string that may use the features
- * described above. If it is a {@link RegExp}, its
- * <code>source</code> property is used and combined with
- * <var>sFlags</var>. That is, <code>jsx.regexp.RegExp(/foo/, "i")</code>
- * returns the same as <code>jsx.regexp.RegExp(/foo/i)</code>.
- * @param {String} sFlags
- * Optional string containing none, one or more of the standard
- * {@link RegExp} modifiers and the flags described above.
- * Unsupported flags are ignored, but passed on to {@link RegExp}.
- * Note that modifiers in <var>expression</var> can temporarily
- * unset and set the "s" and "x" flags. Following Perl, the "u"
- * flag (Unicode mode) can only be enabled, but not disabled.
- * @return {RegExp}
- * A regular expression with the property class escape sequences
- * expanded according to the specified data, with the specified
- * flags set if they are natively supported.
- */
- function jsx_regexp_RegExp (expression, sFlags)
- {
- if (expression && _getClass(expression) == "RegExp")
- {
- expression = expression.source;
- }
-
- var t = typeof expression;
- if (t != "string")
- {
- if (arguments.length < 1)
- {
- expression = "";
- }
- else
- {
- expression = String(expression);
- }
- }
-
- var pattern = expression;
- var flags = sFlags || "";
-
- var extended = false;
- var dotAll = false;
- var unicodeMode = false;
-
- if (sFlags)
- {
- if (sFlags.indexOf("x") > -1)
- {
- var originalExtended = extended = true;
- }
-
- if (sFlags.indexOf("s") > -1)
- {
- var originalDotAll = dotAll = true;
- }
-
- if (sFlags.indexOf("u") > -1)
- {
- unicodeMode = true;
- }
-
- sFlags = sFlags.replace(/[xsu]/g, "");
- }
-
- /* Support for capturing and special groups */
- var groupCount = 0;
- var groups = _getDataObject();
- var names = _getDataObject();
- var patternGroups = [expression];
-
- expression = expression.replace(
- /(\\\()/.concat(
- "|",
- /(\((\?P?(([adlupimsx]+)?(-([imsx]+))?)(<([^>]+)>|'([^']+)'|([:!]))?(\))?)?)/g,
- "|",
- /(#.*(\r?\n|\r|$))|\\(\s)/,
- "|",
- /\[([^\\\]]|\\.)*\]|(\s+)|\\\.|(\.)/g
- ),
- function (match, escapedLParen,
- group, specialGroup, modifierGroup,
- positiveModifiers, negativeModifiers_opt, negativeModifiers,
- namedGroup, bracketedName, quotedName,
- nonCapturingGroup, emptyGroup,
- comment, newline,
- escapedWS, charClassContent, whitespace,
- plainDot,
- index, all) {
- if (group)
- {
- var capturingGroup = (!nonCapturingGroup && !(modifierGroup && emptyGroup));
- if (capturingGroup)
- {
- ++groupCount;
- }
-
- if (positiveModifiers)
- {
- var
- rxPosModifiers = /[sx]/g,
- m;
-
- while ((m = rxPosModifiers.exec(positiveModifiers)))
- {
- switch (m[0])
- {
- case "s":
- dotAll = true;
- break;
-
- case "x":
- extended = true;
- }
- }
- }
-
- if (negativeModifiers)
- {
- var rxNegModifiers = /[sx]/g;
-
- while ((m = rxNegModifiers.exec(negativeModifiers)))
- {
- switch (m[0])
- {
- case "s":
- dotAll = false;
- break;
-
- case "x":
- extended = false;
- }
- }
- }
-
- if (capturingGroup)
- {
- /* Support for named capturing groups (PCRE-compliant) */
- var name = bracketedName || quotedName;
- if (name)
- {
- if (names[name])
- {
- jsx.throwThis("SyntaxError", "Duplicate symbolic name");
- }
-
- groups[groupCount] = name;
- names[name] = groupCount;
- }
-
- /*
- * NOTE: Helps with determining in exec() and match()
- * whether \b matched at beginning and \Ws need to be
- * ltrimmed from match
- */
- patternGroups.push(all.substring(index));
-
- return "(";
- }
-
- return emptyGroup ? "" : "(?" + nonCapturingGroup;
- }
-
- /* PCRE_EXTENDED */
- if (extended)
- {
- /* Remove comments */
- if (comment)
- {
- return "";
- }
-
- /* Keep escaped whitespace, remove escape */
- if (escapedWS)
- {
- return escapedWS;
- }
-
- /* Remove unescaped whitespace */
- if (whitespace)
- {
- return "";
- }
- }
-
- /* PCRE_DOTALL */
- if (dotAll && plainDot)
- {
- return "[\\S\\s]";
- }
-
- return match;
- });
-
- groups.length = groupCount;
-
- /* Unicode mode */
- if (unicodeMode)
- {
- var characterEscapes = {
- "d": "\\p{Digit}",
- "s": "\\p{Space}",
- "w": "\\p{Word}"
- };
-
- expression = expression.replace(
- /\[(([^\]\\]|\\.)*)\]|(\\([dsw]))/gi,
- function (match, charClassContent, p2, classCharacter, escapeLetter) {
- if (charClassContent)
- {
- var normalized = _normalizeCharClass(charClassContent, true);
-
- return normalized.replace(
- /\\\\|(\\([dsw]))/gi,
- function (match, classCharacter, escapeLetter) {
- if (classCharacter)
- {
- if (escapeLetter >= "A" && escapeLetter <= "Z")
- {
- if (charClassContent.charAt(0) != "^")
- {
- jsx.warn("jsx.regexp.RegExp: Negative character"
- + " class escape sequences in character"
- + " class not yet supported in Unicode mode."
- + " Use positive escape sequences in negated"
- + " character classes in the meantime.");
-
- return classCharacter;
- }
- }
-
- return characterEscapes[escapeLetter.toLowerCase()];
- }
-
- return match;
- });
- }
-
- if (classCharacter)
- {
- return "["
- + (escapeLetter >= "A" && escapeLetter <= "Z" ? "^" : "")
- + characterEscapes[escapeLetter.toLowerCase()] + "]";
- }
-
- return match;
- });
-
- /* Replace \b */
- var firstGroup = expression.match(/\((\?(P?(<([^>]+)>|'([^']+)')|[:!]))?/);
- var afterFirstGroup = (firstGroup && (firstGroup.index + firstGroup[0].length) || 0);
- var wordEscape = characterEscapes.w;
- expression = expression.replace(
- /\\\\|(\\b)/g,
- function (match, wordBorder, index, all) {
- if (wordBorder)
- {
- /* Handle \b in leading groups properly */
- if (index > afterFirstGroup)
- {
- return "(?!" + wordEscape + ")";
- }
-
- return "(?:^|[^" + wordEscape + "])";
- }
-
- return match;
- });
- }
-
- /* Support for Unicode character property classes (PCRE-compliant) */
- expression = expression.replace(rxEscapes, fEscapeMapper);
-
- var rx = new RegExp(expression, sFlags);
-
- /* Augmented properties */
- rx.pattern = pattern;
- rx._patternGroups = patternGroups;
- rx.groups = groups;
- rx.names = names;
- rx.flags = flags;
- rx.dotAll = !!originalDotAll;
- rx.extended = !!originalExtended;
- rx.unicodeMode = unicodeMode;
-
- rx._oldExec = rx.exec;
- rx.exec = jsx_regexp_RegExp.exec;
-
- return rx;
- }
-
- return jsx_regexp_RegExp;
- }()),
- {
- ucdScriptPath: "/scripts/UnicodeData.js",
- ucdTextPath: "/scripts/UnicodeData.txt",
-
- /**
- * Determines if an object has been constructed using this constructor
- * @memberOf jsx.regexp.RegExp
- */
- isInstance: function (rx) {
- return !!rx.pattern;
- },
-
- /**
- * @function
- */
- exec: (function () {
- var rx2;
-
- /**
- * @param {string} s
- * @param {jsx.regexp.RegExp} rx
- * @return {Object|null}
- * @see RegExp.prototype.exec()
- */
- function _exec (s, rx)
- {
- /* NOTE: Use passed expression only when called statically */
- if (_getClass(this) == "RegExp")
- {
- rx = this;
- }
-
- rx._realExec = (rx._oldExec || rx.exec);
-
- var matches = rx._realExec(s);
-
- if (matches && _RegExp2.isInstance(rx))
- {
- matches.groups = _getDataObject();
-
- if (rx.unicodeMode && !rx2)
- {
- rx2 = new _RegExp2("^\\W+", "u");
- }
-
- for (var i = 0, len = matches.length; i < len; ++i)
- {
- /* Trim leading \b matches */
- var patternGroup = rx._patternGroups[i];
- if (rx.unicodeMode
- && patternGroup
- && patternGroup.match(
- /^(\((\?P?(<([^>]+)>|'([^']+)'))?)*\\b/))
- {
- matches[i] = matches[i].replace(rx2, "");
- }
-
- matches.groups[rx.groups[i] || i] = matches[i];
- }
- }
-
- return matches;
- }
-
- return _exec;
- }()),
-
- definePropertyClasses: function (o) {
- for (var keys = _jsx_object.getKeys(o), i = 0, len = keys.length;
- i < len; ++i)
- {
- var p = keys[i];
- this.propertyClasses[p] = o[p];
- }
- },
-
- deletePropertyClass: function (p) {
- return (delete this.propertyClasses[p]);
- }
- }
- );
-
- return {
- /**
- * @version
- * @memberOf jsx.regexp
- */
- version: "0.1.$Revision$",
- copyright: "Copyright \xA9 2005-2013",
- author: "Thomas Lahn",
- email: "js@PointedEars.de",
- path: "http://pointedears.de/scripts/",
-
- /**
- * Exception thrown if a character property class is referenced,
- * but the Unicode Character Database (UCD) cannot be loaded
- *
- * @constructor
- * @param {String} sUCDScript
- * The script that contains the UCD in the specified form
- * @param {String} sHTTPScript
- * The script that contains the HTTP request type to load the UCD
- * dynamically
- * @type jsx.regexp.UCDLoadError
- * @extends jsx#Error
- */
- UCDLoadError:
- function jsx_regexp_UCDLoadError (sUCDScript, sHTTPScript) {
- jsx_regexp_UCDLoadError._super.call(this,
- "Unable to load the Unicode Character Database."
- + " Please include " + sUCDScript + " or " + sHTTPScript + ".");
- }.extend(jsx.Error, {
- /**
- * @memberOf jsx.regexp.UCDLoadError#prototype
- */
- name: "jsx.regexp.UCDLoadError"
- }),
-
- /**
- * Exception thrown if a referred character property class
- * cannot be resolved
- *
- * @type jsx.regexp.UndefinedPropertyClassError
- * @extends jsx.object#PropertyError
- */
- UndefinedPropertyClassError:
- /**
- * @constructor
- * @param sMsg
- */
- function jsx_regexp_UndefinedPropertyClassError (sMsg) {
- jsx_regexp_UndefinedPropertyClassError._super.call(this);
- this.message = "Undefined property class"
- + (arguments.length > 0 ? (": " + sMsg) : "");
- }.extend(jsx.object.PropertyError, {
- /**
- * @memberOf jsx.regexp.UndefinedPropertyClassError#prototype
- */
- name: "jsx.regexp.UndefinedPropertyClassError"
- }),
-
- /**
- * Exception thrown if a property class value can not be expanded
- *
- * @constructor
- * @param sMsg
- * @extends jsx.object#ObjectError
- */
- InvalidPropertyClassError:
- function jsx_regexp_InvalidPropertyClassError (sMsg) {
- jsx_regexp_InvalidPropertyClassError._super.call(this);
- this.message = "Invalid property class value"
- + (arguments.length > 0 ? (": " + sMsg) : "");
- }.extend(jsx.object.ObjectError, {
- name: "jsx.regexp.InvalidPropertyClassError"
- }),
-
- RegExp: _RegExp2,
-
- /**
- * @type jsx.regexp.String
- * @memberOf __jsx.regexp.String
- * @constructor
- */
- String: function jsx_regexp_String (s) {
- if (this.constructor != jsx_regexp_String)
- {
- jsx.throwThis("jsx.Error", "Must be called as constructor",
- "jsx.regexp.String");
- }
-
- this.value = String(s);
- }.extend(String, (function () {
- var _replace = String.prototype.replace;
- var _getDataObject = jsx.object.getDataObject;
-
- function _toString ()
- {
- return this.value;
- }
-
- return {
- /**
- * Matches a string against a regular expression, using special features
- * of jsx.regexp.RegExp if possible
- *
- * @function
- */
- match: (function () {
- var rxLeadingGroups, rxNonWordChars;
-
- /**
- * @param {RegExp|jsx.regexp.RegExp} rx
- * @return {Array}
- * The Array as if returned by String.prototype.match.call(this, rx)
- */
- return function (rx) {
- var matches = this.value.match(rx);
-
- if (matches && _RegExp2.isInstance(rx))
- {
- if (rx.unicodeMode)
- {
- if (!rxNonWordChars)
- {
- rxLeadingGroups = /^(\((\?P?(<([^>]+)>|'([^']+)'))?)*\\b/;
- rxNonWordChars = new _RegExp2("^\\W+", "u");
- }
- }
-
- if (rx.global)
- {
- /* Trim \b matches */
- if (rx.unicodeMode)
- {
- var patternGroup = rx._patternGroups[0];
- if (patternGroup.match(rxLeadingGroups))
- {
- for (var i = 0, len = matches.length; i < len; ++i)
- {
- matches[i] = matches[i].replace(rxNonWordChars, "");
- }
- }
- }
- }
- else
- {
- matches.groups = _getDataObject();
-
- for (var i = 0, len = matches.length; i < len; ++i)
- {
- if (rx.unicodeMode)
- {
- patternGroup = rx._patternGroups[i];
- if (patternGroup.match(rxLeadingGroups))
- {
- matches[i] = matches[i].replace(rxNonWordChars, "");
- }
- }
-
- matches.groups[rx.groups[i] || i] = matches[i];
- }
- }
- }
-
- return matches;
- };
- }()),
-
- /**
- * Replaces matches in a string, and returns the new string.
- *
- * Different to {@link String.prototype.replace()},
- * this methods also allows you to refer to backreferences
- * by name. In a String-like object, you may use
- * <code>"${name}"</code>, and in a replacement function
- * you may use <code>this.groups["name"]</code>.
- *
- * NOTE: Because of the latter the replacement function
- * is called as a method of this object, not of
- * the Global Object anymore. The <code>groups</code>
- * property of this object is retained; that is, the last
- * arguments to this method can be found in there.
- * (Arguments and return value of the replacement function
- * still work as specified in ECMAScript.)
- *
- * @memberOf jsx.regexp.String.prototype
- * @param {jsx.regexp.RegExp|RegExp|String} expression
- * @param {String|Function} replacement
- * @return {string}
- * @see String.prototype.replace
- */
- replace: function (expression, replacement) {
- if (jsx.regexp.RegExp.isInstance(expression))
- {
- var groups = expression.groups;
- var len = groups.length;
-
- if ((typeof replacement) == "function")
- {
- var me = this;
- return _replace.call(this, expression, function () {
- me.groups = _getDataObject();
- for (var i = 1; i <= len; ++i)
- {
- me.groups[groups[i]] = arguments[i];
- }
-
- return replacement.apply(me, arguments);
- });
- }
-
- for (var i = 1; i <= len; ++i)
- {
- /* replace "${name}" with "${index}" */
- replacement = _replace.call(
- replacement,
- new RegExp("\\$\\{" + groups[i] + "\\}", "g"),
- "$" + i);
- }
- }
-
- return _replace.call(this, expression, replacement);
- },
-
- /**
- * Returns this object's encapsulated string value
- */
- toString: _toString,
- valueOf: _toString
- };
- }())),
-
- /**
- * Concatenates strings or regular expressions ({@link RegExp})
- * and returns the resulting <code>RegExp</code>.
- *
- * If flags are used with either <code>RegExp</code> argument, the
- * resulting <code>RegExp</code> has all of those flags set.
- *
- * @author Copyright (c) 2005
- * Thomas Lahn &lt;regexp.js@PointedEars.de&gt;
- * @partof
- * http://pointedears.de/scripts/regexp.js
- * @params
- * Expressions to be concatenated. If a not a {@link RegExp},
- * the argument is converted to {@link String}; this allows
- * for expressions to be grouped and used in alternation.
- * For characters to lose their special meaning, escape them in
- * a <code>RegExp</code> argument or escape them twice in
- * a converted (e.g. string) argument.
- *
- * If this function is called as method of a <code>RegExp</code>,
- * the expressions given are concatenated beginning with the
- * <code>this</code> value.
- * @return {RegExp}
- * The resulting <code>RegExp</code>
- */
- concat: function () {
- var aParts = [];
-
- var oFlags = {
- flags: {
- g: "global",
- i: "ignoreCase",
- m: "multiline",
- y: "sticky"
- },
- g: false,
- i: false,
- m: false,
- y: false,
-
- setFromTemplate: function (template) {
- var flags = this.flags;
- for (var flag in flags)
- {
- if (!this[flag] && template[flags[flag]])
- {
- this[flag] = true;
- }
- }
- },
-
- toString:
- /**
- * @return {string}
- */
- function () {
- var a = [];
-
- for (var flag in this.flags)
- {
- if (this[flag] === true)
- {
- a.push(flag);
- }
- }
-
- return a.join("");
- }
- };
-
- var regexp2str = jsx.regexp.toString2;
-
- if (_getClass(this) == "RegExp")
- {
- aParts.push(regexp2str(this));
- oFlags.setFromTemplate(this);
- }
-
- for (var i = 0, iArgnum = arguments.length; i < iArgnum; i++)
- {
- var a = arguments[i];
- if (_getClass(a) == "RegExp")
- {
- aParts.push(regexp2str(a));
- oFlags.setFromTemplate(a);
- }
- else
- {
- aParts.push(String(a));
- }
- }
-
- return new RegExp(aParts.join(""), oFlags.toString());
- },
-
- /**
- * Returns a {@link RegExp} that is an intersection of two
- * regular expressions.
- *
- * @param pattern2
- * @param pattern1
- * @return {RegExp}
- * A regular expression which matches the strings that both
- * <var>pattern1</var> (or this object) and <var>pattern2</var>
- * would match.
- */
- intersect: function (pattern2, pattern1) {
- if (!pattern1 || _getClass(pattern1) != "RegExp")
- {
- if (_getClass(this) == "RegExp")
- {
- pattern1 = this;
- }
- else
- {
- return null;
- }
- }
-
- /* Rule out invalid values */
- if (!pattern2 || _getClass(pattern2) != "RegExp")
- {
- return null;
- }
-
- var
- s = pattern1.source.replace(/^\(?([^)]*)\)?$/, "$1"),
- s2 = pattern2.source.replace(/^\(?([^)]*)\)?$/, "$1");
-
- /* Register all parts within alternation of this pattern */
- var
- a = s.split("|"),
- o = {};
- for (var i = 0, len = a.length; i < len; i++)
- {
- o[a[i]] = true;
- }
-
- /* Register all parts within alternation of pattern2 */
- var
- a2 = s2.split("|"),
- o2 = {};
- for (i = 0, len = a2.length; i < len; i++)
- {
- o2[a2[i]] = true;
- }
-
- /* Compose the new alternation out of common parts */
- var hOP = (
- function () {
- if (typeof Object.prototype.hasOwnProperty == "function")
- {
- return function (o, p) {
- return o.hasOwnProperty(p);
- };
- }
-
- /* suffices *here* */
- return function (o, p) {
- return typeof o[p] != "undefined"
- && typeof o.constructor.prototype[p] == "undefined";
- };
- }
- )();
-
- a = [];
- for (var p in o)
- {
- if (hOP(o2, p))
- {
- a.push(p);
- }
- }
-
- return new RegExp("(" + a.join("|") + ")");
- },
-
- /**
- * Returns an escaped version of the string that can be passed
- * as an argument to {@link Global#RegExp(string, string) RegExp()}
- * to match that string.
- *
- * @param {string} s
- * @return {string}
- */
- escape: function (s) {
- if (arguments.length == 0 && this.constructor == String)
- {
- s = this;
- }
-
- return s.replace(/[\]\\^$*+?.(){}|[]/g, "\\$&");
- },
-
- /**
- * Returns the string representation of a {@link RegExp}
- * without delimiters.
- *
- * @param {RegExp} rx
- * @return {string}
- * The string representation of <var>rx</var>
- */
- toString2: function (rx) {
- // return rx.toString().replace(/[^\/]*\/((\\\/|[^\/])+)\/[^\/]*/, "$1");
- if (!rx)
- {
- rx = this;
- }
-
- return rx.source || rx.toString().replace(/[^\/]*\/(.+)\/[^\/]*/, "$1");
- }
- };
-}());
-
-// jsx.regexp.docURL = jsx.regexp.path + "regexp.htm";
-
-var regexp2str = jsx.regexp.toString2;
-RegExp.prototype.toString2 = regexp2str;
-
-var regexp_concat = jsx.regexp.concat;
-RegExp.prototype.concat = regexp_concat;
-
-var regexp_intersect = jsx.regexp.intersect;
-RegExp.prototype.intersect = regexp_intersect;
-
-var strRegExpEscape = jsx.regexp.escape;
-String.prototype.regExpEscape = strRegExpEscape;
/live/regexp.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Index: live/anti-SOPA.js
===================================================================
--- live/anti-SOPA.js (revision 509)
+++ live/anti-SOPA.js (nonexistent)
@@ -1,294 +0,0 @@
-function _createElement(data)
-{
- if (typeof data == "string")
- {
- return document.createTextNode(data);
- }
-
- var el = document.createElement(data.type);
- if (!el)
- {
- return null;
- }
-
- var properties = data.properties;
- if (properties)
- {
- for (var prop in properties)
- {
- if (!properties.hasOwnProperty(prop))
- {
- continue;
- }
-
- if (prop == "style")
- {
- var style = properties[prop];
- for (var styleProp in style)
- {
- if (!style.hasOwnProperty(styleProp))
- {
- continue;
- }
-
- var targetProp = styleProp;
- if (targetProp === "float")
- {
- if (typeof style.cssFloat != "undefined")
- {
- var targetProp = "cssFloat";
- }
- else if (typeof style.styleFloat != "undefined")
- {
- targetProp = "styleFloat";
- }
-
- }
-
- el.style[targetProp] = style[styleProp];
- }
- }
- else
- {
- el[prop] = properties[prop];
- }
- }
- }
-
- var nodes = data.childNodes;
- for (var i = 0, len = nodes && nodes.length; i < len; ++i)
- {
- el.appendChild(arguments.callee(nodes[i]));
- }
-
- return el;
-}
-
-function antiSOPA (contentName)
-{
- //jsx.tryThis(function () {
- var div = _createElement({
- type: "div",
- properties: {
- id: "antiSOPA",
- style: {
- position: "fixed",
- maxWidth: "none",
- zIndex: "999",
- left: "0",
- top: "0",
- right: "0",
- bottom: "0",
- backgroundColor: "black",
- }
- },
- childNodes: [
- {
- type: "div",
- properties: {
- className: "antiSOPA"
- },
- childNodes: [
- {
- type: "blockquote",
- childNodes: [
- {
- type: "p",
- properties: {
- style: {
- fontStyle: "italic",
- marginBottom: "0"
- }
- },
- childNodes: [
- "“With the first link, the chain is forged."
- + " The first speech censured, the first thought forbidden,"
- + " the first freedom denied, chains us all irrevocably.”"
- ]
- },
- {
- type: "div",
- properties: {
- style: {
- textAlign: "right"
- }
- },
- childNodes: [
- " – “Captain\xA0Picard”, quoting “Judge\xA0Aaron\xA0Satie”,",
- {
- type: "br"
- },
- "in “",
- {
- type: "a",
- properties: {
- href: "http://en.memory-alpha.org/wiki/Star_Trek:_The_Next_Generation"
- },
- childNodes: [
- "Star\xA0Trek: The\xA0Next\xA0Generation",
- ]
- },
- "”, “",
- {
- type: "a",
- properties: {
- href: "http://en.memory-alpha.org/wiki/The_Drumhead_(episode)"
- },
- childNodes: [
- "The\xA0Drumhead"
- ]
- },
- "”"
- ]
- }
- ]
- },
- {
- type: "p",
- childNodes: [
- "Put simply, the United States of America are currently considering ",
- {
- type: "a",
- properties: {
- href: "http://en.wikipedia.org/wiki/Wikipedia:SOPA_initiative/Learn_more"
- },
- childNodes: [
- "Acts\xA0of\xA0Congress"
- ]
- },
- " that, if passed, would allow the Internet to be censored."
- ]
- },
- {
- type: "p",
- childNodes: [
- "Not only this would severely limit the ",
- {
- type: "a",
- properties: {
- href: "http://www.un.org/en/documents/udhr/"
- },
- childNodes: ["Human Right of the Freedom of Speech"]
- },
- " in the United States; it would also set a bad precedent for other countries."
- + " For example, ",
- {
- type: "a",
- properties: {
- href: "http://www.regjeringen.no/pages/16468635/Horingsnotat_2011.pdf"
- },
- childNodes: [
- "Norway is already considering to do the same (PDF, in Norwegian)"
- ]
- },
- "."
- ]
- },
- {
- type: "blockquote",
- childNodes: [
- {
- type: "p",
- properties: {
- style: {
- fontStyle: "italic",
- marginBottom: "0"
- }
- },
- childNodes: [
- "“Vigilance, Mister Worf, that is the price we have to continually pay.”"
- ]
- },
- {
- type: "div",
- properties: {
- style: {
- textAlign: "right"
- }
- },
- childNodes: [
- " – “Captain\xA0Picard”, ibid.",
- ]
- }
- ]
- },
- {
- type: "p",
- childNodes: [
- "It is up to ",
- {
- type: "em",
- childNodes: [
- "you"
- ]
- },
- " to not let this happen. An information society"
- + " depends upon information being freely available to everyone."
- ]
- },
- {
- type: "ul",
- childNodes: [
- {
- type: "li",
- properties: {
- className: "red pill"
- },
- childNodes: [
- {
- type: "a",
- properties: {
- href: "http://en.wikipedia.org/wiki/Wikipedia:SOPA_initiative/Learn_more"
- },
- childNodes: [
- "Go to Wikipedia to learn more"
- ]
- }
- ]
- },
- {
- type: "li",
- properties: {
- className: "blue pill"
- },
- childNodes: [
- {
- type: "a",
- properties: {
- href: "#",
- onclick: function () {
- div.parentNode.removeChild(div);
- document.body.style.overflow = "";
- return false;
- }
- },
- childNodes: [
- "Hide this text ",
- {
- type: "em",
- childNodes: [
- "temporarily"
- ]
- },
- ", and proceed to " + (contentName || "site")
- ]
- },
- "."
- ]
- }
- ]
- },
- {
- type: "p",
- childNodes: [
- "This blackout will stay in place until 2012-01-19 (CE) 18:00 UTC."
- ]
- }
- ]
- }
- ]
- });
-
- document.body.appendChild(div);
- document.body.style.overflow = "hidden";
-}
/live/anti-SOPA.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/collection.js
===================================================================
--- live/collection.js (revision 509)
+++ live/collection.js (nonexistent)
@@ -1,431 +0,0 @@
-/**
- * <title>PointedEars' Collection Library</title>
- * @requires object.js
- *
- * @section Copyright & Disclaimer
- *
- * @author (C) 2002-2011 Thomas Lahn &lt;js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/**
- * @section Abstract
- *
- * A collection in ECMAScript and its implementations is an object
- * which has indexed items like an {@link Array} object.
- * Unlike an <code>Array</code> object, it also has named items
- * which refer to the same data as the indexed items. Each
- * item receives a numeric index in order of assignment/addition,
- * and if it is given, a name, too. Both indexes and names become
- * properties of the collection and are thus accessible via the
- * standard property accessor syntax:
- * <code><var>object</var>["<var>property</var>"]</code>
- * and, if <var>property</var> is an identifier,
- * <code><var>object</var>.<var>property</var></code>.
- * By internal references it is ensured that an operation on
- * an item is performed on both the indexed item and its named
- * counterpart.
- *
- * You could compare this behavior to an associative array in PHP,
- * only that ECMAScript has no built-in concept of associative arrays.
- *
- * @TODO Inherit from jsx.map.Map, remove duplicate methods
- */
-
-/**
- * Creates and initializes a <code>Collection</code> object.
- *
- * @param o : optional Object
- * reference used to fill the collection.
- * @constructor
- */
-jsx.Collection = function(o) {
- this.version = "0.1.2008120823";
- this.copyright = "Copyright \xA9 2002-2008";
- this.author = "Thomas Lahn";
- this.email = "collection.js@PointedEars.de";
- this.path = "http://pointedears.de/scripts/";
- this.URI = this.path + "collection.js";
-// this.docURI = this.path + "collection.htm";
- this.allowExceptionMsg = true;
-
- this.set(o);
-};
-
-jsx.Collection.extend(Array);
-
-/**
- * Adds an item to a {@link Collection}.
- *
- * @param val
- * @param name : optional string
- * Reference to an object used to fill the collection.
- * @return CollectionItem
- * the added item
- */
-jsx.Collection.prototype.add = function (val, name) {
- var index = this.items.length;
- this.items[index] = new jsx.CollectionItem(val);
-
- if (name && isNaN(name))
- {
- this.items[name] = this.items[index];
- }
-
- return this.items[index];
-};
-
-/**
- * @param o : optional Object
- * reference used to append to the collection.
- */
-jsx.Collection.prototype.addItems = function (o) {
- var result = null;
-
- for (var i in o)
- {
- /* omit deleted items */
- if (typeof o[i] != "undefined")
- {
- result = this.add(o[i], i);
- }
- }
-
- return result;
-};
-
-/**
- * Removes all items from the {@link Collection}.
- *
- * @type Array
- */
-jsx.Collection.prototype.clear = function () {
- this.items = [];
-
- if (typeof this.items.map != "function")
- {
- this.items.map = function (callback, thisObj) {
- var a = this;
-
- if (typeof callback == "function")
- {
- if (!thisObj)
- {
- thisObj = this;
- }
-
- a = [];
- for (var i = 0, len = this.length; i < len; i++)
- {
- a[i] = callback.call(thisObj, this[i], i, this);
- }
- }
- else
- {
- (function() {
- eval("throw new TypeError('Collection.prototype.items.map(callback, thisObj):'"
- + "+ ' expected function, got ' + typeof thisObj)");
- }());
- }
-
- return a;
- };
- }
-
- return this.items;
-};
-
-jsx.Collection.prototype.keys = function () {
- var a = [], o = this.items;
-
- for (var k in o)
- {
- a.push(o[k]);
- }
-
- return a;
-};
-
-jsx.Collection.prototype.values = function () {
- return this.items.map(function(v) { return v; });
-};
-
-/**
- * Returns a reference to a new {@link Iterator} for the {@link Collection}.
- *
- * @return Iterator
- */
-jsx.Collection.prototype.iterator = function () {
- return new jsx.Iterator(this.items);
-};
-
-/**
- * @param o : optional Object
- * reference used to fill the {@link Collection}.
- */
-jsx.Collection.prototype.set = function (o) {
- this.clear();
- return this.addItems(o);
-};
-
-/**
- * Creates and initializes a <code>ValueCollection</code> object,
- * which is a special {@link Collection} that can hold a value.
- *
- * @param o : Object
- * reference used to fill the collection
- * @param val
- * Value that the object holds
- */
-jsx.ValueCollection = function(o, val) {
- jsx.Collection.call(o);
- this.value = val;
-};
-jsx.ValueCollection.extend(jsx.Collection);
-
-/**
- * Creates and initializes a <code>CollectionItem</code> object.
- *
- * @param val
- * Value of the item
- */
-jsx.CollectionItem = function(val) {
- this.value = val;
-};
-
-/**
- * Creates an initializes an <code>Iterator</code> object.
- * An iterator iterates over a {@link Collection} such that
- * each item of that collection is visited only once.
- *
- * @param o : Collection
- * Iteration target
- */
-jsx.Iterator = function(o) {
- /* properties */
- this.target = o;
- this.prevItem = -1;
- this.currItem = -1;
- this.nextItem = -1;
-};
-
-/* prototype methods */
-/**
- * Returns the item previously visited in the iteration.
- *
- * @return CollectionItem
- * The item previously visited in the iteration.
- */
-jsx.Iterator.prototype.prev = function () {
- var result;
- var t = this.target;
-
- if (t)
- {
- /* no need to search if already found by hasPrev() */
- if (this.prevItem > -1)
- {
- this.currItem = this.prevItem;
- result = t[this.currItem];
- }
- else if (typeof t.length != "undefined")
- {
- if (this.currItem < 1 || this.currItem > t.length - 1)
- {
- this.currItem = t.length;
- }
-
- this.nextItem = this.currItem;
-
- var i = this.currItem;
-
- /* start from next possible item */
- /* run through only one time */
- while (--i > -1 && typeof t[i] == "undefined")
- {
- ;
- }
-
- if (typeof t[i] != "undefined")
- {
- this.currItem = i;
- result = t[i];
- }
- }
- }
-
- this.prevItem = -1;
-
- return result;
-};
-
-/**
- * Returns the item that will next be visited in the iteration.
- *
- * @return CollectionItem
- * The item that will next be visited in the iteration.
- */
-jsx.Iterator.prototype.next = function () {
- var
- result,
- t = this.target;
-
- if (t)
- {
- /* no need to search if already found by hasNext() */
- if (this.nextItem > -1)
- {
- this.currItem = this.nextItem;
- result = t[this.currItem];
- }
- else if (typeof t.length != "undefined")
- {
- if (this.currItem < 0
- || this.currItem > t.length - 1)
- {
- this.currItem = -1;
- }
-
- this.prevItem = this.currItem;
-
- var i = this.currItem;
-
- /* start from next possible item */
- /* run through only one time */
- while (++i < t.length && typeof t[i] == "undefined")
- {
- ;
- }
-
- if (typeof t[i] != "undefined")
- {
- this.currItem = i;
- result = t[i];
- }
- else
- {
- this.currItem = -1;
- result = null;
- }
- }
- }
-
- this.nextItem = -1;
-
- return result;
-};
-
-/**
- * Returns <code>true</code> if there is a previous item
- * in the iteration, i.e. if the current item is not the
- * first item and the collection consists of more than
- * one item. Returns <code>false</code> otherwise.
- *
- * @return boolean
- * <code>true</code> if there is a previous item
- * in the iteration, <code>false</code> otherwise.
- */
-jsx.Iterator.prototype.hasPrev = function () {
- var result = false;
- this.prevItem = -1;
- var t = this.target;
-
- if (t)
- {
- if (this.currItem < 1
- || this.currItem > t.length - 1)
- {
- this.currItem = t.length;
- }
-
- /* start from next possible item */
- var i = this.currItem;
-
- /* run through only one time */
- while (--i > -1 && typeof t[i] == "undefined")
- {
- ;
- }
-
- if (typeof t[i] != "undefined")
- {
- this.prevItem = i;
- result = true;
- }
- }
-
- return result;
-};
-
-/**
- * Returns <code>true</code> if there is a next item
- * in the iteration, i.e. if the current item is not the
- * last item and the collection consists of more than
- * one item. Returns <code>false</code> otherwise.
- *
- * @return boolean
- * <code>true</code> if there is a next item
- * in the iteration, <code>false</code> otherwise.
- */
-jsx.Iterator.prototype.hasNext = function () {
- var result = false;
- this.nextItem = -1;
- var t = this.target;
-
- if (t)
- {
- if (this.currItem < 0
- || this.currItem > t.length - 1)
- {
- this.currItem = -1;
- }
-
- /* start from next possible item */
- var i = this.currItem;
-
- /* run through only one time */
- while (++i < t.length && typeof t[i] == "undefined")
- {
- ;
- }
-
- if (typeof t[i] != "undefined")
- {
- this.nextItem = i;
- result = true;
- }
- }
-
- return result;
-};
-
-/**
- * Removes the current item from the collection.
- *
- * @type mixed
- * @return the next item, <code>undefined</code> if there is none.
- */
-jsx.Iterator.prototype.remove = function () {
- var undef;
- delete this.target[this.currItem];
- if (this.hasNext())
- {
- return this.next();
- }
-
- return undef;
-};
\ No newline at end of file
Index: live/scripts.rimpfd
===================================================================
--- live/scripts.rimpfd (revision 509)
+++ live/scripts.rimpfd (nonexistent)
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<rimpfd>
- <destination path="/LCARS/scripts"/>
- <options createDirectoryStructure="false" createSelectedOnly="true" descriptionFilePath="/LCARS/scripts/scripts.rimpfd" overWriteExistingFiles="false" saveSettings="true"/>
- <source path="PE-Mobil.PointedEars.de:/home/mw3020/f001/scripts"/>
- <selectedElements>
- <file path="/home/mw3020/f001/scripts/style.css"/>
- </selectedElements>
-</rimpfd>
Index: live/COPYING
===================================================================
--- live/COPYING (revision 509)
+++ live/COPYING (nonexistent)
@@ -1,674 +0,0 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- <program> Copyright (C) <year> <name of author>
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
\ No newline at end of file
Index: live/.htaccess
===================================================================
--- live/.htaccess (revision 509)
+++ live/.htaccess (nonexistent)
@@ -1,73 +0,0 @@
-RedirectMatch permanent ^(/scripts)/((events|scope)\.html?.*) $1/test/$2
-RedirectMatch permanent ^/(JSDoc|jsdoc)(.*) /scripts/JSdoc$2
-RedirectMatch permanent ^(/scripts)/js-version-info(\.php)?(.*) $1/test/es-matrix/?redir$3
-RedirectMatch permanent ^(/scripts)/((dom|es)-matrix.*) $1/test/$2
-RedirectMatch permanent ^/scripts/websvn /websvn/listing.php?repname=JSX\&path=/trunk/
-
-Options +Indexes
-AddDescription "Automatic cache control and gzipping, by Mark Nottingham; see also <a href='http://www.mnot.net/cgi_buffer/'>http://www.mnot.net/cgi_buffer/</a>" cgi_buffer
-AddDescription "Old versions" _*
-AddDescription "ECMAScript Support Matrix" es-matrix
-AddDescription "LCARS Extensions: \"ACCESSING...\"" accessng.js
-AddDescription "When we saved the Internet" anti-SOPA.js
-AddDescription "JSX: Array library" array.js
-AddDescription "LCARS Extensions: PageBack" back.js
-AddDescription "back.js Documentation" back.txt
-AddDescription "PointedEars' Resource Builder (see <a href='websvn/'>websvn</a> for more)" builder.php
-AddDescription "JSX: Collection library" collection.js
-AddDescription "JSX: CSS colors library" color.js
-AddDescription "JSX: Compatibility layer" compat.js
-AddDescription "JavaScript cookie data access prototype (legacy code)" cookie.js
-AddDescription "cookie.js Documentation" cookie.txt
-AddDescription "JavaScript ClosePage Support" close.js
-AddDescription "JSX: DOM Events library" events.js
-AddDescription "Creates documentation markup from JSdoc&trade; comments within JavaScript&trade; source code" JSdoc
-AddDescription "JSdoc note template" jsdoc-note.js
-AddDescription "JavaScript routines and objects to create temporary documents" document.js
-AddDescription "JSX live documentation (experimental)" doc
-AddDescription "JSX: DOM base library (see <a href='dom'>dom</a> package for more)" dom.js
-AddDescription "JSX: DOM package" dom
-AddDescription "JavaScript Routines and Objects to Create Temporary Documents" document.js
-AddDescription "enhanced.js Documentation" enhanced.htm
-AddDescription "JSX: Level-1 Enhanced Website Features" enhanced.js
-AddDescription "enhancd2.js Documentation" enhancd2.htm
-AddDescription "JSX: Level-2 Enhanced Website Features (legacy code, depends on enhanced.js)" enhancd2.js
-AddDescription "JavaScript FAQs that I maintain(ed)" faq
-AddDescription "JSX: Forms library" forms.js
-AddDescription "JSX: Global Object support library" global.js
-AddDescription "JSX: HTTP library" http.js
-AddDescription "LCARS Extensions" LCARS.js
-AddDescription "JSX: Thread-unsafe map implementations" map.js
-AddDescription "JSX: Base math library, see <a href='math/'>math</a> package for more)" math.js
-AddDescription "JSX: Math package" math
-AddDescription "JSX: Base object library (old version)" object-old.js
-AddDescription "JSX: Base object library" object.js
-AddDescription "JSX: Object Package" object
-AddDescription "Support for outline-styled structure using Dynamic HTML statements (legacy code)" outline.js
-AddDescription "CommonJS Promises/A implementation (stub)" parallel.js
-AddDescription "PHPX: MVC-based application framework and libraries" php
-AddDescription "JSX: Pythonic functions for ECMAScript implementations" python.js
-AddDescription "JSX: Regular Expressions (RegExp) support library" regexp.js
-AddDescription "search.js Documentation" search.htm
-AddDescription "JSX: Search-string library" search.js
-AddDescription "Comparison of (s)printf conversion support across programming languages" sprintf.txt
-AddDescription "JSX: DOM Storage library" storage.js
-AddDescription "JSX: String library" string.js
-AddDescription "JSX: String Package" string
-AddDescription "Old global documentation stylesheet" style-old.css
-AddDescription "Global documentation stylesheet" style.css
-AddDescription "JSX: Time prototypes and functions" time.js
-AddDescription "time.js Documentation" time.txt
-AddDescription "JSX: Timeout library" timeout.js
-AddDescription "JSX: Test cases and development package" test
-AddDescription "JSX: Type methods library" types.js
-AddDescription "JSX: Unicode character properties support library for <a href='regexp.js'>regexp.js</a>" UnicodeData.js
-AddDescription "JSX: Plain-text version of the Unicode Character Database for <a href='regexp.js'>regexp.js</a>" UnicodeData.txt
-AddDescription "Subversion repository browser" websvn
-AddDescription "JSX: Widgets library" widgets.js
-AddDescription "JSX: Legacy widgets library" widgets2.js
-AddDescription "JSX: Window function library" window.js
-AddDescription "JSX: DOM XPath library" xpath.js
-AddDescription "JSX: DOM CSS library (see <a href='css/'>css</a> package for more)" css.js
-AddDescription "JSX: DOM CSS package" css
-
Index: live/back.js
===================================================================
--- live/back.js (revision 509)
+++ live/back.js (nonexistent)
@@ -1,13 +0,0 @@
-// The following tag is for display in advanced filelists only:
-// <TITLE>JavaScript PageBack Support</title>
-//
-// Refer back.txt file for general documentation.
-
-if (document.all)
-{
- document.write('<span class="symbol">3</span>');
-}
-else
-{
- document.write('&nbsp;');
-}
Index: live/builder.php
===================================================================
--- live/builder.php (revision 509)
+++ live/builder.php (nonexistent)
@@ -1,593 +0,0 @@
-<?php
-/**
- * Builds a resource from several other ones.
- *
- * @version $Id$
- * @author
- * Copyright © 2011 Thomas 'PointedEars' Lahn &lt;php@PointedEars.de&gt;
- *
- * Part of PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (!function_exists('lcfirst'))
-{
- function lcfirst ($name)
- {
- return strtolower(substr($name, 0, 1)) . substr($name, 1);
- }
-}
-
-/**
- * Builds a resource from several other ones.
- *
- * Information is passed via <code>$_GET</code>. Supports PHP-generated
- * resources; references to globals in resource SHOULD be avoided, but
- * MUST be declared if used.
- *
- * @author
- * Copyright © 2011 Thomas 'PointedEars' Lahn &lt;php@PointedEars.de&gt;
- * @license http://www.gnu.org/licenses/gpl.html
- * GNU General Public License, version 3 and later
- * @property-read string $version
- * Class version
- * @property string $prefix
- * Common path prefix for all resources
- * @property array $sources
- * Sources to be processed in order
- * @property string $contentType
- * Content-type to be used
- * @property-read array $typeMap
- * Maps MIME media types to file extensions
- * @property boolean $debug
- * If <code>true</code>, preserve original file content
- * @property boolean $verbose
- * If <code>true</code>, produce verbose messages
- * @property-read int $commentCount
- * Number of comments processed so far
- */
-class ResourceBuilder
-{
- const SCRIPT_CONTENT_TYPE = 'text/javascript';
-
- /**
- * Class version
- * @var string
- */
- protected $_version = '0.4.5';
-
- /**
- * Common path prefix for all resources
- * @var string
- */
- protected $_prefix = '';
-
- /**
- * Common path suffix for all resources.
- * Determined from <var>$_contentType</var> if <code>null</code>.
- * @var string
- */
- protected $_suffix = null;
-
- /**
- * Sources to be processed in order
- * @var array
- */
- protected $_sources = array();
-
- /**
- * Content-type to be used
- * @var string
- */
- protected $_contentType = self::SCRIPT_CONTENT_TYPE;
-
- /**
- * @property-read array $typeMap
- * Maps MIME media types to file extensions
- */
- protected $_typeMap = array(
- 'text/javascript' => 'js',
- 'text/css' => 'css',
- );
-
- /**
- * If <code>true</code>, preserve original file content
- * @var boolean
- */
- protected $_debug = false;
-
- /**
- * If <code>true</code>, produce verbose messages
- * @var boolean
- */
- protected $_verbose = false;
-
- /**
- * If <code>true</code> or <code>false</code>, forces or forbids
- * the use of gzip. The default is <code>false</code> which
- * gzips only if gzip=1 is specified and the client supports it.
- *
- * @var boolean
- */
- protected $_force_gzip = false;
-
- /**
- * Number of comments processed so far
- * @var int
- */
- protected $_commentCount = 0;
-
- protected $_jsxDeps = array(
- 'collection' => array('object'),
- 'dom' => array('object'),
- 'dom/css' => array('dom'),
- 'dom/css/color' => array('dom/css'),
- 'dom/events' => array('dom'),
- 'dom/xpath' => array('object'),
- 'http' => array('object'),
- 'test/debug' => array('object', 'types', 'array'),
- 'types' => array('object'),
- );
-
- /**
- * If <code>true</code>, resolve JSX dependencies statically
- * (EXPERIMENTAL)
- * @var boolean
- */
- protected $_resolve = false;
-
- public function __construct ()
- {
- if (isset($_GET['src']))
- {
- $params = array(
- 'prefix',
- 'suffix',
- 'sources' => 'src',
- 'contentType' => 'type',
- 'debug',
- 'verbose',
- 'force_gzip' => 'gzip',
- 'resolve'
- );
-
- foreach ($params as $property => $param)
- {
- if (isset($_GET[$param]))
- {
- $value = $_GET[$param];
-
- if (is_int($property))
- {
- $property = $param;
- }
-
- $this->$property = $value;
- }
- }
-
- $this->commentCount = 0;
- }
- }
-
- /**
- * Universal getter
- *
- * @param string $name Property name
- * @return mixed Property value
- * @throws DomainException if no specific getter or such a property exists
- */
- public function __get ($name)
- {
- $getter = 'get' . ucfirst($name);
- $property = '_' . lcfirst($name);
-
- if (method_exists($this, $getter))
- {
- return $this->$getter();
- }
-
- if (property_exists($this, $property))
- {
- return $this->$property;
- }
-
- $exceptionClass = 'DomainException';
- $message = "No method '$getter' or property '$property' on this object";
-
- if (function_exists($exceptionClass))
- {
- throw new $exceptionClass($message);
- }
-
- throw new Exception($message);
- }
-
- /**
- * Universal setter
- *
- * @param string $name
- * @param mixed $value
- * @throws DomainException if no specific setter or such a property exists
- */
- public function __set ($name, $value)
- {
- $setter = 'set' . ucfirst($name);
- $property = '_' . lcfirst($name);
-
- if (method_exists($this, $setter))
- {
- return $this->$setter($value);
- }
-
- if (property_exists($this, $property))
- {
- $this->$property = $value;
- }
- else
- {
- $exceptionClass = 'DomainException';
- $message = "No method '$setter' or property '$property' on this object";
-
- if (function_exists($exceptionClass))
- {
- throw new $exceptionClass($message);
- }
-
- throw new Exception($message);
- }
- }
-
- /**
- * Sets the _sources property
- *
- * @param string|array $value Sources to process
- */
- protected function setSources ($value)
- {
- if (!is_array($value))
- {
- $value = explode(',', $value);
- }
-
- $this->_sources = $value;
- }
-
- /**
- * Sets the _contentType property
- *
- * @param string $value
- */
- protected function setContentType ($value)
- {
- $this->_contentType = ($value ? $value : 'text/javascript');
- }
-
- /**
- * Sets the _debug property
- *
- * @param string $value
- */
- protected function setDebug ($value)
- {
- if ($value != 0)
- {
- $this->_debug = true;
- }
- }
-
- /**
- * Sets the _verbose property
- *
- * @param string $value
- */
- protected function setVerbose ($value)
- {
- if ($value != 0)
- {
- $this->_verbose = true;
- }
- }
-
- /**
- * Sets the <code>_force_gzip</code> property
- *
- * @param mixed $value
- */
- protected function setForce_gzip($value)
- {
- $this->_force_gzip = ($value !== null) ? !!$value : $value;
- }
-
- /**
- * Sets the <code>_resolve</code> property
- *
- * @param mixed $value
- */
- protected function setResolve ($value)
- {
- if ($value != 0)
- {
- $this->_resolve = true;
- }
- }
-
- /**
- * @param array $match
- * Comment to work on
- * @return string
- * Original comment or the empty string
- */
- protected function commentReplacer ($match)
- {
- ++$this->_commentCount;
-
- if ($this->_commentCount > 1)
- {
- return '';
- }
-
- return $match[0];
- }
-
- /**
- * Returns the passed string with all single-line
- * comments, leading and trailing whitespace removed
- *
- * @param string $s Source code to process
- * @return string Processed source code
- * @todo Do not strip from within literals
- */
- protected function uncomment ($s)
- {
- return preg_replace('#^[\\t ]*//.*(?:\\r?\\n|\\r)*#m', '',
- preg_replace('/^\\s+|\\s+$/', '',
-// preg_replace(
-// '#/[\\t ]*\\*.*?\\*/[\\t ]*(?:\\r?\\n|\\n)*#s', '',
- $s
-// )
- )
- );
- }
-
- /**
- * Returns the passed string with all JSdoc comments but the first one removed
- *
- * @param string $s Source code to process
- * @return string Processed source code
- * @todo Do not strip from within literals
- */
- protected function stripJSdoc ($s)
- {
- $s = preg_replace_callback(
- '#[\\t ]*/\\*\\*(?:[^*]|\\*[^/])*\\*/(?:\\r?\\n|\\r)?#',
- array('self', 'commentReplacer'),
- $s);
-
- return $s;
- }
-
- /**
- * Resolves JSX dependencies from static information
- * @todo Use dynamic inline information
- *
- * @param array $sources
- * List of required resources
- * @param array $new_sources [optional $name => $name]
- * Associative array used internally to build the list
- * of sources with their dependencies
- * @return array
- * List of sources with their dependencies resolved
- */
- protected function resolveDeps (array $sources, array &$new_sources = array())
- {
- $deps = $this->jsxDeps;
-
- foreach ($sources as $name)
- {
- if (!array_key_exists($name, $new_sources)
- && array_key_exists($name, $deps))
- {
- $this->resolveDeps($deps[$name], $new_sources);
- }
-
- $new_sources[$name] = $name;
- }
-
- return $new_sources;
- }
-
- public function output ()
- {
- $contentType = $this->contentType;
-
- header('Content-Type: ' . $contentType);
-
- header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
-
- /* Cached resource expires in HTTP/1.1 caches 24h after last retrieval */
- header('Cache-Control: max-age=86400, s-maxage=86400, must-revalidate, proxy-revalidate');
-
- /* Cached resource expires in HTTP/1.0 caches 24h after last retrieval */
- header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 86400) . ' GMT');
-
- $use_gzip = false;
- if (isset($_SERVER['HTTP_ACCEPT_ENCODING'])
- && preg_match('/\b((?:x-)?gzip)\s*,?/', $_SERVER['HTTP_ACCEPT_ENCODING'], $matches)
- && function_exists('gzencode'))
- {
- $force_gzip = $this->force_gzip;
- $use_gzip = ($force_gzip !== false);
- if ($use_gzip)
- {
- header("Content-Encoding: {$matches[1]}");
- header('Vary: Accept-Encoding');
- }
- }
-
- $prefix = $this->prefix;
-
- if ($contentType === self::SCRIPT_CONTENT_TYPE
- && $this->resolve)
- {
- $this->sources = $this->resolveDeps($this->sources);
- }
-
- $suffix = $this->suffix;
- $out = "/*\n"
- . " * Compacted with PointedEars' ResourceBuilder {$this->version}\n"
- . ($this->verbose
- ? " * Type: {$contentType}\n"
- . " * Common Prefix: " . ($prefix ? $prefix : '<none>') . "\n"
- . " * Common Suffix: " . $suffix . "\n"
- . " * Resources: " . implode(', ', $this->sources) . "\n"
- : '')
- . " *\n"
- . " * Please see the original files for the complete source code.\n"
- . " */\n\n";
-
- if (!$use_gzip)
- {
- echo $out;
- }
-
- $verbose = $this->verbose;
-
- /* Compute sizes only when needed */
- if ($verbose)
- {
- $totalSize = 0;
- $totalCompactedSize = 0;
- }
-
- foreach ($this->sources as $index => $source)
- {
- $this->commentCount = 0;
-
- if ($index > 0)
- {
- if ($use_gzip)
- {
- $out .= "\n\n";
- }
- else
- {
- echo "\n\n";
- }
- }
-
- $file = $prefix . $source
- . ($suffix !== null
- ? $suffix
- : (array_key_exists($contentType, $this->typeMap)
- ? '.' . $this->typeMap[$contentType]
- : ''));
-
- /* Minimum negotiation for dynamic content */
- if (!file_exists($file) && file_exists($file . '.php'))
- {
- $file .= '.php';
- }
-
- /*
- * NOTE: No file_get_contents(), so that PHP in resource gets parsed.
- * See globals caveat in class's PHPdoc.
- */
- ob_start();
- require_once $file;
-
- if ($verbose)
- {
- $originalSize = ob_get_length();
- }
-
- $content = ob_get_contents();
- ob_end_clean();
-
- if ($verbose)
- {
- $totalSize += $originalSize;
- $originalSizeFormatted = number_format($originalSize, 0, '.', "'");
- }
-
- if (!$this->debug)
- {
- $content = $this->uncomment($content);
- $content = $this->stripJSdoc($content);
- }
-
- if ($verbose)
- {
- $compactedSize = strlen($content);
- $totalCompactedSize += $compactedSize;
- $compactedSizeFormatted = number_format($compactedSize, 0, '.', "'");
- $ratioPercentage = $compactedSize / $originalSize * 100;
- $ratioFormatted = sprintf('%.1f %%', $ratioPercentage);
- }
-
- $content =
- implode("\n", array(
- '/*',
- " * {$file}"
- . ($verbose
- ? ": {$originalSizeFormatted} bytes reduced to {$compactedSizeFormatted} bytes"
- . " ({$ratioFormatted})"
- : ""),
- " */\n"
- ))
- . $content;
-
- if ($use_gzip)
- {
- $out .= $content;
- }
- else
- {
- echo $content;
- }
- }
-
- if ($verbose)
- {
- $totalSizeFormatted = number_format($totalSize, 0, '.', "'");
- $totalCompactedSizeFormatted = number_format($totalCompactedSize, 0, '.', "'");
- $ratioPercentage = $totalCompactedSize / $totalSize * 100;
- $ratioFormatted = sprintf('%.1f %%', $ratioPercentage);
-
- $summary = "\n\n/*"
- . " Total of {$totalSizeFormatted} bytes reduced to {$totalCompactedSizeFormatted} bytes"
- . " ({$ratioFormatted}). */";
-
- if ($use_gzip)
- {
- $out .= $summary;
- }
- else
- {
- echo $summary;
- }
- }
-
- if ($use_gzip)
- {
- $zipped = gzencode($out);
- //header('Content-Length: ' . strlen($zipped));
- echo $zipped;
- }
- }
-}
-
-$builder = new ResourceBuilder();
-$builder->output();
/live/builder.php
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: live/top.js
===================================================================
--- live/top.js (revision 509)
+++ live/top.js (nonexistent)
@@ -1,9 +0,0 @@
-// The following tag is for display in advanced filelists only:
-// <TITLE>JavaScript TopOfPage Support</title>
-//
-// Refer top.txt for general documentation.
-
-if (document.all && !window.opera)
- document.write('<span class="symbol">5</span>');
-else
- document.write("&nbsp;");
Index: live/types.js
===================================================================
--- live/types.js (revision 509)
+++ live/types.js (nonexistent)
@@ -1,289 +0,0 @@
-/**
- * <title>Type Function Library</title>
- *
- * @file types.js
- * @requires object.js
- * @author
- * (C) 2001-2009, 2013 Thomas Lahn &lt;types.js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- var jsx = {
- options: {
- emulate: true
- }
- };
-}
-
-jsx.types = {
- version: "1.29.8.2009070702",
- copyright: "Copyright \xA9 1999-2009",
- author: "Thomas Lahn",
- email: "types.js@PointedEars.de",
- path: "http://pointedears.de/scripts/"
-};
-
-jsx.types.URI = jsx.types.path + "types.js";
-// var typesDocURL = typesPath + "types.htm"
-
-/* allows for de.pointedears.jsx.types */
-if (typeof de == "undefined")
-{
- var de = {};
-}
-
-if (typeof de.pointedears == "undefined")
-{
- de.pointedears = {};
-}
-
-if (typeof de.pointedears.jsx == "undefined")
-{
- de.pointedears.jsx = jsx;
-}
-
-/**
- * @param {string} sMsg (optional)
- * @return {boolean} false
- */
-var TypesException = jsx.types.TypesException = function (sMsg) {
- window.alert(
- "types.js "
- + types.version
- + "\n"
- + types.copyright
- + " "
- + types.author
- + " <"
- + types.email
- + ">\n\n"
- + sMsg);
- return false;
-};
-
-/**
- * Returns <code>true</code> if a property is defined and its value
- * is different from <code>undefined</code>, <code>false</code> otherwise.
- *
- * @param {Object} o (optional)
- * Base object; the default is the calling object.
- * @param {String} p
- * Property name; required.
- * @return {boolean}
- */
-var isDefined = jsx.types.isDefined = function (o, p) {
- if (!p)
- {
- p = o;
- o = this;
- }
-
- return (typeof o[p] != "undefined");
-};
-
-/**
- * Returns <code>true</code> if a property is undefined or
- * its value is `undefined', <code>false</code> otherwise.
- *
- * @param {Object} o (optional)
- * Base object; the default is the calling object.
- * @param {String} p
- * Property name; required.
- * @return {boolean}
- */
-var isUndefined = jsx.types.isUndefined = function (o, p) {
- if (!p)
- {
- p = o;
- o = this;
- }
-
- return (typeof o[p] == "undefined");
-};
-
-/* Moved to object.js */
-jsx.types.isInstanceOf = jsx.object.isInstanceOf;
-
-/**
- * Determines whether an object is an array
- *
- * @author
- * (C) 2003, 2009, 2011 Thomas Lahn &lt;object.js@PointedEars.de&gt;
- * @partof http://pointedears.de/scripts/object.js
- * @requires jsx.object#isInstanceOf
- * @param {Object} a
- * Expression to be determined an array.
- * @return {boolean}
- * <code>true</code> if <code>a</code> is an object
- * derived from Array, <code>false</code> otherwise.
- * Returns also <code>false</code> if the language
- * version does not support Array objects (JavaScript
- * before 1.1).
- * @todo
- */
-var isArray = jsx.types.isArray = function (a) {
- return jsx.object.isInstanceOf(a, typeof Array != "undefined" ? Array : null);
-};
-
-/**
- * @author
- * (C) 2003 Thomas Lahn &lt;types.js@PointedEars.de&gt;
- * @param {Object} o
- * to be determined iterable, i.e. to be determined
- * whether it provides the <code>length</code> property and
- * has at least the <code>0</code> (zero) property. This
- * applies for non-empty <code>Array</code> objects with
- * at least a first non-undefined element as well as, e.g.,
- * for DOM objects implementing one of the
- * <code>HTMLCollection</code> or
- * <code>HTMLOptionsCollection</code> interfaces defined in
- * the W3C DOM Level 2 Specification.
- * @return {boolean}
- * <code>true</code> if <code>o</code> is an iterable object,
- * <code>false</code> otherwise.
- */
-var isIterable = jsx.types.isIterable = function (o) {
- return !!(
- o
- && typeof o.length != "undefined"
- && typeof o[0] != "undefined");
-};
-
-/**
- * Converts a string using bracket property accessor syntax
- * to one that uses dot property accessor syntax.
- *
- * @param {string} s
- * String of the form "root['branch']['leaf']['...']..." or
- * "root[branch][leaf][...]..." to be converted. Required.
- * @return {string}
- * A string of the form `root.branch.leaf...' converted from
- * <var>s</var>.
- */
-var bracketsToDots = jsx.bracketsToDots = function (s) {
- /* FIXME: What about non-identifier names? */
- return s.replace(/\[['"]?/g, '.').replace(/['"]?\]/g, '');
-};
-
-/**
- * Converts a string using dot property accessor syntax
- * to one that uses bracket property accessor syntax.
- *
- * @param {string} s
- * of the form `root.branch.leaf' to be converted.
- * Required.
- * @param {boolean} bStringsOnly = false
- * Specifies if all parts of the tree should be converted
- * or not. Optional.
- * If not provided or <code>false</code>, all parts are
- * converted. If <code>true</code>, only parts are converted
- * that are required to (because JavaScript identifiers as
- * required by dot notation must start with a character in
- * <code>[A-Za-z_$]</code>, while parameters of bracket
- * notation may be in any format.)
- * @return {string}
- * A string of the form "root['branch']['leaf']" converted
- * from <var>s</var>.
- */
-var dotsToBrackets = jsx.dotsToBrackets = function (s, bStringsOnly) {
- var a = s.split(".");
-
- s = [a[0]];
-
- for (var i = 1, len = a.length; i < len; i++)
- {
- var propName = a[i];
-
- if (bStringsOnly && /^[a-z_$]/i.test(propName))
- {
- s.push(".", propName);
- }
- else
- {
- s.push("['", propName.replace(/'/g, "\\$&"), "']");
- }
- }
-
- return s.join("");
-};
-
-/*
- * 1.29.7.2008052911: isMethod() moved to object.js for _hasOwnProperty();
- * dependencies should ensure backwards-compatibility
- */
-
-/**
- * Determines whether a feature is available.
- *
- * @author
- * (C) 2008 Thomas Lahn &lt;types.js@PointedEars.de&gt;
- * @param {Object} o
- * Base object
- * @params {string}
- * Name(s) of the property/properties that are required for
- * the feature. For example, passing "foo" and "bar"
- * determines whether o["foo"]["bar"] is an available feature.
- * @return {boolean}
- * The feature's value if the arguments refer to a feature,
- * <code>false</code> otherwise. Note that if a feature
- * has <code>boolean</code> documented as its type, you
- * should therefore not use this method to determine its
- * availability.
- *
- * Also, if a reference leading to the feature resolves to
- * a value for that the result of the <code>typeof</code>
- * operation is <code>"unknown"</code>, testing of further
- * arguments will stop and <code>true</code> will be returned
- * because <code>"unknown"</code> indicates a host object's
- * method in MSHTML and access to the property value causes
- * a runtime exception; therefore, in this case you can use
- * the return value of this method only as an indicator that
- * there is such a method.
- */
-var isFeature = jsx.types.isFeature = function (o) {
- if (typeof o != "undefined" && o)
- {
- var
- rxUnknown = /^\s*unknown\s*$/i,
- rxUndefined = /^\s*undefined\s*$/i;
-
- for (var i = 1, len = arguments.length; i < len; i++)
- {
- var arg = arguments[i];
-
- var t = typeof o[arg], isUnknown;
- if ((isUnknown = rxUnknown.test(t))
- || !rxUndefined.test(t) && o[arg])
- {
- o = o[arg];
- if (isUnknown)
- {
- break;
- }
- }
- else
- {
- o = null;
- break;
- }
- }
- }
-
- return o;
-};
\ No newline at end of file
Index: live/lcars.js
===================================================================
--- live/lcars.js (revision 509)
+++ live/lcars.js (nonexistent)
@@ -1,550 +0,0 @@
-if (!this.dhtml)
-{
- var dhtml = new Object();
- dhtml.supported = false;
- dhtml.visibility = function() {};
-}
-
-function accessing()
-{
- if (dhtml.supported)
- {
- document.write(
- '<div class="standby" id="div_status">ACCESSING FILE <span id="dots"'
- + '>&nbsp;<\/span><\/div>');
- }
-}
-
-
-function loadIdx()
-{
- if (dhtml.supported)
- {
- document.write(
- '<div class="standby" style="visibility: none;" id="div_status"'
- + '>LOADING INDEX <span id="dots">&nbsp;</span></div>');
- }
-}
-
-function animDots()
-{
- var dotString = "";
-
- for (var i = 0; i < animDots.dotCounter; i++)
- {
- dotString += ". ";
- }
-
- if (dhtml.setCont)
- {
- dhtml.setCont("id", "dots", null, dotString);
- }
-
- if (dotCounter == 3)
- {
- animDots.dotCounter = 0;
- }
- else
- {
- animDots.dotCounter++;
- }
-}
-animDots.dotCounter = 0;
-
-// disable both "dot" methods until reusing the "status" element works
-/*
-function dots()
-{
- if (dhtml.supported && dhtml.visibility)
- {
- dots.divContent = getElem("id", "div_content");
- dots.divStatus = getElem("id", "div_status"), f;
- if (dots.divContent && dots.divStatus)
- {
- dhtml.visibility(dots.divContent, false);
-
- if (typeof divStatus.left != "undefined")
- {
- dots.divStatus.left = document.body.offsetWidth;
- }
-
- dhtml.visibility(divStatus, true);
- }
- else if ((dots.f = parent.frames['ufpdb_banner']))
- {
- dots.f.spanStatus.className = "standby";
- dhtml.setTextContent(dots.f.spanStatus, "ACCESSING FILE");
- }
- }
-
- if (dhtml.supported && dots.divContent && dots.divStatus)
- {
- dots.anim = window.setInterval("animDots();", 1000);
- }
-}
-
-function undots()
-{
- if (dhtml.supported)
- {
- window.clearInterval(dots.anim);
- if (dots.divContent && dots.divStatus)
- {
- dots.divStatus.style.visibility = "hidden";
- dots.divContent.style.visibility = "visible";
- }
- else
- {
- dots.f.spanStatus.className = "";
- dhtml.setTextContent(f.spanStatus, "DATABASE");
- }
- }
-}
-*/
-function dots() {}
-function undots() {}
-
-function getOffsets(a)
-{
- var offset = 0;
-
- for (var i = 0, len = a.length; i < len; i++)
- {
- offset += a[i];
- a[i] = offset;
- }
-
- return a;
-}
-
-function blendWords(o, bBlendIn, iDelay)
-{
- if (!iDelay)
- {
- iDelay = 1000;
- }
-
- if (o)
- {
- var sCont = getCont(o);
- if (sCont)
- {
- // blendWords.targets.push({target: o, timeouts: []});
- // var id = blendWords.targets.length - 1;
-
- var aWords = sCont.split(/\s+/), i, len;
-
- for (i = aWords.length; i--;)
- {
- aWords[i] = {
- value: aWords[i],
- delay: iDelay * Math.floor(aWords[i].length / sCont.length)
- };
- }
-
- if (bBlendIn)
- {
- var t = function()
- {
- window.clearTimeout(
- //blendWords.targets[id].timeouts[i]
- t);
- setTextContent(
- // blendWords.targets[id].target,
- o,
- // getTextContent(blendWords.targets[id].target)
- getTextContent(o)
- + ' '
- + aWords[i].value);
- };
-
- t.toString = function() {
- return 't();';
- };
-
- // var _setTimeout = function(f, delay, args)
- // {
- // f.apply(this, args);
- // };
-
- for (i = 0, len = aWords.length; i < len; i++)
- {
- // blendWords.targets[id].timeouts[i] =
- var t2 = window.setTimeout(t, aWords[i].delay);
- }
- }
- else
- {
- //
- }
- }
- }
-}
-/**
- * @property : number = Internal ID of accessed object
- */
-blendWords.targets = new Array();
-
-/* LCARS widget prototypes */
-
-function LCARSWidget(x, y)
-{
- this.moveTo(x, y);
- this.elem = dhtml.createElement('div');
-}
-
-LCARSWidget.prototype = {
- constructor: LCARSWidget,
-
- moveTo: function(x, y) {
- this.x = x;
- this.y = y;
- if (dhtml.getStyle(this.obj, "display") == 'visible'){this.repaint();}
- }
-};
-
-/**
- * Creates a new LCARS Timer widget.
- *
- * Takes up to three arguments. The first two may define the
- * relative position of the corresponding block element in CSS
- * units of length, while the third one allows to initialize
- * the timer in milliseconds.
- *
- * @param {String} x [optional]
- * @param {String} y [optional]
- * @param {Number} nStart [optional]
- */
-function LCARSTimer(x, y, nStart)
-{
- LCARSWidget.call(this, x, y);
- this.reset();
-}
-
-LCARSTimer.prototype = {
- constructor: LCARSTimer,
-
- reset: function()
- {
- this.value = 0;
- }
-};
-
-if (jsx.object.getFeature(jsx, "dom", "widgets"))
-{
- /**
- * @type lcars
- * @memberOf __lcars
- * @namespace
- */
- var lcars = (/** @constructor */ function () {
- "use strict";
-
- return {
- /**
- * @type Content
- * @memberOf lcars
- * @extends jsx.dom.widgets.Container
- */
- Content: (function lcars_Content () {
- lcars_Content._super.apply(this, arguments);
- }).extend(jsx.dom.widgets.Container, {
- init: function () {
- this._target = document.getElementById("content");
- },
-
- /**
- * @param {String} title
- * @param {String} language
- */
- showMap: function (language) {
- var content = document.getElementById("content");
-
- var map = lcars._gmaps_map;
- if (!map)
- {
- /* Disable transition while map is loading */
- content.style.transition = "none";
- content.className = "fixed";
- this.setInnerHTML(
- // '<select><option>Google Maps</option><option>OpenStreetMap</option></select>'
- '<div id="map-canvas" style="position: absolute; width: 100%; height: 100%"></div>');
- this.update();
- }
-
- var script = this._gmaps_script;
- if (!script)
- {
- script = document.createElement("script");
- script.type = "text/javascript";
- script.src = "http://maps.googleapis.com/maps/api/js"
- + "?key=AIzaSyCpW3bu57j4V7_vcK_cVpvFkXMmKkKgADI"
- + "&sensor=true&callback=lcars.multiDisplay.initGMap"
- + "&language=" + language;
- document.body.appendChild(script);
- if (script.parentNode == document.body)
- {
- this._gmaps_script = script;
- }
- }
- else
- {
- lcars.multiDisplay.initGMap();
- }
- }
- }),
-
- /**
- * @type MultiDisplay
- * @extends jsx.dom.widgets.Container
- */
- MultiDisplay: (function lcars_MultiDisplay () {
- lcars_MultiDisplay._super.apply(this, arguments);
- }).extend(jsx.dom.widgets.Container, {
- TEXT_ACCURACY: "accuracy",
- TEXT_CURRENT_COORDS: "Your current coordinates on Terra",
- TEXT_NOT_AVAILABLE: "N/A",
-
- /**
- * @memberOf lcars.MultiDisplay
- * @type jsx.dom.widgets.Container
- * @protected
- */
- _title: null,
-
- /**
- * @type jsx.dom.widgets.Container
- * @protected
- */
- _content: null,
-
- init: function () {
- this._title = new jsx.dom.widgets.Container(document.getElementById("title"));
- this._analysis = new jsx.dom.widgets.Container(document.getElementById("analysis"));
- this._content = new lcars.Content();
- },
-
- setTexts: function (texts) {
- var keys = jsx.object.getKeys(texts);
- for (var i = 0, len = keys.length; i < len; ++i)
- {
- var key = keys[i];
- if (typeof this[key] == "string")
- {
- this[key] = texts[key];
- }
- }
- },
-
- /**
- * Sets the title of the multi-display
- *
- * @param {String} s
- * New title
- */
- setTitle: function (s) {
- this._title.setText(s);
- this._title.update();
- },
-
- setAnalysis: function (data) {
- var rows = [];
- for (var i = 0, len = data.length; i < 3; ++i)
- {
- var item = data[i];
- var cells = [
- {
- elementType: "th",
- childNodes: [item.title + ":"]
- },
- {
- elementType: "td",
- childNodes: [item.value]
- }
- ];
-
- var item2;
- if (len > 3 && (item2 = data[i + 3]))
- {
- cells.push({
- elementType: "th",
- childNodes: [item2.title + ":"]
- });
-
- cells.push({
- elementType: "td",
- childNodes: [item2.value]
- });
- }
-
- rows.push({
- elementType: "tr",
- childNodes: cells
- });
- }
-
- this._analysis.setInnerHTML([{
- elementType: "table",
- childNodes: rows
- }]);
-
- this._analysis.update();
- },
-
- geolocate: function (title, language) {
- this.setTitle(title);
-
- var me = this;
- navigator.geolocation.getCurrentPosition(function (position) {
- lcars.setPosition(position);
- var coords = position.coords;
- var altitudeAccuracy = coords.altitudeAccuracy;
- var _geolocation = jsx.dom.geolocation;
- _geolocation.setPosition(position);
- me.setAnalysis([
- {
- title: _geolocation.TEXT_LATITUDE,
- value: _geolocation.getLatitudeString()
- },
- {
- title: _geolocation.TEXT_LONGITUDE,
- value: _geolocation.getLongitudeString()
- },
- {
- title: _geolocation.TEXT_LAT_LNG_ACCURACY,
- value: _geolocation.getLatLngAccuracyString()
- },
- {
- title: _geolocation.TEXT_ALTITUDE,
- value: _geolocation.getAltitudeString()
- + (altitudeAccuracy != null
- ? " (" + _geolocation.getAltAccuracyString()
- + " " + this.TEXT_ACCURACY + ")"
- : "")
- },
- {
- title: _geolocation.TEXT_SPEED,
- value: _geolocation.getSpeedString()
- },
- {
- title: _geolocation.TEXT_HEADING,
- value: _geolocation.getHeadingString()
- }
- ]);
-
- me._content.showMap(language);
- me = null;
- });
-
- return false;
- },
-
- initGMap: function () {
- var coords = lcars.getPosition().coords;
- var center = new google.maps.LatLng(coords.latitude, coords.longitude);
-
- var zoom = 9;
- var zoomAccuracy = [
- 1e7, 5e6, 2e6, 2e6, 1e6, 5e5, 2e5, 1e5, 5e4,
- 2e4, 1e4, 5e3, 2000, 2000, 1000, 500, 200,
- 100, 50, 20
- ];
-
- var accuracy = coords.accuracy;
- if (!isNaN(accuracy))
- {
- for (var i = 0, len = zoomAccuracy.length; i < len; ++i)
- {
- if (accuracy > zoomAccuracy[i])
- {
- zoom = i;
- break;
- }
- }
- }
-
- var map = lcars._gmaps_map;
- if (!map)
- {
- var mapOptions = {
- center: center,
- zoom: zoom,
- mapTypeId: google.maps.MapTypeId.HYBRID,
- backgroundColor: "#000",
- noClear: true,
- scaleControl: true
- };
-
- map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
- lcars._gmaps_map = map;
- }
- else
- {
- map.setCenter(center);
- map.setZoom(zoom);
- }
-
- var circle = this._gmaps_circle;
- if (!circle)
- {
- if (!isNaN(coords.accuracy))
- {
- circle = new google.maps.Circle({
- map: map,
- center: center,
- radius: coords.accuracy,
- fillColor: "white",
- fillOpacity: 0.125,
- strokeColor: "white",
- strokeOpacity: 0.5
- });
-
- var me = this;
- circle.addListener("click", function () {
- // TODO
- window.alert(me.TEXT_CURRENT_COORDS + "\n\n"
- + jsx.dom.geolocation.getText(lcars.getPosition()));
- });
-
- this._gmaps_circle = circle;
- }
- }
- else
- {
- if (!isNaN(coords.accuracy))
- {
- circle.setCenter(center);
- circle.setRadius(coords.accuracy);
- }
- else
- {
- circle.setMap(null);
- }
- }
-
- /* Restore transition */
- this._content.resetStyleProperty("transition");
- }
- }),
-
- /**
- * @protected
- */
- _position: null,
-
- /**
- * @return {Position}
- */
- getPosition: function () {
- return this._position;
- },
-
- /**
- * @param {Position} position
- */
- setPosition: function (position) {
- this._position = position;
- }
- };
- }());
-}
\ No newline at end of file
Index: live/dom/audio.js
===================================================================
--- live/dom/audio.js (revision 509)
+++ live/dom/audio.js (nonexistent)
@@ -1,80 +0,0 @@
-function playSound(sSoundFile, Loop, sAttrib)
-{
- var b = document.body, o;
- if (b
- && jsx.object.isMethod(b, "appendChild")
- && (o = b.appendChild(jsx.dom.createElement("object"))))
- {
- o.data = sSoundFile;
-/*
- var p = dhtml.createElement("param");
- if (p)
- {
- p.name = "FileName";
- p.value = sSoundFile;
- o.appendChild(p);
- }
-
- p = dhtml.createElement("param");
- if (p)
- {
- p.name = "AutoPlay";
- p.value = "1";
- o.appendChild(p);
- }
-
- p = dhtml.createElement("param");
- if (p)
- {
- p.name = "EnableJavaScript";
- p.value = "true";
- o.appendChild(p);
- }
-*/
- var me = arguments.callee;
-
- if (typeof me.sounds == "undefined")
- {
- me.sounds = new Array();
- }
-
- me.sounds.push(o);
-
- if (typeof me.handlerAdded == "undefined")
- {
- jsx.dom.addEventListener(
- b,
- "unload",
- function() {
- for (var i = me.sounds && me.sounds.length; i--;)
- {
- b.removeChild(me.sounds[i]);
- }
-
- b = null;
- });
-
- me.handlerAdded = true;
- }
- }
-/*
- if (document.all)
- {
- var sAdjacent = "<bgsound ";
- if ((playSound.arguments.length == 3) && (sAttrib.length != ""))
- {
- sAdjacent += sAttrib;
- sAdjacent += " ";
- }
- sAdjacent += "src=\"";
- sAdjacent += sSoundFile;
- sAdjacent += "\" loop=\"";
- if (isNaN(Loop))
- sAdjacent += Loop;
- else
- sAdjacent += String(Loop);
- sAdjacent += "\">";
- document.all.tags("head")[0].insertAdjacentHTML("BeforeEnd", sAdjacent);
- }
-*/
-}
\ No newline at end of file
/live/dom/audio.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/dom/ani.bak.js
===================================================================
--- live/dom/ani.bak.js (revision 509)
+++ live/dom/ani.bak.js (nonexistent)
@@ -1,364 +0,0 @@
-/**
- * @author PointedEars
- * @depends dhtml.js
- */
-
-function InitializedObject() {}
-InitializedObject.prototype = {
- setParameters: function(oParams) {
- for (var p in oParams)
- {
- this[p] = oParams[p];
- }
- }
-};
-
-/**
- * This framework implements animation of objects as a set of one or more
- * {@link #Timeline}s, starting in parallel when the animation is played.
- * Each timeline is supposed to animate another target object (although
- * that is not required).
- *
- * @param aTarget
- * @param aTimelines
- * @returns {Animation}
- */
-var Animation = function(aTarget, aTimelines) {
- this.setTarget(aTarget);
- this.timelines = aTimelines;
-}.extend(InitializedObject, {
- setTarget: function(aTarget) {
- this.target =
- typeof aTarget == "string"
- ? dhtml.getElemById(aTarget)
- : aTarget;
- },
-
- play: function() {
- var
- types = {
- NUMBER: 0,
- LENGTH: 1,
- PERCENTAGE: 2,
- URI: 3,
- COUNTER: 4,
- COLOR: 5,
- STRING: 6
- },
-
- /*
- * TODO:
- * The `correspondsTo' property helps to identify the corresponding
- * property in order to determine the optimum animation frame length
- * (see below).
- */
- propertyInfo = {
- left: { type: types.LENGTH, correspondsTo: "top" },
- top: { type: types.LENGTH, correspondsTo: "left" },
- right: { type: types.LENGTH, correspondsTo: "bottom" },
- bottom: { type: types.LENGTH, correspondsTo: "right" },
- width: { type: types.LENGTH, correspondsTo: "height" },
- height: { type: types.LENGTH, correspondsTo: "width" },
- color: { type: types.COLOR },
- backgroundColor: { type: types.COLOR },
- "background-color": { type: types.COLOR }
- };
-
- function getCurrentStyle(oTarget, oStyle)
- {
- for (var p in oStyle)
- {
- if (typeof oStyle[p] != "undefined")
- {
- var oProperty = oStyle[p];
-
- oProperty.current =
- typeof oProperty.from != "undefined"
- ? oProperty.from
- : currentStyle(oTarget, p);
-
- if (typeof oProperty.unit == "undefined")
- {
- switch (propertyInfo[p].type)
- {
- case types.LENGTH:
- oProperty.unit = "px";
- }
- }
- }
- }
- }
-
- /* FIXME: Array change workaround */
- this.timeline = this.timelines[0];
-
- /*
- * 1. Determine the current style (position, color etc.) of the
- * target object
- */
- getCurrentStyle(this.target, this.timeline.style);
-
- var
- s = this.timeline.style,
- duration = this.timeline.duration,
- dt = 10,
- steps = Math.floor(duration / dt),
- timeout = [];
-
- /*
- * 2. For each set property, calculate the value difference for
- * each step
- */
- // var lengthProperties = new Object();
- for (var p in s)
- {
- /* TODO: Handle unsupported/untyped properties */
- switch (propertyInfo[p].type)
- {
- case types.LENGTH:
- // lengthProperties[p] = true;
-
- s[p].current = parseFloat(s[p].current) || 0;
-
- if (typeof s[p].by != "undefined")
- {
- s[p].to = (parseFloat(s[p].from) || 0)
- + (parseFloat(s[p].by) || 0);
- }
-
- s[p].difference =
- ((parseFloat(s[p].to) || 0) - s[p].current)
- / steps;
-
- /* DEBUG */
- // window.alert([dx, dy, dt]);
-
- break;
-
- case types.COLOR:
- s[p].current = new Color(s[p].current);
- var diffCol = s[p].difference = s[p].current.diff(new Color(s[p].to));
-
- for (var i in diffCol)
- {
- diffCol[i] /= steps;
- }
-
- break;
-
- default:
- }
-
- if (typeof s[p].from != "undefined")
- {
- dhtml.setStyleProperty(
- this.target,
- p,
- s[p].from
- + (typeof s[p].unit != "undefined"
- ? s[p].unit
- : ""));
- }
- }
-
- /*
- * TODO
- * 2b. For all properties of type `length' that are given in the
- * unit `px', calculate the optimum number of pixel-wise steps.
- */
-// if (dx < 1 || dy < 1)
-// {
-// if (dx < dy)
-// {
-// dx = 1;
-// steps = x_new - x;
-// dy = (y_new - y) / steps;
-// }
-// else
-// {
-// dy = 1;
-// steps = y_new - y;
-// dx = (x_new - x) / steps;
-// }
-//
-// dt = duration / steps;
-// }
-
- /* DEBUG */
- // window.alert([dx, dy, dt]);
-
- /*
- * 3. If there is a property to be set that requires positioning,
- * and no positioning mode was defined, set "relative"
- * FIXME: *Iff*, not always!
- */
- if (currentStyle(this.target).position == "static")
- {
- dhtml.setStyleProperty(this.target, "position", "relative");
- }
-
- /*
- * 4. Set the timeouts required for each property change in the
- * animation, thereby starting the animation after the last
- * loop.
- */
- for (var t = 0, i = steps; i--;)
- {
- for (var p in s)
- {
- /* TODO: Handle unsupported/untyped properties */
- switch (propertyInfo[p].type)
- {
- case types.LENGTH:
- s[p].current += s[p].difference;
- break;
-
- case types.COLOR:
- var curCol = s[p].current;
- /* TODO: Have a Color.prototype.inc() do the computation */
- s[p].current = curCol.inc(s[p].difference).toString();
- }
- }
-
- var f = (
- function(oTarget, oStyle, t)
- {
- var s2 = new Object();
- for (var p in oStyle)
- {
- s2[p] = oStyle[p].current;
- s2[p + "_unit"] = oStyle[p].unit;
- }
-
- return (
- function()
- {
- // DEBUG
- if (typeof console != "undefined")
- {
- console.log("t = " + t);
- }
-
- for (var p in oStyle)
- {
- // DEBUG
- if (typeof console != "undefined")
- {
- console.log("s2['" + p + "'] = " + s2[p]);
- }
-
- // TODO: units
- var unit = s2[p + "_unit"];
- dhtml.setStyleProperty(
- oTarget,
- p,
- s2[p] + (unit ? unit : ""));
- }
-
-// oTarget.style.left = x + "px";
-// oTarget.styl
-// e.top = y + "px";
- }
- );
- }
- )(this.target, s, t += dt);
-
- timeout[i] = window.setTimeout(f, t);
-
- f = null;
- }
-
- /* DEBUG */
-// window.setTimeout(
-// function() { window.alert(new Date() - dStart); },
-// t + dt);
- }
-});
-
-/**
- * A <code>Timeline</code> of an {@link Animation} consists of
- * {@link Keyframe}s or delays, property changes, and subordered timelines
- * ("child timelines"). Unless specified otherwise, the time offset of an
- * item in one timeline depends on the previous item in that timeline:
- *
- * <pre>
- * Animation ---.
- * Timeline 1: :--Action0------Action1------Action2-----Action3->
- * Timeline 2: `----------Action0------Action1-------Action2---->
- * </pre>
- *
- * An item can also be a <code>Timeline</code> ("child timeline"), in which
- * case the time offset of the child timeline depends on the previous action
- * in the parent timeline, however the time offset of the next action in the
- * parent is independent of the child. In that case, the child timeline
- * affects the same target object as its parent unless specified otherwise.
- *
- * <pre>
- * Animation ---.
- * Timeline 1: :---Action0------+----------Action1a------------->
- * Timeline 1a: | `---Action1a:0---Action1a:1----->
- * Timeline 2: `-------Action0------Action1-------Action2------->
- * </pre>
- *
- * There is no explicit limit as to how deep timelines may be nested.
- * However, for computing the frames of the animation each timeline's
- * render() method must call the render() method of its child timelines,
- * if it has any, so that its animation frames can be prepared, and the
- * timeline played. As a result, nesting depth is limited implicitly
- * by the available stack space or limits imposed by the ECMAScript
- * implementation, whichever comes first. Further, the more timelines
- * are nested, the more operations need be performed at approximately
- * the same time; this can slow down the entire animation considerably
- * and lead to considerably higher CPU load.
- *
- * @param {Object} oParams
- * Parameters of this timeline. Supported properties include:
- * <table>
- * <th>
- * </table>
- */
-function Timeline(oParams)
-{
- for (var p in oParams)
- {
- this[p] = oParams[p];
- }
-}
-
-Timeline.prototype = {
- constructor: Timeline,
-
- toString: function() {
- return serialize(this, {depth: -1});
- }
-};
-
-/**
- * A <code>KeyFrame</code> defines which properties an animated object
- * should have relative to the {@link Timeline} it is defined for. It is
- * used as a reference point to compute the frames of the animation between
- * it and other <code>Keyframe</code>s or {@link Pause}s.
- *
- * @param {Object} oParams
- *
- */
-function KeyFrame(oParams)
-{
- for (var p in oParams)
- {
- this[p] = oParams[p];
- }
-}
-
-/**
- * A <code>Pause</code> is a deliberate temporary stop of animation in a
- * {@link Timeline}. Whenever a <code>Pause</code> is inserted as an
- * item of a timeline, no tween will be computed between adjacent
- * {@link KeyFrame}s.
- *
- * @param {Object} oParams
- */
-function Pause(oParams)
-{
-
-}
\ No newline at end of file
Index: live/dom/geolocation.js
===================================================================
--- live/dom/geolocation.js (revision 509)
+++ live/dom/geolocation.js (nonexistent)
@@ -1,300 +0,0 @@
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-if (typeof jsx.dom == "undefined")
-{
- /**
- * @namespace
- */
- jsx.dom = {};
-}
-
-/**
- * @namespace
- * @type jsx.dom.geolocation
- */
-jsx.dom.geolocation = {
- /**
- * Character used to separate a number from a unit of length.
- *
- * The default is U+2009 THIN SPACE.
- */
- TEXT_THIN_SPACE: "\u2009",
-
- TEXT_LATITUDE: "Latitude",
-
- /**
- * Abbreviation used for latitudes at the equator or in the
- * Northern hemisphere
- */
- TEXT_NORTH_ABBR: "N",
-
- /**
- * Abbreviation used for latitudes in the Southern hemisphere.
- */
- TEXT_SOUTH_ABBR: "S",
-
- TEXT_LONGITUDE: "Longitude",
-
- /**
- * Abbreviation used for longitudes at or west of
- * the IERS Reference Meridian.
- */
- TEXT_WEST_ABBR: "W",
-
- /**
- * Abbreviation used for longitudes east of
- * the IERS Reference Meridian.
- */
- TEXT_EAST_ABBR: "E",
- TEXT_LAT_LNG_ACCURACY: "Lat/Lng Accuracy",
- TEXT_ALTITUDE: "Altitude",
-
- /**
- * Text to use for altitude accuracy
- */
- TEXT_ALT_ACCURACY: "Alt. Accuracy",
-
- TEXT_SPEED: "Speed",
- TEXT_HEADING: "Heading",
- TEXT_NOT_AVAILABLE: "N/A",
-
- /**
- * @return {Position}
- * The <code>Position</code> stored in this object.
- */
- getPosition: function () {
- return this._position;
- },
-
- /**
- * Sets the {Position} stored in this object.
- *
- * Automatically called from {@link #runAsync()} when
- * geolocation is successful. Can be manually called
- * to ease calling several methods of this object that
- * return human-readable string representations of that
- * <code>Position</code>.
- *
- * @param {Position} value
- * @return {jsx.dom.geolocation}
- */
- setPosition: function (value) {
- this._position = value;
- return this;
- },
-
- /**
- * @return {boolean}
- * <code>true</code> if geolocation is available,
- * <code>false</code> otherwise.
- */
- isAvailable: function () {
- return jsx.object.isHostMethod(navigator, "geolocation", "getCurrentPosition");
- },
-
- /**
- * Runs geolocation asynchronously.
- *
- * @param {Callable} callback
- * Called when geolocation was completed
- * @return {boolean}
- * <code>true</code> if geolocation is supported,
- * <code>false</code> otherwise.
- */
- runAsync: function (callback) {
- if (this.isAvailable())
- {
- var me = this;
- navigator.geolocation.getCurrentPosition(function (position) {
- me.setPosition(position);
- me = null;
- callback(position);
- });
-
- return true;
- }
-
- return false;
- },
-
- /**
- * Sets the texts used for human-readable string representations
- * of a {Position} as returned by methods of this object.
- *
- * @param {Object} texts
- * Object whose keys identify the keys of this object to be
- * set. Usually an external i18n provider would define the
- * values.
- * @return {jsx.dom.geolocation}
- */
- setTexts: function (texts) {
- var keys = jsx.object.getKeys(texts);
- for (var i = 0, len = keys.length; i < len; ++i)
- {
- var key = keys[i];
- if (typeof this[key] == "string")
- {
- this[key] = texts[key];
- }
- }
-
- return this;
- },
-
- /**
- * Returns the string representation of a {Position}'s latitude
- * in human-readable form.
- *
- * @param {Position} position = this.getPosition()
- * @return {string}
- */
- getLatitudeString: function (position) {
- if (!position)
- {
- position = this.getPosition();
- }
-
- var latitude = position.coords.latitude;
- return (latitude != null
- ? Math.abs(latitude) + "°\xA0"
- + (latitude < 0 ? this.TEXT_SOUTH_ABBR : this.TEXT_NORTH_ABBR)
- : this.TEXT_NOT_AVAILABLE);
- },
-
- /**
- * Returns the string representation of a {Position}'s longitude
- * in human-readable form.
- *
- * @param {Position} position = this.getPosition()
- * @return {string}
- */
- getLongitudeString: function (position) {
- if (!position)
- {
- position = this.getPosition();
- }
-
- var longitude = position.coords.longitude;
- return (longitude != null
- ? Math.abs(longitude) + "°\xA0"
- + (longitude < 0 ? this.TEXT_WEST_ABBR : this.TEXT_EAST_ABBR)
- : this.TEXT_NOT_AVAILABLE);
- },
-
- /**
- * Returns the string representation of a {Position}'s
- * latitude/longitude accuracy in human-readable form.
- *
- * @param {Position} position = this.getPosition()
- * @return {string}
- */
- getLatLngAccuracyString: function (position) {
- if (!position)
- {
- position = this.getPosition();
- }
-
- return position.coords.accuracy + this.TEXT_THIN_SPACE + "m";
- },
-
- /**
- * Returns the string representation of a {Position}'s altitude
- * in human-readable form.
- *
- * @param {Position} position = this.getPosition()
- * @return {string}
- */
- getAltitudeString: function (position) {
- if (!position)
- {
- position = this.getPosition();
- }
-
- var altitude = position.coords.altitude;
- return (altitude != null
- ? altitude + this.TEXT_THIN_SPACE + "m"
- : this.TEXT_NOT_AVAILABLE);
- },
-
- /**
- * Returns the string representation of a {Position}'s altitude
- * accuracy in human-readable form.
- *
- * @param {Position} position = this.getPosition()
- * @return {string}
- */
- getAltAccuracyString: function (position) {
- if (!position)
- {
- position = this.getPosition();
- }
-
- var altitudeAccuracy = position.coords.altitudeAccuracy;
- return (altitudeAccuracy != null
- ? altitudeAccuracy + this.TEXT_THIN_SPACE + "m"
- : this.TEXT_NOT_AVAILABLE);
- },
-
- /**
- * Returns the string representation of a {Position}'s speed
- * in human-readable form.
- *
- * @param {Position} position = this.getPosition()
- * @return {string}
- */
- getSpeedString: function (position) {
- if (!position)
- {
- position = this.getPosition();
- }
-
- var speed = position.coords.speed;
- return (speed != null && !isNaN(speed)
- ? speed + " m/s"
- : this.TEXT_NOT_AVAILABLE);
- },
-
- /**
- * Returns the string representation of a {Position}'s heading
- * in human-readable form.
- *
- * @param {Position} position = this.getPosition()
- * @return {string}
- */
- getHeadingString: function (position) {
- if (!position)
- {
- position = this.getPosition();
- }
-
- var heading = position.coords.heading;
- return (heading != null && !isNaN(heading)
- ? heading + "°"
- : this.TEXT_NOT_AVAILABLE);
- },
-
- /**
- * Returns the string representation of a {Position} in
- * human-readable form.
- *
- * @param {Position} position = this.getPosition()
- * @return {string}
- */
- getText: function (position) {
- return [
- this.TEXT_LATITUDE + ": " + this.getLatitudeString(position),
- this.TEXT_LONGITUDE + ": " + this.getLongitudeString(position),
- this.TEXT_LAT_LNG_ACCURACY + ": " + this.getLatLngAccuracyString(position),
- this.TEXT_ALTITUDE + ": " + this.getAltitudeString(position),
- this.TEXT_ALT_ACCURACY + ": " + this.getAltAccuracyString(position),
- this.TEXT_SPEED + ": " + this.getSpeedString(position),
- this.TEXT_HEADING + ": " + this.getHeadingString(position)
- ].join("\n");
- }
-};
\ No newline at end of file
/live/dom/geolocation.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/dom/storage.js
===================================================================
--- live/dom/storage.js (revision 509)
+++ live/dom/storage.js (nonexistent)
@@ -1,209 +0,0 @@
-/**
- * <title>PointedEars' DOM Library: Web Storage</title>
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2012, 2013 Thomas Lahn <js@PointedEars.de>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-if (typeof jsx.dom == "undefined")
-{
- /**
- * @namespace
- */
- jsx.dom = {};
-}
-
-if (typeof jsx.dom.storage == "undefined")
-{
- /**
- * @namespace
- */
- jsx.dom.storage = {};
-}
-
-/**
- * @param storageName : string (optional) Storage name ("local" and "session" are supported)
- * @returns
- * <code>true</code> if any or the specified Storage is supported,
- * <code>false</code> otherwise.
- */
-jsx.dom.storage.isSupported = function (storageName) {
- if (storageName)
- {
- return jsx.tryThis(
- function () {
- return (typeof window[storageName + "Storage"] != "undefined");
- },
- function () {
- return false;
- }
- );
- }
-
- var _storage = jsx.dom.storage;
- return _storage.localStorage.isSupported() || _storage.sessionStorage.isSupported();
-};
-
-/**
- * Sets an item in a {@link Storage}. Used internally.
- *
- * @param storage : Storage
- * @param key : string
- * @param value
- */
-jsx.dom.storage.setItem = function (storage, key, value) {
- storage.setItem(key, JSON.stringify(value));
-};
-
-/**
- * Retrieves an item from a {@link Storage}. Used internally.
- *
- * @param storage : Storage
- * @param key : string
- * @return any item value
- */
-jsx.dom.storage.getItem = function (storage, key) {
- var value = storage.getItem(key);
-
- /*
- * NOTE: Shortcut evaluation for handling "" only
- */
- return value && JSON.parse(value);
-};
-
-if (typeof jsx.dom.storage.localStorage == "undefined")
-{
- /**
- * @namespace
- */
- jsx.dom.storage.localStorage = {};
-}
-
-/**
- * @returns
- * <code>true</code> if Local Storage is supported,
- * <code>false</code> otherwise.
- * @function
- */
-jsx.dom.storage.localStorage.isSupported = (function () {
- var _storage = jsx.dom.storage;
-
- return function () {
- return _storage.isSupported("local");
- };
-}());
-
-/**
- * Sets an item in the Local {@link Storage}
- *
- * @function
- */
-jsx.dom.storage.localStorage.setItem = (function () {
- var _storage = jsx.dom.storage;
-
- /**
- * @param key : string
- * @param value
- */
- return function (key, value) {
- _storage.setItem(window.localStorage, key, value);
- };
-}());
-
-/**
- * Retrieves an item from the Local {@link Storage}
- *
- * @function
- */
-jsx.dom.storage.localStorage.getItem = (function () {
- var _storage= jsx.dom.storage;
-
- /**
- * @param key : string
- * @return any item value
- */
- return function (key) {
- return _storage.getItem(window.localStorage, key);
- };
-}());
-
-if (typeof jsx.dom.storage.sessionStorage == "undefined")
-{
- /**
- * @namespace
- */
- jsx.dom.storage.sessionStorage = {};
-}
-
-/**
- * @returns
- * <code>true</code> if Session {@link Storage} is supported
- * <code>false</code> otherwise.
- * @function
- */
-jsx.dom.storage.sessionStorage.isSupported = (function () {
- var _storage = jsx.dom.storage;
-
- return function () {
- return _storage.isSupported("session");
- };
-}());
-
-/**
- * Sets an item in the Session {@link Storage}
- *
- * @function
- */
-jsx.dom.storage.sessionStorage.setItem = (function () {
- var _storage = jsx.dom.storage;
-
- /**
- * @param key : string
- * @param value
- */
- return function (key, value) {
- _storage.setItem(window.sessionStorage, key, value);
- };
-}());
-
-/**
- * Retrieves an item from the Session {@link Storage}
- *
- * @function
- */
-jsx.dom.storage.sessionStorage.getItem = (function () {
- var _storage= jsx.dom.storage;
-
- /**
- * @param key : string
- * @return any item value
- */
- return function (key) {
- return _storage.getItem(window.sessionStorage, key);
- };
-}());
\ No newline at end of file
/live/dom/storage.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/dom/events.js
===================================================================
--- live/dom/events.js (revision 509)
+++ live/dom/events.js (nonexistent)
@@ -1,496 +0,0 @@
-/**
- * <title>PointedEars' DOM Library: Events</title>
- * @version $Id$
- * @requires dom.js
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2004-2012 Thomas Lahn <js@PointedEars.de>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-if (typeof jsx.dom == "undefined")
-{
- jsx.dom = {};
-}
-
-/**
- * Adds an event-handling function (event listener) for a
- * DOM object as event target. The following methods are
- * used (in order of preference):
- *
- * <ul>
- * <li>addEventListener(...) method (W3C-DOM Level 2 Events)</li>
- * <li>Assignment to event-handling property (MSIE 4+ and others)</li>
- * </ul>
- *
- * The attachEvent(...) method (proprietary to MSIE 5+) is not
- * used anymore because of the arbitrary execution order of
- * event listeners attached with it and because of `this' in
- * the event listener not referring to the event target then.
- *
- * @author
- * (C) 2004-2010 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @partof
- * <a href="http://pointedears.de/scripts/dhtml.js">dhtml.js</a>
- * @param {Object} oNode
- * Reference to the DOM object.
- * @param {string} sEvent
- * Required string to be used as event identifier.
- * If the addEventListener(...) method is not available,
- * `on' is used as its prefix to reference the respective
- * proprietary event-handling property.
- * @param {Function} fListener
- * Reference to the Function object that provides
- * event-handling code. Use <code>null</code> to
- * detach the event listener if, and only if, the
- * proprietary event handler property is available.
- * @return {Object}
- * A reference to the added listener on success,
- * <code>null</code> otherwise.
- * Since addEventListener(...) returns no value and throws
- * no exceptions (what a bad design!), it is considered to be
- * successful always, while the new value of the proprietary
- * event-handling property must match the assigned value for
- * the method to be successful.
- * @see <a href="http://www.quirksmode.org/blog/archives/2005/08/addevent_consid.html">QuirksBlog: addEvent() considered harmful (2005-08 CE)</a>
- * @see <a href="dom2-events#Events-EventTarget-addEventListener">W3C DOM Level 2 Events: EventTarget::addEventListener</a>
- * @see <a href="msdn#workshop/author/dhtml/reference/methods/attachevent.asp">MSDN Library: attachEvent()</a>
- */
-jsx.dom.addEventListener = function(oNode, sEvent, fListener) {
- var
- jsx_object = jsx.object,
- result = null,
- sHandler = "on" + sEvent;
-
- if (oNode && sEvent && jsx_object.isNativeMethod(fListener))
- {
- if (jsx_object.isMethod(oNode, "addEventListener"))
- {
- jsx.tryThis(
- function() {
- oNode.addEventListener(sEvent, fListener, false);
- result = fListener;
- },
- function() {
- result = null;
- });
- }
- else
- {
- /*
- * NOTE:
- * No more bogus feature tests here; MSHTML yields `null' for unset
- * listeners, Gecko yields `undefined'.
- *
- * We also don't attempt to use MSHTML's buggy attachEvent() anymore;
- * thanks to Peter-Paul Koch for insight:
- * http://www.quirksmode.org/blog/archives/2005/08/addevent_consid.html
- */
-
- var oldListener = oNode[sHandler];
-
- if (!oldListener || typeof oldListener._listeners == "undefined")
- {
- var newListener = function(e) {
- if (!e)
- {
- e = (typeof window != "undefined" && window
- && typeof window.event != "undefined"
- && window.event);
- }
-
- var
- listeners = arguments.callee._listeners,
- fpCall = Function.prototype.call;
-
- for (var i = 0, len = listeners.length; i < len; i++)
- {
- /* May be undefined because _replaceEventListener() was applied */
- if (jsx_object.isMethod(listeners[i]))
- {
- /* Host object's methods need not implement call() */
- fpCall.call(listeners[i], this, e);
- }
- }
- };
-
- newListener._listeners = [];
-
- if (oldListener)
- {
- /* Avoid dependencies, so no Array.prototype.push() call */
- listeners = newListener._listeners;
- listeners[listeners.length] = oldListener;
- }
-
- oldListener = newListener;
- }
-
- listeners = oldListener._listeners;
- listeners[listeners.length] = fListener;
-
- /* TODO: Why this way? */
- oNode[sHandler] = oldListener;
-
- result = (oNode[sHandler] == oldListener) && oldListener || null;
- }
- }
-
- return result;
-};
-
-/**
- * Adds a capturing event-handling function (event listener) for
- * a DOM object as event target. Capturing means that the event
- * target receives the event before all other targets, before
- * event bubbling. The following methods are used (in order of
- * preference):
- *
- * <ul>
- * <li>addEventListener(...) method (W3C DOM Level 2 Events)</li>
- * <li>TODO: captureEvent(...) method (NS 4)</li>
- * </ul>
- *
- * @author
- * (C) 2007-2010 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @partof
- * http://pointedears.de/scripts/dhtml.js
- * @param {Node} oNode
- * Reference to the DOM object.
- * @param {string} sEvent
- * Required string to be used as event identifier.
- * If the addEventListener(...) method is not available,
- * `on' is used as its prefix to reference the respective
- * proprietary event-handling property.
- * @param {Function} fListener
- * Reference to the Function object that provides
- * event-handling code. Use <code>null</code> to
- * remove the event handler if, and only if, the
- * proprietary event-handling property is available.
- * @return {boolean}
- * <code>true</code> on success, <code>false</code> otherwise.
- * @see <a href="dom2-events#Events-EventTarget-addEventListener">W3C DOM Level 2 Events: EventTarget::addEventListener()</a>
- */
-jsx.dom.addEventListenerCapture = function(oNode, sEvent, fListener) {
- if (oNode && sEvent && jsx.object.isMethod(fListener))
- {
- oNode.addEventListener(sEvent, fListener, true);
- return true;
- }
-
- return false;
-};
-
-/**
- * Replaces the event-handling function (event listener) for a
- * DOM object as event target. The following methods are
- * used (in order of preference):
- *
- * <ul>
- * <li>removeEventListener() and addEventListener(...) methods
- * (W3C-DOM Level 2)</li>
- * <li>Assignment to event-handling property (MSIE 4+ and others)</li>
- * </ul>
- *
- * Note that this still relies on the existence of the proprietary
- * event-handling property that yields a reference to the (first added)
- * event listener for the respective event.
- *
- * @author
- * (C) 2007-2010 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @partof
- * http://pointedears.de/scripts/dhtml.js
- * @param {Node} oNode
- * Reference to the DOM object.
- * @param {string} sEvent
- * Required string to be used as event identifier.
- * `on' is used as its prefix to reference the respective
- * proprietary event-handling property.
- * @param {Function} fListener
- * Reference to the Function object that provides
- * event-handling code. Use <code>null</code> to
- * remove the event handler if, and only if, the
- * proprietary event-handling property is available.
- * @param {boolean} bUseCapture (optional)
- * Optional. If <code>true</code>, the argument indicates that
- * the user wishes to initiate capture. Corresponds to the
- * third parameter of the addEventListener(...) method, is
- * ignored if that method is not supported by the DOM (object).
- * @return {boolean}
- * <code>true</code> on success, <code>false</code> otherwise.
- * Since addEventListener(...) returns no value and throws
- * no exceptions, it is considered to be
- * successful always, while the new value of the proprietary
- * event-handling property must match the assigned value for
- * the method to be successful.
- * @see <a href="dom2-events#Events-EventTarget-removeEventListener">W3C DOM Level 2 Events: EventTarget::removeEventListener()</a>
- * @see <a href="dom2-events#Events-EventTarget-addEventListener">W3C DOM Level 2 Events: EventTarget::addEventListener()</a>
- */
-jsx.dom.replaceEventListener = function(oNode, sEvent, fListener, bUseCapture) {
- var
- jsx_object = jsx.object,
- result = false,
- sHandler = "on" + sEvent;
-
- if (oNode && sEvent && jsx_object.isMethod(fListener))
- {
- if (jsx_object.areMethods(oNode, ["removeEventListener", "addEventListener"]))
- {
- if (jsx_object.isMethod(oNode[sHandler]))
- {
- var fOldListener = oNode[sHandler];
- oNode.removeEventListener(sEvent, fOldListener, !!bUseCapture);
- }
-
- oNode.addEventListener(sEvent, fListener, !!bUseCapture);
- result = true;
- }
- else
- {
- oNode[sHandler] = fListener;
- result = (oNode[sHandler] == fListener);
- }
- }
-
- return result;
-};
-
-/**
- * Removes an event-handling function (event listener) for a
- * DOM object as event target.
- * <ul>
- * <li>removeEventListener() and addEventListener(...) methods
- * (W3C-DOM Level 2)</li>
- * <li>Assignment to event-handling property (MSIE 4+ and others)</li>
- * </ul>
- *
- * Note that this still relies on the existence of the proprietary
- * event-handling property that yields a reference to the (first added)
- * event listener for the respective event.
- *
- * @author
- * (C) 2010, 2013 Thomas Lahn &lt;js@PointedEars.de&gt;
- * @param {Node} oNode
- * Reference to the DOM object.
- * @param {string} sEvent
- * Required string to be used as event identifier.
- * `on' is used as its prefix to reference the respective
- * proprietary event-handling property.
- * @param {Function} fListener
- * Reference to the Function object that provides
- * event-handling code. Is ignored to (re)set the
- * proprietary event-handling property if available.
- * @param {boolean} bUseCapture (optional)
- * Optional. If <code>true</code>, the argument indicates that
- * the user wished to initiate capture. Corresponds to the
- * third parameter of the removeEventListener(...) method, is
- * ignored if that method is not supported by the DOM (object).
- * @return {boolean}
- * <code>true</code> on success, <code>false</code> otherwise.
- * Since removeEventListener(...) returns no value and throws
- * no exceptions (what a bad design!), it is considered to be
- * successful always, while attachEvent(...) returns success
- * or failure, and the new value of the proprietary
- * event-handling property must be <code>null</code> for
- * the method to be successful.
- * @see <a href="dom2-events#Events-EventTarget-removeEventListener">W3C DOM Level 2 Events: EventTarget::removeEventListener()</a>
- * @see <a href="msdn#workshop/author/dhtml/reference/methods/detachevent.asp">MSDN Library: detachEvent()</a>
- */
-jsx.dom.removeEventListener = function(oNode, sEvent, fListener, bUseCapture) {
- var
- result = false,
- jsx_object = jsx.object,
- sHandler = "on" + sEvent;
-
- if (oNode && sEvent)
- {
- if (jsx_object.isMethod(fListener))
- {
- if (jsx_object.isMethod(oNode, "removeEventListener"))
- {
- oNode.removeEventListener(sEvent, fListener, bUseCapture);
- return true;
- }
- }
-
- if (jsx_object.isMethod(oNode, sHandler))
- {
- var
- handler = oNode[sHandler],
- listeners = handler._listeners;
-
- if (listeners)
- {
- for (var i = listeners.length; i--;)
- {
- if (listeners[i] == fListener)
- {
- delete listeners[i];
- result = (typeof listeners[i] == "undefined");
- }
- }
- }
- else
- {
- handler = oNode[sHandler] = null;
- result = (handler == null);
- }
- }
- }
-
- return result;
-};
-
-/**
- * Returns a reference to a <code>Function</code> that can be used as event listener.
- * Differences between DOM implementations are smoothed out as much as
- * possible (e.g., the first argument of that function will be a reference
- * to the <code>Event</code> instance regardless if the DOM implementation passes it,
- * and you can use the <code>target</code> property even if
- * the DOM implementation supports <code>srcElement</code> instead.)
- *
- * @param {Callable} f
- * Reference to the object that contains the actual listener code
- * @return {Function}
- * A reference to a <code>Function</code> that can be used as event listener.
- */
-jsx.dom.createEventListener = function(f) {
- var jsx_object = jsx.object;
-
- function listener(e)
- {
- if (typeof e == "undefined"
- && typeof window != "undefined"
- && typeof window.event != "undefined"
- && window.event)
- {
- e = window.event;
- }
-
- /*
- * NOTE: Should not augment host objects, and cannot inherit from Events,
- * so values need to be copied
- */
- var e2 = {originalEvent: e};
- var properties = ["type", "charCode", "keyCode", "which", "keyIdentifier",
- "clientX", "clientY", "offsetX", "offsetY",
- "shiftKey", "ctrlKey", "altKey", "metaKey"];
- for (var i = properties.length; i--;)
- {
- var property = properties[i];
- e2[property] = e[property];
- }
-
- /* FIXME: jsx.object.extend() does not work well with host objects */
- e2.getProperty = function(p) {
- return e[p];
- };
-
- e2.target = (typeof e.target != "undefined")
- ? e.target
- : (typeof e.srcElement != "undefined")
- ? e.srcElement
- : null,
-
- e2.stopPropagation = (function(e) {
- if (jsx_object.isMethod(e, "stopPropagation"))
- {
- return function() {
- e.stopPropagation();
- };
- }
-
- if (typeof e.cancelBubble != "undefined")
- {
- return function() {
- e.cancelBubble = true;
- };
- }
- })(e);
-
- e2.preventDefault = (function(e) {
- if (jsx_object.isMethod(e, "preventDefault"))
- {
- return function() {
- return e.preventDefault();
- };
- }
-
- return function() {
- e.returnValue = false;
- };
- })(e);
-
- e2.initEvent = (function() {
- if (jsx_object.isMethod(e, "initEvent"))
- {
- return function(eventTypeArg, canBubbleArg, cancelableArg) {
- return e.initEvent(eventTypeArg, canBubbleArg, cancelableArg);
- };
- }
-
- return function() {};
- })();
-
- return f.call(this, e2);
- }
-
- /* Strict W3C DOM Level 2 Events compatibility */
- listener.handleEvent = function(e) {
- return this(e);
- };
-
- return listener;
-};
-
-/**
- * Prevents the default action for an event.
- *
- * @param {Event} e
- * @return {boolean}
- * <code>true</code> if <var>e</var> is not a valid value,
- * <code>false</code> otherwise. The return value of this
- * method can be used to return a value to the event-handler.
- */
-jsx.dom.preventDefault = function(e) {
- if (!e)
- {
- return true;
- }
-
- if (jsx.object.isMethod(e, "preventDefault"))
- {
- e.preventDefault();
- }
-
- if (typeof e.returnValue != "undefined")
- {
- e.returnValue = false;
- }
-
- return false;
-};
\ No newline at end of file
/live/dom/events.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/dom/widgets.js
===================================================================
--- live/dom/widgets.js (revision 509)
+++ live/dom/widgets.js (nonexistent)
@@ -1,1848 +0,0 @@
-"use strict";
-/**
- * <title>PointedEars' DOM Library: Widgets</title>
- *
- * @version $Id$
- * @requires dom.js, events.js
- * @section Copyright & Disclaimer
- *
- * @author (C) 2010-2013 Thomas Lahn <js@PointedEars.de>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- * (must be provided by object.js, here for JSDT only)
- */
- var jsx = {};
-}
-
-if (typeof jsx.dom == "undefined")
-{
- /**
- * @namespace
- * (must be provided by dom.js, here for JSDT only)
- */
- jsx.dom = {};
-}
-
-/**
- * @type jsx.dom.widgets
- * @memberOf __jsx.dom.widgets
- * @namespace
- */
-jsx.dom.widgets = (/** @constructor */ function () {
- /* Imports */
- var _jsx_dom = jsx.dom;
- var _gEBTN = _jsx_dom.getElemByTagName;
-
- /* Constant-like private variables */
- var _AFTER = 1;
-
- /* Other private variables */
- /**
- * Constructor of the abstract prototype for widgets. It provides
- * shallow copying of the passed properties, stores the reference to the
- * manipulated DOM object, and applies the given properties to the
- * display of that object. Widgets should inherit from this prototype,
- * and this constructor should be called only from the constructors of
- * prototypes of specialized widgets.
- *
- * @function
- */
- var _Widget = (
- /**
- * @constructor
- * @param {Element} oTarget
- * Reference to the DOM object that represents the
- * element that provides the client area for the widget. Pass a
- * false-value to create a new element.
- * @param {jsx.dom.widgets.Container} oParent
- * Reference to the <code>Container</code> that should contain
- * this widget. Pass <code>null</code> so that the widget will
- * not be automatically appended. You can call its
- * {@link #appendTo()} method later to append it.
- * @param {Object} oProperties
- */
- function (oTarget, oParent, oProperties) {
- this._target = oTarget || document.createElement(this.elementType);
-
- if (oParent && !(oParent instanceof _Container))
- {
- return jsx.throwThis(jsx.InvalidArgumentError,
- [null, jsx.object.getFunctionName(oParent.constructor), "jsx.dom.widgets.Container"]);
- }
-
- this._parent = oParent || null;
-
- /**
- * @type Array[Widget]
- */
- this.children = [];
-
- for (var propertyName in oProperties)
- {
- /* Do not overwrite methods */
- if (typeof this[propertyName] != "function")
- {
- var setter = this._getSetterFor(propertyName);
- if (setter)
- {
- setter.call(this, oProperties[propertyName]);
- }
- else
- {
- this[propertyName] = oProperties[propertyName];
- }
- }
- }
-
- if (this._target)
- {
- this.init();
- this.update();
- }
- }
- ).extend(null, (function () {
- var _getKeys = jsx.object.getKeys;
- var _css = _jsx_dom.css;
-
- return {
- /**
- * Widgets are `div' elements by default. Inheriting classes should
- * override this when appropriate (e. g., a menu should be a `ul').
- *
- * @memberOf jsx.dom.widgets.Widget.prototype
- */
- elementType: "div",
-
- /**
- * @type Element
- */
- _target: null,
-
- /**
- * Defines actions to be performed when the widget is initialized.
- * Can be overridden by inheriting types. If it is overridden,
- * it must also be called.
- */
- init: function () {
- if (this._parent)
- {
- /*
- * Automagically append widget to parent
- * (without necessarily rendering it)
- */
- this.appendTo();
- }
- },
-
- /**
- * Gets a property of this widget's target object.
- *
- * @param {String} name
- * @return {any}
- */
- getTargetProperty: function (name) {
- return this._target[name];
- },
-
- /**
- * Sets a property of this widget's target object.
- *
- * Use {@link #setStyleProperty()}, {@link #resetStyleProperty()}
- * or {@link #setStyle()} for setting style properties instead.
- *
- * @param {String} name
- * @param value
- * @return {jsx.dom.widgets.Widget}
- */
- setTargetProperty: function (name, value) {
- this._target[name] = value;
- return this;
- },
-
- /**
- * Sets several property of this widget's target object.
- *
- * Use {@link #setStyleProperty()}, {@link #resetStyleProperty()}
- * or {@link #setStyle()} for setting style properties instead.
- *
- * @param {String} name
- * @param value
- * @return {jsx.dom.widgets.Widget}
- */
- setTargetProperties: function (properties) {
- var keys = _getKeys(properties);
- for (var i = 0, len = keys.length; i < len; ++i)
- {
- var propertyName = keys[i];
- this.setTargetProperty(propertyName, properties[propertyName]);
- }
-
- return this;
- },
-
- /**
- * Sets a style property of this widget
- *
- * @param {String} name
- * @param value
- * @return {boolean}
- * @see jsx.dom.css.setStyleProperty()
- */
- setStyleProperty: function (name, value) {
- return _css.setStyleProperty(this._target, name, value);
- },
-
- /**
- * Resets a style property of this widget to its inherited value
- *
- * @param {String} name
- */
- resetStyleProperty: function (name) {
- _css.resetStyleProperty(this._target, name);
- },
-
- /**
- * Sets several style properties of this widget at once
- *
- * @param {Object} style
- */
- setStyle: function (style) {
- var result = true;
-
- for (var propertyName in style)
- {
- var resultPart = this.setStyleProperty(propertyName, style[propertyName]);
- if (result && !resultPart)
- {
- result = false;
- }
- }
-
- return result;
- },
-
- /**
- * Defines actions to be performed when the widget's canvas should be
- * updated to reflect its current status; should be overridden
- * and called by inheriting types.
- */
- update: function () {
- this.setStyle(this.style);
-
- for (var i = 0, len = this.children.length; i < len; ++i)
- {
- this.children[i].update();
- }
-
- return this;
- },
-
- /**
- * Causes the widget to be rendered.
- */
- render: function (parent) {
- this.update();
- this._target.style.display = "";
- return this;
- },
-
- /**
- * Causes the widget not to be rendered, without removing it
- * from the document tree.
- */
- unrender: function () {
- this._target.style.display = "none";
- return this;
- },
-
- /**
- * Shows the widget
- */
- show: function () {
- this._target.style.visibility = "visible";
- return this;
- },
-
- /**
- * Hides the widget, but keeps its box
- */
- hide: function () {
- this._target.style.visibility = "hidden";
- return this;
- },
-
- /**
- * Appends the widget as a child element
- *
- * @param {jsx.dom.widgets.Container} parent (optional)
- * The widget that this widget should be appended to.
- * The default is the current parent widget.
- * @see jsx.dom.widgets.Container.prototype.appendChild()
- */
- appendTo: function (parent) {
- if (typeof parent == "undefined")
- {
- parent = this._parent;
- }
-
- return parent.appendChild(this);
- },
-
- /**
- * Removes the widget from the document
- *
- * @see jsx.dom.widgets.Container.prototype.removeChild()
- */
- remove: function () {
- for (var i = 0, len = this.children.length; i < len; ++i)
- {
- this.children[i].remove();
- }
-
- /* TODO: Clean-up event listener */
-
- return this._parent.removeChild(this);
- },
-
- _getSetterFor: function (propertyName) {
- var setterName =
- "set" + propertyName.charAt(0).toUpperCase() + propertyName.substring(1);
- var setter = this[setterName];
- return (typeof setter == "function") ? setter : null;
- }
- };
- }()));
-
- /**
- * @function
- */
- var _Container = (
- /**
- * <code>Container</code>s are collapsible widgets
- * that may have content, such as other widgets and text.
- *
- * @constructor
- */
- function jsx_dom_widgets_Container (oTarget, oParent, oProperties) {
- jsx_dom_widgets_Container._super.apply(this, arguments);
- }
- ).extend(_Widget, {
- /**
- * Defines whether the widget should be collapsed
- *
- * @private
- */
- _collapsed: false,
-
- innerHTML: null,
- _defaultInnerHTML: null,
- text: null,
-
- init: function () {
- _Container._super.prototype.init.call(this);
-
- this._defaultContent = this.innerHTML || this._target.innerHTML || "";
- },
-
- /**
- * (non-JSdoc)
- * @see jsx.dom.widget.Widget.prototype.update
- */
- update: (function () {
- var _isArray = jsx.object.isArray;
- var _createNodesFromObj = _jsx_dom.createNodesFromObj;
- var _setTextContent = _jsx_dom.setTextContent;
-
- return function () {
- _Container._super.prototype.update.call(this);
-
- var target = this._target;
-
- var html = this.innerHTML;
- if (html !== null)
- {
- if (typeof html.valueOf() == "string")
- {
- target.innerHTML = html;
- }
- else
- {
- _jsx_dom.removeChildren(target, target.childNodes);
-
- if (_isArray(html))
- {
- html = _createNodesFromObj(html);
- }
-
- if (_isArray(html))
- {
- _jsx_dom.appendChildren(target, html);
- }
- else
- {
- target.appendChild(html);
- }
- }
- }
- else if (this.text != null)
- {
- _setTextContent(target, this.text);
- }
-
- target.onclick = this.onclick || null;
- target.onmouseover = this.onmouseover || null;
- target.onmousedown = this.onmousedown || null;
-
- return this;
- };
- }()),
-
- /**
- * Returns the collapsed state of the <code>Container</code>
- *
- * @return {boolean}
- * <code>true</code> if the widget is collapsed,
- * <code>false</code> otherwise.
- */
- isCollapsed: function () {
- return !!this._collapsed;
- },
-
- /**
- * Sets the collapsed state of the <code>Container</code>
- *
- * @param {boolean} value
- * @return {jsx.dom.widgets.Container}
- */
- setCollapsed: function (value) {
- var oldValue = this.isCollapsed();
- var newValue = this._collapsed = !!value;
-
- if (newValue != oldValue)
- {
- if (newValue && typeof this.oncollapse == "function")
- {
- this.oncollapse();
- }
- else if (!newValue && typeof this.onexpand == "function")
- {
- this.onexpand();
- }
-
- if (typeof this.oncollapsedchange == "function")
- {
- this.oncollapsedchange(newValue);
- }
- }
-
- return this;
- },
-
- /**
- * Collapses the <code>Container</code>
- */
- collapse: function () {
- this.setCollapsed(true);
- },
-
- /**
- * Expands the <code>Container</code>
- */
- expand: function () {
- this.setCollapsed(false);
- },
-
- /**
- * @memberOf jsx.dom.widgets.Container.prototype
- * @return {string}
- */
- getText: function () {
- this.text = this._target.textContent;
- return this.text;
- },
-
- /**
- * @param {string} text
- * @return {jsx.dom.widgets.Container}
- */
- setText: function (text) {
- this.text = text;
- this.innerHTML = null;
- return this;
- },
-
- /**
- * @param {string} html
- * @return {jsx.dom.widgets.Container}
- */
- setInnerHTML: function (html) {
- this.text = "";
- this.innerHTML = html;
- return this;
- },
-
- resetContent: function () {
- this.setInnerHTML(this._defaultContent);
- },
-
- setChildren: function (children) {
- for (var i = 0, len = children.length; i < len; ++i)
- {
- children[i].appendTo(this);
- }
- },
-
- /**
- * @param {jsx.dom.widgets.Widget} child
- * @return {jsx.dom.widgets.Widget}
- * The appended widget.
- */
- appendChild: function (child) {
- var result = null;
- var childTarget = child._target;
- var target = this._target;
- var success = true;
-
- /*
- * If the child widget's element is not in the document tree,
- * or if it is not already a child of this widget's element …
- */
- if (childTarget.parentNode != target)
- {
- /*
- * … append it as child element
- */
- target.appendChild(child._target);
- success = (target.lastChild == childTarget);
- }
-
- if (success)
- {
- /*
- * If we already have the widget as a child,
- * move it to the end of the list
- */
- var childIndex = this.children.indexOf(child);
- if (childIndex >= 0)
- {
- this.children.splice(childIndex, 1);
- }
-
- this.children.push(child);
-
- result = child;
- }
-
- return result;
- },
-
- removeChild: function (child) {
- var childIndex = this.children.indexOf(child);
- if (childIndex >= 0)
- {
- this._target.removeChild(child._target);
- this.children.splice(childIndex, 1);
- }
- }
- });
-
- var _Section = (
- /**
- * @constructor
- */
- function jsx_dom_widgets_Section (oTarget, oParent, oProperties) {
- _Section._super.apply(this, arguments);
- }
- ).extend(_Container, {
- /**
- * @memberOf jsx.dom.widgets.Section.prototype
- */
- elementType: "section"
- });
-
- var _Anchor = (
- function jsx_dom_widgets_Anchor () {
- jsx_dom_widgets_Anchor._super.apply(this, arguments);
- }
- ).extend(_Container, {
- elementType: "a"
- });
-
- var _Label = (
- /**
- * @constructor
- */
- function jsx_dom_widgets_Label (oTarget, oParent, oProperties) {
- jsx_dom_widgets_Label._super.apply(this, arguments);
- }
- ).extend(_Container, {
- /**
- * @memberOf jsx.dom.widgets.Label.prototype
- */
- elementType: "label"
- });
-
- var _TextArea = (
- /**
- * @constructor
- */
- function jsx_dom_widgets_TextArea (oTarget, oParent, oProperties) {
- jsx_dom_widgets_TextArea._super.apply(this, arguments);
- }
- ).extend(_Container, {
- /**
- * @memberOf jsx.dom.widgets.TextArea.prototype
- */
- elementType: "textarea"
- });
-
- /**
- * @function
- */
- var _Input = (
- /**
- * An <code>Input</code> widget enhances the default
- * <code>INPUT</code> element text box with a restriction to the
- * characters that may be typed into it.
- *
- * @constructor
- * @param {Element} oTarget
- * Reference to the DOM object that represents the
- * element that provides the client area for the widget. Pass a
- * false-value to create a new element.
- * @param {Element} oParent
- * Reference to the DOM object that represents the parent
- * element for this widget. Pass <code>null</code> so that the
- * widget will not be automatically attached to the document
- * tree. You can call its {@link #appendTo()} method later to
- * attach it.
- * @param {Object} oProperties
- * @see Widget
- */
- function jsx_dom_widgets_Input (oTarget, oParent, oProperties) {
- jsx_dom_widgets_Input._super.apply(this, arguments);
-
- var me = this;
- _jsx_dom.addEventListener(this._target, "keypress", _jsx_dom.createEventListener(
- function (e) {
- var charCode =
- (typeof e.charCode != "undefined")
- ? e.charCode
- : (typeof e.keyCode != "undefined" ? e.keyCode : charCode);
-
- if (! (charCode < 32
- || me.allowedChars.test(String.fromCharCode(charCode))
- && !e.shiftKey && !e.ctrlKey && !e.altKey && !e.metaKey))
- {
- return e.preventDefault();
- }
- }
- ));
- }
- ).extend(_Widget, {
- /**
- * Regular Expression specifying the format allowed to be input into
- * this widget. CAUTION: Too restrictive an expression could render
- * the widget unusable.
- *
- * @memberOf jsx.dom.widgets.Input.prototype
- * @type RegExp
- */
- allowedChars: /./,
-
- elementType: "input",
-
- /**
- * (non-JSdoc)
- * @see jsx.dom.widgets.Widget.prototype.update()
- */
- update: function () {
- _Input._super.prototype.update.call(this);
-
- if (typeof this.value != "undefined")
- {
- this._target.value = this.value;
- }
-
- if (typeof this.tabIndex != "undefined")
- {
- this._target.tabIndex = this.tabIndex;
- }
-
- return this;
- }
- });
-
- /**
- * @function
- */
- var _NumberInput = (
- /**
- * A <code>NumberInput</code> widget restricts the characters to be
- * typed into it to decimal digits and the decimal point (".") by default.
- *
- * @constructor
- * @param {Element} oTarget
- * Reference to the DOM object that represents the element that
- * provides the client area for the widget. Pass a false-value
- * to create a new element.
- * @param {Element} oParent
- * Reference to the DOM object that represents the parent element
- * for this widget. Pass <code>null</code> so that the widget will
- * not be automatically attached to the document tree. You can call
- * its {@link #appendTo()} method later to attach it.
- * @param {Object} oProperties
- * @see jsx.dom.widgets#Input
- */
- function jsx_dom_widgets_NumberInput (oTarget, oParent, oProperties) {
- jsx_dom_widgets_NumberInput._super.apply(this, arguments);
-
- var me = this;
-
- var target = this._target;
- _jsx_dom.addEventListener(target, "blur", function () {
- me.update();
- });
-
- _jsx_dom.addEventListener(target, "focus", function () {
- if (me.leadingZero)
- {
- this.value = parseInt(this.value, 10);
- }
- });
-
- if (typeof this.oninput == "function")
- {
- _jsx_dom.addEventListener(target, "input", this.oninput);
- }
- }
- ).extend(_Input, {
- /**
- * @memberOf jsx.dom.widgets.NumberInput.prototype
- * @type RegExp
- */
- allowedChars: /[\d.]/,
-
- leadingZero: false,
-
- /**
- * @type Number
- */
- minValue: -Infinity,
-
- /**
- * @type Number
- */
- maxValue: Infinity,
-
- /**
- * (non-JSdoc)
- * @see jsx.dom.widgets.Widget.prototype.init()
- */
- init: function () {
- _NumberInput._super.prototype.init.call(this);
-
- var target = this._target;
-
- if (target.type != "number")
- {
- jsx.tryThis(function () { target.type = "number"; });
- }
-
- if (target.type == "number")
- {
- /* HTML5 support */
- if (this.minValue != -Infinity)
- {
- target.min = this.minValue;
- }
-
- if (this.maxValue != Infinity)
- {
- target.max = this.maxValue;
- }
- }
- },
-
- /**
- * (non-JSdoc)
- * @see jsx.dom.widgets.Input.prototype.update()
- */
- update: function () {
- _NumberInput._super.prototype.update.call(this);
-
- var target = this._target;
-
- var v = parseFloat(target.value);
-
- if (isNaN(v))
- {
- v = 0;
- }
-
- if (this.minValue != -Infinity && v < this.minValue)
- {
- v = this.minValue;
- }
- else if (this.maxValue != Infinity && v > this.maxValue)
- {
- v = this.maxValue;
- }
-
- if (this.leadingZero && this.maxValue != Infinity)
- {
- v = leadingZero(v, String(this.maxValue).length);
- }
-
- v = String(v);
-
- if (v != target.value)
- {
- target.value = v;
- }
-
- return this;
- },
-
- /**
- * @protected
- * @param valueType
- * @param value
- * @return {Number}
- */
- _setBoundary: function (valueType, value) {
- value = parseFloat(value);
-
- if (!isNaN(value))
- {
- if (this._target.type == "number")
- {
- /* HTML5 support */
- this._target[valueType] = String(value);
- }
-
- this[valueType + "Value"] = value;
- }
- else
- {
- jsx.throwThis(null, "Invalid boundary: " + valueType + "Value");
- }
-
- return this[valueType + "Value"];
- },
-
- setMinValue: function (value) {
- return this._setBoundary("min", value);
- },
-
- setMaxValue: function (value) {
- return this._setBoundary("max", value);
- }
- });
-
- var _ListItem = (
- /**
- * @constructor
- */
- function jsx_dom_widgets_ListItem () {
- jsx_dom_widgets_ListItem._super.apply(this, arguments);
- }
- ).extend(_Container, {
- /**
- * @memberOf jsx.dom.widgets.ListItem.prototype
- */
- elementType: "li"
- });
-
- /**
- * @function
- */
- var _List = (
- /**
- * @constructor
- */
- function jsx_dom_widgets_List () {
- jsx_dom_widgets_List._super.apply(this, arguments);
- }
- ).extend(_Container, {
- /**
- * (non-JSdoc)
- * @see jsx.dom.widgets.Widget.prototype.init()
- */
- init: function () {
- _List._super.prototype.init.call(this);
-
- if (!this.items)
- {
- var target = this._target;
- if (target)
- {
- var childNodes = target.children || target.childNodes;
- for (var i = 0, len = childNodes.length; i < len; ++i)
- {
- var node = childNodes[i];
- if (node.nodeType == 1)
- {
- var item = new _ListItem(node);
- item.appendTo(this);
- this.addItem(item);
- }
- }
- }
- }
- },
-
- /**
- * @memberOf jsx.dom.widgets.List.prototype
- * @param {any} listItem
- */
- addItem: function (listItem) {
- if (!this.items)
- {
- this.items = [];
- }
-
- this.items.push(listItem);
- },
-
- /**
- * @param {any} listItem
- */
- removeItem: function (item) {
- var items = this.items;
- if (items)
- {
- var i = items.indexOf(item);
- if (i > -1)
- {
- items.splice(i, 1);
- }
- }
- },
-
- /**
- * (non-JSdoc)
- * @see jsx.dom.widgets.List.prototype.update()
- */
- update: function () {
- _List._super.prototype.update.call(this);
-
- var items = this._items;
- var i;
- var len = items && items.length || 0;
-
- for (i = len; i--;)
- {
- var item = items[i];
- if (item._target.tagName.toUpperCase() != "LI")
- {
- items[i] = new _ListItem(null, null, {
- children: [item]
- });
- }
-
- items[i].update();
- }
-
- var target = this._target;
- var listItems = _gEBTN("li", -1, target);
- var len2 = listItems.length;
- for (i = 0; i < len && i < len2; ++i)
- {
- var listItem = listItems[i];
- item = items[i];
-
- if (listItem != item._target)
- {
- target.replaceChild(item._target, listItem);
- }
- }
-
- for (var j = listItems.length; j-- > i;)
- {
- target.removeChild(listItems[j]);
- }
-
- for (++j; j < len; ++j)
- {
- items[j].appendTo(this);
- }
-
- return this;
- }
- });
-
- var _OrderedList = (
- /**
- * @constructor
- */
- function jsx_dom_widgets_OrderedList () {
- jsx_dom_widgets_OrderedList._super.apply(this, arguments);
- }
- ).extend(_List, {
- /**
- * @memberOf jsx.dom.widgets.OrderedList.prototype
- */
- elementType: "ol"
- });
-
- /**
- * @function
- */
- var _UnorderedList = (
- /**
- * @constructor
- */
- function jsx_dom_widgets_UnorderedList () {
- jsx_dom_widgets_UnorderedList._super.apply(this, arguments);
- }
- ).extend(_List, {
- /**
- * @memberOf jsx.dom.widgets.UnorderedList.prototype
- */
- elementType: "ul"
- });
-
- var _Checkbox = (
- /**
- * @constructor
- */
- function jsx_dom_widgets_Checkbox (oTarget, oParent, oProperties) {
- jsx_dom_widgets_Checkbox._super.apply(this, arguments);
- }
- ).extend(_Widget, {
- /**
- * @memberOf jsx.dom.widgets.Checkbox.prototype
- */
- elementType: "input",
-
- labelPosition: _AFTER,
-
- /**
- * Unique ID of this control
- */
- _uid: -1,
-
- /**
- * (non-JSdoc)
- * @see jsx.dom.widgets.Widget.prototype.init()
- */
- init: function () {
- _Checkbox._super.prototype.init.call(this);
-
- this._target.type = "checkbox";
- this._target.id = "checkbox" + (++this._uid);
-
- var label = this.label;
- if (label)
- {
- if (typeof label.valueOf() == "string")
- {
- this.label = new _jsx_dom.widgets.Label(null, this._parent, {
- innerHTML: [label]
- });
- }
- }
- },
-
- /**
- * (non-JSdoc)
- * @see jsx.dom.widgets.Widget.prototype.render()
- */
- render: function () {
- _Checkbox._super.prototype.render.call(this);
-
- var label = this.label;
- if (label)
- {
- label._target.htmlFor = this._target.id;
- label.render();
- }
- },
-
- /**
- * (non-JSdoc)
- * @see jsx.dom.widgets.Widget.prototype.unrender()
- */
- unrender: function () {
- _Checkbox._super.prototype.unrender.call(this);
-
- if (this.label)
- {
- this.label.unrender();
- }
- },
-
- /**
- * (non-JSdoc)
- * @see jsx.dom.widgets.Widget.prototype.show()
- */
- show: function () {
- _Checkbox._super.protoype.show.call(this);
-
- if (this.label)
- {
- this.label.show();
- }
- },
-
- /**
- * (non-JSdoc)
- * @see jsx.dom.widgets.Widget.prototype.hide()
- */
- hide: function () {
- _Checkbox._super.prototype.hide.call(this);
-
- if (this.label)
- {
- this.label.hide();
- }
- },
-
- /**
- * Appends the widget as a child element
- *
- * @param parent
- * @return {Array[Widget]}
- * An {@link Array} containing the Checkbox widget and its
- * label widget, if specified.
- * @see jsx.dom.widgets.Widget.prototype.appendTo()
- */
- appendTo: function (parent) {
- _Checkbox._super.prototype.appendTo.call(this, parent);
-
- var label = this.label;
- if (label)
- {
- if (this.labelPosition === _jsx_dom.widgets.position.BEFORE)
- {
- parent._target.insertBefore(label._target, this._target);
- }
- else
- {
- if (this.labelPosition === _jsx_dom.widgets.position.AFTER)
- {
- parent._target.insertBefore(label._target, this._target.nextSibling);
- }
- }
-
- label.appendTo(parent);
- }
-
- return [this, label];
- },
-
- /**
- * (non-JSdoc)
- * @see jsx.dom.widgets.Widget.prototype.remove()
- */
- remove: function () {
- var CheckboxTarget = _Checkbox._super.prototype.remove.call(this);
- var labelTarget = this.label.remove();
- return [CheckboxTarget, labelTarget];
- }
- });
-
- var _Button = (
- /**
- * @constructor
- */
- function jsx_dom_widgets_Button (oTarget, oParent, oProperties) {
- jsx_dom_widgets_Button._super.apply(this, arguments);
- }
- ).extend(_Container, {
- /**
- * @memberOf jsx.dom.widgets.Button.prototype
- */
- elementType: "button",
-
- /**
- * (non-JSdoc)
- * @see jsx.dom.widgets.Widget.prototype.init()
- */
- init: function jsx_dom_widgets_Button_prototype_init () {
- _Button._super.prototype.init.call(this);
-
- var me = this;
-
- jsx.tryThis(
- function () {
- me._target.type = "button";
- },
-
- function () {
- /* IE 7 and other borken UAs that don't support inline-block properly */
- jsx.throwThis("jsx.dom.widgets.InitError", "jsx.dom.widgets.Button",
- jsx_dom_widgets_Button_prototype_init);
- }
- );
- }
- });
-
- var _SpinnerInput = (
- /**
- * @constructor
- * @param {Element} oTarget
- * Reference to the DOM object that represents the element that
- * provides the client area for the widget. Pass a false-value
- * to create a new element.
- * @param {Element} oParent
- * Reference to the DOM object that represents the parent element
- * for this widget. Pass <code>null</code> so that the widget
- * will not be automatically attached to the document tree.
- * You can call its {@link #appendTo()} method later to attach it.
- * @param {Object} oProperties
- */
- function jsx_dom_widgets_SpinnerInput (oTarget, oParent, oProperties) {
- var me = this;
-
- jsx_dom_widgets_SpinnerInput._super.apply(this, arguments);
-
- var target = this._target;
- if (target.type != "number")
- {
- /* If no HTML5 support, try adding arrow controls */
- jsx.tryThis(
- function () {
- me.buttonUp = new _jsx_dom.widgets.Button(null, null, {
- text: "\u25B4",
- tabIndex: target.tabIndex,
- style: {
- display: "block",
- margin: "0",
- width: "1em",
- minWidth: "0",
- padding: "0",
- lineHeight: "1em"
- },
- onclick: function () {
- me.inc();
-
- if (typeof me._target.onchange == "function")
- {
- me._target.onchange();
- }
- }
- });
-
- me.buttonDown = new _jsx_dom.widgets.Button(null, null, {
- text: "\u25BE",
- tabIndex: target.tabIndex,
- style: {
- display: "block",
- margin: "0",
- width: "1em",
- minWidth: "0",
- padding: "0",
- lineHeight: "1em"
- },
- onclick: function () {
- me.dec();
-
- if (typeof me._target.onchange == "function")
- {
- me._target.onchange();
- }
- }
- });
-
- var buttonContainer = document.createElement("div");
- buttonContainer.style.display = "inline-block";
- buttonContainer.style.lineHeight = "1em";
- buttonContainer.style.verticalAlign = "middle";
-
- buttonContainer.appendChild(me.buttonUp._target);
- buttonContainer.appendChild(me.buttonDown._target);
- target.parentNode.insertBefore(buttonContainer, target.nextSibling);
- },
-
- function (e) {
- if (!e || e.name !== "jsx.dom.widgets.InitError")
- {
- /* Rethrow unhandled exception */
- jsx.rethrowThis(e);
- }
- }
- );
-
- /* Add event listeners */
- _jsx_dom.addEventListener(target, "keydown", _jsx_dom.createEventListener(
- function (e) {
- /**
- * Increases the value of the <code>value</code> property.
- */
- // function inc()
- // {
- // var v;
- // if ((me.maxValue == Infinity || this.value < me.maxValue)
- // && !isNaN(v = parseInt(this.value, 10) + 1)
- // && (this.maxLength < 1 || v.toString().length <=
- // this.maxLength))
- // {
- // this.value = v;
- // }
- // }
- //
- // function dec()
- // {
- // var v;
- // if ((me.minValue == -Infinity || this.value > me.minValue)
- // && !isNaN(v = parseInt(this.value, 10) - 1)
- // && (this.maxLength < 1 || v.toString().length <=
- // this.maxLength))
- // {
- // this.value = v;
- // }
- // } if (me.minValue != -Infinity || me.maxValue != Infinity)
-
- if (typeof e.keyIdentifier != "undefined")
- {
- /* DOM Level 3 Events draft */
- switch (e.keyIdentifier)
- {
- case "Up":
- me.inc();
- break;
-
- case "Down":
- me.dec();
- }
- }
- else
- {
- /* currently proprietary */
- switch (e.keyCode)
- {
- case 38:
- me.inc();
- break;
-
- case 40:
- me.dec();
- }
- }
-
- me.update();
- }
- ));
-
- _jsx_dom.addEventListener(target, "keyup", function () { me.update(); });
- }
- }
- ).extend(_NumberInput, {
- /**
- * Increases the value of the input by 1
- *
- * @memberOf jsx.dom.widgets.SpinnerInput.prototype
- */
- inc: function () {
- var v, t = this._target;
-
- if ( (this.maxValue == Infinity || t.value < this.maxValue)
- && !isNaN(v = parseInt(t.value, 10) + 1)
- && (t.maxLength < 1 || v.toString().length <= t.maxLength))
- {
- t.value = v;
- }
- },
-
- /**
- * Decreases the value of the input by 1
- */
- dec: function () {
- var v, t = this._target;
-
- if ( (this.minValue == -Infinity || t.value > this.minValue)
- && !isNaN(v = parseInt(t.value, 10) - 1)
- && (t.maxLength < 1 || v.toString().length <= t.maxLength))
- {
- t.value = v;
- }
- },
-
- /**
- * (non-JSdoc)
- * @see jsx.dom.widgets.NumberInput.prototype.update()
- */
- update: function () {
- _NumberInput.prototype.update.call(this);
-
- var target = this._target;
- if (typeof target.onchange == "function")
- {
- target.onchange();
- }
-
- return this;
- }
- });
-
- var _CheckboxList = (
- /**
- * @constructor
- */
- function jsx_dom_widgets_CheckboxList () {
- jsx_dom_widgets_CheckboxList._super.apply(this, arguments);
- }
- ).extend(_UnorderedList, {
- update: function () {
- /* FIXME: Disabled update for now */
- },
-
- /**
- * Adds a checkbox to this list as child of a {@link ListItem}
- *
- * @memberOf jsx.dom.widgets.CheckboxList.prototype
- * @param {jsx.dom.widget.Checkbox} checkbox
- * @return {jsx.dom.widget.ListItem}
- * The added list item
- */
- addItem: function (item) {
- if (!(item instanceof _Checkbox))
- {
- if (!(item instanceof _ListItem))
- {
- return jsx.throwThis(jsx.InvalidArgumentError,
- [null, jsx.object.getFunctionName(item.constructor),
- "jsx.dom.widgets.Checkbox or jsx.dom.widgets.ListItem"]);
- }
-
- /* Add the contained checkbox as item */
- var checkbox = _gEBTN("input", 0, item._target);
- if (!checkbox|| checkbox.type.toLowerCase() != "checkbox")
- {
- return jsx.throwThis(jsx.InvalidArgumentError,
- [null, jsx.object.getFunctionName(checkbox.constructor),
- "jsx.dom.widgets.ListItem containing a checkbox"]);
- }
-
- checkbox = new _Checkbox(checkbox);
- }
- else
- {
- checkbox = item;
- }
-
- _CheckboxList._super.prototype.addItem.call(this, checkbox);
-
- return item;
- }
- });
-
- var _Tree = (
- /**
- * @constructor
- */
- function jsx_dom_widgets_Tree (oTarget, oParent, oProperties) {
- jsx_dom_widgets_Tree._super.apply(this, arguments);
- }
- ).extend(_Widget, {
- /**
- * @memberOf jsx.dom.widgets.Tree.prototype
- */
- _list: null,
-
- /**
- * (non-JSdoc)
- * @see jsx.dom.widgets.Widget.prototype.init()
- */
- init: function () {
- _Tree._super.prototype.init.call(this);
-
- if (!this._list)
- {
- this._list = new _UnorderedList();
- this._list.addItem(new _ListItem());
- }
- },
-
- /**
- * (non-JSdoc)
- * @see jsx.dom.widgets.Widget.prototype.update()
- */
- update: (function () {
- var update = _Tree._super.prototype.update;
-
- return function () {
- update.call(this);
-
- return this;
- };
- })
- });
-
- var _Table = (
- /**
- * @constructor
- */
- function jsx_dom_widgets_Table (oTarget, oParent, oProperties) {
- jsx_dom_widgets_Table._super.apply(this, arguments);
- }
- ).extend(_Widget, {
- filterColumns: [],
-
- /**
- * (non-JSdoc)
- * @memberOf jsx.dom.widgets.Table.prototype
- * @see jsx.dom.widgets.Widget.prototype.init()
- */
- init: function () {
- _jsx_dom.widgets.Table._super.prototype.init.call(this);
-
- if (this.addTitles)
- {
- var id2title = {};
- var rxSpace = /[ \t\n\x0C\r]+/;
-
- for (var rows = this._target.tBodies[0].rows, i = rows.length; i--;)
- {
- var row = rows[i];
- for (var cells = row.cells, j = cells.length; j--;)
- {
- var cell = cells[j];
- var headerIds = cell.headers;
- if (headerIds)
- {
- headerIds = headerIds.split(rxSpace);
- var titlePrefixes = [];
-
- for (var k = 0, len3 = headerIds.length; k < len3; ++k)
- {
- var headerId = headerIds[k];
- var titlePrefix = id2title[headerId];
- if (!titlePrefix)
- {
- var header = document.getElementById(headerId);
- if (header)
- {
- titlePrefix = id2title[headerId] =
- header.abbr
- || header.title
- || header.textContent;
- }
- }
-
- if (titlePrefix)
- {
- titlePrefixes.push(titlePrefix);
- }
- }
-
- titlePrefixes = titlePrefixes.join("/");
- cell.title = (cell.title
- ? titlePrefixes + ": " + cell.title
- : titlePrefixes);
- }
- }
- }
- }
- },
-
- /**
- * Filters the rows of the table's first tbody, searching a filter
- * string in the filter columns.
- *
- * @function
- */
- applyFilter: (function () {
- var _getContent = _jsx_dom.getContent;
-
- /**
- * @param {String} filterString
- * The string by which rows should be filtered
- * @return {boolean}
- * <code>true</code> if the filter could be applied,
- * <code>false</code> otherwise. Note that <code>true</code> means only
- * that the filter could be applied, not that any rows are filtered out.
- */
- function _applyFilter (filterString)
- {
- /* Imports */
- var _escape = jsx.regexp.escape;
-
- var filterColumns = this.filterColumns;
-
- if (!filterColumns || filterColumns.length < 1)
- {
- return false;
- }
-
- var expressions = [];
-
- for (var rows = this._target.tBodies[0].rows, i = rows.length; i--;)
- {
- var row = rows[i];
- row.style.display = "none";
-
- for (var j = 0, len = filterColumns.length; j < len; ++j)
- {
- var column = filterColumns[j];
-
- if (!expressions[j])
- {
- var srx = (column.prefix ? "^" : "") + filterString;
- jsx.tryThis(
- function () {
- expressions[j] = column.ignoreCase ? new RegExp(srx, "i") : new RegExp(srx);
- },
- function (e) {
- if (e.name == "SyntaxError")
- {
- srx = (column.prefix ? "^" : "") + _escape(filterString);
- expressions[j] = column.ignoreCase ? new RegExp(srx, "i") : new RegExp(srx);
- }
- else
- {
- jsx.rethrowThis(e);
- }
- });
- }
-
- if (expressions[j].test(_getContent(row.cells[column.index])))
- {
- row.style.display = "";
- break;
- }
- }
- }
-
- return true;
- }
-
- return _applyFilter;
- }())
- });
-
- /**
- * A <code>Timer</code> widget uses several <code>NumberInput</code>
- * widgets to implement a digital timer.
- */
- var _Timer=(
- /**
- * @constructor
- * @param {Element} oTarget
- * Reference to the DOM object that represents the
- * element that provides the client area for the widget. Pass a
- * false-value to create a new element.
- * @param {Element} oParent
- * Reference to the DOM object that represents the parent
- * element for this widget. Pass <code>null</code> so that the
- * widget will not be automatically attached to the document
- * tree. You can call its {@link #appendTo()} method later to
- * attach it.
- * @param {Object} oProperties
- * @base jsx.dom.Widget
- * @see NumberWidget
- */
- function jsx_dom_widgets_Timer (oTarget, oParent, oProperties) {
- jsx_dom_widgets_Timer._super.apply(this, arguments);
- }
- ).extend(_Container);
-
- var _InitError = (
- /**
- * @constructor
- */
- function jsx_dom_widgets_InitError (widgetType) {
- jsx_dom_widgets_InitError._super.call(this, widgetType);
- }
- ).extend(jsx.Error, {
- /**
- * @memberOf jsx.dom.widgets.InitError.prototype
- */
- name: "jsx.dom.widgets.InitError"
- });
-
- return {
- /**
- * @memberOf jsx.dom.widgets
- * @version
- */
- version: "$Id$",
-
- /**
- * @namespace
- */
- position: {
- BEFORE: -1,
- AFTER: _AFTER
- },
-
- Widget: _Widget,
- Container: _Container,
-
- /**
- * @function
- */
- Section: _Section,
-
- /**
- * @function
- */
- Anchor: _Anchor,
-
- /**
- * @function
- */
- Label: _Label,
-
- /**
- * @function
- */
- TextArea: _TextArea,
-
- /**
- * @function
- */
- Checkbox: _Checkbox,
-
- /**
- * @function
- */
- Input: _Input,
-
- /**
- * @function
- */
- Button: _Button,
-
- /**
- * @function
- */
- NumberInput: _NumberInput,
-
- /**
- * Input widget that allows the user to increase or decrease its
- * current value
- *
- * <p>A <code>SpinnerInput</code> is a
- * {@link jsx.dom.widgets#NumberInput NumberInput}
- * that allows the user to increase or decrease its current value
- * with the arrow keys or the attached arrow buttons ("to spin" it).
- * It is possible to define a minimum or maximum value.</p>
- *
- * <p>If buttons are generated by JSX, they are accessible as
- * {@link jsx.dom.widgets#Button Button} instances via the
- * <code>buttonUp</code> and <code>buttonDown</code> properties
- * of the widget, respectively.</p>
- *
- * @see jsx.dom.widgets#NumberInput
- */
- SpinnerInput: _SpinnerInput,
-
- /**
- * @function
- */
- ListItem: _ListItem,
-
- /**
- * @function
- */
- List: _List,
-
- /**
- * @function
- */
- OrderedList: _OrderedList,
-
- /**
- * @function
- */
- UnorderedList: _UnorderedList,
-
- CheckboxList: _CheckboxList,
-
- /**
- * @type function
- */
- Tree: _Tree,
-
- /**
- * A <code>Table</code> widget provides a default <code>TABLE</code>
- * element object with additional features, such as filtering rows.
- */
- Table: _Table,
-
- /**
- * @function
- */
- Timer: _Timer,
-
- /**
- * @function
- */
- InitError: _InitError
- };
-}());
-
-function handleKeypress(e)
-{
- console.log("e = ", e);
- if (e)
- {
- var t = e._target || e.srcElement;
- console.log("t = ", t);
- if (t && /^\s*\binput\b\s*$/i.test(t.tagName)
- && /^\s*\btext\b\s*$/i.test(t.type))
- {
- var keyCode =
- (typeof e.which != "undefined" ? e.which
- : (typeof e.keyCode != "undefined" ? e.keyCode : 0));
-
- /* Allow control characters and numbers only */
- console.log("keyCode = ", keyCode);
- if (! (keyCode < 32 || (keyCode >= "0".charCodeAt(0) && keyCode <= "9"
- .charCodeAt(0))))
- {
- /* W3C DOM */
- if (jsx.object.isMethod(e, "stopPropagation"))
- {
- e.stopPropagation();
- }
-
- /* MSHTML DOM */
- if (typeof e.cancelBubble != "undefined")
- {
- e.cancelBubble = true;
- }
-
- /* W3C DOM */
- /*
- * Order is important for Firefox 2: cancelBubble exists after
- * preventDefault() and changes DOM behavior (event is NOT
- * canceled then if cancelBubble is assigned `true')
- */
- if (jsx.object.isMethod(e, "preventDefault"))
- {
- e.preventDefault();
- }
- else
- {
- e.returnValue = false;
- }
-
- /* DEBUG */
- // console.log(e);
- }
- }
- }
-}
\ No newline at end of file
/live/dom/widgets.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/dom/ani.js
===================================================================
--- live/dom/ani.js (revision 509)
+++ live/dom/ani.js (nonexistent)
@@ -1,1225 +0,0 @@
-"use strict";
-/**
- * @author PointedEars
- * @requires dom.js
- * @requires dom/css.js
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-/**
- * Retrieves an {@link Array} element as if by the expression
- * <code><var>a</var>.slice(<var>index</var>,
- * <var>index</var> + 1)[0]</code>.
- *
- * If <var>index</var> is negative, its absolute is counted
- * from the end of <var>a</var>.
- *
- * @param {Array} a
- * @param {Number} index
- * @return {any}
- */
-Array.get = function (a, index) {
- if (isNaN(index))
- {
- jsx.throwThis("jsx.InvalidArgumentError", ["",
- "(" + typeof a + ", " + typeof index + ")",
- "(object[Array], number)"]);
- }
-
- index = +index;
-
- if (index >= 0)
- {
- return a[index];
- }
-
- return a[a.length + index];
-};
-
-if (typeof jsx.dom == "undefined")
-{
- /**
- * @namespace
- */
- jsx.dom = {};
-}
-
-/**
- * @namespace
- */
-jsx.dom.animation = (/** @constructor */ function () {
- /* Imports */
- var _jsx = jsx;
- var _jsx_object = _jsx.object;
- var _getKeys = _jsx_object.getKeys;
- var _getProperty = _jsx_object.getProperty;
- var _jsx_dom = _jsx.dom;
- var _jsx_dom_css = _jsx_dom.css;
- var _Color = _jsx_dom_css.Color;
- var _types = _jsx_dom_css.types;
-
- /**
- * @type jsx.dom.animation.NoTimelineError
- * @function
- */
- var _NoTimelineError = (
- /**
- * @constructor
- */
- function jsx_dom_animation_NoTimelineError () {
- jsx_dom_animation_NoTimelineError._super.call(
- this, "Need at least one Timeline for an Animation");
- }
- ).extend(jsx.Error, {
- /**
- * @memberOf jsx.dom.animation.NoTimelineError.prototype
- */
- name: "jsx.dom.animation.NoTimelineError"
- });
-
- /**
- * Built-in interpolator that provides linear time interpolation.
- *
- * @function
- */
- var _interpolator_LINEAR = (function () {
- var _isInstanceOf = _jsx_object.isInstanceOf;
-
- /**
- * @param startValue
- * @param endValue
- * @param {Number} fraction
- * @return
- * <var>startValue</var>
- * + (<var>endValue</var> − <var>startValue</var>)
- * × <var>fraction</var>
- */
- function jsx_dom_animation_interpolator_LINEAR
- (startValue, endValue, fraction) {
- if (_isInstanceOf(startValue, _Color)
- && _isInstanceOf(endValue, _Color))
- {
- return new _Color(
- startValue.red + (endValue.red - startValue.red) * fraction,
- startValue.green + (endValue.green - startValue.green) * fraction,
- startValue.blue + (endValue.blue - startValue.blue) * fraction,
- startValue.opacity + (endValue.opacity - startValue.opacity) * fraction
- );
- }
-
- return startValue + (endValue - startValue) * fraction;
- }
-
- return jsx_dom_animation_interpolator_LINEAR;
- }());
-
- var keyFrameComparator = function (a, b) {
- return a.compareTo(b);
- };
-
- var _MIN_TIMEOUT = 10;
- var _MIN_FRAME_LENGTH = _MIN_TIMEOUT + 1;
-
- /**
- * A <code>Timeline</code> consists of {@link #KeyFrame KeyFrames}
- * and can have subordered timelines ("child timelines"). Unless
- * specified otherwise, the time offset of an item in one timeline
- * depends on the previous item in that timeline.
- *
- * <pre>
- * Timeline: ---Action0------Action1------Action2-----Action3->
- * </pre>
- * <p>
- * A <code>Timeline</code> may be standalone or part an
- * {@link #Animation}, specified by the <code>Animation</code>'s
- * <code>timelines</code> property, which allows it to be played
- * parallel to other timelines:
- * </p>
- * <pre>
- * Animation ---.
- * Timeline 1: :--Action0------Action1------Action2-----Action3->
- * Timeline 2: `----------Action0------Action1-------Action2---->
- * </pre>
- * <p>
- * An item in a timeline can also be a <code>Timeline</code> itself
- * ("child timeline"), in which case the time offset of the child
- * timeline depends on the previous action in the parent timeline,
- * however the time offset of the next action in the parent is
- * independent of the child.
- * In that case, the child timeline affects the same target object
- * as its parent unless specified otherwise.
- * </p>
- * <pre>
- * Animation ---.
- * Timeline 1: :---Action0------+----------Action1a------------->
- * Timeline 1a: | `---Action1a:0---Action1a:1----->
- * Timeline 2: `-------Action0------Action1-------Action2------->
- * </pre>
- * <p>
- * There is no explicit limit as to how deep timelines may be nested.
- * However, for playing the frames of the animation each timeline's
- * play() method must call the play() method of its child timelines.
- * As a result, nesting depth is limited implicitly by the available
- * stack space or limits imposed by the ECMAScript implementation,
- * whichever comes first. Further, the more timelines are nested,
- * the more operations need be performed at approximately the same
- * time; this can slow down the entire animation considerably and
- * lead to considerably higher CPU load.
- * </p>
- * @type jsx.dom.animation.Timeline
- */
- var _Timeline = jsx.object.extend(
- /**
- * @constructor
- * @param {Object} oParams
- * @throws jsx.InvalidArgumentError if no parameters were specified
- */
- function jsx_dom_animation_Timeline (oParams) {
- if (!oParams)
- {
- jsx.throwThis("jsx.InvalidArgumentError",
- ["Not enough arguments", typeof oParams, "Object"]);
- }
-
- var uid = (new Date()).getTime();
- this.id = uid;
-
- _jsx_object.defineProperties(this, {
- currentRate: {
- get: function () {
- return this.getCurrentRate();
- }
- },
-
- frameRate: {
- get: function () {
- return this.getFrameRate();
- },
-
- set: function (frameRate) {
- return this.setFrameRate(frameRate);
- }
- },
-
- id: {
- value: uid
- }
- }, "jsx.dom.animation.Timelime");
-
- for (var param in this)
- {
- var paramValue = oParams[param];
-
- if (typeof paramValue != "undefined")
- {
- if (param == "frameLength" && paramValue < 11)
- {
- paramValue = 11;
- jsx.warn("Normalizing frameLength to 11");
- }
-
- this[param] = paramValue;
- }
- }
-
- /* Sort keyFrames by time */
- var keyFrames = this.keyFrames;
- var duration = Array.get(keyFrames, -1).time;
-
- /* Compute keyframe times that are percentages of the duration */
- var rxTimePercentage = /^\s*\+?(\d+|\d*\.\d+)\s*%\s*$/;
- for (var i = 0, len = keyFrames.length; i < len; ++i)
- {
- var keyFrame = keyFrames[i];
-
- if (!(keyFrame instanceof _Frame))
- {
- keyFrame = new _KeyFrame(keyFrame);
- keyFrames[i] = keyFrame;
- }
-
- keyFrame._timeline = this;
-
-// if (len < keyFrames.length - 1)
-// {
- var time = keyFrame.time;
- if (typeof time == "string")
- {
- var match = time.match(rxTimePercentage);
- if (match)
- {
- keyFrame.time = Math.floor(duration * (match[1] / 100));
- }
- }
-// }
- }
-
- keyFrames.sort(keyFrameComparator);
-
-// if (this.autoReverse)
-// {
-// if (keyFrames.length > 0)
-// {
-// /* Add mirrored keyframes */
-// var lastKeyFrame = Array.get(keyFrames, -1);
-// for (var i = keyFrames.length - 2; i > -1; --i)
-// {
-// var keyFrameToClone = keyFrames[i];
-// var keyFrameClone = jsx_object.clone(
-// jsx_object.COPY_ENUM_DEEP, keyFrameToClone);
-// keyFrameClone.time =
-// 2 * lastKeyFrame.time - keyFrameToClone.time;
-// keyFrames.push(keyFrameClone);
-// }
-// }
-// }
- },
- {
- INDEFINITE: Number.POSITIVE_INFINITY,
- MIN_TIMEOUT: _MIN_TIMEOUT,
- MIN_FRAME_LENGTH: _MIN_FRAME_LENGTH,
-
- /**
- * Sets the <code>position</code> property of the target
- * so that it can be animated.
- *
- * Sets the <code>position</code> property of the target
- * to <code>relative</code> if it has been declated to be
- * <code>static</code> or not declared at all.
- *
- * @function
- */
- _setPosition: (function () {
- var _getComputedStyle = jsx.dom.css.getComputedStyle;
-
- /**
- * @param {Element} target
- */
- function jsx_dom_animation_Timeline_setPosition (target)
- {
- if (_getComputedStyle(target, null, "position") == "static")
- {
- target.style.position = "relative";
- }
- }
-
- return jsx_dom_animation_Timeline_setPosition;
- }())
- }).extend(null, {
- /**
- * @memberOf jsx.dom.animation.Timeline.prototype
- * @type Object
- */
- target: null,
-
- /**
- * @type Array[#KeyFrame]
- */
- keyFrames: [],
-
- /**
- * Defines whether this animation reverses direction on
- * alternating cycles.
- *
- * If <code>true</code>, the animation will proceed forward
- * on the first cycle, then* reverses on the second cycle,
- * and so on. Otherwise, animation will loop such that each
- * cycle proceeds forward from the initial {@link #KeyFrame}.
- */
- autoReverse: false,
-
- /**
- * Length of a frame in milliseconds (ms). The default value
- * is MIN_FRAME_LENGTH so that frames at 0 ms normalized
- * to MIN_TIMEOUT are played before the second frame.
- */
- frameLength: _MIN_FRAME_LENGTH,
-
- /**
- * If <code>true</code> (default), native (CSS3) animations
- * are preferred. Overridden by the <code>preferNative</code>
- * property of an enclosing {@link #Animation}.
- */
- preferNative: true,
-
- /**
- * Defines the number of cycles in this animation. The
- * repeatCount may be <code>INDEFINITE</code> for animations
- * that repeat indefinitely, but must otherwise be &gte; 0.
- */
- repeatCount: 1,
-
- /**
- * Indicates the current direction/speed at which the
- * <code>Timeline</code> is being played, in frames per second.
- *
- * @return {Number}
- */
- getCurrentRate: function () {
- return (this._playing) ? this.getFrameRate() : 0.0;
- },
-
- /**
- * Indicates the total duration of this <code>Timeline</code>,
- * including repeats. A <code>Timeline</code> with a
- * <code>repeatCount</code> of <code>Timeline.INDEFINITE</code>
- * will have a <code>totalDuration</code> of
- * <code>Duration.INDEFINITE</code>.
- *
- * @return {Number}
- */
- getTotalDuration: function () {
- return Array.get(this.keyFrames, -1).time
- * (this.autoReverse ? 2 : 1) * this.repeatCount;
- },
-
- /**
- * Retrieves the maximum frame rate at which this
- * <code>Timeline</code> will play, in frames per second.
- *
- * @return {Number}
- */
- getFrameRate: function () {
- return 1000 / this.frameLength;
- },
-
- /**
- * Sets the maximum frame rate at which this
- * <code>Timeline</code> will play, in frames per second.
- *
- * This can be used, for example, to keep particularly complex
- * <code>Timelines</code> from over-consuming system resources.
- * By default a <code>Timeline</code>'s frame rate is not
- * explicitly limited, meaning the <code>Timeline</code> will
- * play at an optimal frame rate for the underlying platform.
- *
- * @param {Number} frameRate
- * The maximum frame rate at which this <code>Timeline</code>
- * will play, in frames per second. Frame rates above 90 fps
- * that result in a frame length shorter than 11 ms are
- * normalized.
- * @return {Number}
- * The effective maximum frame rate, in frames per second
- */
- setFrameRate: function (frameRate) {
- if (this._playing)
- {
- jsx.info("Cannot change frame rate while playing");
- return false;
- }
-
- /*
- * NOTE: Rounding down the frame length up and number of frames
- * should help with odd frame lengths/times; frame length not
- * rounded down (faster) to avoid animtion stall.
- */
- var frameLength = Math.ceil(1000 / frameRate);
- if (frameLength < _Timeline.MIN_FRAME_LENGTH)
- {
- jsx.info("Requested frame rate of " + frameRate
- + " fps (frame length of " + frameLength + " ms)"
- + " was normalized to ca. "
- + (1000 / _Timeline.MIN_FRAME_LENGTH) + " fps"
- + " (" + _Timeline.MIN_FRAME_LENGTH + " ms)");
- frameLength = _Timeline.MIN_FRAME_LENGTH;
- }
-
- this.frameLength = frameLength;
-
- return frameLength;
- },
-
- /**
- * Instructs the <code>Timeline</code> to evaluate all
- * <code>KeyValue.value</code>s in the <code>Timeline</code>.
- *
- * @function
- */
- evaluateKeyValues: function () {
- var keyFrames = this.keyFrames;
-
- for (var i = 1, len = keyFrames.length; i < len; ++i)
- {
- var nextValues = keyFrames[i].values;
- var previousValues = keyFrames[i - 1].values;
-
- for (var propertyName in nextValues)
- {
- var newPropertyValue = nextValues[propertyName];
- var oldPropertyValue = previousValues[propertyName];
-
- if (propertyName == "style")
- {
- /* Compute the original values if not given */
- for (var stylePropertyName in newPropertyValue)
- {
- var oldStylePropertyValue = oldPropertyValue[stylePropertyName];
- if (typeof oldStylePropertyValue == "undefined")
- {
- oldStylePropertyValue = _jsx_dom_css.getComputedStyle(
- this.target, null, stylePropertyName);
- }
-
- var propertyType = _getProperty(
- _jsx_dom_css.propertyInfo, stylePropertyName,
- {type: null}).type;
- switch (propertyType)
- {
- case _types.LENGTH:
- if (isNaN(oldStylePropertyValue))
- {
- oldStylePropertyValue = parseFloat(oldStylePropertyValue);
-
- if (isNaN(oldStylePropertyValue))
- {
- switch (stylePropertyName)
- {
- case "width":
- oldStylePropertyValue = this.target.offsetWidth;
- break;
-
- case "height":
- oldStylePropertyValue = this.target.offsetHeight;
- break;
- }
- }
- }
- break;
-
- case _types.COLOR:
- if (!_jsx_object.isInstanceOf(oldStylePropertyValue, _Color))
- {
- oldStylePropertyValue = new _Color(oldStylePropertyValue);
- }
- break;
- }
-
- if (typeof oldPropertyValue[stylePropertyName] == "undefined")
- {
- oldPropertyValue[stylePropertyName] = oldStylePropertyValue;
- }
- }
-
- /*
- * Set the old style value if the new one was not given.
- * NOTE: Objects are _not_ cloned here, but this
- * should not matter.
- */
- for (stylePropertyName in oldPropertyValue)
- {
- if (typeof newPropertyValue[stylePropertyName] == "undefined")
- {
- newPropertyValue[stylePropertyName] =
- oldPropertyValue[stylePropertyName];
- }
- }
- }
- else
- {
- if (typeof oldPropertyValue == "undefined")
- {
- previousValues[propertyName] = this.target[propertyName];
- }
- }
- }
-
- /* Set old value if the new one was not given */
- for (var propertyName in previousValues)
- {
- if (typeof nextValues[propertyName] == "undefined")
- {
- nextValues[propertyName] = oldPropertyValue[propertyName];
- }
- }
- }
- },
-
- /**
- * Returns the name of the CSS property for native animation.
- *
- * @function
- */
- _getNativeProperty: (function () {
- var _camelize = jsx.dom.css.camelize;
-
- /**
- * @return {string}
- * Returns the first CSS property available for native
- * animation, preferring the unprefixed name, or
- * the empty string if no such property is available.
- */
- function _getNativeProperty ()
- {
- var result = "";
- var cssPropertyNames = [
- "animation-name",
- "-moz-animation-name",
- "-webkit-animation-name"
- ];
- var style = this.target.style;
-
- for (var i = 0, len = cssPropertyNames.length; i < len; ++i)
- {
- var cssPropertyName = cssPropertyNames[i];
- var propertyName = _camelize(cssPropertyName);
- if (typeof style[propertyName] != "undefined")
- {
- return cssPropertyName;
- }
- }
-
- return result;
- }
-
- return _getNativeProperty;
- }()),
-
- /**
- * Defines a native (CSS3) animation
- *
- * @param {String} animationPropertyName
- * Name of the animation property, with optional
- * vendor-specific prefix.
- * @returns {Boolean}
- * <code>true</code> if the definition is successful,
- * <code>false</code> otherwise.
- */
- _playNative: function (animationNameProperty) {
- var target = this.target;
- var timelineId = this.id;
- if (typeof target.id == "undefined")
- {
- target.id = "timeline-" + timelineId + "-target";
- }
-
- var targetId = target.id;
-
- _Timeline._setPosition(target);
-
- /* FIXME: Reset _here_ has no effect */
- var styleId = "jsx-style-" + timelineId;
- var style = document.getElementById(styleId);
- if (style)
- {
- style.parentNode.removeChild(style);
- }
-
- style = document.createElement("style");
- style.type = "text/css";
- style.id = styleId;
- var prefix = (animationNameProperty.match(/^-[^-]+/) || [""])[0];
- if (prefix)
- {
- prefix += "-";
- }
-
- style.appendChild(document.createTextNode([
- "@" + prefix + "keyframes jsx-timeline-" + timelineId + " {",
- this.keyFrames.join("\n"),
- "}",
- "#" + targetId + " {",
- " " + animationNameProperty + ": jsx-timeline-" + timelineId + ";",
- " " + prefix + "animation-duration: "
- + Array.get(this.keyFrames, -1).time + "ms;",
- " " + prefix + "animation-fill-mode: forwards;",
- " " + prefix + "animation-timing-function: linear;",
- "}"
- ].join("\n")));
-
- var head = document.head || document.getElementsByTagName("head")[0];
- head.appendChild(style);
-
- return true;
- },
-
- /**
- * Plays this <code>Timeline</code>
- *
- * @function
- */
- play: (function () {
- var
- getPropertySetter = function (target, values, bDontPlay, oTimeline) {
- function _propertySetter ()
- {
- var setToRelative = false;
-
- for (var property in values)
- {
- if (property == "style")
- {
- var style = values.style;
- for (var styleProperty in style)
- {
- var thisPropertyInfo = _jsx_dom_css.propertyInfo[styleProperty];
- if (thisPropertyInfo && thisPropertyInfo.type == _types.LENGTH)
- {
- if (!setToRelative && typeof style.position == "undefined")
- {
- _Timeline._setPosition(target);
- setToRelative = true;
- }
-
- _jsx_dom_css.setStyleProperty(
- target, styleProperty, style[styleProperty] + "px");
- }
- else
- {
- _jsx_dom_css.setStyleProperty(
- target, styleProperty, style[styleProperty]);
- }
- }
- }
- else
- {
- target[property] = values[property];
- }
- }
-
- if (bDontPlay)
- {
- oTimeline._playing = false;
- }
- }
-
- return _propertySetter;
- };
-
- function jsx_animation_Timeline_play ()
- {
- /* First clear all remaining timeouts */
- this.stop();
-
- if (this.preferNative)
- {
- var nativeProperty = this._getNativeProperty();
- if (nativeProperty)
- {
- return this._playNative(nativeProperty);
- }
- }
-
- if (!this._keyValuesEvaluated)
- {
- this.evaluateKeyValues();
- this._keyValuesEvaluated = true;
- }
-
- /* Fix frame length to be integer and long enough */
- this.setFrameRate(this.getFrameRate());
- var dt = this.frameLength;
-
- this._playing = true;
-
- for (var i = 1, len = this.keyFrames.length; i < len; ++i)
- {
- var nextKeyFrame = this.keyFrames[i];
- var previousKeyFrame = this.keyFrames[i - 1];
- var previousValues = previousKeyFrame.values;
- var nextValues = nextKeyFrame.values;
-
- /* Display the previous keyframe, then play the tween */
-
- /*
- * NOTE: Rounding the frame length up (see above) and the number
- * of frames down should help with odd frame lengths/times;
- * frame length not rounded down (faster) to avoid animation stall.
- */
- var numFrames = Math.floor(
- (nextKeyFrame.time - previousKeyFrame.time) / dt);
-
- var frameValues = _jsx_object.clone(
- _jsx_object.COPY_ENUM_DEEP, previousValues);
- var t = previousKeyFrame.time;
-
- var lastFrameIndex = numFrames - 1;
- for (var currentFrameIndex = 0;
- currentFrameIndex < lastFrameIndex;
- ++currentFrameIndex)
- {
- for (var property in frameValues)
- {
- var interpolate = nextKeyFrame.interpolate;
- if (property == "style")
- {
- var previousStyle = previousValues.style;
- var frameStyle = frameValues.style;
- var nextStyle = nextValues.style;
-
- for (var styleProperty in frameStyle)
- {
- interpolate = nextKeyFrame.interpolate;
- var nextStyleValue = nextStyle[styleProperty];
- if (_jsx_object.isInstanceOf(nextStyleValue, _KeyValue))
- {
- nextStyleValue = nextStyleValue.value;
- interpolate = nextStyleValue.interpolate;
- }
-
- frameStyle[styleProperty] = interpolate(
- previousStyle[styleProperty],
- nextStyleValue,
- currentFrameIndex / numFrames);
- }
- }
- else
- {
- var nextValue = nextValues[property];
-
- if (_jsx_object.isInstanceOf(nextValue, _KeyValue))
- {
- nextValue = nextValue.value;
- interpolate = nextValue.interpolate;
- }
-
- frameValues[property] = interpolate(
- previousValues[property],
- nextValue,
- currentFrameIndex / numFrames);
- }
- }
-
- this._timeouts.push(
- window.setTimeout(
- getPropertySetter(this.target,
- _jsx_object.clone(_jsx_object.COPY_ENUM_DEEP, frameValues),
- false, this),
- t));
-
- t += dt;
- }
-
- /* Display the last keyframe */
- if (i == this.keyFrames.length - 1)
- {
- this._timeouts.push(
- window.setTimeout(
- getPropertySetter(this.target, nextValues, true, this),
- t));
- }
- }
- }
-
- return jsx_animation_Timeline_play;
- }()),
-
- /**
- * Prevents the <code>Timeline</code> from continuing to play.
- */
- stop: function () {
- var timeouts = this._timeouts;
- for (var i = 0, len = timeouts && timeouts.length; i < len; ++i)
- {
- window.clearTimeout(timeouts[i]);
- }
-
- /**
- * @private
- */
- this._timeouts = [];
- }
- });
-
- /**
- * A <code>Frame</code> defines target values at a specified point
- * in time for a set of properties of the target object of
- * a {@link #Timeline Timeline}.
- *
- * <p>
- * This type is usually used only internally to compute the frames
- * between a set of given {@link #KeyFrame KeyFrame}s.
- * </p><p>
- * By contrast to <code>KeyFrame</code>s, inserting a
- * <code>Frame</code> into a <code>Timeline</code> does not cause
- * computation of additional <code>Frame</code>s with regard to
- * adjacent <code>Keyframe</code>s. You can do so if you need
- * full control over the <code>Timeline</code>, for example
- * if you want an object to "jump" from one screen area to a
- * more distant one instead of producing a gradual change of
- * its coordinates, or if you want to use a set of
- * <code>Frame</code>s or <code>Frame</code>-compatible objects
- * that are the result of computation by another framework.
- * </p>
- *
- * @type jsx.dom.animation.Frame
- */
- var _Frame = (
- /**
- * @constructor
- * @param {Object} oParams
- * @throws jsx.InvalidArgumentError if no parameters were specified
- */
- function (oParams) {
- if (!oParams)
- {
- jsx.throwThis(jsx.InvalidArgumentError,
- ["Not enough arguments", typeof oParams, "Object"]);
- }
-
- var keys = _getKeys(oParams);
- for (var i = 0, len = keys.length; i < len; ++i)
- {
- var paramName = keys[i];
- var param = oParams[paramName];
-
- if (typeof param != "undefined")
- {
- if (paramName == "time" && typeof param != "number")
- {
- /*
- * Convert duration to milliseconds
- */
- var rxTime = /^\s*\+?(\d+|\d*\.\d+)\s*(ms|s|m(in)?|h|%)\s*$/;
- var match = param.match(rxTime);
- if (match)
- {
- /*
- * NOTE: Percentages are supported but can only
- * be resolved later in jsx.dom.animation.Timeline().
- */
- switch (match[2])
- {
- case "ms":
- param = +match[1];
- break;
-
- case "s":
- param = +match[1] * 1000;
- break;
-
- case "m":
- case "min":
- param = +match[1] * 60000;
- break;
-
- case "h":
- param = +match[1] * 3600000;
- break;
- }
- }
- else
- {
- return jsx.throwThis("jsx.InvalidArgumentError",
- ["Invalid time", "'" + param + "'",
- "one matching " + rxTime.source]);
- }
- }
-
- this[paramName] = param;
- }
- }
- }
- ).extend(null, {
- /**
- * @memberOf jsx.dom.animation.Frame.prototype
- */
- time: 0,
- values: {}
- });
-
- /**
- * A <code>KeyFrame</code> is a special {@link #Frame Frame} that
- * defines target values at a specified point in time for a set
- * of properties that are interpolated along a {@link #Timeline}.
- *
- * The developer controls the interpolation of a set of properties
- * for the interval between successive key frames by providing
- * a target value and an {@link #interpolator} associated with
- * each property, or that of the KeyFrame itself which is used
- * for all properties defined for the <code>KeyFrame</code> unless
- * specified otherwise. The properties are interpolated such that
- * they will reach their target value at the specified time.
- * An <var>action</var> function is invoked on each
- * <code>KeyFrame</code> if one is specified.
- *
- * @type jsx.dom.animation.KeyFrame
- */
- var _KeyFrame = (
- /**
- * @constructor
- * @param oParams
- * @throws jsx.InvalidArgumentError if no parameters were specified
- */
- function jsx_dom_animation_KeyFrame (oParams) {
- jsx_dom_animation_KeyFrame._super.call(this, oParams);
- }
- ).extend(_Frame, {
- /**
- * A comparison function used to sort <code>KeyFrames</code>
- * by their specified reference time.
- *
- * @memberOf jsx.dom.animation.KeyFrame.prototype
- * @param {KeyFrame} targetFrame
- * @return {number}
- * An integer value <var>i</var> where
- * <ul>
- * <li><var>i</var> > 0 if <var>targetFrame</var>'s
- * timing is ahead of this one's</li>
- * <li><var>i</var> = 0 if they have the same timing</li>
- * <li><var>i</var> &lt; 0 if <var>targetFrame</var>'s
- * timing is behind this one's</li>
- * </ul>
- */
- compareTo: function (targetFrame) {
- return this.time - targetFrame.time;
- },
-
- /**
- * {@link #interpolator} to be used for calculating the
- * key values along the particular interval. By default,
- * {@link #interpolator.LINEAR} is used.
- */
- interpolate: _interpolator_LINEAR,
-
- toString: function () {
- var style = this.values.style;
- var keys = _getKeys(style);
- var aValues = [];
- for (var i = 0, len = keys.length; i < len; ++i)
- {
- var stylePropertyName = keys[i];
- var propertyValue = style[stylePropertyName];
-
- var propertyType = _getProperty(
- _jsx_dom_css.propertyInfo, stylePropertyName, {type: null}).type;
- switch (propertyType)
- {
- case _types.LENGTH:
- propertyValue += "px";
- break;
- }
-
- var cssPropertyName = _jsx_dom_css.uncamelize(stylePropertyName);
-
- aValues.push(" " + cssPropertyName + ": " + propertyValue + ";");
- }
-
- var time = this.time + "ms";
- if (this._timeline)
- {
- time = (this.time / Array.get(this._timeline.keyFrames, -1).time * 100)
- + "%";
- }
-
- return " " + time + " {\n"
- + aValues.join("\n")
- + "\n }";
- }
- });
-
- /**
- * @type jsx.dom.animation.KeyValue
- */
- var _KeyValue = (
- /**
- * @constructor
- * @param {Object} oParams
- */
- function (oParams) {
- if (!oParams)
- {
- jsx.throwThis(jsx.InvalidArgumentError,
- ["Not enough arguments", typeof oParams, "Object"]);
- }
-
- for (var paramName in this)
- {
- var param = oParams[paramName];
- if (typeof param != "undefined")
- {
- this[paramName] = param;
- }
- }
- }
- ).extend(null, {
- /**
- * {@link #interpolator} to be used for calculating the
- * key value along the particular interval. By default,
- * {@link #interpolator.LINEAR} is used.
- *
- * @memberOf jsx.dom.animation.KeyValue.prototype
- */
- interpolate: _interpolator_LINEAR,
-
- value: null
- });
-
- return {
- /**
- * @memberOf jsx.dom.animation
- */
- version: "0.1.$Revision$",
-
- NoTimelineError: _NoTimelineError,
-
- /**
- * An <code>Animation</code> is a set of one or more
- * {@link #Timeline Timelines} being played in parallel
- * when the animation is played. Each <code>Timeline</code>
- * is supposed to animate another target object (but that
- * is not required).
- *
- * @type jsx.dom.animation.Animation
- */
- Animation: (
- /**
- * @constructor
- * @param {Object} oParams
- * The parameters of this animation. Supported parameters,
- * to be specified as properties of <var>oParams</var>,
- * include:
- * <dl>
- * <dt><code><var>target</var> : Object</code></dt>
- * <dd>Reference specifying the object to animate.
- * If specified, the timelines of this animation
- * automatically inherit its target; if not specified
- * for the animation, each timeline of an animation
- * MUST specify its target.</dd>
- * <dt><code><var>timelines</var> : Array</code></dt>
- * <dd>{@link #Timeline Timelines} of this animation
- * (required)</dd>
- * </dl>
- * @throws jsx.InvalidArgumentError if no parameters were specified
- */
- function jsx_dom_animation_Animation (oParams) {
- if (!oParams)
- {
- jsx.throwThis("jsx.InvalidArgumentError",
- ["Not enough arguments", typeof oParams, "Object"]);
- }
-
- for (var param in this)
- {
- if (typeof oParams[param] != "undefined")
- {
- this[param] = oParams[param];
- }
- }
-
- var timelines = this.timelines;
- for (var i = timelines.length; i--;)
- {
- var timeline = timelines[i];
-
- if (timeline.constructor != _Timeline)
- {
- timeline = new _Timeline(timeline);
- timelines[i] = timeline;
- }
-
- timeline.preferNative = this.preferNative;
-
- if (!timeline.target)
- {
- timeline.target = this.target;
- }
- }
- }
- ).extend(null, {
- /**
- * If <code>true</code> (default), native (CSS3) animations
- * are preferred. Overridden by the <code>preferNative</code>
- * property of an enclosing {@link #Animation}.
- *
- * @memberOf jsx.dom.animation.Animation.prototype
- */
- preferNative: true,
-
- /**
- * @type Object
- */
- target: null,
- timelines: [],
-
- /**
- * Plays the animation by playing all of its
- * {@link #Timeline Timelines}.
- *
- * @throws #NoTimelineError
- * if no <code>Timelines</code> have been defined
- */
- play: function () {
- var timelines = this.timelines;
- if (!timelines || timelines.length < 1)
- {
- jsx.throwThis(_NoTimelineError);
- }
-
- for (var i = 0, len = timelines.length; i < len; ++i)
- {
- timelines[i].play();
- }
- },
-
- /**
- * Stops the animation by stopping all of its
- * {@link #Timeline Timelines}.
- *
- * @throws #NoTimelineError
- * if no <code>Timelines</code> have been defined
- */
- stop: function () {
- var timelines = this.timelines;
- if (!timelines || timelines.length < 1)
- {
- jsx.throwThis(_NoTimelineError);
- }
-
- for (var i = 0, len = timelines.length; i < len; ++i)
- {
- timelines[i].stop();
- }
- }
- }),
-
- /**
- * @type jsx.dom.animation.NoKeyFramesError
- * @todo currently unused
- */
- NoKeyFramesError: (
- /**
- * @constructor
- */
- function jsx_dom_animation_NoKeyFramesError () {
- jsx_dom_animation_NoKeyFramesError._super.call(
- this, "Need at least two KeyFrames in a Timeline");
- }
- ).extend(jsx.Error, {
- /**
- * @memberOf jsx.dom.animation.NoKeyFramesError.prototype
- */
- name: "jsx.dom.animation.NoKeyFramesError"
- }),
-
- Timeline: _Timeline,
- Frame: _Frame,
-
- /**
- * Namespace for a set of functions that take a
- * <var>startValue</var> and an <var>endValue</var> together
- * with a <var>fraction</var> between 0.0 and 1.0, and return
- * a value that corresponds to the <var>fraction</var> with
- * regard to <var>startValue</var> and <var>endValue</var>.
- *
- * The purpose of those functions is to define how time
- * (represented as a 0.0 to 1.0 fraction of the duration
- * of an animation) is altered to derive different value
- * calculations during an animation.
- *
- * @namespace
- */
- interpolator: {
- LINEAR: _interpolator_LINEAR
- },
-
- KeyFrame: _KeyFrame,
- KeyValue: _KeyValue
- };
-}());
\ No newline at end of file
/live/dom/ani.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Index: live/dom/window.js
===================================================================
--- live/dom/window.js (revision 509)
+++ live/dom/window.js (nonexistent)
@@ -1,582 +0,0 @@
-/**
- * <title>Window Function Library</title>
- * @file window.js
- * @author
- * (C) 1999‒2013 Thomas Lahn &lt;window.js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-/*
- * Refer window.htm file for general documentation.
- *
- * This document contains JavaScriptDoc. Refer
- * http://pointedears.de/scripts/JSDoc/
- * for details.
- */
-
-if (typeof jsx == "undefined")
-{
- var jsx = {};
-}
-
-if (typeof jsx.dom == "undefined")
-{
- jsx.dom = {};
-}
-
-jsx.dom.window = {
- version: "1.29.$Revision$",
- copyright: "Copyright \xA9 1999-2013",
- author: "Thomas Lahn",
- email: "js@PointedEars.de",
- path: "http://pointedears.de/scripts/",
-
- screenInfo: {
- getDim: function () {
- return {
- width: screen.width,
- height: screen.height
- };
- },
-
- getAvailDim: function () {
- return {
- width: screen.availWidth,
- height: screen.availHeight
- };
- },
-
- getInnerDim: function () {
- return {
- width: window.innerWidth,
- height: window.innerHeight
- };
- },
-
- getColorDepth: function () {
- return (screen.colorDepth || screen.pixelDepth);
- }
- }
-};
-
-var windowVersion = jsx.dom.window.version;
-var windowCopyright = jsx.dom.window.copyright;
-var windowAuthor = jsx.dom.window.author;
-var windowEmail = jsx.dom.window.email;
-var windowPath = jsx.dom.window.path;
-// var windowDocURL = windowPath + "window.htm";
-
-/* Script exceptions */
-
-/**
- * @param Msg : string
- * @type boolean
- * @return false
- */
-function windowException(Msg)
-{
- alert(
- "window.js "
- + windowVersion
- + "\n"
- + windowCopyright
- + " "
- + windowAuthor
- + " <"
- + windowEmail
- + ">\n\n"
- + Msg);
- return false;
-}
-
-/**
- * @param sFunctionName : string
- * @param iArg : number
- * @return boolean
- */
-function EInvalidArgNum(sFunctionName, iArg)
-{
- // if (arguments.length < 2) iArg = "?";
- return windowException(
- sFunctionName
- + ": The user script did not pass the required number of arguments ("
- + iArg
- + ").\nRefer documentation in script file for correct function call.");
-}
-
-/* Script features */
-
-/**
- * @param sCaption : string
- * @type boolean
- * @return true
- */
-function setStatus (sCaption)
-{
- window.status = String(sCaption);
- return true;
-}
-
-/**
- * @type boolean
- * @return true
- */
-function resetStatus ()
-{
- window.status = window.defaultStatus;
- return true;
-}
-
-var sLinkOutMsg_de =
- "Dieser Link ist offline nicht verfügbar.\n\n"
- + "Wenn Sie mit dem Internet verbunden sind, steht Ihnen die Seite online"
- + " zur Verfügung.\n\n"
- + "Möchten Sie jetzt eine Verbindung zu dieser Seite herstellen?";
-var sLinkOutMsg_us =
- "This link is not available offline.\n\n"
- + "If you are connected to the Internet, the website is available online.\n\n"
- + "Do you wish to connect to this website now?';";
-var sLinkOutMsg = sLinkOutMsg_de;
-
-/**
- * @param sURL : string
- * @param sLink : string
- * @param bShowURL : optional boolean
- * @param aTarget : optional string|number
- * @param iWidth : optional number
- * @param iHeight : optional number
- * @param sOptions : optional string
- */
-function linkOut(sURL, sLink, bShowURL, aTarget, iWidth, iHeight, sOptions)
-{
- if (arguments.length < 1)
- {
- EInvalidArgNum("linkOut", 1);
- return false;
- }
-
- var arg = sLinkOutMsg;
- /*
- * version 1.05.2000.3 update, formerly bShowURL as 2nd argument;
- * fixed problem with websites created earlier
- */
- if (arguments.length < 3)
- {
- bShowURL = true;
- }
-
- var oldArg;
- if ((sURL != "" && bShowURL == true)
- || (arguments.length >= 2 && sLink != ""))
- {
- oldArg = arg;
- arg = "\n\n" + oldArg;
- }
-
- if (sURL != "" && bShowURL)
- {
- oldArg = arg;
- arg = sURL + oldArg;
- }
-
- if (arguments.length >= 2 && sLink != "")
- {
- if (sURL != "" && bShowURL)
- {
- oldArg = arg;
- arg = sLink + "\n" + oldArg;
- }
- else
- {
- oldArg = arg;
- arg = sLink + oldArg;
- }
- }
-
- if (window.confirm(arg))
- {
- var oTarget = document;
- if (arguments.length >= 4
- && aTarget != ""
- && aTarget.toLowerCase() != "_self")
- {
- /*
- * version 1.05.2000.3 update, formerly neither empty strings
- * nor "_self" supported
- */
- if (isNaN(aTarget))
- {
- if (aTarget.toLowerCase() == "_new"
- || aTarget.toLowerCase() == "_blank")
- {
- popUp(sURL, iWidth, iHeight, sOptions);
- return false;
- }
- oTarget = parent.frames[aTarget].document;
- /* and below: v1.09.2000.3 bugfix */
- }
- else
- {
- oTarget = parent.frames[aTarget].document;
- }
- }
- oTarget.location = "";
- oTarget.location.href = sURL;
- }
-
- /* version 1.15.2000.11 update */
- return false;
-}
-
-/**
- * @param sURL : string
- * @param iWidth : number
- * @param iHeight : number
- * @param sOptions : string
- * @type boolean
- * @return false
- */
-function popUp(sURL, iWidth, iHeight, sOptions)
-{
- var sFeatures = "height=" + iHeight + ",width=" + iWidth;
- if (arguments.length > 3)
- {
- sFeatures += "," + sOptions;
- }
- var wndChild = window.open(sURL, null, sFeatures);
- return false;
-}
-
-/*
- * OpenChildWin(...) call redirected to popUp(...) for compatibility to
- * previous versions
- */
-var OpenChildWin = popUp;
-
-/**
- * @param sURL : string
- * @param targetFrame : number|string
- * @return Window
- */
-function LoadFrame(sURL, targetFrame)
-{
- if (arguments.length < 2)
- {
- /* Raise exception if required arguments are missing */
- return EInvalidArgNum("LoadFrame", 2);
- }
-
- if (parent.frames[targetFrame])
- {
- parent.frames[targetFrame].location.href = sURL;
- return sURL;
- }
-
- return targetFrame;
-}
-var sEnlargeImgTitle_en = "Click to close window";
-var sEnlargeImgTitle_de = "Klicken, um Fenster zu schliessen";
-var sEnlargeImgTitle = sEnlargeImgTitle_en;
-
-/**
- * Opens a dependent browser child window containing an (enlarged)
- * image. A primary mouse button click on the image or the window
- * closes the window.
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- * @author
- * (c) 2000-2005 Thomas Lahn &lt;PointedEars@gmx.de&gt;
- * Protected under the terms of the GNU General Public License.
- * See http://www.fsf.org/copyleft/gpl.html for details.
- * @param sImageURL : string
- * Required. URL of the (enlarged) image.
- * @param sCaption : optional string
- * Optional. Caption of the browser child window.
- * If not provided, sImageURL will be used as caption.
- * @param iWidth : optional number
- * Optional. Width of the browser child window in pixels.
- * If not provided or 0, the window will be resized to fit
- * image width.
- * @param iHeight : optional number
- * Height of the browser child window in pixels.
- * If not provided or 0, the window will be resized to fit
- * image height.
- * @param bCenter : optional boolean
- * Optional. If <code>true</code>, the window will be centered
- * on the desktop. Note: Use with caution! Not all desktops
- * return the correct/viable position for the centered window.
- * @return type boolean
- * Always <code>false</code> which allows for
- * <a href="..." ... onclick="return enlargeImg(...);">
- */
-function enlargeImg(sImageURL, sCaption, iWidth, iHeight, bCenter)
-{
- var ident = enlargeImg;
- var argnum = ident.arguments.length;
- if (sImageURL.charAt(0) != "/")
- {
- /*
- * Version 1.17.2002.2 bugfix:
- * Calculates absolute image file paths of relative ones
- * Fixes bug with Mozilla 0.9.7 and above (includes Netscape 6.1+)
- * that generated pages have no path except about:blank which causes
- * relative paths for their resources to fail
- */
- /* Windows local path */
- var iPathEnd = window.location.pathname.lastIndexOf('\\');
- if (iPathEnd < 0)
- {
- iPathEnd = window.location.pathname.lastIndexOf('/');
- }
-
- /* URL */
- if (iPathEnd > -1)
- {
- /* Extend filename to full path */
- sImageURL = window.location.pathname.substring(0, iPathEnd)
- + "/" + sImageURL;
- }
- }
-
- if (argnum < 1)
- {
- return (EInvalidArgNum("Level 2: enlargeImg", 1));
- }
-
- /* preset also window position and size in the case the temporary script below fails */
- var sOptions =
- "toolbar=no,location=no,menubar=no,scrollbars=yes,resizable=yes"
- + ((argnum > 2) && !isNaN(iWidth)) ? (",width=" + iWidth + 12) : ""
- + ((argnum > 3) && !isNaN(iHeight)) ? (",height=" + iHeight + 32) : ""
- + ",left="
- + parseInt(screen.width / 2 - (argnum > 2
- && !isNaN(iWidth) ? iWidth / 2 : 0))
- + ",top="
- + parseInt(screen.height / 2 - (argnum > 3
- && !isNaN(iHeight) ? iHeight / 2 : 0));
-
- var w = window.open("", "wndZoom", sOptions);
- if (w)
- {
- var d = w.document;
- if (d)
- {
- d.open("text/html");
- var s = [
- '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"',
- ' "http://www.w3.org/TR/html4/loose.dtd">',
- '<html>',
- ' <head>',
- ' <meta http-equiv="Content-Type" content="text/html;'
- + ' charset=UTF-8">',
-
- ' <meta name="generator" value="JSX:window.js{',
- + windowVersion + '}:enlargeImg(...) ' + windowCopyright
- + ' ' + windowAuthor + ' &lt;' + windowEmail + '&gt;">',
-
- ' <title>' + ((argnum > 1 && sCaption != "") ? sCaption : sImageURL)
- + '<\/title>',
-
- /*
- * temporary script and updated inline code to fix
- * BUG_Enlarge:ALWAYS_FIT-TO-IMAGE
- */
- ' <script type="text/javascript">',
- ' var orig = {};\n',
-
- ' function fitWindowToImage()',
- ' {',
- ' var imgWidth = '
- + (argnum > 2 && iWidth != 0 ? iWidth : "document.images[0].width + 12")
- + ';',
- ' var imgHeight = '
- + (argnum > 3 && iHeight != 0 ? iHeight : "document.images[0].height + 32")
- + ';\n',
-
- /* MSHTML */
- ' if (typeof window.resizeTo == "object")',
- ' {',
- ' orig.left = window.screenLeft;',
- ' orig.top = window.screenTop;',
- ' orig.width = window.width;',
- ' orig.height = window.height;',
- ' window.resizeTo(imgWidth, imgHeight);',
- ' }',
- /* Gecko */
- ' else if (typeof window.sizeToContent == "function")',
- ' {',
- ' orig.left = window.screenX;',
- ' orig.top = window.screenY;',
- ' orig.width = window.innerWidth;',
- ' orig.height = window.innerHeight;',
- ' window.sizeToContent();',
- ' }',
- /* NN4 */
- ' else if (typeof document.layers == "object")',
- ' {',
- ' orig.left = window.screenX;',
- ' orig.top = window.screenY;',
- ' orig.width = window.innerWidth;',
- ' orig.height = window.innerHeight;',
- ' window.innerWidth = document.width;',
- ' window.innerHeight = document.height;',
- ' }',
-
- (argnum < 5 || argnum > 4 && bCenter && window.moveTo)
- ? (' window.moveTo(\n'
- + ' screen.width/2 - imgWidth/2,\n'
- + ' screen.height/2 - imgHeight/2);\n')
- : '',
- ' }\n',
-
- ' function restoreWindowSize()',
- ' {',
- ' if (typeof orig.left != "undefined"',
- ' && typeof orig.top != "undefined"',
- ' && typeof window.resizeTo != "undefined")',
- ' window.resizeTo(orig.left, orig.top);\n',
- ' if (document.all && window.resizeTo)',
- ' {',
- ' try',
- ' {',
- ' window.screenLeft = orig.left;',
- ' window.screenTop = orig.top;',
- ' }',
- ' catch (e)',
- ' {}',
- ' }',
- ' else if (typeof window.sizeToContent == "function"',
- ' || typeof document.layers == "object")',
- ' {',
- ' window.screenX = orig.left;',
- ' window.screenY = orig.top;',
- ' window.innerWidth = orig.width;',
- ' window.innerHeight = orig.height;',
- ' }',
- ' }',
- ' <\/script>',
- ' <\/head>\n',
- ' <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"'
- + ' style="margin: 0 !important">',
- ' <a href="javascript:restoreWindowSize();window.close();"',
- ' title="' + sEnlargeImgTitle + '"',
- ' onclick="restoreWindowSize(); window.close(); return false;">'
- + '<img',
- ' src="' + sImageURL + '" border="0"',
- ' onload="fitWindowToImage(this);"><\/a>',
- ' <\/body>',
- '<\/html>'
- ].join("\n");
- d.write(s);
- d.close();
- w.focus();
- }
- else
- {
- w.close();
- return true;
- }
- }
-
- return false;
-}
-/*
- * Enlarge(...) call redirects to enlargeImg(...) for
- * compatibility with previous versions
- */
-var Enlarge = enlargeImg;
-
-jsx.dom.window.fullscreen = (function () {
- var _isHostMethod = jsx.object.isHostMethod;
-
- return {
- getSupportedPropertyName: function (base, names, test) {
- for (var i = 0, len = names.length; i < len; ++i)
- {
- var name = names[i];
- if (test.call(null, base, name))
- {
- return name;
- }
- }
-
- return null;
- },
-
- getCancelMethodName: (function () {
- var _supportedCancel;
-
- return function () {
- if (typeof _supportedCancel == "undefined")
- {
- var properties = ["cancelFullScreen", "mozCancelFullScreen",
- "webkitCancelFullScreen"];
-
- _supportedCancel = this.getSupportedPropertyName(document, properties, _isHostMethod);
- }
-
- return _supportedCancel;
- };
- }()),
-
- getElementPropertyName: (function () {
- var _supportedElement;
-
- return function () {
- if (typeof _supportedElement == "undefined")
- {
- var properties = ["fullscreenElement", "mozFullScreenElement",
- "webkitFullscreenElement"];
-
- _supportedElement = this.getSupportedPropertyName(document, properties,
- function (base, name) {
- return typeof base[name] != "undefined";
- });
- }
-
- return _supportedElement;
- };
- }()),
-
- isSupportedBy: function (elem) {
- var methods = ["requestFullscreen", "mozRequestFullScreen",
- "webkitRequestFullscreen"];
- return this.getSupportedPropertyName(elem, methods, _isHostMethod);
- },
-
- isFullscreen: function () {
- var supportedProperty = this.getElementPropertyName();
- return supportedProperty && document[supportedProperty] != null;
- },
-
- cancel: function () {
- var supportedCancel = this.getCancelMethodName();
- if (supportedCancel)
- {
- document[supportedCancel]();
- }
- },
-
- requestOn: function (elem) {
- var requestMethodName;
-
- if (elem && (requestMethodName = this.isSupportedBy(elem)))
- {
- elem[requestMethodName]();
- }
- }
- };
-}());
/live/dom/window.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Index: live/dom/css/compat.js
===================================================================
--- live/dom/css/compat.js (revision 509)
+++ live/dom/css/compat.js (nonexistent)
@@ -1,29 +0,0 @@
-/**
- * <title>PointedEars' DOM Library: CSS Compatibility Layer</title>
- * @version $Id$
- * @requires dom.js
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2011, 2013 Thomas Lahn <js@PointedEars.de>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-var CSS = jsx.dom.css;
-var setStyleProperty = jsx.dom.setStyleProperty = jsx.dom.css.setStyleProperty;
-jsx.dom.getElemByClassName = jsx.dom.css.getElemByClassName;
\ No newline at end of file
/live/dom/css/compat.js
Property changes:
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/dom/css/color.js
===================================================================
--- live/dom/css/color.js (revision 509)
+++ live/dom/css/color.js (nonexistent)
@@ -1,1172 +0,0 @@
-"use strict";
-/**
- * <title>PointedEars' DOM Library: CSS Colors</title>
- * @version $Id$
- * @requires dom/css.js
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2011-2013 Thomas Lahn &lt;js@PointedEars.de>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-if (typeof jsx.dom == "undefined")
-{
- /**
- * @namespace
- */
- jsx.dom = {};
-}
-
-if (typeof jsx.dom.css == "undefined")
-{
- /**
- * @namespace
- */
- jsx.dom.css = {};
-}
-
-/**
- * The <code>Color</code> prototype encapsulates
- * color data given in RGB format.
- *
- * @param {Number|Color|String} iRed
- * Red value or RGB color. Supported formats for RGB color are:
- * <code>rgb(<var>r</var>, <var>g</var>, <var>b</var>)</code>,
- * <code>#rgb</code> and <code>#rrggbb</code>. If a <code>Color</code>,
- * its red component is used.
- * @param {Number|Color} iGreen
- * Green value (optional). If both <code>iRed</code> and this argument
- * are <code>Color</code>s, this arguments's green component is used.
- * @param {Number|Color} iBlue
- * Blue value (optional). If both <code>iRed</code> and this argument
- * are <code>Color</code>s, this arguments's blue component is used.
- * @param {Number|Color} fOpacity
- * Opacity value (optional). If both <code>iRed</code> and this argument
- * are <code>Color</code>s, this arguments's opacity value is used.
- * @property red : Number
- * Red value
- * @property green : Number
- * Green value.
- * @property blue : Number
- * Blue value.
- * @property opacity : Number
- * Opacity value
- * @return {jsx.dom.css.Color}
- */
-jsx.dom.css.Color = function (iRed, iGreen, iBlue, fOpacity) {
- return this.set(iRed, iGreen, iBlue, fOpacity);
-};
-
-jsx.dom.css.Color.MIN_VALUE = 0;
-jsx.dom.css.Color.MAX_VALUE = 255;
-
-/**
- * Returns the difference between two colors.
- *
- * @param {jsx.dom.css.Color|String} color1
- * @param {jsx.dom.css.Color|String} color2
- * @returns {red, green, blue, opacity}
- * @see jsx.dom.css.Color.prototype.diff()
- */
-jsx.dom.css.Color.diff = function (color1, color2) {
- return (new jsx.dom.css.Color(color1)).diff(color2);
-};
-
-/**
- * Returns a <code>Color</code> object, identifying a color in the
- * sRGB color space, defined by given coordinates for that color
- * in the HSV (Hue, Saturation, Value) color space.
- * If any of the coordinates is not provided, it is assumed to be
- * 0 (zero).
- *
- * @param {number} iHue
- * Hue, from 0 to 360 (degrees).
- * @param {number} fSaturation
- * Saturation, from 0.0 to 1.0 (0 to 100%).
- * @param {number} fValue
- * Brightness value, from 0.0 to 1.0 (0 to 100%).
- * @return {jsx.dom.css.Color}
- */
-jsx.dom.css.Color.hsv2rgb = function (iHue, fSaturation, fValue) {
- return (new jsx.dom.css.HSVColor(iHue, fSaturation, fValue)).toRGB();
-};
-
-jsx.dom.css.Color.extend(null, {
- /**
- * Sets the color values from Red, Green, Blue and Opacity values or a
- * RGB(A) value.
- *
- * @memberOf jsx.dom.css.Color.prototype
- * @param iRed {number|Color|string}
- * Red value or RGB color. Supported formats
- * for RGB color are the same as for {@link #Color}.
- * @param iGreen {number|Color}
- * Green value (optional)
- * @param iBlue {number|Color}
- * Blue value (optional)
- * @param fOpacity : {number|Color}
- * Opacity value (optional)
- * @return {jsx.dom.css#Color}
- */
- set: function (iRed, iGreen, iBlue, fOpacity) {
- if (typeof iRed != "undefined")
- {
- /* rgb(...) or /#xxx(xxx)?/ */
- if (typeof iRed == "string")
- {
- this.setRGB(iRed);
- }
- else
- {
- if (jsx.object.isInstanceOf(iRed, this.constructor))
- {
- this.setRed(iRed.red);
-
- var argc = arguments.length;
- if (jsx.object.isInstanceOf(iGreen, this.constructor)
- && jsx.object.isInstanceOf(iBlue, this.constructor)
- && (jsx.object.isInstanceOf(fOpacity, this.constructor)
- || argc < 4))
- {
- this.setGreen(iGreen.green);
- this.setBlue(iBlue.blue);
- if (argc < 4)
- {
- this.setOpacity(fOpacity.opacity);
- }
- }
- else
- {
- this.setGreen(iRed.green);
- this.setBlue(iRed.blue);
- this.setOpacity(iRed.opacity);
- }
- }
- else
- {
- this.setRed(iRed);
- this.setGreen(iGreen);
- this.setBlue(iBlue);
- this.setOpacity(typeof fOpacity == "undefined" ? 1.0 : fOpacity);
- }
- }
- }
-
- this.fix();
-
- return this;
- },
-
- /**
- * @private
- * @param {String} sComponent
- * @param {Number} value
- */
- _setComponent: function (sComponent, value) {
- if (String(value).indexOf("%") > -1)
- {
- value = this.constructor.MAX_VALUE * (parseFloat(value, 10) / 100);
- }
-
- if (isNaN(value))
- {
- return jsx.throwThis("jsx.InvalidArgumentError",
- ["Invalid component value", String(value), "number"]);
- }
-
- this[sComponent] = parseFloat(value, 10);
- },
-
- setRed: function (value) {
- this._setComponent("red", value);
- },
-
- setGreen: function (value) {
- this._setComponent("green", value);
- },
-
- setBlue: function (value) {
- this._setComponent("blue", value);
- },
-
- setOpacity: function (value) {
- if (isNaN(value))
- {
- return jsx.throwThis("jsx.InvalidArgumentError",
- ["Invalid opacity value", String(value), "number"]);
- }
-
- this.opacity = parseFloat(value);
- },
-
- /**
- * Returns the difference between two colors.
- *
- * @param {jsx.dom.css.Color} color2
- * @return {Object}
- * The difference between the current color (A)
- * and another color (B) as a tuple (Object) consisting
- * of the differences between each RGB color component and
- * the opacity of each color. That is, if A := (r1, g1, b1, o1)
- * and B := (r2, g2, b2, o2) then <code>A.diff(B)</code>
- * returns B - A := (r2 - r1, g2 - g1, b2 - b1, o2 - o1).
- *
- * Note that since each component value of the result
- * may be negative, the result is normalized through
- * {@link jsx.dom.css.Color.prototype#fix} if its properties
- * are used for creating a <code>Color</code> object.
- * @type {red, green, blue, opacity}
- */
- diff: function (color2) {
- var _Color = jsx.dom.css.Color;
- if (color2.constructor != _Color)
- {
- color2 = new _Color(color2);
- }
-
- return {
- red: color2.red - this.red,
- green: color2.green - this.green,
- blue: color2.blue - this.blue,
- opacity: color2.opacity - this.opacity
- };
- },
-
- /**
- * Fixes RGB values, i.e. brings them into range
- * if they are out of range, and returns the new value.
- * NOTE: Disregards brightness and contrast.
- *
- * @return {jsx.dom.css#Color}
- */
- fix: function () {
- var rgbMin = this.constructor.MIN_VALUE;
- var rgbMax = this.constructor.MAX_VALUE;
-
- for (var component in {red: 1, green: 1, blue: 1})
- {
- this[component] = Math.round(this[component]);
-
- if (isNaN(this[component]) || this[component] < rgbMin)
- {
- this[component] = rgbMin;
- }
- else
- {
- if (this[component] > rgbMax)
- {
- this[component] = rgbMax;
- }
- }
- }
-
- if (typeof this.opacity == "undefined" || this.opacity > 1)
- {
- this.opacity = 1;
- }
- else if (this.opacity < 0)
- {
- this.opacity = 0;
- }
-
- return this;
- },
-
- /**
- * Increase/decrease one or more RGB components of a color.
- *
- * @param iRed
- * @param iGreen
- * @param iBlue
- * @return {jsx.dom.css#Color}
- */
- inc: function (iRed, iGreen, iBlue) {
- switch (iRed.constructor)
- {
- case String:
- iRed = new jsx.dom.css.Color(iRed);
- break;
-
- case Object:
- case this.constructor:
- if (typeof iRed.green != "undefined")
- {
- iGreen = iRed.green;
- }
-
- if (typeof iRed.blue != "undefined")
- {
- iBlue = iRed.blue;
- }
-
- iRed = iRed.red;
- break;
-
- case Array:
- if (typeof iRed[1] != "undefined")
- {
- iGreen = iRed[1];
- }
-
- if (typeof iRed[2] != "undefined")
- {
- iBlue = iRed[2];
- }
-
- iRed = iRed[0];
- break;
- }
-
- this.red += (parseFloat(iRed, 10) || 0);
- this.green += (parseFloat(iGreen, 10) || 0);
- this.blue += (parseFloat(iBlue, 10) || 0);
-
- return this.fix();
- },
-
- /**
- * Sets the color values from an RGB(A) value.
- *
- * @param {string} v
- * RGB(A) value as supported by @{#Color()}.
- * @return {jsx.dom.css#Color}
- */
- setRGB: function (v) {
- /*
- * <http://www.w3.org/TR/css3-values/#percentages>:
- * "A percentage value is denoted by <percentage>, consists of
- * a <number> immediately followed by a percent sign ‘%’."
- * "A number is either an integer, or zero or more decimal
- * digits followed by a dot (.) followed by one or more
- * decimal digits."
- */
- var
- integer = "\\d+",
- number = "(" + integer + "|\\d*\\.\\d+)",
- percentage_opt = number + "%?";
-
- var rx = new RegExp(
- "rgb(a)?\\(\\s*(" + percentage_opt + ")"
- + "\\s*,\\s*(" + percentage_opt + ")"
- + "\\s*,\\s*(" + percentage_opt + ")"
- + "(\\s*,\\s*("+ number + "))?\\s*\\)"
- + "|#([0-9a-f]{3})([0-9a-f]{3})?",
- "i");
-
- var m;
- if ((m = rx.exec(v)))
- {
- /* rgb(...) */
- var
- rgba = m[1],
- red = m[2],
- green = m[4],
- blue = m[6],
- opacity = m[9],
- hex3 = m[11],
- hex6 = m[12];
-
- if (red)
- {
- this.setRed(red);
- this.setGreen(green);
- this.setBlue(blue);
-
- if (rgba)
- {
- this.setOpacity(opacity);
- }
- }
- else
- {
- /* #xxx(xxx)? */
- if (hex6)
- {
- /* #xxxxxx */
- if ((m =
- /([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/i.exec(hex3 + hex6)))
- {
- this.setRed(parseInt(m[1], 16));
- this.setGreen(parseInt(m[2], 16));
- this.setBlue(parseInt(m[3], 16));
- }
- }
- else
- {
- /* #xxx */
- var ch;
- this.setRed(parseInt((ch = hex3.charAt(0)) + ch, 16));
- this.setGreen(parseInt((ch = hex3.charAt(1)) + ch, 16));
- this.setBlue(parseInt((ch = hex3.charAt(2)) + ch, 16));
- }
- }
- }
-
- this.fix();
-
- return this;
- },
-
- /**
- * Returns the monochrome version of a color as an object.
- *
- * @return {jsx.dom.css#Color}
- */
- getMono: function () {
- var v = this.toHSV().getValue();
- return new this.constructor(v, v, v);
- },
-
- /**
- * Sets the color values from Red, Green and Blue values or
- * an RGB value and returns a monochrome version of the color
- * as an object.
- *
- * @param {number|string} iRed
- * Red value or RGB color. Supported formats
- * for RGB color are the same as for @{#Color()}.
- * @param {number} iGreen (optional)
- * Green value.
- * @param {number} iBlue (optional)
- * Blue value.
- * @return {jsx.dom.css.Color}
- */
- setMono: function (iRed, iGreen, iBlue) {
- this.set(iRed, iGreen, iBlue);
-
- var c = this.getMono();
- this.red = c.red;
- this.green = c.green;
- this.blue = c.blue;
-
- return this;
- },
-
- /**
- * Returns the next similar color to the represented color on the
- * 214-color Web-safe palette, i.e. a color where each sRGB component
- * is one of the hexadecimal values 0x00 (0), 0x33 (51), 0x66 (102),
- * 0x99 (153), 0xCC (204), and 0xFF (255).
- *
- * @return {jsx.dom.css.Color}
- */
- getWebSafe: function () {
- function getNearestSafeValue (value)
- {
- if (value >= 0xFF)
- {
- return 0xFF;
- }
-
- if (value <= 0)
- {
- return 0;
- }
-
- for (var safeValues = [0, 0x33, 0x66, 0x99, 0xCC, 0xFF],
- i = safeValues.length - 1;
- i--;)
- {
- var item = safeValues[i];
-
- if (value >= item)
- {
- if (value == item)
- {
- return value;
- }
-
- var nextItem = safeValues[i + 1];
- if (value - item < nextItem - value)
- {
- return item;
- }
-
- return nextItem;
- }
- }
- return -1;
- }
-
- return new this.constructor(
- getNearestSafeValue(this.red),
- getNearestSafeValue(this.green),
- getNearestSafeValue(this.blue));
- },
-
- setWebSafe: function (iRed, iGreen, iBlue) {
- this.set(iRed, iGreen, iBlue);
-
- var c = this.getWebSafe();
- this.red = c.red;
- this.green = c.green;
- this.blue = c.blue;
-
- return this;
- },
-
- /**
- * Returns the color in the sRGB color space as an object
- * identifying the coordinates of that color in the
- * HSL (Hue, Saturation, Lightness) color space.
- *
- * @requires jsx.math.max(), jsx.math.min() from <tt>math/float.js</tt>
- * @return {jsx.dom.css.HSLColor}
- */
- toHSL: function () {
- /* Cf. <http://www5.informatik.tu-muenchen.de/lehre/vorlesungen/graphik/info/csc/COL_26.htm#topic25> */
-
- jsx.importOnce(jsx.absPath("../../math/float.js", jsx.importFrom.lastImport));
-
- var
- red = this.red,
- green = this.green,
- blue = this.blue,
- min = jsx.math.min(red, green, blue),
- max = jsx.math.max(red, green, blue),
- hue = 0,
- saturation,
- lightness = ((max + min) / 2) / this.constructor.MAX_VALUE;
-
- if (max == min)
- {
- saturation = 0;
- }
- else
- {
- if (lightness <= 0.5)
- {
- saturation = (max - min) / (max + min);
- }
- else
- {
- saturation = (max - min) / (2 - max - min);
- }
- }
-
- var delta = max - min;
-
- if (red == max)
- {
- hue = (green - blue) / delta;
- }
- else if (green == max)
- {
- hue = 2 + (blue - red) / delta;
- }
- else if (blue == max)
- {
- hue = 4 + (red - green) / delta;
- }
-
- hue *= 60;
-
- if (hue < 0)
- {
- hue += 360;
- }
-
- return new jsx.dom.css.HSLColor(hue, saturation * 100, lightness * 100, this.opacity);
- },
-
- /**
- * Returns the color in the sRGB color space as an object
- * identifying the coordinates of that color in the
- * HSV (Hue, Saturation, Value) color space.
- *
- * @requires jsx.math.max(), jsx.math.min() from <tt>math/float.js</tt>
- * @return {jsx.dom.css.HSVColor}
- */
- toHSV: function () {
- /* Cf. http://en.wikipedia.org/wiki/HSV_color_space#Transformation_between_HSV_and_RGB */
- var
- rgbMax = this.constructor.MAX_VALUE,
- red = this.red / rgbMax,
- green = this.green / rgbMax,
- blue = this.blue / rgbMax,
- max = jsx.math.max(red, green, blue),
- min = jsx.math.min(red, green, blue),
- hue = 0,
- saturation = 0,
- value,
- delta = max - min;
-
- if (max != min)
- {
- if (red == max)
- {
- hue = (green - blue) / delta * 60;
- }
- else if (green == max)
- {
- hue = (2 + (blue - red) / delta) * 60;
- }
- else if (blue == max)
- {
- hue = (4 + (red - green) / delta) * 60;
- }
- }
-
- if (hue < 0)
- {
- hue += 360;
- }
-
- if (max == 0)
- {
- saturation = 0;
- }
- else
- {
- saturation = 100 * (delta / max);
- }
-
- value = 100 * max;
-
- return new jsx.dom.css.HSVColor(hue, saturation, value, this.opacity);
- },
-
- /**
- * @requires jsx.string.leadingZero() from string.js
- * @return {string}
- */
- toHex: function () {
- var _leadingZero = jsx.string.leadingZero;
- var
- red = _leadingZero(this.red.toString(16), 2),
- green = _leadingZero(this.green.toString(16), 2),
- blue = _leadingZero(this.blue.toString(16), 2),
- rx = /([0-9a-f])\1([0-9a-f])\2([0-9a-f])\3/i,
- m;
-
- if ((m = rx.exec(red + green + blue)))
- {
- red = m[1];
- green = m[2];
- blue = m[3];
- }
-
- return '#' + red + green + blue;
- },
-
- /**
- * Returns the color as a string
- * <code>rgb(<var>red</var>,<var>green</var>,<var>blue</var>)</code>
- * representation supported by CSS.
- *
- * @function
- * @return {string}
- */
- toRGBString: function () {
- return 'rgb(' + this.red + ',' + this.green + ',' + this.blue + ')';
- },
-
- /**
- * Returns the JavaScript Object Notation for the instance.
- *
- * Returns
- * <code>{"red": <var>r</var>, "green": <var>g</var>, "blue": <var>b</var>,
- * "opacity": <var>op</var>}</code>
- * as supported by e.g. JSON.
- *
- * @return {string}
- */
- toJSON: function () {
- return '{'
- + '"red": ' + this.red
- + ', "green": ' + this.green
- + ', "blue": '+ this.blue
- + ', "opacity": ' + this.opacity
- + '}';
- }
-});
-
-/**
- * Revives a <code>Color</code> instance from its JavaScript Object Notation.
- *
- * Pass as second argument to {@link JSON#parse()} or call in another reviver:
- * <pre><code> var Color = jsx.dom.css.Color;
- * var myColor = JSON.parse(new Color("#f00"), Color.reviver);</code></pre>
- *
- * @see jsx.dom.css.Color#fromJSON
- * @return {number|jsx.dom.css.Color}
- */
-jsx.dom.css.Color.reviver = function (property, value) {
- return (typeof value == "object")
- ? new this(value.red, value.green, value.blue, value.opacity)
- : value;
-};
-
-/**
- * Creates a <code>Color</code> instance from JavaScript Object Notation.
- *
- * @param {String} sJSON
- * @return {jsx.dom.css.Color|null}
- * The <code>Color</code> if successful, <code>null</code> otherwise.
- */
-jsx.dom.css.Color.fromJSON = function (sJSON) {
- if (jsx.isNativeMethod(jsx.tryThis("JSON"), "parse"))
- {
- return JSON.parse(sJSON, this.reviver);
- }
-
- var
- color = null,
- error = null;
-
- jsx.tryThis(
- function () { color = eval("(" + sJSON + ")"); },
- function (e) { error = e; }
- );
-
- if (!color || error && error.name == "SyntaxError")
- {
- return null;
- }
-
- return new this(color.red, color.green, color.blue, color.opacity);
-};
-
-/**
- * Returns the color as a string
- * <code>rgba(<var>red</var>,<var>green</var>,<var>blue</var>, <var>opacity</var>)</code>
- * representation supported by CSS.
- *
- * @function
- * @return {string}
- */
-jsx.dom.css.Color.prototype.toString =
-jsx.dom.css.Color.prototype.toRGBAString = function () {
- return ('rgba(' + this.red + ',' + this.green + ',' + this.blue
- + ',' + this.opacity + ')');
-};
-
-/**
- * Creates a HSV color value (not to be confused with
- * {@link jsx.dom.css#HSLColor}).
- *
- * If any of the coordinates is not provided, it is assumed to be
- * 0 (zero).
- *
- * @param {int} iHue
- * @param {float} fSaturation
- * @param {float} fValue
- * @constructor
- * @property hue : int
- * Hue value
- * @property saturation : float
- * Saturation value
- * @property value : float
- * Value component
- * @property opacity : float
- * Opacity value
- */
-jsx.dom.css.HSVColor = function (iHue, fSaturation, fValue, fOpacity) {
- this.setHue(iHue);
- this.setSaturation(fSaturation);
- this.setValue(fValue);
- this.setOpacity(fOpacity);
-};
-
-jsx.dom.css.HSVColor.extend(null, {
- /**
- * @memberOf jsx.dom.css.HSVColor.prototype
- * @param {int} value
- */
- setHue: function (value) {
- this.hue = value || 0;
- },
-
- /**
- * @param {float} value
- */
- setSaturation: function (value) {
- this.saturation = value || 0;
- },
-
- /**
- * @param {float} value
- */
- setValue: function (value) {
- this.value = value || 0;
- },
-
- setOpacity: (function () {
- var _setOpacity = jsx.dom.css.Color.prototype.setOpacity;
-
- return function (value) {
- return _setOpacity.call(this, value);
- };
- }()),
-
- /**
- * @return {number}
- */
- getValue: function () {
- return this.value;
- },
-
- /**
- * Returns the RGB color for the HSV color
- */
- toRGB: (function () {
- var _Color = jsx.dom.css.Color;
-
- /**
- * @return {jsx.dom.css.Color}
- */
- return function () {
- /* Cf. http://en.wikipedia.org/wiki/HSV_color_space#Transformation_between_HSV_and_RGB */
- var
- v = this.value,
- rgbMax = _Color.MAX_VALUE;
-
- if (this.saturation == 0.0)
- {
- return new _Color(v * rgbMax, v * rgbMax, v * rgbMax);
- }
-
- var
- h_i = Math.floor(this.hue / 60) % 6,
- f = (this.hue / 60) - h_i,
- p = v * (1 - this.saturation),
- q = v * (1 - f * this.saturation),
- t = v * (1 - (1 - f) * this.saturation),
- red, green, blue;
-
- switch (h_i)
- {
- case 0:
- red = v; green = t; blue = p;
- break;
-
- case 1:
- red = q; green = v; blue = p;
- break;
-
- case 2:
- red = p; green = v; blue = t;
- break;
-
- case 3:
- red = p; green = q; blue = v;
- break;
-
- case 4:
- red = t; green = p; blue = v;
- break;
-
- case 5:
- red = v; green = p; blue = q;
- break;
-
- default:
- return null;
- }
-
- return new _Color(red * rgbMax, green * rgbMax, blue * rgbMax, this.opacity);
- };
- }())
-});
-
-/**
- * Creates a HSL color value (not to be confused with
- * {@link jsx.dom.css#HSVColor}).
- *
- * If any of the coordinates is not provided, it is assumed to be
- * 0 (zero).
- *
- * @param {int} iHue
- * Hue in degrees
- * @param {float} fSaturation
- * Saturation per cent
- * @param {float} fLightness
- * Lightness per cent
- * @param {float} fOpacity
- * Opacity between 0 (0%) and 1 (100%) inclusive
- * @constructor
- * @property hue : int
- * Hue value
- * @property saturation : float
- * Saturation value
- * @property lightness : float
- * Lightness value
- * @property opacity : float
- * Opacity value
- */
-jsx.dom.css.HSLColor = function (iHue, fSaturation, fLightness, fOpacity) {
- this.setHue(iHue);
- this.setSaturation(fSaturation);
- this.setLightness(fLightness);
- this.setOpacity(fOpacity);
-};
-
-/**
- * Revives a <code>Color</code> instance from its JavaScript Object Notation.
- *
- * Pass as second argument to {@link JSON#parse()} or call in another reviver:
- * <pre><code> var Color = jsx.dom.css.Color;
- * var myColor = JSON.parse(new Color("#f00"), Color.reviver);</code></pre>
- *
- * @see jsx.dom.css.Color#fromJSON
- * @return {number|jsx.dom.css.Color}
- */
-jsx.dom.css.HSLColor.reviver = function (property, value) {
- return (typeof value == "object")
- ? new this(value.hue, value.saturation, value.lightness, value.opacity)
- : value;
-};
-
-/**
- * Creates a <code>HSLColor</code> instance from JavaScript Object Notation.
- *
- * @param {String} sJSON
- * @return {jsx.dom.css.HSLColor|null}
- * The <code>HSLColor</code> if successful,
- * <code>null</code> otherwise.
- * @see JSON#parse(String, Function)
- */
-jsx.dom.css.HSLColor.fromJSON = function (sJSON) {
- if (jsx.isNativeMethod(jsx.tryThis("JSON"), "parse"))
- {
- return JSON.parse(sJSON, this.reviver);
- }
-
- var
- color = null,
- error = null;
-
- jsx.tryThis(
- function () { color = eval("(" + sJSON + ")"); },
- function (e) { error = e; }
- );
-
- if (!color || error && error.name == "SyntaxError")
- {
- return null;
- }
-
- return new this(color.hue, color.saturation, color.lightness, color.opacity);
-};
-
-
-jsx.dom.css.HSLColor.extend(null, {
- /**
- * @memberOf jsx.dom.css.HSLColor.prototype
- * @param {int} value
- */
- setHue: function (value) {
- this.hue = value || 0;
- },
-
- /**
- * @param {float} value
- */
- setSaturation: function (value) {
- this.saturation = value || 0;
- },
-
- /**
- * @param {float} value
- */
- setLightness: function (value) {
- this.lightness = value || 0;
- },
-
- /**
- * @function
- */
- setOpacity: (function () {
- var _setOpacity = jsx.dom.css.Color.prototype.setOpacity;
-
- /**
- * @param {float} value
- */
- return function (value) {
- return _setOpacity.call(this, value);
- };
- }()),
-
- /**
- * Returns the RGB color for the HSL color
- *
- * @function
- */
- toRGB: (function () {
- var _Color = jsx.dom.css.Color;
-
- /**
- * @return {jsx.dom.css.Color}
- */
- return function () {
- /* Cf. <http://www5.informatik.tu-muenchen.de/lehre/vorlesungen/graphik/info/csc/COL_26.htm#topic25> */
- function getRGBValue(n1, n2, hue)
- {
- if (hue > 360)
- {
- hue = hue - 360;
- }
- else if (hue < 0)
- {
- hue = hue + 360;
- }
-
- var value;
-
- if (hue < 60)
- {
- value = n1 + (n2 - n1) * hue / 60;
- }
- else if (hue < 180)
- {
- value = n2;
- }
- else if (hue < 240)
- {
- value = n1 + (n2 - n1) * (240 - hue) / 60;
- }
- else
- {
- value = n1;
- }
-
- return value;
- }
-
- var
- hue = this.hue,
- saturation = this.saturation / 100,
- lightness = this.lightness / 100,
- m2, red, green, blue;
-
- if (lightness <= 0.5)
- {
- m2 = lightness * (1 + saturation);
- }
- else
- {
- m2 = lightness + saturation - lightness * saturation;
- }
-
- var m1 = 2 * lightness - m2;
-
- if (saturation == 0)
- {
- red = green = blue = lightness;
- }
- else
- {
- red = getRGBValue(m1, m2, hue + 120);
- green = getRGBValue(m1, m2, hue);
- blue = getRGBValue(m1, m2, hue - 120);
- }
-
- var rgbMax = _Color.MAX_VALUE;
-
- return new _Color(red * rgbMax, green * rgbMax, blue * rgbMax, this.opacity);
- };
- }()),
-
- toHSLString: function () {
- return ('hsl(' + this.hue
- + ', ' + this.saturation + '%'
- + ', ' + this.lightness + '%)');
- },
-
- /**
- * Returns the JavaScript Object Notation for the instance.
- *
- * Returns
- * <code>{"red": <var>r</var>, "green": <var>g</var>, "blue": <var>b</var>,
- * "opacity": <var>op</var>}</code>
- * as supported by e.g. JSON.
- *
- * @return {string}
- */
- toJSON: function () {
- return '{'
- + '"hue": ' + this.hue
- + ', "saturation": ' + this.saturation
- + ', "lightness": '+ this.lightness
- + ', "opacity": ' + this.opacity
- + '}';
- }
-});
-
-jsx.dom.css.HSLColor.prototype.toString =
-jsx.dom.css.HSLColor.prototype.toHSLAString = function () {
- return ('hsla(' + this.hue
- + ', ' + this.saturation + '%'
- + ', ' + this.lightness + '%'
- + ', ' + this.opacity + ')');
-};
-
-/**
- * Changes the current document into a monochrome version of itself.
- *
- * @function
- */
-jsx.dom.css.makeMono = (function () {
- var _Color = new jsx.dom.css.Color();
-
- return function () {
- var
- ruleList = new jsx.dom.css.RuleList(),
- iter = ruleList.iterator(),
- rule,
- colorProperties = [
- 'backgroundColor', 'borderColor', 'borderTopColor',
- 'borderRightColor', 'borderBottomColor', 'borderLeftColor',
- 'outlineColor', 'color'
- ],
- j, propertyValue;
-
- while ((rule = iter.next()))
- {
- for (j = colorProperties.length; j--;)
- {
- propertyValue = rule[colorProperties[j]];
- if (propertyValue)
- {
- rule[colorProperties[j]] = _Color.setMono(propertyValue).toString();
- }
- }
- }
-
- for (var elems = dhtml.getElemByTagName('*'), i = elems && elems.length; i--;)
- {
- var elem = elems[i];
- for (j = colorProperties.length; j--;)
- {
- if ((propertyValue = elem.style[colorProperties[j]]))
- {
- elem.style[colorProperties[j]] = _Color.setMono(propertyValue).toString();
- }
- }
- }
- };
-}());
\ No newline at end of file
/live/dom/css/color.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/dom/timer.js
===================================================================
--- live/dom/timer.js (revision 509)
+++ live/dom/timer.js (nonexistent)
@@ -1,105 +0,0 @@
-
-
-jsx.dom.Timer = function(f, oProperties) {
- if (f){this.form = f;}
- this.message = "";
-
- if (typeof Object.keys == "function")
- {
- var keys = Object.keys(oProperties);
- for (var i = 0, len = keys.length; i < len; ++i)
- {
- var p = keys[i];
- this[p] = oProperties[p];
- }
- }
- else
- {
- for (p in oProperties)
- {
- this[p] = oProperties[p];
- }
- }
-};
-
-jsx.dom.Timer.prototype = {
- constructor: jsx.dom.Timer,
-
- start: function(o)
- {
- if (o){this.form = o.form;}
-
- // clear the previous timeout
- this.stop();
-
- if (jsx.object.isMethod(window, "setTimeout"))
- {
- var me = this;
- this.timeout = window.setTimeout(
- function() { me.tick(1000); me = null; },
- 1000);
- }
- },
-
- tick: function(interval)
- {
- var
- es = this.form.elements,
- hours = +es["hours"].value,
- mins = +es["minutes"].value,
- secs = +es["seconds"].value;
-
- if (--secs < 0)
- {
- secs = 59;
- mins--;
- }
-
- if (mins < 0)
- {
- mins = 59;
- hours--;
- }
-
- if (hours < 0)
- {
- this.ring();
- }
- else
- {
- es["hours"].value = hours;
- es["minutes"].value = leadingZero(mins, 2);
- es["seconds"].value = leadingZero(secs, 2);
-
- var me = this;
- this.timeout = window.setTimeout(
- function() { me.tick(interval); me = null; },
- interval);
- }
- },
-
- ring: function()
- {
- this.stop();
- playSound('/media/audio/sound/display.wav');
- window.alert(this.message || "RING!");
- },
-
- stop: function(o)
- {
- if (!this.form && o){this.form = o.form;}
-
- if (typeof this.timeout != "undefined"
- && jsx.object.isMethod(window, "clearTimeout"))
- {
- window.clearTimeout(this.timeout);
- delete this.timeout;
- }
- },
-
- reset: function(o)
- {
- this.stop();
- if (this.form){this.form.reset();}
- }
-};
/live/dom/timer.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/dom/compat.js
===================================================================
--- live/dom/compat.js (revision 509)
+++ live/dom/compat.js (nonexistent)
@@ -1,5 +0,0 @@
-var dhtml = jsx.dom;
-var getElem = jsx.dom.getElem;
-var setCont = jsx.dom.setCont;
-jsx.dom.css.removeClassName = jsx.dom.removeClassName;
-jsx.dom.css.addClassName = jsx.dom.addClassName;
\ No newline at end of file
/live/dom/compat.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/dom/xpath.js
===================================================================
--- live/dom/xpath.js (revision 509)
+++ live/dom/xpath.js (nonexistent)
@@ -1,512 +0,0 @@
-"use strict";
-/**
- * <title>PointedEars' XPath Library</title>
- * @file $Id$
- * @requires object.js
- *
- * @section Copyright & Disclaimer
- *
- * @author (C) 2008‒2012 Thomas Lahn <js@PointedEars.de>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-/*
- * Refer xpath.js.diff for changes to the last version,
- * and xpath.htm file for a printable documentation.
- *
- * This document contains JavaScriptDoc. See
- * http://pointedears.de/scripts/JSdoc/
- * for details.
- */
-
-if (typeof XPathResult == "undefined")
-{
- var XPathResult = {
- ANY_TYPE: 0,
- NUMBER_TYPE: 1,
- STRING_TYPE: 2,
- BOOLEAN_TYPE: 3,
- UNORDERED_NODE_ITERATOR_TYPE: 4,
- ORDERED_NODE_ITERATOR_TYPE: 5,
- UNORDERED_NODE_SNAPSHOT_TYPE: 6,
- ORDERED_NODE_SNAPSHOT_TYPE: 7,
- ANY_UNORDERED_NODE_TYPE: 8,
- FIRST_ORDERED_NODE_TYPE: 9
- };
-}
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-if (typeof jsx.dom == "undefined")
-{
- /**
- * @namespace
- */
- jsx.dom = {};
-}
-
-/**
- * @namespace
- */
-jsx.dom.xpath = {
- version: "0.1.$Revision$ ($Date$)",
- copyright: "Copyright \xA9 2008-2011",
- author: "Thomas Lahn",
- email: "js@PointedEars.de",
- path: "http://PointedEars.de/scripts/",
-
- /**
- * Returns the result of evaluating an XPath expression against a context node
- *
- * @function
- * @param expression : String
- * XPath expression. You may use a namespace prefix starting with "_"
- * to indicate a default namespace of the context node (that XPath
- * usually cannot resolve directly). You then need to provide a custom
- * namespace resolver, like one created with
- * {@link jsx.dom.xpath#createCustomNSResolver}, to return the namespace
- * URI for those prefixes. This workaround is necessary because MSXML
- * XPath for JScript does not require or support a custom namespace
- * resolver for elements in the default namespace, and those virtual
- * prefixes must be trimmed from the expression by this method beforehand.
- * @param contextNode : Node
- * Context node
- * @param namespaceResolver : Function
- * Namespace resolver. If not provided, a default namespace
- * resolver will be created using {@link jsx.dom.xpath#createDefaultNSResolver}.
- * Is ignored if MSXML is used, as MSXML for JScript supports only
- * the default namespace resolver. See the section
- * {@ref "Namespace Resolvers"} for details.
- * @param resultType : Number
- * Expected XPath result type. Should be one of the XPathResult.* constants.
- * Is ignored if MSXML is used, as MSXML only supports the equivalent of
- * {@link XPathResult#ORDERED_NODE_ITERATOR_TYPE}.
- * @param oResult : XPathResult
- * Optional XPathResult. For backwards compatibility only.
- * @return Result of the XPath expression,
- * or <code>null</code> on recoverable error
- * @type Null|number|string|boolean|Array
- * @throws DOMException on unrecoverable XPath error
- */
- evaluate:
- (function () {
- var isMethod = jsx.object.isMethod;
- var _XPathResult = XPathResult;
- var createDefaultNSResolver = null;
-
- return function (expression, contextNode, namespaceResolver,
- resultType, oResult) {
- var result = null;
-
- if (!contextNode)
- {
- contextNode = document;
- var documentNode = contextNode;
- }
- else
- {
- documentNode = contextNode.ownerDocument || contextNode;
- }
-
- if (isMethod(documentNode, "evaluate"))
- {
- var nsResolver = namespaceResolver
- || (
- createDefaultNSResolver
- || (createDefaultNSResolver = jsx.dom.xpath.createDefaultNSResolver)
- )(contextNode, documentNode);
- var iResultType = resultType || 0;
- var objResult = oResult || null;
-
- /* Make DOM exception recoverable in WebCore */
- jsx.tryThis(
- function () {
- result = documentNode.evaluate(expression, contextNode, nsResolver,
- iResultType, objResult);
- },
- function (e) {
- jsx.rethrowThis(e);
- }
- );
- }
- else if (isMethod(contextNode, "selectNodes"))
- {
- result = contextNode.selectNodes(expression.replace(/_\w*:/g, ""));
- resultType = _XPathResult.ORDERED_NODE_ITERATOR_TYPE;
- }
-
- if (result)
- {
- var found = [];
-
- switch (typeof result.resultType != "undefined"
- ? result.resultType
- : resultType)
- {
- case _XPathResult.NUMBER_TYPE:
- if (typeof result.numberValue != "undefined")
- {
- result = result.numberValue;
- }
- break;
-
- case _XPathResult.STRING_TYPE:
- if (typeof result.stringValue != "undefined")
- {
- result = result.stringValue;
- }
- break;
-
- case _XPathResult.BOOLEAN_TYPE:
- if (typeof result.booleanValue != "undefined")
- {
- result = result.booleanValue;
- }
- break;
-
- case _XPathResult.UNORDERED_NODE_ITERATOR_TYPE:
- case _XPathResult.ORDERED_NODE_ITERATOR_TYPE:
- if (isMethod(result, "iterateNext"))
- {
- /* DOM Level 3 XPath: NodeIterator */
- var res;
- while ((res = result.iterateNext()))
- {
- found.push(res);
- }
-
- result = found;
- }
- else if (typeof result.length != "undefined")
- {
- /* MSXML DOM: NodeList */
- for (var i = 0, len = result.length; i < len; ++i)
- {
- found.push(result[i]);
- }
-
- result = found;
- }
- break;
-
- case _XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE:
- case _XPathResult.ORDERED_NODE_SNAPSHOT_TYPE:
- if (typeof result.snapshotLength != "undefined"
- && isMethod(result, "snapshotItem"))
- {
- for (var i = 0, len = result.snapshotLength; i < len; i++)
- {
- found.push(result.snapshotItem(i));
- }
-
- result = found;
- }
- break;
-
- case _XPathResult.ANY_UNORDERED_NODE_TYPE:
- case _XPathResult.FIRST_ORDERED_NODE_TYPE:
- if (typeof result.singleNodeValue != "undefined")
- {
- result = result.singleNodeValue;
- }
- break;
-
- default:
- jsx.throwThis("jsx.dom.xpath.InvalidImplementationError");
- result = null;
- }
- }
-
- return result;
- };
- }()),
-
-/**
- * @section Namespace Resolvers
- *
- * To facilitate matching of elements and attributes in namespaces
- * with XPath, a namespace resolver is required. A namespace resolver
- * is a function that returns the namespace URI for a given namespace
- * prefix found in an XPath expression.
- *
- * JSX:xpath.js provides three ways to create a namespace resolver:
- * <ul>
- * <li>{@link jsx.dom.xpath#createDefaultNSResolver} creates a built-in
- * namespace resolver (if available) that can resolve elements
- * and attributes in the document in the null namespace (in no
- * namespace) or in namespaces with prefixes (declared with
- * <code>xmlns:<var>prefix</var>="<var>URI</var>"</code>.
- * It cannot resolve elements and attributes in a default
- * namespace (declared with <code>xmlns="<var>URI</var>"</code>).
- * </li>
- * <li>{@link jsx.dom.xpath#createCustomNSResolver} creates a custom
- * namespace resolver that can resolve only namespace prefixes
- * that you specify. You can use this kind of resolver
- * to select elements and attributes in known default namespaces,
- * by giving those prefixes starting with <code>_</code>, and
- * namespaces with other prefixes.</li>
- * <li>{@link jsx.dom.xpath#createFullNSResolver} gives you the
- * best of both worlds. It creates a customizable namespace
- * resolver that scans the document starting from a given context
- * node (the document element node by default) for the first
- * default namespace declaracation and for declarations of
- * namespaces with a prefix.
- * </ul>
- */
-
- /**
- * Creates and returns a default namespace resolver, as created and
- * returned by <code>Document::createNSResolver()</code>, if available,
- * or <code>null</code>.
- *
- * Note that despite its name a default namespace resolver cannot
- * resolve elements in a default namespace. Use
- * {@link jsx.dom.xpath#createCustomNSResolver()} to create such a resolver
- * instead.
- *
- * @param contextNode : Node
- * Context node for which the default namespace resolver should be
- * created.
- * @param documentNode : Document
- * Document node, required for calling the <code>createNSResolver()</code>
- * method. If not specified, <code>document</code> is used.
- * @return NSResolver|null
- */
- createDefaultNSResolver: function (contextNode, documentNode) {
- if (!documentNode)
- {
- documentNode = document;
- }
-
- return (jsx.object.isMethod(documentNode, "createNSResolver")
- ? documentNode.createNSResolver(
- (contextNode.ownerDocument == null
- ? contextNode.documentElement
- : contextNode.ownerDocument.documentElement))
- : null);
- },
-
- /**
- * Collects and returns the namespaces of a node and its descendants.
- *
- * Collects the namespace prefixes and URIs of <var>contextNode</var> and
- * its descendant element nodes. Duplicate prefixes with different namespace
- * URI are ignored and must be resolved manually using the <var>namespaces</var>
- * argument of {@link jsx.dom.xpath#createFullNSResolver()}.
- *
- * @param namespaces : Object
- * Contains the collected namespace declarations. Existing properties
- * are preserved.
- * @param contextNode : Document|Element
- * The parent node from where to start searching for namespace
- * declarations. If it is a Document node, the document element node
- * is used instead. The default is the document element node.
- * @return {Object}
- * The resulting value of <var>namespaces</var> if successful,
- * <code>null</code> otherwise.
- * @throws jsx.dom.xpath.InvalidNodeError if a value has been specified
- * for <var>contextNode</var> that is not a reference to a Document
- * node or an Element node.
- * @see jsx.dom.xpath#createFullNSResolver()
- */
- collectNamespaces: function jsx_xpath_collectNamespaces (namespaces, contextNode) {
- if (!namespaces)
- {
- jsx.warn("`namespaces' is not convertible to an Object; argument is not modified.");
- namespaces = {};
- }
-
- /* Scan entire document by default */
- if (!contextNode)
- {
- contextNode = document.documentElement;
- }
-
- /* if DOCUMENT_NODE, use root element */
- if (contextNode.nodeType == 9)
- {
- contextNode = contextNode.documentElement;
- }
-
- if (!contextNode || contextNode.nodeType != 1)
- {
- jsx.throwThis("jsx.dom.xpath.InvalidNodeError", contextNode);
- return null;
- }
-
- for (var i = 0, attribs = contextNode.attributes, len = attribs && attribs.length;
- i < len;
- ++i)
- {
- var attr = attribs[i];
- var attrName = attr.name;
- var matches;
-
- if ((matches = String(attrName).match(/^xmlns($|:(.+))/)))
- {
- var originalPrefix = matches[2];
- var prefix = originalPrefix || "_";
-
- if (typeof namespaces[prefix] == "undefined")
- {
- var attrValue = attr.value;
-
- /*
- * Default NS declaration with empty value means _no_ namespace,
- * see <http://www.w3.org/TR/REC-xml-names/#defaulting>
- */
- if (!originalPrefix && attrValue == "")
- {
- attrValue = null;
- }
-
- namespaces[prefix] = attrValue;
- }
- }
- }
-
- for (var i = 0, childNodes = contextNode.childNodes, len = childNodes && childNodes.length;
- i < len;
- ++i)
- {
- var childNode = childNodes[i];
-
- /* If ELEMENT_NODE, recurse */
- if (childNode.nodeType == 1)
- {
- jsx.tryThis(
- function() {
- jsx_xpath_collectNamespaces(namespaces, childNode);
- },
- function (e) {
- if (e.name === "jsx.dom.xpath.InvalidArgumentError")
- {
- jsx.throwThis(e);
- }
- });
- }
- }
-
- return namespaces;
- },
-
- /**
- * Creates and returns a custom namespace resolver.
- *
- * This method exists primarily to facilitate the matching of elements
- * that are in the default namespace as XPath defines <tt>QNames</tt>
- * without prefix to match only elements in the null namespace. Use it
- * instead of {@link jsx.dom.xpath#createFullNSResolver} if you only want
- * to match elements in custom default namespaces.
- *
- * See also the description of the <var>expression</var> argument of
- * {@link jsx.dom.xpath#evaluate} for details.
- *
- * @param namespaces : Object
- * Namespace declarations. The property names are the namespace
- * prefixes, the property values are the namespace URIs.
- * @return {Function} A namespace resolver that can resolve the
- * declared namespaces. A selector in an undeclared namespace is
- * considered to be in the null namespace.
- */
- createCustomNSResolver: function (namespaces) {
- return function (prefix) {
- return namespaces[prefix] || null;
- };
- },
-
- /**
- * Creates and returns a customizable full namespace resolver.
- *
- * Creates and returns a customizable namespace resolver that
- * considers the namespaces already declared in the document first.
- *
- * Like {@link jsx.dom.xpath#createCustomNSResolver}, this method exists
- * primarily to facilitate the matching of elements that are in a
- * default namespace. Use it instead of
- * {@link jsx.dom.xpath#createCustomNSResolver} if you need to match elements
- * in the context node's default namespace, or in one of the namespaces
- * with prefix declared in the context node or its descendant elements.
- *
- * See also the description of the <var>expression</var> argument of
- * {@link jsx.dom.xpath#evaluate} for details.
- *
- * @param namespaces : Object
- * Namespace declarations. The property names are the namespace
- * prefixes, the property values are the namespace URIs.
- * @param contextNode : Document|Element
- * The parent node from where to start searching for namespace
- * declarations. If it is a Document node, the document element node
- * is used instead. The default is the document element node.
- * @return {Function} A namespace resolver that can resolve the
- * declared namespaces. A selector in an undeclared namespace is
- * considered to be in the null namespace.
- * @throws jsx.dom.xpath#InvalidNodeError if a value has been specified
- * for <var>contextNode</var> that is not a reference to a Document
- * node or an Element node.
- * @see jsx.dom.xpath#collectNamespaces(string, Element|Document)
- * @function
- */
- createFullNSResolver: (function () {
- var collectNamespaces = null;
-
- return function (namespaces, contextNode) {
- if (contextNode)
- {
- if (!namespaces)
- {
- namespaces = {};
- }
-
- (
- collectNamespaces || (collectNamespaces = jsx.dom.xpath.collectNamespaces)
- )(namespaces, contextNode);
- }
-
- return function (prefix) {
- return namespaces[prefix] || null;
- };
- };
- }()),
-
- /**
- * Exception thrown if an unsupported XPath implementation is encountered
- *
- * @function
- */
- InvalidImplementationError: (function () {
- jsx.Error.call(this);
- }).extend(jsx.Error, {
- name: "jsx.dom.xpath.InvalidImplementationError"
- }),
-
- /**
- * Exception thrown if an invalid Node reference is passed
- *
- * @function
- */
- InvalidNodeError: (function (contextNode) {
- jsx.Error.call(this, contextNode);
- }).extend(jsx.Error, {
- name: "jsx.dom.xpath.InvalidNodeError"
- })
-};
\ No newline at end of file
/live/dom/xpath.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Index: live/dom/timeout.js
===================================================================
--- live/dom/timeout.js (revision 509)
+++ live/dom/timeout.js (nonexistent)
@@ -1,174 +0,0 @@
-/**
- * <title>PointedEars' DOM Library: Timeout</title>
- * @requires object.js
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2002-2013 Thomas Lahn <js@PointedEars.de>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-if (typeof jsx.dom == "undefined")
-{
- /**
- * @namespace
- */
- jsx.dom = {};
-}
-
-/**
- * @namespace
- */
-jsx.dom.timeout = (function () {
- /* Imports */
- var _isMethod = jsx.object.isMethod;
-
- /* Private variables */
- var _Timeout = (
- /**
- * Creates a container for code that can be run later.
- *
- * @constructor
- * @param {Function} f
- * Code to be run later. The default is <code>null</code>.
- * @param {int} delay
- * Milliseconds after which the code will be run by default.
- */
- function jsx_dom_timeout_Timeout (f, delay) {
- this.running = false;
- this.code = f || null;
- this.delay = parseInt(delay, 10) || 50;
- }
- ).extend(null, {
- /**
- * Runs the associated code after <var>delay</var> milliseconds;
- * cancels any planned but not yet performed executions.
- *
- * @memberOf jsx.dom.timeout.Timeout.prototype
- * @param {Function} f
- * Code to be run later. The default is the value of the
- * <code>code</code> property as initialized upon construction.
- * This argument's value will modify that property if the type
- * is correct.
- * @param {int} delay
- * Milliseconds after which the code will be run by default.
- * The default is the value of the <code>delay</code> property
- * as initialized upon construction.
- * This argument's value will modify that property if the type
- * is correct.
- * @return {jsx.dom.timeout.Timeout}
- * This object
- */
- run: function(f, delay) {
- this.unset();
-
- if (typeof f == "function")
- {
- this.code = f;
- }
-
- if (delay)
- {
- this.delay = parseInt(delay, 10);
- }
-
- if (_isMethod(jsx.global, "window", "setTimeout"))
- {
- this.running = true;
- var me = this;
- this.data = window.setTimeout(function() {
- me.code();
- me.unset();
- }, this.delay);
- }
-
- return this;
- },
-
- /**
- * Cancels the execution of the associated code
- */
- unset: function() {
- if (this.running)
- {
- if (_isMethod(jsx.global, "window", "clearTimeout"))
- {
- window.clearTimeout(this.data);
- }
-
- this.running = false;
- }
- }
- });
-
- return {
- /**
- * @memberOf jsx.dom.timeout
- */
- Timeout: _Timeout,
-
- TimeoutList: (
- /**
- * Provides a container for {@link #Timeout}s.
- *
- * @constructor
- * @param {Array} timeouts
- * The list of {@link jsx.dom.timeout#Timeout Timeouts} to be considered
- */
- function jsx_dom_timeout_TimeoutList (timeouts) {
- this.timeouts = timeouts || [];
- }
- ).extend(null, {
- /**
- * Unsets all {@link #Timeout}s in this container
- *
- * @memberOf jsx.dom.timeout.TimeoutList.prototype
- */
- unsetAll: function() {
- for (var i = 0, timeouts = this.timeouts, len = timeouts.length; i < len; ++i)
- {
- timeouts[i].unset();
- }
- }
- }),
-
- /**
- * Schedules code for later execution.
- *
- * @param {String|Function} code
- * Code to be executed or function to be called.
- * @param {number} iTimeout
- * Number of milliseconds after which <var>code</var> should be run.
- * The time of execution is implementation-dependent, but the timer
- * will usually not start before control has returned to the caller.
- * @return {jsx.dom.timeout.Timeout}
- * The created <code>Timeout</code>
- */
- runAsync: function (code, iTimeout) {
- return (new _Timeout(code, iTimeout)).run();
- }
- };
-}());
\ No newline at end of file
/live/dom/timeout.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/dom/forms.js
===================================================================
--- live/dom/forms.js (revision 509)
+++ live/dom/forms.js (nonexistent)
@@ -1,464 +0,0 @@
-/**
- * <title>PointedEars' DOM Library: Forms</title>
- * @version $Id$
- * @requires dom.js
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2004-2011, 2013 Thomas Lahn <js@PointedEars.de>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-if (typeof jsx.dom == "undefined")
-{
- jsx.dom = {};
-}
-
-/**
- * Sets the <code>value</code> property of an <code>HTMLInputElement</code>
- * object, and its <code>title</code> property accordingly if specified.
- *
- * @author
- * (C) 2004 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @param {HTMLInputElement} oInput
- * Required. Reference to an HTMLInputElement object.
- * @param {string} sValue
- * New value of the <code>value</code> property of the
- * HTMLInputElement object.
- * @param {boolean} bSetTitle = false
- * Specifies if the <code>title</code> property should be set to
- * the same value as the <code>value</code> property. The default
- * is <code>false</code>.
- * @return {boolean}
- * If <var>bSetTitle</var> evaluates to <code>false</code>
- * or omitted:
- *
- * <code>true</code> if the <code>value</code> property could be set
- * properly, <code>false</code> otherwise.
- *
- * If <var>bSetTitle</var> is <code>true</code>:
- *
- * <code>true</code> if <em>both</em> the <code>value</code> and
- * <code>title</code> properties could be set properly,
- * <code>false</code> otherwise.
- */
-jsx.dom.setValue = function(oInput, sValue, bSetTitle) {
- if (oInput && typeof oInput.value != "undefined")
- {
- oInput.value = sValue;
- if (bSetTitle && typeof oInput.title != "undefined")
- {
- oInput.title = sValue;
- return (oInput.value == sValue && oInput.title == sValue);
- }
- return (oInput.value == sValue);
- }
-
- return false;
-};
-
-/**
- * Retrieves the checked radio button of a radio button group.
- *
- * @author
- * Copyright (C) 2004, 2007 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @param {HTMLFormElement} oForm
- * Required. Reference to an HTMLFormElement object to contain
- * the radio button group.
- * @param {string} sGroup
- * Name of the radio button group from which the
- * checked radio button should be retrieved.
- * @return {Object|boolean|HTMLInputElement}
- * <code>null</code> if <var>oForm</var> is invalid or there is no such
- * <var>sGroup</var>;
- * <code>false</code> if no radio button of <var>sGroup</var> is checked;
- * a reference to the checked radio button otherwise
- */
-jsx.dom.getCheckedRadio = function(oForm, sGroup) {
- var result = null, e, ig;
- if (oForm && (e = oForm.elements) && (ig = e[sGroup]))
- {
- result = false;
- for (var i = ig.length; i--;)
- {
- if (ig[i].checked)
- {
- result = ig[i];
- break;
- }
- }
- }
-
- return result;
-};
-
-/**
- * Removes all options from a HTMLSelectElement object.
- *
- * @author
- * (C) 2003 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @param {HTMLSelectElement} oSelect
- * Reference to a HTMLSelectElement object.
- * @param {boolean} bAllowReload
- * If <code>true</code>, reloads the document.
- * @return {boolean}
- * <code>true</code> if successful, <code>false</code>
- * otherwise.
- */
-jsx.dom.removeOptions = function(oSelect, bAllowReload) {
- if (oSelect
- && oSelect.tagName
- && oSelect.tagName.toLowerCase() == "select")
- {
- var o = oSelect.options;
- if (o && o.length > 0)
- {
- /* shortcut if "length" property is not read-only */
- o.length = 0;
- while (o.length > 0)
- {
- if (jsx.object.isMethod(o, "remove"))
- {
- o.remove(o.length - 1);
- }
- else
- {
- o[o.length - 1] = null;
- if (bAllowReload)
- {
- history.go(0);
- }
- }
- }
- return true;
- }
- }
-
- return false;
-};
-
-/**
- * Adds an option to an HTMLSelectElement object.
- *
- * @author
- * (C) 2003, 2012 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @param {HTMLSelectElement} oSelect
- * Required reference to an HTMLSelectElement object.
- * @param {string} sText
- * Required text of the new HTMLOptionElement object.
- * @param {string} sValue (optional)
- * Optional value of the new HTMLOptionElement object.
- * @return {Option|HTMLOptionElement}
- * A reference to the new option if successful,
- * <code>null</code> otherwise.
- */
-jsx.dom.addOption = function (oSelect, sText, sValue) {
- if (!(oSelect
- && oSelect.tagName
- && typeof oSelect.tagName == "string"
- && oSelect.tagName.toLowerCase
- && oSelect.tagName.toLowerCase() == "select"
- && oSelect.options))
- {
- return null;
- }
-
- var oNew = new Option(sText, (arguments.length < 3) ? "" : sValue);
-
- var o = oSelect.options;
- o[o.length] = oNew;
-
- return oNew;
-};
-
-/**
- * Select a radio button depending on its value and, optionally,
- * its name.
- *
- * @author
- * (C) 2003 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @param {HTMLFormElement} oForm
- * Reference to the <code>HTMLFormElement</code> object
- * which contains the <code>HTMLInputElement</code> object.
- * @param aName
- * Name of the radio button, i.e. the value of the
- * <code>name</code> attribute of the respective
- * <code>input</code> (X)HTML element or the value
- * of the <code>name</code> property of the respective
- * <code>HTMLInputElement</code> object. Use an expression
- * that is evaluated to <code>false</code> for the argument
- * to be ignored.
- * @param {string} sValue
- * Value of the radio button, i.e. the value of the
- * <code>value</code> attribute of the respective
- * <code>input</code> (X)HTML element or the value
- * of the <code>value</code> property of the respective
- * <code>HTMLInputElement</code> object.
- */
-jsx.dom.selectRadioBtn = function(oForm, aName, sValue) {
- for (var i = 0; i < oForm.elements.length; i++)
- {
- var curEl = oForm.elements[i];
-
- if (!curEl.disabled
- && curEl.type == "radio"
- && (!sName || curEl.name == sName)
- && curEl.value == sValue)
- {
- curEl.checked = true;
- }
- }
-};
-
-/**
- * Disables a form element or a collection of form elements.
- *
- * @author
- * (C) 2003, 2010 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @param {HTMLElement|HTML(Options)Collection} oElementGroup
- * Reference to the <code>HTMLElement</code> or to
- * the <code>HTML(Options)Collection</code> object.
- * @param {Number|String} index (optional)
- * Optional number or string to specify
- * one element within the collection.
- */
-jsx.dom.disableElementGroup = function(oElementGroup, index) {
- if (oElementGroup)
- {
- if (oElementGroup[index]
- && typeof oElementGroup[index].disabled != "undefined")
- {
- oElementGroup[index].disabled = true;
- }
- else if (typeof oElementGroup.disabled != "undefined")
- {
- oElementGroup.disabled = true;
- }
- }
-};
-
-/**
- * Disables or enables form controls by name/ID.
- *
- * @param {HTMLFormElement} oForm
- * Reference to the <code>form</code> element object.
- * @params String|HTMLElement
- * Names/IDs of the elements or references
- * to the element objects to disable/enable.
- * @param {boolean} bDisable (optional)
- * If <code>false</code>, elements will be
- * enabled, otherwise disabled.
- */
-jsx.dom.disableElements = function(oForm) {
- if (oForm)
- {
- var len = arguments.length - 1, bDisable = arguments[len];
- if (bDisable && typeof bDisable == "boolean")
- {
- len = arguments.length - 2;
- }
-
- for (var i = 1; i < len; i++)
- {
- var a = arguments[i], o;
- if (typeof a != "object")
- {
- o = oForm.elements[a];
- }
- else
- {
- o = a;
- }
-
- var len2;
- if (typeof o.disabled != "undefined")
- {
- o.disabled = bDisable;
- }
- else if (typeof (len2 = o.length) != "undefined")
- {
- for (var j = len2; j--; 0)
- {
- var o2;
- if (typeof (o2 = o[j]).disabled != "undefined")
- {
- o2.disabled = bDisable;
- }
- }
- }
- }
- }
-};
-
-/**
- * @function
- */
-jsx.dom.serializeForm = (function() {
- var _getFeature = jsx.object.getFeature;
- var
- rxSubmit = /(^|\s)(submit|image)(\s|$)/i,
- rxSelect = /(^|\s)(select(-one)?|undefined)(\s|$)/i,
- rxFileReset = /^\s*(file|reset)\s*$/i,
- rxObject = /^\s*object\s*$/i;
-
- /**
- * @param {HTMLFormElement} form
- * @param {HTMLInputElement} submitButton (optional)
- * Reference to the submit button that should be successful.
- * By default, only the first submit button is successful.
- * @return {string}
- * The serialization of this form
- */
- return function(form, submitButton) {
- /**
- * @param {HTMLSelectElement|HTMLInputElement|HTMLTextAreaElement|HTMLButtonElement} control
- */
- function serializeControl(control)
- {
- /* HTML 4.01: Controls that are disabled cannot be successful. */
- if (control.disabled)
- {
- return;
- }
-
- /*
- * If a form contains more than one submit button,
- * only the activated submit button is successful.
- * (here: the first one or the specified one)
- */
- var isSubmit = rxSubmit.test(control.type);
- if ((!gotSubmit && !submitButton || control != submitButton) || !isSubmit)
- {
- if (isSubmit)
- {
- gotSubmit = true;
- }
-
- /*
- * For menus, the control name is provided by a SELECT element
- * and values are provided by OPTION elements. Only selected
- * options may be successful. When no options are selected,
- * the control is not successful and neither the name nor any
- * values are submitted to the server when the form is submitted.
- */
- var m = rxSelect.exec(control.type);
- if (m)
- {
- /* select-one */
- if (m[3])
- {
- if (control.selectedIndex > -1)
- {
- /*
- * MSHTML 6 is buggy with <option>foo</option>;
- * always provide a `value' attribute!
- */
- items.add(control.name, control.options[control.selectedIndex].value);
- }
- }
-
- /* select */
- else if (m[2])
- {
- for (var i = 0, opts = control.options, len = opts && opts.length; i < len; i++)
- {
- var opt = opts[i];
- if (opt.selected)
- {
- /*
- * MSHTML 6 is buggy with <option>foo</option>;
- * always provide a `value' attribute!
- */
- items.add(control.name, opt.value);
- }
- }
- }
- }
-
- /*
- * All "on" checkboxes may be successful.
- * For radio buttons that share the same value of the
- * name attribute, only the "on" radio button may be successful.
- */
- else if (!rxFileReset.test(control.type)
- && !(rxObject.test(control.tagName) && control.declare)
- && !/^\s*(checkbox|radio)\s*$/i.test(control.type)
- || control.checked)
- {
- items.add(control.name, control.value);
- }
- }
- }
-
- var es = _getFeature(form, "elements");
- if (!es)
- {
- return "";
- }
-
- var items = [];
-
- items.add = function(sName, sValue) {
- var s = encodeURIComponent(sName) + "=" + encodeURIComponent(sValue);
- this.push(s);
- };
-
- if (!jsx.object.isMethod(items, "push"))
- {
- items.push = function() {
- for (var i = 0, len = arguments.length; i < len; i++)
- {
- this[this.length] = arguments[i];
- }
- };
- }
-
- var gotSubmit = false;
-
- for (var i = 0, len = es.length; i < len; i++)
- {
- var e = es[i];
-
- /*
- * Elements with the same name create a NodeList object,
- * however options of select objects are also indexable in Gecko.
- */
- if (typeof e[0] != "undefined" && typeof e.options == "undefined")
- {
- for (var j = 0, len2 = e.length; j < len2; j++)
- {
- serializeControl(e[j]);
- }
- }
- else
- {
- serializeControl(e);
- }
- }
-
- return items.join("&");
- };
-})();
\ No newline at end of file
/live/dom/forms.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/dom/css.js
===================================================================
--- live/dom/css.js (revision 509)
+++ live/dom/css.js (nonexistent)
@@ -1,1234 +0,0 @@
-/**
- * <title>PointedEars' DOM Library: CSS</title>
- * @version $Id$
- * @requires dom.js
- * @recommends collection.js
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2005-2013 Thomas Lahn <js@PointedEars.de>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-if (typeof jsx.dom == "undefined")
-{
- if (typeof jsx.importFrom == "function")
- {
- jsx.importFrom(jsx.absPath("../dom.js", jsx.importFrom.lastImport));
- }
- else
- {
- /**
- * @namespace
- */
- jsx.dom = {};
- }
-}
-
-/* for JSDT only */
-/**
- * @namespace
- */
-jsx.dom.css = {};
-
-/**
- * @type jsx.dom.css
- * @memberOf __jsx.dom.css
- * @namespace
- */
-jsx.dom.css = (/** @constructor */ function () {
- var _jsx_object = jsx.object;
-
- var _LENGTH = 1;
- var _COLOR = 5;
- var _FLOAT = 7;
- var _TRANSFORM = 8;
-
- return {
- /**
- * @memberOf jsx.dom.css
- */
- version: "0.1.$Revision$",
-
- /**
- * Supported CSS data types. Properties include:
- * <dl>
- * <dt><code>NUMBER</code></dt>
- * <dd></dd>
- *
- * <dt><code>LENGTH</code></dt>
- * <dd></dd>
- *
- * <dt><code>PERCENTAGE</code></dt>
- * <dd></dd>
- *
- * <dt><code>URI</code></dt>
- * <dd>Uniform Resource Identifier or URI-reference (see RFC 3986),
- * enclosed in <code>url(…)</code></dd>
- *
- * <dt><code>COUNTER</code></dt>
- * <dd>CSS counter</dd>
- *
- * <dt><code>COLOR</code></dt>
- * <dd>Color in RGB(A) or HSV format</dd>
- *
- * <dt><code>STRING</code></dt>
- * <dd>Unicode string</dd>
- * </dl>
- *
- * @namespace
- */
- types: {
- /**
- * Numeric scalar value
- */
- NUMBER: 0,
-
- /**
- * Length given relative in <code>em</code> (width of the
- * M&nbsp;square) or <code>ex</code> (height of the x square),
- * or absolute in <code>in</code> (inches), <code>cm</code>
- * (centimeters), <code>mm</code> (millimeters), <code>pt</code>
- * (points), <code>pc</code> (picas), or <code>px</code>
- * (pixels).
- */
- LENGTH: _LENGTH,
-
- /**
- * Length given in percentage of the parent
- */
- PERCENTAGE: 2,
-
- /**
- * Uniform Resource Identifier or URI-reference (see RFC 3986),
- * enclosed in <code>url(…)</code>.
- */
- URI: 3,
-
- /**
- * CSS counter
- */
- COUNTER: 4,
-
- /**
- * Color given in RGB(A) or HSV format
- */
- COLOR: _COLOR,
-
- /**
- * String of Unicode characters
- */
- STRING: 6,
-
- /**
- * List of transformations
- */
- FLOAT: _FLOAT,
-
- /**
- * List of transformations
- */
- TRANSFORM: _TRANSFORM
- },
-
- prefixedProperties: {
- transition: true,
- animation: true
- },
-
- /**
- * Property name prefixes
- */
- prefixes: {
- camelized: ["Moz", "Ms", "O", "Webkit", ""],
- uncamelized: ["-moz-", "-ms-", "-o-", "-webkit-", ""]
- },
-
- /**
- * Provides information about the type of a CSS property and its relation
- * to other CSS properties
- *
- * @namespace
- */
- propertyInfo: {
- "float": {
- type: _FLOAT,
- aliases: ["cssFloat", "styleFloat"]
- },
- left: {
- type: _LENGTH,
- correspondsTo: "top"
- },
- top: {
- type: _LENGTH,
- correspondsTo: "left"
- },
- right: {
- type: _LENGTH,
- correspondsTo: "bottom"
- },
- bottom: {
- type: _LENGTH,
- correspondsTo: "right"
- },
- width: {
- type: _LENGTH,
- correspondsTo: "height"
- },
- height: {
- type: _LENGTH,
- correspondsTo: "width"
- },
- color: {
- type: _COLOR
- },
-
- /* FIXME */
- backgroundColor: {
- type: _COLOR
- },
- "background-color": {
- type: _COLOR
- },
-
- transform: {
- type: _TRANSFORM
- }
- },
-
- /**
- * @function
- */
- camelize: (function () {
- if (typeof jsx.map != "undefined" && typeof jsx.map.Map == "function")
- {
- var cache = new jsx.map.Map();
- }
- else
- {
- var prefix = " ", suffix = "";
-
- cache = _jsx_object.getDataObject();
- cache.get = function (s) {
- return _jsx_object.getProperty(this, prefix + s + suffix, false);
- };
-
- cache.put = function (s, v) {
- this[prefix + s + suffix] = v;
- };
- }
-
- function f (match, p1)
- {
- return p1.toUpperCase();
- }
-
- var rxHyphenated = /-([a-z])/gi;
-
- /**
- * @param {String} sProperty
- * @return {string}
- * <var>sProperty</var> with all hyphen-minuses followed by an
- * ASCII letter replaced by the letter's uppercase counterpart
- */
- return function (sProperty) {
- var p;
- if ((p = cache.get(sProperty, false)))
- {
- return p;
- }
-
- var s2 = sProperty.replace(rxHyphenated, f);
- cache.put(sProperty, s2);
- return s2;
- };
- })(),
-
- /**
- * @function
- */
- uncamelize: (function () {
- if (typeof jsx.map != "undefined" && typeof jsx.map.Map == "function")
- {
- var cache = new jsx.map.Map();
- }
- else
- {
- var prefix = " ", suffix = "";
-
- cache = _jsx_object.getDataObject();
- cache.get = function (s) {
- return _jsx_object.getProperty(this, prefix + s + suffix, false);
- };
-
- cache.put = function (s, v) {
- this[prefix + s + suffix] = v;
- };
- }
-
- function f (match)
- {
- return "-" + match.toLowerCase();
- }
-
- var rxUppercase = /[A-Z]/g;
-
- /**
- * @param {String} sProperty
- * @return {string}
- * <var>sProperty</var> with all capital ASCII letters replaced
- * by the letter's lowercase counterpart, and preceded by a
- * hyphen-minus.
- */
- return function (sProperty) {
- var p;
- if ((p = cache.get(sProperty, false)))
- {
- return p;
- }
-
- var s2 = sProperty.replace(rxUppercase, f);
- cache.put(sProperty, s2);
- return s2;
- };
- })(),
-
- /**
- * Returns the computed style of an {@link Element} or the
- * computed value of an <code>Element</code>'s style property.
- *
- * @function
- */
- getComputedStyle: (function () {
- var _isMethod = _jsx_object.isMethod;
- var _defaultView;
-
- /**
- * @param {Element} oElement
- * Element for which the computed style should be retrieved.
- * @param {string} sPseudoEl
- * The name of the pseudo-element, such as ":first-child".
- * Use <code>null</code> (default) for the element itself.
- * @param {string} sProperty
- * The property name in CSS or script syntax (names are mapped
- * automatically according to the feature used). If not passed
- * or empty, the entire computed style is returned.
- * @return {CSSStyleDeclaration|currentStyle|string|null}
- * The return value depends on both the passed arguments
- * and the capabilities of the user agent:
- *
- * If the UA supports either ViewCSS::getComputedStyle()
- * from W3C DOM Level 2 CSS or MSHTML's currentStyle
- * property, then
- * a) if <var>sProperty</var> was passed, the value of the
- * CSS property with name <var>sProperty</vr> is returned;
- * it is a string if the property is supported;
- * b) if <var>cssProperty</var> was not passed, the corresponding
- * style object is returned
- *
- * However, MSHTML's currentStyle does not support pseudo-elements.
- * If you attempt to retrieve pseudo-element's computed style,
- * <code>null</code> is returned (without error).
- *
- * If the UA supports neither of the above, <code>null</code>
- * is returned.
- */
- function _getComputedStyle (oElement, sPseudoEl, sProperty)
- {
- var computedStyle;
-
- if (_isMethod(document, "defaultView", "getComputedStyle")
- && (typeof _defaultView != "undefined" || (_defaultView = document.defaultView)))
- {
- computedStyle = _defaultView.getComputedStyle(oElement, sPseudoEl || null);
- }
- else
- {
- if (sPseudoEl)
- {
- return null;
- }
-
- computedStyle = obj.currentStyle;
- }
-
- if (typeof computedStyle != "undefined")
- {
- if (!sProperty)
- {
- return computedStyle;
- }
-
- return jsx.dom.css.getStyleProperty({style: computedStyle}, sProperty);
- }
-
- return null;
- }
-
- return _getComputedStyle;
- }())
- };
-})();
-
-/**
- * Retrieves the value of a style property of an {@link Element}.
- *
- * @author
- * (C) 2005, 2013 Thomas Lahn &lt;js@PointedEars.de&gt;
- * @partof
- * http://pointedears.de/scripts/dom/css.js
- */
-jsx.dom.css.getStyleProperty = (function () {
- var _isHostMethod = jsx.object.isHostMethod;
- var _camelize = jsx.dom.css.camelize;
- var _uncamelize = jsx.dom.css.uncamelize;
-
- var _prefixedProperties = jsx.dom.css.prefixedProperties;
- var _prefixes = jsx.dom.css.prefixes;
- var _propertyInfo = jsx.dom.css.propertyInfo;
-
- /**
- * @param {Element} oElement
- * Reference to the element object whose style is to be retrieved.
- * @param {String} sPropertyName
- * Name of the style property whose value is to be retrieved.
- * Both camelCased and dash-property names are supported.
- * Mapping to supported prefix properties is done automatically,
- * i. e. <code>"transition"</code> would cause
- * <code>"-webkit-transition"</code> to be retrieved if
- * the former but not <code>"transition"</code> was available.
- * If the <code>style</code> property is available on the element,
- * the faster property-accessor approach is attempted first,
- * then the slower setProperty() call.
- * Otherwise <code>"visibility"</code> is used instead
- * (fallback for the NN4 DOM).
- * @return {string|null}
- * <code>null</code> if no matching object exists or if the
- * DOM does not provide for retrieval of the property value.
- */
- function _getStyleProperty (oElement, sPropertyName)
- {
- if (oElement)
- {
- /* TODO: Needed for NN4 DOM as well? */
- var camelized_name = _camelize(sPropertyName);
-
- if (typeof oElement.style != "undefined")
- {
- var style = oElement.style;
-
- var thisPropertyInfo = _propertyInfo[camelized_name];
- var thisAliases = thisPropertyInfo && thisPropertyInfo.aliases;
- if (thisAliases)
- {
- for (var i = thisAliases.length; i--;)
- {
- var alias = thisAliases[i];
- if (typeof style[alias] != "undefined")
- {
- return style[alias];
- }
- }
-
- return null;
- }
-
- if (_prefixedProperties[sPropertyName])
- {
- for (i = _prefixes.camelized.length; i--;)
- {
- var prefix = _prefixes.camelized[i];
- var prefixed_name = (prefix
- ? prefix
- + camelized_name.charAt(0).toUpperCase()
- + camelized_name.substring(1)
- : camelized_name);
- if (typeof style[prefixed_name] != "undefined")
- {
- return style[prefixed_name];
- }
- }
-
- return null;
- }
-
- if (typeof style[camelized_name] != "undefined")
- {
- return style[camelized_name];
- }
-
- /* If the quick, backwards-compatible method failed for some reason */
- if (_isHostMethod(style, "getPropertyValue"))
- {
- var uncamelized_name = _uncamelize(sPropertyName);
-
- /* NOTE: Works because of no dash-properties in _prefixedProperties */
- if (_prefixedProperties[sPropertyName])
- {
- for (i = _prefixes.uncamelized.length; i--;)
- {
- var value = style.getPropertyValue(
- _prefixes.uncamelized[i] + uncamelized_name);
- if (value)
- {
- return value;
- }
- }
-
- return null;
- }
-
- return style.getPropertyValue(uncamelized_name);
- }
- }
- else
- {
- if (camelized_name == "display")
- {
- camelized_name = "visibility";
- }
-
- if (typeof oElement[camelized_name] != "undefined")
- {
- return oElement[camelized_name];
- }
- }
- }
-
- return null;
- }
-
- return _getStyleProperty;
-}());
-
-/**
- * Determines whether an {@link Element} has a style property.
- *
- * @author
- * (C) 2006 Thomas Lahn &lt;js@PointedEars.de&gt;
- * @partof
- * http://pointedears.de/scripts/dom/css.js
- * @param {HTMLElement} oElement
- * Reference to the element object which style property is to be retrieved.
- * @param {string} sPropertyName
- * Name of the style property which is to be checked.
- * If "display", and there is no
- * <code>style[<var>sPropertyName</var>]</code> property,
- * "visibility" is used instead (fallback for the NN4 DOM).
- * @return {boolean}
- * <code>false</code> if no matching object exists or if the
- * DOM does not provide for retrieval of the property value;
- * <code>true</code> otherwise.
- */
-jsx.dom.hasStyleProperty = function (oElement, sPropertyName) {
- return (jsx.dom.css.getStyleProperty(oElement, sPropertyName) != null);
-};
-
-/**
- * Sets the value of a style property of an {@link Element}.
- *
- * @function
- * @author
- * (C) 2003-2013 Thomas Lahn &lt;js@PointedEars.de&gt;
- * @partof
- * http://pointedears.de/scripts/dom/css.js
- */
-jsx.dom.css.setStyleProperty = (function () {
- var _isHostMethod = jsx.object.isHostMethod;
- var _camelize = jsx.dom.css.camelize;
- var _uncamelize = jsx.dom.css.uncamelize;
-
- var _prefixedProperties = jsx.dom.css.prefixedProperties;
- var _prefixes = jsx.dom.css.prefixes;
- var _propertyInfo = jsx.dom.css.propertyInfo;
-
- /**
- * @param {Element} oElement
- * Reference to the element object whose style is to be modified.
- * @param {string} sPropertyName
- * Name of the style property whose value should be set.
- * Both camelCased and dash-property names are supported.
- * Mapping to supported prefix properties is done automatically,
- * i. e. <code>"transition"</code> would cause only
- * <code>"-webkit-transition"</code> to be set if the former
- * but not <code>"transition"</code> was available.
- * If the <code>style</code> property is available on the element,
- * the faster property-accessor approach is attempted first,
- * then the slower setProperty() call.
- * If <code>"display"</code>, and there is no <code>style</code>
- * property, and <code>altValue</code> was provided, "visibility"
- * is used instead (fallback for the NN4 DOM).
- * @param propValue
- * Value of the style property to be set.
- * @param {_} altValue (optional)
- * Alternative value to be set if the the style property is a
- * property of the object itself instead of its `style' property.
- * Fallback for the NN4 DOM.
- * @return {boolean}
- * <code>false</code> if no such object exists, the
- * DOM does not provide for setting the property value,
- * or if the assignment failed (invalid value).
- * CAVEAT: Some property values are normalized by the DOM API
- * when read; test before using the return value as a discriminator.
- */
- function _setStyleProperty (oElement, sPropertyName, propValue, altValue)
- {
- if (oElement)
- {
- /* TODO: Needed for NN4 DOM as well? */
- var camelized_name = _camelize(sPropertyName);
-
- if (typeof oElement.style != "undefined")
- {
- var style = oElement.style;
-
- var thisPropertyInfo = _propertyInfo[camelized_name];
- var thisAliases = thisPropertyInfo && thisPropertyInfo.aliases;
- if (thisAliases)
- {
- for (var i = thisAliases.length; i--;)
- {
- var alias = thisAliases[i];
- if (typeof style[alias] != "undefined")
- {
- style[alias] = propValue;
- return (String(style[alias]).toLowerCase()
- == String(propValue).toLowerCase());
- }
- }
-
- return false;
- }
-
- if (_prefixedProperties[sPropertyName])
- {
- var len;
- for (i = 0, len = _prefixes.camelized.length; i < len; ++i)
- {
- var prefix = _prefixes.camelized[i];
- var prefixed_name = (prefix
- ? prefix
- + camelized_name.charAt(0).toUpperCase()
- + camelized_name.substring(1)
- : camelized_name);
- if (typeof style[prefixed_name] != "undefined")
- {
- style[prefixed_name] = propValue;
- }
- }
-
- return (String(style[prefixed_name]).toLowerCase()
- == String(propValue).toLowerCase());
- }
-
- if (typeof style[camelized_name] != "undefined")
- {
- style[camelized_name] = propValue;
- return (String(style[camelized_name]).toLowerCase()
- == String(propValue).toLowerCase());
- }
-
- /* If the quick, backwards-compatible method failed for some reason */
- if (_isHostMethod(style, "setProperty"))
- {
- var uncamelized_name = _uncamelize(sPropertyName);
-
- /* NOTE: Works because of no dash-properties in _prefixedProperties */
- if (_prefixedProperties[sPropertyName])
- {
- for (i = 0, len = _prefixes.uncamelized.length; i < len; ++i)
- {
- style.setProperty(
- _prefixes.uncamelized[i] + uncamelized_name,
- propValue);
- }
-
- if (!_isHostMethod(style, "getPropertyValue"))
- {
- return true;
- }
-
- return (String(style.getPropertyValue(sPropertyName)).toLowerCase()
- == String(propValue).toLowerCase());
- }
-
- style.setProperty(uncamelized_name, propValue);
- return (String(style.getPropertyValue(uncamelized_name)).toLowerCase()
- == String(propValue).toLowerCase());
- }
- }
- else
- {
- /* NN4 DOM */
- if (camelized_name == "display" && altValue)
- {
- camelized_name = "visibility";
- }
-
- if (typeof oElement[camelized_name] != "undefined")
- {
- var newValue = (altValue || propValue);
- oElement[camelized_name] = newValue;
- return (String(oElement[camelized_name]).toLowerCase()
- == String(newValue).toLowerCase());
- }
- }
- }
-
- return false;
- }
-
- return _setStyleProperty;
-}());
-
-/**
- * Resets a style property to its inherited value
- *
- * @param {Element} oElement
- * @param {String} sPropertyName
- * @return {boolean}
- * @see jsx.dom.css.setStyleProperty()
- */
-jsx.dom.css.resetStyleProperty = function (oElement, sPropertyName) {
- return jsx.dom.css.setStyleProperty(oElement, sPropertyName, "");
-};
-
-/**
- * Retrieves the rendering state or (dis)allows rendering of a DOM object.
- *
- * @author
- * (C) 2004-2006 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @partof
- * http://pointedears.de/scripts/dhtml.js
- * @param {HTMLElement} oElement
- * Reference to the DOM object to be rendered or not.
- * @param {boolean} bShow
- * Renders the object referenced by <code>o</code> if
- * <code>true</code>, does not render it if <code>false</code>.
- * Note that not to render an element is different from
- * hiding it, as the space it would take up is then no
- * longer reserved.
- *
- * If this argument is omitted, the current property value is returned.
- * @return {boolean}
- * When retrieving: <code>true</code> if visible, <code>false</code>
- * otherwise; when setting: <code>true</code> if successful,
- * <code>false</code> otherwise.
- * @see #visible
- */
-jsx.dom.display = function (oElement, bShow) {
- var result;
-
- if (oElement)
- {
- if (arguments.length > 1)
- {
- result = jsx.dom.css.setStyleProperty(oElement, "display",
- bShow ? "" : "none",
- bShow ? "show" : "hide");
- }
- else
- {
- result = /^(\s*|show)$/.test(jsx.dom.css.getStyleProperty(oElement, "display"));
- }
- }
-
- return result;
-};
-
-/**
- * Retrieves or sets the visibility of a DOM object.
- *
- * @author
- * (C) 2004-2006 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @partof
- * http://pointedears.de/scripts/dhtml.js
- * @param {HTMLElement} oElement
- * Reference to the DOM object to be either shown or hidden.
- * @param {Boolean} bVisible (optional)
- * Shows the object referenced by <code>o</code> if <code>true</code>,
- * hides it if <code>false</code>. Note that hiding an element is
- * different from not rendering it, as the space it takes up is still
- * reserved.
- *
- * If this argument is omitted, the current property value is returned.
- * @return {boolean}
- * When retrieving: <code>true</code> if visible, <code>false</code>
- * otherwise; when setting: <code>true</code> if successful,
- * <code>false</code> otherwise.
- * @see #display
- */
-jsx.dom.visibility = jsx.dom.visible = function (oElement, bVisible) {
- var result;
-
- if (oElement)
- {
- if (arguments.length > 1)
- {
- result = jsx.dom.css.setStyleProperty(oElement, "visibility",
- bVisible ? "visible" : "hidden",
- bVisible ? "show" : "hide");
- }
- else
- {
- result = /^(visible|show)$/.test(
- jsx.dom.css.getStyleProperty(oElement, "visibility"));
- }
- }
-
- return result;
-};
-
-/**
- * @param {Number|String} imgID
- * @param {Number} state (optional)
- * @return {boolean}
- * The return value of {@link #setStyleProperty} for setting the
- * borderColor of the image
- */
-jsx.dom.hoverImg = function (imgID, state) {
- var img = null;
-
- if (document.images)
- {
- img = document.images[imgID];
- }
-
- var me = arguments.callee;
- return jsx.dom.css.setStyleProperty(img, "borderColor",
- (state == 0 ? me.clMouseout : me.clMouseover));
-};
-jsx.dom.hoverImg.clMouseout = "#000";
-jsx.dom.hoverImg.clMouseover = "#fff";
-
-jsx.dom.getAbsPos = function (oNode) {
- /* TODO: One initialization for all properties? */
- var result = {};
- result.x = result.y = 0;
- result.toString = function () {
- return "{x: " + this.x + ", y: " + this.y + "}";
- };
-
- if (oNode.offsetParent)
- {
- while (oNode.offsetParent)
- {
- result.x += oNode.offsetLeft;
- result.y += oNode.offsetTop;
- oNode = oNode.offsetParent;
- }
- }
- else if (typeof oNode.x != "undefined"
- && typeof oNode.y != "undefined")
- {
- result.x += oNode.x;
- result.y += oNode.y;
- }
-
- return result;
-};
-
-/**
- * @namespace
- */
-jsx.dom.css.selectors = {
- ID: "#{nmchar}+"
- .replace(/\{nmchar\}/, "[_a-z0-9-]|{nonascii}|{escape}")
- .replace(/\{nonascii\}/g, "[\\xA0-\\xFF]")
- .replace(/\{escape\}/g, "{unicode}|\\\\[^\\r\\n\\f0-9a-f]")
- .replace(/\{unicode\}/g, "\\\\{h}{1,6}(\\r\\n|[ \\t\\r\\n\\f])?")
- .replace(/\{h\}/g, "[0-9a-f]"),
- CLASS: "\\.IDENT"
- .replace(/IDENT/, "-?{nmstart}{nmchar}*")
- .replace(/\{nmstart\}/, "[_a-z]|{nonascii}|{escape}")
- .replace(/\{nmchar\}/, "[_a-z0-9-]|{nonascii}|{escape}")
- .replace(/\{nonascii\}/g, "[\\xA0-\\xFF]")
- .replace(/\{escape\}/g, "{unicode}|\\\\[^\\r\\n\\f0-9a-f]")
- .replace(/\{unicode\}/g, "\\\\{h}{1,6}(\\r\\n|[ \\t\\r\\n\\f])?")
- .replace(/\{h\}/g, "[0-9a-f]"),
- ATTRIBUTE: "\\[\\s*(IDENT\\|)?IDENT\\s*((=|INCLUDES|DASHMATCH)\\s*(IDENT|STRING)\\s*)?\\]"
- .replace(/IDENT/g, "-?{nmstart}{nmchar}*")
- .replace(/INCLUDES/, "~=")
- .replace(/DASHMATCH/, "\\|=")
- .replace(/STRING/, "{string1}|{string2}")
- .replace(/\{string1\}/, '"([^\\n\\r\\f\\\\"]|\\\\{nl}|{escape})*"')
- .replace(/\{string2\}/, "'([^\\n\\r\\f\\\\']|\\\\{nl}|{escape})*'")
- .replace(/\{nl\}/g, "(\\n|\\r\n|\\r|\\f)")
- .replace(/\{nmstart\}/g, "[_a-z]|{nonascii}|{escape}")
- .replace(/\{nmchar\}/g, "[_a-z0-9-]|{nonascii}|{escape}")
- .replace(/\{nonascii\}/g, "[\\xA0-\\xFF]")
- .replace(/\{escape\}/g, "{unicode}|\\\\[^\\r\\n\\f0-9a-f]")
- .replace(/\{unicode\}/g, "\\\\{h}{1,6}(\\r\\n|[ \\t\\r\\n\\f])?")
- .replace(/\{h\}/g, "[0-9a-f]"),
- PSEUDOCLASS: ":(link|visited|hover|active|focus|target|lang"
- + "|enabled|disabled|checked|indeterminate"
- + "|root|nth-child|nth-last-child|nth-of-type|nth-last-of-type"
- + "|first-child|last-child|first-of-type|last-of-type"
- + "|only-child|only-of-type|empty|not)\\b",
- ELEMENT: "(^|\\s)((IDENT|\\*)\\|)?IDENT"
- .replace(/IDENT/g, "-?{nmstart}{nmchar}*")
- .replace(/\{nmstart\}/g, "[_a-z]|{nonascii}|{escape}")
- .replace(/\{nmchar\}/g, "[_a-z0-9-]|{nonascii}|{escape}")
- .replace(/\{nonascii\}/g, "[\\xA0-\\xFF]")
- .replace(/\{escape\}/g, "{unicode}|\\\\[^\\r\\n\\f0-9a-f]")
- .replace(/\{escape\}/g, "{unicode}|\\\\[^\\r\\n\\f0-9a-f]")
- .replace(/\{unicode\}/g, "\\\\{h}{1,6}(\\r\\n|[ \\t\\r\\n\\f])?")
- .replace(/\{h\}/g, "[0-9a-f]"),
- PSEUDOELEMENT: "::?(first-line|first-letter|before|after)\\b"
-};
-
-/**
- * A <code>RuleList</code> object encapsulates
- * all CSS selectors linked to from a document in a
- * {@link Collection}.
- *
- * @constructor
- * @param {Object} oDocument (optional)
- * Object reference to override the default
- * <code>document</code> object reference.
- * @return {jsx.dom.css.RuleList}
- */
-jsx.dom.css.RuleList = function (oDocument) {
- arguments.callee._super.call(this);
- this.document = oDocument || document;
- this.get();
-};
-
-jsx.dom.css.RuleList.extend(jsx.Collection, {
- /**
- * @type Document
- */
- document: null,
-
- /**
- * Populates the collection with the selectors
- * of the document.
- *
- * @memberOf jsx.dom.css.RuleList#prototype
- * @param {Object} oDocument (optional)
- * Object reference to override the default
- * <code>document</code> object reference.
- * @return {boolean}
- */
- get: function (oDocument) {
- if (oDocument)
- {
- this.document = oDocument;
- }
-
- this.clear();
-
- var d, oSheets;
- if ((d = this.document) && (oSheets = d.styleSheets))
- {
- for (var i = 0, oRules; i < oSheets.length; i++)
- {
- var oSheet = oSheets[i];
- if ((oRules = oSheet.cssRules || oSheet.rules))
- {
- for (var j = 0; j < oRules.length; j++)
- {
- this.add(oRules[j], oRules[j].selectorText);
- }
- }
- }
-
- return true;
- }
-
- return false;
- },
-
- /**
- * Returns a reference to the first rule
- * with a simple selector.
- *
- * @param {String} sSelector
- * Simple selector
- * @return {CSSStyleRule|Null}
- */
- findBySimpleSelector: function (sSelector) {
- var i = this.iterator();
- while ((s = i.next()) != null)
- {
- if ((new RegExp("(^|\\s)" + sSelector + "([+>\\s]|$)")).test(s.value.selectorText))
- {
- return s.value;
- }
- }
-
- return null;
- }
-});
-
-jsx.dom.css.findRules = (function () {
- var a = [];
- var _slice = a.slice;
- var _concat = a.concat;
-
- function toArray (obj)
- {
- return _slice.call(obj || a);
- }
-
- return function (selector, exactMatch) {
- var prefix = "(^|\\s)";
- if (exactMatch)
- {
- prefix = "^\\s*";
- }
-
- var rxSelector = new RegExp(
- prefix + selector.replace(/[$.(){}\[\]^]/g, "\\$&") + "\\s*$");
-
- var hits = toArray(document.styleSheets).map(function (styleSheet) {
- return toArray(styleSheet.cssRules || styleSheet.rules).filter(
- function (rule) {
- return rxSelector.test(rule.selectorText);
- });
- }).filter(function (hit) {
- return hit.length > 0;
- });
-
- return _concat.apply([], hits);
- };
-}());
-
-/**
- * Calculate the specificity of a CSS3 selector
- *
- * @see http://www.w3.org/TR/css3-selectors/#specificity
- */
-jsx.dom.css.getSpecificity = (function () {
- var selectors = jsx.dom.css.selectors;
- var rxID = new RegExp(selectors.ID, "g");
- var rxAttr = new RegExp(
- selectors.CLASS + "|" + selectors.ATTRIBUTE + "|" + selectors.PSEUDOCLASS,
- "g");
- var rxElem = new RegExp(
- selectors.ELEMENT + "|" + selectors.PSEUDOELEMENT, "g");
-
- /**
- * @param {String} selector
- * @return {Number}
- * The specificity of <var>selector</var> where the value modulo 100
- * is the number of ID selectors, the value modulo 10 is the number of
- * class selectors, attributes selectors, and pseudo-classes, and the
- * value modulo 1 is the number of element names and pseudo-elements
- * in the selector.
- */
- return function (selector) {
- selector = String(selector || "");
- var idNum = (selector.match(rxID) || []).length;
- var attrNum = (selector.match(rxAttr) || []).length;
- var elemNum = (selector.match(rxElem) || []).length;
-
- return (idNum * 100) + (attrNum * 10) + elemNum;
- };
-}());
-
-/**
- * Retrieves all elements matching all specified CSS class names
- */
-jsx.dom.css.getElemByClassName = jsx.dom.css.gEBCN = (function () {
- var _hasOwnProperty = jsx.object._hasOwnProperty;
- var _getElemByTagName = jsx.dom.getElemByTagName;
- var sWhiteSpace = "[ \\t\\f\\u200B\\r\\n]+";
- var rxWhiteSpace = new RegExp(sWhiteSpace);
-
- /**
- * @param {Array|String} sClassNames
- * @param {Element} contextNode (optional)
- * @return {Array}
- * An <code>Array</code> of references to objects representing
- * matching elements
- */
- return function (sClassNames, contextNode) {
- var
- result = [],
- classNames = !Array.isArray(sClassNames)
- ? String(sClassNames || "").split(rxWhiteSpace)
- : sClassNames,
- classNameSet = {};
-
- if (classNames.length > 0)
- {
- /* Remove duplicates */
- for (var i = classNames.length; i--;)
- {
- classNameSet[classNames[i]] = true;
- }
-
- classNames = [];
- if (typeof Object.keys == "function")
- {
- classNames = Object.keys(classNameSet);
- }
- else
- {
- for (var className in classNameSet)
- {
- if (_hasOwnProperty(classNameSet, className))
- {
- classNames.push(className);
- }
- }
- }
-
- var aElements = _getElemByTagName("*", -1, contextNode || document);
- }
-
- if (aElements)
- {
- /*
- * NOTE: There are many more elements than potential class names, so loop
- * through those only once
- */
- outer: for (var i = 0, len = aElements.length; i < len; ++i)
- {
- var element = aElements[i];
- var elementClassName = element.className;
-
- for (var j = classNames.length; j--;)
- {
- if (!new RegExp("(^|" + sWhiteSpace + ")" + classNames[j]
- + "($|" + sWhiteSpace + ")")
- .test(elementClassName))
- {
- continue outer;
- }
- }
-
- result[result.length] = element;
- }
- }
-
- return result;
- };
-}());
-
-jsx.dom.css.showByClassName = (function () {
- var _getEBCN = jsx.dom.css.getElemByClassName;
-
- /**
- * Shows or hides elements with a certain class name.
- *
- * @param {string} sClassName
- * Class name of the elements to be hidden/shown.
- * @param {boolean} bShow (optional)
- * If <code>false</code> (default), elements will be
- * hidden, otherwise shown.
- * @requires dhtml.js
- * @return {boolean}
- * <code>true</code> if successful, <code>false</code> otherwise.
- */
- return function (sClassName, bShow) {
- var newDisplay = bShow ? "" : "none";
- var ruleList, selector;
- if (typeof jsx.dom.css != "undefined"
- && typeof jsx.dom.css.RuleList == "function"
- && (ruleList = new jsx.dom.css.RuleList())
- && (selector =
- ruleList.findBySimpleSelector("\\." + sClassName)))
- {
- selector.display = newDisplay;
- return (selector.display == newDisplay);
- }
-
- var es = _getEBCN(sClassName);
-
- for (var i = es.length; i--; 0)
- {
- var o = es[i];
- if (typeof o.display != "undefined")
- {
- o.display = newDisplay;
- }
- }
-
- return true;
- };
-}());
-
-/**
- * Makes all non-default stylesheet declarations for an element inline
- */
-jsx.dom.css.makeInline = (function () {
- var defaultValues = {
- "background-image": "none"
- };
-
- /**
- * @param {Element} obj
- */
- return function (obj) {
- var computedStyle = jsx.dom.css.getComputedStyle(obj);
- if (!computedStyle)
- {
- return;
- }
-
- for (var i = 0, len = computedStyle.length; i < len; ++i)
- {
- var propertyName = computedStyle[i];
- var propertyValue = computedStyle.getPropertyValue(propertyName);
-
- if (propertyValue != defaultValues[propertyName])
- {
- obj.style.setProperty(propertyName, propertyValue);
- }
- }
- };
-}());
-
-jsx.dom.css.isHidden = (function () {
- var _getComputedStyle = jsx.dom.css.getComputedStyle;
-
- return function (o) {
- while (o)
- {
- if (typeof o.style == "undefined"
- || typeof o.style.visibility != "undefined"
- && /hidden/i.test(o.style.visibility)
- || /hidden/i.test(_getComputedStyle(o, "visibility")))
- {
- return true;
- }
-
- o = o.parentNode;
- }
-
- return false;
- };
-}());
-
-jsx.dom.css.focusElement = function (s) {
- var o = document.getElementById(s);
- if (o && jsx.object.isMethod(o, "focus") && !jsx.dom.css.isHidden(o))
- {
- o.focus();
- }
-};
\ No newline at end of file
/live/dom/css.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Index: live/dom/widgets2.js
===================================================================
--- live/dom/widgets2.js (revision 509)
+++ live/dom/widgets2.js (nonexistent)
@@ -1,323 +0,0 @@
-/**
- * @requires dom.js, events.js
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-if (typeof jsx.dom == "undefined")
-{
- /**
- * @namespace
- */
- jsx.dom = {};
-}
-
-/**
- * Constructor of the abstract prototype for widgets. It provides shallow
- * copying of the passed properties, stores the reference to the manipulated DOM
- * object, and applies the given properties to the display of that object.
- * Widgets should inherit from this prototype, and this constructor should be
- * called only from the constructors of prototypes of specialized widgets.
- *
- * @param oTarget : Element
- * Reference to the DOM object that provides the client area
- * for the widget (optional)
- * @param oParent : Element
- * Parent element (optional)
- * @param oProperties
- * Properties to initialize this object with (optional)
- */
-jsx.dom.Widget = function(oTarget, oParent, oProperties) {
- this.target = oTarget || document.createElement(this.elementType);
- this._parent = oParent || document.body;
-
- if (!this.target)
- {
- jsx.throwThis("TypeError", "No or invalid target");
- }
-
- for (var property in oProperties)
- {
- var propertyValue = oProperties[property];
- if (property == "style")
- {
- for (var styleProperty in propertyValue)
- {
- this.target.style[styleProperty] = propertyValue[styleProperty];
- }
- }
- else
- {
- this[property] = propertyValue;
- }
- }
-
- if (oProperties.resizable)
- {
- this.makeResizeable();
- }
-
- var me = this;
- document.body.addEventListener("unload", function() {
- /* break circular reference */
- me.target = null;
- }, false);
-};
-
-jsx.dom.Widget.prototype = {
- /**
- * @type Function
- */
- constructor: jsx.dom.Widget,
-
- /**
- * Widgets are `div' elements by default. Inheriting classes should
- * override this when appropriate (e. g., a menu should be a `ul')
- */
- elementType: "div",
-
- /**
- * @type Element
- */
- target: null,
-
- /* Move to Resizeable type? */
- resizeable: false,
- resizeFlags: {
- n: false,
- ne: false,
- e: false,
- se: false,
- s: false,
- sw: false,
- w: false,
- nw: false
- },
-
- /*
- * The height/width in pixels of the edges of the widget
- * where the resize handles are located
- */
- resizeEdges: {
- top: 4,
- right: 4,
- bottom: 4,
- left: 4
- },
-
- /**
- * Causes the widget to be rendered, and attached to the document tree
- * if not already attached.
- *
- * @param parent
- * Reference to the object representing the parent element to which
- * the widget should be appended as child. The default is document.body.
- */
- render: function(parent) {
- this.appendTo(parent);
- this.target.style.display = "";
- },
-
- /**
- * Causes the widget not to be rendered, without removing it from
- * the document tree.
- */
- unrender: function() {
- this.target.style.display = "none";
- },
-
- /**
- * Shows the widget
- */
- show: function() {
- target.style.display.visibility = "visible";
- },
-
- /**
- * Hides the widget, but keeps its box
- */
- hide: function() {
- this.target.style.display.visibility = "hidden";
- },
-
- /**
- * Appends the widget as a child element
- *
- * @param parent
- * @returns
- */
- appendTo: function(parent) {
- var result = null;
-
- if (typeof parent == "undefined")
- {
- parent = this._parent;
- }
-
- var target = this.target;
- if (!target.parentNode || (parent != target.parentNode))
- {
- result = parent.appendChild(target);
- }
-
- return result;
- },
-
- remove: function() {
- return this.target.parentNode.removeChild(this.target);
- },
-
- /**
- * @protected
- * @param properties : Object
- * @param propertyName : String
- * @param defaultValue : mixed
- */
- _setStylePropertyOrDefault: function(properties, propertyName, defaultValue) {
- if (typeof properties.style == "undefined"
- || typeof properties.style[propertyName] == "undefined")
- {
- properties.style[propertyName] = defaultValue;
- }
- },
-
- /**
- * Makes this widget resizeable
- */
- makeResizeable: function() {
- var
- _jsx_dom = jsx.dom,
- _addEventListener = _jsx_dom.addEventListener,
- _createEventListener = _jsx_dom.createEventListener;
-
- var defaultCursor = this.target.style.cursor;
-
- var me = this;
- _addEventListener(this.target, "mousemove",
- _createEventListener(function(e) {
- var resizeEdges = me.resizeEdges;
- var inLeftMargin = (e.offsetX <= resizeEdges.left);
- var inTopMargin = (e.offsetY <= resizeEdges.top);
- if (inLeftMargin || inTopMargin)
- {
- var resizeFlags = me.resizeFlags;
- if (inLeftMargin && inTopMargin)
- {
- if (resizeFlags.nw)
- {
- this.style.cursor = "nw-resize";
- }
- }
- else if (inLeftMargin)
- {
- if (resizeFlags.w)
- {
- this.style.cursor = "w-resize";
- }
- }
- else
- {
- if (resizeFlags.n)
- {
- this.style.cursor = "n-resize";
- }
- }
- }
- else
- {
- this.style.cursor = defaultCursor;
- }
- }));
-
- _addEventListener(this.target, "mouseout",
- _createEventListener(function() {
- this.style.cursor = defaultCursor;
- }));
- }
-};
-
-/**
- * Creates a window
- *
- * @param target : Element
- * Target element (optional)
- * @param parent : Element
- * Parent element (optional)
- * @param properties
- * Properties to initialize this object with (optional)
- */
-jsx.dom.Window = function(target, parent, properties) {
- this._setStylePropertyOrDefault(properties, "backgroundColor", this.defaultBackground);
- arguments.callee._super.call(this, target, parent, properties);
-};
-
-jsx.dom.Window.extend(jsx.dom.Widget);
-jsx.dom.Window.prototype.defaultBackgroundColor = "ButtonFace";
-
-/**
- * Creates a toolbox
- *
- * @param target : Element
- * Target element (optional)
- * @param parent : Element
- * Parent element (optional)
- * @param properties
- * Properties to initialize this object with (optional)
- */
-jsx.dom.Toolbox = function(target, parent, properties) {
- this._setStylePropertyOrDefault(properties, "border", this.defaultBorder);
-
- arguments.callee._super.call(this, target, parent, properties);
-};
-
-jsx.dom.Toolbox.extend(jsx.dom.Window);
-jsx.dom.Toolbox.prototype.defaultBorder = "2px outset";
-
-/**
- * @namespace
- */
-jsx.dom.liveedit = {
- version: "0.1"
-};
-
-/**
- * Creates and displays the LiveEdit editor
- *
- * @param target : Element
- * Target element for the editor (optional)
- * @param parent : Element
- * Parent element for the editor (optional)
- */
-jsx.dom.liveedit.LiveEdit = function(target, parent) {
- this._toolbox = new jsx.dom.Toolbox(target, parent, {
- style: {
- position: "fixed",
- top: "0",
- right: "0",
- width: "20%",
- bottom: "0",
- backgroundColor: "#ccc"
- },
- resizable: true,
- resizeFlags: {
- w: true
- }
- });
-
- this.showToolbox();
-};
-
-jsx.dom.liveedit.LiveEdit.extend();
-
-/**
- * Shows the toolbox of this editor
- */
-jsx.dom.liveedit.LiveEdit.prototype.showToolbox = function() {
- this._toolbox.render();
-};
/live/dom/widgets2.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/dom/flash.js
===================================================================
--- live/dom/flash.js (revision 509)
+++ live/dom/flash.js (nonexistent)
@@ -1,76 +0,0 @@
-/**
- * <title>Flash Support Library</title>
- * @file flash.js
- * @requires dhtml.js
- * @author
- * (C) 2010, 2011 Thomas Lahn &lt;js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-jsx.dom.flash = {
- /** @version */
- version: "0.1.0.2010070915",
- copyright: "Copyright \xA9 2010",
- author: "Thomas Lahn",
- email: "js@PointedEars.de",
- path: "http://PointedEars.de/scripts/",
-
- /**
- * Fixes Shockwave Flash movies embedded with the <code>object</code>
- * element (having type="application/x-shockwave-flash" specified)
- * so that they work in ActiveX/COM-supporting browsers (most notably
- * IE/MSHTML).
- *
- * @return boolean
- * <code>true</code> if successful, <code>false</code> otherwise.
- */
- fix: (function () {
- var
- jsx_object = jsx.object,
- jsx_global = jsx.global,
- jsx_dom = jsx.dom;
-
- return function () {
- if (!jsx_object.isMethod(jsx_global, "ActiveXObject"))
- {
- return false;
- }
-
- var objs = jsx_dom.getElemByTagName("object");
- if (objs && objs.length)
- {
- for (var i = objs.length; i--;)
- {
- var o = objs[i];
- if (o.type == "application/x-shockwave-flash")
- {
- if (jsx_object.isMethod(o, "removeAttribute"))
- {
- o.removeAttribute("data");
- }
-
- o.classid = "clsid:D27CDB6E-AE6D-11cf-96B8-444553540001";
- }
- }
-
- return true;
- }
-
- return false;
- };
- }())
-};
\ No newline at end of file
/live/dom/flash.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/dom/geocoding.js
===================================================================
--- live/dom/geocoding.js (revision 509)
+++ live/dom/geocoding.js (nonexistent)
@@ -1,257 +0,0 @@
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-if (typeof jsx.dom == "undefined")
-{
- /**
- * @namespace
- */
- jsx.dom = {};
-}
-
-/**
- * @namespace
- * @type jsx.dom.geocoding
- */
-jsx.dom.geocoding = {
- /**
- * @function
- */
- Geocoder: (/** @constructor */ function () {
- /* stub */
- }).extend(null, {
- /**
- * @memberOf jsx.dom.geocoding.Geocoder#prototype
- * @param {GeocoderRequest} request
- * @param {Callable(Array[GeocoderResult], GeocoderStatus)} callback
- */
- geocode: function (request, callback) {
- /* stub */
- }
- }),
-
- /**
- * @constructor
- * @property {string} street
- * @property {string} zip
- * @property {string} place
- * @property {string} region
- * @property {string} country
- * @property {number} latitude
- * @property {number} longitude
- */
- GeocodingInput: function (properties) {
- jsx.object.extend(this, properties);
- },
-
- /**
- * @namespace
- */
- GeocoderStatus: {
- /**
- * There was a problem contacting the geocoding service.
- */
- ERROR: "ERROR",
-
- /**
- * This GeocoderRequest was invalid.
- */
- INVALID_REQUEST: "INVALID_REQUEST",
-
- /**
- * The response contains a valid GeocoderResponse.
- */
- OK: "OK",
-
- /**
- * The client application has gone over the requests limit
- * in too short a period of time.
- */
- OVER_QUERY_LIMIT: "OVER_QUERY_LIMIT",
-
- /**
- * The client application is not allowed to use the geocoder.
- */
- REQUEST_DENIED: "REQUEST_DENIED",
-
- /**
- * A geocoding request could not be processed due to a
- * server error. The request may succeed if you try again.
- */
- UNKNOWN_ERROR: "UNKNOWN_ERROR",
-
- /**
- * No result was found for this GeocoderRequest.
- */
- ZERO_RESULTS: "ZERO_RESULTS",
-
- setProperties: function (source) {
- var _hasOwnProperty = jsx.object._hasOwnProperty;
- var keys = jsx.object.getKeys(this);
- for (var i = keys.length; i--;)
- {
- var key = keys[i];
- if (_hasOwnProperty(this, key) && typeof this[key] != "function")
- {
- this[key] = source[key];
- }
- }
- }
- },
-
- /**
- * @constructor
- * @property {boolean} continueFromLast = false
- * @property {boolean} dontOverwrite = false
- * @property {Callable(Array[GeocodingInput], int)} onbeforecode = null
- * @property {Callable(Array[GeocodingInput], int)} onaftercode = null
- * @property {Callable(Array[GeocodingInput])} oncomplete = null
- * @property {Callable(Array[GeocodingInput], GeocoderStatus)} onerror = null
- * @property {int} timeout
- */
- GeocodingOptions: function (properties) {
- jsx.object.extend(this, properties);
- },
-
- /**
- * @function
- */
- geocode: (function () {
- var _runAsync = jsx.object.getFeature(jsx, "dom", "timeout", "runAsync");
- var haveWarned = false;
- var lastData = null;
- var lastIndex = -1;
-
- /**
- * @param {Geocoder} geocoder
- * @param {Array[GeocodingInput]} data
- * @param {GeocodingOptions} options
- * @param {int} index = 0
- * Start index
- * @return {boolean}
- */
- return function _geocode (geocoder, data, options, index) {
- function runNext (quick)
- {
- if (!_runAsync && !haveWarned)
- {
- jsx.warn(
- "You should provide jsx.dom.timeout.runAsync"
- + "in order to avoid server hammering");
- haveWarned = true;
- }
-
- (_runAsync || function (f) { f(); })(
- function () {
- _geocode(geocoder, data, options, index + 1);
- },
- quick ? null : (options.timeout || 200)
- );
- }
-
- if (!options)
- {
- options = {};
- }
-
- if (!index)
- {
- if (data != lastData || lastIndex < 0)
- {
- index = 0;
- }
- else if (options.continueFromLast)
- {
- index = lastIndex + 1;
- }
- }
-
- if (index >= data.length)
- {
- return false;
- }
-
- lastData = data;
- lastIndex = index;
-
- var location = data[index];
-
- var street = location.street;
- var zip = location.zip;
- var place = location.place;
- var region = location.region;
- var country = location.country;
- var address = (street || "")
- + (zip ? (street ? ", " : "") + zip : "")
- + (place ? ((street && !zip) ? ", " : " ") + place : "")
- + (region ? ((street || zip || place) ? ", " : "") + region : "")
- + (country ? ((street || zip || place || region) ? ", " : "") + country : "");
-
- if (location.latitude !== null
- && location.longitude !== null
- && options.dontOverwrite)
- {
- jsx.info('Ignoring already geocoded "' + address + '"');
- runNext(true);
- return true;
- }
-
- var GeocoderStatus = jsx.dom.geocoding.GeocoderStatus;
- if (options.statusPropertySource)
- {
- GeocoderStatus.setProperties(options.statusPropertySource);
- }
-
- if (typeof options.onbeforecode == "function")
- {
- options.onbeforecode(data, index);
- }
-
- jsx.info("jsx.dom.geocoding.geocode: " + address);
-
- geocoder.geocode(
- {
- 'address': address
- },
- function (results, status) {
- switch (status)
- {
- case GeocoderStatus.OK:
- var loc = results[0].geometry.location;
- location.latitude = String(loc.lat());
- location.longitude = String(loc.lng());
-
- if (typeof options.onaftercode == "function")
- {
- options.onaftercode(data, index);
- }
-
- if (index < data.length - 1)
- {
- runNext();
- }
- else if (typeof options.oncomplete == "function")
- {
- options.oncomplete(data);
- }
- break;
-
- default:
- if (typeof options.onerror == "function")
- {
- return options.onerror(data, index, status);
- }
- break;
- }
- }
- );
-
- return true;
- };
- }())
-};
\ No newline at end of file
/live/dom/geocoding.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/test.js
===================================================================
--- live/test/test.js (revision 509)
+++ live/test/test.js (nonexistent)
@@ -1,1028 +0,0 @@
-/**
- * <title>PointedEars' JSX: Test Library<title>
- * @file $Id$
- * @requires object.js
- *
- * @section Copyright & Disclaimer
- *
- * @author (C) 2011-2013 Thomas Lahn &lt;js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- var jsx = {};
-}
-
-if (typeof jsx.test == "undefined")
-{
- /* (for JSDT only) */
- jsx.test = {};
-}
-
-/**
- * @type jsx.test
- * @memberOf __jsx.test
- * @namespace
- */
-jsx.test = (/** @constructor */ function () {
- var _isArray = jsx.object.isArray;
- var _isObject = jsx.object.isObject;
- var _throwThis = jsx.throwThis;
-
- /**
- * Number of assertions made
- * @private
- */
- var _assertCount = 0;
-
- function _increaseAssertCount ()
- {
- return ++_assertCount;
- }
-
- /**
- * @constructor
- * @namespace __jsx.test.AssertionError
- * @type jsx.test.AssertionError
- * @extends jsx.Error
- */
- var _AssertionError = (
- /**
- * @param {string} s
- */
- function jsx_test_AssertionError (s) {
- var _super = jsx_test_AssertionError._super;
- if (_super)
- {
- _super.call(this);
- }
-
- this.message = "Assertion failed: " + s;
- }
- ).extend(jsx.Error, {
- /**
- * @memberOf jsx.test.AssertionError#prototype
- */
- name: "jsx.test.AssertionError"
- });
-
- /**
- * @constructor
- * @namespace __jsx.test.ArrayComparisonFailure
- * @type jsx.test.ArrayComparisonFailure
- * @extends jsx.InvalidArgumentError
- * @private
- * @memberOf __jsx.test
- */
- var _ArrayComparisonFailure = (
- function jsx_test_ArrayComparisonFailure () {
- jsx_test_ArrayComparisonFailure._super.call(this, "Arrays expected");
- }
- ).extend(jsx.InvalidArgumentError, {
- /**
- * @memberOf __jsx.test.ArrayComparisonFailure.prototype
- */
- name: "jsx.test.ArrayComparisonFailure"
- });
-
- /**
- * @constructor
- * @namespace __jsx.test.ObjectComparisonFailure
- * @type jsx.test.ObjectComparisonFailure
- * @extends jsx.InvalidArgumentError
- * @private
- * @memberOf __jsx.test
- */
- var _ObjectComparisonFailure = (
- function jsx_test_ObjectComparisonFailure () {
- jsx_test_ObjectComparisonFailure._super.call(this, "Objects expected");
- }
- ).extend(jsx.InvalidArgumentError, {
- /**
- * @memberOf __jsx.test.ObjectComparisonFailure.prototype
- */
- name: "jsx.test.ObjectComparisonFailure"
- });
-
- return {
- /**
- * @version
- * @memberOf jsx.test
- */
- version: "$Revision$",
-
- /**
- * Increases the assertion count
- *
- * @return {Number} The new assertion count
- */
- increaseAssertCount: _increaseAssertCount,
-
- /**
- * Resets the assertion count
- *
- * @return {Number} <code>0</code>
- */
- resetAssertCount: function () {
- return (_assertCount = 0);
- },
-
- /**
- * @function
- */
- AssertionError: _AssertionError,
-
- /**
- * Asserts that a condition converts to true. If it does not, it throws
- * an {@link #AssertionError} with a default message.
- *
- * @param {string|any} x
- * If a string, it is evaluated as a <i>Program</i>; the assertion
- * fails if its result, type-converted to <i>boolean</i>, is
- * <code>false</code>.
- * If not a string, the value is type-converted to <i>boolean</i>;
- * the assertion fails if the result of the conversion is
- * <code>false</code>.
- * @throws
- * {@link #AssertionError} if the assertion fails and this exception
- * can be thrown.
- * @return {boolean}
- * <code>false</code>, if the assertion fails and no exception can be thrown;
- * <code>true</code>, if the assertion is met.
- * @see Global#eval(String)
- */
- assert: function (x) {
- _increaseAssertCount();
-
- var origX = x;
- if (typeof x == "string")
- {
- x = eval(x);
- }
-
- if (!x)
- {
- return _throwThis(jsx.test.AssertionError,
- '"assert("' + (typeof origX == "string" ? origX : "...") + '");"');
- }
-
- return !!x;
- },
-
- /**
- * Asserts that a condition is boolean <code>true</code>. If it isn't,
- * it throws an {@link #AssertionError} with a default message.
- *
- * @param {string|any} x
- * If a string, it is evaluated as a <i>Program</i>; the assertion
- * fails if its result, type-converted to <i>boolean</i>, is
- * <code>false</code>.
- * If not a string, the value is type-converted to <i>boolean</i>;
- * the assertion fails if the result of the conversion is
- * <code>false</code>.
- * @throws
- * {@link #AssertionError} if the assertion fails and this exception
- * can be thrown.
- * @return {boolean}
- * <code>false</code>, if the assertion fails and no exception can be thrown;
- * <code>true</code>, if the assertion is met.
- * @see Global#eval(String)
- */
- assertTrue: function (x) {
- _increaseAssertCount();
-
- var origX = x;
- if (typeof x == "string")
- {
- x = eval(x);
- }
-
- if (typeof x != "boolean" || !x)
- {
- return _throwThis(_AssertionError,
- "assertTrue(" + (typeof origX == "string" ? origX : "...") + ");");
- }
-
- return !!x;
- },
-
- /**
- * Asserts that a condition is false. If it isn't, it throws
- * an {@link #AssertionError} with a default message.
- *
- * @param {string|any} x
- * If a string, it is evaluated as a <i>Program</i>; the assertion
- * fails if its result, type-converted to <i>boolean</i>, is
- * <code>true</code>.
- * If not a string, the value is type-converted to <i>boolean</i>;
- * the assertion fails if the result of the conversion is
- * <code>true</code>.
- * @param {boolean} bThrow = true
- * If <code>true</code> (default), an exception will be thrown if
- * the assertion fails, otherwise a warning will be issued to the
- * error console in that case.
- * @param {String} sContext (optional)
- * Description of the context in which the assertion was made.
- * Ignored if <code><var>bThrow</var> == true</code>.
- * @throws
- * {@link #AssertionError} if the assertion fails and this exception
- * can be thrown.
- * @return {boolean}
- * <code>false</code>, if the assertion fails and no exception can be thrown;
- * <code>true</code>, if the assertion is met.
- * @see Global#eval(String)
- */
- assertFalse: function (x, bThrow, sContext) {
- _increaseAssertCount();
-
- var origX = x;
- if (typeof x == "string")
- {
- x = eval(x);
- }
-
- if (typeof x != "boolean" || x)
- {
- if (typeof bThrow == "undefined" || bThrow)
- {
- return _throwThis(_AssertionError,
- "assertFalse(" + (typeof origX == "string" ? origX : "...") + ");");
- }
-
- jsx.dmsg((sContext ? sContext + ": " : "") + "Assertion failed: "
- + (typeof origX == "string" ? origX : "Value") + " must be false.", "warn");
- }
-
- return !!x;
- },
-
- /**
- * Asserts that a condition is <code>undefined</code>. If it isn't, it throws
- * an {@link #AssertionError} with a default message.
- *
- * @param {string|any} x
- * If a string, it is evaluated as a <i>Program</i>; the assertion
- * fails if its result, type-converted to <i>boolean</i>, is
- * <code>true</code>.
- * If not a string, the value is type-converted to <i>boolean</i>;
- * the assertion fails if the result of the conversion is
- * <code>true</code>.
- * @param {boolean} bThrow = true
- * If <code>true</code> (default), an exception will be thrown if
- * the assertion fails, otherwise a warning will be issued to the
- * error console in that case.
- * @param {String} sContext (optional)
- * Description of the context in which the assertion was made.
- * Ignored if <code><var>bThrow</var> == true</code>.
- * @throws
- * {@link #AssertionError} if the assertion fails and this exception
- * can be thrown.
- * @return {boolean}
- * <code>false</code>, if the assertion fails and no exception can be thrown;
- * <code>true</code>, if the assertion is met.
- * @see Global#eval(String)
- */
- assertUndefined: function (x, bThrow, sContext) {
- _increaseAssertCount();
-
- var origX = x;
- if (typeof x == "string")
- {
- x = eval(x);
- }
-
- if (typeof x != "undefined")
- {
- if (typeof bThrow == "undefined" || bThrow)
- {
- return _throwThis(_AssertionError,
- "assertUndefined(" + (typeof origX == "string" ? origX : "...") + ");");
- }
-
- jsx.warn((sContext ? sContext + ": " : "") + "Assertion failed: "
- + (typeof origX == "string" ? origX : "Value") + " must be undefined.");
- }
-
- return !!x;
- },
-
- /**
- * Asserts that two arrays are equal. If they are not,
- * an {@link #AssertionError} is thrown with a default message.
- * Two arrays are considered equal only if their elements are
- * strictly equal (shallow strict comparison).
- *
- * @function
- * @throws
- * {@link #ArrayComparisonFailure}
- * if either of the given values is not a reference to an
- * {@link Array}.
- * @throws
- * {@link #AssertionError}
- * if the assertion fails and either exception can be thrown.
- * @see Global#eval()
- */
- assertArrayEquals: (function () {
- function _thrower (expecteds, actuals)
- {
- return _throwThis(_AssertionError,
- "assertArrayEquals([" + expecteds + "], [" + actuals + "])");
- }
-
- /**
- * @param {string|Array} expecteds
- * Expected value; if a string, it is evaluated as a <i>Program</i>.
- * @param {string|Array} actuals
- * Actual value; if a string, it is evaluated as a <i>Program</i>.
- * @return {boolean}
- * <code>false</code>, if comparison is not possible
- * or the assertion fails, and no exception can be thrown;
- * <code>true</code>, if the assertion is met.
- */
- return function (expecteds, actuals) {
- _increaseAssertCount();
-
- if (typeof expecteds == "string")
- {
- expecteds = eval(expecteds);
- }
-
- if (typeof actuals == "string")
- {
- actuals = eval(actuals);
- }
-
- if (typeof expecteds == typeof actuals
- && expecteds == null && actuals == null)
- {
- return true;
- }
-
- if (!_isArray(expecteds) || !_isArray(actuals))
- {
- return _throwThis(_ArrayComparisonFailure);
- }
-
- var len = expecteds.length;
- var len2 = actuals.length;
-
- if (len != len2)
- {
- return _thrower(expecteds, actuals);
- }
-
- for (var i = len; i--;)
- {
- if (expecteds[i] !== actuals[i])
- {
- return _thrower(expecteds, actuals);
- }
- }
-
- return true;
- };
- }()),
-
- /**
- * Asserts that two objects are equal. If they are not,
- * an {@link #AssertionError} is thrown with a default message.
- * Two object are considered equal only if their keys are
- * strictly equal (shallow strict comparison).
- *
- * @function
- * @throws
- * {@link #ObjectComparisonFailure}
- * if either of the given values is not a reference to an
- * object.
- * @throws
- * {@link #AssertionError}
- * if the assertion fails and either exception can be thrown.
- * @see Global#eval()
- */
- assertObjectEquals: (function () {
- function _thrower (expecteds, actuals)
- {
- return _throwThis(_AssertionError,
- "assertObjectEquals(expecteds, actuals)");
- }
-
- /**
- * @param {string|Object} expecteds
- * Expected value; if a string, it is evaluated as a <i>Program</i>.
- * @param {string|Object} actuals
- * Actual value; if a string, it is evaluated as a <i>Program</i>.
- * @return {boolean}
- * <code>false</code>, if comparison is not possible
- * or the assertion fails, and no exception can be thrown;
- * <code>true</code>, if the assertion is met.
- */
- return function (expecteds, actuals) {
- _increaseAssertCount();
-
- if (typeof expecteds == "string")
- {
- expecteds = eval(expecteds);
- }
-
- if (typeof actuals == "string")
- {
- actuals = eval(actuals);
- }
-
- if (typeof expecteds == typeof actuals
- && expecteds == null && actuals == null)
- {
- return true;
- }
-
- if (!_isObject(expecteds) || !_isObject(actuals))
- {
- return _throwThis(_ObjectComparisonFailure);
- }
-
- var keys = jsx.object.getKeys(expecteds);
- for (var i = keys.length; i--;)
- {
- var key = keys[i];
- if (expecteds[key] !== actuals[key])
- {
- return _thrower(expecteds, actuals);
- }
- }
-
- return true;
- };
- }()),
-
- runner: {
- tests: [],
-
- _table: null,
-
- /**
- * @protected
- */
- _appendTable: function () {
- if (typeof document != "object" || !document)
- {
- return;
- }
-
- if (!document.body)
- {
- this._printMsg(
- "No document.body found (at this point)."
- + " Use {updateDocument: false} if not in HTML context,"
- + " or wait until document.body exists (`load' event).",
- "warn");
- return;
- }
-
- var id = "test-results" + new Date().getTime();
- var context = "table#" + id;
- var style = document.createElement("style");
- style.type = "text/css";
- var styleText =
- context + " { border: 2px solid black;"
- + " border-collapse: collapse; }"
- + context + " thead { border-bottom: 1px solid black; }"
- + context + " thead th { vertical-align: baseline; }"
- + context + " tfoot { border-top: 1px solid black; }"
- + context + " thead th { text-align: left; }"
- + context + " thead th:first-child { text-align: right; }"
- + context + " tbody th { text-align: right; }"
- + context + " tbody td.info {"
- + " background-color: green; color: white; }"
- + context + " tbody td.error {"
- + " background-color: red;"
- + " color: white; font-family: monospace; }"
- + context + " thead th,"
- + context + " tbody th,"
- + context + " tbody td,"
- + context + " tfoot td {"
- + " padding: 0 0.5em;"
- + " vertical-align: top;"
- + " vertical-align: baseline; }";
- if (typeof style.styleSheet != "undefined")
- {
- /* Older MSHTML */
- style.styleSheet.cssText = styleText;
- }
- else
- {
- style.appendChild(document.createTextNode(styleText));
- }
-
- (document.head || document.getElementsByTagName("head")[0]).appendChild(style);
-
- var table = document.createElement("table");
- table.id = id;
- this._table = table;
-
- var thead = document.createElement("thead");
- var tr = document.createElement("tr");
-
- var th = document.createElement("th");
- th.appendChild(document.createTextNode("#"));
- tr.appendChild(th);
-
- th = document.createElement("th");
- th.appendChild(document.createTextNode("Source File"));
- tr.appendChild(th);
-
- th = document.createElement("th");
- th.appendChild(document.createTextNode("Feature"));
- tr.appendChild(th);
-
- th = document.createElement("th");
- th.appendChild(document.createTextNode("Testcase Description"));
- tr.appendChild(th);
-
- th = document.createElement("th");
- th.appendChild(document.createTextNode("Result"));
- tr.appendChild(th);
-
- thead.appendChild(tr);
- table.insertBefore(thead, table.firstChild);
-
- var tbody = document.createElement("tbody");
- table.appendChild(tbody);
-
- var tests = this._tests;
- for (var i = 0, len = tests.length; i < len; ++i)
- {
- var test = tests[i];
- var number = i + 1;
- var file = this._file;
- var feature = this._feature;
- var description = "";
-
- if (test && typeof test != "function")
- {
- if (test.file)
- {
- file = test.file;
- }
-
- if (test.feature)
- {
- feature = test.feature;
- }
-
- description = test.description || test.desc || test.name;
- test = test.code;
- }
-
- this._appendRow(number, file, feature, description);
- }
-
- document.body.appendChild(table);
- },
-
- /**
- * @protected
- * @param {String} text
- */
- _htmlEscape: function (text) {
- return text.replace(/&/g, "&amp;").replace(/</g, "&lt;")
- .replace(/>/g, "&gt;").replace(/ /g, "&nbsp; ");
- },
-
- /**
- * @protected
- * @param {int} num
- * @param {string} file
- * @param {string} feature
- * @param {string} desc
- */
- _appendRow: function (num, file, feature, desc) {
- var table = this._table;
- if (!table)
- {
- return;
- }
-
- var tbody = table.tBodies[0];
-
- var tr = document.createElement("tr");
-
- var th = document.createElement("th");
- th.appendChild(document.createTextNode(num));
- tr.appendChild(th);
-
- var td = document.createElement("td");
- if (file)
- {
- var tt = document.createElement("tt");
- tt.appendChild(document.createTextNode(this._htmlEscape(file)));
- td.appendChild(tt);
- }
- tr.appendChild(td);
-
- td = document.createElement("td");
- if (feature)
- {
- var code = document.createElement("code");
- code.appendChild(document.createTextNode(this._htmlEscape(feature)));
- td.appendChild(code);
- }
- tr.appendChild(td);
-
- td = document.createElement("td");
- if (desc)
- {
- td.innerHTML = desc;
- }
- tr.appendChild(td);
-
- td = document.createElement("td");
- td.id = table.id + "-" + num;
- td.innerHTML = "testing…";
-
- tr.appendChild(td);
-
- tbody.appendChild(tr);
- },
-
- /**
- * Updates a result cell
- *
- * @protected
- * @param {int} rowNum
- * Row number
- * @param {string} result
- * @param {string} msgType
- */
- _updateResult: function (rowNum, result, msgType) {
- var td = document.getElementById(this._table.id + "-" + rowNum);
- if (td)
- {
- /* FIXME: Use standards-compliant methods instead */
- td.innerHTML = this._htmlEscape(result).replace(/\r?\n|\r/g, "<br>");
-
- td.className = msgType;
- }
- },
-
- /**
- * @protected
- */
- _appendSummary: function (text) {
- if (this._table)
- {
- var tbody = this._table.tBodies[0];
-
- var tfoot = document.createElement("tfoot");
- var tr = document.createElement("tr");
- var td = document.createElement("td");
- td.colSpan = 5;
- td.appendChild(document.createTextNode(text));
- tr.appendChild(td);
- tfoot.appendChild(tr);
-
- this._table.insertBefore(tfoot, tbody);
- }
- },
-
- /**
- * @protected
- * @param {String} msg
- * @param {String} msgType
- */
- _printMsg: function (msg, msgType) {
- return jsx[msgType]("jsx.test.runner: " + msg);
- },
-
- /**
- * Strips tags from markup and unescapes basic character
- * entity references.
- *
- * @protected
- * @param {String} markup
- */
- _stripTags: function (markup) {
- return markup
- .replace(/<\/?[^\s>]+(:[^\s>]+)?(\s+[^\s=>]+(\s*=\s*("[^"]*"|'[^']*'|[^\s>]+)?)?)*\s*>/g, "")
- .replace(/&lt;/, "<").replace(/&gt;/, ">").replace(/&amp;/, "&");
- },
-
- /**
- * Prints the result to the error console, and, if supported,
- * to the document.
- *
- * @protected
- * @param num
- * @param file
- * @param feature
- * @param desc
- * @param result
- * @param msgType
- */
- _printResult: function (num, file, feature, desc, result, msgType) {
- this._updateResult(num, result, msgType);
- this._printMsg("Test " + num
- + (file || feature ? ", " : "")
- + file
- + (feature ? ":" + feature : "")
- + (file || feature ? "," : "")
- + (desc ? ' "' + this._stripTags(desc) + '"' : "")
- + (file || feature ? "," : "")
- + " " + result,
- msgType);
- },
-
- /**
- * @protected
- * @param result
- */
- _printSummary: function (result) {
- var failed = result.failed;
- var passed = result.passed;
- var total = failed + passed;
- var summary = "Failed: " + failed + " (" + (failed * 100 / total).toFixed(1) + "\xA0%)."
- + " Passed: " + passed + " (" + (passed * 100 / total).toFixed(1) + "\xA0%).";
- this._appendSummary(summary);
- this._printMsg(summary, "info");
- },
-
- /**
- * Runs test cases.
- *
- * @param {Object} spec
- * Test specification. Supported properties incude:
- * <table>
- * <thead>
- * <th>Property</th>
- * <th>Type</th>
- * <th>Meaning</th>
- * </thead>
- * <tbody>
- * <tr>
- * <th><code>file</code></th>
- * <td><code>String</code></td>
- * <td>Name of the file that contains the code
- * to be tested. The default is the empty string.
- * <em>NOTE: This is a purely descriptive value.
- * No resources will be accessed based on this
- * value.</em></td>
- * </tr>
- * <tr>
- * <th><code>feature</code></th>
- * <td><code>String</code></td>
- * <td>Code describing the feature that is tested.
- * The default is the empty string.</td>
- * </tr>
- * <tr>
- * <th><code>setUp</code></th>
- * <td><code>Function</code></td>
- * <td>Function that is called before each test case</td>
- * </tr>
- * <tr>
- * <th><code>tearDown</code></th>
- * <td><code>Function</code></td>
- * <td>Function that is called after each test case</td>
- * </tr>
- * <tr>
- * <th><code>tests</code></th>
- * <td><code>Array</code> of <code>Function</code>s or of
- * <code>Object</code>s with the following properties:
- * <table>
- * <thead>
- * <th>Property</th>
- * <th>Type</th>
- * <th>Meaning</th>
- * </thead>
- * <tbody>
- * <tr>
- * <th><code>file</code></th>
- * <td><code>String</code></td>
- * <td>Name of the file that contains the code
- * to be tested. The default is the
- * value of the specification's
- * <code>file</code> property.
- * <em>NOTE: This is a purely descriptive value.
- * No resources will be accessed based on this
- * value.</em></td></td>
- * </tr>
- * <tr>
- * <th><code>feature</code></th>
- * <td><code>String</code></td>
- * <td>Code describing the feature that is tested.
- * The default is the value of the specification's
- * <code>feature</code> property.</td>
- * </tr>
- * <tr>
- * <th><code>description</code> | <code>desc</code>
- * | <code>name</code></th>
- * <td><code>String</code></td>
- * <td>Description/name of the test case.
- * Use <code>description</code> or
- * <code>desc</code> for newer
- * test code.</td>
- * </tr>
- * <tr>
- * <th><code>code</code></th>
- * <td><code>Function</code></td>
- * <td>Test case</td>
- * </tr>
- * </tbody>
- * </table></td>
- * <td>Test cases</td>
- * </tr>
- * <tr>
- * <th><code>updateDocument</code></th>
- * <td><code>boolean</code></td>
- * <td>If <code>false</code>, the (X)HTML document
- * containing or including the call is not updated, and
- * diagnostics are only written to the error console.
- * The default is <code>true</code>. Set to
- * <code>false</code> automatically if there is
- * no <code>document.body</code> object.</td>
- * </tr>
- * </tbody>
- * </table>
- */
- run: function (spec) {
- var hasSetUp = false;
- var hasTearDown = false;
-
- if (spec)
- {
- this._file = jsx.object.getProperty(spec, "file", "");
- this._feature = jsx.object.getProperty(spec, "feature", "");
-
- hasSetUp = (typeof spec.setUp == "function");
- if (hasSetUp)
- {
- this._setUp = spec.setUp;
- }
-
- hasTearDown = (typeof spec.tearDown == "function");
- if (hasTearDown)
- {
- this._tearDown = spec.tearDown;
- }
-
- var tests = spec.tests;
- if (tests)
- {
- this.setTests(tests);
- }
- }
-
- var tests = this._tests;
- if (tests.length == 0)
- {
- return this._printMsg("No tests defined.", "info");
- }
-
- this._appendTable();
-
- tests.result = {
- failed: 0,
- passed: 0
- };
-
- var hasSetTimeout = jsx.object.isMethod(jsx.global, "window", "setTimeout");
- var hasClearTimeout = jsx.object.isMethod(jsx.global, "window", "clearTimeout");
- var me = this;
- for (var i = 0, len = tests.length; i < len; ++i)
- {
- if (hasSetTimeout)
- {
- /* Asynchronous testing allows GUI thread to paint table */
- (function (i) {
- var timeout = window.setTimeout(function () {
- me._runTest(i, hasSetUp, hasTearDown);
-
- if (hasClearTimeout)
- {
- window.clearTimeout(timeout);
- }
- }, 50);
- }(i));
- }
- else
- {
- this._runTest(i, hasSetUp, hasTearDown);
- }
- }
- },
-
- /**
- * @protected
- */
- _runTest: function (i, hasSetUp, hasTearDown) {
- var tests = this._tests;
- var test = tests[i];
- var number = i + 1;
- var file = this._file;
- var feature = this._feature;
- var description = "";
-
- if (test && typeof test != "function")
- {
- if (test.file)
- {
- file = test.file;
- }
-
- if (test.feature)
- {
- feature = test.feature;
- }
-
- description = test.description || test.desc || test.name;
- test = test.code;
- }
-
- if (hasSetUp)
- {
- this._setUp(i, test);
- }
-
- try
- {
- test(i);
- ++tests.result.passed;
- this._printResult(number, file, feature, description,
- "passed", "info");
- }
- catch (e)
- {
- ++tests.result.failed;
- this._printResult(number, file, feature, description,
- "threw " + e + (e.stack ? "\n\n" + e.stack : ""),
- "error");
- }
-
- if (hasTearDown)
- {
- this._tearDown(i, test);
- }
-
- if (i == tests.length - 1)
- {
- this._printSummary(tests.result);
- }
- },
-
- setFile: function (file) {
- this._file = file;
- return this;
- },
-
- setFeature: function (feature) {
- this._feature = feature;
- return this;
- },
-
- setSetUp: function (f) {
- if (typeof f != "function")
- {
- _throwThis("jsx.InvalidArgumentError",
- ["", typeof f, "function"], "jsx.test.runner.setSetUp");
- }
-
- this._setUp = f;
- return this;
- },
-
- setTearDown: function (f) {
- if (typeof f != "function")
- {
- _throwThis("jsx.InvalidArgumentError", ["", typeof f, "function"]);
- }
-
- this._tearDown = f;
- return this;
- },
-
- setTests: function (tests) {
- var _class = jsx.object.getClass(tests);
- if (_class != "Array")
- {
- _throwThis("jsx.InvalidArgumentError", ["", _class, "Array"]);
- }
-
- this._tests = tests;
- return this;
- }
- }
- };
-}());
\ No newline at end of file
/live/test/test.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedRevision Id
\ No newline at end of property
Index: live/test/httprequest.html
===================================================================
--- live/test/httprequest.html (revision 509)
+++ live/test/httprequest.html (nonexistent)
@@ -1,73 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <title>JSX:HTTPRequest Test Case</title>
-
- <!-- 1. Include prerequisites and dependencies using Resource Builder (recommended) -->
- <script type="text/javascript" src="builder.php?src=object,string,http,xpath"></script>
-
- <script type="text/javascript" src="test.js"></script>
-
- <script type="text/javascript">
- function makeRequest(s)
- {
- var assert = jsx.test.assert;
-
- jsx.test.runner.run({
- tests: [
- function () {
- /*
- * 2. Construct the HTTP request wrapper;
- * the default is a GET request with asynchronous handling
- */
- var req = new jsx.net.http.Request("test.xml");
-
- /* 3. Prepare processing of the HTTP response */
- req.setSuccessListener(
- function (x) {
- /* 5. Get the reference to the XMLDocument object */
- var doc = x.responseXML;
-
- /* 6. Create the namespace resolver that fits your query best */
- var nsResolver = jsx.dom.xpath.createFullNSResolver(null, doc);
-
- /* 7. Make the XPath query */
- var nodes = jsx.dom.xpath.evaluate("//res:UNDO_COUNT/text()", doc, nsResolver);
-
- assert(nodes);
- assert(nodes.length == 1);
- assert(nodes[0].nodeName == "#text");
- assert(nodes[0].data == "1.0");
-
- /*
- * 8. Process the result. jsx.dom.xpath.evaluate() returns a reference
- * to an Array instance if you do not specify the result type.
- */
-
- /* "1.0" */
- var data = nodes[0].data;
- if (!jsx.dmsg(data))
- {
- window.alert(data);
- }
- });
-
- /* 4. Make the HTTP request */
- req.send();
- }
- ]
- });
- }
- </script>
- </head>
-
- <body>
- <form action="">
- <input name="URI" />
- <input type="button"
- value="Test" onclick="makeRequest(this.form.elements['URI'].value);" />
- </form>
- </body>
-</html>
\ No newline at end of file
Index: live/test/compat.js
===================================================================
--- live/test/compat.js (revision 509)
+++ live/test/compat.js (nonexistent)
@@ -1,2 +0,0 @@
-var debug = jsx.debug;
-var sGlobal = "_global";
\ No newline at end of file
/live/test/compat.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/unicode.js
===================================================================
--- live/test/unicode.js (revision 509)
+++ live/test/unicode.js (nonexistent)
@@ -1,462 +0,0 @@
-function runTests()
-{
- var _test = jsx.test;
- var assert = _test.assert;
- var assertArrayEquals = _test.assertArrayEquals;
- var WideString = jsx.string.unicode.WideString;
-
- _test.runner.run({
- file: "unicode.js",
- tests: [
- {
- feature: 'jsx.string.unicode.WideString()',
- description: 'Return new instance (factory)',
- code: function () {
- assert(WideString() instanceof WideString);
- }
- },
- {
- feature: 'new jsx.string.unicode.WideString()',
- description: 'Return new empty instance',
- code: function () {
- var s = new WideString();
- assert(s instanceof WideString);
- assertArrayEquals([], s.getChars());
- }
- },
- {
- feature: 'new WideString(wideString)',
- description: 'Clone instance',
- code: function () {
- var chars = new WideString(new WideString(("x"))).getChars();
- assertArrayEquals(["x"], chars);
- }
- },
- {
- feature: 'new WideString("")',
- description: 'Return new empty instance',
- code: function () {
- assertArrayEquals([], new WideString("").getChars());
- }
- },
- {
- feature: 'new WideString("x")',
- description: 'Convert to <code>WideString("x")</code>',
- code: function () {
- assertArrayEquals(["x"], new WideString("x").getChars());
- }
- },
- {
- feature: 'new WideString(42)',
- description: 'Convert to <code>WideString("42")</code>',
- code: function () {
- assertArrayEquals(["4", "2"], new WideString(42).getChars());
- }
- },
-
- {
- feature: 'wideString.getChars()',
- description: 'Return the correct value',
- code: function () {
- assertArrayEquals([], new WideString().getChars());
- assertArrayEquals([], new WideString("").getChars());
- assertArrayEquals(["x"], new WideString("x").getChars());
- assertArrayEquals(["x", "\uD834\uDD1E"], new WideString("x\uD834\uDD1E").getChars());
- assertArrayEquals(["x", "\uD834\uDD1E", "y"], new WideString("x\uD834\uDD1Ey").getChars());
- }
- },
- {
- feature: 'wideString.chars',
- description: 'Getter works',
- code: function () {
- assertArrayEquals(["x"], new WideString("x").chars);
- }
- },
-
- {
- feature: 'wideString.getLength()',
- description: 'Return the correct value',
- code: function () {
- assert(new WideString().getLength() === 0);
- assert(new WideString("").getLength() === 0);
- assert(new WideString("x").getLength() === 1);
- assert(new WideString("x\uD834\uDD1E").getLength() === 2);
- assert(new WideString("x\uD834\uDD1Ey").getLength() === 3);
- }
- },
- {
- feature: 'wideString.length',
- description: 'Inherited getter works',
- code: function () {
- assert(new WideString("x").length === 1);
- }
- },
-
- {
- feature: 'WideString.fromCharCode(0x110000)',
- description: 'throw <code>jsx.InvalidArgumentError</code>',
- code: function () {
- var error = false;
- jsx.tryThis(
- function () {
- WideString.fromCharCode(0x110000);
- },
- function (e) {
- jsx.error(e);
- if (e instanceof jsx.InvalidArgumentError)
- {
- error = true;
- }
- }
- );
-
- assert(error);
- }
- },
- {
- feature: 'WideString.fromCharCode(0x1D11E)',
- description: 'Return <code>WideString("\\uD834\\uDD1E")</code>',
- code: function () {
- var chars = WideString.fromCharCode(0x1D11E).getChars();
- assertArrayEquals(["\uD834\uDD1E"], chars);
- }
- },
- {
- feature: 'WideString.fromCharCode(0x20AC)',
- description: 'Return <code>WideString("\\u20AC")</code>',
- code: function () {
- var chars = WideString.fromCharCode(0x20AC).getChars();
- assertArrayEquals(["\u20AC"], chars);
- }
- },
-
- {
- feature: 'wideString.charAt(…)',
- description: 'Return the correct value',
- code: function () {
- assert(new WideString("x\uD834\uDD1E").charAt(1) === "\uD834\uDD1E");
- assert(new WideString("\uD834\uDD1Ex").charAt(1) === "x");
- assert(typeof new WideString("\uD834\uDD1Ex").charAt(2) == "undefined");
-
- assert(new WideString("xy\uD834\uDD1E").charAt(-1) === "\uD834\uDD1E");
- assert(new WideString("x\uD834\uDD1Ey").charAt(-1) === "y");
- assert(typeof new WideString("x\uD834\uDD1Ey").charAt(-4) == "undefined");
- }
- },
-
- {
- feature: 'wideString.charCodeAt(…)',
- description: 'Return the correct value',
- code: function () {
- assert(new WideString("x\uD834\uDD1E").charCodeAt(1) === 0x1D11E);
- assert(new WideString("\uD834\uDD1EA").charCodeAt(1) === 65);
-
- var result = new WideString("\uD834\uDD1EA").charCodeAt(2);
- assert(typeof result == "number" && isNaN(result));
-
- assert(new WideString("xy\uD834\uDD1E").charCodeAt(-1) === 0x1D11E);
- assert(new WideString("A\uD834\uDD1EB").charCodeAt(-1) === 66);
-
- result = new WideString("A\uD834\uDD1EB").charCodeAt(-4);
- assert(typeof result == "number" && isNaN(result));
- }
- },
-
- {
- feature: 'wideString.concat(…)',
- description: 'Return the correct value',
- code: function () {
- var s = new WideString("x").concat(new WideString("\uD834\uDD1E"));
- assertArrayEquals(["x", "\uD834\uDD1E"], s.getChars());
-
- s = new WideString("x\uD834").concat(new WideString("\uDD1E"));
- assertArrayEquals(["x", "\uD834\uDD1E"], s.getChars());
-
- s = new WideString("x\uD834\uDD1E").concat(new WideString(""));
- assertArrayEquals(["x", "\uD834\uDD1E"], s.getChars());
-
- s = new WideString("x\uD834\uDD1E").concat(new WideString());
- assertArrayEquals(["x", "\uD834\uDD1E"], s.getChars());
-
- s = new WideString("x").concat("\uD834\uDD1E");
- assertArrayEquals(["x", "\uD834\uDD1E"], s.getChars());
-
- s = new WideString("x\uD834").concat("\uDD1E");
- assertArrayEquals(["x", "\uD834\uDD1E"], s.getChars());
-
- s = new WideString("x\uD834\uDD1E").concat("");
- assertArrayEquals(["x", "\uD834\uDD1E"], s.getChars());
-
- s = new WideString("x\uD834\uDD1E").concat(42);
- assertArrayEquals(["x", "\uD834\uDD1E", "4", "2"], s.getChars());
- }
- },
-
- {
- feature: 'wideString.indexOf(…)',
- description: 'Return the correct value',
- code: function () {
- assert(new WideString("x\uD834\uDD1Ez").indexOf(
- new WideString("\uDD1E")) === -1);
- assert(new WideString("x\uD834\uDD1Ez").indexOf(
- new WideString("\uD834\uDD1Ey")) === -1);
- assert(new WideString("x\uD834\uDD1Ey\uD834\uDD1E").indexOf(
- new WideString("\uD834\uDD1Ey")) === 1);
- assert(new WideString("\uD834\uDD1EA\uD834\uDD1EA").indexOf(
- new WideString("A")) === 1);
- assert(new WideString("\uD834\uDD1EA\uD834\uDD1EA").indexOf(
- new WideString("A"), 2) === 3);
-
- assert(new WideString("x\uD834\uDD1Ez").indexOf("\uDD1E") === -1);
- assert(new WideString("x\uD834\uDD1Ez").indexOf("\uD834\uDD1Ey") === -1);
- assert(new WideString("x\uD834\uDD1Ey\uD834\uDD1Ey").indexOf("\uD834\uDD1Ey") === 1);
- assert(new WideString("\uD834\uDD1EA\uD834\uDD1EA").indexOf("A") === 1);
- assert(new WideString("\uD834\uDD1EA\uD834\uDD1EA").indexOf("A", 2) === 3);
- }
- },
-
- {
- feature: 'wideString.lastIndexOf(…)',
- description: 'Return the correct value',
- code: function () {
- assert(new WideString("x\uD834\uDD1E").lastIndexOf(
- new WideString("\uDD1E")) === -1);
- assert(new WideString("x\uD834\uDD1E\uD834\uDD1E").lastIndexOf(
- new WideString("\uD834\uDD1E")) === 2);
- assert(new WideString("A\uD834\uDD1EA").lastIndexOf(
- new WideString("A")) === 2);
- assert(new WideString("A\uD834\uDD1EA").lastIndexOf(
- new WideString("A"), 1) === 0);
-
- assert(new WideString("x\uD834\uDD1E").lastIndexOf("\uDD1E") === -1);
- assert(new WideString("\uD834\uDD1Ex\uD834\uDD1E").lastIndexOf("\uD834\uDD1E") === 2);
- assert(new WideString("A\uD834\uDD1EA").lastIndexOf("A") === 2);
- assert(new WideString("A\uD834\uDD1EA").lastIndexOf("A", 1) === 0);
- }
- },
-
- {
- feature: 'wideString.localeCompare("…")',
- description: 'Return the correct value (inherited generic method)',
- code: function () {
- assert(new WideString("x").localeCompare("y") === "x".localeCompare("y"));
- }
- },
-
- {
- feature: 'wideString.match("…")',
- description: 'Return the correct value (inherited generic method)',
- code: function () {
- assertArrayEquals("x".match("x"), new WideString("x").match("x"));
- assert(new WideString("x").match("y") === "x".match("y"));
- }
- },
-
- {
- feature: 'wideString.replace("…")',
- description: 'Return the correct value (inherited generic method)',
- code: function () {
- assert(new WideString("x").replace("x", "y").toString() === "x".replace("x", "y"));
- assert(new WideString("xx").replace(/x/g, "y").toString() === "xx".replace(/x/g, "y"));
- }
- },
-
- {
- feature: 'wideString.search("…")',
- description: 'Return the correct value (inherited generic method)',
- code: function () {
- assert(new WideString("x").search(/y/) === "x".search(/y/));
- assert(new WideString("x").search(/x/) === "x".search(/x/));
- }
- },
-
- {
- feature: 'wideString.slice(…)',
- description: 'Return the correct value',
- code: function () {
- var s = new WideString("x\uD834\uDD1Ey").slice(1);
- assertArrayEquals(["\uD834\uDD1E", "y"], s.getChars());
-
- s = new WideString("x\uD834\uDD1Ey").slice(0, 1);
- assertArrayEquals(["x"], s.getChars());
-
- s = new WideString("x\uD834\uDD1Ey").slice(0, 2);
- assertArrayEquals(["x", "\uD834\uDD1E"], s.getChars());
-
- s = new WideString("x\uD834\uDD1Ey").slice(1, 1);
- assertArrayEquals([], s.getChars());
-
- s = new WideString("x\uD834\uDD1Ey").slice(1, 3);
- assertArrayEquals(["\uD834\uDD1E", "y"], s.getChars());
- }
- },
-
- {
- feature: 'wideString.substr(…)',
- description: 'Return the correct value',
- code: function () {
- var s = new WideString("x\uD834\uDD1Ey").substr(1);
- assertArrayEquals(["\uD834\uDD1E", "y"], s.getChars());
-
- s = new WideString("x\uD834\uDD1Ey").substr(0, 1);
- assertArrayEquals(["x"], s.getChars());
-
- s = new WideString("x\uD834\uDD1Ey").substr(0, 2);
- assertArrayEquals(["x", "\uD834\uDD1E"], s.getChars());
-
- s = new WideString("x\uD834\uDD1Ey").substr(1, 1);
- assertArrayEquals(["\uD834\uDD1E"], s.getChars());
-
- s = new WideString("x\uD834\uDD1Ey").substr(1, 3);
- assertArrayEquals(["\uD834\uDD1E", "y"], s.getChars());
- }
- },
-
- {
- feature: 'wideString.substring(…)',
- description: 'Return the correct value',
- code: function () {
- var s = new WideString("x\uD834\uDD1Ey").substring(1);
- assertArrayEquals(["\uD834\uDD1E", "y"], s.getChars());
-
- s = new WideString("x\uD834\uDD1Ey").substring(0, 1);
- assertArrayEquals(["x"], s.getChars());
-
- s = new WideString("x\uD834\uDD1Ey").substring(0, 2);
- assertArrayEquals(["x", "\uD834\uDD1E"], s.getChars());
-
- s = new WideString("x\uD834\uDD1Ey").substring(1, 1);
- assertArrayEquals([], s.getChars());
-
- s = new WideString("x\uD834\uDD1Ey").substring(1, 3);
- assertArrayEquals(["\uD834\uDD1E", "y"], s.getChars());
-
- s = new WideString("x\uD834\uDD1Ey").substring(3, 1);
- assertArrayEquals(["\uD834\uDD1E", "y"], s.getChars());
- }
- },
-
- {
- feature: 'wideString.toString(…)',
- description: 'Return the correct value',
- code: function () {
- var s = new WideString("x\uD834\uDD1Ey").toString();
- assert(s === "x\uD834\uDD1Ey");
- }
- },
-
- {
- feature: 'wideString.valueOf(…)',
- description: 'Return the correct value',
- code: function () {
- var s = new WideString("x\uD834\uDD1Ey").valueOf();
- assert(s === "x\uD834\uDD1Ey");
- }
- },
-
- {
- feature: 'String.fromCharCode(0x1D11E)',
- description: 'Return <code>"\\uD834\\uDD1E"</code>',
- code: function () {
- assert(String.fromCharCode(0x1D11E) === "\uD834\uDD1E");
- }
- },
-
- {
- feature: 'string.charAt(…)',
- description: 'Return the correct value',
- code: function () {
- assert("x\uD834\uDD1E".charAt(1) === "\uD834\uDD1E");
- assert("\uD834\uDD1Ex".charAt(1) === "x");
- assert(typeof "\uD834\uDD1Ex".charAt(2) == "undefined");
-
- assert("xy\uD834\uDD1E".charAt(-1) === "\uD834\uDD1E");
- assert("x\uD834\uDD1Ey".charAt(-1) === "y");
- assert(typeof "x\uD834\uDD1Ey".charAt(-4) == "undefined");
- }
- },
-
- {
- feature: 'string.charCodeAt(…)',
- description: 'Return the correct value',
- code: function () {
- assert("x\uD834\uDD1E".charCodeAt(1) === 0x1D11E);
- assert("\uD834\uDD1EA".charCodeAt(1) === 65);
-
- var result = "\uD834\uDD1EA".charCodeAt(2);
- assert(typeof result == "number" && isNaN(result));
-
- assert("xy\uD834\uDD1E".charCodeAt(-1) === 0x1D11E);
- assert("A\uD834\uDD1EB".charCodeAt(-1) === 66);
-
- result = "A\uD834\uDD1EB".charCodeAt(-4);
- assert(typeof result == "number" && isNaN(result));
- }
- },
-
- {
- feature: 'string.getLength()',
- description: 'Return the correct value (augmented prototype)',
- code: function () {
- assert("x\uD834\uDD1Ey".getLength() === 3);
- }
- },
-
- {
- feature: 'string.slice(…)',
- description: 'Return the correct value',
- code: function () {
- assert("xyz".slice(1) === "yz");
- assert("xyz".slice(0, 1) === "x");
- assert("xyz".slice(0, 2) === "xy");
- assert("xyz".slice(1, 1) === "");
- assert("xyz".slice(1, 3) === "yz");
-
- assert("x\uD834\uDD1Ey".slice(1) === "\uD834\uDD1Ey");
- assert("x\uD834\uDD1Ey".slice(0, 1) === "x");
- assert("x\uD834\uDD1Ey".slice(0, 2) === "x\uD834\uDD1E");
- assert("x\uD834\uDD1Ey".slice(1, 1) === "");
- assert("x\uD834\uDD1Ey".slice(1, 3) === "\uD834\uDD1Ey");
- }
- },
-
- {
- feature: 'string.substr(…)',
- description: 'Return the correct value',
- code: function () {
- assert("xyz".substr(1) === "yz");
- assert("xyz".substr(0, 1) === "x");
- assert("xyz".substr(0, 2) === "xy");
- assert("xyz".substr(1, 1) === "y");
- assert("xyz".substr(1, 3) === "yz");
-
- assert("x\uD834\uDD1Ey".substr(1) === "\uD834\uDD1Ey");
- assert("x\uD834\uDD1Ey".substr(0, 1) === "x");
- assert("x\uD834\uDD1Ey".substr(0, 2) === "x\uD834\uDD1E");
- assert("x\uD834\uDD1Ey".substr(1, 1) === "\uD834\uDD1E");
- assert("x\uD834\uDD1Ey".substr(1, 3) === "\uD834\uDD1Ey");
- }
- },
-
- {
- feature: 'string.substring(…)',
- description: 'Return the correct value',
- code: function () {
- assert("xyz".substring(1) === "yz");
- assert("xyz".substring(0, 1) === "x");
- assert("xyz".substring(0, 2) === "xy");
- assert("xyz".substring(1, 1) === "");
- assert("xyz".substring(1, 3) === "yz");
- assert("xyz".substring(3, 1) === "yz");
-
- assert("x\uD834\uDD1Ey".substring(1) === "\uD834\uDD1Ey");
- assert("x\uD834\uDD1Ey".substring(0, 1) === "x");
- assert("x\uD834\uDD1Ey".substring(0, 2) === "x\uD834\uDD1E");
- assert("x\uD834\uDD1Ey".substring(1, 1) === "");
- assert("x\uD834\uDD1Ey".substring(1, 3) === "\uD834\uDD1Ey");
- assert("x\uD834\uDD1Ey".substring(3, 1) === "\uD834\uDD1Ey");
- }
- }
- ]
- });
-}
\ No newline at end of file
/live/test/unicode.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/debug.js
===================================================================
--- live/test/debug.js (revision 509)
+++ live/test/debug.js (nonexistent)
@@ -1,2408 +0,0 @@
-/**
- * <title>Debug Library<title>
- *
- * @filename debug.js
- * @version $Id$
- * @requires object.js, types.js, array.js (for #Properties)
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2001‒2013 Thomas Lahn &lt;js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-jsx.debug = {
- /** @version */
- version: "0.99.$Revision$",
- copyright: "Copyright \xA9 1999-2013",
- author: "Thomas Lahn",
- email: "js@PointedEars.de",
- path: "http://pointedears.de/scripts/test/",
- enabled: false
-};
-
-// debug.docURL = debug.path + "../debug.htm";
-
-/* global undefined value (for implementations without it) */
-var undefined;
-
-/** @section Exceptions */
-
-/**
- * @param msg : string
- */
-function DebugException(msg)
-{
- alert(
- "debug.js "
- + jsx.debug.version + "\n"
- + jsx.debug.copyright
- + " " + jsx.debug.author
- + " <" + jsx.debug.email + ">\n\n"
- + msg);
- return false;
-}
-
-/** @section Features */
-
-/**
- * Returns a value depending on whether an expression evaluates to
- * a true-value or a false-value.
- *
- * @param expression
- * Expression to be evaluated. Parsed as a <i>Program</i> if a
- * <code>String</code>.
- * @param trueValue
- * The value to be returned if <var>expression</var> evaluates to
- * a true-value; the default is the empty string.
- * @param falseValue
- * The value to be returned if <var>expression</var> evaluates to
- * a false-value; the default is the empty string.
- * @return mixed
- * <var>trueValue</var> if <var>expression</var> evaluates to
- * a true-value; <var>falseValue</var> otherwise.
- * @see Global#eval(String)
- */
-jsx.debug.test = function (expression, trueValue, falseValue) {
- var sDefault = "";
- var result = sDefault;
-
- jsx.setErrorHandler();
-
- /* NOTE: Must pass "false" so that any exception is considered failure */
- if (jsx.tryThis(expression, "false"))
- {
- result = (arguments.length > 1 ? trueValue : sDefault);
- }
- else
- {
- result = (arguments.length > 2 ? falseValue : sDefault);
- }
-
- jsx.clearErrorHandler();
- return result;
-};
-
-if (typeof test2 == "undefined")
-{
- /**
- * @param sExpression : string
- * @param sTest : string
- * @param expected
- * @return mixed
- */
- var test2 = function (sExpression, sTest, expected)
- {
- var out = new Array(), result;
-
- if (sExpression)
- {
- out.push(sExpression);
- }
-
- setErrorHandler();
- eval(new Array(
- 'try {',
- ' eval(sExpression.replace(/\\bvar\\s+/g, ""));',
- ' try {',
- ' result = eval(sTest.replace(/\\bvar\\s+/g, ""));',
- " out.push('// ' + sTest + ' === ' + result",
- " + ' (expected: ' + expected + ')');",
- ' } catch(e) {',
- " out.push('// ' + sTest + ' \\u21d2 ' + e.name + ': '",
- " + e.message);",
- ' }',
- '} catch(e) {',
- " out.push('// ' + sExpression + ' \\u21d2 ' + e.name + ': '",
- " + e.message);",
- '}').join("\n"));
- clearErrorHandler();
-
- document.write(out.join('\n') + '\n\n');
-
- return result;
- };
-}
-/*
-var o;
-test('var o = {foo: 23};', 'o.foo', 23);
-test('addProperties({foo: 42}, o);', 'o.foo', 23);
-test('addProperties({foo: 42}, Object.ADD_OVERWRITE, o);', 'o.foo', 42);
-
-var o2;
-test(new Array(
- 'var o2 = {x: 42};',
- 'addProperties({bar: o2}, Object.ADD_OVERWRITE, o);').join('\n'),
- 'o.bar.x', 42);
-test('o2.x = null;', 'o.bar.x', null);
-test(new Array(
- 'o2 = {x: 42};',
- 'addProperties({baz: o2}, Object.COPY_ENUM_DEEP, o);').join('\n'),
- 'o.baz.x', 42);
-test('o2.x = null;', 'o.baz.x', '!= null (TODO)');
-*/
-
-//if (!isMethod("profile"))
-//{
-// /**
-// * @param s
-// * @return
-// */
-// var profile = function (s) {
-// var me = arguments.callee;
-// me.start = new Date();
-// me.description = s || "";
-// };
-//
-// if (!isMethod("profileEnd"))
-// {
-// /**
-// * @return string
-// */
-// var profileEnd = function () {
-// var
-// descr = profile.description,
-// msg = (descr ? (descr + ": ") : "") + (new Date() - profile.start)
-// + " ms";
-//
-// if (isMethod("window", "alert"))
-// {
-// window.alert(msg);
-// }
-//
-// delete profile.start;
-// delete profile.description;
-//
-// return msg;
-// };
-// }
-//}
-
-/**
- * Returns evaluation statistics.
- *
- * @param expr : string|Array
- * Expression or array of expressions to be evaluated.
- * @param bPrintResult : optional boolean = false
- * If <code>true</code>, the method returns a printable result.
- * @param loops : optional number = 1
- * Specifies the number of times the expression should be evaluated.
- * @param repeats : optional number = 1
- * Specifies the number of times the evaluation loop(s) of the expression
- * should be repeated. If greater than 1, the method also returns the
- * minimum, maximum and average of the evaluation time.
- * @return Array|string
- * An array containing the number of milliseconds the evaluation of the
- * expression(s) took if bPrintResult is <code>false</code>;
- * a human-readable table string to indicate the test results otherwise.
- * @requires types#isArray()
- */
-function time(expr, bPrintResult, loops, repeats)
-{
- if (!isArray(expr))
- {
- expr = [expr];
- }
-
- if (!loops || loops < 1)
- {
- loops = 1;
- }
-
- if (!repeats || repeats < 1)
- {
- repeats = 1;
- }
-
- var
- result = ["Expressions:\n\n"],
- stats = [];
-
- /* loop through expressions */
- for (var i = 0, cnt = expr.length; i < cnt; i++)
- {
- var cur_expr = expr[i];
- if (bPrintResult)
- {
- result.push("[", i + 1, "] ", cur_expr, "\n");
- }
-
- /* reset stats for this expression */
- var repeat_stats = stats[i] = [];
-
- /* repeat loops */
- for (var j = 0; j < repeats; j++)
- {
- /* reset stats for this repeat */
- repeat_stats[j] = -1;
- var eval_loop_start = new Date();
-
- /* repeat evaluation */
- for (var k = 0; k < loops; k++)
- {
- jsx.tryThis(function () { expr[i]; });
- }
-
- repeat_stats[j] = new Date() - eval_loop_start;
- }
- }
-
- if (bPrintResult)
- {
- // debugger
- result.push(
- "\nEvaluation Results (ms):\n\n\\",
- pad("n|", cnt.toString().length - 1));
-
- var col_width = Math.maxN(repeats, stats).toString().length + 1;
-
- for (j = 0; j < repeats; j++)
- {
- result.push(format("%*2$d", j + 1, col_width));
- }
-
- var expr_width = (cnt + 1).toString().length;
-
- result.push(
- format("\xA0%*4$s\xA0%*4$s\xA0%*4$s\n", "min", "max", "avg", col_width),
- format("%*2$d\\|", "e", expr_width),
- strRepeat("_", col_width * repeats),
- "\n");
-
- /* loop through expressions */
- for (i = 0; i < cnt; i++)
- {
- result.push(format("%*2$d|", i + 1, expr_width < 2 ? 2 : expr_width));
-
- for (j = 0; j < repeats; j++)
- {
- result.push(format("%*2$d", stats[i][j], col_width));
- }
-
- result.push(
- format(
- "\xA0%*4$s\xA0%*4$s\xA0%*4$s\n",
- Math.minN(stats[i]),
- Math.maxN(stats[i]),
- Math.avgN(stats[i]).toFixed(1),
- col_width));
- }
-
- result = result.join("");
- }
- else
- {
- result = stats;
- }
-
- return result;
-}
-
-function time2(aFunctions, repeats)
-{
- if (!aFunctions)
- {
- jsx.throwThis(
- "TypeError",
- "benchmark: Expected aFunctions : Function|Array, saw " + aFunctions
- + " : " + typeof aFunctions);
- }
-
- if (aFunctions.constructor != Array)
- {
- aFunctions = [aFunctions];
- }
-
- var results = [];
-
- for (var i = 0, len = aFunctions.length; i < len; i++)
- {
- var
- f = aFunctions[i],
- start = new Date();
-
- for (var j = repeats; j--;)
- {
- f();
- }
-
- results[i] = {
- code: f,
- duration: new Date() - start
- };
- }
-
- return results;
-}
-
-/**
- * @param e : Error
- * @return string
- * Serialization of error properties and stack trance, if available.
- */
-function getError(e)
-{
- var sError = e;
-
- if (typeof e.name != "undefined")
-{
- sError += "\nName: " + e.name;
-}
-
-if (typeof e.number != "undefined")
-{
- sError += "\nCode: " + e.number;
-}
-
-if (typeof e.message != "undefined")
-{
- sError += "\nMessage: " + e.message;
-}
-
-if (typeof e.description != "undefined")
-{
- sError += "\nDescription: " + e.description;
-}
-
-if (typeof e.fileName != "undefined")
-{
- sError += "\nFilename: " + e.fileName;
-}
-
-jsx.setErrorHandler();
-eval(new Array(
- 'try {',
- ' if (e.lineNumber) {',
- ' sError += "\\nLine: " + e.lineNumber;',
- ' }',
- '} catch (e2) {',
- ' sError += "\\nLine: " + e2;',
- '}').join("\n"));
-jsx.clearErrorHandler();
-
-if (typeof e.stack != "undefined")
-{
- sError += "\nStack:\n" + e.stack;
- }
-
- return sError;
-}
-
-/**
- * Returns the type of a reference and, if possible, of its object properties
- * (nested only one level deep), and optionally displays that in an alert()
- * box.
- *
- * @param a
- * Value to be displayed along with its type. If a string or an array of
- * strings and bDontEval is not provided or false, each string is evaluated
- * using eval() and that value is used.
- * @param bDontAlert : boolean = false
- * If <code>true</code>, returns the value instead of displaying it.
- * @param bDontEval : boolean
- * If <code>true</code>, does not evaluate arguments but uses their value.
- * @requires jsx.types#isArray()
- * @return string
- * Serialization of the value(s)
- */
-function alertValue(a, bDontAlert, bDontEval)
-{
- if (!isArray(a))
- {
- a = [a];
- }
-
- for (var as = [], i = 0, len = a.length; i < len; i++)
- {
- var
- o = !bDontEval ? eval(a[i]) : a[i],
- t = typeof o,
- delim = (t == "string" ? '"' : ''),
- s = delim + a[i] + delim + " : " + t + " = " + delim + o + delim;
-
- if (t == "object" || t == "function")
- {
- for (var j in o)
- {
- t = typeof o[j];
- delim = (t == "string" ? '"' : '');
- s += "\n" + a[i] + '["' + j + '"] : ' + t + " = "
- + delim + o[j] + delim;
- }
- }
-
- as.push(s);
-}
-
-var result = as.join("\n");
-
- if (!bDontAlert)
- {
- window.alert(result);
- }
-
- return result;
-}
-
-
-/*
- * JavaScript Beautifier and Uglyfier ;-)
- *
- * Test input:
-
-javascript:
- function resizeToHelp()
- {
- alert("Usage: resizeTo clientWidth [clientHeight]");
- };
-
- if ("%s".length > 0)
- {
- var a = "%s".split(" ");
- if (a[0] && !isNaN(a[0]))
- {
- void (window.innerWidth=parseInt('%s'.split(' ')[0]);
- }
- else
- {
- resizeToHelp();
- }
-
- if (a[1] && !isNaN(a[1]))
- {
- void (window.innerHeight=parseInt(a[0]));
- }
- else
- {
- resizeToHelp();
- }
- }
- else
- {
- resizeToHelp();
- }
-
- */
-/**
- * @param s : string
- * @return string
- * The beautified version of <var>s</var>
- */
-function beautify(s)
-{
- return s
- .replace(/(\s*\{\s*)/g, "\n$1\n ")
- .replace(/(\s*\}([^,;])\s*)/g, "\n$1\n")
- .replace(/,([^\s])/g, ", $1")
- .replace(/([^}]?;\s*)/g, "$1\n");
-}
-
-//alert(beautify('javascript:function resizeToHelp() { alert("Usage: resizeTo clientWidth [clientHeight]"); } if ("%s".length > 0) { var a = "%s".split(" "); if (a[0] && !isNaN(a[0])) { void (window.innerWidth=parseInt(a[0])); if (a[1] && !isNaN(a[1])) { void (window.innerHeight=parseInt(a[1])); } else resizeToHelp(); } else resizeToHelp(); } else resizeToHelp();'));
-
-/**
- * @param s : string
- * @return string
- * <var>s</var> with all whitespace reduced to a single space
- */
-function uglyfy(s)
-{
- return s.replace(/\s/g, " "); // .replace
-}
-
-
-// DEBUG
-// var rxCode;
-
-jsx.debug.synhlMatches = [
- [ 1, 'comm'],
- [ 4, 'scr'],
- [ 7, 'regexp'],
- [ 9, 'tag'],
- [11, 'str'],
- // [14, 'entity'],
- [15, 'rswd'],
- [18, 'ident'],
- [21, 'punct'],
- [22, 'num']
-];
-
-/**
- * Applies syntax highlighting on contents of <code>code</code>
- * elements unless their <code>class</code> attribute has the
- * value "donthl", or on the given context if provided.
- *
- * Requires support for the (currently proprietary)
- * <code>innerHTML</code> property of element objects
- * if no arguments are provided or if a {@link Node}
- * argument is provided.
- *
- * @param context : Node|String
- * Reference to the context node or a text string to be
- * syntax-highlighted. The default is the <code>document</code>
- * node.
- * @return string
- * @see jsx.object#isMethod()
- */
-var synhl = (function () {
- var
- jsx_debug = jsx.debug,
- jsx_object = jsx.object,
- _isMethod = jsx_object.isMethod,
- _getFeature = jsx_object.getFeature,
- reservedWords = [
- /* ES5 keywords */
- "break", "case", "catch", "continue", "debugger", "default", "delete",
- "do", "else", "finally", "for( +each)?", "function", "if", "in",
- "instanceof", "new", "return", "switch", "this", "throw", "try",
- "typeof", "var", "void", "while", "with",
-
- /* ES5 future reserved words */
- "class", "const", "enum", "export", "extends", "super",
-
- /* ES5 future reserved words in strict mode */
- "implements", "interface", "let", "package", "private", "protected",
- "public", "static", "yield",
-
- /* ES5 special words not specified as reserved */
- "get", "set", "null", "true", "false", "undefined",
-
- /* ES4 additional keywords */
- "abstract", "final", "import", "internal",
-
- /* ES4 additional data types */
- "boolean", "byte", "char", "decimal", "double", "float", "int",
- "long", "sbyte", "short",
-
- /* JScript keywords */
- "expando", "hide", "override", "endif"
- ],
-
- identifiers = [
- "(encode|decode)URI(Component)?", "undefined",
- "Object", "prototype", "__defineGetter__", "__defineSetter__",
- "__iterator__", "__proto__", "constructor", "hasOwnProperty",
- "isPrototypeOf", "propertyIsEnumerable",
- "Array", "concat", "every", "indexOf", "join", "length", "pop", "push",
- "reverse", "shift", "slice", "some", "sort", "splice", "unshift",
- "Boolean",
- "Date", "getFullYear", "getMilliseconds", "getUTCDate", "getUTCDay",
- "getUTCFullYear", "getUTCHours", "getUTCMilliseconds", "getUTCMinutes",
- "getUTCMonth", "getUTCSeconds", "getVarDate", "setFullYear",
- "setMilliseconds", "setUTCDate", "setUTCDay", "setUTCFullYear",
- "setUTCHours", "setUTCMilliseconds", "setUTCMinutes", "setUTCMonth",
- "setUTCSeconds",
- "Function", "arguments", "arity", "apply", "call", "callee", "caller",
- "toSource",
- "Math", "max", "min",
- "Number", "MAX_VALUE", "MIN_VALUE", "NEGATIVE_INFINITY",
- "POSITIVE_INFINITY",
- "Error", "description", "message", "name", "number", "stack",
- "RegExp", "compile", "exec", "global", "ignoreCase", "index",
- "multiline", "source",
- "String",
- "close", "next", "send",
- "Iterator",
- "ActiveXObject", "Enumerator", "GetObject", "isFinite", "print",
- "VBArray",
- "XMLHttpRequest",
- "document", "write",
- "window", "clearInterval", "clearTimeout", "setInterval", "setTimeout"
- ],
-
- bUnicode = ("\uFFFD".length == 1),
-
- sElementType = (
- "[:\\w[UNICODE_START]]"
- + "[:\\w[UNICODE_START].\\d[UNICODE_NAME]-]*"
- )
- .replace(
- /\[UNICODE_START\]/g,
- bUnicode
- ? "\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D"
- + "\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF"
- + "\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD"
- : "")
- .replace(
- /\[UNICODE_NAME\]/,
- bUnicode ? "\u00B7\u0300-\u036F\u203F-\u2040" : ""),
-
- sOptAttr = "(\\s+[^>]+|)",
-
- rxCode = new RegExp(
- "(//.*|/\\*([^*/]|\\*[^/]|/)*\\*/)"
- + "|(&lt;/?script(.|\\r?\\n|\\r)*?&gt;|^script$)"
- + "|(^|[^<])(/(</[^>]*>|[^/\\\\\\[]|\\\\.|\\[[^\\]]*\\])+/)"
- + "|</?" + sElementType + sOptAttr + ">"
- + "|(&lt;/?" + sElementType + sOptAttr + "&gt;)"
- + "|('([^'\\\\]|\\\\.)*'" + '|"([^"\\\\]|\\\\.)*")'
- + "|(&amp;#?[0-9A-Za-z]+;)|&#?[0-9A-Za-z]+;"
- + "|([\\{\\}]|\\b(" + reservedWords.join("|") + ")\\b(?!>))"
- + "|\\b(" + identifiers.join("|") + ")\\b"
- + "|([.:\\[\\]\\(\\),;])"
- + "|\\b(0x[0-9A-Fa-f]+|[0-9]+|Infinity|NaN)\\b",
- "g"),
-
- aReplace = jsx.debug.synhlMatches,
-
- fReplace = (function () {
- var len = aReplace.length;
-
- return function (match) {
- for (var i = 0; i < len; ++i)
- {
- var r = aReplace[i];
-
- if (arguments[r[0]])
- {
- return '<span class="' + r[1] + '">' + match + '<\/span>';
- }
- }
-
- return match;
- };
- }());
-
-// /**
-// * @param node : Node
-// * @param needle : string
-// * @param replacement : string
-// */
-// var recursiveReplace = function (node, needle, replacement) {
-// if (node.nodeType == Node.ELEMENT_NODE)
-// {
-// for (var i = 0, cs = node.childNodes, len = cs.length; i < len; i++)
-// {
-// arguments.callee(cs[i], needle, replacement);
-// }
-// }
-// else if (node.nodeType == Node.TEXT_NODE)
-// {
-// var v = node.nodeValue;
-// var m = v.match(needle);
-// if (m)
-// {
-// var mLength = m[0].length;
-// var prefix = document.createTextNode(v.substring(0, m.index));
-// var suffix = document.createTextNode(v.slice(m.index + mLength));
-// var infix = document.createTextNode(v.slice(m.index, mLength));
-// var span = document.createElement("span");
-// span.style.color = "red";
-// span.appendChild(infix);
-// var parentNode = node.parentNode;
-// var nextSibling = node.nextSibling;
-// parentNode.removeChild(node);
-// parentNode.insertBefore(suffix, nextSibling);
-// parentNode.insertBefore(span, suffix);
-// parentNode.insertBefore(prefix, span);
-// }
-// }
-// };
-
- return function (context) {
- if (jsx_debug.enabled && _isMethod("console", "profile"))
- {
- console.profile("synhl()");
- }
-
- if (_isMethod(context, "valueOf")
- && typeof context.valueOf() == "string")
- {
- var passedCode = context;
- context = {
- getElementsByTagName: function () {
- return [{innerHTML: passedCode}];
- }
- };
- }
- else if (!context)
- {
- context = document;
- }
-
- var jsx_xpath = _getFeature(jsx, "dom", "xpath");
- if (jsx.object.isNativeMethod(jsx_xpath, "evaluate"))
- {
- var collCode = jsx_xpath.evaluate(
- '//code[not(contains(concat(" ", @class, " "), " donthl "))]',
- context);
- }
-
- var useXPath = false;
- if ((collCode && (useXPath = true)
- || (_isMethod(context, "getElementsByTagName")
- && (collCode = context.getElementsByTagName('code'))))
- && collCode.length)
- {
- var sNew;
-
- for (var i = collCode.length; i--;)
- {
- var o = collCode[i];
- if (useXPath || !/(^\s*|\s+)donthl(\s*$|\s+)/.test(o.className))
- {
- if (typeof o.innerHTML != "undefined")
- {
- var s = o.innerHTML;
- jsx.tryThis(
- function () {
- o.innerHTML = sNew = s.replace(rxCode, fReplace);
- },
- function () {
- sNew = s;
- });
- }
- else
- {
- // recursiveReplace(o, ...)
- }
- }
- }
- }
-
- if (jsx_debug.enabled && _isMethod("console", "profileEnd"))
- {
- console.profileEnd();
- }
-
- return sNew;
- };
-}());
-
-/**
- * Returns a string or the HTML content of a {@link Node}
- * with all syntax highlighting removed that was added
- * with <code>synhl</code> before.
- *
- * Requires support for the (currently proprietary)
- * <code>innerHTML</code> property of element objects
- * if no arguments are provided or if a {@link Node}
- * argument is provided. Unlike {@link #synhl}, the
- * content of elements is <em>not</em> modified.
- *
- * @param context : Node|String
- * Reference to the context node or a text string that
- * contains syntax highlighting. The default is the
- * <code>document</code> node.
- * @return string
- * @see jsx.object#isMethod()
- */
-var unsynhl = (function () {
- var _jsx = jsx;
- var _tryThis = _jsx.tryThis;
- var _jsx_object = _jsx.object;
- var _isMethod = _jsx_object.isMethod;
- var _getFeature = _jsx_object.getFeature;
- var _jsx_debug = _jsx.debug;
-
- var synhlClasses = _jsx.array.map(
- _jsx_debug.synhlMatches, function (e) { return e[1]; });
- var rxSynhlClasses = new RegExp(
- '<span class="(' + synhlClasses.join("|") + ')">([^<]+)</span>', 'g');
-
- return function (context) {
- if (_jsx_debug.enabled && _isMethod("console", "profile"))
- {
- console.profile("unsynhl()");
- }
-
- if (_isMethod(context, "valueOf")
- && typeof context.valueOf() == "string")
- {
- var passedCode = context;
- context = {
- getElementsByTagName: function () {
- return [{innerHTML: passedCode}];
- }
- };
- }
- else if (!context)
- {
- context = document;
- }
-
- var jsx_xpath = _getFeature(_jsx, "dom", "xpath");
- if (_jsx_object.isNativeMethod(jsx_xpath, "evaluate"))
- {
- var collCode = jsx_xpath.evaluate(
- '//code[not(contains(concat(" ", @class, " "), " donthl "))]',
- context);
- }
-
- var useXPath = false;
- if ((collCode && (useXPath = true)
- || (_isMethod(context, "getElementsByTagName")
- && (collCode = context.getElementsByTagName('code'))))
- && collCode.length)
- {
- var sNew;
-
- for (var i = collCode.length; i--;)
- {
- var o = collCode[i];
- if (useXPath || !/(^\s*|\s+)donthl(\s*$|\s+)/.test(o.className))
- {
- if (typeof o.innerHTML != "undefined")
- {
- var s = o.innerHTML;
- _tryThis(
- function () {
- sNew = s.replace(rxSynhlClasses, "$2");
- },
- function () {
- sNew = s;
- });
- }
- else
- {
- // recursiveReplace(o, ...)
- }
- }
- }
- }
-
- if (_jsx_debug.enabled && _isMethod("console", "profileEnd"))
- {
- console.profileEnd();
- }
-
- return sNew;
- };
-}());
-
-/**
- * Stores references to objects in an array
- * to be used for the Property constructor.
- *
- * @param aOwners : optional [Object...]
- * Array of the owner references to store. The
- * default is an array with <code>null</code> as
- * sole element.
- * @property items : Array
- */
-function Owners(aOwners)
-{
- this.items = aOwners || new Array(null);
-}
-
-/**
- * Retrieves type of the object or property specified by the
- * string <code>sName</code> and its value <code>sValue</code>
- * and stores that information in an object. You may optionally
- * provide an identifier for the property with <code>iID</code>
- * and an array of references to the owner objects with
- * <code>aoOwners</code>.
- * <p>
- * If you provide the latter, the constructor function will
- * utilize <code>inArray()</code>, trying to determine if the
- * object/property references one of owners
- * (<code>referencesOwners</code>; <code>false</code> if
- * <code>aoOwners</code> is not provided) and how many properties
- * the object/property has itself (<code>hasProperties</code>;
- * <code>false</code> if <code>aoOwners</code> is not
- * provided or if detection fails.) TODO: This is now
- * achieved through creating a new <code>ObjectInfo</code> object
- * from either <code>aoOwners[aoOwners.length-1][sName]</code>
- * or <code>aoOwners[sName]</code>. In order to avoid
- * infinite recursion when the Property(...) constructor is
- * called within ObjectInfo(...), it passes its fourth argument
- * <code>bCalledFromObjectInfo</code> as fifth one to
- * ObjectInfo(...) if present (<code>true</code> otherwise),
- * while ObjectInfo(...) passes its fifth argument
- * (<code>bCalledFromProperty</code>) as fourth to it. (Previous
- * versions did not call ObjectInfo(...) and thus did not allow
- * to count non-enumerable properties of a property; it seemed
- * ineffective to copypaste the ObjectInfo(...) code into this
- * constructor, thus the cross-calling.)
- * </p><p>
- * For reasons of backwards compatibility the object also provides
- * the `referencesOwner' property to specify if it references
- * its direct owner and allows for passing an object reference
- * for <code>aoOwners</code> beside of an Owners object to
- * specify that owner object. To determine if
- * <code>aoOwners</code> is an Owners object or not, the
- * <code>isInstanceOf()</code> method is required.
- * </p>
- * @param sName : string
- * Name of the property.
- * @param sValue
- * Value of the property.
- * @param iID : optional number
- * (Unique) ID of the property.
- * @param aoOwners : optional Owners|Object
- * Reference to an Owners object storing references to the
- * owner (object) of the property and its owners, where the
- * last element references the direct owner. Allows also
- * for a reference to a non-Owners object to specify only
- * the direct owner.
- * @param bNonEnum : optional boolean
- * <code>true</code> specifies that the property is
- * non-enumerable. Optional. The default <code>false</code>
- * determines the property to be enumerable.
- * @param bCalledFromObjectInfo : optional boolean
- * @see jsx.types#isArray
- * @see jsx.array#inArray
- */
-function Property(sName, sValue, iID, aoOwners, bNonEnum,
- bCalledFromObjectInfo)
-{
- this.id = iID;
- this.name = sName;
- this.type = typeof sValue;
- this.value = sValue;
- this.referencesOwner = false;
- this.referencesOwners = false;
- this.propertyCount = 0;
- this.hasProperties = false;
- this.enumerable = !bNonEnum;
-
- var oOwner = null;
- if (isInstanceOf(aoOwners, Owners))
- {
- this.owner = aoOwners.items[aoOwners.items.length - 1];
- }
- else
- {
- this.owner = aoOwners;
- }
-
- setErrorHandler();
-
- eval(new Array(
- 'try { /* for IE */',
- ' if (typeof this.owner != "undefined"',
- ' && typeof this.owner[sName] != "undefined")',
- ' {',
- ' setErrorHandler();',
- ' if (isInstanceOf(this.owner, Owners)) {',
- ' this.referencesOwners =',
- ' inArray(this.owner[sName], aoOwners.items);',
- ' } else {',
- ' this.referencesOwner = (this.owner[sName] == this.owner);',
- ' }',
-/*
- ' if (!bCalledFromObjectInfo)',
- ' {',
- ' var propertyInfo = new ObjectInfo(this.owner[sName], sName, false, true);',
- ' this.hasProperties = propertyInfo.hasProperties;',
- ' }',
-*/
- ' try { /* for IE */',
- ' if (!(sName == "toString" /* for IE6 SP-1 */',
- ' || (this.owner == location &&',
- ' inArray(sName, ["assign", "reload", "replace"]))))',
- ' {',
- ' for (var p in this.owner[sName]) {',
- ' this.propertyCount++;',
- ' }',
- ' }',
- ' } catch (e) {',
-
-/*
- ' alert(sName + "\n"',
- ' + "for (var p in this.owner[sName])\n\n"',
- ' + getError(e));',
-*/
-
- ' try { /* for IE */',
- ' this.propertyCount = this.owner[sName].length;',
- ' } catch (e) {',
-
-/*
- ' alert(sName + "\n"',
- ' + "for (var j = 0; i < this.owner[sName].length; j++)"',
- ' + getError(e));',
-*/
-
- ' }',
- ' }',
- ' }',
- '} catch (e) {',
- '}').join("\n"));
-
- clearErrorHandler();
-
- this.hasProperties = (this.propertyCount > 0);
-}
-
-/**
- * @param a : optional Array
- */
-function PropertyArray(a)
-{
-/**
- * Note that the <code>properties</code> extended
- * <code>Array</code> object defines properties for
- * both sort order and sort direction which can be
- * recognized by their identifier's prefix. These
- * are:
- */
- /* default */
- this.soNone = -1;
- this.soByID = this.soNone;
- this.soByName = 0;
- this.soByType = 1;
- this.soByValue = 2;
- this.sdNone = 0;
- this.sdAscending = 1;
- this.sdDescending = -1;
- /**
- * The current sort order and direction is stored in the
- * `sortOrder' and `sortDir' properties of the `properties'
- * extended Array object.
- *
- * For the sort direction constants are the negative opposite
- * of each other, you may toggle the sort direction easily:
- *
- * var p = bar.properties;
- * p.sortBy(p.sortOrder, -p.sortDir);
- *
- * If `sortDir' was `0' (zero) before and therefore the
- * properties were unsorted (i.e. sorted by ID), the array
- * will then be sorted ascending by the current criteria.
- */
- this.sortOrder = this.soNone;
- this.sortDir = this.sdNone;
- this.items = a || new Array();
- this.length =
- (typeof this.items.length == "number"
- ? this.items.length
- : 0);
-}
-
-/**
- * Adds the property to the property array.
- *
- * @param oProperty : Property
- * @return number|Property
- * (implementation-dependent) Either the number of properties added so far,
- * or the last <code>Property</code> added
- */
-PropertyArray.prototype.push = function (oProperty) {
- return this.items.push(oProperty);
-};
-
-/**
- * With a reference to an ObjectInfo object having a valid
- * `target' reference, you may sort the property array by
- * properties of the Property prototype:
- *
- * if (bar && bar.properties)
- * {
- * bar.properties.unsort();
- * bar.properties.sortById(...);
- * bar.properties.sortByName(...);
- * bar.properties.sortByType(...);
- * bar.properties.sortByValue(...);
- * }
- *
- * Except for the unsort() method, each specific sort method
- * takes an optional argument, specifying the sort direction
- * (ascending or descending.) If the argument is left out,
- * the properties are sorted in ascending direction by the
- * selected criteria. unsort() sorts the properties as if
- * they were retrieved with a `for (property in object)' loop
- * and is therefore identical to sortById() or
- * sortById(sdAscending).
- */
-/* Specific sort methods */
-/** @type Comparator */
-PropertyArray.prototype.cmpSortByIdAsc = function (a, b) {
- return a.id - b.id;
-};
-
-/** @type Comparator */
-PropertyArray.prototype.cmpSortByIdDesc = function (a, b) {
- return b.id - a.id;
-};
-
-/**
- * @param iDir : number
- */
-PropertyArray.prototype.sortById = function (iDir) {
- if (iDir && iDir < 0)
- {
- this.items.sort(this.cmpSortByIdDesc);
- }
- else
- {
- this.items.sort(this.cmpSortByIdAsc);
- }
-
- this.sortOrder = this.soById;
- this.sortDir = iDir ? iDir : this.sdAscending;
-};
-
-PropertyArray.prototype.unsort =
- PropertyArray.prototype.sortById;
-
-/**
- * @param a : Property
- * @param b : Property
- * @type Comparator
- * @return number
- * -1 if the name of <var>a</var> is to be sorted before the name of
- * <var>b</var>; 1 if vice-versa; 0 if the existing order should be kept.
- */
-PropertyArray.prototype.cmpSortByNameAsc = function (a, b) {
- if (a && b)
- {
- if (a.name < b.name)
- {
- return -1;
- }
- else if (a.name > b.name)
- {
- return 1;
- }
- }
-
- return 0;
-};
-
-/**
- * @param a : Property
- * @param b : Property
- * @type Comparator
- * @return number
- * -1 if the name of <var>a</var> is to be sorted before the name of
- * <var>b</var>; 1 if vice-versa; 0 if the existing order should be kept.
- */
-PropertyArray.prototype.cmpSortByNameDesc = function (a, b) {
- if (a && b)
-
- {
- if (a.name > b.name)
- {
- return -1;
- }
- else if (a.name < b.name)
- {
- return 1;
- }
- }
-
- return 0;
-};
-
-/**
- * @param iDir : number
- */
-PropertyArray.prototype.sortByName = function (iDir) {
- if (iDir && iDir < 0)
- {
- this.items.sort(this.cmpSortByNameDesc);
- }
- else
- {
- this.items.sort(this.cmpSortByNameAsc);
- }
-
- this.sortOrder = this.soByName;
- this.sortDir = iDir ? iDir : this.sdAscending;
-};
-
-/**
- * @param a : Property
- * @param b : Property
- * @type Comparator
- * @return number
- * -1 if the name of <var>a</var> is to be sorted before the name of
- * <var>b</var>; 1 if vice-versa; 0 if the existing order should be kept.
- */
-PropertyArray.prototype.cmpSortByTypeAsc = function (a, b) {
- if (a && b)
- {
- if (a.type < b.type)
- {
- return -1;
- }
- else if (a.type > b.type)
- {
- return 1;
- }
- }
-
- return 0;
-};
-
-/**
- * @param a : Property
- * @param b : Property
- * @type Comparator
- * @return number
- * -1 if the name of <var>a</var> is to be sorted before the name of
- * <var>b</var>; 1 if vice-versa; 0 if the existing order should be kept.
- */
-PropertyArray.prototype.cmpSortByTypeDesc = function (a, b) {
- if (a && b)
- {
- if (a.type > b.type)
- {
- return -1;
- }
- else if (a.type < b.type)
- {
- return 1;
- }
- }
-
- return 0;
-};
-
-/**
- * @param iDir : number
- */
-PropertyArray.prototype.sortByType = function (iDir) {
- if (iDir && iDir < 0)
- {
- this.items.sort(this.cmpSortByTypeDesc);
- }
- else
- {
- this.items.sort(this.cmpSortByTypeAsc);
- }
-
- this.sortOrder = this.soByType;
- this.sortDir = iDir ? iDir : this.sdAscending;
-};
-
-/**
- * @param a : Property
- * @param b : Property
- * @type Comparator
- * @return number
- * -1 if the name of <var>a</var> is to be sorted before the name of
- * <var>b</var>; 1 if vice-versa; 0 if the existing order should be kept.
- */
-PropertyArray.prototype.cmpSortByValueAsc = function (a, b) {
- if (a && b)
- {
- if (a.value < b.value)
- {
- return -1;
- }
- else if (a.value > b.value)
- {
- return 1;
- }
- }
-
- return 0;
-};
-
-/**
- * @param a : Property
- * @param b : Property
- * @type Comparator
- * @return number
- * -1 if the name of <var>a</var> is to be sorted before the name of
- * <var>b</var>; 1 if vice-versa; 0 if the existing order should be kept.
- */
-PropertyArray.prototype.cmpSortByValueDesc = function (a, b) {
- if (a && b)
- {
- if (a.value > b.value)
- {
- return -1;
- }
- else if (a.value < b.value)
- {
- return 1;
- }
- }
-
- return 0;
-};
-
-/**
- * @param iDir : number
- */
-PropertyArray.prototype.sortByValue = function (iDir) {
- if (iDir && iDir < 0)
- {
- this.items.sort(this.cmpSortByValueDesc);
- }
- else
- {
- this.items.sort(this.cmpSortByValueAsc);
- }
-
- this.sortOrder = this.soByValue;
- this.sortDir = iDir ? iDir : this.sdAscending;
-};
-
-///**
-// * `properties' also defines a general method for sorting
-// * the array, sortBy(...), which calls the other specific
-// * sort methods. This method takes up to two optional
-// * arguments, the first defining the sort criteria, the
-// * second the sort direction. You are recommended to use
-// * the sort order and direction constants for arguments:
-// *
-// * var p = bar.properties;
-// * p.sortBy(p.soByName, p.sdDescending);
-// *
-// * If the second argument is not provided, `sdAscending' is
-// * assumed. Leaving the first argument out or providing an
-// * invalid value causes no error, but the array not to be
-// * re-sorted.
-// *
-// * @param iSortOrder : optional number
-// * Sort order.
-// * @param iSortDir : optional number
-// * Sort direction.
-// */
-//PropertyArray.prototype.sortBy =
-//function (iSortOrder, iSortDir)
-//{
-// switch (iSortOrder)
-// {
-// case this.soNone:
-// case this.soByID:
-// this.sortById(iSortDir);
-// break;
-//
-// case this.soByName:
-// this.sortByName(iSortDir);
-// break;
-//
-// case this.soByType:
-// this.sortByType(iSortDir);
-// break;
-//
-// case this.soByValue:
-// this.sortByValue(iSortDir);
-// }
-//};
-
-/**
- * @param sName : string
- * @param sValue : _
- * @param iID : optional number
- * @param oOwner : optional Object
- * @param bNonEnum : optional boolean
- * @param bCalledFromProperty : optional boolean
- */
-PropertyArray.prototype.addProperty =
-function (
- sName, sValue, iID, oOwner, bNonEnum, bCalledFromProperty)
-{
- /* avoid dupes */
- if ((typeof this.items.hasOwnProperty == "function"
- /* IE does not allow reference shortcut here! */
- && this.items.hasOwnProperty != null
- && !this.items.hasOwnProperty(sName))
- || (!isMethodType(typeof this.items.hasOwnProperty)
- && typeof this.items[sName] == "undefined"))
- {
- this.items[this.items.length] =
- new Property(
- sName,
- sValue,
- iID,
- oOwner,
- bNonEnum,
- bCalledFromProperty); /* avoid infinite recursion */
-
- /* BUGFIX: Don't overwrite numeric properties */
- var bMethod = (typeof this.items.hasOwnProperty == "function");
- if ((bMethod && !this.items.hasOwnProperty(sName))
- || (!bMethod && typeof this.items[sName] == "undefined"))
- {
- this.items[sName] = sValue;
- }
-
- this.length = this.items.length;
- }
-};
-
-/**
- * @param rxPattern : RegExp
- * @param asPropertyNames : [string]
- * @param sType : optional string
- * @param fConstructor : optional Object
- */
-function NonEnumProperties(rxPattern, asPropertyNames, sType, fConstructor)
-{
- this.pattern = rxPattern || new RegExp(".");
- this.names = asPropertyNames || new Array();
- this.type = sType || "";
- this.fConstructor = fConstructor || null;
-}
-
-/**
- * Retrieves all properties of an object and stores them
- * in the `properties' array property. That array can be
- * sorted by the properties <code>id</code> (by declaration),
- * <code>name</code>, <code>type</code> and <code>value</code>
- * of the <code>Property</code> prototype. [See the sort
- * methods defined in the <code>forObject(...)</code> method.]
- *
- * Requires JavaScript 1.5+ for inline <code>function</code>
- * statement (1.2+) and <code>try...catch</code> statement (1.5+).
- *
- * Usage:
- *
- * <code>var foo = new ObjectInfo(myObject, sMyObjectName);</code>
- *
- * whereas <code>foo</code> is then a reference to the
- * <code>ObjectInfo</code> object containing property
- * information about the object referenced by
- * <code>myObject</code> or the object evaluated from
- * it (so that the argument can be a string, therefore
- * <code><strong>s</strong>Object</code>.)
- *
- * The <code>foo.name</code> property contains the name of the
- * string to be evaluated to an object. However, if you pass a
- * reference for first argument or want to fake the object's
- * name for some reason, you may pass a string for the second
- * argument in order to overwrite the default (see below.)
- *
- * Note that it is also tried to retrieve known but non-enumerable
- * properties if either <code>sObject</code> is a string or
- * <code>sName</code> is a string, matching either value against a
- * set of known object/property identifiers. If you fake the
- * object's name in <code>sName</code>, only enumerable properties
- * can be retrieved.
- *
- * If <code>myObject</code> cannot be evaluated to an object,
- * the resulting <code>ObjectInfo</code> object's
- * <code>target</code> property ist <code>null</code>:
- *
- * <code>
- * if (! foo.target)
- * alert("Not an object!");
- * </code>
- *
- * Otherwise, <code>foo.target</code> is a reference to the
- * object which properties are accessed by <code>foo</code>:
- *
- * <code>
- * if (foo && foo.target && foo.target == anyOtherObject)
- * alert("anyOtherObject references myObject.");
- * </code>
- *
- * @param sObject : string|Object
- * Reference to an object or property, or string to be evaluated
- * to an object or a property.
- * (TODO: Throws NotAnObjectException if not provided or cannot
- * be evaluated.)
- * @param sName : optional string
- * Name of the object/property.
- * If this argument is not provided, the value of the
- * <code>name</code> property depends on <code>sObject</code>.
- * If the latter is a reference, the default is `_odo', otherwise
- * the default is the value of <code>sObject</code>.
- * @param bCalledFromProperty : optional boolean
- */
-function ObjectInfo(sObject, sName, bCalledFromProperty)
-{
- this.forObject(sObject, sName, bCalledFromProperty);
-}
-
-/**
- * Once you have a reference to an <code>ObjectInfo</code>
- * object, you may use this method to access another object's
- * properties while the property information of the former
- * <code>ObjectInfo</code> object will be overwritten:
- *
- * <code>
- * if (foo)
- * foo.forObject(myOtherObject);
- * </code>
- *
- * The <code>forObject(...)</code> method returns
- * <code>null</code> as well if <code>myOtherObject</code>
- * cannot be evaluated to an object, otherwise a reference
- * to the <code>ObjectInfo</code> object. In the first case
- * the properties of the former <code>ObjectInfo</code> object
- * are preserved:
- *
- * <code>
- * var myObject = new Something(...);
- * ...
- * var foo = new ObjectInfo(myObject);
- * if (foo)
- * {
- * var myOtherObject = new SomethingElse(...);
- * ...
- * var bar = foo.forObject(myOtherObject);
- * if (! bar)
- * alert("myOtherObject is not an object!");
- * else
- * alert(foo.toString());
- * }
- * </code>
- *
- * @param sObject: string|Object
- * See contract of this()
- * @param sName: optional string
- * See contract of this()
- * @param bCalledFromProperty: optional boolean
- * @property name: string
- * @property properties: PropertyArray
- * @property target: object
- * @property type: string
- */
-ObjectInfo.prototype.aStringProperties = [
- "length", "anchor", "big", "blink", "bold", "charAt", "charCodeAt",
- "concat", "fixed", "fontcolor", "fontsize", "fromCharCode",
- "indexOf", "italics", "localeCompare", "lastIndexOf", "link",
- "match", "replace", "search", "slice", "small", "split", "strike",
- "sub", "substr", "substring", "sup", "toLowerCase",
- "toLocaleLowerCase", "toUpperCase", "toLocaleUpperCase"
-];
-
-jsx.object.extend(ObjectInfo.prototype, {
- aNonEnumProperties: [
- new NonEnumProperties(
- new RegExp("^\\w"), /* any object */
- [
- "NaN", "Infinity", "__proto__", "eval", "prototype", "toSource",
- "unwatch", "watch", "undefined", "constructor", "toString",
- "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf",
- "propertyIsEnumerable",
- "__defineGetter__", "__defineSetter__",
- "all"
- ],
- 'object',
- Object),
- new NonEnumProperties(
- /jsx\.global/, /* global object */
- [
- "NaN", "Infinity", "length", "undefined",
- "parseInt", "parseFloat", "isNaN", "isFinite",
- "decodeURI", "decodeURIComponent", "encodeURI",
- "encodeURIComponent",
- "Object", "Function", "Array", "String", "Boolean",
- "Number", "Date", "RegExp", "Error", "EvalError",
- "RangeError", "ReferenceError", "SyntaxError",
- "TypeError", "URIError",
- "Math",
- "Components", "sidebar"
- ]),
- new NonEnumProperties(
- new RegExp("(^|\\.)Array(\\.prototype)?$"),
- [
- "every", "filter", "forEach", "index", "indexOf", "input",
- "lastIndexOf", "length", "map", "concat", "join", "pop",
- "push", "reverse", "shift", "slice", "splice", "some",
- "sort", "unshift"
- ],
- '',
- typeof Array != "undefined" ? Array : null),
- new NonEnumProperties(
- new RegExp("(^|\\.)Date(\\.prototype)?$"),
- [
- "getDate", "getDay", "getFullYear", "getHours", "getMilliseconds",
- "getMinutes", "getMonth", "getSeconds", "getTime",
- "getTimezoneOffset", "getUTCDate", "getUTCDay", "getUTCFullYear",
- "getUTCHours", "getUTCMilliseconds", "getUTCMinutes",
- "getUTCMonth", "getUTCSeconds", "getYear",
- "parse", "setDate",
- "setFullYear", "setHours", "setMilliseconds", "setMinutes",
- "setMonth", "setSeconds", "setTime", "setUTCDate", "setUTCFullYear",
- "setUTCHours", "setUTCMilliseconds", "setUTCMinutes", "setUTCMonth",
- "setUTCSeconds", "setYear",
- "toDateString", "toGMTString", "toLocaleString", "toTimeString",
- "toLocaleString", "toLocaleDateString", "toLocaleTimeString",
- "toUTCString", "UTC"
- ],
- '',
- typeof Date != "undefined" ? Date : null),
- new NonEnumProperties(
- new RegExp("(^|\\.)Function(\\.prototype)?$"),
- [
- "arguments", "arguments.callee", "arguments.caller",
- "arguments.length", "arity", "length", "apply", "call"
- ],
- 'function',
- typeof Function != "undefined" ? Function : null),
- new NonEnumProperties(
- new RegExp("(^|\\.)Math$"),
- ["E", "LN2", "LN10", "LOG2E", "LOG10E", "PI", "SQRT1_2", "SQRT2",
- "abs", "acos", "asin", "atan", "atan2", "ceil", "cos", "exp",
- "floor", "log", "max", "min", "pow", "random", "round", "sin",
- "sqrt", "tan"]),
- new NonEnumProperties(
- new RegExp("(^|\\.)Number(\\.prototype)?$"),
- ["MAX_VALUE", "MIN_VALUE", "NaN", "NEGATIVE_INFINITY",
- "POSITIVE_INFINITY", "toExponential", "toFixed", "toPrecision"],
- 'number',
- typeof Number != "undefined" ? Number : null),
- new NonEnumProperties(
- new RegExp("(^|\\.)RegExp(\\.prototype)?$"),
- [
- "global", "ignoreCase", "lastIndex", "multiline",
- "source", "exec", "test"
- ],
- '',
- typeof RegExp != "undefined" ? RegExp : null),
- new NonEnumProperties(
- new RegExp("(^|\\.)String(\\.prototype)?$"),
- ObjectInfo.prototype.aStringProperties,
- 'string',
- typeof String != "undefined" ? String : null),
- new NonEnumProperties(
- new RegExp("Error(\\.prototype)?$"),
- ["message", "name"]),
- new NonEnumProperties(
- new RegExp("(^|\\.)Packages(\\.prototype)?$"),
- ["className", "java", "netscape", "sun"]),
- new NonEnumProperties(
- new RegExp("(^|\\.)location$", "i"),
- [
- "assign", "hash", "host", "hostname", "href", "pathname",
- "port", "protocol", "reload", "replace", "search"
- ].concat(ObjectInfo.prototype.aStringProperties)),
- new NonEnumProperties(
- new RegExp("(^|\\.)history$"),
- [
- 'current', 'length', 'next', 'previous',
- 'back', 'forward', 'go'
- ]),
- new NonEnumProperties(
- new RegExp("(^|\\.)screen$"),
- [
- "availHeight", "availLeft", "availTop", "availWidth", "colorDepth",
- "height", "left", "pixelDepth", "top", "width"
- ]),
- /* LiveConnect -- Java System Library classes as of version 1.4.2_03 */
- new NonEnumProperties(
- new RegExp("(^|\\.)java$"),
- [
- "awt", "beans", "io", "lang", "math", "net", "nio", "rmi",
- "security", "sql", "text", "util"
- ]),
- new NonEnumProperties(
- new RegExp("(^|\\.)java\\.awt$"),
- [
- "color", "datatransfer", "dnd", "event", "font", "geom", "im",
- "image", "peer", "print",
- "ActiveEvent", "Adjustable", "AlphaComposite", "AttributeValue",
- "AWTError", "AWTEvent", "AWTEventMulticaster", "AWTException",
- "AWTKeyStroke", "AWTPermission", "BasicStroke", "BorderLayout",
- "Frame"
- ]),
- new NonEnumProperties(
- new RegExp("(^|\\.)java\\.lang$"),
- ["System"]),
- new NonEnumProperties(
- new RegExp("^StyleSheet(\\.prototype)?$"),
- [
- "type", "disabled", "ownerNode", "parentStyleSheet", "href",
- "title", "media"
- ],
- '',
- typeof StyleSheet != "undefined" ? StyleSheet : null),
- new NonEnumProperties(
- new RegExp("(^|\\.)StyleSheetList(\\.prototype)?$"),
- ["length", "item"],
- '',
- typeof StyleSheetList != "undefined" ? StyleSheetList : null),
- new NonEnumProperties(
- new RegExp("(^|\\.)LinkStyle(\\.prototype)?$"),
- ["sheet"],
- '',
- typeof LinkStyle != "undefined" ? LinkStyle : null),
- new NonEnumProperties(
- new RegExp("(^|\\.)DocumentStyle(\\.prototype)?$"),
- ["styleSheets"],
- '',
- typeof DocumentStyle != "undefined" ? DocumentStyle : null)
- ],
-
- /**
- * @param sObject : Object
- * @param sName : string
- * @param bCalledFromProperty : boolean
- * @return ObjectInfo
- */
- forObject: function (sObject, sName, bCalledFromProperty) {
- this.name =
- (typeof sObject == "string"
- ? sObject
- : (sName ? sName : "_odo"));
-
- this.properties = new PropertyArray();
-
- if (typeof sObject == "string")
- {
- var tc = false;
- setErrorHandler();
- eval(new Array(
- 'try {',
- ' tc = true;',
- ' this.target = eval(dotsToBrackets(sObject, true));',
- '} catch (e) {',
- ' try {',
- ' this.target = eval(dotsToBrackets(sObject));',
- ' } catch (e) {',
- ' try {',
- ' this.target = jsx.global["' + sObject + '"];',
- ' } catch (e) {',
- ' this.target = null;',
- ' }',
- ' }',
- '}').join("\n"));
- window.onerror = null;
- if (! tc)
- {
- this.target = null;
- }
- }
- else
- {
- this.target = sObject;
- }
-
- if (this.target)
- {
- this.type = typeof this.target;
- var ti, t, i;
-
- /* Retrieve enumerable properties */
- for (i in this.target)
- {
- /* Fixes problem with document.config (Mozilla 1.5b) */
- ti = "";
- t = null;
- setErrorHandler();
- eval(new Array(
- 'try {',
- ' ti = this.target[i];',
- ' t = this.target;',
- '} catch (e) {',
- ' ti = null;',
- ' t = null;',
- '}').join("\n"));
- clearErrorHandler();
-
- /* avoid dupes */
- this.properties.addProperty(
- i, /* name */
- ti, /* value */
- this.properties.length, /* ID */
- t, /* owner reference */
- bCalledFromProperty); /* avoid infinity recursion */
- }
-
- /* Retrieve non-enumerable properties by guessing them */
- /** @property boolean */ this.hasNonEnumProperties = false;
-
- for (i = this.aNonEnumProperties.length; i--; 0)
- {
- var j = this.aNonEnumProperties[i];
- if (j.pattern.test(this.name)
- || typeof this.target == j.type
- || (typeof this.target.constructor != "undefined"
- && this.target.constructor == j.fConstructor))
- {
- for (var k = j.names.length; k--; 0)
- {
- var p = undefined;
- eval(new Array(
- 'try {',
- ' if (typeof this.target[j.names[k]] != "undefined") {',
- ' p = this.target[j.names[k]];',
- ' }',
- '} catch (e) {',
- '}').join("\n"));
-
- /* see object.js */
- if (typeof this.target._hasOwnProperty == "function"
- && this.target._hasOwnProperty(j.names[k]))
- {
- this.hasNonEnumProperties = true;
-
- ti = "";
- t = null;
- setErrorHandler();
- eval(new Array(
- 'try {',
- ' ti = p;',
- ' t = this.target;',
- '} catch (e) {',
- ' ti = null;',
- ' t = null;',
- '}').join("\n"));
- clearErrorHandler();
-
- /* avoid dupes */
- this.properties.addProperty(
- j.names[k], /* name */
- ti, /* value */
- this.properties.length, /* ID */
- t, /* owner reference */
- true); /* is non-enumerable */
- }
- }
- }
- }
- this.hasProperties = (this.properties.length > 0);
-
- return this;
- }
- else
- {
- this.type = "undefined";
- this.hasProperties = false;
-
- return null;
- }
- },
-
- /**
- * @param rxName : optional RegExp = .*
- * @param rxType : optional string = //
- * @param bInvert : optional boolean = false
- * @param aValue : optional _ = undefined
- * @return PropertyArray
- * An array with the data of all properties that
- * match the passed conditions as elements.
- */
- getProperties: function (rxName, rxType, bInvert, aValue) {
- if (typeof rxType == "string")
- {
- rxType = new RegExp(rxType, "i");
- }
-
- if (typeof rxName != "object" || !rxName.test)
- {
- rxName = new RegExp(rxName);
- }
-
- if (!rxName.test)
- {
- rxName = null;
- }
-
- var a = new PropertyArray();
-
- for (var i = 0, len = this.properties.length; i < len; i++)
- {
- var p = this.properties.items[i];
-
- var b = ((rxName && rxName.test(p.name)) || !rxName)
- && ((rxType && rxType.test(p.type.toLowerCase()))
- || !rxType)
- && ((arguments.length >= 4 && aValue == p.value)
- || arguments.length < 4);
-
- if (bInvert)
- {
- b = !b;
- }
-
- if (b)
- {
- a.addProperty(p.name, p.value, p.id, p.owner, !p.enumerable);
- }
- }
-
- return a;
- },
-
- /**
- * @return string
- */
- toString: function () {
- var s = "";
- setErrorHandler();
- eval(new Array(
- 'try {',
- ' for (var i = 0; i < this.properties.length; i++) {',
- ' var p = this.properties[i];',
- ' s += "[" + p.id + "] "',
- ' + p.name',
- ' + " : " + p.type',
- ' + " = "',
- ' + (p.type == "string" ? "\\"" : "")',
- ' + p.value',
- ' + (p.type == "string" ? "\\"" : "")',
- ' + "\\n";',
- ' }',
- '} catch (e) {',
- ' s = e;',
- '}').join("\n"));
- clearErrorHandler();
-
- return s;
- }
-});
-
-var sDefaultInspectorPath = jsx.debug.path + "ObjectInspector/obj-insp.html";
-var sNoObj = "[Not an object]";
-var CH_NBSP = unescape("%A0");
-
-/**
- * @param sObject : string|Object
- * @param aWhat : optional string|RegExp
- * @param sStyle : optional string
- * @param sHeader : optional string
- * @param sFooter : optional string
- * @param sInspectorPath : optional string
- * @return string
- */
-function getObjInfo(sObject, aWhat, sStyle, sHeader, sFooter, sInspectorPath)
-{
- var o, tc;
-
- // alert("1: " + sObject + "[" + typeof sObject + "]");
- if (sObject)
- {
- // alert("2: " + sObject + "[" + typeof sObject + "]");
- if (typeof sObject == "string")
- {
- tc = false;
- setErrorHandler();
- eval(new Array(
- 'try {',
- ' tc = true;',
- ' try {',
- ' var o = eval(sObject);',
- // alert("3: " + sObject + "[" + typeof sObject + "]");
- ' } catch (e) {',
- ' sObject = "jsx.global." + sObject;',
- // alert("4: " + sObject + "[" + typeof sObject + "]");
- ' try {',
- ' var o = eval(sObject);', // TODO
- // alert("5: " + sObject + "[" + typeof sObject + "]");
- ' } catch (e) {',
- // alert("6: " + "[Not an object]");
- ' return (sNoObj);',
- ' }',
- ' }',
- + '}').join("\n"));
- clearErrorHandler();
- if (! tc)
- {
- o = eval(sObject);
- // alert("7: " + "[Not an object]");
- }
- }
- else
- {
- o = sObject;
- // alert("8: " + o);
- }
- }
- else
- {
- // alert("9: " + "[Not an object]");
- return (sNoObj);
- }
-
- if (!aWhat)
- {
- aWhat = ""; /* v1.29.2002.10b3 bugfix */
- }
- var bShowProps =
- (aWhat && (!aWhat.test && aWhat.toUpperCase().indexOf("P") > -1));
- var bShowMethods =
- (aWhat && (!aWhat.test && aWhat.toUpperCase().indexOf("M") > -1));
- var bShowObjects =
- (aWhat && (!aWhat.test && aWhat.toUpperCase().indexOf("O") > -1));
- var bTextLineStyle = (sStyle && (sStyle.toUpperCase().indexOf("L") > -1));
- var bFormatAsLines = (sStyle && (sStyle.toUpperCase().indexOf("H") > -1));
- var bFormatAsTable = (sStyle && (sStyle.toUpperCase().indexOf("T") > -1));
- var bShowType = (sStyle && (sStyle.toUpperCase().indexOf("S") > -1));
- var bShowConstructor = (sStyle && (sStyle.toUpperCase().indexOf("C") > -1));
- var bFormatAsHTML = (bFormatAsLines || bFormatAsTable);
-
- if (sHeader && (sHeader == "-"))
- {
- sHeader = "";
- }
- else if (!sHeader || (sHeader == ""))
- {
- sHeader = "";
- if (bShowObjects || bShowProps || bShowMethods)
- {
- if (bShowProps)
- {
- sHeader = "Properties";
- }
- else if (bShowObjects)
- {
- sHeader = "Composed Objects";
- }
-
- if (bShowMethods)
- {
- if (bShowObjects || bShowProps)
- {
- sHeader += " and ";
- }
- sHeader += "Methods";
- }
- }
- else
- {
- sHeader = "Attributes";
- }
-
- sHeader += " of "
- + (bFormatAsHTML ? '<code>': '')
- + sObject
- + (typeof aWhat.test != "undefined"
- ? ' matching ' + String(aWhat)
- : '')
- + (bFormatAsHTML ? '<\/code>': '');
- }
- var sProp =
- (bFormatAsTable
- ? '<table border="1" cellpadding="5" cellspacing="0">\n'
- : '')
- + (sHeader != ""
- ? (bFormatAsTable
- ? '<tr><th align="left" colspan="'
- + (2 + +(bShowType) + +(bShowConstructor)) + '">'
- : '')
- + sHeader
- + (bFormatAsHTML && bFormatAsLines
- ? "<br>\n"
- : (!bFormatAsHTML
- ? "\n__________________________________________________\n"
- : ""))
- + (bFormatAsTable
- ? ('<\/th><\/tr>\n<tr><th align="left">Name<\/th> '
- + (bShowType
- ? '<th align="left">Type<\/th>'
- : '')
- + (bShowConstructor
- ? '<th align="left">Constructor<\/th>'
- : '')
- + '<th align="left">Value<\/th><\/tr>\n')
- : '')
- : "");
- var bCondition = false;
- var aProperties = new Array();
- var t;
-
- for (var property in o)
- {
- if ((aWhat.constructor == RegExp
- && ((t = typeof aWhat.test) == "function" || t == "object")
- && aWhat.test(property)) || true)
- {
- aProperties[aProperties.length] = property;
- }
- }
-
- /* sort properties lexically */
- if (typeof aProperties.sort == "function")
- {
- aProperties.sort();
- }
-
- var isError;
- var propValue;
- var bMethod;
- var bProperty;
- var propType;
- var bObject;
- var s;
- var propName;
- var sPropName;
- for (var i = 0; i < aProperties.length; i++)
- {
- bCondition = false;
- isError = false;
-
- tc = false;
- setErrorHandler();
- eval(new Array(
- 'try {',
- ' tc = true;',
- ' if (o[aProperties[i]])',
- ' propValue = o[aProperties[i]];',
- ' else',
- ' propValue = eval("o." + aProperties[i]);',
- ' bMethod =',
- ' ((t = typeof propValue) == "function" || t == "object");',
- '} catch (e) {',
- ' propValue = "[" + e + "]";',
- ' bMethod = false;',
- ' isError = true;',
- '}').join("\n"));
- clearErrorHandler();
- if (! tc)
- {
- if (o[aProperties[i]])
- {
- propValue = o[aProperties[i]];
- }
- else
- {
- propValue = eval("o." + aProperties[i]);
- }
- bMethod = (String(propValue).toLowerCase().indexOf("function ") > -1);
- }
-
- bProperty = !bMethod;
- propType = typeof propValue;
- var propConstructor =
- (typeof propValue != "undefined"
- && propValue != null
- && propValue.constructor != "undefined")
- ? propValue.constructor.toString().replace(/function\s+/, "")
- .replace(/\s*\((.|[\r\n])*/, "")
- : "";
- bObject = (propType == "object");
- if (aWhat && (aWhat != "") && (!aWhat.test))
- {
- bCondition =
- (bProperty && bShowProps)
- || (bMethod && bShowMethods)
- || (bObject && bShowObjects);
- }
- else
- {
- bCondition = true;
- }
-
- if (bCondition)
- {
- s =
- ((isNaN(propValue) || String(propValue) == "") && !bObject && !isError)
- ? '"'
- : '';
-
- propName = String(aProperties[i]);
- sPropName = propName;
- if (bFormatAsHTML)
- {
- sPropName = "<code><b>" + propName + "<\/b><\/code>";
- propValue =
- replaceText(replaceText(String(propValue), "<", "&lt;"), ">", "&gt;");
- }
- sProp
- += (bFormatAsTable ? '<tr valign="top"><td> ' : '')
- + ((bObject && bFormatAsHTML)
- ? '<a href="javascript:void(ObjectInspector(\''
- + sObject
- + '\'))">'
- : '')
- + sPropName
- + (bObject && bFormatAsHTML ? '<\/a>': '')
- + (bFormatAsTable ? '<\/td>': "")
- + (bShowType
- ? bFormatAsTable
- ? '<td><code>'+propType + '<\/code><\/td>'
- : CH_NBSP + ":" + CH_NBSP + propType
- : "")
- + (bShowConstructor
- ? (bFormatAsTable
- ? '<td><code>'+propConstructor + '<\/code><\/td>'
- : "[" + propConstructor + "]")
- : "")
- + (bFormatAsTable
- ? '<td><code>'
- : CH_NBSP + "=" + CH_NBSP)
- + s
- + propValue
- + s;
-// ("<a href='javascript:ObjectInspector(\'' + sObject + '[\"' + propName + '\"]\'', \'' + aWhat + '\', \'' + sStyle +'\');"'
-// + ' !onclick="window.open(\''
-// + (sInspectorPath ? escape(sInspectorPath) : sDefaultInspectorPath)
-// + '?obj=' + escape(sObject) + "." + escape(propName)
-// + '&what=' + escape(aWhat)
-// + '&style=' + escape(sStyle)
-// + '\', \'wndObjectInspector\', \'scrollbars=yes,resizable=yes\'); return false;"'
- if (bFormatAsHTML)
- {
- if (bFormatAsTable)
- {
- sProp += "<\/code><\/td><\/tr>\n";
- }
- else
- {
- sProp += "<br>\n";
- }
- }
- else if (bTextLineStyle)
- {
- sProp += "; ";
- }
- else
- {
- sProp += "\n";
- }
- }
- }
-
- switch (String(sFooter))
- {
- case "-":
- sFooter = "";
- break;
-
- case "undefined":
- case "":
- case "null":
- if (bFormatAsHTML)
- {
- sFooter =
- '<code><a href="' + jsx.debug.docURL + '" target="_blank"'
- + ' title="Show documentation for JSX:objinfo.js."'
- + '>JSX:objinfo.js<\/a>:<a href="' + jsx.debug.docURL + '#getObjInfo"'
- + ' target="_blank"'
- + ' title="Show documentation for JSX:debug.js:getObjInfo(...)"'
- + '>getObjInfo<\/a>(...)<\/code><br>';
- }
- else
- {
- sFooter = "JSX:debug.js:getObjInfo(...)\n";
- }
- sFooter += "Library version " + jsx.debug.version;
- sFooter += (bFormatAsHTML ? "<br>" : "\n");
- sFooter += jsx.debug.copyright
- + (bFormatAsHTML ? "&nbsp;&nbsp;" : " ")
- + jsx.debug.author
- + " ";
- if (bFormatAsHTML)
- {
- sFooter = replaceText(sFooter, "\xA9", "&copy;");
- sFooter +=
- '&lt;<a href="mailto:' + jsx.debug.email
- + '%20%28Thomas%20\'PointedEars\'%20Lahn%20%29"'
- + ' title="E-mail the author of this fabulous script ;-)'
- + ' E-mail client required.">' + jsx.debug.email + '<\/a>&gt;';
- }
- else
- {
- sFooter += "<" + jsx.debug.email + ">";
- }
- }
-
- if (sFooter != "")
- {
- sProp
- += (bFormatAsHTML
- ? bFormatAsTable
- ? '<tr>\n<td colspan="'+ (2 + +(bShowType) + +(bShowConstructor))
- + '">'
- : ''
- : "\n__________________________________________________\n")
- + sFooter
- + (bFormatAsHTML
- ? bFormatAsTable
- ? '<\/td>\n<\/tr>\n'
- : '<br>'
- : "");
- }
-
- if (bFormatAsTable)
- {
- sProp += '<\/table>';
- }
-
- return sProp;
-}
-
-/**
- * Returns an object storing the minimum version required
- * of the requested implementations in a piece of source code.
- *
- * @param s : string
- * Source code to be analyzed
- * @param implementations : Object
- * Dictionary of requested implementations. The following
- * property names are supported:
- *
- * <table>
- * <tr valign="top">
- * <th align="left">javascript</th>
- * <td>Netscape/Mozilla.org JavaScript&trade;<sup>&reg;</sup></td>
- * </tr>
- * <tr valign="top">
- * <th align="left">jscript</th>
- * <td>Microsoft JScript&trade;</td>
- * </tr>
- * <tr valign="top">
- * <th align="left">es</th>
- * <td>ECMAScript</td>
- * </tr>
- * <table>
- *
- * @return Object
- * An object having the same properties as <var>implementations</var>.
- * The property values specify the minimum version required of an
- * implementation in order to run <var>s</var>.
- */
-function getMinimalVersions(s, implementations)
-{
- /* TODO: Let this be generated by PHP */
- var features = {
- "RegExp": {javascript: 1.2, jscript: "3.0", es: 3},
-
- /* anonymous function expression */
- "function\\s*\\(": {javascript: 1.3, jscript: "3.1.3510", es: 3},
-
- "\\.\\s*constructor": {javascript: 1.1, jscript: "2.0", es: 1},
- "\\.\\s*source": {jscript: "3.0", es: 3},
- "\\.\\s*replace": {javascript: 1.2, jscript: "3.0", es: 3},
- "\\.\\s*split": {javascript: 1.1, jscript: "3.0", es: 1},
-
- /* Object initializer */
- "[[(=]\\s*\\{": {javascript: 1.3, jscript: "3.0", es: 3},
-
- /* Array initializer */
- "\\[[^]]+\\]": {javascript: 1.3, jscript: "2.0", es: 3},
-
- "\\.\\s*hasOwnProperty\\s*\\(": {javascript: 1.5, jscript: "5.5", es: 3}
- };
-
- var implMap = {
- javascript: "JavaScript",
- jscript: "JScript",
- es: "ECMAScript Edition"
- };
-
- var result = {};
- var lines = s.split(/\r?\n|\n/);
- var obj = jsx.object;
-
- for (var f in features)
- {
- var rx = new RegExp("\\b" + f + "\\b");
- if (rx.test(s))
- {
- for (var i in implementations)
- {
- if (typeof result[i] == "undefined")
- {
- result[i] = 0;
- }
-
- if (result[i] < features[f][i])
- {
- result[i] = features[f][i];
- dmsg(
- f + " requires " + obj.getProperty(implMap, i, i)
- + " " + features[f][i],
- "warn");
- }
- }
- }
- }
-
- return result;
-}
-// var o = getMinimalVersions(e, {javascript: true, jscript: true, es: true});
\ No newline at end of file
/live/test/debug.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Index: live/test/map.php
===================================================================
--- live/test/map.php (revision 509)
+++ live/test/map.php (nonexistent)
@@ -1,287 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>map.js Test Case</title>
-<!-- <script type="text/javaScript" src="jsunit/app/jsUnitCore.js"></script> -->
- <script type="text/javascript" src="object.js"></script>
- <script type="text/javascript" src="../map.js"></script>
-<!-- <script type="text/javascript" src="debug.js"></script>-->
- <script type="text/javascript" src="test.js"></script>
- <script type="text/javascript">
- jsx._import(jsx.object, ["dmsg"]);
- jsx._import(jsx.map, ["Map", "KeyError"]);
- jsx._import(jsx.test, ["assert", "assertTrue", "assertFalse",
- "assertUndefined", "runner"]);
- function test()
- {
- var m;
- runner.run({
- setUp: function () {
- /* Instantiation */
- m = new Map();
- },
- tests: [
- {
- name: "put() and get()",
- code: function() {
- /* */
- assertUndefined(m.put("foo", "bar"));
- assertTrue(m.get("foo") == "bar");
-
- assertUndefined(m.put("constructor", "a"));
- assertTrue(m.get("constructor") == "a");
- }
- },
-
- {
- name: "remove()",
- code: function () {
- assertUndefined(m.put("foo", "bar"));
- assertTrue(m.get("foo") == "bar");
-
- assertUndefined(m.put("constructor", "a"));
- assertTrue(m.get("constructor") == "a");
-
- assertTrue(m.remove("constructor") == "a");
- assertFalse(m.get("constructor", false));
- }
- },
-
- {
- name: "_maxAliasLength",
- code: function () {
- assertTrue(m.setMaxAliasLength(1));
- assertTrue(m.getMaxAliasLength() === 1);
- }
- },
-
- {
- name: "Undefined key, no default --> KeyError",
- code: function () {
- var x = 0;
-
- jsx.tryThis(
- function () {
- m.get("constructor");
- },
- function (e) {
- x = e;
- });
-
- assertTrue(x.constructor === KeyError);
- }
- },
-
- {
- name: "size()",
- code: function () {
- assertTrue(m.setMaxAliasLength(255));
- assertTrue(m.size() === 0);
-
- m.put("baz", "bla");
- assertTrue(m.size() === 1);
-
- m.remove("baz");
- assertTrue(m.size() === 0);
- }
- },
-
- {
- name: "mappings()",
- code: function () {
- var mappings = m.mappings();
-
- if (typeof dmsg == "function") dmsg(mappings);
- assertFalse(mappings.length > 0);
-
- m.put("baz", 42);
- mappings = m.mappings();
- if (typeof dmsg == "function") dmsg(mappings);
- assertTrue(mappings.length > 0);
- }
- },
-
- {
- name: "isEmpty()",
- code: function () {
- m.put("foo");
- assertFalse(m.isEmpty());
-
- m.remove("foo");
- assertTrue(m.isEmpty());
- }
- },
-
- {
- name: "containsKey()",
- code: function () {
- assertFalse(m.containsKey("constructor"));
- assertFalse(m.containsKey("foo"));
-
- m.put("foo", "bar");
- assertFalse(m.containsKey("constructor"));
- assertTrue(m.containsKey("foo"));
- }
- },
-
- {
- name: "putAll()",
- code: function () {
- m.put("answer", 42);
- m.put("foo", "bar");
-
- var m2 = new Map();
- m2.put("answer", 23);
- m2.putAll(m);
- assertTrue(m2.containsKey("answer"));
- assertTrue(m2.get("answer", false) === 42);
- assertTrue(m2.containsKey("foo"));
-
- m2 = new Map(m);
- assertTrue(m2.containsKey("foo"));
- assertTrue(m2.get("answer", false) === 42);
- }
- },
-
- {
- name: "put()ing and get()ing with object key",
- code: function() {
- var o = {};
- assertUndefined(m.put(o, "bar"));
- assertTrue(m.get(o) == "bar");
- }
- },
-
- {
- name: "remove() with object key",
- code: function () {
- var o = {};
- assertUndefined(m.put(o, "bar"));
- assertTrue(m.get(o) == "bar");
-
- assertTrue(m.remove(o) == "bar");
- assertFalse(m.get(o, false));
- }
- },
-
- {
- name: "Undefined object key, no default --> KeyError",
- code: function () {
- var x = 0;
-
- jsx.tryThis(
- function () {
- var o = {};
- m.get(o);
- },
- function (e) {
- x = e;
- });
-
- assertTrue(x.constructor === KeyError);
- }
- },
-
- {
- name: "size() with object key",
- code: function () {
- assertTrue(m.setMaxAliasLength(255));
- assertTrue(m.size() === 0);
-
- var o = {};
- m.put(o, "bla");
- assertTrue(m.size() === 1);
-
- m.remove(o);
- assertTrue(m.size() === 0);
- }
- },
-
- {
- name: "mappings() with object key",
- code: function () {
- var mappings = m.mappings();
-
- if (typeof dmsg == "function") dmsg(mappings);
- assertFalse(mappings.length > 0);
-
- var o = {};
- m.put(o, 42);
- mappings = m.mappings();
- if (typeof dmsg == "function") dmsg(mappings);
- assertTrue(mappings.length > 0);
- }
- },
-
- {
- name: "isEmpty() with object key",
- code: function () {
- var o = {};
- m.put(o);
- assertFalse(m.isEmpty());
-
- m.remove(o);
- assertTrue(m.isEmpty());
- }
- },
-
- {
- name: "containsKey() with object key",
- code: function () {
- var o = {};
- assertFalse(m.containsKey("constructor"));
- assertFalse(m.containsKey(o));
-
- m.put(o, "bar");
- assertFalse(m.containsKey("constructor"));
- assertTrue(m.containsKey(o));
- }
- },
-
- {
- name: "putAll() with object key",
- code: function () {
- m.put("answer", 42);
- var o = {};
- m.put(o, "bar");
-
- var m2 = new Map();
- m2.put("answer", 23);
- m2.putAll(m);
- assertTrue(m2.containsKey("answer"));
- assertTrue(m2.get("answer", false) === 42);
- assertTrue(m2.containsKey(o));
-
- m2 = new Map(m);
- assertTrue(m2.containsKey(o));
- assertTrue(m2.get("answer", false) === 42);
- }
- }
- ]
- });
- }
- </script>
- </head>
-
- <body onload="test()">
- <h1><tt>map.js</tt> Test&nbsp;Case</h1>
- <ul>
- <li><a href="view-source:http://<?php
- echo $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
- ?>">View HTML source</a> (uses view-source scheme)</li>
-
- <li><a href="../map.js">View script source</a>
- (<a href="view-source:http://<?php
- echo $_SERVER['HTTP_HOST']
- . preg_replace('/[^\/]+$/', '', $_SERVER['REQUEST_URI']);
- ?>../map.js">use view-source scheme</a>)</li>
-
- <!-- <li><a href="jsunit/testRunner?testPage=<?php
- echo urlencode(htmlentities($_SERVER['REQUEST_URI']));
- ?>&amp;autoRun=true"
- >Run unit test</a></li> -->
- </ul>
- </body>
-</html>
\ No newline at end of file
Index: live/test/test.xml.php
===================================================================
--- live/test/test.xml.php (revision 509)
+++ live/test/test.xml.php (nonexistent)
@@ -1,26 +0,0 @@
-<?php
-header('Content-Type: text/xml; charset=utf-8');
-echo '<?xml version="1.0" encoding="UTF-8" standalone="no"?>';
-?>
-<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
->
- <soap:Body>
- <res:Response
- xmlns:res="http://www.ebasetech.com/LADRA_COPYMOVE_TERM_OP/Response"
- >
- <res:OUTPUT>
- <res:UNDO_COUNT>1.0</res:UNDO_COUNT>
- <res:MSG>Undo complete (No more to undo)</res:MSG>
- </res:OUTPUT>
- </res:Response>
- <res:OUTPUT
- xmlns:res="http://www.ebasetech.com/LADRA_COPYMOVE_TERM_OP/Response"
- >foo</res:OUTPUT>
- </soap:Body>
- <foo xmlns="bar">
- <baz/>
- </foo>
- <bla/>
-</soap:Envelope>
Index: live/test/array-test.js
===================================================================
--- live/test/array-test.js (revision 509)
+++ live/test/array-test.js (nonexistent)
@@ -1,309 +0,0 @@
-function runTests()
-{
- var _test = jsx.test;
- var assert = _test.assert;
- var assertArrayEquals = _test.assertArrayEquals;
- var _createComparator = jsx.array.createComparator;
- var BigArray = jsx.array.BigArray;
-
- _test.runner.run({
- file: "array.js",
- tests: [
- {
- feature: 'jsx.array.BigArray()',
- description: 'Return new instance (factory)',
- code: function () {
- assert(BigArray() instanceof BigArray);
- }
- },
- {
- feature: 'new jsx.array.BigArray()',
- description: 'Return new empty instance (constructor)',
- code: function () {
- assert(new BigArray() instanceof BigArray);
- }
- },
- {
- feature: 'new BigArray(BigArray)',
- description: 'Clone instance',
- code: function () {
- var s = (new BigArray(new BigArray("x"))).toString();
- assert(s === "x");
- }
- },
- {
- feature: 'new BigArray("")',
- description: 'Return one-element array',
- code: function () {
- assertArrayEquals([""], new BigArray("").toArray());
- }
- },
- {
- feature: 'new BigArray("x")',
- description: 'Convert to <code>BigArray("x")</code>',
- code: function () {
- assertArrayEquals(["x"], new BigArray("x").toArray());
- }
- },
- {
- feature: 'new BigArray(int)',
- description: 'Create <code>BigArray</code> of specified length',
- code: function () {
- var a = [];
- a.length = 42;
- assertArrayEquals(a, new BigArray(42).toArray());
- }
- },
-
- {
- feature: 'BigArray.prototype.toArray()',
- description: 'Return the correct value',
- code: function () {
- assertArrayEquals([], new BigArray().toArray());
- assertArrayEquals([""], new BigArray("").toArray());
- assertArrayEquals(["x"], new BigArray("x").toArray());
- assertArrayEquals([23, 42], new BigArray(23, 42).toArray());
- }
- },
- {
- feature: 'BigArray.length',
- description: 'Getter works',
- code: function () {
- var i = Math.pow(2, 53);
- assert(new BigArray(i).length == i);
- }
- },
-
- {
- feature: 'BigArray.getLength()',
- description: 'Return the correct value',
- code: function () {
- assert(new BigArray().getLength() === 0);
- assert(new BigArray(42).getLength() === 42);
- assert(new BigArray("").getLength() === 1);
- assert(new BigArray("x").getLength() === 1);
- assert(new BigArray("x", "y").getLength() === 2);
- }
- },
-
- {
- feature: 'BigArray.prototype.get()',
- description: 'Throw <code>jsx.InvalidArgumentError</code>',
- code: function () {
- var failure = jsx.tryThis(
- function () {
- new BigArray().get();
- return false;
- },
- function (e) {
- return (e instanceof jsx.InvalidArgumentError);
- });
- assert(failure);
- }
- },
- {
- feature: 'BigArray.prototype.get(…)',
- description: 'Return the correct value',
- code: function () {
- assert(new BigArray("x").get(0) === "x");
- assert(typeof new BigArray("x").get(1) == "undefined");
-
- assert(new BigArray("x", "y").get(-2) === "x");
- assert(new BigArray("x", "y").get(-1) === "y");
- assert(typeof new BigArray("x", "y").get(-4) == "undefined");
- }
- },
-
- /* TODO: Override and test Array methods that are not MAX_LENGTH-safe */
-
- {
- feature: 'BigArray.prototype.toString(…)',
- description: 'Return the correct value',
- code: function () {
- assert(new BigArray().toString() === "");
- assert(new BigArray(0).toString() === "");
- assert(new BigArray(1).toString() === "");
- assert(new BigArray(2).toString() === ",");
- }
- },
-
- {
- feature: 'BigArray.prototype.valueOf(…)',
- description: 'Return the correct value',
- code: function () {
- var a = new BigArray("x\uD834\uDD1Ey");
- var v = a.valueOf();
- assert(v === a);
- }
- },
-
- {
- feature: 'jsx.array.createComparator(aKeys)',
- description: 'Sort <code>Array</code> as specified',
- code: function () {
- var o1 = {x: 2};
- var o2 = {x: 1};
- var a = [o1, o2];
- a.sort(_createComparator(["x"]));
- assertArrayEquals([o2, o1], a);
- }
- },
- {
- feature: 'jsx.array.createComparator(aKeys, oOptions)',
- description: 'Sort <code>Array</code> as specified',
- code: function () {
- var o1 = {x: 1};
- var o2 = {x: 2};
- var a = [o1, o2];
- a.sort(_createComparator(["x"], {descending: true}));
- assertArrayEquals([o2, o1], a);
-
- o1 = {x: "1 "};
- o2 = {x: 1};
- a = [o1, o2];
- a.sort(_createComparator(["x"], {strict: true}));
- assertArrayEquals([o2, o1], a);
-
- o1 = {x: 1};
- o2 = {x: "1 "};
- a = [o1, o2];
- a.sort(_createComparator(["x"], {descending: true, strict: true}));
- assertArrayEquals([o2, o1], a);
-
- o1 = {x: "20"};
- o2 = {x: "1"};
- a = [o1, o2];
- a.sort(_createComparator(["x"], {numeric: true}));
- assertArrayEquals([o2, o1], a);
-
- o1 = {x: "1"};
- o2 = {x: "1"};
- a = [o1, o2];
- a.sort(_createComparator(["x"], {numeric: true, strict: true}));
- assertArrayEquals([o1, o2], a);
-
- o1 = {x: 1};
- o2 = {x: "1"};
- a = [o1, o2];
- a.sort(_createComparator(["x"], {numeric: true}));
- assertArrayEquals([o1, o2], a);
-
- o1 = {x: "1 "};
- o2 = {x: 1};
- a = [o1, o2];
- a.sort(_createComparator(["x"], {numeric: true, strict: true}));
- assertArrayEquals([o1, o2], a);
-
- o1 = {x: 2};
- o2 = {x: "12"};
- a = [o1, o2];
- a.sort(_createComparator(["x"], {
- descending: true,
- numeric: true,
- strict: true
- }));
- assertArrayEquals([o2, o1], a);
- }
- },
- {
- feature: 'jsx.array.createComparator([{key: …, callback: …}])',
- description: 'Sort <code>Array</code> as specified',
- code: function () {
- var o1 = {
- x: "10"
- };
- var o2 = {
- x: "2"
- };
- var a = [o1, o2];
- a.sort(_createComparator([
- {
- key: "x",
- callback: Number
- }
- ]));
- assertArrayEquals([o2, o1], a);
- }
- },
- {
- feature: 'jsx.array.createComparator([{key: …, constructor: …}])',
- description: 'Sort <code>Array</code> as specified',
- code: function () {
- var o1 = {
- x: "10"
- };
- var o2 = {
- x: "2"
- };
- var a = [o1, o2];
- a.sort(_createComparator([
- {
- key: "x",
- constructor: Number
- }
- ]));
- assertArrayEquals([o2, o1], a);
- }
- },
- {
- feature: 'jsx.array.createComparator([{key: …, comparator: …}])',
- description: 'Sort <code>Array</code> as specified',
- code: function () {
- var o1 = {
- engine: {
- liters: 4.0,
- cylinders: 4
- },
- };
- var o2 = {
- engine: {
- liters: 3.0,
- cylinders: 4
- },
- };
- var a = [o1, o2];
- a.sort(_createComparator([
- {
- key: "engine",
- comparator: _createComparator(["cylinders", "liters"])
- }
- ]));
- assertArrayEquals([o2, o1], a);
- }
- },
-
- {
- feature: 'jsx.array.createComparator("…", {callback: …, constructor: …, comparator: …})',
- description: 'Sort <code>Array</code> as specified',
- code: function () {
- function Bar (baz)
- {
- this.baz = String(baz);
- }
-
- Bar.prototype.toString = function () {
- return this.baz;
- };
-
- function Baz (bla)
- {
- this.length = bla.length;
- }
-
- var o1 = {"bar": new Bar("burpbarbazbla")};
- var o2 = {"bar": new Bar("foo")};
-
- var foo = [o1, o2];
-
- foo.sort(_createComparator(["bar"], {
- callback: String,
- constructor: Baz,
- comparator: _createComparator(["length"], {numeric: true})
- }));
-
- assertArrayEquals([o2, o1], foo);
- }
- }
- ]
- });
-}
\ No newline at end of file
/live/test/array-test.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/builder-test.html
===================================================================
--- live/test/builder-test.html (revision 509)
+++ live/test/builder-test.html (nonexistent)
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Builder Test</title>
- <meta name="author" content="Thomas 'PointedEars' Lahn">
- <meta name="DC.created" content="2011-08-13">
- <script type="text/javascript" src="../builder?src=object,types"></script>
- </head>
- <body>
-
- </body>
-</html>
/live/test/builder-test.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/close.html
===================================================================
--- live/test/close.html (revision 509)
+++ live/test/close.html (nonexistent)
@@ -1,23 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html lang="de">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>kuckuck</title>
-</head>
-
-<body>
-hallo
-<script type="text/javascript">
- <!--
- function closeMe() {
- var w = window.open(null, "test_mich", "width=34, height=40");
- w.document.open("text/plain");
- w.document.write("bla");
- w.document.close();
- self.close();
- }
- closeMe();
- //-->
- </script>
-</body>
-</html>
\ No newline at end of file
Index: live/test/python-test.js
===================================================================
--- live/test/python-test.js (revision 509)
+++ live/test/python-test.js (nonexistent)
@@ -1,96 +0,0 @@
-function runTests ()
-{
- jsx._import(jsx.test);
- jsx._import(jsx.python);
-
- jsx.test.runner.run({
-// setUp: function(i, f) {
-// jsx.info("Setting up test " + (i + 1) + ":\n" + f);
-// },
-
-// tearDown: function(i, f) {
-// jsx.info("Tearing down test " + (i + 1));
-// },
-
- file: "python.js",
- tests: [
- {
- feature: "jsx.python.list()",
- desc: "<code>list()<\/code> returns <code>[]<\/code>",
- code: function () {
- var obj = list();
- assert(obj.length == 0);
- }
- },
-
- {
- feature: "jsx.python.list()",
- desc: "<code>list([1])<\/code> returns <code>[1]<\/code>",
- code: function() {
- var obj = list([1]);
- assert(obj[0] === 1);
- }
- },
-
- {
- feature: "jsx.python.list()",
- desc: '<code>list({foo: "bar"})<\/code> returns'
- + ' <code>["foo"]</code>',
- code: function() {
- var obj = list({foo: "bar"});
- assert(obj[0] === "foo");
- }
- },
-
- {
- feature: "jsx.python.dict()",
- desc: "<code>dict()<\/code> returns <code>{}<\/code>",
- code: function() {
- var obj = dict();
- assert(typeof obj.foo == "undefined");
- }
- },
-
- {
- feature: "jsx.python.dict()",
- desc: '<code>dict({"foo": "bar"})<\/code> returns'
- + ' <code>{foo: "bar"}<\/code>',
- code: function() {
- var obj = dict({foo: "bar"});
- assert(obj.foo === "bar");
- }
- },
-
- {
- feature: "jsx.python.dict()",
- desc: '<code>dict(["foo"], ["bar"])<\/code> returns'
- + ' <code>{foo: "bar"}<\/code>',
- code: function() {
- var obj = dict(["foo"], ["bar"]);
- assert(obj.foo === "bar");
- }
- },
-
- {
- feature: "jsx.python.set()",
- desc: '<code>set(["a", "b", "a", "b"])<\/code> returns'
- + ' <code>new set(["a", "b"])<\/code> or <code>new set(["b", "a"])<\/code>',
- code: function() {
- var _map = jsx.map;
-
- delete jsx.map;
- var a = set(["a", "b", "a", "b"]).toArray();
- assert(a.length === 2
- && ((a[0] === "a" && a[1] === "b")
- || (a[0] === "b" && a[1] === "a")));
-
- jsx.map = _map;
- a = set(["a", "b", "a", "b"]).toArray();
- assert(a.length === 2
- && ((a[0] === "a" && a[1] === "b")
- || (a[0] === "b" && a[1] === "a")));
- }
- }
- ]
- });
-}
\ No newline at end of file
/live/test/python-test.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/object.html
===================================================================
--- live/test/object.html (revision 509)
+++ live/test/object.html (nonexistent)
@@ -1,15 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>object.js Unit Test</title>
- <script type="text/javascript" src="../object.js"></script>
- <script type="text/javascript" src="../test/test.js"></script>
- <script type="text/javascript" src="object.js"></script>
- </head>
-
- <body onload="runTests()">
- <h1><tt><a href="/websvn/filedetails.php?repname=JSX&path=%2Ftrunk%2Fobject.js">object.js</a></tt> Unit&nbsp;Test</h1>
- </body>
-</html>
\ No newline at end of file
/live/test/object.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/string.html
===================================================================
--- live/test/string.html (revision 509)
+++ live/test/string.html (nonexistent)
@@ -1,25 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta http-equiv="Content-Language" content="en">
- <meta name="GENERATOR" content="PHPEclipse 1.0">
- <title>PointedEars' String Library Test Case</title>
- <script type="text/javascript" src="jsunit/app/jsUnitCore.js"></script>
- <script type="text/javascript" src="../object.js"></script>
- <script type="text/javascript" src="../types.js"></script>
- <script type="text/javascript" src="../string.js"></script>
-<!--
- <script type="text/javascript" src="../exception.js"></script>
- <script type="text/javascript" src="debug.js"></script>
--->
- <script type="text/javascript" src="test.js"></script>
- <script type="text/javascript" src="string.js"></script>
- </head>
-
- <body onload="runTests()">
- <h1><a href="../string.js">PointedEars' String Library</a> Unit Test</h1>
- <p>See error console for details.</p>
- </body>
-</html>
\ No newline at end of file
/live/test/string.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/ani.html
===================================================================
--- live/test/ani.html (revision 509)
+++ live/test/ani.html (nonexistent)
@@ -1,155 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Script Test Case: Animation Framework (new)</title>
- <style type="text/css">
- <!--
- div {
- background-color: red;
- color: white;
- width: 5px;
- height: 5px;
- }
- -->
- </style>
-
- <script src="../object.js" type="text/javascript"></script>
- <script src="../collection.js" type="text/javascript"></script>
- <script src="../dom.js" type="text/javascript"></script>
- <script src="../dom/css.js" type="text/javascript"></script>
- <script src="../dom/css/color.js" type="text/javascript"></script>
- <script src="../types.js" type="text/javascript"></script>
- <script src="../string.js" type="text/javascript"></script>
- <!-- <script src="../ani.bak.js" type="text/javascript"></script> -->
- <script src="../dom/ani.js" type="text/javascript"></script>
- <!-- <script src="firebug/firebug.js" type="text/javascript"></script> -->
- <script type="text/javascript">
- /*
- var anim, anim2;
- function body_load()
- {
- anim = new Animation(
- 'test-object',
- [
- new Timeline({
- style: {
- left: { from: 400, to: 0 },
- top: { from: 200, by: -100 },
- width: { from: 200, to: 100 },
- height: { from: 200, to: 100 }
- },
- duration: 1000
- }),
- {
- style: {
- top: { to: 0 }
- },
- duration: 1000
- }
- ]);
-
- anim2 = new Animation(
- 'test-object',
- new Timeline([
- new KeyFrame({
- time: 0,
- style: {
- left: 400,
- top: 200,
- width: 200,
- height: 200
- }
- }),
- new KeyFrame({
- time: 1000,
- style: {
- left: 0,
- top: {by: -100},
- width: 100,
- height: 100
- }
- }),
- new Pause(1000),
- new KeyFrame({
- style: {
- top: 1000
- }
- })
- ])
- );
- }
- */
-
- var anim;
- function body_load()
- {
- var target = document.getElementById("test-object");
- var Animation = jsx.dom.animation.Animation;
- var Timeline = jsx.dom.animation.Timeline;
- var KeyFrame = jsx.dom.animation.KeyFrame;
- var Color = jsx.dom.css.Color;
- anim = new Animation({
- target: target,
- preferNative: false,
- timelines: [
- new Timeline({
- keyFrames: [
- new KeyFrame({
- time: 0,
- values: {
- style: {
- left: 0,
- top: 0,
- width: 10,
- height: 10,
- opacity: 1,
- //backgroundColor: new Color(255, 0, 0)
- }
- }
- }),
- new KeyFrame({
- time: "50%",
- values: {
- style: {
- left: 100,
- top: 100,
- width: 100,
- height: 100,
- opacity: 0.5,
- backgroundColor: new Color(0, 255, 0)
- }
- }
- }),
- new KeyFrame({
- time: "4s",
- values: {
- style: {
- left: 200,
- top: 200,
- width: 100,
- height: 100,
- opacity: 0,
- backgroundColor: new Color(0, 0, 255)
- }
- }
- })
- ],
- autoReverse: true
- })
- ]
- });
- }
- </script>
- </head>
-
- <body onload="body_load();" debug="true">
- <input type="button" value="Action!" onclick="anim.play();">
- <input type="button" value="More Action!" onclick="anim2.play();">
-
- <div id="test-object">
- &nbsp;
- </div>
- </body>
-</html>
/live/test/ani.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/.htaccess
===================================================================
--- live/test/.htaccess (revision 509)
+++ live/test/.htaccess (nonexistent)
@@ -1,7 +0,0 @@
-RedirectMatch permanent (.*/)preloadImages(\.html?)?(.*) $1hoverMe/
-RedirectMatch permanent (.*/test/(hoverMe))(-\d.\d\d?)?(\.html?)$ $1/$2/$2$3
-RedirectMatch permanent (.*/test)/(hoverMe.*)$ $1/dom/$2
-RedirectMatch permanent (.*/whatami)-(de)(\.html?)?(.*) $1.html.$2$4
-# RedirectMatch permanent ^(.*)/(liveconn)[^/]+$ $1/$2.html
-
-# RedirectMatch permanent (.*/)obj-?insp(?!\.(css|js)) $1ObjectInspector/nightly/latest/
Index: live/test/dom/mailto.html
===================================================================
--- live/test/dom/mailto.html (revision 509)
+++ live/test/dom/mailto.html (nonexistent)
@@ -1,173 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>mailto: URI scheme triggered with client-side scripting –
- DOM Test Cases — PointedEars' Website</title>
- <style type="text/css">
- <!--
- th
- {
- text-align: left;
- }
-
- td input[type="text"],
- td input[type="email"]
- {
- width: 100%;
- }
-
- iframe.hidden
- {
- display: none;
- }
-
- section
- {
- display: block;
- }
-
- li article {
- display: inline;
- }
- -->
- </style>
- <script type="text/javascript">
- function random ()
- {
- var r = Math.random();
- if (r === 1)
- {
- r = 0;
- }
-
- return r;
- }
-
- function randomIntInRange (leftBound, rightBound)
- {
- return (+leftBound) + Math.floor(random() * ((+rightBound) - leftBound));
- }
-
- function randomASCIIString (length)
- {
- var a = [];
- a.length = length;
- var leftBound = "A".charCodeAt(0);
- var rightBound = "z".charCodeAt(0);
-
- for (var i = 0, len = a.length; i < len; ++i)
- {
- var rnd = randomIntInRange(leftBound, rightBound);
- a[i] = String.fromCharCode(rnd);
- }
-
- return a.join("");
- }
-
- function generateMail (form)
- {
- var el = form.elements;
- var subject = el["subject"].value;
- var uri = "mailto:" + el["to"].value + "?"
- + (subject ? "subject=" + encodeURIComponent(subject) + "&" : "")
- + "body="
- + encodeURIComponent(el["body"].value || randomASCIIString(447));
-
- var item = document.createElement("li");
- var article = document.createElement("article");
- article.appendChild(document.createTextNode(uri));
- item.appendChild(article);
-
- var output = document.getElementById("output");
-
- if (!output.firstChild)
- {
- var heading = document.createElement("h2");
- heading.appendChild(document.createTextNode("Output"));
- output.appendChild(heading);
-
- var list = document.createElement("ol");
- list.id = "list";
- output.appendChild(list);
- }
- else
- {
- list = document.getElementById("list");
- }
-
- list.appendChild(item);
-
- try
- {
- window.location = uri;
- return false;
- }
- catch (e)
- {
- window.alert("location = 'mailto:' not supported."
- + " Please copy the displayed information to the e-mail"
- + " window if necessary.");
- form.action = uri;
- }
- }
-
- function store (form)
- {
- var el = form.elements;
- window.localStorage.setItem('emailgen_to', el['to'].value);
- window.localStorage.setItem('emailgen_subject', el['subject'].value);
- window.localStorage.setItem('emailgen_body', el['body'].value);
- }
-
- function restore (form)
- {
- var el = form.elements;
- el['to'].value = window.localStorage.getItem('emailgen_to');
- el['subject'].value = window.localStorage.getItem('emailgen_subject');
- el['body'].value = window.localStorage.getItem('emailgen_body');
- }
- </script>
- </head>
-
- <body>
- <h1>mailto: URI scheme triggered with client-side scripting</h1>
- <section>
- <form target="iframe" onsubmit="return generateMail(this)">
- <table>
- <tr>
- <th><label for="to"
- title="Semicolon-separated list of recipient(s)"
- >To:</label></th>
- <td><input name="to" id="to" type="email"
- value="foo@bar"
- placeholder="semicolon-separated list of recipient(s)"
- ></td>
- </tr>
- <tr>
- <th><label for="subject">Subject:</label></th>
- <td><input name="subject" id="subject" type="text"
- value="baz" placeholder="e-mail subject"></td>
- </tr>
- <tr>
- <th style="vertical-align: top; vertical-align: baseline"
- ><label for="body">Body:</label></th>
- <td><textarea name="body" id="body" cols="30"
- placeholder="447 random characters if empty"
- ></textarea></td>
- </tr>
- <tr>
- <td colspan="2" style="text-align: right"><input
- type="button" value="&#9851; Restore from Local Storage"
- onclick="restore(this.form)"><input
- type="button" value="&#9997; Save in Local Storage"
- onclick="store(this.form)"><br><input
- type="submit" value="&#9993; Generate E-mail"></td>
- </tr>
- </table>
- </form>
- <iframe name="iframe" class="hidden"></iframe>
- </section>
- <section id="output"></section>
- </body>
-</html>
\ No newline at end of file
/live/test/dom/mailto.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/dom/css.html
===================================================================
--- live/test/dom/css.html (revision 509)
+++ live/test/dom/css.html (nonexistent)
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>dom/css.js Test Case</title>
- <link rel="stylesheet" type="text/css" href="../../style.css">
- <script type="text/javascript" src="../../object.js"></script>
- <script type="text/javascript" src="../../types.js"></script>
- <script type="text/javascript" src="../../dom.js"></script>
- <script type="text/javascript" src="../../collection.js"></script>
- <script type="text/javascript" src="../../dom/css.js"></script>
- <script type="text/javascript" src="../../test/test.js"></script>
- <script type="text/javascript">
- var assertFalse = jsx.test.assertFalse;
- var assertTrue = jsx.test.assertTrue;
-
- function test()
- {
- jsx.test.runner.run({
- tests: [
- function () {
- var list = new jsx.dom.css.RuleList();
- //debugger;
- console.log(list.findBySimpleSelector("code"));
- }
- ]
- });
- }
- </script>
- </head>
-
- <body onload="test()">
- <h1><tt>dom/css.js</tt> Test&nbsp;Case</h1>
- </body>
-</html>
\ No newline at end of file
/live/test/dom/css.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/dom/countdown/index.php
===================================================================
--- live/test/dom/countdown/index.php (revision 509)
+++ live/test/dom/countdown/index.php (nonexistent)
@@ -1,81 +0,0 @@
-<?php header('Content-Type: text/html; charset=UTF-8'); ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
- <head>
- <title>DOM Test Case: Simple Countdown Timer</title>
- <link rel="Stylesheet" href="/styles/lcars.css" type="text/css">
- <style type="text/css">
- <!--
- .num {
- text-align: right;
- border: 1px solid transparent;
- width: 1.25em;
- }
-
- .num:focus {
- border: 1px solid white;
- }
-
- input {
- width: 215px;
- }
- -->
- </style>
-
- <meta http-equiv="Content-Script-Type" content="text/javascript">
- <script type="text/javascript" src="/scripts/object.js"></script>
- <script type="text/javascript" src="/scripts/string.js"></script>
- <script type="text/javascript" src="/scripts/dom.js"></script>
- <script type="text/javascript" src="/scripts/dom/events.js"></script>
- <script type="text/javascript" src="/scripts/dom/audio.js"></script>
- <script type="text/javascript" src="/scripts/dom/widgets.js"></script>
- <script type="text/javascript" src="/scripts/dom/timer.js"></script>
- <script type="text/javascript">
- var timer = new jsx.dom.Timer();
- var oHours, oMins, oSec;
-
- function handleLoad()
- {
- var f = document.forms[0];
- var es = f.elements;
-
- var SpinnerInput = jsx.dom.widgets.SpinnerInput;
- oHours = new SpinnerInput(es['hours'], null, {
- minValue: 0
- });
-
- oMins = new SpinnerInput(es['minutes'], null, {
- leadingZero: true,
- minValue: 0,
- maxValue: 59
- });
-
- oSec = new SpinnerInput(es['seconds'], null, {
- leadingZero: true,
- minValue: 0,
- maxValue: 59
- });
- }
- </script>
- </head>
-
- <body onload="handleLoad()">
- <h1>DOM Test Case: Simple Countdown Timer</h1>
-
-<!-- onkeypress="if (typeof event != 'undefined') handleKeypress(event)"
- onkeyup="if (typeof event != 'undefined') handleKeypress(event)" -->
- <form action="">
- <input name="hours" value="0" maxlength="3" class="num">&nbsp;:
- <input name="minutes" value="0" maxlength="2" class="num">&nbsp;:
- <input name="seconds" value="0" maxlength="2" class="num">
- <input type="button" value="START" class="button"
- onclick="timer.start(this)">
- <input type="button" value="STOP" class="button"
- onclick="timer.stop(this)">
- <input type="button" value="RESET" class="button"
- onclick="timer.reset(this)">
-
- </form>
- </body>
-</html>
\ No newline at end of file
Index: live/test/dom/flash.html
===================================================================
--- live/test/dom/flash.html (revision 509)
+++ live/test/dom/flash.html (nonexistent)
@@ -1,93 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>DOM Test Case: Cross-browser Flash movies</title>
- <script type="text/javascript" src="../../object.js"></script>
- <script type="text/javascript" src="../../types.js"></script>
- <script type="text/javascript" src="../../dhtml.js"></script>
- <script type="text/javascript" src="../../flash.js"></script>
- </head>
-
- <body onload="jsx.dom.flash.fix()">
- <h1>DOM Test Case: Cross-browser Flash movies</h1>
-
- <h2><code>OBJECT</code> with flash.js</h2>
- <object width="640" height="385"
- data="http://www.youtube.com/v/swoOX7vnuv4&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1"
- type="application/x-shockwave-flash">
- <param
- name="movie"
- value="http://www.youtube.com/v/swoOX7vnuv4&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1"
- >
- <param name="allowFullScreen" value="true">
- <param name="allowScriptAccess" value="always">
- </object>
-
- <h2>YouTube HTML4-compliant: <code>OBJECT</code> with data, no type,
- no <code>EMBED</code>, no <code>&lt;/param&gt;</code></h2>
- <object width="640" height="385"
- data="http://www.youtube.com/v/swoOX7vnuv4&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1">
- <param
- name="movie"
- value="http://www.youtube.com/v/swoOX7vnuv4&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1"
- >
- <param name="allowFullScreen" value="true">
- <param name="allowScriptAccess" value="always">
- </object>
-
- <h2>YouTube HTML4-compliant: <code>OBJECT</code> without data, no type,
- no <code>EMBED</code>, no <code>&lt;/param&gt;</code></h2>
- <object width="640" height="385">
- <param
- name="movie"
- value="http://www.youtube.com/v/swoOX7vnuv4&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1"
- >
- <param name="allowFullScreen" value="true">
- <param name="allowScriptAccess" value="always">
- </object>
-
- <h2>YouTube HTML5-compliant: <code>OBJECT</code> without data or type,
- and <code>EMBED</code>, no <code>&lt;/param&gt;</code>,
- no <code>&lt;/embed&gt;</code></h2>
- <object width="640" height="385">
- <param
- name="movie"
- value="http://www.youtube.com/v/swoOX7vnuv4&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1"
- >
- <param name="allowFullScreen" value="true">
- <param name="allowScriptAccess" value="always">
- <embed
- src="http://www.youtube.com/v/swoOX7vnuv4&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1"
- type="application/x-shockwave-flash"
- allowfullscreen="true"
- allowScriptAccess="always"
- width="640"
- height="385">
- </object>
-
- <h2>YouTube partially fixed: <code>OBJECT</code> without data or type,
- and <code>EMBED</code>, no <code>&lt;/param&gt;</code></h2>
- <object width="640" height="385">
- <param
- name="movie"
- value="http://www.youtube.com/v/swoOX7vnuv4&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1"
- >
- <param name="allowFullScreen" value="true">
- <param name="allowScriptAccess" value="always">
- <embed
- src="http://www.youtube.com/v/swoOX7vnuv4&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1"
- type="application/x-shockwave-flash"
- allowfullscreen="true"
- allowScriptAccess="always"
- width="640"
- height="385"
- ></embed>
- </object>
-
- <h2>YouTube original: <code>OBJECT</code> without data or type,
- and <code>EMBED</code></h2>
- <object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/swoOX7vnuv4&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/swoOX7vnuv4&color1=0xb1b1b1&color2=0xd0d0d0&hl=en_US&feature=player_embedded&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="385"></embed></object>
- </body>
-</html>
\ No newline at end of file
/live/test/dom/flash.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/dom/LiveEdit/liveedit.js
===================================================================
--- live/test/dom/LiveEdit/liveedit.js (revision 509)
+++ live/test/dom/LiveEdit/liveedit.js (nonexistent)
@@ -1,61 +0,0 @@
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-if (typeof jsx.dom == "undefined")
-{
- /**
- * @namespace
- */
- jsx.dom = {};
-}
-
-/**
- * @namespace
- */
-jsx.dom.liveedit = {
- version: "0.1"
-};
-
-/**
- * Creates and displays the LiveEdit editor
- *
- * @param target : Element
- * Target element for the editor (optional)
- * @param parent : Element
- * Parent element for the editor (optional)
- */
-jsx.dom.liveedit.LiveEdit = function(target, parent) {
- this._toolbox = new jsx.dom.Toolbox(target, parent, {
- style: {
- position: "fixed",
- top: "0",
- right: "0",
- width: "20%",
- bottom: "0",
- backgroundColor: "#ccc"
- },
- resizable: true,
- resizeFlags: {
- n: true,
- nw: true,
- w: true,
- s: true
- }
- });
-
- this.showToolbox();
-};
-
-jsx.dom.liveedit.LiveEdit.extend();
-
-/**
-* Shows the toolbox of this editor
-*/
-jsx.dom.liveedit.LiveEdit.prototype.showToolbox = function() {
- this._toolbox.render();
-};
/live/test/dom/LiveEdit/liveedit.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/dom/LiveEdit/index.html
===================================================================
--- live/test/dom/LiveEdit/index.html (revision 509)
+++ live/test/dom/LiveEdit/index.html (nonexistent)
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>LiveEdit</title>
- <script src="/scripts/object.js"></script>
- <script src="/scripts/dom.js"></script>
- <script src="/scripts/dom/events.js"></script>
- <script src="/scripts/dom/widgets2.js"></script>
- <script src="liveedit.js"></script>
- <script>var liveEdit;</script>
- </head>
-
- <body onload="liveEdit = new jsx.dom.liveedit.LiveEdit()">
- <h1>LiveEdit</h1>
- </body>
-</html>
\ No newline at end of file
/live/test/dom/LiveEdit/index.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/dom/dom.htm
===================================================================
--- live/test/dom/dom.htm (revision 509)
+++ live/test/dom/dom.htm (nonexistent)
@@ -1,103 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="expires" content="0">
-<meta name="keywords"
- content="SGML, HTML, Event, Handler, Character Reference, Script">
-<meta name="DC.Title"
- content="Referencing Document Elements Utilizing the W3C Document Object Model (DOM)">
-<meta name="DC.Creator" content="Thomas Lahn (PointedEars@gmx.de)">
-<meta name="DC.Subject" content="Test Case">
-<meta name="DC.Description" content="">
-<meta name="DC.Publisher" content="Thomas Lahn (PointedEars@gmx.de)">
-<meta name="DC.Date" content="2002-08-03T22:16:00+02:00">
-<meta name="DC.Type" content="Service">
-<meta name="DC.Format" content="text/html">
-<meta name="DC.Identifier"
- content="http://pointedears.de.vu/scripts/dom.htm">
-<meta name="DC.Source" content="Discussion in de.comp.lang.javascript">
-<meta name="DC.Language" content="de">
-<meta name="DC.Rights" content="All rights reserved to the author.">
-<meta name="GENERATOR" content="Quanta Plus">
-<title>Referencing Document Elements Utilizing the W3C Document
-Object Model (DOM)</title>
-<style type="text/css">
-<!--
-body {
- color: black;
- background-color: white;
-}
-
-a:link,a:visited,a:active,a:focus {
- text-decoration: none
-}
-
-a:link {
- color: blue;
- background-color: white;
-}
-
-a:visited {
- color: #800080;
- background-color: #ffffff;
-}
-
-a:link :hover {
- text-decoration: underline;
- background-color: white;
- color: red;
-}
-
-strong.textmarker {
- color: black;
- background-color: yellow;
-}
--->
-</style>
-</head>
-<body>
-<h1>Referencing Document Elements Utilizing the W3C Document Object
-Model (DOM)</h1>
-<p style="font-size: small;">Available online: <a
- href="http://pointedears.de.vu/scripts/dom.htm">http://pointedears.de.vu/scripts/dom.htm</a><br>
-Copyright &copy; 2002 <img src="../media/mail.gif" width="14"
- height="15" border="0" alt="@">&nbsp;<a href="mailto:Thomas%20'PointedEars'%20Lahn%20<PointedEars
- @gmx.de>?subject=dev/js/events">Thomas&nbsp;'PointedEars'&nbsp;Lahn</a>.
-All rights reserved.</p>
-<h2>Source Code</h2>
-<pre>
-[...]
-&lt;a href=&quot;...&quot; ...&gt; ... &lt;/a&gt;
-[...]
-&lt;a href=&quot;...&quot; ...&gt; ... &lt;/a&gt;
-[...]
-&lt;script type=&quot;text/javascript&quot;&gt;
- function showType() {
- alert(typeof document.getElementById(&quot;hello1&quot;));
- alert(typeof document.getElementsByName(&quot;hello2&quot;));
- alert(typeof document.getElementsByTagName(&quot;a&quot;));
- alert(document.getElementById(&quot;hello1&quot;).firstChild.nodeValue);
- alert(document.getElementsByName(&quot;hello2&quot;)[0].firstChild.nodeValue);
- alert(document.getElementsByTagName(&quot;a&quot;)[2].firstChild.nodeValue);
- }
-&lt;/script&gt;
-&lt;p&gt;&lt;a href=&quot;#&quot; id=&quot;hello1&quot; name=&quot;hello2&quot; onclick=&quot;showType(); return false;&quot;&gt;Click Me!&lt;/a&gt;&lt;/p&gt;
- </pre>
-<h2>Example</h2>
-<span style="font-size: small">(requires JavaScript)</span>
-<br>
-<script type="text/javascript">
- function showType() {
- alert(typeof document.getElementById("hello1"));
- alert(typeof document.getElementsByName("hello2"));
- alert(typeof document.getElementsByTagName("a"));
- alert(document.getElementById("hello1").firstChild.nodeValue);
- alert(document.getElementsByName("hello2")[0].firstChild.nodeValue);
- alert(document.getElementsByTagName("a")[2].firstChild.nodeValue);
- }
- </script>
-<p><a href="#" id="hello1" name="hello2"
- onclick="showType(); return false;">Click Me!</a></p>
-</body>
-</html>
Index: live/test/dom
===================================================================
--- live/test/dom (revision 509)
+++ live/test/dom (nonexistent)
/live/test/dom
Property changes:
Deleted: svn:ignore
## -1,195 +0,0 ##
-AOP
-
-autocompleter
-
-doc
-
-dragable
-
-events
-
-gecko
-
-Google Video_files
-
-hoverMe
-
-IE7
-
-JSON
-
-loadScript
-
-MSXML
-
-multimedia
-
-cookie-frameset.html
-
-computed-style.php
-
-circular-reference.odp
-
-dom-body.html
-
-dhtml-brute.html
-
-collision.html
-
-close.html
-
-body.html
-
-cookie.html
-
-applet.html
-
-find.html
-
-editItem.html
-
-dom.xhtml.php
-
-dom2.htm
-
-fade-lieb.js
-
-dom.html
-
-fade1.html
-
-outline-horiz.html
-
-text-save.html
-
-insert.html
-
-offsetHeight.xhtml
-
-tagsoup.php
-
-iframe.html
-
-window.html
-
-tabbed-menu.html
-
-form-name.html
-
-random-iframe.html
-
-mono.html
-
-script.xhtml
-
-iframe-scroll.php
-
-Google Video.html
-
-popup.html
-
-layer2.html
-
-scroll-iPhone.html
-
-overflow.html
-
-status.html
-
-Google Local.html
-
-print.html
-
-img-getter.php
-
-opera-style.php
-
-names-and-ids.php
-
-layer1.html
-
-select.php
-
-open.html
-
-referrer.html
-
-opacity.html
-
-frmbustr.html
-
-homepage.html
-
-framebreak.html
-
-Test.class
-
-input-onblur.html
-
-fullscreen.htm
-
-insert2.html
-
-htmlcoll.html
-
-gfx-reset.html
-
-parseReverse.html
-
-password.html
-
-window-name.html
-
-getSelection.html
-
-img-transition.html
-
-removeControl.html
-
-treeview.js
-
-img-refresh.html
-
-reset.html
-
-form-navillus.html
-
-window2.html
-
-selection.html
-
-popup2.html
-
-scrollbars2.html
-
-source.html
-
-menu.htm
-
-select-value.html
-
-mathml.xhtml
-
-scrollbars.html
-
-innerHeight.html
-
-resize.html
-
-resizeable-table.php
-
-stylesheets.html
-
-radioButton.html
-
-treewidget.html
-
-table-hover.html
-
-body-onload-redirect.html
-
-offset.html
-
-treewalker.html
-
-treewalker.js
Index: live/test/regexp.php
===================================================================
--- live/test/regexp.php (revision 509)
+++ live/test/regexp.php (nonexistent)
@@ -1,30 +0,0 @@
-<?php header('Content-Type: text/html; charset=utf8'); ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>regexp.js Test Case</title>
- <style type="text/css">
- <!--
- [title] {
- border-bottom: 1px dotted #666;
- cursor: help;
- }
- -->
- </style>
- <script type="text/javascript"
- src="../builder?src=object,string/unicode,dom,dom/timeout,test/test,http&amp;verbose=1"></script>
- <script type="text/javascript" src="../regexp.js"></script>
- <script type="text/javascript" src="../UnicodeData.js"></script>
- <script type="text/javascript" src="regexp-test.js"></script>
- </head>
-
- <body>
- <h1><tt>regexp.js</tt> Unit&nbsp;Test</h1>
- <div><a href="view-source:http://<?php
- echo $_SERVER['HTTP_HOST'] . htmlspecialchars($_SERVER['REQUEST_URI']);
- ?>">View source</a></div>
- <script type="text/javascript">runTests()</script>
- </body>
-</html>
\ No newline at end of file
/live/test/regexp.php
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/date.html
===================================================================
--- live/test/date.html (revision 509)
+++ live/test/date.html (nonexistent)
@@ -1,16 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>date.js Unit Test</title>
- <script type="text/javascript" src="../builder?src=object,string,test/test"></script>
- <script type="text/javascript" src="../date.js"></script>
- <script type="text/javascript" src="date.js"></script>
- </head>
-
- <body onload="runTests()">
- <h1><tt><a href="/websvn/filedetails.php?repname=JSX&path=%2Ftrunk%2Fdate.js">date.js</tt></a>
- Unit&nbsp;Test</h1>
- </body>
-</html>
\ No newline at end of file
/live/test/date.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/string.js
===================================================================
--- live/test/string.js (revision 509)
+++ live/test/string.js (nonexistent)
@@ -1,131 +0,0 @@
-function runTests()
-{
- var assert = jsx.test.assert;
- var sprintf = jsx.string.sprintf;
- var format = jsx.string.format;
-
- var tests = [
- {
- feature: 'addSlashes("\'\\"")',
- description: 'return <code>"\\\'\\""</code>',
- code: function () {
- assert(addSlashes("'\"") === "\\\'\\\"");
- }
- },
- {
- feature: 'jsx.string.parseFloat()',
- description: 'return <code>NaN</code>',
- code: function () {
- assert(isNaN(jsx.string.parseFloat()));
- }
- },
- {
- feature: 'jsx.string.parseFloat("0.25abc")',
- description: 'return <code>0.25</code>',
- code: function () {
- assert(jsx.string.parseFloat("0.25abc") === 0.25);
- }
- },
- {
- feature: 'jsx.string.parseFloat("0.1abc", 2)',
- description: 'return <code>0.5</code>',
- code: function () {
- assert(jsx.string.parseFloat("0.1abc", 2) === 0.5);
- }
- },
- {
- feature: 'jsx.string.parseFloat("10.1abc", 8)',
- description: 'return <code>8.125</code>',
- code: function () {
- assert(jsx.string.parseFloat("10.1abc", 8) === 8.125);
- }
- },
- {
- feature: 'jsx.string.parseFloat("20AC.11", 16)',
- description: 'return <code>8364.06640625</code>',
- code: function () {
- assert(jsx.string.parseFloat("20AC.11", 16) === 8364.06640625);
- }
- }
- ];
-
- var formats = [
- ["|%d|%d|", "|12345.2|-12345.2|", ],
- ["|%9d|%9d|", "|\xA0\xA012345.2|\xA0-12345.2|",
- "left-padded with NBSPs"],
- ['|%-9d|%-9d|', "|\xA0\xA012345.2|\xA0-12345.2|"],
- ['|%+9d|%+9d|', "|\xA0\xA012345.2|\xA0-12345.2|"],
- ["|%-+9d|%-+9d|", "|\xA0\xA012345.2|\xA0-12345.2|",
- "second align flag overrides first one"],
- ['|%09d|%09d|', "|0012345.2|-012345.2|",
- "left-padded with zeroes"],
- ['|% 9d|% 9d|', "|\xA0\xA012345.2|\xA0-12345.2|",
- "left-padded with spaces"],
- ['|% 09d|% 09d|', "|0012345.2|-012345.2|",
- "second padding flag overrides first\xA0one"],
- ['|%+09d|%+09d|', "|0012345.2|-012345.2|"],
- ['|%10.8f|%10.8f|', "|12345.20000000|-12345.20000000|"],
- ['|%10.-2f|%10.-2f|', "|\xA0\xA0\xA0\xA0\xA012300|\xA0\xA0\xA0\xA0-12300|",
- "left-padded with NBSPs, rounded to hundreds"]
- ];
-
- for (var j = 0, len = formats.length; j < len; j++)
- {
- var f = formats[j];
- tests.push({
- feature: 'jsx.string.sprintf("' + f[0] + '", 12345.2, -12345.2)',
- desc: 'return <code>"' + f[1] + '"</code>' + (f[2] ? " (" + f[2] + ")" : ""),
- code: (function (f) {
- return function () {
- assert(sprintf(f[0], 12345.2, -12345.2) === f[1]);
- }
- }(f))
- });
- }
-
- var s = 1235;
- var i = 12345;
- var l = 12345678;
- var u = 65535;
-
- tests = tests.concat([
- {
- feature: 'jsx.string.sprintf("|%*d|", i, 14)',
- desc: 'return <code>"|\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA012345|"</code>'
- + ' (left-padded according to next argument)',
- code: function () {
- assert(sprintf("|%*d|", i, 14) === "|\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA012345|");
- }
- },
- {
- feature: 'jsx.string.sprintf("|x%%dy|", i, 1, 9)',
- desc: 'return <code>"|x%dy|"</code>',
- code: function () {
- assert(sprintf("|x%%dy|", i, 1, 9) === "|x%dy|");
- }
- },
- {
- feature: 'jsx.string.format("|{0}|{1}|", 12345, -12345)',
- desc: 'return <code>"|12345|-12345|"</code>',
- code: function () {
- assert(format("|{0}|{1}|", 12345, -12345) === "|12345|-12345|");
- }
- },
- {
- feature: 'jsx.string.format("|{x}|{y}|", {x: 12345, y: -12345})',
- desc: 'return <code>"|12345|-12345|"</code>',
- code: function () {
- assert(format("|{x}|{y}|", {x: 12345, y: -12345}) === "|12345|-12345|");
- }
- },
- {
- feature: '"|{x}|{y}|".format({x: 12345, y: -12345})',
- desc: 'return <code>"|12345|-12345|"</code>',
- code: function () {
- assert("|{x}|{y}|".format({x: 12345, y: -12345}) === "|12345|-12345|");
- }
- }
- ]);
-
- jsx.test.runner.run({file: "string.js", tests: tests});
-}
\ No newline at end of file
/live/test/string.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/array.html
===================================================================
--- live/test/array.html (revision 509)
+++ live/test/array.html (nonexistent)
@@ -1,18 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta http-equiv="Content-Language" content="en">
- <title>PointedEars' JSX:array.js Unit Test</title>
- <script type="text/javascript" src="../builder?src=object,string,test/test"></script>
- <script type="text/javascript" src="../array.js"></script>
- <script type="text/javascript" src="array.js"></script>
- </head>
-
- <body onload="runTests()">
- <h1>PointedEars' <a href="/websvn/filedetails.php?repname=JSX&path=%2Ftrunk%2Farray.js"
- >JSX:<tt>array.js</tt></a> Unit Test</h1>
- <p>See error console for details.</p>
- </body>
-</html>
\ No newline at end of file
/live/test/array.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/object.js
===================================================================
--- live/test/object.js (revision 509)
+++ live/test/object.js (nonexistent)
@@ -1,911 +0,0 @@
-function runTests ()
-{
- var assert = jsx.test.assert;
- var assertFalse = jsx.test.assertFalse;
- var assertTrue = jsx.test.assertTrue;
-
- jsx.test.runner.run({
- file: "object.js",
- tests: [
- {
- feature: 'jsx.dmsg(…)',
- desc: "Callable, generates messages",
- code: function () {
- jsx.dmsg("log message");
- jsx.dmsg("info message", "info");
- jsx.dmsg("warning", "warn");
- jsx.dmsg("error message", "error");
- }
- },
- {
- feature: 'jsx.info(…)',
- desc: "Callable, generates info message",
- code: function () {
- jsx.info("info message");
- }
- },
- {
- feature: 'jsx.warn(…)',
- desc: "Callable, generates warning",
- code: function () {
- jsx.warn("warning");
- }
- },
- {
- feature: 'jsx.error(…)',
- desc: "Callable, generates error message",
- code: function () {
- jsx.error("error message");
- }
- },
-
- {
- feature: "jsx.object.isMethod()",
- desc: "Missing argument throws exception",
- code: function () {
- var ok = true;
- jsx.tryThis("jsx.object.isMethod()", function() { ok = false; });
- assertFalse(ok);
- }
- },
- {
- feature: "jsx.object.isMethod(false)",
- desc: "Returns <code>false</code>",
- code: function () {
- assertFalse("jsx.object.isMethod(false)");
- }
- },
- {
- feature: "jsx.object.isMethod(…)",
- desc: "Returns correct values",
- code: function () {
- assertTrue("jsx.object.isMethod(eval)");
- assertFalse("jsx.object.isMethod(this, null)");
- assertTrue("jsx.object.isMethod(this, 'eval')");
- assertFalse("jsx.object.isMethod(this, '')");
- assertTrue("jsx.object.isMethod(window, 'location', 'reload')");
- assertFalse("jsx.object.isMethod(window, 'location', 'hash')");
- assertFalse("jsx.object.isMethod('window', 'location', 'hash')");
- assertFalse("jsx.object.isMethod('window', 'location')");
- assertTrue("jsx.object.isMethod(window, 'location')");
- assertFalse("jsx.object.isMethod('foo', 'location')");
- }
- },
- {
- feature: "jsx.object.areMethods()",
- desc: "Missing argument throws exception",
- code: function () {
- var ok = true;
- jsx.tryThis("jsx.object.areMethods()", function() { ok = false; });
- assertFalse(ok);
- }
- },
- {
- feature: "jsx.object.areMethods(this, [false])",
- desc: "Returns false",
- code: function () {
- assertFalse("jsx.object.areMethods(this, [false])");
- }
- },
- {
- feature: "jsx.object.areMethods(…)",
- desc: "Returns correct values",
- code: function () {
- assertTrue("jsx.object.areMethods(this, ['eval', 'toString'])");
- /*assertTrue("jsx.object.isMethod(this, 'eval')");
- assertFalse("jsx.object.isMethod(this, '')");
- assertTrue("jsx.object.isMethod(window, 'location', 'reload')");
- assertFalse("jsx.object.isMethod(window, 'location', 'hash')");
- assertFalse("jsx.object.isMethod('window', 'location', 'hash')");
- assertFalse("jsx.object.isMethod('window', 'location')");
- assertTrue("jsx.object.isMethod(window, 'location')");
- assertFalse("jsx.object.isMethod('foo', 'location')");
- */ }
- },
- {
- feature: "jsx.object.isNativeMethod()",
- desc: "Missing argument throws exception",
- code: function () {
- var ok = true;
- jsx.tryThis("jsx.object.isNativeMethod()", function() { ok = false; });
- assertFalse(ok);
- }
- },
- {
- feature: "jsx.object.isNativeMethod(function)",
- desc: "Returns <code>true</code>",
- code: function () {
- assertTrue(jsx.object.isNativeMethod(function () {}));
- }
- },
- {
- feature: "jsx.object.isNativeMethod(object.toString)",
- desc: "Returns <code>true</code>",
- code: function () {
- assertTrue(jsx.object.isNativeMethod(({}).toString));
- }
- },
- {
- feature: "jsx.object.isNativeMethod(object)",
- desc: "Returns <code>false</code>",
- code: function () {
- assertFalse(jsx.object.isNativeMethod({}));
- }
- },
- {
- feature: 'jsx.object.isMethodType(typeof "")',
- desc: "Returns <code>false</code>",
- code: function () {
- assertFalse(jsx.object.isMethodType(typeof ""));
- }
- },
- {
- feature: 'jsx.object.isMethodType(typeof function () {})',
- desc: "Returns <code>true</code>",
- code: function () {
- assertTrue(jsx.object.isMethodType(typeof function () {}));
- }
- },
- {
- feature: 'jsx.object._hasOwnProperty("_hasOwnProperty")',
- desc: "Return <code>true</code>",
- code: function () {
- assertTrue(jsx.object._hasOwnProperty("_hasOwnProperty"));
- }
- },
- {
- feature: 'jsx.object._hasOwnProperty({}, "foo")',
- desc: "Return <code>false</code>",
- code: function () {
- assertFalse(jsx.object._hasOwnProperty({}, "foo"));
- }
- },
- {
- feature: 'jsx.object._hasOwnProperty({foo: "bar"}, "foo")',
- desc: "Return <code>true</code>",
- code: function () {
- assertTrue(jsx.object._hasOwnProperty({foo: "bar"}, "foo"));
- }
- },
- {
- feature: 'jsx.object._hasOwnProperty(new Foo(), "bar")',
- desc: "Return <code>false</code> (inherited)",
- code: function () {
- function Foo () {}
- Foo.prototype.bar = 42;
-
- /* Inherited, not own property */
- assertFalse(jsx.object._hasOwnProperty(new Foo(), "bar"));
-
- /* Simulate unavailable hasOwnProperty() method on Foo instance */
- Foo.prototype.hasOwnProperty = null;
- assertFalse(jsx.object._hasOwnProperty(new Foo(), "bar"));
- }
- },
- {
- feature: 'jsx.object.getKeys()',
- desc: 'Throw exception',
- code: function () {
- var success = jsx.tryThis(
- function () {
- jsx.object.getKeys();
- return true;
- },
- function (e) {
- jsx.error(e);
- return false;
- });
-
- assertFalse(success);
-
- /* Simulate missing Object.keys() */
- var Object_keys = Object.keys;
- delete Object.keys;
-
- success = jsx.tryThis(
- function () {
- jsx.object.getKeys();
- return true;
- },
- function (e) {
- jsx.error(e);
- return false;
- });
-
- Object.keys = Object_keys;
-
- assertFalse(success);
- }
- },
- {
- feature: 'jsx.object.getKeys({})',
- desc: 'Return <code>[]</code>',
- code: function () {
- var result = jsx.object.getKeys({});
- assertTrue(result && result.length === 0);
-
- /* Simulate missing Object.keys() */
- var Object_keys = Object.keys;
- delete Object.keys;
-
- result = jsx.object.getKeys({});
-
- Object.keys = Object_keys;
-
- assertTrue(result && result.length === 0);
- }
- },
- {
- feature: 'jsx.object.getKeys({foo: "bar"})',
- desc: 'Return <code>["foo"]</code>',
- code: function () {
- var result = jsx.object.getKeys({foo: "bar"});
- assertTrue(result && result.length === 1 && result[0] === "foo");
-
- /* Simulate missing Object.keys() */
- var Object_keys = Object.keys;
- delete Object.keys;
-
- result = jsx.object.getKeys({foo: "bar"});
-
- Object.keys = Object_keys;
-
- assertTrue(result && result.length === 1 && result[0] === "foo");
- }
- },
- {
- feature: 'jsx.object.getKeys(new Foo("baz"))',
- desc: 'Return <code>["baz"]</code>',
- code: function () {
- function Foo (propertyName)
- {
- this[propertyName] = 42;
- }
-
- Foo.prototype.bar = 42;
-
- var foo = new Foo("baz");
-
- var result = jsx.object.getKeys(foo);
- assertTrue(result && result.length === 1 && result[0] === "baz");
-
- /* Simulate missing Object.keys() */
- var Object_keys = Object.keys;
- delete Object.keys;
-
- result = jsx.object.getKeys(foo);
-
- Object.keys = Object_keys;
-
- assertTrue(result && result.length === 1 && result[0] === "baz");
- }
- },
- {
- feature: 'jsx.object.clone()',
- desc: "Returns a shallow clone of <code>jsx.object</code>",
- code: function () {
- var clone1 = jsx.object.clone();
- assertTrue(clone1.clone == jsx.object.clone);
- }
- },
- {
- feature: 'jsx.object.clone({foo: {bar: "baz"}})',
- desc: "Returns a shallow clone",
- code: function () {
- var o2 = {bar: "baz"};
- var o = {foo: o2};
-
- var clone1 = jsx.object.clone(o);
- assertTrue(clone1 != o && clone1.foo == o2);
- }
- },
- {
- feature: 'jsx.object.clone({foo: {bar: "baz"}}, 0)',
- desc: "Returns a shallow clone",
- code: function () {
- var o2 = {bar: "baz"};
- var o = {foo: o2};
-
- var clone1 = jsx.object.clone(o, 0);
- assertTrue(clone1 != o && clone1.foo == o2);
-
- var clone2 = jsx.object.clone(0, o);
- assertTrue(clone2 != o && clone2.foo == o2);
- }
- },
- {
- feature: 'jsx.object.clone({foo: {bar: "baz"}}, jsx.object.COPY_ENUM)',
- desc: "Returns a shallow clone",
- code: function () {
- var o2 = {bar: "baz"};
- var o = {foo: o2};
-
- var clone1 = jsx.object.clone(o, jsx.object.COPY_ENUM);
- assertTrue(clone1 != o && clone1.foo == o2);
-
- var clone2 = jsx.object.clone(jsx.object.COPY_ENUM, o);
- assertTrue(clone2 != o && clone2.foo == o2);
- }
- },
- {
- feature: 'jsx.object.clone({foo: {bar: "baz"}}, jsx.object.COPY_ENUM_DEEP)',
- desc: "Returns a deep clone",
- code: function () {
- var o2 = {bar: "baz"};
- var o = {foo: o2};
-
- var clone1 = jsx.object.clone(o, jsx.object.COPY_ENUM_DEEP);
- assertTrue(clone1 != o && clone1.foo != o2 && clone1.foo.bar === "baz");
-
- var clone2 = jsx.object.clone(jsx.object.COPY_ENUM_DEEP, o);
- assertTrue(clone2 != o && clone2.foo != o2 && clone2.foo.bar === "baz");
- }
- },
- {
- feature: 'jsx.object.clone({foo: {bar: "baz"}}, jsx.object.COPY_INHERIT)',
- desc: "Returns a new inheriting object",
- code: function () {
- var o2 = {bar: "baz"};
- var o = {foo: o2};
-
- var clone1 = jsx.object.clone(o, jsx.object.COPY_INHERIT);
- assertTrue(clone1 != o && !clone1.hasOwnProperty("foo")
- && clone1.foo == o2 && clone1.foo.bar === "baz");
-
- var clone2 = jsx.object.clone(jsx.object.COPY_INHERIT, o);
- assertTrue(clone2 != o && !clone2.hasOwnProperty("foo")
- && clone2.foo == o2 && clone2.foo.bar === "baz");
- }
- },
-
- {
- feature: 'jsx.object.extend()',
- desc: "Throws <code>TypeError</code>",
- code: function () {
- var success = jsx.tryThis(
- function () {
- jsx.object.extend();
- return true;
- },
- function (e) {
- jsx.error(e);
- return !(e instanceof TypeError);
- });
-
- assertFalse(success);
- }
- },
- {
- feature: 'jsx.object.extend({})',
- desc: "Throws <code>TypeError</code>",
- code: function () {
- var success = jsx.tryThis(
- function () {
- jsx.object.extend({});
- return true;
- },
- function (e) {
- jsx.error(e);
- return !(e instanceof TypeError);
- });
-
- assertFalse(success);
- }
- },
- {
- feature: 'jsx.object.extend({}, {foo: "bar"})',
- desc: "Sets property, no cloning",
- code: function () {
- var o = {};
- var o2 = {bar: "baz"};
- jsx.object.extend(o, {foo: o2});
-
- assertTrue(o.foo && o.foo == o2 && o.foo.bar === "baz");
- }
- },
- {
- feature: 'jsx.object.extend({foo: "bar"}, {foo: "baz"})',
- desc: "Does not modify existing property",
- code: function () {
- var o = {foo: "bar"};
- jsx.object.extend(o, {foo: "baz"});
-
- assertTrue(o.foo === "bar");
- }
- },
- {
- feature: 'jsx.object.extend({foo: "bar"}, {foo: "baz"}, jsx.object.ADD_OVERWRITE)',
- desc: "Modifies existing property",
- code: function () {
- var o = {foo: "bar"};
- jsx.object.extend(o, {foo: "baz"}, jsx.object.ADD_OVERWRITE);
-
- assertTrue(o.foo === "baz");
- }
- },
- {
- feature: 'jsx.object.extend({foo: "bar"}, {foo: "baz"}, jsx.object.COPY_ENUM_DEEP)',
- desc: "Sets property, with cloning",
- code: function () {
- var o = {};
- var o2 = {bar: "baz"};
- jsx.object.extend(o, {foo: o2}, jsx.object.COPY_ENUM_DEEP);
-
- assertTrue(o.foo && o.foo != o2 && o.foo.bar === "baz");
- }
- },
- {
- feature: 'jsx.object.extend({foo: "bar"}, {foo: "baz"}, jsx.object.ADD_OVERWRITE | jsx.object.COPY_ENUM_DEEP)',
- desc: "Modifies existing property, with cloning",
- code: function () {
- var o = {foo: "bar"};
- var o2 = {bar: "baz"};
- jsx.object.extend(o, {foo: o2}, jsx.object.ADD_OVERWRITE | jsx.object.COPY_ENUM_DEEP);
-
- assertTrue(o.foo && o.foo != o2 && o.foo.bar === "baz");
- }
- },
-
- {
- feature: 'jsx.object.defineProperty()',
- desc: "Throws <code>TypeError</code>",
- code: function () {
- var success = jsx.tryThis(
- function () {
- jsx.object.defineProperty();
- return true;
- },
- function (e) {
- jsx.error(e);
- return !(e instanceof TypeError);
- });
-
- assertFalse(success);
- }
- },
- {
- feature: 'jsx.object.defineProperty(42)',
- desc: "Throws <code>TypeError</code>",
- code: function () {
- var success = jsx.tryThis(
- function () {
- jsx.object.defineProperty(42);
- return true;
- },
- function (e) {
- jsx.error(e);
- return !(e instanceof TypeError);
- });
-
- assertFalse(success);
- }
- },
- {
- feature: 'jsx.object.defineProperty(null)',
- desc: "Throws <code>TypeError</code>",
- code: function () {
- var success = jsx.tryThis(
- function () {
- jsx.object.defineProperty(null);
- return true;
- },
- function (e) {
- jsx.error(e);
- return !(e instanceof TypeError);
- });
-
- assertFalse(success);
- }
- },
- {
- feature: 'jsx.object.defineProperty({})',
- desc: "Missing descriptor throws <code>TypeError</code>",
- code: function () {
- var success = jsx.tryThis(
- function () {
- jsx.object.defineProperty({});
- return true;
- },
- function (e) {
- jsx.error(e);
- return !(e instanceof TypeError);
- });
-
- assertFalse(success);
- }
- },
- {
- feature: 'jsx.object.defineProperty({}, "foo")',
- desc: "Missing descriptor throws <code>TypeError</code>",
- code: function () {
- var success = jsx.tryThis(
- function () {
- jsx.object.defineProperty({}, "foo");
- return true;
- },
- function (e) {
- jsx.error(e);
- return !(e instanceof TypeError);
- });
-
- assertFalse(success);
- }
- },
- {
- feature: 'jsx.object.defineProperty({}, "foo", 42)',
- desc: "Invalid descriptor throws <code>TypeError</code>",
- code: function () {
- var success = jsx.tryThis(
- function () {
- jsx.object.defineProperty({}, "foo", 42);
- return true;
- },
- function (e) {
- jsx.error(e);
- return !(e instanceof TypeError);
- });
-
- assertFalse(success);
- }
- },
- {
- feature: 'jsx.object.defineProperty({}, "foo", {})',
- desc: 'Defines read-only <code>foo</code> property'
- + ' with value <code>undefined</code>'
- + ' and returns correct value',
- code: function () {
- var o = {};
- var result = jsx.object.defineProperty(o, "foo", {});
-
- assertTrue("foo" in o);
- o.foo = 42;
- assertTrue(typeof o.foo == "undefined");
- assertTrue(result === o);
- }
- },
- {
- feature: 'jsx.object.defineProperty({}, "foo", {value: 42})',
- desc: 'Defines read-only <code>foo</code> property'
- + ' with value <code>42</code>'
- + ' and returns correct value',
- code: function () {
- var o = {};
- var result = jsx.object.defineProperty(o, "foo", {
- value: 42
- });
-
- o.foo = "23";
- assertTrue(o.foo === 42);
- assertTrue(result === o);
- }
- },
- {
- feature: 'jsx.object.defineProperty({}, "foo", {value: 42, writable: true})',
- desc: 'Defines writable <code>foo</code> property'
- + ' with initial value <code>42</code>'
- + ' and returns correct value',
- code: function () {
- var o = {};
- var result = jsx.object.defineProperty(o, "foo", {
- value: 42,
- writable: true
- });
-
- assertTrue(o.foo === 42);
- o.foo = "23";
- assertTrue(o.foo === "23");
- assertTrue(result === o);
- }
- },
- {
- feature: 'jsx.object.defineProperty({}, "foo", {"get": …})',
- desc: 'Defines read-only <code>foo</code> property with getter'
- + ' and returns correct value',
- code: function () {
- var o = {};
- var result = jsx.object.defineProperty(o, "foo", {
- "get": function () { return 42; }
- });
-
- assertTrue(o.foo === 42);
- o.foo = "23";
- assertTrue(o.foo === 42);
- assertTrue(result === o);
- }
- },
- {
- feature: 'jsx.object.defineProperty({}, "foo", {"set": …})',
- desc: 'Defines <code>foo</code> property with setter'
- + ' and returns correct value',
- code: function () {
- var o = {};
- var _x = "23";
- var result = jsx.object.defineProperty(o, "foo", {
- "set": function (value) { _x = value; }
- });
-
- o.foo = 42;
- assertTrue(_x === 42);
- assertTrue(result === o);
- }
- },
-
- {
- feature: 'jsx.object.defineProperties()',
- desc: "Throws <code>TypeError</code>",
- code: function () {
- var success = jsx.tryThis(
- function () {
- jsx.object.defineProperties();
- return true;
- },
- function (e) {
- jsx.error(e);
- return !(e instanceof TypeError);
- });
-
- assertFalse(success);
- }
- },
- {
- feature: 'jsx.object.defineProperties(42)',
- desc: "Throws <code>TypeError</code>",
- code: function () {
- var success = jsx.tryThis(
- function () {
- jsx.object.defineProperties(42);
- return true;
- },
- function (e) {
- jsx.error(e);
- return !(e instanceof TypeError);
- });
-
- assertFalse(success);
- }
- },
- {
- feature: 'jsx.object.defineProperties(null)',
- desc: "Throws <code>TypeError</code>",
- code: function () {
- var success = jsx.tryThis(
- function () {
- jsx.object.defineProperties(null);
- return true;
- },
- function (e) {
- jsx.error(e);
- return !(e instanceof TypeError);
- });
-
- assertFalse(success);
- }
- },
- {
- feature: 'jsx.object.defineProperties({})',
- desc: "Missing descriptor throws <code>TypeError</code>",
- code: function () {
- var success = jsx.tryThis(
- function () {
- jsx.object.defineProperties({});
- return true;
- },
- function (e) {
- jsx.error(e);
- return !(e instanceof TypeError);
- });
-
- assertFalse(success);
- }
- },
- {
- feature: 'jsx.object.defineProperties({}, {foo: 42})',
- desc: "Invalid descriptor throws <code>TypeError</code>",
- code: function () {
- var success = jsx.tryThis(
- function () {
- jsx.object.defineProperties({}, {foo: 42});
- return true;
- },
- function (e) {
- jsx.error(e);
- return !(e instanceof TypeError);
- });
-
- assertFalse(success);
- }
- },
- {
- feature: 'jsx.object.defineProperties({}, {foo: {}})',
- desc: 'Defines read-only <code>foo</code> property'
- + ' with value <code>undefined</code>'
- + ' and returns correct value',
- code: function () {
- var o = {};
- var result = jsx.object.defineProperties(o, {foo: {}});
-
- assertTrue("foo" in o);
- o.foo = 42;
- assertTrue(typeof o.foo == "undefined");
- assertTrue(result === o);
- }
- },
- {
- feature: 'jsx.object.defineProperties({}, {foo: {value: 42}})',
- desc: 'Defines read-only <code>foo</code> property'
- + ' with value <code>42</code>'
- + ' and returns correct value',
- code: function () {
- var o = {};
- var result = jsx.object.defineProperties(o, {
- foo: {
- value: 42
- }
- });
-
- o.foo = "23";
- assertTrue(o.foo === 42);
- assertTrue(result === o);
- }
- },
- {
- feature: 'jsx.object.defineProperties({}, {foo: {value: 42, writable: true}})',
- desc: 'Defines writable <code>foo</code> property'
- + ' with initial value <code>42</code>'
- + ' and returns correct value',
- code: function () {
- var o = {};
- var result = jsx.object.defineProperties(o, {
- foo: {
- value: 42,
- writable: true
- }
- });
-
- assertTrue(o.foo === 42);
- o.foo = "23";
- assertTrue(o.foo === "23");
- assertTrue(result === o);
- }
- },
- {
- feature: 'jsx.object.defineProperties({}, {foo: {"get": …}})',
- desc: 'Defines read-only <code>foo</code> property with getter'
- + ' and returns correct value',
- code: function () {
- var o = {};
- var result = jsx.object.defineProperties(o, {
- foo: {
- "get": function () { return 42; }
- }
- });
-
- assertTrue(o.foo === 42);
- o.foo = "23";
- assertTrue(o.foo === 42);
- assertTrue(result === o);
- }
- },
- {
- feature: 'jsx.object.defineProperties({}, {foo: {"set": …}})',
- desc: 'Defines <code>foo</code> property with setter'
- + ' and returns correct value',
- code: function () {
- var o = {};
- var _x = "23";
- var result = jsx.object.defineProperties(o, {
- "foo": {
- "set": function (value) { _x = value; }
- }
- });
-
- o.foo = 42;
- assertTrue(_x === 42);
- assertTrue(result === o);
- },
- },
-
- {
- feature: 'jsx.object._propertyIsEnumerable()',
- desc: 'Returns <code>false</code>',
- code: function () {
- assertFalse(jsx.object._propertyIsEnumerable());
- }
- },
- {
- feature: 'jsx.object._propertyIsEnumerable("_propertyIsEnumerable")',
- desc: 'Returns <code>true</code>',
- code: function () {
- assertTrue(jsx.object._propertyIsEnumerable("_propertyIsEnumerable"));
- }
- },
- {
- feature: 'jsx.object._propertyIsEnumerable(object, "…")',
- desc: 'Returns correct value',
- code: function () {
- function MyType () {}
- MyType.prototype.answer = 42;
-
- var o = new MyType();
- o.x = 42;
-
- assertFalse(jsx.object._propertyIsEnumerable(o, "prototype"));
- assertFalse(jsx.object._propertyIsEnumerable(o, "answer"));
- assertTrue(jsx.object._propertyIsEnumerable(o, "x"));
- }
- },
-
- {
- feature: 'jsx.object.hasPropertyValue()',
- desc: 'Missing object returns <code>false</code>'
- + ' or throws <code>TypeError</code>',
- code: function () {
- var success = jsx.tryThis(
- function () {
- return jsx.object.hasPropertyValue();
- },
- function (e) {
- jsx.error(e);
- return !(e instanceof TypeError);
- });
-
- assertFalse(success);
- }
- },
- {
- feature: 'jsx.object.hasPropertyValue({x: void 0})',
- desc: 'Missing needle searches for <code>undefined</code>',
- code: function () {
- assertTrue(jsx.object.hasPropertyValue({x: void 0}));
- }
- },
- {
- feature: 'jsx.object.hasPropertyValue({x: …}, 42)',
- desc: 'Returns correct value',
- code: function () {
- assertFalse(jsx.object.hasPropertyValue({x: 23}, 42));
- assertTrue(jsx.object.hasPropertyValue({x: 42}, 42));
- }
- },
- {
- feature: 'jsx.object.hasPropertyValue({x: 42}, 42, {exclude: ["x"]})',
- desc: 'Returns <code>false</code>',
- code: function () {
- assertFalse(jsx.object.hasPropertyValue({x: 42}, 42, {exclude: ["x"]}));
- }
- },
- {
- feature: 'jsx.object.hasPropertyValue({x: {y: 42}}, 42, {recursive: true}))',
- desc: 'Returns <code>true</code>',
- code: function () {
- assertTrue(jsx.object.hasPropertyValue({x: {y: 42}}, 42, {recursive: true}));
- }
- },
- {
- feature: 'jsx.object.hasPropertyValue({x: 42}, "42", {strict: true}))',
- desc: 'Returns <code>false</code>',
- code: function () {
- assertFalse(jsx.object.hasPropertyValue({x: 42}, "42", {strict: true}));
- }
- },
-
- {
- feature: 'jsx.object.findNewProperty(…)',
- desc: 'Returns the correct value',
- code: function () {
- assert(jsx.object.findNewProperty() === "a_");
- assert(jsx.object.findNewProperty({}) === "a_");
- assert(jsx.object.findNewProperty({"a_": true}) === "b_");
- assert(jsx.object.findNewProperty({"a_": true, "b_": true}) === "c_");
-
- var o = {};
- for (var i = "a".charCodeAt(0), max = "z".charCodeAt(0); i <= max; ++i)
- {
- o[String.fromCharCode(i) + "_"] = true;
- }
- assert(jsx.object.findNewProperty(o, 1) === "");
- }
- }
- ]
- });
-}
\ No newline at end of file
/live/test/object.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/regexp-test.js
===================================================================
--- live/test/regexp-test.js (revision 509)
+++ live/test/regexp-test.js (nonexistent)
@@ -1,1003 +0,0 @@
-var RegExp2 = jsx.regexp.RegExp;
-var String2 = jsx.regexp.String;
-
-function runTests ()
-{
- var message = document.createElement("p");
-
- function removeMessage ()
- {
- message.parentNode.removeChild(message);
- message = null;
- }
-
- var _runAsync = jsx.dom.timeout.runAsync;
- _runAsync(function () {
- message.appendChild(document.createTextNode("Unit test in progress…"));
-
- var hint = document.createElement("p");
- var strong = document.createElement("strong");
- strong.appendChild(document.createTextNode("See error console for details."));
- hint.appendChild(strong);
-
- var body = document.body;
- body.appendChild(message);
- body.appendChild(hint);
- });
-
- _runAsync(function () {
- var assert = jsx.test.assert;
- var assertTrue = jsx.test.assertTrue;
- var assertFalse = jsx.test.assertFalse;
- var out = [];
-
- jsx.test.runner.run({
- file: "regexp.js",
- feature: "jsx.regexp.RegExp",
- tests: [
- {
- feature: "jsx.regexp.toString2(RegExp),"
- + " regexp.toString2()",
- desc: "Return the literal that was used to create"
- + " the <code>RegExp</code>, without delimiters"
- + " and flags",
- code: function () {
- var s = "\\bfo?o+";
- var rx = new RegExp(s);
- assert(jsx.regexp.toString2(rx) === s);
- assert(rx.toString2() === s);
- }
- },
- {
- feature: "jsx.regexp.concat(…),"
- + " RegExp.prototype.concat(…)",
- desc: "Concat <code>RegExp</code>s",
- code: function () {
- assert(jsx.regexp.concat(/foo/, /bar/).source == "foobar");
- assert(/foo/.concat(/bar/).source == "foobar");
- }
- },
- {
- feature: "jsx.regexp.concat(…),"
- + " RegExp.prototype.concat(…)",
- desc: "Concat <code>RegExp</code>s, merge flags",
- code: function () {
- var rx = jsx.regexp.concat(/foo/, /bar/g);
- assertTrue(rx.global && !rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/, /bar/);
- assertTrue(!rx.global && !rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/, /bar/g);
- assertTrue(rx.global && !rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/, /bar/i);
- assertTrue(!rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/, /bar/m);
- assertTrue(!rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/, /bar/gi);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/, /bar/gm);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/, /bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/g, /bar/);
- assertTrue(rx.global && !rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/g, /bar/g);
- assertTrue(rx.global && !rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/g, /bar/i);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/g, /bar/m);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/g, /bar/gi);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/g, /bar/gm);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/g, /bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/i, /bar/);
- assertTrue(!rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/i, /bar/g);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/i, /bar/i);
- assertTrue(!rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/i, /bar/m);
- assertTrue(!rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/i, /bar/gi);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/i, /bar/gm);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/i, /bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/m, /bar/);
- assertTrue(!rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/m, /bar/g);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/m, /bar/i);
- assertTrue(!rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/m, /bar/m);
- assertTrue(!rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/m, /bar/gi);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/m, /bar/gm);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/m, /bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gi, /bar/);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gi, /bar/g);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gi, /bar/i);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gi, /bar/m);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gi, /bar/gi);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gi, /bar/gm);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gi, /bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gm, /bar/);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gm, /bar/g);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gm, /bar/i);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gm, /bar/m);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gm, /bar/gi);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gm, /bar/gm);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gm, /bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gim, /bar/);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gim, /bar/g);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gim, /bar/gi);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gim, /bar/gm);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gim, /bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/.concat(/bar/g);
- assertTrue(rx.global && !rx.ignoreCase && !rx.multiline);
-
- rx = /foo/.concat(/bar/);
- assertTrue(!rx.global && !rx.ignoreCase && !rx.multiline);
-
- rx = /foo/.concat(/bar/g);
- assertTrue(rx.global && !rx.ignoreCase && !rx.multiline);
-
- rx = /foo/.concat(/bar/i);
- assertTrue(!rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = /foo/.concat(/bar/m);
- assertTrue(!rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = /foo/.concat(/bar/gi);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = /foo/.concat(/bar/gm);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = /foo/.concat(/bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/g.concat(/bar/);
- assertTrue(rx.global && !rx.ignoreCase && !rx.multiline);
-
- rx = /foo/g.concat(/bar/g);
- assertTrue(rx.global && !rx.ignoreCase && !rx.multiline);
-
- rx = /foo/g.concat(/bar/i);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = /foo/g.concat(/bar/m);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = /foo/g.concat(/bar/gi);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = /foo/g.concat(/bar/gm);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = /foo/g.concat(/bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/i.concat(/bar/);
- assertTrue(!rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = /foo/i.concat(/bar/g);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = /foo/i.concat(/bar/i);
- assertTrue(!rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = /foo/i.concat(/bar/m);
- assertTrue(!rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/i.concat(/bar/gi);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = /foo/i.concat(/bar/gm);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/i.concat(/bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/m.concat(/bar/);
- assertTrue(!rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = /foo/m.concat(/bar/g);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = /foo/m.concat(/bar/i);
- assertTrue(!rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/m.concat(/bar/m);
- assertTrue(!rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = /foo/m.concat(/bar/gi);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/m.concat(/bar/gm);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = /foo/m.concat(/bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/gi.concat(/bar/);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = /foo/gi.concat(/bar/g);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = /foo/gi.concat(/bar/i);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = /foo/gi.concat(/bar/m);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/gi.concat(/bar/gi);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = /foo/gi.concat(/bar/gm);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/gi.concat(/bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/gm.concat(/bar/);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = /foo/gm.concat(/bar/g);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = /foo/gm.concat(/bar/i);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/gm.concat(/bar/m);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = /foo/gm.concat(/bar/gi);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/gm.concat(/bar/gm);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = /foo/gm.concat(/bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/gim.concat(/bar/);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/gim.concat(/bar/g);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/gim.concat(/bar/gi);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/gim.concat(/bar/gm);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = /foo/gim.concat(/bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
- }
- },
- {
- feature: "jsx.regexp.concat(…),"
- + " RegExp.prototype.concat(…)",
- desc: "Concat <code>RegExp</code>s and <code>String</code>s",
- code: function () {
- assert(jsx.regexp.concat(/foo/, "|", /bar/).source == "foo|bar");
- assert(jsx.regexp.concat(/foo/, "|", "bar").source == "foo|bar");
- assert(jsx.regexp.concat("foo", "|", "bar").source == "foo|bar");
-
- assert(/foo/.concat("|", /bar/).source == "foo|bar");
- assert(/foo/.concat("|", "bar").source == "foo|bar");
- }
- },
- {
- feature: "jsx.regexp.concat(…),"
- + " RegExp.prototype.concat(…)",
- desc: "Concat <code>RegExp</code>s and <code>String</code>s, merge flags",
- code: function () {
- var rx = jsx.regexp.concat(/foo/, "|", /bar/);
- assertTrue(!rx.global && !rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/, "|", /bar/g);
- assertTrue(rx.global && !rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/, "|", /bar/i);
- assertTrue(!rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/, "|", /bar/m);
- assertTrue(!rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/, "|", /bar/gi);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/, "|", /bar/gm);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/, "|", /bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/g, "|", /bar/);
- assertTrue(rx.global && !rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/g, "|", /bar/g);
- assertTrue(rx.global && !rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/g, "|", /bar/i);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/g, "|", /bar/m);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/g, "|", /bar/gi);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/g, "|", /bar/gi);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/g, "|", /bar/gm);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/g, "|", /bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/i, "|", /bar/);
- assertTrue(!rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/i, "|", /bar/g);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/i, "|", /bar/i);
- assertTrue(!rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/i, "|", /bar/m);
- assertTrue(!rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/i, "|", /bar/gi);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/i, "|", /bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/m, "|", /bar/);
- assertTrue(!rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/m, "|", /bar/g);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/m, "|", /bar/i);
- assertTrue(!rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/m, "|", /bar/m);
- assertTrue(!rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/m, "|", /bar/gi);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/m, "|", /bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gi, "|", /bar/);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gi, "|", /bar/g);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gi, "|", /bar/i);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gi, "|", /bar/m);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gi, "|", /bar/gi);
- assertTrue(rx.global && rx.ignoreCase && !rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gi, "|", /bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gm, "|", /bar/);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gm, "|", /bar/g);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gm, "|", /bar/i);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gm, "|", /bar/m);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gm, "|", /bar/gi);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gm, "|", /bar/gm);
- assertTrue(rx.global && !rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gm, "|", /bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gim, "|", /bar/);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gim, "|", /bar/g);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gim, "|", /bar/i);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gim, "|", /bar/m);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gim, "|", /bar/gi);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gim, "|", /bar/gm);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
-
- rx = jsx.regexp.concat(/foo/gim, "|", /bar/gim);
- assertTrue(rx.global && rx.ignoreCase && rx.multiline);
- }
- },
- {
- feature: 'jsx.regexp.intersect(), /foo/.intersect(),'
- + ' jsx.regexp.intersect(…)',
- desc: "Return <code>null</code>",
- code: function () {
- assert(jsx.regexp.intersect() === null);
- assert(/foo/.intersect() === null);
- assert(jsx.regexp.intersect("foo") === null);
- assert(jsx.regexp.intersect(/foo/) === null);
- }
- },
- {
- feature: "jsx.regexp.intersect(String, …)",
- desc: "Return <code>null</code>",
- code: function () {
- assert(jsx.regexp.intersect("foo", "bar") === null);
- assert(jsx.regexp.intersect("foo", /bar/) === null);
- }
- },
- {
- feature: "regexp.intersect(String)",
- desc: "Return <code>null</code>",
- code: function () {
- assert(/foo/.intersect("bar") === null);
- }
- },
- {
- feature: "jsx.regexp.intersect(/foo/, /bar/),"
- + " /foo/.intersect(/bar/)",
- desc: 'Return <code>/()/</code>',
- code: function () {
- assert(jsx.regexp.intersect(/foo/, /bar/).source === "()");
- assert(/foo/.intersect(/bar/).source === "()");
- }
- },
- {
- feature: "jsx.regexp.intersect(/foo|bar/, /baz|bar/),"
- + " /foo|bar/.intersect(/baz|bar/)",
- desc: 'Return <code>/(bar)/</code>',
- code: function () {
- assert(jsx.regexp.intersect(/foo|bar/, /baz|bar/).source == "(bar)");
- assert(/foo|bar/.intersect(/baz|bar/).source == "(bar)");
- }
- },
- {
- feature: "jsx.regexp.intersect(/foo|bar|baz/, /baz|bla|bar/)",
- desc: 'Return <code>/(bar|baz)/</code> or <code>/(baz|bar)/</code>',
- code: function () {
- var rx = jsx.regexp.intersect(/foo|bar|baz/, /baz|bla|bar/);
- assert(rx.source == "(bar|baz)" || rx.source == "(baz|bar)");
- }
- },
- {
- name: 'Use statically loaded'
- + ' <acronym title="Unicode Character Database"'
- + '>UCD</acronym> (script)',
- code: function () {
- assert(typeof RegExp2.propertyClasses != "undefined");
-
- var rx = new RegExp2("\\p{Zp}");
- assert(rx.source == "[\u2029]");
-
- if (!jsx.info(rx))
- {
- out.push(rx);
- }
- }
- },
- {
- name: 'Load UCD dynamically with'
- + ' <acronym title="XMLHttpRequest">XHR</acronym> (script)',
- code: function () {
- delete RegExp2.propertyClasses;
- assert(typeof RegExp2.propertyClasses == "undefined");
-
- var rx = new RegExp2("\\p{Zp}");
- assert(rx.source == "[\u2029]");
-
- if (!jsx.info(rx))
- {
- out.push(rx);
- }
- }
- },
- {
- name: 'Load UCD dynamically with'
- + ' <acronym title="XMLHttpRequest">XHR</acronym> (text)',
- code: function () {
- var propertyClasses = RegExp2.propertyClasses;
- delete RegExp2.propertyClasses;
- assert(typeof RegExp2.propertyClasses == "undefined");
-
- var ucdScriptPath = RegExp2.ucdScriptPath;
- delete RegExp2.ucdScriptPath;
- assert(typeof RegExp2.ucdScriptPath == "undefined");
- assert(typeof RegExp2.ucdTextPath == "string");
-
- var rx;
- jsx.tryThis(
- function () {
- rx = new RegExp2("\\p{Ll}");
- },
- function (e) {
- jsx.error(e);
- });
-
- var classLl = "[" + RegExp2.propertyClasses["Ll"] + "]";
- RegExp2.ucdScriptPath = ucdScriptPath;
- RegExp2.propertyClasses = propertyClasses;
- assert(rx && (rx.source == classLl));
-
- if (!jsx.info(rx))
- {
- out.push(rx);
- }
- }
- },
- {
- name: "Throw exception on undefined property class",
- code: function () {
- RegExp2.deletePropertyClass("Zp");
- var thrown = false;
- jsx.tryThis(
- function () {
- var rx = new RegExp2("\\p{Zp}");
- if (!jsx.info(rx))
- {
- out.push(rx);
- }
- },
- function (e) {
- if (e.name == "jsx.regexp.UndefinedPropertyClassError")
- {
- thrown = true;
- if (!jsx.info(e))
- {
- out.push(e);
- }
- }
- else
- {
- jsx.rethrowThis(e);
- }
- });
-
- assertTrue(thrown);
- }
- },
- {
- name: '<acronym title="Perl-Compatible Regular Expressions"'
- + '>PCRE</acronym> option flags:'
- + ' <code>x</code> (PCRE_EXTENDED)'
- + ' – remove single-line comments'
- + ' and unescaped whitespace',
- code: function () {
- var rx = new RegExp2(" x#foo\n\\ y#bar", "x");
- assert(rx.source == "x y");
- }
- },
- {
- name: 'PCRE pattern-match modifiers <code>(?x)</code> and <code>(?-x)</code>',
- code: function () {
- var rx = new RegExp2("a b#foo\n(?-x)c d#bar\r\n(?x)d e#baz\r(?-x)f g", "x");
- assert(rx.source == "abc d#bar\r\ndef g");
- }
- },
- {
- name: 'PCRE combined pattern-match modifier <code>(?x-x)</code>'
- + ' (no change)',
- code: function () {
- var rx = new RegExp2("(?x-x)a b#foo");
- assert(rx.source == "a b#foo");
- }
- },
- {
- name: "PCRE option flags: <code>extended</code> property",
- code: function () {
- assertFalse(new RegExp2("\\w", "").extended);
- assertTrue(new RegExp2("\\w", "x").extended);
- }
- },
- {
- name: "PCRE option flags: <code>s</code> (PCRE_DOTALL)"
- + " – <code>.</code> matches newline too",
- code: function () {
- var rx = new RegExp2(".", "s");
- assert(rx.source == "[\\S\\s]");
-
- assert("\n".match(rx)[0] == "\n");
- }
- },
- {
- name: 'PCRE pattern-match modifiers <code>(?s)</code> and <code>(?-s)</code>',
- code: function () {
- var rx = new RegExp2("a.b(?-s)c.d(?s)e.f", "s");
- assert(rx.source == "a[\\S\\s]bc.de[\\S\\s]f");
-
- assert(("a\nbc.de\nf".match(rx) || [])[0] === "a\nbc.de\nf");
- assert("a\nbc\nde\nf".match(rx) === null);
- }
- },
- {
- name: 'PCRE combined pattern-match modifier <code>(?s-s)</code>'
- + ' (no change)',
- code: function () {
- var rx = new RegExp2("a.b(?s-s)c.de.f");
- assert(rx.source == "a.bc.de.f");
- }
- },
- {
- name: "PCRE option flags: <code>dotAll</code> property",
- code: function () {
- assertFalse(new RegExp2("\\w", "").dotAll);
- assertTrue(new RegExp2("\\w", "s").dotAll);
- }
- },
- {
- name: "PCRE named subpatterns: <code>?&lt;name&gt;</code>"
- + "(Perl style)",
- code: function () {
- var rx = new RegExp2("(?<foo>bar)");
- assert(rx.groups[1] === "foo");
-
- assert(rx.exec("bar").groups.foo === "bar");
-
- var m = new String2("bar").match(rx);
- assert(m.groups.foo === "bar");
- }
- },
- {
- name: "PCRE named subpatterns: <code>?'name'</code>"
- + " (Perl style)",
- code: function () {
- var rx = new RegExp2("(?P'foo'bar)");
- assert(rx.groups[1] === "foo");
-
- assert(rx.exec("bar").groups.foo === "bar");
-
- var s = new String2("bar");
- var m = s.match(rx);
- assert(m.groups.foo === "bar");
- }
- },
- {
- name: "PCRE named subpatterns: <code>?P&lt;name&gt;</code>"
- + " (Python style)",
- code: function () {
- var rx = new RegExp2("(?P<foo>bar)");
- assert(rx.groups[1] === "foo");
-
- assert(rx.exec("bar").groups.foo === "bar");
-
- var s = new String2("bar");
- var m = s.match(rx);
- assert(m.groups.foo === "bar");
- }
- },
- {
- name: "PCRE named subpatterns with modifiers: <code>(?sx'name'…)</code>"
- + " (Perl style)",
- code: function () {
- var rx = new RegExp2("(?s'foo'.)");
- assert(rx.source === "([\\S\\s])");
- assert(rx.groups[1] === "foo");
- assert(rx.names["foo"] === 1);
- }
- },
- {
- name: "PCRE named subpatterns with modifiers: <code>(?sx<name>…)</code>"
- + " (Python style)",
- code: function () {
- var rx = new RegExp2("(?s<foo>.)");
- assert(rx.source === "([\\S\\s])");
- assert(rx.groups[1] === "foo");
- assert(rx.names["foo"] === 1);
- }
- },
- {
- name: "Unicode mode: <code>unicodeMode</code> property",
- code: function () {
- assertFalse(new RegExp2("\\w", "").unicodeMode);
- assertTrue(new RegExp2("\\w", "u").unicodeMode);
- }
- },
- {
- name: "Unicode mode: <code>\\d</code> matches non-ASCII digit",
- code: function () {
- var rx = new RegExp2("\\d", "u");
- assert(rx.exec("\uFF19") != null);
- }
- },
- {
- name: "Unicode mode: <code>[\\d]</code> matches non-ASCII digit",
- code: function () {
- var rx = new RegExp2("[\\d]", "u");
- assert(rx.exec("\uFF19") != null);
- }
- },
- {
- name: "Unicode mode: <code>\\s</code> matches non-ASCII whitespace",
- code: function () {
- var rx = new RegExp2("\\s", "u");
- assert(rx.exec("\u3000") != null);
- }
- },
- {
- name: "Unicode mode: <code>[\\s]</code> matches non-ASCII whitespace",
- code: function () {
- var rx = new RegExp2("[\\s]", "u");
- assert(rx.exec("\u3000") != null);
- }
- },
- {
- name: "Unicode mode: <code>\\w</code> matches non-ASCII letter",
- code: function () {
- var rx = new RegExp2("\\w", "u");
- assert(rx.exec("ä") != null);
- }
- },
- {
- name: "Unicode mode: <code>[\\w]</code> matches"
- + " non-ASCII letter",
- code: function () {
- var rx = new RegExp2("[\\w]", "u");
- assert((rx.exec("ä") || [])[0] == "ä");
- }
- },
- {
- name: "Unicode mode: <code>\\W</code> does not match"
- + " non-ASCII letter",
- code: function () {
- var rx = new RegExp2("\\W", "u");
- assert(rx.exec("ä") === null);
- }
- },
- {
- name: "Unicode mode: <code>[\\W]</code> does not match"
- + " non-ASCII letter",
- code: function () {
- var rx = new RegExp2("[\\W]", "u");
- assert(rx.exec("ä") === null);
- }
- },
- {
- name: "Unicode mode: <code>[^\\W]</code> matches"
- + " non-ASCII letter",
- code: function () {
- var rx = new RegExp2("[^\\W]", "u");
- assert((rx.exec("ä") || [])[0] == "ä");
- }
- },
- {
- name: "Unicode mode: <code>\\b</code> matches"
- + " at the start of input",
- code: function () {
- var rx = new RegExp2("\\ba", "u");
- assert((rx.exec("a") || [])[0] === "a");
- }
- },
- {
- name: "Unicode mode: <code>\\b</code> matches"
- + " after initial opening group parenthesis",
- code: function () {
- assert(((new RegExp2("(\\ba)", "u")).exec("a") || [])[0] === "a");
- assert(((new RegExp2("(?:\\ba)", "u")).exec("a") || [])[0] === "a");
- assert(((new RegExp2("(?<foo>\\ba)", "u")).exec("a") || [])[0] === "a");
- assert(((new RegExp2("(?'foo'\\ba)", "u")).exec("a") || [])[0] === "a");
- assert(((new RegExp2("(?P<foo>\\ba)", "u")).exec("a") || [])[0] === "a");
- }
- },
- {
- name: "Unicode mode: <code>\\b</code> matches"
- + " at the end of input",
- code: function () {
- var rx = new RegExp2("a\\b", "u");
- assert((rx.exec("a") || [])[0] === "a");
- }
- },
- {
- name: "Unicode mode: <code>\\b</code> does not"
- + " match after non-ASCII letter",
- code: function () {
- var rx = new RegExp2("\\ba", "u");
- assert(rx.exec("äa") === null);
- }
- },
- {
- name: "Unicode mode: <code>\\b</code> does not"
- + " match before non-ASCII letter",
- code: function () {
- var rx = new RegExp2("a\\b", "u");
- assert(rx.exec("aä") === null);
- }
- },
- {
- feature: '(new jsx.regex.RegExp(…, "u")).exec(String)',
- name: "Unicode mode: <code>\\b</code> matches"
- + " after non-letter, match is trimmed",
- code: function () {
- var rx = new RegExp2("\\bä", "u");
- assert((rx.exec(" ä") || [])[0] === "ä");
- }
- },
- {
- name: "Unicode mode: <code>\\b</code> matches"
- + " before non-letter",
- code: function () {
- var rx = new RegExp2("ä\\b", "u");
- assert((rx.exec("ä ") || [])[0] === "ä");
- }
- },
- {
- feature: 'jsx.regexp.RegExp(…, "su"))',
- desc: "Unicode mode: <code>.</code> works with PCRE_DOTALL",
- code: function () {
- var rx = new RegExp2("x.y", "su");
- assert(rx.source === "x[\\S\\s]y");
- }
- },
- {
- feature: "jsx.regexp.RegExp.exec(jsx.regexp.RegExp, String)",
- desc: "Unicode mode: <code>\\b</code> match"
- + " before non-ASCII letter is trimmed",
- code: function () {
- var rx = new RegExp2("\\bä", "u");
- assert((RegExp2.exec(" ä", rx) || [])[0] === "ä");
- }
- },
- {
- feature: 'new jsx.regexp.String(String)',
- desc: "Convert correctly",
- code: function () {
- var s = new jsx.regexp.String("bar");
- assert(s == "bar");
- assert("bar" == s);
- assertFalse(s === "bar");
- assertFalse("bar" === s);
- }
- },
- {
- feature: 'jsx.regexp.String.prototype.match(new jsx.regexp.RegExp(…, "u"))',
- desc: "Unicode mode: <code>\\b</code> match"
- + " before non-ASCII letter is trimmed (all captures)",
- code: function () {
- var rx = new RegExp2("(\\bä)", "u");
- var m = (new String2(" ä")).match(rx);
- assertTrue(m[0] === "ä" && m[1] === "ä");
- }
- },
- {
- feature: 'jsx.regexp.String.prototype.match(new jsx.regexp.RegExp(…, "gu"))',
- desc: "Unicode mode: <code>\\b</code> match"
- + " before non-ASCII letter is trimmed (all matches)",
- code: function () {
- var rx = new RegExp2("\\b\\w", "gu");
- var m = new String2(" ä ö").match(rx);
- assert(m[0] === "ä" && m[1] === "ö");
- }
- },
- {
- feature: 'jsx.regexp.String.prototype.replace(jsx.regexp.RegExp), String)',
- desc: "Named backreferences are supported",
- code: function () {
- var rx = new RegExp2(" (?'foo'ä) ö", "g");
- var s = new String2(" ä ö").replace(rx, "${foo}");
- assert(s === "ä");
- }
- },
- {
- feature: 'jsx.regexp.String.prototype.replace(jsx.regexp.RegExp, Function)',
- desc: "Named backreferences are supported",
- code: function () {
- var rx = new RegExp2(" (?'foo'ä) ö", "g");
- var s = new String2(" ä ö").replace(rx, function () {
- return this.groups["foo"];
- });
- assert(s === "ä");
- }
- }
- ]
- });
-
- removeMessage();
-
- if (out.length > 0)
- {
- window.alert(out.join("\n"));
- }
- });
-}
\ No newline at end of file
/live/test/regexp-test.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/cyrillic2.php
===================================================================
--- live/test/cyrillic2.php (revision 509)
+++ live/test/cyrillic2.php (nonexistent)
@@ -1,98 +0,0 @@
-<?php
- if (isset($_GET['correct']))
- {
- header('Content-Type: text/html; charset=UTF-8');
- }
-
- // Demonstrates what the wrong default encoding can do to a resource
- else
- {
- header('Content-Type: text/html; charset=Windows-1251');
- }
-?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Scripting Test Case: Encoding vs. Document Character Set</title>
-
- <meta name="DCTERMS.created" content="2006-04-04">
-
- <script type="text/javascript">
- function foo()
- {
- alert("Понимаешь?");
- }
- </script>
-
- <style type="text/css">
- body {
- background-color: white;
- color: black;
- }
-
- div, p {
- margin: 1em auto;
- }
-
- acronym {
- border-bottom:1px dotted #999;
- cursor: help;
- }
- </style>
- </head>
-
- <body>
- <?php
- if (!isset($_GET['correct']))
- {
- ?>
- <p>This <a href="http://en.wikipedia.org/wiki/UTF-8"><acronym
- title="8-bit Unicode Transformation Format">UTF-8</acronym></a>
- encoded resource is served with the wrong encoding declaration in
- the <tt>Content-Type</tt> <a
- href="http://en.wikipedia.org/wiki/HyperText_Transfer_Protocol"
- ><acronym title="HyperText Transfer Protocol"
- >HTTP</acronym></a>&nbsp;header (<tt>charset=<a
- href="http://en.wikipedia.org/wiki/Windows-1251"
- >Windows-1251</a></tt>). That the included <a
- href="http://www.w3.org/TR/html4/struct/global.html#edef-META"
- ><tt>meta</tt></a> element "declares" the correct encoding does
- not matter; the HTTP&nbsp;header takes precedence.</p>
-
- <p>Nevertheless, the <a
- href="http://www.w3.org/TR/html4/charset.html#h-5.1"
- >Document Character Set for <acronym
- title="HyperText Markup Language">HTML</acronym>&nbsp;4.01
- documents</a> is still <a
- href="http://en.wikipedia.org/wiki/Universal_Character_Set"
- ><acronym title="the Universal Character Set">UCS</acronym></a>,
- so character references can be used in <a
- href="http://en.wikipedia.org/wiki/CDATA"><tt>CDATA</tt></a>
- attribute values to represent non-<a
- href="http://en.wikipedia.org/wiki/ASCII"><acronym
- title="American Standard Code for Information Interchange"
- >ASCII</acronym></a> characters:</p>
- <?php
- }
- ?>
-
- <div><input type="button"
- value="&#1042;&#1099;&#1073;&#1077;&#1088;&#1080; &#1084;&#1077;&#1085;&#1103;!"
- lang="ru"
- onclick="foo();"></div>
-
- <?php
- if (!isset($_GET['correct']))
- {
- ?>
- <div><a href="?correct=1"
- >Serve (almost) the same content with the correct encoding declaration
- (<tt>charset=UTF-8</tt>)</a></div>
- <?php
- }
- ?>
- </body>
-</html>
\ No newline at end of file
Index: live/test/python.html
===================================================================
--- live/test/python.html (revision 509)
+++ live/test/python.html (nonexistent)
@@ -1,17 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>python.js Test Case</title>
- <script type="text/javascript" src="../object.js"></script>
- <script type="text/javascript" src="test.js"></script>
- <script type="text/javascript" src="../map.js"></script>
- <script type="text/javascript" src="../python.js"></script>
- <script type="text/javascript" src="python-test.js"></script>
- </head>
-
- <body onload="runTests()">
- <h1><tt>python.js</tt> Test&nbsp;Case</h1>
- </body>
-</html>
\ No newline at end of file
Index: live/test/datefmt.html
===================================================================
--- live/test/datefmt.html (revision 509)
+++ live/test/datefmt.html (nonexistent)
@@ -1,21 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html lang="de">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Untitled</title>
-<script src="../string.js" type="text/javascript"></script>
-<script src="debug.js" type="text/javascript"></script>
-<script src="../time.js" type="text/javascript"></script>
-</head>
-
-<body>
-<script type="text/javascript">
- var d = new Date(2001, 11, 30, 23, 59, 59, 59);
- alert(
- getDateFmt(
- d,
- "_dddd_, _d_. _MMMM_ _yyyy_ _h_:_mm_:_ss_,_S_ _TTTTT_",
- oDateNames_de));
- </script>
-</body>
-</html>
\ No newline at end of file
Index: live/test/xpath.html
===================================================================
--- live/test/xpath.html (revision 509)
+++ live/test/xpath.html (nonexistent)
@@ -1,26 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>xpath.js Test Case</title>
- <script type="text/javascript" src="../object.js"></script>
- <script type="text/javascript" src="../dom/xpath.js"></script>
- <script type="text/javascript" src="../test/test.js"></script>
- <script type="text/javascript">
- var assertFalse = jsx.test.assertFalse;
- var assertTrue = jsx.test.assertTrue;
-
- jsx.test.runner.run({
- tests: [
- function() {
- },
- ]
- });
- </script>
- </head>
-
- <body>
- <h1><tt>xpath.js</tt> Test&nbsp;Case</h1>
- </body>
-</html>
/live/test/xpath.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/date.js
===================================================================
--- live/test/date.js (revision 509)
+++ live/test/date.js (nonexistent)
@@ -1,600 +0,0 @@
-function runTests ()
-{
- var assertFalse = jsx.test.assertFalse;
- var assertTrue = jsx.test.assertTrue;
-
- jsx.test.runner.run({
- file: "date.js",
- tests: [
- {
- feature: "jsx.date.dayOfYear(new Date(…))",
- desc: "Return the correct day number",
- code: function () {
- assertTrue(jsx.date.dayOfYear(new Date(2013, 0, 31)) === 31);
- assertTrue(jsx.date.dayOfYear(new Date(2013, 1, 28)) === 59);
- assertTrue(jsx.date.dayOfYear(new Date(2013, 2, 1)) === 60);
- assertTrue(jsx.date.dayOfYear(new Date(2013, 2, 31)) === 90);
-
- /* Leap year has 366 days */
- assertTrue(jsx.date.dayOfYear(new Date(2016, 11, 31)) === 366);
- }
- },
- {
- feature: "new Date(…).getDayOfYear()",
- desc: "Return the correct day number",
- code: function () {
- assertTrue(new Date(2013, 0, 31).getDayOfYear() === 31);
- assertTrue(new Date(2013, 1, 28).getDayOfYear() === 59);
- assertTrue(new Date(2013, 2, 1).getDayOfYear() === 60);
- assertTrue(new Date(2013, 2, 31).getDayOfYear() === 90);
-
- /* Leap year has 366 days */
- assertTrue(new Date(2016, 11, 31).getDayOfYear() === 366);
- }
- },
- {
- feature: "jsx.date.isValid()",
- desc: "Missing <code><var>year</var></code>"
- + "/<code><var>month</var></code>"
- + "/<code><var>date</var></code>"
- + " throws <code>jsx.InvalidArgumentError</code>",
- code: function () {
- /* no year */
- var error = jsx.tryThis("jsx.date.isValid()",
- function (e) {
- jsx.dmsg(e);
- return (e instanceof jsx.InvalidArgumentError);
- });
- assertTrue(error);
-
- /* no month */
- error = jsx.tryThis("jsx.date.isValid(2013)",
- function (e) {
- jsx.dmsg(e);
- return (e instanceof jsx.InvalidArgumentError);
- });
- assertTrue(error);
-
- /* no date */
- error = jsx.tryThis("jsx.date.isValid(2013, 2)",
- function (e) {
- jsx.dmsg(e);
- return (e instanceof jsx.InvalidArgumentError);
- });
- assertTrue(error);
- }
- },
- {
- feature: "jsx.date.isValid(…)",
- desc: "Detect valid and invalid datetimes",
- code: function () {
- /* date */
- assertTrue(jsx.date.isValid(2013, 1, 28));
- assertFalse(jsx.date.isValid(2013, 1, 0));
- assertFalse(jsx.date.isValid(2013, 1, 29));
-
- /* hours */
- assertTrue(jsx.date.isValid(2013, 1, 1, 0));
- assertFalse(jsx.date.isValid(2013, 1, 1, -1));
- assertFalse(jsx.date.isValid(2013, 1, 1, 25));
-
- /* minutes */
- assertTrue(jsx.date.isValid(2013, 1, 1, 0, 0));
- assertFalse(jsx.date.isValid(2013, 1, 1, 0, -1));
- assertFalse(jsx.date.isValid(2013, 1, 1, 0, 60));
-
- /* seconds */
- assertTrue(jsx.date.isValid(2013, 1, 1, 0, 0, 0));
- assertFalse(jsx.date.isValid(2013, 1, 1, 0, 0, -1));
- assertFalse(jsx.date.isValid(2013, 1, 1, 0, 0, 60));
-
- /* milliseconds */
- assertTrue(jsx.date.isValid(2013, 1, 1, 0, 0, 0, 0));
- assertFalse(jsx.date.isValid(2013, 1, 1, 0, 0, 0, -1));
- assertFalse(jsx.date.isValid(2013, 1, 1, 0, 0, 0, 1000));
- }
- },
- {
- feature: "Date.isValid()",
- desc: "Missing <code><var>year</var></code>"
- + "/<code><var>month</var></code>"
- + "/<code><var>date</var></code>"
- + " throws <code>jsx.InvalidArgumentError</code>",
- code: function () {
- /* no year */
- var error = jsx.tryThis("Date.isValid()",
- function (e) {
- jsx.dmsg(e);
- return (e instanceof jsx.InvalidArgumentError);
- });
- assertTrue(error);
-
- /* no month */
- error = jsx.tryThis("Date.isValid(2013)",
- function (e) {
- jsx.dmsg(e);
- return (e instanceof jsx.InvalidArgumentError);
- });
- assertTrue(error);
-
- /* no date */
- error = jsx.tryThis("Date.isValid(2013, 2)",
- function (e) {
- jsx.dmsg(e);
- return (e instanceof jsx.InvalidArgumentError);
- });
- assertTrue(error);
- }
- },
- {
- feature: "Date.isValid(…)",
- desc: "Detect valid and invalid datetimes",
- code: function () {
- /* date */
- assertTrue(Date.isValid(2013, 1, 28));
- assertFalse(Date.isValid(2013, 1, 0));
- assertFalse(Date.isValid(2013, 1, 29));
-
- /* hours */
- assertTrue(Date.isValid(2013, 1, 1, 0));
- assertFalse(Date.isValid(2013, 1, 1, -1));
- assertFalse(Date.isValid(2013, 1, 1, 25));
-
- /* minutes */
- assertTrue(Date.isValid(2013, 1, 1, 0, 0));
- assertFalse(Date.isValid(2013, 1, 1, 0, -1));
- assertFalse(Date.isValid(2013, 1, 1, 0, 60));
-
- /* seconds */
- assertTrue(Date.isValid(2013, 1, 1, 0, 0, 0));
- assertFalse(Date.isValid(2013, 1, 1, 0, 0, -1));
- assertFalse(Date.isValid(2013, 1, 1, 0, 0, 60));
-
- /* milliseconds */
- assertTrue(Date.isValid(2013, 1, 1, 0, 0, 0, 0));
- assertFalse(Date.isValid(2013, 1, 1, 0, 0, 0, -1));
- assertFalse(Date.isValid(2013, 1, 1, 0, 0, 0, 1000));
- }
- },
-
- {
- feature: "jsx.date.isLeapYear(…)",
- desc: "Return the correct value",
- code: function () {
- /* not divisible by 4 */
- assertFalse(jsx.date.isLeapYear(1995));
-
- /* divisible by 4 */
- assertTrue(jsx.date.isLeapYear(1996));
-
- /* divisible by 4, but also by 100 */
- assertFalse(jsx.date.isLeapYear(2100));
-
- /* divisible by 4, and by 100, but also by 400 */
- assertTrue(jsx.date.isLeapYear(2000));
- }
- },
- {
- feature: "Date.isLeapYear(…)",
- desc: "Return the correct value",
- code: function () {
- /* not divisible by 4 */
- assertFalse(Date.isLeapYear(1995));
-
- /* divisible by 4 */
- assertTrue(Date.isLeapYear(1996));
-
- /* divisible by 4, but also by 100 */
- assertFalse(Date.isLeapYear(2100));
-
- /* divisible by 4, and by 100, but also by 400 */
- assertTrue(Date.isLeapYear(2000));
- }
- },
-
- {
- feature: "jsx.date.isoWeekday(new Date(…))",
- desc: "Return the correct value",
- code: function () {
- assertTrue(jsx.date.isoWeekday(new Date(2013, 0, 1)) === 2);
- assertTrue(jsx.date.isoWeekday(new Date(2013, 0, 7)) === 1);
- assertTrue(jsx.date.isoWeekday(new Date(2013, 0, 13)) === 7);
- }
- },
- {
- feature: "new Date(…).getISOWeekday()",
- desc: "Return the correct value",
- code: function () {
- assertTrue(new Date(2013, 0, 1).getISOWeekday() === 2);
- assertTrue(new Date(2013, 0, 7).getISOWeekday() === 1);
- assertTrue(new Date(2013, 0, 13).getISOWeekday() === 7);
- }
- },
-
- {
- feature: "jsx.date.isoWeekNumber(new Date(…))",
- desc: "Return the correct value",
- code: function () {
- assertTrue(jsx.date.isoWeekNumber(new Date(2012, 0, 1)) === 52);
- assertTrue(jsx.date.isoWeekNumber(new Date(2012, 0, 7)) === 1);
- assertTrue(jsx.date.isoWeekNumber(new Date(2013, 0, 1)) === 1);
- assertTrue(jsx.date.isoWeekNumber(new Date(2013, 0, 7)) === 2);
- }
- },
-
- {
- feature: 'jsx.date.tzOffsetHours(new Date(…))',
- desc: "Return the correct value (works in CE[S]T only)",
- code: function () {
- var d = new Date(2013, 0, 1);
- var d2 = new Date(2013, 3, 1);
-
- var o = jsx.date.tzOffsetHours(d);
- assertTrue(o.hours === 1 && o.minutes === 0);
-
- var o = jsx.date.tzOffsetHours(d2);
- assertTrue(o.hours === 2 && o.minutes === 0);
- }
- },
-
- {
- feature: 'jsx.date.tzOffsetHours(new Date(…), null)',
- desc: "Return the correct value (works in CE[S]T only)",
- code: function () {
- var d = new Date(2013, 0, 1);
- var d2 = new Date(2013, 3, 1);
-
- var s = jsx.date.tzOffsetHours(d, null);
- assertTrue(s === "+1");
-
- var s = jsx.date.tzOffsetHours(d2, null);
- assertTrue(s === "+2");
- }
- },
-
- {
- feature: 'jsx.date.tzOffsetHours(new Date(…), {…})',
- desc: "Return the correct value (works in CE[S]T only)",
- code: function () {
- var d = new Date(2013, 0, 1);
- var d2 = new Date(2013, 3, 1);
-
- var options = {leadingZero: true};
- assertTrue(jsx.date.tzOffsetHours(d, options) === "+01");
- assertTrue(jsx.date.tzOffsetHours(d2, options) === "+02");
-
- options = {zeroMinutes: true};
- assertTrue(jsx.date.tzOffsetHours(d, options) === "+100");
- assertTrue(jsx.date.tzOffsetHours(d2, options) === "+200");
-
- options = {leadingZero: true, zeroMinutes: true};
- assertTrue(jsx.date.tzOffsetHours(d, options) === "+0100");
- assertTrue(jsx.date.tzOffsetHours(d2, options) === "+0200");
-
- options = {zeroMinutes: true, delimiter: ":"};
- assertTrue(jsx.date.tzOffsetHours(d, options) === "+1:00");
- assertTrue(jsx.date.tzOffsetHours(d2, options) === "+2:00");
-
- options = {leadingZero: true, zeroMinutes: true, delimiter: ":"};
- assertTrue(jsx.date.tzOffsetHours(d, options) === "+01:00");
- assertTrue(jsx.date.tzOffsetHours(d2, options) === "+02:00");
- }
- },
-
- {
- feature: "new Date().format()",
- desc: "Missing <code><var>format</var></code>"
- + " throws <code>jsx.InvalidArgumentError</code>",
- code: function () {
- var error = jsx.tryThis("new Date().format()",
- function (e) {
- jsx.dmsg(e);
- return (e instanceof jsx.InvalidArgumentError);
- });
- assertTrue(error);
- }
- },
- {
- feature: 'new Date().format("")',
- desc: 'Return <code>""</code>',
- code: function () {
- assertTrue(new Date().format("") === "");
- }
- },
- {
- feature: 'new Date(2013, 0, 1).format("\\\\W")',
- desc: 'Return <code>"W"</code> (literal)',
- code: function () {
- assertTrue(new Date(2013, 0, 1).format("\\W") === "W");
- }
- },
- {
- feature: 'new Date(2013, 0, 1).format("W|WW|WWW|WWWW")',
- desc: 'Return <code>"T|Tu|Tue|Tuesday"</code> (weekday)',
- code: function () {
- assertTrue(new Date(2013, 0, 1).format("W|WW|WWW|WWWW") === "T|Tu|Tue|Tuesday");
- }
- },
- {
- feature: 'new Date(2013, 0, 1).format("w")',
- desc: 'Return <code>"2"</code> (ISO 8601 Tuesday)',
- code: function () {
- assertTrue(new Date(2013, 0, 1).format("w") === "2");
- }
- },
- {
- feature: 'new Date(2013, 0, 1).format("ww")',
- desc: 'Return <code>"01"</code> (ISO 8601: 2013W01)',
- code: function () {
- assertTrue(new Date(2013, 0, 1).format("ww") === "01");
- }
- },
- {
- feature: 'new Date(2013, 0, 1).format("YY|YYYY")',
- desc: 'Return <code>"13|2013"</code> (year)',
- code: function () {
- assertTrue(new Date(2013, 0, 1).format("YY|YYYY") === "13|2013");
- }
- },
- {
- feature: 'new Date(2013, 8, 1).format("M|MM|MMM|MMMM")',
- desc: 'Return <code>"9|09|Sep|September"</code>',
- code: function () {
- assertTrue(new Date(2013, 8, 1).format("M|MM|MMM|MMMM") === "9|09|Sep|September");
- }
- },
- {
- feature: 'new Date(2013, 0, 1).format("D|DD")',
- desc: 'Return <code>"1|01"</code> (day of month)',
- code: function () {
- assertTrue(new Date(2013, 0, 1).format("D|DD") === "1|01");
- }
- },
- {
- feature: 'new Date(2013, 2, 1).format("DDD")',
- desc: 'Return <code>"60"</code> (day of year)',
- code: function () {
- assertTrue(new Date(2013, 2, 1).format("DDD") === "60");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 9).format("H|HH")',
- desc: 'Return <code>"9|09"</code> (hours)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 9).format("H|HH") === "9|09");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 0).format("h")',
- desc: 'Return <code>"12"</code> (am)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 0).format("h") === "12");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 9).format("h")',
- desc: 'Return <code>"9"</code> (am)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 9).format("h") === "9");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 13).format("h")',
- desc: 'Return <code>"1"</code> (pm)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 13).format("h") === "1");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 0).format("hh")',
- desc: 'Return <code>"12"</code> (am)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 0).format("hh") === "12");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 9).format("hh")',
- desc: 'Return <code>"09"</code> (am)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 9).format("hh") === "09");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 13).format("hh")',
- desc: 'Return <code>"01"</code> (pm)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 13).format("hh") === "01");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 13, 9).format("m|mm")',
- desc: 'Return <code>"9|09"</code> (minutes)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 13, 9).format("m|mm") === "9|09");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 0, 0, 9).format("s|ss")',
- desc: 'Return <code>"9|09"</code> (seconds)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 0, 0, 9).format("s|ss") === "9|09");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 0, 0, 0, 9).format("sss|ssss")',
- desc: 'Return <code>"9|009"</code> (milliseconds)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 0, 0, 0, 9).format("sss|ssss") === "9|009");
- }
- },
-
- {
- feature: "new Date().strftime()",
- desc: "Missing <code><var>format</var></code>"
- + " throws <code>jsx.InvalidArgumentError</code>",
- code: function () {
- var error = jsx.tryThis("new Date().strftime()",
- function (e) {
- jsx.dmsg(e);
- return (e instanceof jsx.InvalidArgumentError);
- });
- assertTrue(error);
- }
- },
- {
- feature: 'new Date().strftime("")',
- desc: 'Return <code>""</code>',
- code: function () {
- assertTrue(new Date().strftime("") === "");
- }
- },
- {
- feature: 'new Date(2013, 0, 1).strftime("%a|%A")',
- desc: 'Return <code>"Tue|Tuesday"</code> (weekday)',
- code: function () {
- assertTrue(new Date(2013, 0, 1).strftime("%a|%A") === "Tue|Tuesday");
- }
- },
- {
- feature: 'new Date(2013, 0, 1).strftime("%d")',
- desc: 'Return <code>"01"</code>',
- code: function () {
- assertTrue(new Date(2013, 0, 1).strftime("%d") === "01");
- }
- },
- {
- feature: 'new Date(2013, 0, 1).strftime("%e")',
- desc: 'Return <code>"\\u00A01"</code> (<code>=== "\u00A01"</code>)',
- code: function () {
- assertTrue(new Date(2013, 0, 1).strftime("%e") === "\u00A01");
- }
- },
- {
- feature: 'new Date(2013, 2, 1).strftime("%j")',
- desc: 'Return <code>"060"</code> (day of year)',
- code: function () {
- assertTrue(new Date(2013, 2, 1).strftime("%j") === "060");
- }
- },
- {
- feature: 'new Date(2013, 0, 6).strftime("%u")',
- desc: 'Return <code>"7"</code> (ISO&nbsp;8601 Sunday)',
- code: function () {
- assertTrue(new Date(2013, 0, 6).strftime("%u") === "7");
- }
- },
- {
- feature: 'new Date(2013, 0, 6).strftime("%w")',
- desc: 'Return <code>"0"</code> (Sunday)',
- code: function () {
- assertTrue(new Date(2013, 0, 6).strftime("%w") === "0");
- }
- },
- {
- feature: 'new Date(2013, 0, 1).strftime("%V")',
- desc: 'Return <code>"01"</code> (ISO 8601: 2013W01)',
- code: function () {
- assertTrue(new Date(2013, 0, 1).strftime("%V") === "01");
- }
- },
- {
- feature: 'new Date(2013, 0, 1).strftime("%b")',
- desc: 'Return <code>"Jan"</code> (January)',
- code: function () {
- assertTrue(new Date(2013, 0, 1).strftime("%b") === "Jan");
- }
- },
- {
- feature: 'new Date(2013, 0, 1).strftime("%h")',
- desc: 'Return <code>"Jan"</code> (January)',
- code: function () {
- assertTrue(new Date(2013, 0, 1).strftime("%h") === "Jan");
- }
- },
- {
- feature: 'new Date(2013, 0, 1).strftime("%B")',
- desc: 'Return <code>"January"</code>',
- code: function () {
- assertTrue(new Date(2013, 0, 1).strftime("%B") === "January");
- }
- },
- {
- feature: 'new Date(2013, 8, 1).strftime("%m")',
- desc: 'Return <code>"09"</code> (September)',
- code: function () {
- assertTrue(new Date(2013, 8, 1).strftime("%m") === "09");
- }
- },
- {
- feature: 'new Date(2013, 0, 1).strftime("%C")',
- desc: 'Return <code>"20"</code> (21st century)',
- code: function () {
- assertTrue(new Date(2013, 0, 1).strftime("%C") === "20");
- }
- },
- {
- feature: 'new Date(2013, 0, 1).strftime("%y|%Y")',
- desc: 'Return <code>"13|2013"</code> (year)',
- code: function () {
- assertTrue(new Date(2013, 0, 1).strftime("%y|%Y") === "13|2013");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 9).strftime("%H")',
- desc: 'Return <code>"09"</code> (hours)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 9).strftime("%H") === "09");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 9).strftime("%k")',
- desc: 'Return <code>"\\u00A09"</code> (<code>=== "\u00A09"</code> hours)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 9).strftime("%k") === "\u00A09");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 0).strftime("%I")',
- desc: 'Return <code>"12"</code> (am)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 0).strftime("%I") === "12");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 9).strftime("%I")',
- desc: 'Return <code>"09"</code> (am)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 9).strftime("%I") === "09");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 13).strftime("%I")',
- desc: 'Return <code>"01"</code> (pm)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 13).strftime("%I") === "01");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 0).strftime("%l")',
- desc: 'Return <code>"12"</code> (am)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 0).strftime("%l") === "12");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 9).strftime("%l")',
- desc: 'Return <code>"\\u00A09"</code> (<code>=== "\u00A09"</code> am)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 9).strftime("%l") === "\u00A09");
- }
- },
- {
- feature: 'new Date(2013, 0, 1, 13).strftime("%l")',
- desc: 'Return <code>"\\u00A01"</code> (<code>=== "\u00A01"</code> pm)',
- code: function () {
- assertTrue(new Date(2013, 0, 1, 13).strftime("%l") === "\u00A01");
- }
- },
- ]
- });
-}
\ No newline at end of file
/live/test/date.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/hexdit.html
===================================================================
--- live/test/hexdit.html (revision 509)
+++ live/test/hexdit.html (nonexistent)
@@ -1,111 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Untitled Document</title>
-<style type="text/css">
-textarea {
- border: thin solid black;
- background-color: #ccc;
-}
-</style>
-<script src="math.js" type="text/javascript"></script>
-<script type="text/javascript">
- function esrever(s)
- {
- if (s && s.length > 1)
- {
- var s2 = "";
- for (var i = s.length -1; i > -1; i--)
- {
- s2 += s.charAt(i);
- }
- s = s2;
- }
-
- return s;
- }
-
- function update(o, cbBE)
- {
- var oSource = o.what;
- var oHex = oSource.form.elements['hex'];
- var oBin = oSource.form.elements['bin'];
- var oTxt = oSource.form.elements['txt'];
-
- switch (oSource.name)
- {
- case "hex":
- oSource.value =
- oSource.value.replace(/([0-9A-F]{2})([0-9A-F]{2,})/ig, "$1 $2");
- oBin.value = "";
- oTxt.value = "";
- var aOctets = oSource.value.split(" ");
-
- for (var i = 0; i < aOctets.length; i++)
- {
- oBin.value
- += Math.dec2base(parseInt(aOctets[i], 16), 2, 8) + " ";
- oTxt.value += String.fromCharCode(parseInt(aOctets[i], 16));
- }
- break;
-
- case "bin":
- oSource.value = oSource.value.replace(/([01]{8})([01]{8,})/g, "$1 $2");
- /*
-
- (11111111)(1111111111111111111111111)
- 11111111 1111111111111111111111111
- 11111111 (11111111)(11111111111111111)
- 11111111 11111111 11111111111111111
-
- */
-
- oHex.value = "";
- oTxt.value = "";
- var aOctets = oSource.value.split(" ");
-
- for (var i = 0; i < aOctets.length; i++)
- {
- oHex.value
- += Math.dec2base(parseInt(aOctets[i], 2), 16, 2) + " ";
- oTxt.value += String.fromCharCode(parseInt(aOctets[i], 2));
- }
-
- break;
-
- case "txt":
- oHex.value = "";
- oBin.value = "";
-
- for (var i = 0; i < oSource.value.length; i++)
- {
- oHex.value +=
- Math.dec2base(oSource.value.charCodeAt(i), 16, 2) + " ";
- oBin.value +=
- Math.dec2base(oSource.value.charCodeAt(i), 2, 8) + " ";
- }
- }
- o.disabled = true;
- }
-
- function change(o)
- {
- var o2 = o.form.elements['btUpdate'];
- o2.what = o;
- o2.disabled = false;
- }
- </script>
-</head>
-<body>
-<div style="text-align: center">
-<form action="" onSubmit="return false"><textarea name="hex"
- cols="47" rows="10" onKeyPress="change(this);"></textarea> <textarea
- name="txt" cols="16" rows="10" onKeyPress="change(this);"></textarea><br>
-<textarea name="bin" cols="71" rows="20" onKeyPress="change(this);"></textarea><br>
-<input type="button" name="btUpdate" value="Aktualisieren"
- onclick="update(this);" disabled></form>
-</div>
-</body>
-</html>
Index: live/test/unicode.html
===================================================================
--- live/test/unicode.html (revision 509)
+++ live/test/unicode.html (nonexistent)
@@ -1,19 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <meta http-equiv="Content-Language" content="en">
- <meta name="GENERATOR" content="PHPEclipse 1.0">
- <title>PointedEars' String Library Test Case: Unicode support</title>
- <script type="text/javascript" src="../builder?src=object,string,test/test"></script>
- <script type="text/javascript" src="../string/unicode.js"></script>
- <script type="text/javascript" src="unicode.js"></script>
- </head>
-
- <body onload="runTests()">
- <h1>PointedEars' String Library Unit Test:
- <a href="/websvn/filedetails.php?repname=JSX&path=%2Ftrunk%2Fstring%2Funicode.js">Unicode Support</a></h1>
- <p>See error console for details.</p>
- </body>
-</html>
\ No newline at end of file
/live/test/unicode.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test/grammar.html
===================================================================
--- live/test/grammar.html (revision 509)
+++ live/test/grammar.html (nonexistent)
@@ -1,51 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>grammar.js Test Case</title>
- <script type="text/javascript" src="../object.js"></script>
- <script type="text/javascript" src="../grammar.js"></script>
- <script type="text/javascript" src="test.js"></script>
- <script type="text/javascript">
- var Grammar2 = jsx.grammar.Grammar2;
-
- jsx.test.runner.run({
- tests: [
- function () {
- var g = new Grammar2({
- ID: "#{nmchar}+",
- nmchar: "[_a-z0-9-]|{nonascii}|{escape}",
- nonascii: "[\\xA0-\\xFF]",
- escape: "{unicode}|\\\\[^\\r\\n\\f0-9a-f]",
- unicode: "\\\\{h}\\{1,6\\}(\\r\\n|[ \\t\\r\\n\\f])?",
- h: "[0-9a-f]",
- CLASS: "\\.{IDENT}",
- IDENT: "-?{nmstart}{nmchar}*",
- nmstart: "[_a-z]|{nonascii}|{escape}",
- ATTRIBUTE: "\\[\\s*({IDENT}\\|)?{IDENT}\\s*((=|{INCLUDES}|{DASHMATCH})\\s*({IDENT}|{STRING})\\s*)?\\]",
- INCLUDES: "~=",
- DASHMATCH: "\\|=",
- STRING: "{string1}|{string2}",
- string1: '"([^\\n\\r\\f\\\\"]|\\\\{nl}|{escape})*"',
- string2: "'([^\\n\\r\\f\\\\']|\\\\{nl}|{escape})*'",
- nl: "(\\n|\\r\n|\\r|\\f)",
- PSEUDOCLASS: ":(link|visited|hover|active|focus|target|lang"
- + "|enabled|disabled|checked|indeterminate"
- + "|root|nth-child|nth-last-child|nth-of-type|nth-last-of-type"
- + "|first-child|last-child|first-of-type|last-of-type"
- + "|only-child|only-of-type|empty|not)\\b",
- ELEMENT: "(^|\\s)(({IDENT}|\\*)\\|)?{IDENT}",
- PSEUDOELEMENT: "::?(first-line|first-letter|before|after)\\b"
- },
- true);
- }
- ]
- })
- </script>
- </head>
-
- <body>
- <h1>grammar.js Test Case</h1>
- </body>
-</html>
\ No newline at end of file
/live/test/grammar.html
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/test
===================================================================
--- live/test (revision 509)
+++ live/test (nonexistent)
/live/test
Property changes:
Deleted: svn:ignore
## -1,204 +0,0 ##
-_debug.js
-
-ASP
-
-devel
-
-dom-matrix
-
-dom-testpath
-
-charset2.html
-
-charset.html
-
-all.html
-
-charset.php
-
-mime-types
-
-JS17
-
-XMLHTTP
-
-jslint
-
-jsunit-2.1a-pe
-
-SHL
-
-jsunit
-
-tmpdoc
-
-firebug
-
-E4X
-
-language-extensions
-
-SELFHTML
-
-WSH
-
-whatami
-
-date-dst-algo.txt
-
-compile.html
-
-contexts.html
-
-date2.html
-
-date3.html
-
-
-cyrillic.html
-
-debug-time.html
-
-hashfind.html
-
-dst.html
-
-events.htm
-
-encrypt.htm
-
-hashTable.html
-
-find.html
-
-dst.js
-
-dhtml.html
-
-diegoder.html
-
-Fortu-Net_de Private Nachricht senden.htm
-
-opera-style.phps
-
-liveconn.html
-
-random.html
-
-math.html
-
-plusop.xhtml
-
-js1.html
-
-test.htm
-
-number.txt
-
-jscript-named-functions.html
-
-regexp2.html
-
-menuitems.js
-
-replace.html
-
-strict.htm
-
-test3.html
-
-test5.html
-
-popup.html
-
-test8.html
-
-scope.html
-
-test6.html
-
-Winamp-CDDB.html
-
-whitespace.html
-
-matrix.php
-
-js2.html
-
-test2.html
-
-objref2.html
-
-singleton.js
-
-test.xhtml
-
-objref.html
-
-mixMe.html
-
-ident-replace.html
-
-sum.html
-
-substring.html
-
-syntax-error.html
-
-uri-matcher.html
-
-time.html
-
-plusop.png
-
-linkMe.html
-
-include.html
-
-properties.html
-
-test.html
-
-img-src.html
-
-location.html
-
-scope2.html
-
-object2.html
-
-inline.html
-
-wordlist_2.js
-
-webicq.html
-
-mixed.html
-
-RndInRng.html
-
-test4.html
-
-jscript-blocks.html
-
-index.php
-
-object.php
-
-test7.html
-
-jasmine
-
-jQuery
-
-throw.html
-
-es-matrix
-
-exception.html
-
-es-matrix2
-
-builder.php
-
-array-random.html
Index: live/jsdoc-note.js
===================================================================
--- live/jsdoc-note.js (revision 509)
+++ live/jsdoc-note.js (nonexistent)
@@ -1,12 +0,0 @@
-/*
- * The original source file
- * _foo.js/x.yz/YYYY-MM-DD-HH/foo.js
- * contains a complete documentation written in JSdoc, see
- * <http://pointedears.de/scripts/JSdoc/> for details.
- *
- * Since JSdoc is not yet ready for production purposes to
- * generate a HTML documentation from these comments and
- * including them in the production version means about nm%
- * of code overhead, most of the JSdoc comments have been
- * stripped from this file.
- */
\ No newline at end of file
Index: live/search.js
===================================================================
--- live/search.js (revision 509)
+++ live/search.js (nonexistent)
@@ -1,231 +0,0 @@
-/**
- * <title>PointedEars' JSX: Search-String Library</title>
- *
- * @file search.js
- * @partof PointedEars' JavaScript Extensions (JSX)
- * @requires types.js
- *
- * @author Copyright (c) 2000-2004
- * Thomas Lahn &lt;search.js@PointedEars.de&gt;
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License (GPL) for more details.
- *
- * You should have received a copy of the GNU GPL along with this
- * program (COPYING file); if not, go to [1] or write to the Free
- * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- *
- * [1] <http://www.gnu.org/licenses/licenses.html#GPL>
- */
-
-// Refer search.htm file for general documentation.
-
-/**
- * Definition of the SearchString prototype which uses the functions
- * above with names beginning with the prototype name, as methods.
- *
- * @param s : string
- */
-function SearchString(s)
-{
- this.version = "1.10.2006082411";
- this.copyright = "Copyright \xA9 2000-2006";
- this.author = "Thomas Lahn";
- this.email = "search.js@PointedEars.de";
- this.path = "http://pointedears.de.vu/scripts/";
- this.URI = this.path + "search.js";
-
- if (typeof s != "string")
- {
- if (typeof location != "undefined"
- && typeof location.search != "undefined")
- {
- s = location.search;
- }
- else
- {
- return;
- }
- }
-
- s = s.substring(s.lastIndexOf("?") + 1);
- this.text = s;
-
- // Determine method to be used for decoding URI components
- var decode =
- (jsx.object.isMethodType(typeof decodeURIComponent)
- ? decodeURIComponent
- : (jsx.object.isMethodType(typeof unescape)
- ? unescape
- : dummy));
-
- /*
- * For Mozilla/NS: Replace occurrences of "&nbsp;" with
- * character "%A0"; requires linked string.js
- */
- this.text = replaceText(this.text, "&nbsp;", "%A0");
-
- this.length = s.length;
-
- var i;
-
- for (i = 0; i < this.length; i++)
- {
- this[i] = s.charAt(i);
- }
-
- this.values = new Object();
-
- if (this.length > 0)
- {
- var value_pair, sName, sValue;
-
- if (jsx.object.isMethodType(typeof this.text.split))
- {
- var value_pairs = this.text.split(new RegExp("[&;]")), len;
- for (i = 0, len = value_pairs.length; i < len; i++)
- {
- var p = value_pairs[i];
- value_pair = p.split("=");
- sName = decode(value_pair[0]);
- sValue = (value_pair.length > 1
- ? value_pair[1]
- : (sName = "", value_pair[0]));
-
- addValue(this.values, sName, decode(sValue))
- }
- }
- else
- {
- for (i = 0; i < this.length;)
- {
- var idxAmp = this.text.substring(i).indexOf("&");
- // Required by law
- (idxAmp < 0) ? (idxAmp = this.length) : (idxAmp += i);
-
- value_pair = this.text.substring(i, idxAmp);
- var idxEquals = value_pair.indexOf("=");
- sName = "";
-
- if (idxEquals < 0)
- {
- sValue = value_pair;
- }
- else
- {
- sName = value_pair.substring(0, idxEquals);
- sValue = value_pair.substring(idxEquals + 1);
- }
-
- addValue(this.values, decode(sName), decode(sValue));
-
- i += value_pair.length + 1;
- }
- }
- }
-}
-
-SearchString.prototype.isName =
-/**
- * @param sName: string
- * @param bCaseSensitive: optional boolean = false
- * Provide <code>true</code> for case-sensitivity.
- * @return <code>true</code> if the name <var>sName</var> exists,
- * <code>false</code> otherwise.
- */
-function searchString_isName(sName, bCaseSensitive)
-{
- // FIXME: "A" is not found if bCaseSensitive == false
- /*
- if (!bCaseSensitive)
- {
- sName = sName.toLowerCase();
- }
- */
-
- return (typeof this.values[sName] != "undefined");
-}
-
-SearchString.prototype.hasValue =
-/**
- * @param sName: string
- * @param bCaseSensitive: optional boolean = false
- * Provide <code>true</code> for case-sensitivity.
- * @return <code>true</code> if the name <var>sName</var> exists and its
- * value is not the empty string, <code>false</code> otherwise.
- */
-function searchString_hasValue(sName, bCaseSensitive)
-{
- // FIXME (see above)
- /*
- if (!bCaseSensitive)
- {
- sName = sName.toLowerCase();
- }
- */
-
- return (this.isName(sName, bCaseSensitive) && this.values[sName] != "");
-}
-
-SearchString.prototype.getValue =
-/**
- * @param sName: string
- * @param bCaseSensitive: optional boolean = false
- * Provide <code>true</code> for case-sensitivity.
- * @param bConvertCode: optional boolean = false
- * @return The value of the name <var>sName</var> if it exists, "" otherwise.
- */
-function searchString_getValue(sName, bCaseSensitive, bConvertCode)
-{
- // FIXME (see above)
- /*
- if (!bCaseSensitive)
- {
- sName = sName.toLowerCase();
- }
- */
-
- return (this.isName(sName) ? this.values[sName] : "");
-}
-
-/**
- * Helper function for adding name-value pairs
- * as properties of SearchString.values
- *
- * @param o: object
- * @param sName: string
- * @param sValue: optional string
- */
-function addValue(o, sName, sValue)
-{
- // if there is no property of that name create it
- if (typeof o[sName] == "undefined")
- {
- o[sName] = sValue;
- }
- // if there is no array property of that name transform the property
- else if (typeof o[sName] != "object")
- {
- o[sName] = [o[sName]];
- }
-
- // add to the array
- if (typeof o[sName] == "object")
- {
- o[sName][o[sName].length] = sValue;
- }
-}
-
-// Helper function that does nothing, for encoding/decoding URIs
-function dummy(x)
-{
- return x;
-}
Index: live/fullscreen.jpg
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/live/fullscreen.jpg
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-application/octet-stream
\ No newline at end of property
Index: live/string.js
===================================================================
--- live/string.js (revision 509)
+++ live/string.js (nonexistent)
@@ -1,2177 +0,0 @@
-/**
- * @fileOverview <title>PointedEars' JSX: String Library</title>
- * @file $Id$
- * @requires object.js
- *
- * @author (C) 2001-2013 Thomas Lahn &lt;string.js@PointedEars.de&gt;
- * @author
- * Parts Copyright (C) 2003<br>
- * Dietmar Meier &lt;meier@innoline-systemtechnik.de&gt;<br>
- * Martin Honnen &lt;Martin.Honnen@gmx.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx === "undefined")
-{
- var jsx = {};
-}
-
-jsx.string = {
- /** @version */
- version: "1.29.$Rev$",
- copyright: "Copyright \xA9 1999-2013",
- author: "Thomas Lahn",
- email: "string.js@PointedEars.de",
- path: "http://pointedears.de/scripts/"
-};
-
-// jsx.string.docURL = jsx.string.path + "string.htm";
-
-if (typeof String === "undefined")
-{
- var String = new Object();
-}
-
-/** @deprecated since 1.29.8.2010013105, see jsx.string */
-String.version = jsx.string.version;
-String.copyright = jsx.string.copyright;
-String.author = jsx.string.author;
-String.email = jsx.string.email;
-String.path = jsx.string.path;
-// String.docURL = jsx.string.docURL;
-
-/* allows for de.pointedears.jsx.string */
-if (typeof de === "undefined")
-{
- var de = {};
-}
-
-if (typeof de.pointedears === "undefined")
-{
- de.pointedears = {};
-}
-
-de.pointedears.jsx = jsx;
-
-/**
- * Non-breaking space
- */
-var CH_NBSP = "\xA0";
-
-/**
- * @param {string} sMsg
- * @return {boolean} false
- */
-function StringException (sMsg)
-{
- alert(
- "string.js "
- + String.version
- + "\n"
- + String.copyright
- + " "
- + String.author
- + " <"
- + String.email
- + ">\n\n"
- + sMsg);
- return false;
-}
-
-/**
- * Adds backslashes to escape " and ' in strings.
- *
- * @author Copyright (c) 2003
- * Martin Honnen &lt;Martin.Honnen@gmx.de&gt;,
- * Thomas Lahn &lt;string.js@PointedEars.de&gt;
- * @param {string} s (optional)
- * String where " and ' should be escaped. Ignored if
- * the function is called as a method of a String object.
- * @return {string}
- * The replaced string if String.replace(...)
- * is supported, the original string otherwise.
- */
-function addSlashes (s)
-{
- var c;
- if ((c = this.constructor) && c == String && typeof s != "string")
- {
- s = this;
- }
-
- if (s.replace)
- {
- s = s.replace(/["']/g, "\\$&");
- }
-
- return s;
-}
-
-/**
- * Tries hard to escape a string according to the query component
- * specification in RFC3986.
- *
- * @param {string} s
- * @return {string}
- * <code>s</code> escaped, or unescaped if escaping through
- * <code>encodeURIComponent()</code> or <code>escape()</code>
- * is not possible.
- * @partof http://PointedEars.de/scripts/string.js
- * @see jsx.object#isMethod()
- * @author Copyright (c) 2006-2008 Thomas Lahn <cljs@PointedEars.de>
- */
-var esc = (function () {
- var
- _global = jsx.global,
- _isNativeMethod = jsx.object.isNativeMethod;
-
- return (_isNativeMethod(_global, "encodeURIComponent")
- ? encodeURIComponent
- : (_isNativeMethod(_global, "escape")
- ? escape
- : function (s) { return s; }));
-}());
-
-/**
- * Tries hard to make a string a URI or URI-reference according to RFC 3986.
- *
- * @param s
- * @return {string}
- * <code>s</code> escaped, or unescaped if escaping through
- * <code>encodeURI()</code> or is not possible.
- */
-var escURI = (function (s) {
- var
- _global = jsx.global,
- _isNativeMethod = jsx.object.isNativeMethod;
-
- return (_isNativeMethod(_global, "encodeURI")
- ? encodeURI
- : function (s) { return s; });
-}());
-
-/**
- * Tries hard to unescape a string according to the query component
- * specification in RFC&nbsp;3986.
- *
- * @param {string} s
- * @return {string}
- * <code>s</code> unescaped, or escaped if unescaping through
- * <code>decodeURIComponent()</code> or <code>unescape()</code>
- * is not possible.
- * @partof http://PointedEars.de/scripts/string.js
- * @see jsx.object#isMethod()
- * @author Copyright (c) 2006-2008 Thomas Lahn <cljs@PointedEars.de>
- */
-var unesc = (function () {
- var
- _global = jsx.global,
- _isNativeMethod = jsx.object.isNativeMethod;
-
- return (_isNativeMethod(_global, "decodeURIComponent")
- ? decodeURIComponent
- : (_isNativeMethodd(_global, "unescape")
- ? unescape
- : function (s) { return s; }));
-}());
-
-/*
- * Had to abandon extend since Konqueror's engine does not support
- * Object literals
- */
-
-if (typeof Number.prototype.toFixed == "undefined")
-{
- /**
- * @param {number} iPrecision
- * @return {string}
- */
- Number.prototype.toFixed = function (iPrecision) {
- var
- result = this.toString(),
- dotPos = -1,
- decLen = 0;
-
- if ((dotPos = result.lastIndexOf(".")) > -1)
- {
- decLen = result.length - dotPos - 1;
- }
-
- if (decLen <= iPrecision)
- {
- result = jsx.string.pad(result, iPrecision, '0', true, decLen);
- }
- else
- {
- var m = Math.pow(10, iPrecision);
- result = Math.round(result * m) / m;
- }
- return result;
- };
-}
-
-if (typeof Number.prototype.toUnsigned == "undefined")
-{
- /**
- * @param {number} iMax
- * @return {number}
- */
- Number.prototype.toUnsigned = function (iMax) {
- var n = this;
-
- /*
- * 1. Call ToNumber on the input argument.
- * (skipped since n is already a Number value)
- *
- * 2. If Result(1) is NaN, +0, -0, +Infinity, or -Infinity, return +0.
- */
- var i;
- if (!isNaN(n) || (i = Math.abs(n)) == 0 || i == Infinity)
- {
- return 0;
- }
-
- /*
- * 3. Compute sign(Result(1)) * floor(abs(Result(1))).
- * (The mathematical function sign (x) yields 1 if
- * x is positive and -1 if x is negative.) [...]
- */
- n = (n < 0 ? -1 : 1) * Math.floor(i);
-
- /*
- * 4. Compute Result(3) modulo 2^iMax; that is, a finite integer
- * value k of Number type with positive sign and less than 2^iMax
- * in magnitude such the mathematical difference of Result(3) and
- * k is mathematically an integer multiple of 2^iMax. The default
- * for iMax is 32.
- *
- * 5. Return Result(4).
- */
- return n % Math.pow(2, iMax || 32);
-
-// if (n < 0)
-// {
-// n += (iMax || this.MAX_VALUE)/2;
-// }
- };
-}
-
-/**
- * Parses a string of characters into a <code>Number</code> value.
- * It replaces the built-in function in that it supports fractional
- * parts on non-decimal representations, and uses the built-in
- * for decimal representations.
- *
- * @param {String} s
- * String representation to be parsed
- * @param {number} iBase
- * Numeric base of the representation, from 2 to 35. If not provided,
- * after trimming leading white-space the prefix "0x" or "0X" designates
- * base 16 (hexadecimal).
- * @return {number}
- */
-var parseFloat = jsx.string.parseFloat = (function () {
- var origPF = parseFloat;
-
- return function (s, iBase) {
- if ((!iBase || iBase === 10) && origPF)
- {
- return origPF(s);
- }
-
- var
- i = (/^\s*\./.test(s) ? 0 : parseInt(s, iBase)),
- chars = (iBase < 10
- ? "0-" + String.fromCharCode(47 + iBase)
- : "\\d"
- + (iBase > 10
- ? "a"
- + (iBase > 11
- ? "-" + String.fromCharCode(86 + iBase)
- : "")
- : "")),
- f = (s.match(new RegExp("\\.([" + chars + "]{1,198})", "i")) || [, "0"])[1];
-
-
- return i + (/^\s*-/.test(s) ? -1 : 1)
- * parseInt(f, iBase) / Math.pow(iBase, f.length);
- };
-}());
-
-// * Returns a string of values according to a format string.
-// *
-// * This is the begin of an approach to implement <code>printf</code>(3)
-// * in an ECMAScript compliant implementation out of its man page
-// * documentation. The syntax is intended to be compatible to that of
-// * the printf() C function finally, but this method will not *print*
-// * out anything characters by itself (so you probably want to use its
-// * return value along with <code>window.alert()</code>,
-// * <code>document.write()</code> and similar DOM features, or in
-// * concatenations as if you would use <code>sprintf</code>(3).)
-// *
-// * Currently supported <code>printf</code>(3) features are:
-// * - replacing tags in a format string with a value given as argument: `%d'
-// * - padding that value with zeroes or (non-breaking) spaces on the left,
-// * watching for negative values: `%42d', `% 42d' and `%042d'
-// * - padding that value with (non-breaking) spaces on the right: `%-42d'
-// * - using arguments to specify the field width: `%*d', `%*7$d'
-// * - specifying positive precision (round after point): `%.2d'
-// * - replacing `%%' with `%' without using an argument's value
-// *
-// * Additional features supported by this method are:
-// * - specifying negative precision (round before point): `%.-2d'
-// * - If `%,42s' is used and the argument refers to an Array instead of
-// * a String, it is expanded to a character string consisting of the
-// * string representations of the elements of the array delimited with
-// * `,', each of them having the format specification (here: field
-// * width=42) applied to it. If `,' is missing, the delimiter is the
-// * empty string, meaning that Arrays of strings (or characters) can
-// * be easily put out.
-// *
-// * @version 0.0.4.2005112603 (milestone 4)
-// * @author
-// * (C) 2004, 2005 Thomas Lahn <string.js@PointedEars.de>
-// * Distributed under the GNU GPLv2.
-// * @partof
-// * http://pointedears.de/scripts/string.js
-// * @param {string} sFormat
-// * @param {_} values
-// * @return {string}
-// * The formatted string.
-// */
-//function format (sFormat)
-//{
-// arguments.skip = [];
-// for (var i = 1, len = arguments.length; i < len; i++)
-// {
-// var a = arguments[i];
-//
-// // skip tagged arguments; this allows for using following arguments
-// // for precision without using them for expansion again
-// if (!arguments.skip[i])
-// {
-// // compile only once
-// if (!format.rxSearch)
-// {
-// format.rxSearch = new RegExp(
-// "%([#0+' _-]*)" // flags
-// + "([1-9]*\\d+|(\\*((\\d+)\\$)?))?" // field width
-// + "(\\.([+-]?\\d+|(\\*((\\d+)\\$)?))?)?" // precision
-// + "([ ,]+)?" // member delimiter
-// + "([%diouxXeEfFgGaAcsCSpn])" // conversion
-// );
-// }
-//
-// var result;
-// if ((result = (format.rxSearch.exec(sFormat))))
-// {
-// var
-// // flag characters
-// flags = result[1],
-// fieldWidth = result[2],
-//
-// // undefined if the field width was given as an unsigned integer
-// argFieldWidth = result[3],
-//
-// // index of the argument to specify the field width;
-// // undefined if the field width was given as an unsigned
-// // integer
-// uFieldWidthArg = result[5],
-//
-// precision = result[7],
-// argPrecision = result[8],
-//
-// // index of the argument to specify the precision;
-// // undefined if the precision was given as an unsigned
-// // integer or it will be specified by the next argument
-// uPrecisionArg = result[10],
-// srcArgIdx;
-//
-// // length modifier
-// // var lenModifier = result[11];
-//
-// // member delimiter
-// var memberDelim = result[11];
-//
-// // conversion specifier
-// var
-// convSpecifier = result[12],
-// aArgMembers = new Array();
-//
-// if (convSpecifier == "%")
-// {
-// aArgMembers = [convSpecifier];
-// i--;
-// }
-// else
-// {
-// var memberLen = 1;
-// var arg = a;
-//
-// if (arg.constructor == Array)
-// {
-// memberLen = arg.length;
-// }
-//
-//
-// for (var j = 0; j < memberLen; j++)
-// {
-// if (arg.constructor == Array)
-// {
-// a = arg[j];
-// }
-//
-// if (/[diouxXeEfFgGaA]/.test(convSpecifier))
-// {
-// if (typeof a != "number")
-// {
-// a = Number(a);
-// }
-//
-// if (/[ouxX]/.test(convSpecifier))
-// {
-// switch (convSpecifier)
-// {
-// case "o": a = a.toString(8); break;
-// case "u": a = a.toUnsigned(); break;
-// case "x":
-// case "X": a = a.toUnsigned().toString(16); break;
-// default:
-// var sError = 'Invalid conversion specifier';
-// _global.onerror = function ()
-// {
-// alert('format: ' + sError);
-// _global.onerror = null;
-// return true;
-// }
-// eval("throw new {message: sError};");
-// _global.onerror = null;
-// }
-// }
-// }
-//
-// if (precision
-// || (typeof precision == "number" && precision == 0))
-// {
-// if (argPrecision)
-// { // precision is specified by another argument
-// srcArgIdx = uPrecisionArg || (i + 1);
-// precision = arguments[srcArgIdx];
-//
-// // mark argument as not to be expanded
-// arguments.skip[srcArgIdx] = true;
-// }
-//
-// if (precision >= 0)
-// {
-// a = Number(a).toFixed(precision);
-// }
-// else // if (precision < 0)
-// {
-// var pot = Math.pow(10, -precision);
-// a = Math.round((a - (a % 1)) / pot) * pot;
-// }
-// }
-//
-// if (fieldWidth)
-// {
-// if (argFieldWidth)
-// { // field width is specified by another argument
-// srcArgIdx = uFieldWidthArg || (i + 1);
-// fieldWidth = arguments[srcArgIdx];
-// arguments.skip[srcArgIdx] = true;
-// }
-//
-// if (fieldWidth > 0)
-// {
-// var sPad = CH_NBSP;
-// if (flags && /0/.test(flags))
-// {
-// sPad = "0";
-// }
-//
-// if (/-/.test(flags))
-// {
-// a = pad(a, fieldWidth, CH_NBSP, true);
-// }
-// else
-// { // pad value, put sign in front
-// a = pad(a, fieldWidth, sPad)
-// .replace(/^(0+)([+-])/, "$2$1");
-// }
-// }
-// }
-//
-// aArgMembers.push(a);
-// }
-// }
-//
-// sFormat = sFormat.replace(
-// format.rxSearch,
-// aArgMembers.join(memberDelim));
-// }
-// }
-// }
-//
-// return sFormat;
-//}
-
-/**
- * @protected
- */
-jsx.string._rxFormatSpec = new RegExp(
- /* flags */
- /%(\(([^)]*)\))?([#0+' _-]*)/.source
-
- /* field width */
- + /([1-9]*\d+|(\*((\d+)\$)?))?/.source
-
- /* precision */
- + /(\.([+-]?\d+|(\*((\d+)\$)?))?)?/.source
-
- /* member delimiter */
- + "(,)?"
-
- /* conversion */
- + "([%aAbdiouxXeEfFgGcsCSpn])",
-
- /* global match */
- "g");
-
-/**
- * A more efficient rewrite of the previous format() function.
- *
- * @param sFormat
- * @return {string}
- */
-jsx.string.sprintf = function (sFormat) {
- var
- rxFormatSpec = jsx.string._rxFormatSpec,
- args = arguments,
- i = 1,
- jsx_string = jsx.string,
- ignoredArgs = [];
-
- return String(sFormat).replace(rxFormatSpec,
- function (m, p1, propertyName, flags,
- fieldWidth, argFieldWidth, p4, uFieldWidthArg, p6,
- precision, argPrecision, p9, uPrecisionArg,
- memberDelim, convSpecifier) {
- /* Prevent argument change by parameter assignment */
- "use strict";
-
- while (ignoredArgs[i])
- {
- ++i;
- }
-
- if (argFieldWidth)
- {
- if (!uFieldWidthArg)
- {
- uFieldWidthArg = i + 1;
- }
- else
- {
- uFieldWidthArg = +uFieldWidthArg;
- }
-
- ignoredArgs[uFieldWidthArg] = true;
- fieldWidth = args[uFieldWidthArg];
- }
-
- var v = args[i];
- if (propertyName)
- {
- v = v[propertyName];
- }
-
- switch (convSpecifier)
- {
- case "%":
- v = "%";
- i--;
- break;
-
- case "a":
- case "A":
- v = Array.prototype.join.call(v, memberDelim);
- break;
-
- case "b":
- case "d":
- case "o":
- case "x":
- case "X":
- v = +v;
-
- switch (convSpecifier)
- {
- case "b":
- v = v.toString(2);
- break;
-
- case "o":
- v = v.toString(8);
- if (flags.indexOf("#") > -1 && v.charAt(0) !== "0")
- {
- v = "0" + v;
- }
- break;
-
- case "x":
- case "X":
- v = v.toString(16);
- if (flags.indexOf("#") > -1 && v !== "0")
- {
- v = "0x" + v;
- }
-
- if (convSpecifier === "X")
- {
- v = v.toUpperCase();
- }
- }
-
- break;
-
- case "c":
- case "C":
- case "s":
- case "S":
- if (/c/i.test(convSpecifier))
- {
- if (typeof v === "string")
- {
- v = v.charAt(0);
- }
- else
- {
- v = String.fromCharCode(v);
- }
- }
-
- if (/[CS]/.test(convSpecifier))
- {
- v = String(v).toUpperCase();
- }
-
- break;
-
- case "i":
- case "u":
- v = (+v < 0) ? Math.ceil(v) : Math.floor(v);
- if (convSpecifier === "u")
- {
- v >>>= 0;
- }
- break;
-
- case "e":
- case "E":
- case "f":
- case "F":
- case "g":
- case "G":
- v = (+v).toString();
-
- /* TODO: Use Number.prototype.toExponential() if backwards-compatible */
- if (/e/i.test(convSpecifier))
- {
- var
- numParts = v.match(/^([+-])?(\d*)(\.(\d*))?(e([+-]\d+))?/i),
- sign = numParts[1] || "",
- sUintPart = numParts[2],
- uintPart = sUintPart && parseInt(sUintPart, 10) || 0,
- fracPart = numParts[4] || "",
- exponent = numParts[6] && parseInt(numParts[6], 10) || 0;
-
- if (uintPart > 0)
- {
- if (uintPart > 9)
- {
- /* integer part with two or more digits */
- exponent += sUintPart.length - 1;
- fracPart = sUintPart.slice(1) + fracPart;
- sUintPart = sUintPart.charAt(0);
- }
- }
- else if (fracPart)
- {
- /* Integer part must be 0 */
- var numLeadingZeroes = (fracPart.match(/^0+/) || [""])[0].length;
-
- sUintPart = fracPart.charAt(numLeadingZeroes);
- fracPart = fracPart.slice(numLeadingZeroes + 1);
- exponent -= numLeadingZeroes + 1;
- }
-
- if (!parseInt(fracPart, 10))
- {
- fracPart = "0";
- }
-
- v = sign + sUintPart + "." + fracPart
- + "e" + (exponent >= 0 ? "+" : "") + exponent;
-
- if (convSpecifier == "E")
- {
- v = v.toUpperCase();
- }
- }
- else if (/g/i.test(convSpecifier))
- {
- if (convSpecifier == "G")
- {
- v = String(v).toUpperCase();
- }
- }
-
- if (precision)
- {
- var prec = +precision;
- if (prec > 0)
- {
- v = (+v).toFixed(prec);
- }
- else if (prec < 0)
- {
- var power = Math.pow(10, -prec);
- v = Math.round(v / power) * power;
- }
- }
-
- break;
- }
-
- if (fieldWidth)
- {
- fieldWidth = +fieldWidth;
- if (flags.indexOf("0") > -1 && /[bdoxXiueEfFgG]/.test(convSpecifier))
- {
- v = String(v);
-
- var
- padCharacter = "0",
- wasNegative = (v.charAt(0) === "-");
-
- if (wasNegative)
- {
- v = v.slice(1);
- fieldWidth--;
- }
- }
-
- v = jsx_string.pad(v, fieldWidth, padCharacter);
-
- if (wasNegative)
- {
- v = "-" + v;
- }
- }
-
- if (!propertyName)
- {
- ++i;
- }
-
- return v;
- });
-};
-
-/**
- * Formats a string
- */
-String.prototype.format = jsx.string.format = (function () {
- var _getClass = jsx.object.getClass;
- var _hasOwnProperty = jsx.object._hasOwnProperty;
-
- /**
- * @param sFormat
- * @return {String}
- */
- return function (sFormat) {
- /* Prevent argument change by parameter assignment */
- "use strict";
-
- var start = 1;
-
- if (_getClass(this) === "String")
- {
- sFormat = this.constructor(this);
- start = 0;
- }
-
- for (var i = start, len = arguments.length; i < len; ++i)
- {
- var data = arguments[i];
-
- if (_getClass(data) === "Object")
- {
- for (var propertyName in data)
- {
- if (_hasOwnProperty(data, propertyName))
- {
- sFormat = sFormat.replace(new RegExp("\\{" + propertyName + "\\}", "g"),
- data[propertyName]);
- }
- }
- }
- else
- {
- sFormat = sFormat.replace(new RegExp("\\{" + (i - start) + "\\}", "g"), data);
- }
- }
-
- return sFormat;
- };
-}());
-
-/**
- * Parses values out of a string using the specified format
- */
-jsx.string.sscanf = (function () {
- var formatSpec = {
- dec: "([+-]?(?:0|[1-9]\\d+)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)",
- "int": "([+-]?(?:0|[1-9]\\d+)(?:[eE][+-]?\\d+)?)"
- };
-
- var formatMap = {
- "%d": {
- spec: formatSpec.dec,
- parser: parseFloat
- },
- "%i": {
- spec: formatSpec["int"],
- parser: function (value) {
- return parseInt(value, 10);
- }
- }
- };
-
- function replacer (match)
- {
- if (typeof formatMap[match] != "undefined")
- {
- replaced.push(match);
- match = formatMap[match].spec;
- }
-
- return match;
- }
-
- var rxFormatSpec = jsx.string._rxFormatSpec;
-
- /**
- * @param {String} s
- * @param {String} format
- * @return {Array}
- */
- return function (s, format) {
- var replaced = [];
- format = format.replace(rxFormatSpec, replacer);
- var matches = s.match(new RegExp(format));
- matches.shift();
-
- /* TODO: Convert values to specified type */
-
- for (var i = 0, len = replaced.length; i < len; ++i)
- {
- var replace = replaced[i];
-
-
- switch (replace)
- {
- case formatSpec.dec:
- matches[i] = parseFloat(matches[i]);
- break;
-
-
- }
- }
-
- return matches;
- };
-}());
-
-/**
- * @version
- * 1.29.2004050110
- * @author
- * (C) 2004 Thomas Lahn <string.js@PointedEars.de>
- * @partof
- * http://pointedears.de/scripts/string.js
- * @param {string|number} s (optional)
- * Un(completely )formatted number (decimal, hexadecimal
- * or octal) or a string representing such a number.
- * If the function is called as a method of
- * {@link jsref#String} objects and <code>s</code> is
- * provided, the value of <code>s</code> is formatted
- * instead of the @link{jsref#String} object.
- * @param {string} s1kDelim = ","
- * Character or character sequence to delimit a sequence
- * of three digits on the left-hand side of the point.
- * The default is ",".
- * @return {string|number}
- * the formatted number as string, <code>NaN</code> on error.
- */
-function format1k (s, s1kDelim)
-{
- var result = NaN;
-
- /* to use this method for String objects */
- if (typeof this.constructor != "undefined"
- && this.constructor == String
- && !s)
- {
- s = this;
- }
-
- /* to allow for numbers as argument */
- s = s.toString();
-
- if (!isNaN(s))
- {
- if (!s1kDelim)
- {
- s1kDelim = ",";
- }
-
- /*
- * 1.29.4.2008030123:
- * added parens around backrefs for JScript 3.x compliance
- */
- var rx = /([\da-f])((\1){3}(,|(\.(\1)+)?$))/i;
- while (rx.test(s))
- {
- s = s.replace(rx, "$1" + s1kDelim + "$2");
- }
-
- result = s;
- }
-
- return result;
-}
-
-/**
- * String.hashCode() as defined in the Sun Java2 1.4 API.
- *
- * The function takes a string as argument, or
- * the <code>this</code> value if the argument is missing or
- * a false-value, and the <code>this</code> value refers
- * to an object that has a true-valued <code>charCodeAt</code>
- * property. The ASCII or Unicode value (depending on the
- * implementation) of each character (from right to left) is
- * added to the product of the current sum (starting at 0)
- * multiplied with x, where x = 37 if the string is no longer
- * than 15 characters, x = 39 otherwise. If the string is 16
- * characters long or longer, at the average every eighth
- * character is not included in the sum.
- *
- * @author
- * Implementation in ECMAScript
- * (C) 2003 Thomas Lahn &lt;hashCode.js@PointedEars.de&gt;
- * @param {string} s (optional)
- * Optional string of which the hash code is computed. If
- * not provided or a false-value, it is assumed that
- * the function is used as method of the String prototype,
- * applied to a String object or literal.
- * @return {number}
- * The hash code of the string, designed for implementing hash
- * code access to associative arrays which can be implemented
- * as objects with named properties in JavaScript 1.x.
- * @see
- * #strToCodeArray() java2:String#hashCode()
- */
-function hashCode (s)
-{
- if (!s && this.charCodeAt)
- {
- s = this;
- }
-
- var h = 0;
- var off = 0;
- var len = s.length;
- var val = strToCodeArray(s);
- var i;
-
- if (len < 16)
- {
- for (i = len; i > 0; i--)
- {
- h = (h * 37) + val[off++];
- }
- }
- else
- {
- /* only sample some characters */
- var skip = Math.floor(len / 8);
- for (i = len; i > 0; i -= skip, off += skip)
- {
- h = (h * 39) + val[off];
- }
- }
-
- return h;
-}
-
-/**
- * @param {string} s (optional)
- * @return {string}
- */
-function leadingCaps (s)
-{
- if (!s && this.charAt)
- {
- s = this;
- }
-
- if (!s)
- {
- return "";
- }
-
- return s.charAt(0).toUpperCase() + s.substr(1).toLowerCase();
-}
-
-/**
- * @param {string} s (optional)
- * Input string. If omitted and the calling object
- * is a String object, it is used instead.
- * @param {number} n (optional)
- * Length of the resulting string. The default is 1,
- * i.e. if the input string is empty, "0" is returned.
- * @return {string}
- * Input string with leading zeros so that
- * its length is @{(n)}.
- * @see
- * #pad(string, number, string)
- */
-var leadingZero = jsx.string.leadingZero = function (s, n) {
- var c;
- if ((c = this.constructor) && c == String && typeof s != "string")
- {
- s = this;
- }
-
- var isNegative = (s && typeof s.valueOf() == "number" && s < 0);
- if (isNegative)
- {
- s = -s;
-
- if (typeof n == "number" && !isNaN(n))
- {
- --n;
- }
- }
-
- var result = jsx.string.pad(s, n, "0");
-
- if (isNegative)
- {
- result = "-" + result;
- }
-
- return result;
-};
-
-/*
-int LevenshteinDistance(char s[1..n], char t[1..m])
- declare int d[0..n,0..m]
- declare int i, j, cost
-
- for i := 0 to n
- d[i,0] := i
- for j := 0 to m
- d[0,j] := j
-
- for i := 1 to n
- for j := 1 to m
- if s[i] = t[j] then cost := 0
- else cost := 1
- d[i,j] := minimum(d[i-1,j ] + 1, // insertion
- d[i, j-1] + 1, // deletion
- d[i-1,j-1] + cost) // substitution
-
- return d[n,m]
-*/
-/**
- * Returns the Levenshtein Distance One between two strings
- * <var>s</var> and <var>t</var> that is, the number of
- * required edit moves to make <var>s</var> the same as
- * <var>t</var>, and vice-versa. That value indicates
- * to what extent the two strings are similar -- small
- * distances mean greater, large distances less similarity.
- * It is computed as follows:
- *
- * <table>
- * <thead>
- * <tr>
- * <th align="left">Step</th>
- * <th align="left">Description</th>
- * </tr>
- * </thead>
- * <tbody>
- * <tr valign="top">
- * <th>1</th>
- * <td>Set <tt>n</tt> to be the length of <var>s</var>.
- * Set <tt>m</tt> to be the length of <var>t</var>.
- * If <tt>n</tt> = 0, return <tt>m</tt> and exit.
- * If <tt>m</tt> = 0, return <tt>n</tt> and exit.
- * Construct a matrix containing 0..<tt>m rows and 0..<tt>n</tt>
- * columns.</td>
- * </tr>
- * <tr>
- * <th>2</th>
- * <td>Initialize the first row to 0..<tt>n</tt>.
- * Initialize the first column to 0..<tt>m</tt>.</td>
- * </tr>
- * <tr>
- * <th>3</th>
- * <td>Examine each character of <var>s</var> (<tt>i</tt> from 1 to <tt>n</tt>).</td>
- * </tr>
- * <tr>
- * <th>4</th>
- * <td>Examine each character of <var>t</var> (<tt>j</tt> from 1 to <tt>m</tt>).</td>
- * </tr>
- * <tr>
- * <th>5</th>
- * <td>If <var>s</var>[<tt>i</tt>] equals <var>t</var>[<tt>j</tt>], the cost is 0.
- * If <var>s</var>[<tt>i</tt>] doesn't equal <var>t</var>[<tt>j</tt>],
- * the cost is 1.</td>
- * </tr>
- * <tr valign="top">
- * <th>6</th>
- * <td>Set cell <tt>d</tt>[<tt>i</tt>, <tt>j</tt>] of the matrix
- * equal to the minimum of:
- * <ol type="a">
- * <li>The cell immediately above plus 1:
- * <tt>d</tt>[<tt>i</tt>-1, <tt>j</tt>] + 1.</li>
- * <li>The cell immediately to the left plus 1:
- * <tt>d</tt>[<tt>i</tt>, <tt>j</tt>-1] + 1.</li>
- * <li>The cell diagonally above and to the left plus the cost:
- * <tt>d</tt>[<tt>i</tt>-1, <tt>j</tt>-1] + cost.</li>
- * </ol></td>
- * </tr>
- * <tr>
- * <th>7</th>
- * <td>After the iteration steps (3, 4, 5, 6) are complete, the distance
- * is found in cell <tt>d</tt>[<tt>n</tt>, <tt>m</tt>].</td>
- * </tr>
- * </tbody>
- * </table>
- *
- * @param {string} s (optional)
- * @param {string} t (optional)
- * @return {number}
- */
-function levenshtein (s, t)
-{
- /* Step 1 */
- if (typeof s != "string")
- {
- s = s.toString();
- }
-
- if (typeof t != "string")
- {
- t = t.toString();
- }
-
- var n = s.length;
- var m = t.length;
-
- if (n == 0)
- {
- return m;
- }
-
- if (m == 0)
- {
- return n;
- }
-
- /* matrix */
- var d = new Array();
-
- /* Step 2 */
- for (var i = 0; i <= n; i++)
- {
- d[i] = new Array();
- d[i][0] = i;
- }
-
- for (var j = 0; j <= m; j++)
- {
- d[0][j] = j;
- }
-
- /* Step 3 */
- for (i = 1; i <= n; i++)
- {
- var s_i = s.charAt(i - 1);
-
- /* Step 4 */
- for (j = 1; j <= m; j++)
- {
- /* Step 5 */
- var cost = (s_i == t.charAt(j - 1)) ? 0 : 1;
-
- /* Step 6 */
- d[i][j] = Math.min(
- d[i-1][j] + 1,
- d[i][j-1] + 1,
- d[i-1][j-1] + cost);
- }
- }
-
- /* Step 7 */
- return d[n][m];
-}
-
-/**
- * Returns the input string with all substrings that
- * may be interpreted as markup are escaped, that is,
- * those prefixed by `&' or `<'.
- *
- * @param {string} s (optional)
- * @return {string}
- */
-function maskMarkup (s)
-{
- if (!s)
- {
- s = this;
- }
- else
- {
- s = String(s);
- }
-
- return replaceText(replaceText(s, "&", "&amp;"), "<", "&lt;");
-}
-
-/**
- * @param {string} s
- * @return {string}
- */
-function nl2br (s)
-{
- return s.replace(/\r\n?|\n/g, "<br>");
-}
-
-/**
- * @param {string} s (optional)
- * Input string. If omitted and the calling object
- * is a String object, it is used instead.
- * @param {number} n = 1
- * Length of the resulting string. The default is 1,
- * i.e. if the input string is empty, "0" is returned
- * if c is <code>'0'</code>.
- * @param {string} c = CH_NBSP
- * Character string to use for padding. The default
- * is one non-breaking space.
- * @param {boolean} bRight = false
- * If <code>true</code>, s is padded on the right,
- * otherwise on the left.
- * @param {number} iStart (optional)
- * Assume that s is iStart characters long.
- * @return {string}
- * The padded input string so that its length is n.
- */
-var pad = jsx.string.pad = function (s, n, c, bRight, iStart) {
- var constr;
- if ((constr = this.constructor) && constr == String
- && typeof s != "string")
- {
- s = this;
- }
-
- if (!n)
- {
- n = 1;
- }
-
- if (!c)
- {
- c = CH_NBSP;
- }
-
- if (typeof s != "string")
- {
- s = String(s);
- }
-
- if (typeof iStart == "undefined")
- {
- iStart = s.length;
- }
-
- if (n <= iStart)
- {
- return s;
- }
-
- var a = [];
- var missingLength = n - iStart + 1;
-
- if (typeof a.join === "function"
- && (missingLength > -1) && (missingLength < Math.pow(2, 32)))
- {
- a.length = missingLength;
- var rep = a.join(c);
- if (bRight)
- {
- s += rep;
- }
- else
- {
- s = rep + s;
- }
- }
- else
- {
- while (iStart < n)
- {
- if (bRight)
- {
- s += c;
- }
- else
- {
- s = c + s;
- }
-
- iStart++;
- }
- }
-
- return s;
-};
-
-/**
- * @param sText
- * @param {string} sReplaced
- * @param {string} sReplacement
- * @param {boolean} bForceLoop
- * @return {string}
- */
-function replaceText (sText, sReplaced, sReplacement, bForceLoop)
-{
- var result = "";
-
- if (!sText && this.constructor == String)
- {
- sText = this;
- }
-
- var sNewText = sText;
- // alert(sText);
- if (sText && sReplaced && sReplacement)
- {
- if (sText.replace && !bForceLoop)
- {
- sReplaced = sReplaced.replace(/\\/g, "\\\\");
- /*
- * Version 1.23.2002.4 bugfix: allows to replace \ with other
- * strings, required for proper rxReplaced;
- * Example (no quotes, no escaping):
- * sReplaced (provided) "\\"
- * sReplaced (evaluated) \
- * sReplaced (replaced as formulated above) "\\\\"
- * sReplaced (esc. in RegExp constructor) "\\\\"
- * sReplaced (ev. in RegExp constructor) \\
- * rxReplaced (with RegExp escaping) /\\/g
- * rxReplaced (evaluated) all occurr. of \
- */
- var rxReplaced = new RegExp(sReplaced, "g");
- sText = sText.replace(rxReplaced, sReplacement);
-
- result = sText;
- }
- else if (sText.split
- && (a = sText.split(sReplaced))
- && a.join)
- {
- return a.join(sReplacement);
- }
-
- var i = sText.indexOf(sReplaced);
-
- if (i > -1)
- {
- sNewText = sText.substring(0, i);
- sNewText += sReplacement
- + replaceText(
- sText.substring(i + sReplaced.length),
- sReplaced,
- sReplacement);
- }
-
- result = sNewText;
- }
-
- return result;
-}
-
-/**
- * @param {Object} o
- * Object to be serialized
- * @param {Object} options (optional)
- * The property values of the passed object determine
- * one or more of the following display options:
- *
- * @option depth: number = 0
- * Depth down to which recursive serialization should
- * be performed. The default is 0 (no recursion).
- * Negative values specify infinite recursion.
- * CAUTION: Recursive references are not detected;
- * in that case, a stack overflow will happen because
- * of too much recursion.
- *
- * @option showType: boolean = false
- * If <code>true</code>, <code>typeof</code> is used
- * to display the type of each property following a
- * colon after the identifier. The value delimiter
- * then changes into a equals (`<code>=</code>').
- *
- * @option showConstructor: boolean = false
- * If <code>true</code>, <code>constructor</code> is used
- * to display the constructor of each property in brackets
- * after the identifier.
- *
- * @option iIndent: number = 0
- * Indentation level
- *
- * @option sIndent: string = " "
- * Character string to use for indenting code
- * @return {string}
- */
-function serialize (o, options)
-{
- if (typeof options != "object" || !options)
- {
- options = {};
- }
-
- if (typeof options.depth == "undefined")
- {
- options.depth = 0;
- }
-
- if (typeof options.iIndent == "undefined")
- {
- options.iIndent = 0;
- }
-
- if (typeof options.sIndent == "undefined")
- {
- options.sIndent = " ";
- }
-
- var
- a = [],
- indent = strRepeat(options.sIndent, options.iIndent);
-
- for (var p in o)
- {
- var v = o[p];
- var origV = v;
- var t = typeof v;
- var isString = /string/i.test(t);
- var s = isString ? '"' : '';
-
- /*
- * FIXME: number values
- */
- /*
- * unlimited or limited depth > 0 (0 == false)
- */
- if (options.depth && (!isString || isNaN(p)))
- {
- v = serialize(v, {
- depth: options.depth - 1,
- showType: options.showType,
- showConstructor: options.showConstructor,
- iIndent: options.iIndent + 1,
- sIndent: options.sIndent
- });
- }
-
- a.push(
- indent
- + options.sIndent
- + p
- + (options.showConstructor
- ? "["
- + (origV && typeof origV.constructor != "undefined"
- ? (String(origV.constructor).match(/function\s*([^\s\(\{]+)/)
- || [, "unknown"])[1]
- : "unknown")
- + "]"
- : "")
- + (options.showType ? ": " + t : "")
- + (options.showType ? " = " : ": ")
- + (!(options.depth && (!isString || isNaN(p)))
- ? s + String(v).replace(/"/g, "\\$&") + s
- : v)
- );
- }
-
- if (a.length > 0)
- {
- return "{\n" + a.join(",\n") + "\n" + indent + "}";
- }
-
- return String(o);
-}
-
-/**
- * Calculates the number of occurrences of one string in another.
- *
- * @param {string} s
- * @param {string} substr
- * @param {boolean} bCaseSensitive (optional)
- * @return {number}
- */
-function strCount (s, substr, bCaseSensitive)
-{
- var result = 0;
-
- if ((!s && !this.toLowerCase) || !substr)
- {
- return -1;
- }
-
- if (s && this.toLowerCase)
- {
- s = this;
- }
-
- if (!bCaseSensitive && s.toLowerCase)
- {
- s = s.toLowerCase();
- }
-
- if (isMethodType(typeof RegExp))
- {
- var rxSub = new RegExp(substr, "g" + (!bCaseSensitive ? "i" : ""));
-
- if (isMethod(s, "match") && rxSub)
- {
- result = s.match(rxSub);
- if (result && result.length)
- {
- return result.length;
- }
-
- return 0;
- }
- }
- else if (s.substr && substr.length)
- {
- if (!bCaseSensitive && substr.toLowerCase)
- {
- substr = substr.toLowerCase();
- }
-
- for (var i = 0; i < s.length; i++)
- {
- if (s.substr(i, substr.length) == substr)
- {
- result++;
- i += substr.length - 1;
- }
- }
-
- return result;
- }
-
- return -1;
-}
-
-/**
- * Compares strings against each other, with the default possibility of
- * taking Unicode compositing sequences into account.
- *
- * @param s1
- * @param s2
- * @param compositeAware
- * If <code>true</code> (default), composited characters are taken
- * into account. Otherwise strings are compared character-by-character.
- * @return {boolean}
- * <code>true</code> if the strings are equal, <code>false</code> otherwise
- */
-function strCompare (s1, s2, compositeAware)
-{
- if (this.constructor == String)
- {
- compositeAware = s2;
- s2 = s1;
- s1 = this;
- var compositeLength = 2;
- }
- else
- {
- compositeLength = 3;
- }
-
- if (arguments.length < compositeLength)
- {
- compositeAware = true;
- }
-
- var equivalenceMap = {
- "\u00e0": "\u0061\u0300"
- };
-
- for (var i = 0, j = 0, len = s1.length; i < len; ++i, ++j)
- {
- var ch1 = s1.charAt(i), ch2 = s2.charAt(j);
- if (ch1 != ch2)
- {
- if (!compositeAware)
- {
- return false;
- }
-
- /*
- * When the characters at the same position are not equal, see if
- * there is a composite character sequence for each character …
- */
- var ch1Equivalent = equivalenceMap[ch1] || null;
- if (ch1Equivalent)
- {
- /*
- * If yes, check if there is a composite sequence in the second
- * string starting at that index.
- */
- if (ch2.substring(j, ch1Equivalent.length) === ch1Equivalent)
- {
- /*
- * If yes, advance the index for the second string so that
- * the next check starts after that sequence.
- */
- j += ch1Equivalent.length - 1;
- }
- else
- {
- return false;
- }
- }
- else
- {
- /* Same for a potential composite sequence in the first string */
- var ch2Equivalent = equivalenceMap[ch2] || null;
- if (ch2Equivalent && ch1.substring(i, i + ch2Equivalent.length) === ch2Equivalent)
- {
- i += ch2Equivalent.length - 1;
- }
- else
- {
- return false;
- }
- }
- }
- }
-
- return true;
-}
-String.prototype.equals = strCompare;
-
-/**
- * Strips <code>&lt;tags&gt;</code> and optionally the
- * content between start and respective end tags from
- * a string. Uses RegExp if supported.
- *
- * @author
- * (C) 2001-2004 Thomas Lahn &lt;js@PointedEars.de&gt;,
- * Advanced RegExp parsing (C) 2003 Dietmar Meier
- * &lt;meier@innoline-systemtechnik.de&gt;
- * @param {string} s (optional)
- * String where all tags should be stripped from. If not
- * provided or <code>false</code>, it is assumed that the
- * function is used as method of the String prototype,
- * applied to a String object or literal. Note that in
- * this case the method will not modify the String object
- * either, but return a second String object.
- * @param {boolean} bStripContent = false
- * If <code>true</code>, the content between a start tag and
- * a corresponding end tag is also removed.
- * If <code>false</code> (default), only start and end tags
- * are removed.
- * @param {boolean} bCaseSensitive = false
- * <code>true</code> for case-sensitive matches,
- * <code>false</code> (default) otherwise.
- * @param {optional} tags string|Array of string
- * String or array of values that can be evaluated as string to
- * specify the tag(s) to be stripped. If omitted, all tags are
- * stripped.
- * @param {boolean} bElements = false
- * If <code>true</code>, strip elements, i.e. start and end tags.
- * @return {string}
- * String where all tags are stripped from.
- * @see String.prototype#replace()
- */
-function stripTags (s, bStripContent, bCaseSensitive, tags, bElements)
-{
- if (!s)
- {
- s = this;
- }
- else
- {
- s = s.toString();
- }
-
- var sUntagged = s;
-
- if (s.match && s.replace)
- {
- // sUntagged = s.replace(/<[^>]*>/g, "");
- var sRxTags = "", i, len;
- if (tags)
- {
- if (!tags.constructor || tags.constructor == Array)
- {
- if (tags.join)
- {
- if (bElements)
- {
- for (i = 0, len = tags.length; i < len; i++)
- {
- tags[tags.length] = "/" + tags[i];
- }
- }
-
- sRxTags = tags.join("|");
- }
- else if (tags.length)
- {
- for (i = 0, len = tags.length; i < len; i++)
- {
- sRxTags += tags[i];
- if (bElements)
- {
- sRxTags += "/" + tags[i];
- }
-
- if (i < tags.length - 1)
- {
- sRxTags += "|";
- }
- }
- }
-
- if (sRxTags)
- {
- sRxTags = "(" + sRxTags + ")";
- }
- }
- else
- {
- sRxTags = tags;
- }
- }
-
- var sRx = "";
- if (bStripContent)
- {
- sRx = "<(" + (sRxTags ? sRxTags : "[^<>]*") + ")(<[^<>]*>)*>.*</\\1>";
- }
- else
- {
- sRx = "<" + (sRxTags ? sRxTags : "[^<>]*") + "(<[^<>]*>)*[^<>]*>";
- }
-
- var rx = new RegExp(sRx, (bCaseSensitive ? "i" : "") + "g");
- if (rx)
- {
- while (s.match(rx))
- {
- s = s.replace(rx, "");
- }
- sUntagged = s;
- }
- }
- else
- {
- var a = "";
- var bOutOfTag = true;
- var l = s.length;
- sUntagged = "";
-
- for (i = 0; i < l; i++)
- {
- a = s.charAt(i);
-
- if (bOutOfTag && (a == "<"))
- {
- bOutOfTag = false;
- }
-
- if (bOutOfTag)
- {
- sUntagged += a;
- }
-
- if ((!bOutOfTag) && (a == ">"))
- {
- bOutOfTag = true;
- }
- }
- }
-
- return sUntagged;
-}
-
-/**
- * Returns <var>s</var> repeated <var>n</var> times. <var>n</var>
- * has to be greater than or equal to 0. If <var>n</var> converted
- * to number is <code>NaN</code> or a value less then 1, the function
- * will return the empty string.
- *
- * Note that this may be used also as method of the {@link String}
- * prototype (if supported), applicable to <code>String</code> objects
- * and literals. If <var>s</var> is not provided, if it is numeric
- * or evaluates to <code>false</code>, the value of the
- * <code>String</code> object is taken instead of it. If the first
- * argument is then numeric, it is taken for <var>n</var> and the latter
- * argument is ignored.
- *
- * @param {string|number} s
- * @param {number} n (optional)
- * @return {string}
- */
-function strRepeat (s, n)
-{
- var c;
- if ((c = this.constructor) && c == String && typeof s != "string")
- {
- s = this;
- n = !isNaN(s) ? s : 0;
- }
-
- if (isNaN(n))
- {
- return s;
- }
-
- if (s)
- {
- var aResult = [];
- aResult.length = n + 1;
- return aResult.join(s);
- }
-
- return "";
-}
-
-/**
- * @author
- * (C) 2003 Thomas Lahn &lt;string.js@PointedEars.de&gt;
- * @param {string} s (optional)
- * Optional string to be split into array elements. If not
- * provided or <code>false</code>, it is assumed that the
- * function is used as method of the String prototype, applied
- * to a String object or literal.
- * @return {Array}
- * An array with every character of <code>s</code> an element
- * of it.
- * @see String.prototype#charAt
- * @see String.prototype#split
- */
-function strToArray (s)
-{
- var c;
- if (!s && (c = this.constructor) && c == String)
- {
- s = this;
- }
-
- var a = null;
-
- if (s.split)
- {
- a = s.split("");
- }
- else
- {
- a = new Array();
-
- for (var i = 0, len = s.length; i < len; i++)
- {
- a[i] = s.charAt(i);
- }
- }
-
- return a;
-}
-/* TODO: */
-// function arrayFromStr (s)
-// {
-// return strToArray(s);
-// }
-
-/**
- * @param {[string,]} as
- * Input string array.
- * @todo return RegExp
- * A regular expression to match all the string array elements.
- */
-function strArrayToCharClass (as)
-{
- var hashTable = [];
-
- for (var i = as.length; i--; 0)
- {
- var s = as[i];
- var c = hashCode(s);
-
- if (typeof hashTable[c] == "undefined")
- {
- hashTable[c] = new Collection(s);
- }
- else
- {
- var h = hashTable[c];
- h.add(s);
- }
- }
-}
-
-/**
- * @author
- * (C) 2003 Thomas Lahn &lt;string.js@PointedEars.de&gt;
- * @param {string} s (optional)
- * Optional string to be split into an array where each
- * element represents the ASCII or Unicode value of a
- * character (depending on the implementation) of the
- * string.
- * If not provided or <code>false</code>, it is assumed
- * that the function is used as method of the String
- * prototype, applied to a String object or literal.
- * @return {Array}
- * An array where every element is the ASCII character
- * of <code>s</code> an element of it.
- * @see #strToArray()
- * @see String.prototype#charCodeAt()
- * @see String.prototype#split()
- */
-function strToCodeArray (s)
-{
- if (!s && this.charCodeAt)
- {
- s = this;
- }
-
- var a, i, alen;
-
- if (isMethod(s, "split") && isMethod(_global, "strToArray"))
- {
- a = strToArray(s);
-
- for (i = 0, alen = a.length; i < alen; i++)
- {
- a[i] = a[i].charCodeAt(0);
- }
- }
- else
- {
- a = new Array();
-
- var slen = s.length;
- for (i = 0; i < slen; i++)
- {
- a[i] = s.charCodeAt(i);
- }
- }
-
- return a;
-}
-/* TODO: */
-// function codeArrayFromStr (s)
-// {
-// return strToCodeArray(s);
-// }
-
-/**
- * Returns the input string with all leading and trailing whitespace removed.
- *
- * @param {string} s (optional)
- * @return {string}
- * @see #trimLeft(), #trimRight()
- */
-function trim (s)
-{
- if (!s && this.charAt)
- {
- s = this;
- }
-
- if (s != "")
- {
- if (s.replace)
- {
- s = s.replace(/^\s+|\s+$/g, "");
- }
- else
- {
- s = trimRight(trimLeft(s));
- }
- }
-
- return s;
-}
-
-/**
- * Returns the input string with all leading whitespace removed.
- *
- * @param {string} s (optional)
- * @return {string}
- */
-function trimLeft (s)
-{
- if (!s && this.charAt)
- {
- s = this;
- }
-
- if (s != "")
- {
- if (s.replace)
- {
- s = s.replace(/^\s+/, "");
- }
- else
- {
- var i, a;
- for (i = 0;
- i < s.length && (a = s.charAt(i)) <= " " || a == CH_NBSP;
- i++)
- {
- ;
- }
- s = s.substring(i);
- }
- }
-
- return s;
-}
-
-/**
- * Returns the input string with all trailing whitespace removed.
- *
- * @param {string} s (optional)
- * @return {string}
- */
-function trimRight (s)
-{
- if (!s && this.charAt)
- {
- s = this;
- }
-
- if (s != "")
- {
- if (s.replace)
- {
- s = s.replace(/\s+$/, "");
- }
- else
- {
- var i, a;
- for (i = s.length - 1;
- i >= 0 && (a = s.charAt(i)) <= " " || a == CH_NBSP;
- i--)
- {
- ;
- }
- s = s.substring(0, i + 1);
- }
- }
-
- return s;
-}
-
-/**
- * Converts a Python str (e.g. 'K\xc3\xb6ln') into
- * an ECMAScript-compliant string (e.g. 'Köln').
- *
- * @param {string} s
- * The string to be converted
- * @return {string}
- * The converted string
- */
-function pyUTF8toString (s)
-{
- return unesc(
- s.replace(/[\x80-\xff]/g,
- function (m) {
- return "%" + m.charCodeAt(0).toString(16);
- }));
-}
-
-/*
- * If possible, add methods to the String prototype;
- * disabled until ECMAScript allows to hide properties from iteration.
- */
-//jsx.object.extend(String.prototype, {
-// 'leadingCaps': leadingCaps,
-// 'leadingZero': leadingZero,
-// 'repeat' : strRepeat,
-// 'pad' : pad,
-// 'replaceText': replaceText,
-// 'addSlashes' : addSlashes,
-// 'strCount' : strCount,
-// 'stripTags' : stripTags,
-// 'maskMarkup' : maskMarkup,
-// 'trim' : trim,
-// 'trimLeft' : trimLeft,
-// 'trimRight' : trimRight,
-//
-// // TODO: corr. with Array.fromStr
-// 'toArray' : strToArray,
-//
-// // TODO: corr. with Array.codeArrayFromStr
-// 'toCodeArray': strToCodeArray,
-//
-// // TODO: corr. with Array.toStr
-//// 'fromArray' : strFromArray,
-//
-// // TODO: corr. with Array.codeArrayToStr
-//// fromCodeArray: strFromCodeArray,
-//
-// 'hashCode' : hashCode,
-// 'format1k' : format1k});
-//
-//p = Array.prototype;
-//if (p)
-//{
-// // TODO: corr. with String.toArray
-// p.fromStr = arrayFromStr;
-//
-// // TODO: corr. with String.toCodeArray
-// p.codeArrayFromStr = codeArrayFromStr;
-//
-// // TODO: corr. with String.fromArray
-// p.toStr = arrayToStr;
-//
-// // TODO: corr. with String.fromCodeArray
-// p.codeArrayToStr = codeArrayToStr;
-//}
/live/string.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Index: live/object.js
===================================================================
--- live/object.js (revision 509)
+++ live/object.js (nonexistent)
@@ -1,3188 +0,0 @@
-/**
- * @fileOverview <title>Basic Object Library</title>
- * @file $Id$
- *
- * @author (C) 2004-2013 Thomas Lahn <js@PointedEars.de>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-/* allows for de.pointedears.jsx.object */
-if (typeof de == "undefined")
-{
- /**
- * @namespace
- */
- var de = {};
-}
-
-if (typeof de.pointedears == "undefined")
-{
- /**
- * @namespace
- */
- de.pointedears = {};
-}
-
-/**
- * @namespace
- */
-de.pointedears.jsx = jsx;
-
-/**
- * Reference to the ECMAScript Global Object
- * @type Global
- * @field
- */
-jsx.global = this;
-
-/*
- * NOTE: Cannot use jsx.object.extend() for the following
- * because values have not been defined yet!
- *
- * TODO: Should syntactic sugar be provided to work around
- * this issue? See Function.prototype.extend().
- */
-
-jsx.MSG_INFO = "info";
-jsx.MSG_WARN = "warn";
-jsx.MSG_ERROR = "error";
-jsx.MSG_DEBUG = "debug";
-
-if (typeof jsx.options == "undefined")
-{
- /**
- * Holds the runtime options for JSX.
- *
- * Due to the dynamic nature of ECMAScript, it is very flexible.
- * Built-in objects can be augmented and built-in methods can be
- * overwritten to allow for "syntactic sugar" that make programs
- * easier to write and to read, should the implementation not
- * already provide suitable features. However, augmentation
- * and replacement do have disadvantages if you are not aware
- * of the fact. Allowing for a maximum of flexibility, JSX
- * uses options that govern to which degree JSX components may
- * modify built-in objects. Options include, with increasing
- * degree of flexibility and side-effects by nesting level:
- *
- * <table>
- * <thead>
- * <tr>
- * <td></td>
- * <th>mod. builtins</th>
- * <th>augment</th>
- * <th>augmentproto</th>
- * <th>augmentobjectproto</th>
- * </tr>
- * </thead>
- * <tbody>
- * <tr>
- * <th><code>augmentBuiltins</code></th>
- * <td>yes</td>
- * <td>yes</td>
- * <td>no</td>
- * <td>no</td>
- * </tr>
- * <tr>
- * <th><code>augmentPrototypes</code></th>
- * <td>yes</td>
- * <td>yes</td>
- * <td>yes</td>
- * <td>no</td>
- * </tr>
- * <tr>
- * <th><code>augmentObjectPrototype</code></th>
- * <td>yes</td>
- * <td>yes</td>
- * <td>yes</td>
- * <td>yes</td>
- * </tr>
- * <tr>
- * <th><code>replaceBuiltins</code></th>
- * <td>yes</td>
- * <td>depends</td>
- * <td>depends</td>
- * <td>depends</td>
- * </tr>
- * </tbody>
- * </table>
- *
- * <dl>
- * <dt><code>augmentBuiltins</code></dt>
- * <dd>Allow built-ins to be augmented with new
- * properties. This allows new properties on
- * the built-in constructors, but not on
- * prototype objects of built-in objects.
- * See <code>augmentPrototypes</code>.
- * Since there usually is no harm in that,
- * the default is <code>true</code>.
- * Set to <code>false</code> if you are testing features
- * of ECMAScript implementations with JSX,
- * like with the ECMAScript Support Matrix.
- * <dl>
- * <dt><code>augmentPrototypes</code></dt>
- * <dd>Allow prototype objects to be augmented,
- * except <code>Object.prototype</code>.
- * This allows for new, inherited methods for
- * <code>String</code>s, for example.
- * Since there usually is no harm in that, the
- * default is <code>true</code>.
- * <dl>
- * <dt><code>augmentObjectPrototype</code></dt>
- * <dd>Allow <code>Object.prototype</code>
- * to be augmented. <em>CAUTION:
- * The new properties are inherited
- * to all native objects, and
- * host objects that have
- * <code>Object.prototype</code>
- * in their prototype chain. The new
- * properties will show up everywhere,
- * including <code>for-in</code>
- * iteration. If you do not know
- * what this is all about, leave it
- * at the default <code>false</code>.</em></dd>
- * </dl>
- * </dd>
- * <dt><code>replaceBuiltins</code></dt>
- * <dd>Allow built-ins to be replaced with native user-defined
- * implementations.</dd>
- * </dl>
- * @namespace
- */
- jsx.options = {};
-}
-
-if (typeof jsx.options.augmentBuiltins == "undefined")
-{
- /**
- * If <code>false</code>, built-ins are not modified.
- * The default is <code>true</code>.
- *
- * @type boolean
- */
- jsx.options.augmentBuiltins = true;
-}
-
-if (typeof jsx.options.augmentPrototypes == "undefined")
-{
- /**
- * If <code>false</code>, built-in prototypes are not modified.
- * The default is <code>true</code>.
- *
- * @type boolean
- */
- jsx.options.augmentPrototypes = true;
-}
-
-if (typeof jsx.options.augmentObjectPrototype == "undefined")
-{
- /**
- * If <code>false</code> (default), the Object prototype object is
- * not modified. The default is <code>false</code>.
- *
- * @type boolean
- */
- jsx.options.augmentObjectPrototype = false;
-}
-
-if (typeof jsx.options.replaceBuiltins == "undefined")
-{
- /**
- * If <code>false</code>, built-ins are not replaced.
- * The default is <code>true</code>.
- *
- * @type boolean
- */
- jsx.options.replaceBuiltins = true;
-}
-
-if (typeof jsx.options.emulate == "undefined")
-{
- /**
- * If <code>false</code>, missing language features are not emulated.
- * The default is <code>true</code>.
- * <p>
- * WARNING: JSX features may depend on emulation; intended for
- * testing only.
- * </p>
- * @type boolean
- */
- jsx.options.emulate = true;
-}
-
-if (jsx.options.emulate)
-{
- jsx.options.augmentBuiltins = true;
- jsx.options.augmentPrototypes = true;
- jsx.options.replaceBuiltins = true;
-}
-
-/**
- * Wrapper for a safer <code>try</code>...<code>catch</code>.
- *
- * Attempts to evaluate a value as a <i>StatementList</i>, and attempts
- * to evaluate another value as a <i>StatementList</i> if an exception
- * is thrown in the process. The following words may be used within:
- *
- * <table>
- * <thead>
- * <tr>
- * <th align="left">Word</th>
- * <th align="left">Refers to</th>
- * </tr>
- * </thead>
- * <tbody>
- * <tr valign="top">
- * <td><code>statements</code><br>
- * <code>errorHandlers</code></td>
- * <td>the passed values</td>
- * </tr>
- * <tr valign="top">
- * <td>code</td>
- * <td>the entire constructed <code>try</code>...<code>catch</code>
- * string that is evaluated as a <i>Program</i></td>
- * </tr>
- * <tr valign="top">
- * <td>e</td>
- * <td>Only within <var>errorHandlers</var>:
- * the value thrown in case of an exception</td>
- * </tr>
- * <tr valign="top">
- * <td>result</td>
- * <td>Only within <var>finalizer</var>:
- * the previous evaluation value</td>
- * </tr>
- * </tbody>
- * </table>
- *
- * NOTE: This method has previously been provided by {@link exception.js};
- * optimizations in code reuse moved it here.
- *
- * @function
- * @param {Function|string|any} statements
- * Value to be evaluated as a <i>StatementList</i>.
- * Called if a <code>Function</code>, used as-is otherwise.
- * @param {Function|string|any} errorHandler
- * Value to be evaluated as a <i>StatementList</i> in case of an
- * exception. Called if a <code>Function</code>,
- * used as-is otherwise.
- * @param {Function|string|any} finalizer
- * Value to be evaluated as a <i>StatementList</i> in any case,
- * after the statements and error handler. Called if a
- * <code>Function</code>, used as-is otherwise.
- * @return {any}
- * The result of <code>statements</code>, or the result
- * of <code>errorHandlers</code> if an error occurred,
- * unless <var>finalizer</var> is provided; if it is,
- * the evaluation result of <var>finalizer</var>.
- */
-jsx.tryThis =
-// (function () {
-// /**
-// * @param s Value to be stringified
-// * @param {String} sCall
-// * CallStatement that should be used instead of the value
-// * @return {string} Stringified version of <code>s</code>
-// */
-// function stringify(s, sCall)
-// {
-// if (typeof s == "function")
-// {
-// s = sCall;
-// }
-// else if (typeof s == "undefined")
-// {
-// s = "";
-// }
-//
-// return s;
-// }
-
- /*return*/ function (statements, errorHandler, finalizer) {
- /*
- * Replaced because eval() performs magnitudes worse;
- * TODO: Backwards compatibility (branching for NN4 & friends?)
- */
-// var sStatements = stringify(statements, "statements();");
-// var sErrorHandlers = stringify(errorHandlers, "errorHandlers(e);");
-//
-// var code = 'try {\n ' + sStatements + '\n}\n'
-// + 'catch (e) {\n ' + sErrorHandlers + '\n}';
-//
-// return eval(code);
- var t = typeof statements;
- var result;
- try
- {
- result = (t == "function"
- ? statements()
- : eval(statements));
- }
- catch (e)
- {
- t = typeof errorHandler;
- result = (t == "function"
- ? errorHandler(e)
- : eval(errorHandler));
- }
- finally
- {
- if (finalizer != null)
- {
- t = typeof finalizer;
- result = (t == "function"
- ? finalizer()
- : eval(finalizer));
- }
- }
-
- return result;
- };
-//}());
-
-/* only for JSDT JSDoc */
-jsx.object = {};
-
-/**
- * @type jsx.object
- * @memberOf __jsx.object
- * @namespace
- */
-jsx.object = (/** @constructor */ function () {
- var
- rxUnknown = /^unknown$/,
- rxMethod = /^(function|object)$/;
-
- /**
- * Determines whether an object is, or several objects are,
- * likely to be callable.
- *
- * @author (C) 2003-2010 <a href="mailto:js@PointedEars.de">Thomas Lahn</a>
- * @param {Object} obj
- * Object which should be tested for a method, or checked
- * for being a method if no further arguments are provided.
- * <p>
- * <em>NOTE: If you pass a primitive value for this argument,
- * the properties of the object created from that value are considered.
- * In particular, if you pass a string value containing
- * a <i>MemberExpression</i>, the properties of the corresponding
- * <code>String</code> instance are considered, not of the object that
- * the <i>MemberExpression</i> might refer to. If you need to use such
- * a string to refer to an object (e.g., if you do not know whether it
- * is safe to refer to the object), use the return value of
- * {@link jsx#tryThis jsx.tryThis("<var>MemberExpression</var>")}
- * as argument to this method instead.</em>
- * </p>
- * @param {string|Array} prop (optional)
- * Path of the property to be determined a method, i.e. a reference to
- * a callable object assigned as property of another object.
- * Use a string argument for each component of the path, e.g.
- * the argument list <code>(o, "foo", "bar")</code> for testing whether
- * <code>o.foo.bar</code> is a method.
- * If the last argument is an {@link Array}, all elements of
- * this array are used for property names; e.g.
- * <code>(o, "foo", ["bar", "baz"])</code>. This allows for testing
- * several properties of the same object with one call.
- * @return {boolean}
- * <code>true</code> if all arguments refer to methods,
- * <code>false</code> otherwise.
- */
- function _isMethod (obj, prop)
- {
- var len = arguments.length;
- if (len < 1)
- {
- jsx.throwThis("jsx.InvalidArgumentError",
- ["Not enough arguments", "saw 0", "(obj : Object[, prop : string])"]);
- return false;
- }
-
- /*
- * Determine if we were apply'd by jsx.object.isNativeMethod;
- */
- var checkNative = (this == _isNativeMethod);
-
- var t = typeof obj;
-
- /* When no property names are provided, test if the first argument is a method */
- if (len < 2)
- {
- if (checkNative)
- {
- return t == "function" && obj && true || false;
- }
-
- return rxUnknown.test(t) || rxMethod.test(t) && obj && true || false;
- }
-
- /* otherwise the first argument must refer to a suitable object */
- /* FIXME: Does not recognize the zero-length string as convertible */
- if (rxUnknown.test(t) || !obj)
- {
- return false;
- }
-
- for (var i = 1; i < len; i++)
- {
- prop = arguments[i];
-
- /* NOTE: Handle null _and_ undefined */
- if (prop == null)
- {
- return false;
- }
-
- var isLastSeg = (i == len - 1);
- if (isLastSeg)
- {
- if (typeof prop.valueOf() == "string")
- {
- prop = [prop];
- }
-
- var aProp = prop;
- }
-
- for (var j = (isLastSeg && aProp.length || 1); j--;)
- {
- if (isLastSeg)
- {
- prop = aProp[j];
- }
-
- t = typeof obj[prop];
-
- /*
- * NOTE: Test for "unknown" required in any case;
- * this order speeds up evaluation
- */
- if (rxUnknown.test(t) || (rxMethod.test(t) && obj[prop]))
- {
- if (i < len - 1)
- {
- obj = obj[prop];
- if (!(rxUnknown.test(typeof obj) || obj))
- {
- return false;
- }
- }
- else if (checkNative && t != "function")
- {
- return false;
- }
- }
- else
- {
- return false;
- }
- }
- }
-
- return true;
- }
-
- /**
- * Determines whether an object is, or several objects are,
- * likely to be a native method.
- *
- * @author (C) 2011 <a href="mailto:js@PointedEars.de">Thomas Lahn</a>
- * @param {Object} obj
- * Object which should be tested for a method, or checked
- * for being a method if no further arguments are provided.
- * <p>
- * <em>NOTE: If you pass a primitive value for this argument,
- * the properties of the object created from that value are considered.
- * In particular, if you pass a string value containing
- * a <i>MemberExpression</i>, the properties of the corresponding
- * <code>String</code> instance are considered, not of the object that
- * the <i>MemberExpression</i> might refer to. If you need to use such
- * a string to refer to an object (e.g., if you do not know whether it
- * is safe to refer to the object), use the return value of
- * {@link jsx#tryThis jsx.tryThis("<var>MemberExpression</var>")}
- * as argument to this method instead.</em>
- * </p>
- * @param {string|Array} prop (optional)
- * Path of the property to be determined a method, i.e. a reference to
- * a callable object assigned as property of another object.
- * Use a string argument for each component of the path, e.g.
- * the argument list <code>(o, "foo", "bar")</code> for testing whether
- * <code>o.foo.bar</code> is a method.
- * If the last argument is an {@link Array}, all elements of
- * this array are used for property names; e.g.
- * <code>(o, "foo", ["bar", "baz"])</code>. This allows for testing
- * several properties of the same object with one call.
- * @return {boolean}
- * <code>true</code> if all arguments refer to methods,
- * <code>false</code> otherwise.
- */
- function _isNativeMethod (obj, prop)
- {
- /* NOTE: Thread-safe, argument-safe code reuse -- `this' is our ID */
- return _isMethod.apply(_isNativeMethod, arguments);
- }
-
- /**
- * Determines if an object has a (non-inherited) property
- *
- * @param {Object} obj (optional)
- * Object which property should be checked for existence.
- * @param {string} sProperty
- * Name of the property to check.
- * @return {boolean}
- * <code>true</code> if there is such a property;
- * <code>false</code> otherwise.
- */
- function _hasOwnProperty (obj, sProperty)
- {
- if (arguments.length < 2 && obj)
- {
- sProperty = obj;
- obj = jsx_object;
- }
-
- var proto;
-
- return (_isMethod(obj, "hasOwnProperty")
- ? obj.hasOwnProperty(sProperty)
- : (typeof obj[sProperty] != "undefined"
- && (null == obj.constructor
- || ((proto = obj.constructor.prototype)
- && typeof proto[sProperty] == "undefined"))));
- }
-
- /**
- * Determines if a value refers to an object.
- *
- * <p>Returns <code>true</code> if the value is a reference
- * to an object; <code>false</code> otherwise.</p>
- *
- * <p>An value "is an object" if it is a function or
- * <code>typeof "object"</code> but not <code>null</code>.
- *
- * @return {boolean}
- */
- function _isObject (a)
- {
- var t = typeof a;
- return t == "function" || t == "object" && a !== null;
- }
-
- /**
- * Returns the own enumerable properties of an object
- *
- * @param {Object} obj
- * Object from which to get the keys
- * @return {Array}
- * Own enumerable properties of <var>obj</var>
- * @see Object#keys
- */
- function _getKeys (obj)
- {
- if (typeof Object.keys == "function" && !Object.keys._emulated)
- {
- return Object.keys(obj);
- }
-
- if (!_isObject(obj))
- {
- return jsx.throwThis("TypeError",
- "jsx.object.getKeys() called on non-object");
- }
-
- var names = new Array();
-
- for (var p in obj)
- {
- if (_hasOwnProperty(obj, p))
- {
- names.push(p);
- }
- }
-
- return names;
- }
-
- function Dummy () {}
-
- /**
- * Lets one object inherit from another
- *
- * @param {Object} obj = Object.prototype
- * Object from which to inherit. The default is
- * <code>Object.prototype</code>.
- * @return {Object}
- * Inheriting (child) object
- */
- function _inheritFrom (obj)
- {
- if (typeof obj == "object" && obj == null)
- {
- if (typeof Object.create == "function" && !Object.create._emulated)
- {
- return Object.create(null);
- }
-
- var result = new Object();
- result.__proto__ = null;
- return result;
- }
-
- Dummy.prototype = (typeof obj == "undefined"
- ? Object.prototype
- : (obj || null));
- return new Dummy();
- }
-
- /**
- * Returns the value of an object's internal <code>[[Class]]</code>
- * property.
- *
- * Calls the <code>Object.prototype.toString()</code> method on
- * the object and returns the result of matching against
- * the specified return value, which includes the value of
- * the object's internal <code>[[Class]]</code> property. Although
- * implementations use prototype-based inheritance, the property
- * value is useful for determining the type of an object regardless
- * of the current value of its <code>constructor</code> property.
- * For example, that makes it possible to recognize <code>Array</code>
- * instances independent of the global context in which they were
- * constructed.
- *
- * @function
- * Determines if a value refers to an {@link Array}.
- * <p>
- * Returns <code>true</code> if the value is a reference to an object
- * whose <code>[[Class]]</code> internal property is <code>"Array"</code>;
- * <code>false</code> otherwise.
- * </p>
- *
- * @function
- * @param obj
- * @return {string|Undefined}
- * The value of an object's internal [[Class]] property, or
- * <code>undefined</code> if the property value cannot be determined.
- * @see ECMAScript Language Specification, Edition 5.1, section 15.4.3.2
- */
- var _getClass = (function () {
- var _toString = ({}).toString;
-
- /**
- * @return {string}
- */
- function getClass (obj)
- {
- return (_toString.call(obj)
- .match(/^\s*\[object\s+(\S+)\s*\]\s*$/) || [, ""])[1];
- }
-
- return getClass;
- }());
-
- /**
- * Determines if an object is an {@link Array}.
- *
- * @param a
- * Potential <code>Array</code>
- * @return {boolean}
- */
- function _isArray (a)
- {
- return (typeof Array.isArray == "function" && !Array.isArray._emulated
- ? Array.isArray(a)
- : (a && a.constructor == Array) || _getClass(a) == "Array");
- }
-
- var _rxPrimitive = /^(boolean|function|number|object|string)$/;
-
- /**
- * Determines if a value is a primitive value convertible to
- * an object or a reference to a native object.
- *
- * @param value
- * @return {boolean}
- */
- function _isNativeObject (value)
- {
- var t = (typeof value != "undefined" && value !== null
- && typeof value.valueOf == "function"
- && typeof value.valueOf());
-
- return (t
- && (_rxPrimitive.test(t)
- || _isArray(value)
- || /^(Date|Error|RegExp)$/.test(_getClass(value))
- || (typeof Math != "undefined" && value == Math)
- || (typeof JSON != "undefined" && value == JSON))
- );
- }
-
- /**
- * Used by {@link #extend()} and {@link #setProperties()}
- * to overwrite existing properties.
- */
- var _ADD_OVERWRITE = 1;
-
- /**
- * Used by {@link #extend()} and {@link #clone()}
- * to make a shallow copy of all enumerable properties (default).
- */
- var _COPY_ENUM = 0;
-
- /**
- * Used by {@link #extend()} and {@link #clone()}
- * to make a deep copy of all enumerable properties.
- */
- var _COPY_ENUM_DEEP = 2;
-
- /**
- * Used by {@link #extend()} and {@link #clone()}
- * to copy a property by inheritance.
- */
- var _COPY_INHERIT = 4;
-
- function _createTypedObject (oOriginal)
- {
- if (oOriginal.constructor)
- {
- return _inheritFrom(oOriginal.constructor.prototype);
- }
-
- return new Object();
- }
-
- /**
- * Creates a duplicate (clone) of an object
- *
- * @param {Object} oSource (optional)
- * Object to be cloned. If omitted or <code>null</code>,
- * the calling object is cloned.
- * @param {Number} iLevel (optional)
- * Use the {@link #COPY_ENUM jsx.object.COPY_*}
- * properties to specify the level of cloning.
- * The default is {@link #COPY_ENUM}.
- * @return {Object}
- * A reference to the clone.
- */
- function _clone (oSource, iLevel)
- {
- if (typeof oSource == "number")
- {
- var tmp = oSource;
- oSource = iLevel;
- iLevel = tmp;
- }
-
- if (!oSource)
- {
- oSource = jsx_object;
- }
-
- if (typeof iLevel == "undefined")
- {
- iLevel = _COPY_ENUM;
- }
-
- var me = _clone;
-
- if (!iLevel || (iLevel & _COPY_ENUM_DEEP))
- {
- /*
- * NOTE: For objects, valueOf() only copies the object reference,
- * so we are creating an instance that inherits from the
- * original's prototype, if possible.
- */
- var o2 = (typeof oSource == "object" && oSource
- ? _createTypedObject(oSource)
- : oSource.valueOf());
-
- /* if "var p in ..." does not copy the array elements */
- if (_isArray(o2))
- {
- for (var i = e.length; i--;)
- {
- if (iLevel && typeof oSource[i] == "object" && null != oSource[i])
- {
- jsx.tryThis(function () { o2[i] = me(oSource[i], iLevel); });
- }
- else
- {
- jsx.tryThis(function () { o2[i] = oSource[i]; });
- }
- }
- }
-
- for (var p in oSource)
- {
- if (iLevel && typeof oSource[p] == "object" && null != oSource[p])
- {
- jsx.tryThis(function () { o2[p] = me(oSource[p], iLevel); });
- }
- else
- {
- jsx.tryThis(function () { o2[p] = oSource[p]; });
- }
- }
-
- return o2;
- }
-
- if (iLevel & _COPY_INHERIT)
- {
- return _inheritFrom(oSource);
- }
-
- return null;
- }
-
- /**
- * Defines a property of an object.
- *
- * Emulation of the Object.defineProperty() method from ES 5.1,
- * section 15.2.3.6.
- *
- * Uses {@link Object.prototype#__defineGetter__} and
- * {@link Object.prototype#__defineSetter__} (JavaScript only) as fallback.
- *
- * @function
- * @return {Object} Reference to the object
- */
- var _defineProperty = (function () {
- function _toPropertyDescriptor (obj)
- {
- if (!_isObject(obj))
- {
- jsx.throwThis("TypeError", "Object expected");
- }
-
- var desc = {};
-
- if (_hasOwnProperty(obj, "enumerable"))
- {
- desc.enumerable = !!obj.enumerable;
- }
-
- if (_hasOwnProperty(obj, "configurable"))
- {
- desc.configurable = !!obj.configurable;
- }
-
- var hasValue = obj.hasOwnProperty("value");
- if (hasValue)
- {
- desc.value = obj.value;
- }
-
- var hasWritable = _hasOwnProperty(obj, "writable");
- if (hasWritable)
- {
- desc.writable = !!obj.writable;
- }
-
- var hasGetter = _hasOwnProperty(obj, "get");
- if (hasGetter)
- {
- if (typeof obj.get != "function")
- {
- return jsx.throwThis("TypeError", "Function expected for getter");
- }
-
- desc.get = obj.get;
- }
-
- var hasSetter = _hasOwnProperty(obj, "set");
- if (hasSetter)
- {
- if (typeof obj.set != "function")
- {
- return jsx.throwThis("TypeError", "Function expected for setter");
- }
-
- desc.set = obj.set;
- }
-
- if ((hasGetter || hasSetter) && (hasValue || hasWritable))
- {
- return jsx.throwThis("TypeError", "Cannot define getter/setter and value/writable");
- }
-
- return desc;
- }
-
- function _defineOwnProperty (obj, propertyName, descriptor, _throw, context)
- {
- function _isAccessorDescriptor (desc)
- {
- if (typeof desc == "undefined")
- {
- return false;
- }
-
- return _hasOwnProperty(desc, "get") || _hasOwnProperty(desc, "set");
- }
-
- function _isDataDescriptor (desc)
- {
- if (typeof desc == "undefined")
- {
- return false;
- }
-
- return desc.hasOwnProperty("value") || _hasOwnProperty(desc, "writable");
- }
-
- function _isGenericDescriptor (desc)
- {
- if (typeof desc == "undefined")
- {
- return false;
- }
-
- return !_isAccessorDescriptor(desc) && !_isDataDescriptor(desc);
- }
-
-// var current = obj.hasOwnProperty(propertyName);
-// var extensible = obj[propertyName].[[Extensible]]
-
- if (_isGenericDescriptor(descriptor) || _isDataDescriptor(descriptor))
- {
- var value = descriptor.value;
- obj[propertyName] = value;
-
- if (!descriptor.writable)
- {
- jsx.tryThis(
- function () {
- /* NOTE: Need getter because __defineSetter__() undefines value */
- obj.__defineGetter__(propertyName, function () {
- return value;
- });
-
- obj.__defineSetter__(propertyName, function () {});
- },
- function () {
- obj[propertyName] = value;
-
- jsx.warn((context ? context + ": " : "")
- + "Could not define property `" + propertyName
- + "' as read-only");
- });
- }
- }
- else
- {
- /* accessor property descriptor */
- jsx.tryThis(
- function () {
- if (descriptor["get"])
- {
- obj.__defineGetter__(propertyName, descriptor["get"]);
- }
-
- if (descriptor["set"])
- {
- obj.__defineSetter__(propertyName, descriptor["set"]);
- }
- },
- function () {
- jsx.warn((context ? context + ": " : "")
- + "Could not define special property `" + propertyName + "'."
- + " Please use explicit getters and setters instead.");
- });
- }
-
- return false;
- }
-
- /**
- * @function
- */
- var _defineProperty = _extend(
- /**
- * @param {Object} o
- * @param {Object} descriptor (optional)
- * Property descriptor, a reference to an object that defines
- * the attributes of the property. Must be of the form
- * <code><pre>{
- * propertyName: {
- * configurable: …,
- * enumerable: …,
- * value: …,
- * writable: …,
- * get: function () {…},
- * set: function (newValue) {…}
- * },
- * …
- * }
- * </pre></code> as specified in the ECMAScript Language Specification,
- * Edition 5 Final, section 15.2.3.7. Note that the
- * <code>[[Configurable]]</code> and <code>[[Enumerable]]</code>
- * attributes cannot be emulated. The [[Writable]] attribute,
- * and getter and setter can only be emulated if the
- * <code>__defineGetter__()</code> and <code>__defineSetter__()</code>
- * methods are available, respectively.
- * @param {string} sContext (optional)
- * The context in which the property definition was attempted.
- * Included in the info message in case getters and setters
- * could not be defined.
- */
- function (o, propertyName, descriptor, sContext) {
- var done = false;
-
- if (typeof Object.defineProperty == "function"
- && !Object.defineProperty._emulated)
- {
- jsx.tryThis(function () {
- Object.defineProperty(o, propertyName, descriptor);
- done = true;
- });
- }
-
- if (!done)
- {
- if (!/^(object|function)$/.test(typeof o) || !o)
- {
- return jsx.throwThis("TypeError", "Object expected");
- }
-
- var name = String(propertyName);
- var desc = _toPropertyDescriptor(descriptor);
- _defineOwnProperty(o, name, desc, true, sContext);
- }
-
- return o;
- },
- {
- _emulated: true
- });
-
- return _defineProperty;
- }());
-
- /**
- * Adds/replaces properties of an object.
- *
- * <p>
- * <em>Not to be confused with {@link Function.prototype.extend}.</em>
- * </p>
- *
- * @param {Object} oTarget
- * Target object whose properties should be set.
- * @param {Object} oSource
- * Object specifying the properties to be set.
- * The name of each property serves as the name for the
- * property of the target object, its value as the value
- * of that property.
- * @param {Number} iFlags = 0
- * Flags for the modification, see {@link #ADD_OVERWRITE}
- * and {@link #COPY_ENUM jsx.object.COPY_*}.
- * @return {Object}
- * The extended object
- */
- function _extend (oTarget, oSource, iFlags)
- {
- if (typeof iFlags == "undefined")
- {
- iFlags = 0;
- }
-
- var cloneLevel = (iFlags & (_COPY_ENUM_DEEP | _COPY_INHERIT));
-
- for (var i = 0, keys = _getKeys(oSource), len = keys.length;
- i < len; ++i)
- {
- var p = keys[i];
-
- if (typeof oTarget[p] == "undefined" || (iFlags & _ADD_OVERWRITE))
- {
- jsx.tryThis(function () {
- oTarget[p] = (cloneLevel
- ? _clone(oSource[p], cloneLevel)
- : oSource[p]);
- oTarget[p]._userDefined = true;
- });
- }
- }
-
- return oTarget;
- }
-
- var jsx_object = {
- /**
- * @memberOf jsx.object
- * @version
- */
- version: "$Revision$ ($Date$)",
-
- copyright: "Copyright \xA9 2004-2013",
- author: "Thomas Lahn",
- email: "js@PointedEars.de",
- path: "http://PointedEars.de/scripts/",
-// docURL: jsx.object.path + "object.htm",
-
- ADD_OVERWRITE: _ADD_OVERWRITE,
- COPY_ENUM: _COPY_ENUM,
- COPY_ENUM_DEEP: _COPY_ENUM_DEEP,
- COPY_INHERIT: _COPY_INHERIT,
-
- isMethod: _isMethod,
- areMethods: _isMethod,
- isHostMethod: _isMethod,
- areHostMethods: _isMethod,
-
- isNativeMethod: _isNativeMethod,
- areNativeMethods: _isNativeMethod,
-
- /**
- * Determines if the passed value could be the result of
- * <code>typeof <var>callable</var></code>.
- * <p>
- * NOTE: This method has previously been provided by {@link types.js};
- * optimizations in code reuse moved it here.
- * </p>
- * @param {string} s
- * String to be determined a method type, i.e. "object" or "unknown" in
- * MSHTML, "function" otherwise. The type must have been retrieved with
- * the `typeof' operator. Note that this method may also return
- * <code>true</code> if the value of the <code>typeof</code> operand is
- * <code>null</code>; to be sure that the operand is a method reference,
- * you have to && (AND)-combine the <code>isMethodType(...)</code>
- * expression with the method reference identifier unless `typeof' yielded
- * `unknown' for <var>s</var>.
- * @return {boolean}
- * <code>true</code> if <var>s</var> is a method type,
- * <code>false</code> otherwise.
- * @author
- * (C) 2003-2008 Thomas Lahn &lt;types.js@PointedEars.de&gt;
- * Distributed under the GNU GPL v3 and later.
- * @partof http://pointedears.de/scripts/types.js
- * @deprecated since version 0.1.5a.2009070204
- * in favor of {@link #isMethod(Object)}
- */
- isMethodType: function (s) {
- return /^\s*(function|object|unknown)\s*$/i.test(s);
- },
-
- _hasOwnProperty: _hasOwnProperty,
- isObject: _isObject,
- getKeys: _getKeys,
- inheritFrom: _inheritFrom,
- getClass: _getClass,
- isArray: _isArray,
- isNativeObject: _isNativeObject,
-
- isHostObject: function (value) {
- return !_isNativeObject(value);
- },
-
- clone: _clone,
-
- /**
- * @deprecated in favor of {@link #extend}
- */
- setProperties: _extend,
-
- extend: _extend,
- defineProperty: _defineProperty,
-
- /**
- * Defines properties of an object, if possible.
- *
- * Emulation of the Object.defineProperties() method from ES 5.1,
- * section 15.2.3.7.
- *
- * @function
- * @param {Object} o
- * The object for which properties getters and setters should be defined.
- * @param {Object} descriptor (optional)
- * Properties descriptor, where each own property name
- * is a property name of the new object, and each corresponding
- * property value is a reference to an object that defines the
- * attributes of that property.
- * @return {Object} Reference to the object
- * @see #defineProperty
- */
- defineProperties: _extend(
- function (o, descriptor, sContext) {
- var done = false;
-
- if (typeof Object.defineProperties == "function"
- && !Object.defineProperties._emulated)
- {
- jsx.tryThis(function () {
- Object.defineProperties(o, descriptor);
- done = true;
- });
- }
-
- if (!done)
- {
- for (var i = 0, keys = _getKeys(descriptor), len = keys.length;
- i < len; ++i)
- {
- var propertyName = keys[i];
- _defineProperty(o, propertyName, descriptor[propertyName],
- sContext);
- }
- }
-
- return o;
- },
- {
- _emulated: true
- }),
-
- /**
- * Determines if a (non-inherited) property of an object is enumerable
- *
- * @param {Object} obj (optional)
- * Object which property should be checked for enumerability.
- * @param {string} sProperty
- * Name of the property to check.
- * @return {boolean}
- * <code>true</code> if there is such a property;
- * <code>false</code> otherwise.
- */
- _propertyIsEnumerable: function (obj, sProperty) {
- if (arguments.length < 2 && obj)
- {
- sProperty = obj;
- obj = jsx_object;
- }
-
- if (_isMethod(obj, "propertyIsEnumerable"))
- {
- return obj.propertyIsEnumerable(sProperty);
- }
-
- for (var propertyName in obj)
- {
- if (propertyName == name && _hasOwnProperty(obj, propertyName))
- {
- return true;
- }
- }
-
- return false;
- },
-
- /**
- * Determines if an object, or the objects it refers to,
- * has an enumerable property with a certain value
- *
- * @param {Object} obj
- * @param needle
- * The value to be searched for
- * @param {Object} params
- * Search parameters. The following properties are supported:
- * <table>
- * <thead>
- * <tr>
- * <th>Property</th>
- * <th>Meaning</th>
- * </tr>
- * </thead>
- * <tbody>
- * <tr>
- * <th><code><var>exclude</var> :&nbsp;Array</code></th>
- * <td><code>Array</code> containing the names of the
- * properties that should not be searched</td>
- * </tr>
- * <tr>
- * <th><code><var>recursive</var> :&nbsp;boolean</code></th>
- * <td>If a true-value, search recursively.</td>
- * </tr>
- * <tr>
- * <th><code><var>strict</var> :&nbsp;boolean</code></th>
- * <td>If a true-value, perform a strict comparison
- * without type conversion.</td>
- * </tr>
- * </tbody>
- * </table>
- */
- hasPropertyValue:
- function jsx_object_hasPropertyValue (obj, needle, params) {
- for (var property in obj)
- {
- if (params && params.exclude && params.exclude.indexOf(property) > -1)
- {
- continue;
- }
-
- var propertyValue = obj[property];
- if (params && params.recursive)
- {
- if (typeof propertyValue == "object" && propertyValue !== null)
- {
- if (jsx_object_hasPropertyValue(propertyValue, needle, params))
- {
- return true;
- }
- }
- }
-
- if (params && params.strict)
- {
- if (propertyValue === needle)
- {
- return true;
- }
- }
- else
- {
- /* Switch operands because of JScript quirk */
- if (needle == propertyValue)
- {
- return true;
- }
- }
- }
-
- return false;
- },
-
- /**
- * Returns the name of an unused property for an object.
- *
- * @param {Object} obj
- * @param {Number} iLength
- * Maximum property name length up to which an unused name
- * is searched. The default is 256.
- * @return {string}
- * The name of a non-existing property of <code>o</code> if
- * {@link Object#prototype.hasOwnProperty()} is supported, or
- * the name of a property with value <code>undefined</code>
- * if it is not supported; the empty string
- * if there is no such property.
- */
- findNewProperty: function (obj, iLength) {
- if (!obj)
- {
- obj = jsx_object;
- }
-
- if (arguments.length < 2)
- {
- iLength = 256;
- }
- else
- {
- iLength = parseInt(iLength, 10);
- }
-
- var prefix = "";
-
- while (prefix.length < iLength)
- {
- for (var i = "a".charCodeAt(0), max = "z".charCodeAt(0); i <= max; ++i)
- {
- var ch = String.fromCharCode(i);
- var newName = prefix + ch + "_";
- if (!_hasOwnProperty(obj, newName))
- {
- return newName;
- }
- }
-
- prefix += "a";
- }
-
- return "";
- },
-
- /**
- * Returns a new object that can serve as data container.
- *
- * Returns a new object that, if supported, does not inherit or
- * have any properties. This is accomplished by either cutting
- * off its existing prototype chain or not creating one for it
- * in the first place.
- *
- * @return {Object}
- * @see Object.create
- */
- getDataObject: function () {
- return _inheritFrom(null);
- },
-
- /**
- * Returns a feature of an object
- *
- * @param {Object} obj
- * Object which provides the feature
- * @params {string}
- * Property names on the feature path, including the property
- * for the feature itself. For example, use
- * <code>jsx.object.getFeature("foo", "bar", "baz")</code> for
- * safe access to <code>foo.bar.baz</code>.
- * @return {any}
- * <code>undefined</code> if <var>obj</var> does not have such
- * a feature. Note that features whose value can be
- * <code>undefined</code> cannot be detected with this method.
- */
- getFeature: function (obj) {
- for (var i = 1, len = arguments.length; i < len; i++)
- {
- var arg = arguments[i];
- if (typeof obj != "undefined" && typeof obj[arg] != "undefined" && obj[arg])
- {
- obj = obj[arg];
- }
- else
- {
- return void 0;
- }
- }
-
- return obj;
- }
- };
-
- return jsx_object;
-}());
-
-/**
- * Prints debug messages to the script console.
- *
- * NOTE: This method has previously been provided by
- * {@link debug.js}; optimizations in code reuse
- * moved it here.
- *
- * @function
- */
-jsx.dmsg = (function () {
- var
- _isMethod = jsx.object.isMethod,
- msgMap = {
- data: {
- info: "INFO",
- warn: "WARNING",
- debug: "DEBUG"
- },
-
- getString: function (s) {
- var data = this.data;
-
- if (typeof data[s] != "undefined")
- {
- return data[s] + ": ";
- }
-
- return "";
- }
- };
-
- /**
- * @param {string} sMsg
- * Message to be printed
- * @param {string} sType = "log"
- * Type of the message. Supported values include
- * <code>"log"</code> (default), <code>"info"</code>, <code>"warn"</code>,
- * and <code>"debug"</code>. If a script console does not support
- * a message type, the default value is used.
- * @return {boolean}
- * <code>true</code> if it was possible to cause the message to be printed;
- * <code>false</code> otherwise.
- */
- return function (sMsg, sType) {
- /* Firebug 0.4+ and others */
- if (typeof console != "undefined")
- {
- if (!sType || !_isMethod(console, sType) && sType != "log")
- {
- sMsg = msgMap.getString(sType) + sMsg;
- sType = "log";
- }
-
- if (sType != "info")
- {
- sMsg += "\n" + jsx.getStackTrace();
- }
-
- if (_isMethod(console, sType))
- {
- /* MSHTML's console methods do not implement call() */
- Function.prototype.call.call(console[sType], console, sMsg);
- return true;
- }
- }
- else if (typeof opera != "undefined"
- && _isMethod(opera, "postError"))
- {
- opera.postError(msgMap.getString(sType) + sMsg);
- return true;
- }
-
- return false;
- };
-}());
-
-/**
- * Issues an info message, if possible.
- *
- * @param {String} sMsg
- * Message
- * @see jsx#dmsg
- */
-jsx.info = function (sMsg) {
- return jsx.dmsg(sMsg, jsx.MSG_INFO);
-};
-
-/**
- * Issues a warning, if possible.
- *
- * @param {String} sMsg
- * Message
- * @see jsx#dmsg
- */
-jsx.warn = function (sMsg) {
- return jsx.dmsg(sMsg, jsx.MSG_WARN);
-};
-
-/**
- * Issues an error message, if possible.
- *
- * @param {string} sMsg Message
- * @see jsx#dmsg
- */
-jsx.error = function (sMsg) {
- return jsx.dmsg(sMsg, jsx.MSG_ERROR);
-};
-
-/**
- * Clears the handler for the proprietary <code>error</code> event.
- *
- * NOTE: This method has previously been provided by {@link debug.js};
- * optimizations in code reuse moved it here.
- *
- * @return {boolean} <code>true</code>
- */
-/*
- * NOTE: Initialization must come before the initialization of
- * setErrorHandler() as it is used in a closure there,
- * see Message-ID <2152411.FhMhkbZ0Pk@PointedEars.de>
- */
-jsx.clearErrorHandler = function () {
- if (typeof window != "undefined")
- {
- /*
- * debug.js 0.99.5.2006041101 BUGFIX:
- * onerror is defined as a property of window, not of the Global Object
- */
- window.onerror = null;
- }
-
- return true;
-};
-
-/**
- * Sets the handler for the proprietary <code>error</code> event.
- *
- * NOTE: This method has previously been provided by {@link debug.js};
- * and {@link types.js}; optimizations in code reuse moved it here.
- *
- * @function
- */
-jsx.setErrorHandler = (function () {
- var
- jsx_object = jsx.object,
- jsx_clearErrorHandler = jsx.clearErrorHandler;
-
- /**
- * @param {Callable} fHandler
- * @return {boolean}
- * <code>true</code> if the error handler could be assigned to
- * successfully, <code>false</code> otherwise. Note that one reason
- * for failure can be that an event handler is no longer supported
- * by the UA's DOM due to efforts towards adherence to Web standards.
- */
- return function (fHandler) {
- /*
- * NOTE: There is no deadlock here because even if `fHandler' is a string,
- * `isMethod(fHandler)' will call `setErrorHandler()' without arguments;
- * so fHandler in that call will be `undefined' and `setErrorHandler()'
- * is not called again.
- */
- if (!jsx_object.isMethod(fHandler))
- {
- fHandler = jsx_clearErrorHandler;
- }
-
- if (typeof assertFalse == "function")
- {
- assertFalse(typeof fHandler == "undefined", false,
- "jsx.setErrorHandler(fHandler)");
- }
-
- if (typeof window != "undefined"
- && typeof fHandler != "undefined")
- {
- /*
- * debug.js 0.99.5.2006041101 BUGFIX:
- * onerror is defined as a property of window, not of the Global Object
- */
- window.onerror = fHandler;
- }
-
- return (typeof window.onerror != "undefined"
- && window.onerror == fHandler);
- };
-}());
-
-/**
- * Throws an exception, including an execution context hint if provided,
- * followed by an error message.
- *
- * NOTE: This method has previously been provided by {@link exception.js};
- * optimizations in code reuse moved it here.
- *
- * @function
- * @author
- * Copyright (c) 2008, 2013 Thomas 'PointedEars' Lahn <cljs@PointedEars.de>.
- * Distributed under the GNU GPL v3 and later.
- * @partof JSX:object.js
- */
-jsx.throwThis = (function () {
- var
- _jsx_object = jsx.object,
- _addslashes = function (e) {
- return (typeof e == "string"
- ? e.replace(/["'\\]/g, "\\$&").replace(/\r?\n|\r/g, "\\n")
- : e);
- };
-
- /**
- * @param {string|Function|Error} errorType
- * Expression for the constructor of the error type, or a reference
- * to an object inheriting from <code>Error.prototype</code>.
- * Use a false-value (e.g., <code>""</code> or <code>null</code>)
- * to throw an unqualified exception.
- * @param {string|Array} message
- * Error message to be displayed. If an <code>Array</code>,
- * it is passed as argument list to the constructor for the error type
- * @param {Callable|string} context
- * Optional callable object to specify the context
- * where the exception occurred.
- */
- return function (errorType, message, context) {
- var sErrorType = errorType;
- var isError = false;
-
- var messageIsArray =_jsx_object.isArray(message);
- if (typeof Error == "function"
- && Error.prototype.isPrototypeOf(errorType))
- {
- isError = true;
- sErrorType = "errorType";
- }
- else
- {
- var t = typeof errorType;
-
- if (t == "function" || t == "string")
- {
- if (t == "function")
- {
- sErrorType = "errorType";
- }
- else if (t == "string")
- {
- sErrorType = errorType;
- }
-
- if (!messageIsArray)
- {
- sErrorType = "new " + sErrorType;
- }
- }
- }
-
- var sContext = "";
-
- var stack = jsx.getStackTrace();
- if (stack)
- {
- sContext = "\n\n" + stack;
- }
-
- /* DEBUG: set breakpoint here */
- if (!sContext)
- {
- if (_jsx_object.isMethod(context))
- {
- sContext = (String(context).match(/^\s*(function.+\))/)
- || [, null])[1];
- sContext = (sContext ? sContext + ': ' : '');
- }
- }
-
- /*
- * Array or array-like object for exception constructor's
- * argument list
- */
- if (_jsx_object.isMethod(message, "map"))
- {
- message = message.map(_addslashes);
- }
- else
- {
- message = (message || "") + (sContext || "");
- message = '"' + _addslashes(message) + '"';
- }
-
- /* DEBUG */
- var throwStmt = 'throw ' + (sErrorType ? sErrorType : '')
- + (isError
- ? ''
- : (messageIsArray
- ? '.construct(message)'
- : '(' + (message || '') + ')'))
- + ';';
-
- eval(throwStmt);
- };
-}());
-
-/**
- * Rethrows arbitrary exceptions
- *
- * @param {Error} exception
- */
-jsx.rethrowThis = function (exception) {
- eval("throw exception");
-};
-
-if (jsx.options.augmentBuiltins)
-{
- jsx.object.extend(Object, {
- /**
- * @see jsx.object.defineProperty
- */
- defineProperty: jsx.object.defineProperty,
-
- /**
- * @see jsx.object.defineProperties
- */
- defineProperties: jsx.object.defineProperties
- });
-
- if (typeof Object.create != "function")
- {
- /**
- * Creates a new object and initializes its properties.
- *
- * Emulation of the Object.create() method from ES 5.1,
- * section 15.2.3.5.
- *
- * @param {Object|Null} prototype
- * @param {Object} descriptor (optional)
- * Properties descriptor, where each own property name
- * is a property name of the new object, and each corresponding
- * property value is a reference to an object that defines the
- * attributes of that property. Supported properties of
- * that defining object include <code>value</code> only
- * at this time.
- * @return {Object} Reference to the new object
- */
- Object.create = jsx.object.extend(
- function (prototype, descriptor) {
- var o = jsx.object.inheritFrom(prototype);
-
- if (typeof descriptor != "undefined")
- {
- Object.defineProperties(o, descriptor);
- }
-
- return o;
- },
- {
- /**
- * @memberOf Object.create
- */
- _emulated: true
- }
- );
- }
-
- if (typeof Object.keys != "function")
- {
- /**
- * @param {Object} obj
- */
- Object.keys = function (obj) {
- return jsx.object.getKeys(obj);
- };
-
- Object.keys._emulated = true;
- }
-}
-
-/**
- * Emulates the <code>instanceof</code> operator (JavaScript 1.5)
- * compatible to JavaScript 1.1 for <strong>one</strong>
- * inheritance level.
- *
- * Example:
- * <pre><code>
- * var o = new Object();
- * o instanceof Object; // yields `true'
- *
- * function Foo()
- * {
- * }
- * var o = new Foo();
- * o instanceof Object; // yields `true'
- * o instanceof Foo; // yields `true' also
- *
- * var _isInstanceOf = jsx.object.isInstanceOf;
- * _isInstanceOf(o, Object); // yields `false'
- * _isInstanceOf(o, Foo); // yields `true'
- * </code></pre>
- *
- * NOTE: This method has previously been provided by {@link types.js};
- * optimizations in code reuse moved it here.
- *
- * @author (C) 2003, 2011, 2013 Thomas Lahn &lt;js@PointedEars.de&gt;
- * @param {Object} obj
- * Expression to be determined a <var>Prototype</var> object.
- * @param {Function} Constructor
- * Object to be determined the constructor of a.
- * @return {boolean}
- * <code>true</code> if <code>obj</code> is an object derived
- * from <var>Prototype</var>, <code>false</code> otherwise.
- */
-jsx.object.isInstanceOf = //(function () {
-// var jsx_object = jsx.object;
-//
-// return
- function (obj, Constructor) {
- return !!(obj && Constructor
- && typeof obj.constructor != "undefined"
- && obj.constructor == Constructor
-
- /*
- * For a built-in type T, T.prototype often has the same
- * [[Class]] like instances (exception: RegExp);
- * BUT error-prone for native user-defined objects (Color "==" KeyValue)!
- */
-// || jsx_object.getClass(obj) == jsx_object.getClass(Prototype.prototype)
- );
- };
-//}());
-
-/**
- * Returns the name of a function
- *
- * @param {Function|String} aFunction
- * @return {string}
- * The name of a function if it has one; the empty string otherwise.
- */
-jsx.object.getFunctionName = function (aFunction) {
- /* Return the empty string for null or undefined */
- return (aFunction != null
- && typeof aFunction.name != "undefined" && aFunction.name)
- || (String(aFunction).match(/\s*function\s+([A-Za-z_]\w*)/) || [, ""])[1];
-};
-
-/**
- * Returns minimum documentation for a function
- *
- * @param {Function|String} aFunction
- * @return {string}
- */
-jsx.object.getDoc = function (aFunction) {
- return (String(aFunction).match(
- /^\s*(function(\s+[A-Za-z_]\w*)?\s*\([^\)]*\))/) || [, ""])[1];
-};
-
-/**
- * Gets the stack trace of the calling execution context.
- *
- * Based on getStackTrace() from jsUnit 2.2alpha of 2006-03-24.
- *
- * @return {string}
- * The stack trace of the calling execution context, if available.
- */
-jsx.getStackTrace = function () {
- /**
- * @private
- * @param {Error} excp
- */
- function parseErrorStack(excp)
- {
- var stack = [];
-
- if (excp && excp.stack)
- {
- var stacklist = excp.stack.split('\n');
-
-// for (var i = 0; i < stacklist.length - 1; i++)
-// {
-// var framedata = stacklist[i];
-//
-// var name = framedata.match(/^\s*(at\s+)?(\w*)/)[2];
-// if (!name)
-// {
-// name = 'anonymous';
-// }
-//
-// stack.push(name);
-// }
- stack = stacklist;
-
- /* remove top level anonymous functions to match JScript */
-// while (stack.length && stack[stack.length - 1] == 'anonymous')
-// {
-// stack.length = stack.length - 1;
-// }
- }
-
- return stack;
- }
-
- var result = '';
-
- if (typeof arguments.caller != 'undefined')
- {
- /* JScript and older JavaScript */
- for (var a = arguments.caller; a != null; a = a.caller)
- {
- result += '> ' + (jsx.object.getFunctionName(a.callee) || "anonymous")
- + '\n';
- if (a.caller == a)
- {
- result += '*';
- break;
- }
- }
- }
- else
- {
- /* other */
- if (typeof Error != "function")
- {
- return result;
- }
-
- var stack = parseErrorStack(new Error());
- result = stack.slice(2).join("\n");
-// for (var i = 1; i < stack.length; i++)
-// {
-// result += '> ' + stack[i] + '\n';
-// }
- }
-
- return result;
-};
-
-/**
- * Retrieves the value of a property of an object
- *
- * @param {Object} obj
- * @param {string} sProperty
- * @param aDefault
- * @return {any}
- * @throws {@link #PropertyError} if the property
- * does not exist or has the <code>undefined</code> value, and
- * <var>aDefault</var> was not provided
- */
-jsx.object.getProperty = function (obj, sProperty, aDefault) {
- if (typeof obj[sProperty] != "undefined")
- {
- return obj[sProperty];
- }
-
- /* default value not passed */
- if (arguments.length < 3)
- {
- return jsx.throwThis("jsx.object.PropertyError", sProperty);
- }
-
- return aDefault;
-};
-
-/**
- * Returns the absolute path for a URI-reference
- *
- * @param {string} relativePath
- * @param {string} basePath
- * @return {string}
- */
-jsx.absPath = function (relativePath, basePath) {
- var uri = (basePath || document.URL).replace(/[?#].*$/, "").split("/");
- relativePath = relativePath.split("/");
-
- if (uri[uri.length - 1] != "")
- {
- uri.pop();
- }
-
- for (var i = 0, len = relativePath.length; i < len; ++i)
- {
- var component = relativePath[i];
- if (component == "..")
- {
- uri.pop();
- }
- else if (component != ".")
- {
- uri.push(component);
- }
- }
-
- return uri.join("/");
-};
-
-/**
- * Imports object properties into the global namespace.
- *
- * Convenience method, also for backwards compatibility to versions before
- * strict namespacing. Does not load script files dynamically; use
- * jsx.importFrom() for that and include jsx.net.http.
- *
- * @function
- * @return {boolean}
- * <code>false</code> if <var>properties</var> is provided and not
- * all properties could be imported; <code>true</code> otherwise.
- * @throws TypeError, if <var>obj</var> is not an iterable object
- */
-jsx._import = (function () {
- var _jsx_object = jsx.object;
- var _getKeys = _jsx_object.getKeys;
- var _hasOwnProperty = _jsx_object._hasOwnProperty;
- var _isArray = _jsx_object.isArray;
-
- /**
- * @param {Object} obj
- * @param {string|Array|Null} properties (optional)
- * Name or list of names of properties to import. If not
- * provided or <code>null</code>, all own enumerable properties
- * of <var>obj</var> are imported.
- * @param {string} objAlias (optional)
- * The alias property on the Global object that should be used
- * instead of the Global Object. Helps to avoid spoiling
- * the global namespace.
- * @param {string|Array} propertyAliases (optional)
- * The alias(es) that should be used for each property, in order,
- * that is specified in <var>properties</var>. Helps to avoid
- * overwriting property values.
- * There must be specified as many aliases as properties were
- * specified. Ignored if <var>properties</var> is
- * <code>null</code>.
- */
- return function (obj, properties, objAlias, propertyAliases) {
- if (!obj)
- {
- return jsx.throwThis("TypeError",
- "expected iterable object, saw " + obj + " : " + (obj === null ? "Null" : typeof obj),
- "jsx._import");
- }
-
- var result = true;
-
- var root = jsx.global;
- if (objAlias != null)
- {
- root[objAlias] = {};
- root = root[objAlias];
- }
-
- var propertiesArg = properties;
- if (properties == null)
- {
- properties = _getKeys(obj);
- }
- else if (!_isArray(properties))
- {
- properties = [properties];
- }
-
- var len = properties.length;
- if (propertiesArg != null && propertyAliases != null)
- {
- if (!_isArray(propertyAliases))
- {
- propertyAliases = [propertyAliases];
- }
-
- if (len != propertyAliases.length)
- {
- return jsx.throwThis(jsx.InvalidArgumentError,
- ["Different number of property names and aliases",
- len, propertyAliases.length],
- "jsx._import");
- }
- }
-
- for (var i = 0; i < len; ++i)
- {
- var sourceProperty = properties[i];
- if (propertiesArg == null || _hasOwnProperty(obj, sourceProperty))
- {
- var targetProperty = sourceProperty;
- if (propertiesArg != null && propertyAliases != null)
- {
- targetProperty = propertyAliases[i];
- }
-
- root[targetProperty] = obj[sourceProperty];
- }
- else
- {
- result = false;
- }
- }
-
- return result;
- };
-}());
-
-/* ES 5: Reserved words may be used in MemberExpression */
-jsx["import"] = jsx._import;
-
-/**
- * Imports a script, and optionally the object it defines, or some of their
- * properties, into the global namespace.
- *
- * NOTE: Issues a synchronously-handled HTTP request which blocks all script
- * execution until a response is received or the request times out.
- * Can therefore not be used to import jsx.net.http.
- *
- * @function
- * @requires jsx.net.http#Request
- * @return {boolean}
- * <code>true</code> if the script could be successfully <em>loaded</em>
- * (not: included).
- */
-jsx.importFrom = (function () {
- /* Imports */
- var _import = jsx._import;
- var _Request;
-
- /**
- * @param {string} uri
- * URI of the script to be imported
- * @param {Object} obj
- * Object from the script to be imported (optional)
- * @param {Array} properties (optional)
- * Properties of the object from the script to be imported (optional).
- * See {@link jsx#_import}.
- * @param {string} objAlias (optional)
- * See {@link jsx#_import}.
- * @param {Array} propertyAliases (optional)
- * See {@link jsx#_import}.
- */
- return function jsx_importFrom (uri, obj, properties, objAlias, propertyAliases) {
- /* One-time import */
- if (!_Request)
- {
- _Request = jsx.net.http.Request;
- }
-
- jsx_importFrom.lastImport = uri;
- var req = new _Request(uri, "GET", false, function (response) {
- /*
- * NOTE: Passing response.responseText to eval() is not ES5-compatible;
- * conforming implementations create a new execution context with
- * EMPTY scope chain.
- */
- var script = document.createElement("script");
- script.type = "text/javascript";
-
- if (typeof script.text == "undefined")
- {
- script.appendChild(document.createTextNode(response.responseText));
- }
- else
- {
- script.text = response.responseText;
- }
-
- /* NOTE: document.head was introduced with HTML5 WD */
- (document.head || document.getElementsByTagName("head")[0]).appendChild(script);
-
- if (arguments.length > 1)
- {
- return _import(obj, properties, objAlias, propertyAliases);
- }
-
- return true;
- });
-
- return req.send();
- };
-}());
-
-/**
- * Imports once an object or some of its properties
- * from a script resource into the global namespace.
- *
- * @function
- * @return {boolean}
- * <code>true</code> if the script specified by <var>uri</var>
- * has already been included; <code>false</code> otherwise.
- * @see jsx#importFrom
- */
-jsx.importOnce = (function () {
- var _getProperty = jsx.object.getProperty;
- var _absPath = jsx.absPath;
- var _importFrom = jsx.importFrom;
-
- /**
- * @param {string} uri
- * URI of the resource to be imported
- * @param {Object} obj
- * Object to import
- * @param {Array} properties (optional)
- * Properties of the object from the script to be imported.
- * See {@link jsx#_import}.
- * @param {string} objAlias (optional)
- * See {@link jsx#_import}.
- * @param {Array} propertyAliases (optional)
- * See {@link jsx#_import}.
- */
- function importOnce (uri, obj, properties, objAlias, propertyAliases)
- {
- /**
- * @param {string} uri
- */
- function scriptIncluded (uri)
- {
- var scripts = document.getElementsByTagName("script");
- if (scripts)
- {
- var uriAbsPath = _absPath(uri);
- for (var i = 0, len = scripts.length; i < len; ++i)
- {
- var script = scripts[i];
- if (_absPath(script.src) == uriAbsPath)
- {
- return true;
- }
- }
- }
-
- return false;
- }
-
- var result = false;
-
- if (uri
- && !scriptIncluded(uri)
- && !_getProperty(importOnce.imports, uri, null))
- {
- result = _importFrom(uri, obj, properties, objAlias, propertyAliases);
- if (result)
- {
- importOnce.imports[uri] = true;
- }
- }
-
- return result;
- }
-
- importOnce.imports = {};
-
- return importOnce;
-}());
-
-/**
- * Executes a function if and once its requirements are fulfilled.
- *
- * @function
- * @return {any}
- * The return value of <var>callback</var>,
- * <code>undefined</code> otherwise.
- */
-jsx.require = (function () {
- var _importOnce = jsx.importOnce;
- var _isArray = jsx.object.isArray;
-
- /**
- * @param {string|Array} uri
- * URI-reference or <code>Array</code> of URI-references
- * specifying the requirement(s)
- * @param {Function} callback
- * Function to be executed
- * @return {mixed}
- * The return value of <var>callback</var>,
- * <code>false</code> otherwise.
- */
- return function (uri, callback) {
- if (!_isArray(uri))
- {
- uri = [uri];
- }
-
- var success = true;
- for (var i = 0, len = uri.length; i < len; ++i)
- {
- if (!_importOnce(uri[i]))
- {
- success = false;
- break;
- }
- }
-
- if (success)
- {
- return callback();
- }
- };
-}());
-
-if (jsx.options.augmentPrototypes)
-{
-/* Disabled until ECMAScript allows to hide properties from iteration */
-//jsx.object.extend(Object.prototype, {
-// extend : extend,
-// clone : clone,
-// findNewProperty: findNewProperty,
-// _hasOwnProperty: _hasOwnProperty
-// });
-
- /*
- * KJS 3.5.1 does not support named FunctionExpressions within Object
- * literals if the literal is an AssignmentExpression (right-hand side
- * of an assignment or a passed function argument).
- * fixed since <http://bugs.kde.org/show_bug.cgi?id=123529>
- */
-
- jsx.object.extend(Function.prototype, {
- /**
- * Applies a method of another object in the context
- * of a different object (the calling object).
- *
- * @memberOf Function#prototype
- * @function
- * @return {any}
- */
- apply: (function () {
- var
- jsx_object = jsx.object,
- jsx_global = jsx.global;
-
- /**
- * @param {Object} thisArg
- * Reference to the calling object
- * @param {Array} argArray
- * Arguments for the object
- */
- return function (thisArg, argArray) {
- if (!thisArg)
- {
- thisArg = jsx_global;
- }
-
- var
- o = {},
- p = jsx_object.findNewProperty(o);
-
- if (p)
- {
- o[p] = thisArg || this;
-
- var a = new Array();
- for (var i = 0, len = argArray.length; i < len; i++)
- {
- a[i] = "argArray[" + i + "]";
- }
-
- eval("o[p](" + a + ")");
-
- delete o[p];
- }
- };
- }()),
-
- /**
- * Calls (executes) a method of another object in the
- * context of a different object (the calling object).
- *
- * @memberOf Function#prototype
- * @param {Object} thisArg
- * Reference to the calling object. SHOULD NOT
- * be a host object, since augmentation is required.
- * @params {_}
- * Arguments for the object.
- */
- call: function (thisArg) {
- var a = new Array();
-
- for (var i = 1, len = arguments.length; i < len; i++)
- {
- a[i] = "arguments[" + i + "]";
- }
-
- if (!thisArg)
- {
- thisArg = jsx.global;
- }
-
- var
- o = {},
- p = jsx.object.findNewProperty(o);
-
- if (p)
- {
- o[p] = this;
- eval("o[p](" + a + ")");
- delete o[p];
- o = null;
- }
- },
-
- /**
- * Returns a <code>Function</code> that has a defined
- * <code>this</code> value and calls the calling
- * <code>Function</code> with default parameters.
- *
- * @function
- * @return {Function}
- * @see 15.3.4.5 Function.prototype.bind (thisArg [, arg1 [, arg2, ...]])
- */
- bind: (function () {
- var _slice;
- var _getClass = jsx.object.getClass;
-
- /**
- * @param {Object} thisArg
- * <code>this</code> value of the returned
- * <code>Function</code>
- * @params Default parameters
- */
- return function (thisArg) {
- var target = this;
- if (typeof target != "function")
- {
- return jsx.throwThis("TypeError");
- }
-
- if (!_slice)
- {
- _slice = Array.prototype.slice;
- }
-
- var boundArgs = _slice.call(arguments, 1);
- var f = function () {
- return target.apply(thisArg, boundArgs.concat(_slice.call(arguments)));
- };
-
- if (_getClass(target) == "Function")
- {
- f.length = target.length + boundArgs.length;
- }
- else
- {
- if (typeof Object.defineProperty == "function")
- {
- /*
- * [[Writable]]: false, [[Enumerable]]: false,
- * [[Configurable]]: false
- */
- Object.defineProperty(f, "length");
- }
- else
- {
- f.length = 0;
- }
- }
-
- return f;
- };
- }()),
-
- /**
- * Constructs a new object using the calling object as constructor
- * and elements of the referred array as items of the arguments list.
- * <p>
- * Example:
- * <pre><code>var d = Date.construct([2009, 8, 1]);</code></pre>
- * is equivalent to
- * <pre><code>var d = new Date(2009, 8, 1);</code></pre>
- * but, by contrast, allows for passing an arbitrary number of
- * arguments per the array's elements.
- * </p>
- * @memberOf Function#prototype
- * @param {Array} argArray
- * @return {Object} Reference to the new instance
- */
- construct: function (argArray) {
- var a = new Array();
- for (var i = 0, len = argArray.length; i < len; ++i)
- {
- a[i] = "argArray[" + i + "]";
- }
-
- return eval("new this(" + a + ")");
- },
-
- /**
- * @author Courtesy of Asen Bozhilov, slightly adapted
- * @function
- * @memberOf Function#prototype
- * @return {Object} Reference to the new instance
- */
- construct2: (function () {
- function Dummy(constructor, argArray) {
- constructor.apply(this, argArray);
- }
-
- /**
- * @param {Array} argArray
- */
- return function (argArray) {
- Dummy.prototype = this.prototype;
- return new Dummy(this, argArray);
- };
- }())
- });
-}
-
-/**
- * Includes the prototype object of another object in the prototype
- * chain of objects created with the calling Function object.
- * <p>
- * Used with constructors to establish multi-level prototype-based
- * inheritance (much like class-based inheritance in Java). To that end,
- * this method adds a <code>_super</code> property to the function to refer
- * to <var>Constructor</var>, the constructor of the parent prototype.
- * Likewise, instances constructed with the resulting function have a
- * <code>_super</code> property to refer to their constructor.
- * </p><p>
- * NOTE: Because of this, you need to use the constructor's
- * <code>_super</code> property if you want to refer to the parent's
- * constructor in the instance's constructor; using the instance's
- * <code>_super</code> property would result in infinite recursion,
- * and ultimately a stack overflow. You may call the parent's
- * constructor explicitly within the constructor of the child, using
- * the (equivalent of the) <code>arguments.callee._super.call()</code>
- * method (or calling it explicitly as a method of the inheriting
- * prototype); in prototype methods, use
- * <code><var>Constructor</var>._super.prototype.method.call()</code>
- * or refer to the parent constructor directly.
- * </p>
- * <p><em>Not to be confused with {@link jsx.object#extend}.</em></p>
- *
- * @function
- * @return {Function}
- * A reference to the constructor of the extended prototype object
- * if successful; <code>null</code> otherwise.
- */
-Function.prototype.extend = (function () {
- var _jsx = jsx;
- var _jsx_object = _jsx.object;
-
- /**
- * @private
- * @function
- * @return {Object}
- */
- var _iterator = (function () {
- /* Optimize if ECMAScript 5 features were available */
- if (typeof Object.defineProperties == "function")
- {
- return function () {
- return this;
- };
- }
-
- return function () {
- _jsx.warn("for (var p in o.iterator()) { f(); } is inefficient,"
- + " consider using o.forEach(f, ...) instead");
-
- var o = new Object();
-
- for (var p2 in this)
- {
- switch (p2)
- {
- case "_super":
- case "constructor":
- case "iterator":
- case "forEach":
- break;
-
- default:
- o[p2] = true;
- }
- }
-
- return o;
- };
- }());
-
- function _forEach(fCallback, thisObj)
- {
- var t = typeof fCallback;
- if (!_jsx_object.isMethod(fCallback))
- {
- return _jsx.throwThis(
- "TypeError",
- (!/^\s*unknown\s*$/i.test(t) ? fCallback : "arguments[0]")
- + " is not a function",
- this + ".forEach");
- }
-
- for (var p in this)
- {
- switch (p)
- {
- case "_super":
- case "constructor":
- case "iterator":
- case "forEach":
- break;
-
- default:
- /* also supports host object's methods */
- Function.prototype.call.call(fCallback, thisObj, this[p], p, this);
- }
- }
- }
-
- /**
- * @param {Function} fConstructor
- * Constructor from which prototype object should be
- * inherited.
- * @param {Object} oProtoProps
- * Object from which to shallow-copy properties as prototype
- * properties. Of those, the <code>_super</code>,
- * <code>constructor</code>, and <code>_userDefined</code>
- * properties are ignored as they are used internally.
- */
- return function (fConstructor, oProtoProps) {
- var me = this;
-
- /*
- * Allows constructor to be null or undefined to inherit from
- * Object.prototype by default (see below)
- */
- if (fConstructor == null)
- {
- if (typeof fConstructor == "undefined")
- {
- /* Passing undefined is probably unintentional, so warn about it */
- _jsx.warn((_jsx_object.getFunctionName(me) || "[anonymous Function]")
- + ".extend(" + "undefined, " + oProtoProps + "):"
- + " Parent constructor is undefined, using Object");
- }
-
- fConstructor = "Object";
- }
-
- /*
- * Supports strings being passed that denote properties of the
- * Global Object.
- *
- * TODO: An API that only registers strings as references to features
- * defined later, and implements inheritance using this registry
- * on user call only, might be useful for constructors defined
- * in Object initializers.
- */
- if (typeof fConstructor.valueOf() == "string")
- {
- fConstructor = _jsx.global[fConstructor];
- }
-
- var t = typeof fConstructor;
- if (t != "function")
- {
- _jsx.throwThis("TypeError",
- (/\s*unknown\s*/i.test(t) ? "Unknown" : t) + " is not a function");
- return null;
- }
-
- this.prototype = _jsx_object.inheritFrom(fConstructor.prototype);
-
- if (oProtoProps)
- {
- for (var p in oProtoProps)
- {
- this.prototype[p] = oProtoProps[p];
- }
- }
-
- this._super = fConstructor;
- this.prototype._super = fConstructor.prototype;
- this.prototype.constructor = this;
- this._userDefined = true;
-
- /* PERF: for (var p in o.iterator()) is rather inefficient */
- /**
- * @deprecated
- * @return {Object}
- */
- if (typeof this.prototype.iterator != "function")
- {
- this.prototype.iterator = _iterator;
- }
-
- /* Optimize iteration if ECMAScript 5 features are available */
- if (typeof Object.defineProperties == "function")
- {
- var
- userDefProtoProps = ["_super", "constructor", "iterator"],
- oDescriptors = {},
- proto = this.prototype;
-
- for (var i = userDefProtoProps.length; i--;)
- {
- p = userDefProtoProps[i];
- oDescriptors[p] = {
- value: proto[p],
- enumerable: false
- };
- }
-
- _jsx.tryThis(
- function () {
- Object.defineProperties(proto, oDescriptors);
- },
- function (e) {
- _jsx.warn(_jsx_object.getFunctionName(me) + ".extend("
- + _jsx_object.getFunctionName(fConstructor) + ", "
- + oProtoProps + "): " + e.name + ': ' + e.message);
- });
- }
-
- if (typeof this.prototype.forEach != "function")
- {
- /**
- * Calls a function for each real property of the object
- * in arbitrary order. Workaround for for-in iteration
- * on objects with augmented prototype object.
- *
- * @param {Function} fCallback
- * @param {Object} thisObj (optional)
- * @throws TypeError
- */
- this.prototype.forEach = _forEach;
-
- /* Optimize iteration if ECMAScript 5 features are available */
- if (typeof Object.defineProperty == "function")
- {
- _jsx.tryThis(
- function () {
- Object.defineProperty(me.prototype, "forEach", {
- value: me.prototype.forEach,
- enumerable: false
- });
- },
- function (e) {
- /* IE 8 goes here */
- _jsx.warn(
- 'Borken implementation: Object.defineProperty is a method'
- + ' but [[Call]](this.prototype, "forEach") throws exception ("'
- + e.name + ': ' + e.message + '")');
- }
- );
- }
- }
-
- return this;
- };
-}());
-
-jsx.array = {
- version: jsx.object.version,
-
- /**
- * Maps elements of an <code>Array</code>-like object
- * to named properties of another object.
- *
- * <p>NOTE: Equivalent to Array destructuring (JavaScript 1.7+):</p>
- * <pre><code>var o = Array.destructure(["bar", "foo"], ["foo", "bar"]);</code></pre>
- * is equivalent to
- * <pre><code>var o = {};
- * [o.foo, o.bar] = ["bar", "foo"];</code></pre>
- *
- * @param {Object} a
- * <code>Array</code>-like object whose elements should be mapped.
- * @param {Array} properties
- * Names of the properties that array elements should be mapped to.
- * If an element of this <code>Array</code> is <code>undefined</code>
- * or <code>null</code> (the former can be facilitated with
- * simply omitting the element value in an <code>Array</code>
- * Initialiser when not the last element of this <code>Array</code>),
- * the corresponding element of <var>a</var> is not mapped.
- * @param {Object} oTarget
- * Target object. If a false-value, a new <code>Object</code>
- * instance is being created.
- * @returns {Object}
- * <var>oTarget</var> or a new <code>Object</code> instance
- * augmented with the specified properties and values.
- */
- destructure: function (a, properties, oTarget) {
- var o = oTarget || {};
-
- for (var i = 0, len = properties.length; i < len; ++i)
- {
- var propertyName = properties[i];
- if (propertyName != null)
- {
- o[propertyName] = a[i];
- }
- }
-
- return o;
- },
-
- /**
- * Maps one array to another
- *
- * @function
- * @return {Array}
- * <var>array</var> with <var>callback</var> applied to each element.
- * @see ECMAScript Language Specification, Edition 5.1, section 15.4.4.19
- */
- map: (function () {
- var _isMethod = jsx.object.isMethod;
-
- /**
- * @param {Array} array
- * Array to be mapped
- * @param {Callable} callback
- * @param {Object} oThis (optional)
- */
- function _map (array, callback, oThis)
- {
- if (!_isMethod(callback))
- {
- return jsx.throwThis("TypeError",
- (_isMethod(callback, "toSource") ? callback.toSource() : callback)
- + " is not callable",
- this + ".map");
- }
-
- var
- len = array.length >>> 0,
- res = [];
-
- for (var i = 0; i < len; ++i)
- {
- if (i in array)
- {
- res[i] = callback.call(oThis, array[i], i, array);
- }
- }
-
- return res;
- }
-
- return _map;
- }())
-};
-
-/**
- * Returns an <code>Array</code> created from mapping items
- * of an Array-like object.
- *
- * @param {Object} iterable
- * <code>Array</code>-like object
- * @param {Function} builder (optional)
- * Mapping function whose return value specifies the
- * mapped value in the new <code>Array</code>.
- * Pass <code>null</code> for no mapping.
- * @param {Object} oThis (optional)
- * <code>this</code> value in the mapping function
- * @return {Array}
- * @see Array.prototype#map
- */
-jsx.array.from = function (iterable, builder, oThis) {
- if (arguments.length < 2)
- {
- builder = null;
- }
-
- if (arguments.length > 1 && builder && typeof builder != "function")
- {
- return jsx.throwThis("TypeError",
- (_isMethod(builder, "toSource") ? builder.toSource() : builder)
- + " is not callable",
- this + ".map");
- }
-
- if (arguments.length < 3)
- {
- oThis = iterable;
- }
-
- var
- len = iterable.length >>> 0,
- res = [];
-
- for (var i = 0; i < len; ++i)
- {
- res[i] = (builder
- ? builder.call(oThis, iterable[i], i, iterable)
- : oThis[i]);
- }
-
- return res;
-};
-
-if (jsx.options.augmentBuiltins)
-{
- /* Defines Array.isArray() if not already defined */
- jsx.object.extend(Array, {
- destructure: jsx.array.destructure,
- from: jsx.array.from,
- isArray: jsx.object.isArray
- });
-}
-
-if (jsx.options.augmentPrototypes)
-{
- /*
- * Defines Array.prototype.indexOf(), .map() and .slice()
- * if not already defined
- */
- jsx.object.extend(Array.prototype, {
- /**
- * Returns the first index at which a given element can be found in
- * the array, or -1 if it is not present.
- *
- * @param searchElement
- * Element to locate in the array.
- * @param {Number} fromIndex
- * The index at which to begin the search. Defaults to 0, i.e.
- * the whole array will be searched. If the index is greater than
- * or equal to the length of the array, -1 is returned, i.e.
- * the array will not be searched. If negative, it is taken as
- * the offset from the end of the array. Note that even when
- * the index is negative, the array is still searched from front
- * to back. If the calculated index is less than 0, the whole array
- * will be searched.
- * @return {number}
- * The first index at which a given element can be found in
- * the array, or -1 if it is not present.
- * @author Courtesy of developer.mozilla.org, unverified
- * @memberOf Array.prototype
- * @see ECMAScript Language Specification, Edition 5.1, section 15.4.4.14
- */
- indexOf: function (searchElement, fromIndex) {
- "use strict";
- if (this === void 0 || this === null)
- {
- throw new TypeError();
- }
-
- var t = Object(this);
-
- var len = t.length >>> 0;
- if (len === 0) {
- return -1;
- }
-
- var n = 0;
- if (arguments.length > 0)
- {
- n = Number(fromIndex);
- if (n !== n) {
- /* shortcut for verifying if it's NaN */
- n = 0;
- }
- else if (n !== 0 && n !== Infinity && n !== -Infinity)
- {
- n = (n > 0 || -1) * Math.floor(Math.abs(n));
- }
- }
-
- if (n >= len)
- {
- return -1;
- }
-
- var k = (n >= 0 ? n : Math.max(len - Math.abs(n), 0));
- for (; k < len; k++)
- {
- if (k in t && t[k] === searchElement)
- {
- return k;
- }
- }
-
- return -1;
- },
-
- /**
- * Maps one array to another
- *
- * @param {Callable} callback
- * @param {Object} oThis (optional)
- * @return {Array}
- * The original array with <var>callback</var> applied to each element.
- * @see ECMAScript Language Specification, Edition 5.1, section 15.4.4.19
- */
- map: function (callback, oThis) {
- return jsx.array.map(this, callback, oThis);
- },
-
- slice: function (start, end) {
- var a = [];
- var len = this.length >>> 0;
- var relativeStart = parseInt(start, 10);
- var k = (relativeStart < 0
- ? Math.max(len + relativeStart, 0)
- : Math.min(relativeStart, len));
- var relativeEnd = (typeof end == "undefined"
- ? len
- : parseInt(end, 10));
- var final = (relativeEnd < 0
- ? Math.max(len + relativeEnd, 0)
- : Math.min(relativeEnd, len));
- var n = 0;
- while (k < final)
- {
- if ((k in this))
- {
- a[n] = this[k];
- }
-
- ++k;
- ++n;
- }
-
- return a;
- }
- });
-}
-
-/**
- * General exception
- *
- * @constructor
- * @extends Error
- * @param {string} sMsg
- */
-jsx.Error = function jsx_Error (sMsg) {
- var msg = (sMsg || "Unspecified error");
- var _super = jsx_Error._super;
- var e = null;
-
- if (typeof _super == "function")
- {
- _super.call(this, msg);
-
- jsx.tryThis(function () { e = new _super(); });
- }
-
- if (!this.message)
- {
- /**
- * @type string
- */
- this.message = msg;
- }
-
- if (!this.lineNumber && e)
- {
- /**
- * @type number
- */
- this.lineNumber = e.lineNumber || e.line;
- }
-
- if (!this.stack && e && e.stack)
- {
- var stack = String(e.stack).split(/\r?\n|\r/).slice(2);
- this.stack = stack.join("\n");
- }
-};
-
-jsx.Error.extend(
- (typeof Error != "undefined" ? Error : function () {}),
- {
- /**
- * @memberOf jsx.Error#prototype
- */
- name: "jsx.Error",
- getMessage: function () { return this.message; },
- getStackTrace: function () { return this.stack; },
- printStackTrace: function () {
- var s = this.getStackTrace();
- jsx.dmsg(s) || window.alert(s);
- }
-});
-
-/**
- * Invalid argument
- *
- * @constructor
- * @extends jsx#Error
- * @param {string} sReason
- * @param sGot
- * @param sExpected
- */
-jsx.InvalidArgumentError =
- function jsx_InvalidArgumentError (sReason, sGot, sExpected) {
- jsx_InvalidArgumentError._super.call(this,
- (sReason || "Invalid argument(s)")
- + (sGot && sGot.length > 0 ? ": " + sGot : "")
- + (sExpected ? (sGot ? ";" : ":") + " expected " + sExpected : ""));
- };
-
-jsx.InvalidArgumentError.extend(jsx.Error, {
- /**
- * @memberOf jsx.InvalidArgumentError#prototype
- */
- name: "jsx.InvalidArgumentError"
-});
-
-/**
- * Object-related exception
- *
- * @constructor
- * @param {string} sMsg
- * @extends jsx#Error
- */
-jsx.object.ObjectError = function jsx_object_ObjectError (sMsg) {
- jsx_object_ObjectError._super.call(this, sMsg);
-};
-
-jsx.object.ObjectError.extend(jsx.Error, {
- /**
- * @memberOf jsx.object.ObjectError#prototype
- */
- name: "jsx.object.ObjectError"
-});
-
-/**
- * Property-related exception
- *
- * @constructor
- * @param {string} sMsg
- * @extends #ObjectError
- */
-jsx.object.PropertyError = function jsx_object_PropertyError (sMsg) {
- jsx_object_PropertyError._super.call(
- this, "No such property" + (arguments.length > 0 ? (": " + sMsg) : ""));
-};
-
-jsx.object.PropertyError.extend(jsx.object.ObjectError, {
- /**
- * @memberOf jsx.object.PropertyError#prototype
- */
- name: "jsx.object.PropertyError"
-});
\ No newline at end of file
/live/object.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Index: live/window.js
===================================================================
--- live/window.js (revision 509)
+++ live/window.js (nonexistent)
@@ -1,445 +0,0 @@
-/**
- * <title>Window Function Library</title>
- * @file window.js
- * @author
- * (C) 1999‒2011 Thomas Lahn &lt;window.js@PointedEars.de&gt;
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-/*
- * Refer window.htm file for general documentation.
- *
- * This document contains JavaScriptDoc. Refer
- * http://pointedears.de/scripts/JSDoc/
- * for details.
- */
-var windowVersion = "1.29.2009052620";
-var windowCopyright = "Copyright \xA9 1999-2009";
-var windowAuthor = "Thomas Lahn";
-var windowEmail = "window.js@PointedEars.de";
-var windowPath = "http://pointedears.de/scripts/";
-// var windowDocURL = windowPath + "window.htm";
-
-/* Script exceptions */
-
-/**
- * @param Msg : string
- * @type boolean
- * @return false
- */
-function windowException(Msg)
-{
- alert(
- "window.js "
- + windowVersion
- + "\n"
- + windowCopyright
- + " "
- + windowAuthor
- + " <"
- + windowEmail
- + ">\n\n"
- + Msg);
- return false;
-}
-
-/**
- * @param sFunctionName : string
- * @param iArg : number
- * @return boolean
- */
-function EInvalidArgNum(sFunctionName, iArg)
-{
- // if (arguments.length < 2) iArg = "?";
- return windowException(
- sFunctionName
- + ": The user script did not pass the required number of arguments ("
- + iArg
- + ").\nRefer documentation in script file for correct function call.");
-}
-
-/* Script features */
-
-/**
- * @param sCaption : string
- * @type boolean
- * @return true
- */
-function setStatus(sCaption)
-{
- window.status = sCaption;
- return true;
-}
-
-/**
- * @type boolean
- * @return true
- */
-function resetStatus()
-{
- window.status = window.defaultStatus;
- return true;
-}
-
-var sLinkOutMsg_de =
- "Dieser Link ist offline nicht verfügbar.\n\n"
- + "Wenn Sie mit dem Internet verbunden sind, steht Ihnen die Seite online"
- + " zur Verfügung.\n\n"
- + "Möchten Sie jetzt eine Verbindung zu dieser Seite herstellen?";
-var sLinkOutMsg_us =
- "This link is not available offline.\n\n"
- + "If you are connected to the Internet, the website is available online.\n\n"
- + "Do you wish to connect to this website now?';";
-var sLinkOutMsg = sLinkOutMsg_de;
-
-/**
- * @param sURL : string
- * @param sLink : string
- * @param bShowURL : boolean
- * @param aTarget : number|string
- * @param iWidth : number
- * @param iHeight : number
- * @param sOptions : string
- * @type boolean
- * @return false
- */
-function linkOut(sURL, sLink, bShowURL, aTarget, iWidth, iHeight, sOptions)
-{
- if (arguments.length < 1)
- {
- EInvalidArgNum("linkOut", 1);
- return false;
- }
-
- var arg = sLinkOutMsg;
- /*
- * version 1.05.2000.3 update, formerly bShowURL as 2nd argument;
- * fixed problem with websites created earlier
- */
- if (arguments.length < 3)
- {
- bShowURL = true;
- }
-
- var oldArg;
- if ((sURL != "" && bShowURL == true)
- || (arguments.length >= 2 && sLink != ""))
- {
- oldArg = arg;
- arg = "\n\n" + oldArg;
- }
-
- if (sURL != "" && bShowURL)
- {
- oldArg = arg;
- arg = sURL + oldArg;
- }
-
- if (arguments.length >= 2 && sLink != "")
- {
- if (sURL != "" && bShowURL)
- {
- oldArg = arg;
- arg = sLink + "\n" + oldArg;
- }
- else
- {
- oldArg = arg;
- arg = sLink + oldArg;
- }
- }
-
- if (window.confirm(arg))
- {
- var oTarget = document;
- if (arguments.length >= 4
- && aTarget != ""
- && aTarget.toLowerCase() != "_self")
- {
- /*
- * version 1.05.2000.3 update, formerly neither empty strings
- * nor "_self" supported
- */
- if (isNaN(aTarget))
- {
- if (aTarget.toLowerCase() == "_new"
- || aTarget.toLowerCase() == "_blank")
- {
- popUp(sURL, iWidth, iHeight, sOptions);
- return false;
- }
- oTarget = parent.frames[aTarget].document;
- /* and below: v1.09.2000.3 bugfix */
- }
- else
- {
- oTarget = parent.frames[aTarget].document;
- }
- }
- oTarget.location = "";
- oTarget.location.href = sURL;
- }
-
- /* version 1.15.2000.11 update */
- return false;
-}
-
-/**
- * @param sURL : string
- * @param iWidth : number
- * @param iHeight : number
- * @param sOptions : string
- * @type boolean
- * @return false
- */
-function popUp(sURL, iWidth, iHeight, sOptions)
-{
- var sFeatures = "height=" + iHeight + ",width=" + iWidth;
- if (arguments.length > 3)
- {
- sFeatures += "," + sOptions;
- }
- var wndChild = window.open(sURL, null, sFeatures);
- return false;
-}
-
-/*
- * OpenChildWin(...) call redirected to popUp(...) for compatibility to
- * previous versions
- */
-var OpenChildWin = popUp;
-
-/**
- * @param sURL : string
- * @param targetFrame : number|string
- * @return Window
- */
-function LoadFrame(sURL, targetFrame)
-{
- if (arguments.length < 2)
- {
- /* Raise exception if required arguments are missing */
- return EInvalidArgNum("LoadFrame", 2);
- }
-
- if (isNaN(targetFrame))
- {
- if (parent.eval(targetFrame))
- {
- parent.eval(targetFrame).location.href = sURL;
- return sURL;
- }
-
- return targetFrame;
- }
-
- if (parent.frames[targetFrame])
- {
- parent.frames[targetFrame].location.href = sURL;
- return sURL;
- }
-
- return targetFrame;
-}
-var sEnlargeImgTitle_en = "Click to close window";
-var sEnlargeImgTitle_de = "Klicken, um Fenster zu schliessen";
-var sEnlargeImgTitle = sEnlargeImgTitle_en;
-
-/**
- * @param sImageURL : string
- * @param sCaption : string
- * @param iWidth : number
- * @param iHeight : number
- * @param bCenter : boolean
- * @type boolean
- * @return false
- */
-function enlargeImg(sImageURL, sCaption, iWidth, iHeight, bCenter)
-{
- var ident = enlargeImg;
- var argnum = ident.arguments.length;
- if (sImageURL.charAt(0) != "/")
- {
- /*
- * Version 1.17.2002.2 bugfix:
- * Calculates absolute image file paths of relative ones
- * Fixes bug with Mozilla 0.9.7 and above (includes Netscape 6.1+)
- * that generated pages have no path except about:blank which causes
- * relative paths for their resources to fail
- */
- /* Windows local path */
- var iPathEnd = window.location.pathname.lastIndexOf('\\');
- if (iPathEnd < 0)
- {
- iPathEnd = window.location.pathname.lastIndexOf('/');
- }
-
- /* URL */
- if (iPathEnd > -1)
- {
- /* Extend filename to full path */
- sImageURL = window.location.pathname.substring(0, iPathEnd)
- + "/" + sImageURL;
- }
- }
-
- if (argnum < 1)
- {
- return (EInvalidArgNum("Level 2: enlargeImg", 1));
- }
-
- /* preset also window position and size in the case the temporary script below fails */
- var sOptions =
- "toolbar=no,location=no,menubar=no,scrollbars=yes,resizable=yes"
- + ((argnum > 2) && !isNaN(iWidth)) ? (",width=" + iWidth + 12) : ""
- + ((argnum > 3) && !isNaN(iHeight)) ? (",height=" + iHeight + 32) : ""
- + ",left="
- + parseInt(screen.width / 2 - (argnum > 2
- && !isNaN(iWidth) ? iWidth / 2 : 0))
- + ",top="
- + parseInt(screen.height / 2 - (argnum > 3
- && !isNaN(iHeight) ? iHeight / 2 : 0));
-
- var w = window.open("", "wndZoom", sOptions);
- if (w)
- {
- var d = w.document;
- if (d)
- {
- d.open("text/html");
- var s = [
- '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"',
- ' "http://www.w3.org/TR/html4/loose.dtd">',
- '<html>',
- ' <head>',
- ' <meta http-equiv="Content-Type" content="text/html;'
- + ' charset=UTF-8">',
-
- ' <meta name="generator" value="JSX:window.js{',
- + windowVersion + '}:enlargeImg(...) ' + windowCopyright
- + ' ' + windowAuthor + ' &lt;' + windowEmail + '&gt;">',
-
- ' <title>' + ((argnum > 1 && sCaption != "") ? sCaption : sImageURL)
- + '<\/title>',
-
- /*
- * temporary script and updated inline code to fix
- * BUG_Enlarge:ALWAYS_FIT-TO-IMAGE
- */
- ' <script type="text/javascript">',
- ' var orig = {};\n',
-
- ' function fitWindowToImage()',
- ' {',
- ' var imgWidth = '
- + (argnum > 2 && iWidth != 0 ? iWidth : "document.images[0].width + 12")
- + ';',
- ' var imgHeight = '
- + (argnum > 3 && iHeight != 0 ? iHeight : "document.images[0].height + 32")
- + ';\n',
-
- /* MSHTML */
- ' if (typeof window.resizeTo == "object")',
- ' {',
- ' orig.left = window.screenLeft;',
- ' orig.top = window.screenTop;',
- ' orig.width = window.width;',
- ' orig.height = window.height;',
- ' window.resizeTo(imgWidth, imgHeight);',
- ' }',
- /* Gecko */
- ' else if (typeof window.sizeToContent == "function")',
- ' {',
- ' orig.left = window.screenX;',
- ' orig.top = window.screenY;',
- ' orig.width = window.innerWidth;',
- ' orig.height = window.innerHeight;',
- ' window.sizeToContent();',
- ' }',
- /* NN4 */
- ' else if (typeof document.layers == "object")',
- ' {',
- ' orig.left = window.screenX;',
- ' orig.top = window.screenY;',
- ' orig.width = window.innerWidth;',
- ' orig.height = window.innerHeight;',
- ' window.innerWidth = document.width;',
- ' window.innerHeight = document.height;',
- ' }',
-
- (argnum < 5 || argnum > 4 && bCenter && window.moveTo)
- ? (' window.moveTo(\n'
- + ' screen.width/2 - imgWidth/2,\n'
- + ' screen.height/2 - imgHeight/2);\n')
- : '',
- ' }\n',
-
- ' function restoreWindowSize()',
- ' {',
- ' if (typeof orig.left != "undefined"',
- ' && typeof orig.top != "undefined"',
- ' && typeof window.resizeTo != "undefined")',
- ' window.resizeTo(orig.left, orig.top);\n',
- ' if (document.all && window.resizeTo)',
- ' {',
- ' try',
- ' {',
- ' window.screenLeft = orig.left;',
- ' window.screenTop = orig.top;',
- ' }',
- ' catch (e)',
- ' {}',
- ' }',
- ' else if (typeof window.sizeToContent == "function"',
- ' || typeof document.layers == "object")',
- ' {',
- ' window.screenX = orig.left;',
- ' window.screenY = orig.top;',
- ' window.innerWidth = orig.width;',
- ' window.innerHeight = orig.height;',
- ' }',
- ' }',
- ' <\/script>',
- ' <\/head>\n',
- ' <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"'
- + ' style="margin: 0 !important">',
- ' <a href="javascript:restoreWindowSize();window.close();"',
- ' title="' + sEnlargeImgTitle + '"',
- ' onclick="restoreWindowSize(); window.close(); return false;">'
- + '<img',
- ' src="' + sImageURL + '" border="0"',
- ' onload="fitWindowToImage(this);"><\/a>',
- ' <\/body>',
- '<\/html>'
- ].join("\n");
- d.write(s);
- d.close();
- w.focus();
- }
- else
- {
- w.close();
- return true;
- }
- }
-
- return false;
-}
-/*
- * Enlarge(...) call redirects to enlargeImg(...) for
- * compatibility with previous versions
- */
-var Enlarge = enlargeImg;
\ No newline at end of file
Index: live/cookie.js
===================================================================
--- live/cookie.js (revision 509)
+++ live/cookie.js (nonexistent)
@@ -1,185 +0,0 @@
-/**
- * <title>JavaScript Cookie Data Access Prototype</title>
- */
-// Refer cookie.txt file for general documentation.
-
-// TCookie prototype definition
-
-function Cookie(sData)
-{
- this.version = "1.4.2004012016";
- this.msgHeader =
- "Cookie JavaScript Cookie Data Access Prototype v"
- + this.version + " \xA9 2000-2004 Thomas Lahn. All rights reserved.\n"
- + "Web: http://pointedears.de/\n"
- + "Email: cookie.js@PointedEars.de\n\n";
-// reset properties
- this.name = "";
- this.value = "";
- this.expires = "";
- this.domain = "";
- this.path = "";
- this.secure = false;
- if (sData)
- {
- // properties
- // Separate the sections of cookie data to retrieve properties */
- var aCookieData = new Array();
- var sTempData = "";
- var i;
-
- for (i = 0; i < sData.length; i++)
- {
- var currentChar = sData.substr(i, 1);
- sTempData += currentChar;
- if (currentChar == ";" || i == sData.length - 1)
- {
- aCookieData[aCookieData.length] = sTempData;
- sTempData = "";
- }
- }
-
- for (i = 0; i < aCookieData.length; i++)
- {
- var sDataName = aCookieData[i].substring(0, aCookieData[i].indexOf("="));
- var sDataValue =
- aCookieData[i].substring(
- aCookieData[i].indexOf("=") + 1,
- aCookieData[i].length - 1);
-
- if (i == 0)
- {
- this.name = sDataName;
- this.value = sDataValue;
- }
- else
- {
- var sDataNameLower = sDataName.toLowerCase();
- if (sDataNameLower == "expires") this.expires = sDataValue;
- if (sDataNameLower == "domain" ) this.domain = sDataValue;
- if (sDataNameLower == "path" ) this.path = sDataValue;
- if (sDataNameLower == "secure" ) this.secure = true;
- }
- }
- }
- // methods
- this.loadData = cookie_loadData;
- this.toString = cookie_toString;
- this.aboutMe = cookie_aboutMe;
-}
-
-function cookie_loadData(sData)
-{
- // Separate the sections of cookie data */
- var aCookieData = new Array();
- var sTempData = "";
- var i;
-
- for (i = 0; i < sData.length; i++)
- {
- var currentChar = sData.substr(i, 1);
- sTempData += currentChar;
-
- if(currentChar == ";")
- {
- aCookieData[aCookieData.length] = sTempData;
- sTempData = "";
- }
- }
- for (i = 0; i < aCookieData.length; i++)
- {
- var sDataName = aCookieData[i].substring(0, aCookieData[i].indexOf("="));
- var sDataValue =
- aCookieData[i].substring(
- aCookieData[i].indexOf("=") + 1,
- aCookieData[i].length - 1);
-
- if (i == 0)
- {
- this.name = sDataName;
- this.value = sDataValue;
- }
- else
- {
- var sDataNameLower = sDataName.toLowerCase();
- (sDataNameLower == "expires"
- ? this.expires = sDataValue
- : this.expires = 0);
- (sDataNameLower == "domain"
- ? this.domain = sDataValue
- : this.domain = "");
- (sDataNameLower == "path"
- ? this.path = sDataValue
- : this.path = "");
- (sDataNameLower == "secure"
- ? this.secure = true
- : this.secure = false);
- }
- }
-}
-
-function cookie_toString()
-{
- return (
- this.name + "=" + this.value
- + "; Expires=" + this.expires
- + "; domain=" + this.domain
- + "; path=" + this.path
- + (this.secure ? "secure;" : ";"));
-}
-
-function cookie_aboutMe(showMsg)
-{
- var result = false;
-
- if (showMsg)
- {
- alert(getObjInfo(this, "p", "s"));
- }
- else
- {
- result = getObjInfo(this, "p", "Ts");
- }
-
- return result;
-}
-
-// Create a cookie with the specified name and value.
-function cookie_setCookie(sName, sValue, dDate, iExpirationType)
-{
- var dExpiration = new Date();
- if (arguments.length > 3 && iExpirationType < 0)
- { // Countdown
- dExpiration.setTime(dExpiration.getTime() + dDate);
- }
- else // Expiration Date
- {
- dExpiration.setTime(dDate);
- }
- document.cookie =
- sName + "=" + escape(sValue)
- + "; expires=" + dExpiration + ";";
-}
-
-// Remove the cookie with the specified name.
-function cookie_delCookie(sName)
-{
- var d = new Date();
- return cookie_setCookie(sName, "null", d.getTime() - 1);
-}
-
-// Retrieve the value of the cookie with the specified name.
-function cookie_getCookie(sName)
-{
- // cookies are separated by semicolons
- var aCookie = document.cookie.split("; ");
- for (var i=0; i < aCookie.length; i++) {
- // a name/value pair (a crumb) is separated by an equal sign
- var aCrumb = aCookie[i].split("=");
- if (sName == aCrumb[0])
- return unescape(aCrumb[1]);
- }
-
- // a cookie with the requested name does not exist
- return null;
-}
\ No newline at end of file
Index: live/printf-20020909.c
===================================================================
--- live/printf-20020909.c (revision 509)
+++ live/printf-20020909.c (nonexistent)
@@ -1,246 +0,0 @@
-/* Lisence is GPL2 */
-#include <string.h>
-#include <ctype.h>
-char hextbl[] = "0123456789ABCDEF";
-void sys_write(char*, int);
-#define SCANDEF 0x100000
-#define BARDEF 0x80000
-#define DOTDEF 0x40000
-#define ZERODEF 0x20000
-#define SIZEDEF 0x10000
-#define ESCAPE 1
-
-static int outchar(char c, char *ptr, int off) {
- if(ptr == (char*)-1) sys_write(&c, 1);
- else if(ptr > (char*)255) ptr[off] = c;
- return off + 1;
-}
-
-static int outstring(char *data, int len, char *ptr, int offset, int _num) {
- int i, num1, siz, off;
-
- off = offset;
- num1 = _num & 0xffff;
- siz = len;
- if((_num & (SIZEDEF | BARDEF | DOTDEF)) == SIZEDEF)
- for(i = num1;i > len;i--)
- off = outchar(' ', ptr, off);
- if((_num & SIZEDEF) && (_num & DOTDEF) && (siz > num1)) siz = num1;
- if(ptr == (char*)-1) sys_write(data, siz);
- else if(ptr > (char*)255) memcpy(&(ptr[off]), data, siz);
- off += siz;
- if((_num & (SIZEDEF | BARDEF | DOTDEF)) == (SIZEDEF | BARDEF))
- for(i = num1;i > len;i--)
- off = outchar(' ', ptr, off);
- return off;
-}
-
-static int out_space(int _num, char* ptr, int off) {
- if(_num & ZERODEF)
- return outchar('0', ptr, off);
- else
- return outchar(' ', ptr, off);
-}
-
-static int input_number(int *value, char *ptr, int offset, int _num, int sel) {
- char buffer[16], *inptr;
- int off;
-
- off = offset;
- if(ptr == (char*)-1) {
- read_string(buffer, 15);
- sys_write("\n", 1);
- inptr = buffer;
- } else if(ptr > (char*)255) {
- while(ptr[off] <= ' ') off++;
- inptr = &(ptr[off]);
- while(ptr[off] > ' ') off++;
- }
- if(sel == 0) *value = atodec(inptr);
- else *value = atohex(inptr);
- return off;
-}
-
-static int number(unsigned int value, char *ptr, int offset, int _num) {
- unsigned int a, b, dec;
- int f, i, off, k, num1;
-
- if(_num & SCANDEF)
- return input_number((int*)value, ptr, offset, _num, 0);
- dec = value;
- off = offset;
- num1 = _num & 0xffff;
- for(k = 10, i = 1000000000;i >= 10;i /= 10, k--) if(value / i) break;
- if((_num & (SIZEDEF | BARDEF)) == SIZEDEF)
- for(i = num1;i > k;i--)
- off = out_space(_num, ptr, off);
- f = 0;
- for(i = 1000000000;i >= 100;i /= 10) {
- a = dec % i;
- b = i / 10;
- a = a / b;
- if(a > 0) f = 1;
- if(f == 1) off = outchar(hextbl[a], ptr, off);
- }
- a = dec % 10;
- off = outchar(hextbl[a], ptr, off);
- if((_num & (SIZEDEF | BARDEF)) == (SIZEDEF | BARDEF))
- for(i = num1;i > k;i--)
- off = out_space(_num, ptr, off);
- return off;
-}
-
-static int decimal(int value, char *ptr, int offset, int _num) {
- int num, off;
-
- if(_num & SCANDEF)
- return input_number((int*)value, ptr, offset, _num, 0);
- num = value;
- off = offset;
- if(num < 0) {
- off = outchar('-', ptr, off);
- num = ~num + 1;
- }
- return number(num, ptr, off, _num);
-}
-
-static int hex(unsigned int value, char *ptr, int offset, int _num) {
- int off, sft, index, num1, nm, f, i;
- unsigned int bits;
- char c;
-
- if(_num & SCANDEF)
- return input_number((int*)value, ptr, offset, _num, 1);
- off = offset;
- num1 = _num & 0xffff;
- for(nm = 36,bits = 0xffffffff;bits > 0;bits >>= 1, nm--)
- if(~bits & value) break;
- nm >>= 2;
- if((_num & (SIZEDEF | BARDEF)) == SIZEDEF)
- for(i = num1;i > nm;i--)
- off = out_space(_num, ptr, off);
- f = 0;
- for(sft = 28;sft >= 0;sft -= 4) {
- index = (value >> sft) & 0xf;
- if(index > 0) f = 1;
- if(index > 0 || f == 1 || sft == 0)
- off = outchar(hextbl[index], ptr, off);
- }
- if((_num & (SIZEDEF | BARDEF)) == (SIZEDEF | BARDEF))
- for(i = num1;i > nm;i--)
- off = out_space(_num, ptr, off);
- return off;
-}
-
-int vprintf(char *p, char *form, int a, int b, int *arg, int _opt) {
- int i, n, off, argc, value, num, numindex, opt, inoff;
- char flag, numbuf[5], *ptr, *inptr;
-
- flag = 0;
- off = 0;
- argc = -2;
- n = strlen(form);
- for(i = 0;i < n;i++) {
- if(flag & ESCAPE) {
- if(argc == -2) value = a;
- else if(argc == -1) value = b;
- else value = arg[argc];
- }
- if(form[i] == '%') {
- if(i > 0 && form[i - 1] == '%') {
- flag &= ~ESCAPE;
- if(!(_opt & SCANDEF)) off = outchar(form[i], p, off);
- } else {
- flag |= ESCAPE;
- numindex = -1;
- num = 0;
- opt = _opt;
- }
- } else if((flag & ESCAPE) && (form[i] == 'd' || form[i] == 'i')) {
- argc++;
- off = decimal(value, p, off, num | opt);
- flag &= ~ESCAPE;
- } else if((flag & ESCAPE) && form[i] == 'u') {
- argc++;
- off = number(value, p, off, num | opt);
- flag &= ~ESCAPE;
- } else if((flag & ESCAPE) && (form[i] == 'x' || form[i] == 'X')) {
- argc++;
- off = hex(value, p, off, num | opt);
- flag &= ~ESCAPE;
- } else if((flag & ESCAPE) && form[i] == 's') {
- argc++;
- ptr = (char*)value;
- if(opt & SCANDEF) {
- if(p == (char*)-1) {
- if(!(opt & SIZEDEF)) num = -1;
- read_string(ptr, num);
- sys_write("\n", 1);
- } else if(p > (char*)255) {
- while(p[off] <= ' ') off++;
- inptr = &(p[off]);
- inoff = off;
- while(p[off] > ' ') off++;
- memcpy(ptr, inptr, off - inoff);
- ptr[off - inoff] = 0;
- }
- } else {
- off = outstring(ptr, strlen(ptr), p, off, num | opt);
- }
- flag &= ~ESCAPE;
- } else if((flag & ESCAPE) && form[i] == 'c') {
- argc++;
- if(opt & SCANDEF) {
- ptr = (char*)value;
- if(p == (char*)-1) {
- *ptr = 0;
- read_string(ptr, 1);
- sys_write("\n", 1);
- } else {
- while(p[off] <= ' ') off++;
- *ptr = p[off++];
- }
- } else {
- off = outchar((char)value, p, off);
- }
- flag &= ~ESCAPE;
- } else if((flag & ESCAPE) && isdigit(form[i])) {
- if(numindex > 3) flag &= ~ESCAPE;
- else {
- numbuf[++numindex] = form[i];
- numbuf[numindex + 1] = 0;
- num = atodec(numbuf);
- opt |= SIZEDEF;
- if(form[i] == '0') opt |= ZERODEF;
- }
- } else if((flag & ESCAPE) &&
- (form[i] == '.' || form[i] == ' ' ||
- form[i] == 'l' || form[i] == '-')) {
- if(form[i] == '.') opt |= DOTDEF;
- if(form[i] == '-') opt |= BARDEF;
- } else {
- flag &= ~ESCAPE;
- if(!(_opt & SCANDEF)) off = outchar(form[i], p, off);
- }
- }
- return off;
-}
-
-void print(char *form, int a, int b, int c) {
- vprintf((char*)-1, form, a, b, &c, 0);
-}
-
-void sprint(char *buf, char *form, int a, int b, int c) {
- int n;
-
- n = vprintf(buf, form, a, b, &c, 0);
- buf[n] = 0;
-}
-
-void scan(char *form, int a, int b, int c) {
- vprintf((char*)-1, form, a, b, &c, SCANDEF);
-}
-
-void sscan(char *buf, char *form, int a, int b, int c) {
- vprintf(buf, form, a, b, &c, SCANDEF);
-}
Index: live/undots.js
===================================================================
--- live/undots.js (revision 509)
+++ live/undots.js (nonexistent)
@@ -1,29 +0,0 @@
-// The following tag is for display in advanced filelists only:
-// <TITLE>JavaScript 3dots LCARS Support Part 2</title>
-//
-// Refer undots.txt for general documentation.
-
-// Hiding loading content is potentially harmful
-// TODO: lcars.js::dots() and ::undots() to replace this
-/*
-if (typeof dhtml == "undefined")
-{
- var dhtml = new Object();
- dhtml.supported = false;
-}
-
-if (dhtml.supported)
-{
- window.clearInterval(dotsAnim);
- if (divContent && divStatus)
- {
- divStatus.style.visibility = "hidden";
- divContent.style.visibility = "visible";
- }
- else
- {
- f.spanStatus.className = "";
- dhtml.setTextContent(f.spanStatus, "DATABASE");
- }
-}
-*/
\ No newline at end of file
Index: live/map.js
===================================================================
--- live/map.js (revision 509)
+++ live/map.js (nonexistent)
@@ -1,723 +0,0 @@
-"use strict";
-/**
- * @fileOverview <title>Thread-unsafe map implementations</title>
- * @file $Id$
- * @requires object.js
- *
- * @author (C) 2009-2013 <a href="mailto:js@PointedEars.de">Thomas Lahn</a>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namepspace
- */
- var jsx = {};
-}
-
-/**
- * @namespace
- */
-jsx.map = {
- version: "$Id$",
-
- /**
- * An object that maps keys to values.
- *
- * A map cannot contain duplicate keys; each key can map to at most
- * one value. Keys may be object references.
- *
- * @function
- */
- Map: jsx.object.extend((
- /**
- * @return {jsx.map.Map}
- */
- function () {
- /**
- * A value in the map, to distinguish it from built-in types
- *
- * @param value Value to be stored
- * @param key Optional key for the value. Used by {@link _Bucket}.
- * @private
- */
- function _ValueContainer(value, key)
- {
- this.putValue(value, key);
- }
-
- /**
- * @param value
- * @return {boolean}
- * <code>true</code> if <var>v</var> was created using
- * {@link _ValueContainer}, otherwise <code>false</code>
- */
- _ValueContainer.isInstance = function (value) {
- return !!value && value.constructor === this;
- };
-
- _ValueContainer.prototype.putValue = function (value, key) {
- this._value = value;
- this._key = key;
- };
-
- _ValueContainer.prototype.getValue = function () {
- return this._value;
- };
-
- _ValueContainer.prototype.getKey = function () {
- return this._key;
- };
-
- var _getDataObject = jsx.object.getDataObject;
-
- /**
- * In order not to overwrite or shadow built-in properties, if a key is
- * the name of such a property, an alias property name is used instead.
- * A maximum length of the alias property name is necessary to avoid
- * infinite iteration for finding an alias if the previously computed
- * alias is already used as name of a built-in property.
- */
- var _maxAliasLength = 255;
-
- var _isObjectRef = jsx.object.isObject;
-
- /**
- * Returns a safe key, that is, a property name that is not yet used
- * by the ECMAScript implementation.
- *
- * @param unsafeKey
- * Potentially unsafe key, that is, a property name that may be
- * already used by the ECMAScript implementation.
- * @return {string}
- * @throws jsx.map#KeyError if the user-defined maximum key length
- * does not suffice to satisfy a safe key.
- * @private
- */
- function _getSafeKey (obj, unsafeKey)
- {
- var
- safeKey = unsafeKey,
- constructor = obj.constructor,
- proto = (constructor ? constructor.prototype : null);
-
- if (_isObjectRef(unsafeKey))
- {
- var _class = jsx.object.getClass(unsafeKey);
- var constructorName = jsx.object.getFunctionName(unsafeKey.constructor);
- safeKey = (_class ? "[" + _class + "]" : "")
- + (constructorName ? constructorName + "()" : "")
- + (typeof unsafeKey.nodeName != "undefined"
- ? unsafeKey.nodeName
- : "")
- + (typeof unsafeKey.id != "undefined"
- ? "#" + unsafeKey.id
- : "")
- + (typeof unsafeKey.className != "undefined"
- && /\S/.test(unsafeKey.className)
- ? "." + unsafeKey.className.replace(/\s+/, ".")
- : "");
- }
-
- /*
- * Try until an unused (not inherited and not own non-_ValueContainer) property
- * was found or the maximum alias key length has been reached
- */
- while (proto && (_hasOwnProperty(proto, safeKey)
- || (_hasOwnProperty(obj, safeKey)
- && !_ValueContainer.isInstance(obj[safeKey]))))
- {
- if (safeKey.length > _maxAliasLength)
- {
- jsx.throwThis("jsx.map.KeyError", unsafeKey);
- }
-
- safeKey += "_";
- }
-
- return safeKey;
- }
-
- function _Bucket()
- {
- this._items = _getDataObject();
- }
-
- /**
- * @param value
- * @return {boolean}
- * <code>true</code> if <var>v</var> was created using
- * {@link _Bucket}, otherwise <code>false</code>
- */
- _Bucket.isInstance = function (value) {
- return !!value && value.constructor === this;
- };
-
- _Bucket._nextId = 1;
-
- _Bucket.extend(null, {
- /**
- * Returns the next string key for this bucket
- *
- * @memberOf _Bucket.prototype
- * @private
- * @return {string}
- */
- _getNextId: function () {
- return "key" + (_Bucket._nextId++) + "_";
- },
-
- /**
- * Puts a value in the bucket
- *
- * @param oKey
- * @return {string}
- * The string key for the object key
- */
- put: function (oKey, value) {
- var sKey = this.find(oKey);
- if (!sKey)
- {
- sKey = _getSafeKey(this._items, this._getNextId());
- }
-
- this._items[sKey] = new _ValueContainer(value, oKey);
-
- return sKey;
- },
-
- /**
- * Gets a value from the bucket
- *
- * @param oKey
- * @return {string}
- * The value for the object key
- */
- get: function (oKey) {
- var sKey = this.find(oKey);
- if (!sKey)
- {
- return void 0;
- }
-
- return this._items[sKey];
- },
-
- /**
- * Returns the string key of an object
- *
- * @param oKey
- * @return {string|boolean}
- * The string key of <var>oKey</var> if it is in the bucket,
- * <code>false</code> otherwise.
- */
- find: function (oKey) {
- var items = this._items;
- for (var sKey in items)
- {
- var value = items[sKey];
- if (_ValueContainer.isInstance(value) && value.getKey() == oKey)
- {
- return sKey;
- }
- }
-
- return false;
- },
-
- /**
- * Removes an object key from the bucket
- *
- * @param oKey
- * @return {string|boolean}
- * The removed value for the object key,
- * or <code>false</code> if it was not in the bucket.
- */
- remove: function (oKey) {
- var sKey = this.find(oKey);
- if (sKey)
- {
- var value = this._items[sKey];
- delete this._items[sKey];
- }
-
- return value;
- },
-
- keys: function () {
- var a = [];
-
- var items = this._items;
- for (var key in items)
- {
- var o = items[key];
- if (_ValueContainer.isInstance(o))
- {
- a.push(o.getKey());
- }
- }
-
- return a;
- },
-
- mappings: function () {
- var a = [];
-
- var items = this._items;
- for (var p in items)
- {
- var o = items[p];
-
- if (_ValueContainer.isInstance(o))
- {
- a.push([o.getKey(), o.getValue()]);
- }
- }
-
- return a;
- }
- });
-
- /* Imports */
- var _hasOwnProperty = jsx.object._hasOwnProperty;
-
- /**
- * @param {jsx.map.Map} map
- * The map whose mappings are to be placed in this map
- * @constructor
- */
- function _Map (map)
- {
-// var Map = arguments.callee;
-
- /* Allows to use this as a factory */
- if (!this || this.constructor != _Map)
- {
- return new Map(map);
- }
-
- var _items = _getDataObject();
- var _size = 0;
-
- /**
- * Gets the maximum alias property name length
- * for further storage and retrieval operations. The default is 255.
- *
- * @return {boolean}
- * <code>true</code> if successful, <code>false</code> otherwise.
- * @public
- */
- this.getMaxAliasLength = function () {
- return _maxAliasLength;
- };
-
- /**
- * Sets the maximum alias property name length
- * for further storage and retrieval operations.
- *
- * @param {number} len
- * Integer greater than 0 to define the maximum alias property name
- * length. The default maximum is 255.
- * @return {boolean}
- * <code>true</code> if successful, <code>false</code> otherwise.
- * @throws jsx.map#InvalidLengthError
- * @public
- */
- this.setMaxAliasLength = function (len) {
- if (typeof len != "number")
- {
- len = parseInt(len, 10);
- }
-
- if (isNaN(len) || len < 1)
- {
- jsx.throwThis("jsx.map.InvalidLengthError");
- }
-
- _maxAliasLength = len;
-
- return _maxAliasLength === len;
- };
-
- /**
- * Returns the number of key-value mappings in this map
- *
- * @return {number}
- * The number of key-value mappings in this map
- * @public
- */
- this.size = function () {
- return _size;
- };
-
- /**
- * Returns <code>true</code> if this map contains no key-value mappings
- *
- * @return {boolean}
- * <code>true</code> if this map contains no key-value mappings
- * @public
- */
- this.isEmpty = function () {
- return _size === 0;
- };
-
- /**
- * Returns the value to which the specified key is mapped in this map
- *
- * @param key
- * @param defaultValue
- * @throws jsx.map#KeyError
- * If there is no such key and no default value has been passed.
- * @public
- */
- this.get = function (key, defaultValue) {
- var v = _items[_getSafeKey(_items, key)];
-
- if (_isObjectRef(key))
- {
- if (_Bucket.isInstance(v))
- {
- v = v.get(key);
- }
- }
-
- if (!v)
- {
- if (arguments.length > 1)
- {
- return defaultValue;
- }
-
- jsx.throwThis("jsx.map.KeyError", key);
- }
-
- return v.getValue();
- };
-
- /**
- * Returns <code>true</code> if this map contains a mapping for the specified key
- *
- * @param key
- * @return {boolean}
- * @public
- */
- this.containsKey = function (key) {
- var value = _items[_getSafeKey(_items, key)];
- return _ValueContainer.isInstance(value)
- || (_Bucket.isInstance(value) && !!value.find(key));
- };
-
- /**
- * Associates the specified value with the specified key in this map
- *
- * @param key
- * @param value
- * @return {boolean}
- * Previous value associated with specified key,
- * or <code>undefined</code> if there was no mapping for <var>key</var>.
- * An <code>undefined</code> return can also indicate that the Map
- * previously associated <code>undefined</code> with the specified key.
- * @throws jsx.map#KeyError
- * @public
- */
- this.put = function (key, value) {
- var k = _getSafeKey(_items, key);
- var v;
- var prevValue = _items[k];
-
- if (_isObjectRef(key))
- {
- var bucket = prevValue;
- if (_Bucket.isInstance(bucket))
- {
- if (!bucket.find(key))
- {
- ++_size;
- }
- }
- else
- {
- bucket = new _Bucket();
- ++_size;
- }
-
- bucket.put(key, value);
- v = bucket;
- }
- else
- {
- v = new _ValueContainer(value);
- if (!prevValue)
- {
- ++_size;
- }
- }
-
- _items[k] = v;
-
- return prevValue && prevValue.getValue();
- };
-
- /**
- * Removes the mapping for the specified key from this map if present
- *
- * @param key
- * Key whose mapping is to be removed from the map
- * @return {any}
- * The previous value associated with <var>key</var>,_value
- * or <code>undefined</code> if there was no mapping for <var>key</var>.
- * (An <code>undefined</code> return can also indicate that the map
- * previously associated <code>undefined</code> with <var>key</var>.)
- * @throws jsx.map#KeyError
- * @public
- */
- this.remove = function (key) {
- var k = _getSafeKey(_items, key);
- var prevValue = _items[k];
-
- if (prevValue)
- {
- if (_isObjectRef(key))
- {
- if (_Bucket.isInstance(prevValue))
- {
- var prevValue = prevValue.remove(key);
- if (_ValueContainer.isInstance(prevValue))
- {
- --_size;
- return prevValue.getValue();
- }
-
- return prevValue;
- }
-
- return void 0;
- }
-
- delete _items[k];
- --_size;
- return prevValue && prevValue.getValue();
- }
-
- return prevValue;
- };
-
- /**
- * Removes all of the mappings from this map.
- * The map will be empty after this call returns.
- *
- * @public
- */
- this.clear = function () {
- _items = _getDataObject();
- _size = 0;
- };
-
- /**
- * Returns <code>true</code> if this map maps one or more keys to the specified value.
- *
- * @param value
- * Value whose presence in this map is to be tested
- * @return {boolean}
- * <code>true</code> if this map maps one or more keys
- * to the specified value
- * @public
- */
- this.containsValue = function (value) {
- for (var p in _items)
- {
- var o = _items[p];
-
- if (_ValueContainer.isInstance(o) && o.getValue() === value)
- {
- return true;
- }
-
- if (_Bucket.isInstance(o) && o.containsValue(value))
- {
- return true;
- }
- }
-
- return false;
- };
-
- /**
- * Returns a list of the keys contained in this map
- *
- * @return {Array}
- * @public
- */
- this.keys = function () {
- var a = [];
-
- for (var p in _items)
- {
- var o = _items[p];
- if (_ValueContainer.isInstance(o))
- {
- a.push(p);
- }
- else if (_Bucket.isInstance(o))
- {
- a.push.apply(a, o.keys());
- }
- }
-
- return a;
- };
-
- /**
- * Returns a list of the values contained in this map
- *
- * @return {Array}
- * @public
- */
- this.values = function () {
- var a = [];
-
- for (var p in _items)
- {
- var o = _items[p];
-
- if (_ValueContainer.isInstance(o))
- {
- a.push(o.getValue());
- }
- else if (_Bucket.isInstance(o))
- {
- a.push.apply(a, o.values());
- }
- }
-
- return a;
- };
-
- /**
- * Returns a list of the mappings contained in this map
- * as an {@link Array} of Arrays of key-value pairs.
- * The inner Arrays consist of two elements each, the key
- * and its associated value.
- *
- * @return {Array}
- * @public
- */
- this.mappings = function () {
- var a = [];
-
- for (var p in _items)
- {
- var o = _items[p];
-
- if (_ValueContainer.isInstance(o))
- {
- a.push([p, o.getValue()]);
- }
- else if (_Bucket.isInstance(o))
- {
- var bucketMappings = o.mappings();
- for (var i = 0, len = bucketMappings.length; i < len; ++i)
- {
- a.push(a, bucketMappings[i]);
- }
- }
- }
-
- return a;
- };
-
- /**
- * Destructs the map so that all closures are released.
- *
- * @public
- */
- this.destruct = function () {
- _items = null;
- };
-
- if (arguments.length > 0)
- {
- this.putAll(map);
- }
- }
-
- return _Map;
- }()
- ).extend(null, {
- /**
- * Returns a shallow copy of this map
- *
- * @memberOf jsx.map.Map.prototype
- * @return {jsx.map.Map}
- * @public
- */
- clone: function () {
- return new this.constructor(this);
- },
-
- /**
- * Copies all of the mappings from the specified map to this map.
- * These mappings will replace any mappings that this map had
- * for any of the keys currently in the specified map.
- *
- * @param {jsx.map.Map} map
- * @public
- */
- putAll: function (map) {
- if (!this.constructor.isInstance(map))
- {
- jsx.throwThis("jsx.InvalidArgumentError");
- }
-
- this.setMaxAliasLength(map.getMaxAliasLength());
-
- for (var a = map.mappings(), i = a.length; i--;)
- {
- var o = a[i];
-
- this.put(o[0], o[1]);
- }
- }
- }), {
- /**
- * Returns <code>true</code> if the argument is a {@link jsx.map#Map Map}
- *
- * @memberOf jsx.map.Map
- * @param {Object} o
- * @return {boolean}
- */
- isInstance: function (o) {
- return !!o && o.constructor === this;
- }
- }),
-
- KeyError: (
- function (key) {
- jsx.object.PropertyError.call(this);
- this.message = "No such key: " + key;
- }
- ).extend(jsx.object.PropertyError, {
- name: "jsx.map.KeyError"
- }),
-
- InvalidLengthError: (
- function () {
- jsx.object.PropertyError.call(this, "InvalidLengthError");
- }
- ).extend(jsx.object.PropertyError)
-};
\ No newline at end of file
/live/map.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
Index: live/date.js
===================================================================
--- live/date.js (revision 509)
+++ live/date.js (nonexistent)
@@ -1,619 +0,0 @@
-/**
- * @fileOverview <title>Date Library</title>
- * @file $Id$
- * @requires object.js
- * @requires string.js for Date.protoype.strftime()
- *
- * @author (C) 2013 <a href="mailto:js@PointedEars.de">Thomas Lahn</a>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- *
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-/**
- * @namespace
- */
-jsx.date = {
- /**
- * @version
- */
- version: "$Id$",
- copyright: "Copyright \xA9 2013",
- author: "Thomas Lahn",
- email: "js@PointedEars.de",
- path: "http://PointedEars.de/scripts/",
-
- /**
- * Weekday names, where the elements are {@link Array}s of
- * {@link Array}s of {@link String}. The first element of the
- * inner <code>Array</code> holds the abbreviated name,
- * the second one the long name.
- * @type {Array}
- */
- WEEKDAYS: [
- ["Sun", "Sunday"], ["Mon", "Monday"], ["Tue", "Tuesday"],
- ["Wed", "Wednesday"], ["Thu", "Thursday"], ["Fri", "Friday"],
- ["Sat", "Saturday"]
- ],
-
- /**
- * Month names, where the elements are {@link Array}s of
- * {@link Array}s of {@link String}. The first element of the
- * inner <code>Array</code> holds the abbreviated name,
- * the second one the long name.
- */
- MONTHS: [
- ["Jan", "January"], ["Feb", "February"], ["Mar", "March"],
- ["Apr", "April"], ["May", "May"], ["Jun", "June"],
- ["Jul", "July"], ["Aug", "August"], ["Sep", "September"],
- ["Oct", "October"], ["Nov", "November"], ["Dec", "December"]
- ],
-
- /**
- * Daytimes for the 12-hour format
- */
- DAYTIMES: {am: "am", pm: "pm"},
-
- /**
- * Time zone names, where the keys are the offsets to UTC in
- * minutes, and the values are {@link Array}s of {@link String}.
- */
- TIMEZONES: {
- "540": ["Alaska Standard Time (AKST)"],
- "480": ["Alaska Daylight Time (AKDT)"],
- "240": ["Atlantic Standard Time (AST)"],
- "180": ["Atlantic Daylight Time (ADT)",
- "Argentina Time (ART)"],
- "0": ["Greenwich Mean Time (GMT)"],
- "-60": ["Central European Time (CET)"],
- "-120": ["Central European Summer Time (CEST)"],
- "-180": ["Arabia Standard Time (AST)"],
- "-240": ["Armenia Time (AMT)"],
- "-270": ["Afghanistan Time (AFT)"],
- "-480": ["Australian Western Standard Time (AWST)",
- "ASEAN Common Time (ACT)"],
- "-570": ["Australian Central Standard Time (ACST)"],
- "-600": ["Australian Eastern Standard Time (AEST)"],
- "-630": ["Australian Central Daylight Time (ACDT)"],
- "-660": ["Australian Eastern Daylight Time (AEDT)"]
- },
-
- /**
- * Returns the number of day within a year
- *
- * @param {Date} date
- * @return {number}
- * @see http://en.wikipedia.org/wiki/Ordinal_date
- */
- dayOfYear: function (date) {
- var month = date.getMonth();
- var dayOfMonth = date.getDate();
- switch (month)
- {
- /* January */
- case 0:
- return dayOfMonth;
-
- /* February */
- case 1:
- return dayOfMonth + 31;
-
- default:
- return Math.floor(30.6 * (month + 1) - 91.4) + dayOfMonth
- + (jsx.date.isLeapYear(date.getFullYear()) ? 60 : 59);
- }
- },
-
- /**
- * Determines if the arguments define a valid date-time.
- *
- * @param {Number} year
- * Year argument for the {@link Date} constructor. Possible
- * implementation-dependent correction of two-digit years is
- * not supported.
- * @param {Number} month
- * @param {Number} date (optional)
- * Day of month
- * @param {Number} minutes (optional)
- * @param {Number} seconds (optional)
- * @param {Number} ms (optional)
- * Milliseconds
- * @return {boolean}
- * <code>true</code> if the arguments would produce a
- * corresponding time value when passed to the {@link Date}
- * constructor, <code>false</code> otherwise.
- * @see Date
- */
- isValid: function (year, month, date, hours, minutes, seconds, ms) {
- if (arguments.length < 3)
- {
- return jsx.throwThis(jsx.InvalidArgumentError,
- ["Not enough arguments", [].slice.call(arguments),
- "at least (year : int, month : int)"]);
- }
-
- var d = Date.construct(arguments);
-
- return (d.getFullYear() == year
- && (typeof month == "undefined" || d.getMonth() == month)
- && (typeof hours == "undefined" || d.getHours() == hours)
- && (typeof minutes == "undefined" || d.getMinutes() == minutes)
- && (typeof seconds == "undefined" || d.getSeconds() == seconds));
- },
-
- /**
- * Determines if a year is a leap year.
- *
- * @param {Number} year
- * @return {boolean}
- * Returns <code>true</code> if <var>year</var> is a leap year.
- */
- isLeapYear: function (year) {
- return jsx.date.isValid(year, 1, 29);
- },
-
- /**
- * Calculate the ISO 8601 weekday number of a <code>Date</code>.
- *
- * The ISO 8601 weekday number differs from the ECMAScript
- * weekday number in that Sunday is <code>7</code> instead of
- * <code>0</code>.
- *
- * @param {Date} date
- * @return {number}
- */
- isoWeekday: function (date) {
- return (date.getDay() % 7) || 7;
- },
-
- /**
- * Calculates the ISO 8601 week number of a <code>Date</code>.
- *
- * @param {Date} date
- * @return {number}
- * @see http://en.wikipedia.org/wiki/ISO_week_date#Calculating_the_week_number_of_a_given_date
- */
- isoWeekNumber: function jsx_date_isoWeekNumber (date) {
- var result = Math.floor(
- (jsx.date.dayOfYear(date) - jsx.date.isoWeekday(date)
- + 10) / 7);
-
- switch (result)
- {
- case 0:
- result = jsx_date_isoWeekNumber(new Date(date.getFullYear() - 1, 11, 31));
- break;
-
- case 53:
- /* TODO */
- }
-
- return result;
- },
-
- /**
- * Returns the time zone offset of a {@link Date}
- * in hours and minutes
- */
- tzOffsetHours: (function () {
- var _leadingZero = jsx.string.leadingZero;
-
- /**
- * @param {Date} date
- * @param {TimeOptions} options
- * <table>
- * <tr>
- * <th>delimiter</th>
- * <td>Delimiter between hours and minutes</td>
- * </tr>
- * <tr>
- * <th>leadingZero</th>
- * <td>If <code>true</code>, hours always have two digits.</td>
- * </tr>
- * <tr>
- * <th>zeroMinutes</th>
- * <td>If <code>true</code> minutes are returned even
- * if they are zero.</td>
- * </tr>
- * </table>
- * @return {Object|string}
- */
- function _tzOffsetHours (date, options)
- {
- var tzOffset = date.getTimezoneOffset();
- var hours = Math.floor(Math.abs(tzOffset) / 60);
- var minutes = Math.floor(Math.abs(tzOffset) - (hours * 60));
-
- if (arguments.length < 2)
- {
- return {hours: hours, minutes: minutes};
- }
-
- return (tzOffset < 0 ? "+" : "-")
- + (options && options.leadingZero ? _leadingZero(hours, 2) : hours)
- + (+minutes || options && options.zeroMinutes
- ? (options && options.delimiter || "") + _leadingZero(minutes, 2)
- : "");
- }
-
- return _tzOffsetHours;
- })(),
-
- /**
- * Formats a date with letters as placeholders
- */
- format: (function () {
- var _jsx_string, _leadingZero;
- var _weekdays, _months, _daytimes, _timezones;
- var _dayOfYear, _isoWeekday, _isoWeekNumber, _tzOffsetHours;
-
- var _rxDateFormats = /\\([\S\s])|YY(YY)?|M{1,4}|D{1,4}|W{1,4}|ww?|HH?|hh?|mm?|s{1,4}|Z{1,3}/g;
-
- function _formatter (m, literal)
- {
- switch (m)
- {
- case "W": return _weekdays[this.getDay()][0].charAt(0);
- case "WW": return _weekdays[this.getDay()][0].substring(0, 2);
- case "WWW": return _weekdays[this.getDay()][0];
- case "WWWW": return _weekdays[this.getDay()][1];
- case "w": return _isoWeekday(this);
- case "ww": return _leadingZero(_isoWeekNumber(this), 2);
- case "YY": return this.getFullYear() % 100;
- case "YYYY": return this.getFullYear();
- case "M": return this.getMonth() + 1;
- case "MM": return _leadingZero(this.getMonth() + 1, 2);
- case "MMM": return _months[this.getMonth()][0];
- case "MMMM": return _months[this.getMonth()][1];
- case "D": return this.getDate();
- case "DD": return _leadingZero(this.getDate(), 2);
- case "DDD": return _dayOfYear(this);
- case "H": return this.getHours();
- case "HH": return _leadingZero(this.getHours(), 2);
- case "h": return (this.getHours() % 12) || "12";
- case "hh": return _leadingZero((this.getHours() % 12) || "12", 2);
- case "P": return _daytimes[this.getHours() < 12 ? "am" : "pm"].toUpperCase();
- case "p": return _daytimes[this.getHours() < 12 ? "am" : "pm"];
- case "m": return this.getMinutes();
- case "mm": return _leadingZero(this.getMinutes(), 2);
- case "s": return this.getSeconds();
- case "ss": return _leadingZero(this.getSeconds(), 2);
- case "sss": return this.getMilliseconds();
- case "ssss": return _leadingZero(this.getMilliseconds(), 3);
- case "Z": return _tzOffsetHours(this, null);
- case "ZZ":
- return _tzOffsetHours(this, {
- delimiter: ":",
- leadingZero: true,
- zeroMinutes: true
- });
-
- case "ZZZ":
- var tzNames = _timezones[this.getTimezoneOffset()];
-
- /*
- * If no time zone name is defined for the offset,
- * return UTC(+|-)H(:MM)?
- */
- return (tzNames && tzNames.join("/")
- || ("UTC" + _format(this, "Z")));
-
- default:
- if (m.charAt(0) != "\\")
- {
- jsx.warn("Unsupported format: " + m);
- return m;
- }
-
- return literal;
- }
- }
-
- /**
- * @param {Date} date
- * @param {String} format
- */
- function _format (date, format)
- {
- if (arguments.length < 2 || typeof format == "undefined")
- {
- return jsx.throwThis(jsx.InvalidArgumentError,
- ["Not enough arguments", "", "(date : Date, format : String)"]);
- }
-
- if (typeof _jsx_string == "undefined")
- {
- /* one-time imports for _formatter() */
- _jsx_string = jsx.string;
- _leadingZero = _jsx_string.leadingZero;
- }
-
- var _date = jsx.date;
- _weekdays = _date.WEEKDAYS;
- _months = _date.MONTHS;
- _daytimes = _date.DAYTIMES;
- _timezones = _date.TIMEZONES;
- _dayOfYear = _date.dayOfYear;
- _isoWeekday = _date.isoWeekday;
- _isoWeekNumber = _date.isoWeekNumber;
- _tzOffsetHours = _date.tzOffsetHours;
-
- return format.replace(_rxDateFormats, _formatter.bind(date));
- }
-
- return _format;
- }()),
-
- /**
- * Returns a {@link Date} as a formatted string
- *
- * @namespace
- * @name jsx.date.strftime
- * @function
- * @return {string}
- * <var>date</var> formatted according to <var>format</var>
- */
- strftime: (function () {
- var _jsx_string, _leadingZero, _pad;
- var _dayOfYear, _isoWeekday, _isoWeekNumber, _tzOffsetHours;
- var _weekdays, _months, _daytimes, _timezones;
-
- var _rxDateFormats = /%([aAdejuwUVWbBhmCgGyYHkIlMpPrTSTXzZcDFsxnt%])/g;
-
- /**
- * Replaces a date format placeholder with the corresponding value
- *
- * @private
- * @param {String} placeholder
- * @param {String} conversion
- * @return {String}
- */
- function _formatter (placeholder, conversion)
- {
- switch (conversion)
- {
- /* Day */
- case "a": return _weekdays[this.getDay()][0];
- case "A": return _weekdays[this.getDay()][1];
- case "d": return _leadingZero(this.getDate(), 2);
- case "e": return _pad(this.getDate(), 2);
- case "j": return _leadingZero(_dayOfYear(this), 3);
-
- /* ISO 8601 weekday: Sunday (0) is 7 */
- case "u": return _isoWeekday(this);
-
- case "w": return this.getDay();
-
- /* Week */
- /* TODO: %U, %W */
- case "V": return _leadingZero(_isoWeekNumber(this), 2);
-
- /* Month */
- case "b":
- case "h":
- return _months[this.getMonth()][0];
- case "B": return _months[this.getMonth()][1];
- case "m": return _leadingZero(this.getMonth() + 1, 2);
-
- /* Year */
- case "C": return _leadingZero(Math.floor(this.getFullYear() / 100), 2);
- case "y": return _leadingZero(this.getFullYear() % 100, 2);
- case "Y": return _leadingZero(this.getFullYear(), 4);
- /* TODO: %G, %g */
-
- /* Time */
- case "H": return _leadingZero(this.getHours(), 2);
- case "k": return _pad(this.getHours(), 2);
-
- /* 12-hour format, 0 hours is 12am */
- case "I": return _leadingZero((this.getHours() % 12) || "12", 2);
- case "l": return _pad((this.getHours() % 12) || "12" , 2);
-
- case "M": return _leadingZero(this.getMinutes(), 2);
-
- /* Counter-intuitive, but according to strftime(3) */
- case "p": return _daytimes[this.getHours() < 12 ? "am" : "pm"].toUpperCase();
- case "P": return _daytimes[this.getHours() < 12 ? "am" : "pm"];
-
- case "R": return _strftime(this, "%H:%M");
- /* TODO: %r */
- case "S": return _leadingZero(this.getSeconds(), 2);
- case "T": return _strftime(this, "%H:%M:%S");
- case "X": return this.toLocaleTimeString();
- case "z":
- return _tzOffsetHours(this, {
- leadingZero: true,
- zeroMinutes: true
- });
-
- case "Z":
- var tzNames = _timezones[this.getTimezoneOffset()];
-
- /*
- * If no time zone name is defined for the offset,
- * return UTC(+|-)H(:MM)?
- */
- return (tzNames && tzNames.join("/")
- || ("UTC" + _tzOffsetHours(this, {delimiter: ":"})));
-
- /* Time and Date Stamps */
- case "c": return this.toLocaleString();
- case "D": return _strftime(this, "%m/%d/%y");
- case "F": return _strftime(this, "%Y-%m-%d");
-
- /*
- * Unix timestamp (the number of seconds since the Epoch,
- * 1970-01-01 00:00:00 +0000 (UTC))
- */
- case "s": return Math.floor(this.valueOf() / 1000);
-
- case "x": return this.toLocaleDateString();
-
- /* Miscellaneous */
- case "n": return "\n";
- case "t": return "\t";
- case "%": return "%";
-
- default:
- jsx.warn("Unsupported conversion specifier: " + placeholder);
- return placeholder;
- }
- }
-
- /**
- * @param {Date} date
- * @param {String} format
- */
- function _strftime (date, format)
- {
- if (arguments.length < 2 || typeof format == "undefined")
- {
- return jsx.throwThis(jsx.InvalidArgumentError,
- ["Not enough arguments", "", "(date : Date, format : String)"]);
- }
-
- if (typeof _jsx_string == "undefined")
- {
- /* one-time imports for _formatter() */
- _jsx_string = jsx.string;
- _leadingZero = _jsx_string.leadingZero;
- _pad = _jsx_string.pad;
- }
-
- var _date = jsx.date;
- _weekdays = _date.WEEKDAYS;
- _months = _date.MONTHS;
- _daytimes = _date.DAYTIMES;
- _timezones = _date.TIMEZONES;
- _dayOfYear = _date.dayOfYear;
- _isoWeekday = _date.isoWeekday;
- _isoWeekNumber = _date.isoWeekNumber;
- _tzOffsetHours = _date.tzOffsetHours;
-
- return String(format).replace(_rxDateFormats, _formatter.bind(date));
- }
-
- return _strftime;
- }())
-};
-
-if (jsx.options.augmentBuiltins)
-{
- jsx.object.extend(Date, {
- /**
- * @memberOf Date
- * @function
- * @see jsx.date.isLeapYear
- */
- isLeapYear: jsx.date.isLeapYear,
-
- /**
- * @function
- * @see jsx.date.isValid
- */
- isValid: jsx.date.isValid
- });
-
- if (jsx.options.augmentPrototypes)
- {
- jsx.object.extend(Date.prototype, {
- /**
- * Returns the ISO weekday number of this <code>Date</code>.
- *
- * @function
- * @memberOf Date.prototype
- * @see jsx.date.isoWeekNumber(Date)
- * @return {number}
- */
- getISOWeekday: (function () {
- var _isoWeekday = jsx.date.isoWeekday;
-
- return function () {
- return _isoWeekday(this);
- };
- }()),
-
- /**
- * Returns the ISO week number of this <code>Date</code>.
- *
- * @function
- * @see jsx.date.isoWeekNumber(Date)
- * @return {number}
- */
- getISOWeekNumber: (function () {
- var _isoWeekNumber = jsx.date.isoWeekNumber;
-
- return function () {
- return _isoWeekNumber(this);
- };
- }()),
-
- /**
- * Returns the number of day within a year
- *
- * @function
- * @see jsx.date.dayOfYear(Date)
- * @return {number}
- */
- getDayOfYear: (function () {
- var _dayOfYear = jsx.date.dayOfYear;
-
- return function () {
- return _dayOfYear(this);
- };
- }()),
-
- /**
- * @function
- * @see jsx.date#format(Date, String)
- * @return {string}
- */
- format: (function () {
- var _format = jsx.date.format;
-
- /**
- * @param {String} format
- */
- return function (format) {
- return _format(this, format);
- };
- }()),
-
- /**
- * @function
- * @see jsx.date#strftime(Date, String)
- * @return {string}
- */
- strftime: (function () {
- var _strftime = jsx.date.strftime;
-
- /**
- * @param {String} format
- */
- return function (format) {
- return _strftime(this, format);
- };
- }())
- });
- }
-}
\ No newline at end of file
/live/date.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/array.js
===================================================================
--- live/array.js (revision 509)
+++ live/array.js (nonexistent)
@@ -1,1508 +0,0 @@
-/**
- * @fileOverview <title>Array Library</title>
- * @file $Id$
- *
- * @author (C) 2004-2013 <a href="mailto:js@PointedEars.de">Thomas Lahn</a>
- *
- * @partof PointedEars' JavaScript Extensions (JSX)
- * <pre>
- * JSX is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * JSX is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with JSX. If not, see <http://www.gnu.org/licenses/>.
- * </pre>
- */
-
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-if (typeof jsx.array == "undefined")
-{
- jsx.array = {};
-}
-
-/**
- * @type jsx.array
- * @memberOf __jsx.array
- * @namespace
- */
-jsx.array = (/** @constructor */ function () {
- /* Imports */
- var _jsx = jsx;
- var _jsx_object = _jsx.object;
- var _defineProperty = _jsx_object.defineProperty;
- var _getClass = _jsx_object.getClass;
- var _getKeys = _jsx_object.getKeys;
- var _hasOwnProperty = _jsx_object._hasOwnProperty;
- var _isArray = _jsx_object.isArray;
- var _isNativeObject = _jsx_object.isNativeObject;
-
- /* Constant-like variables */
- var _MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1;
- var _isNativeMethod = _jsx_object.isNativeMethod;
-
- /**
- * @param {Array} a (optional)
- * Array to which an element should be appended. Is used instead
- * of the <code>Array</code> object the function is applied to.
- * @param value (optional)
- * @return {Array}
- * The changed array.
- */
- function _array_push (a, value)
- {
- if (!_isArray(a) && _isArray(this))
- {
- value = a;
- a = this;
- }
-
- for (var i = 0, len = arguments.length; i < len; i++)
- {
- a[a.length] = arguments[i];
- }
-
- return a;
- }
-
- /**
- * Takes input array <code>a</code> or the <code>Array</code> object
- * it is applied to as method and returns a new <code>Array</code>
- * object with all string elements (optionally all elements regardless
- * of their type) either lowercased or uppercased.
- *
- * @param {Array} a (optional)
- * Array which elements should be changed. Is used instead
- * of the Array object the function is applied to.
- * @param {boolean} bUppercase = false
- * If <code>false</code> (default), changes the elements to
- * be all lowercase. If <code>true</code>, changes them to
- * be all uppercase.
- * @param {boolean} bConvertNonStrings = false
- * If <code>false</code> default, changes only the case of
- * string elements. If <code>true</code>, converts non-string
- * elements to <code>string</code> and changes their case.
- * @return {Array}
- * A copy of <code>a</code> or the Array object with its
- * elements' value uppercased or lowercased. If <code>a</code>
- * has no elements, an empty array is returned.
- */
- function _changeCase (a, bUppercase, bConvertNonStrings) {
- if (!_isArray(a) && _isArray(this))
- {
- bConvertNonStrings = bUppercase;
- bUpperCase = a;
- a = this;
- }
-
- if (_isArray(a))
- {
- for (var i = 0; i < a.length; i++)
- {
- if (bConvertNonStrings || typeof a[i] == "string")
- {
- if (bUppercase)
- {
- a[i] = String(a[i]).toUpperCase();
- }
- else
- {
- a[i] = String(a[i]).toLowerCase();
- }
- }
- }
-
- return a;
- }
-
- return [];
- }
-
- /**
- * Array index out of range
- *
- * @type jsx.array.RangeError
- * @extends RangeError|jsx.InvalidArgumentError
- * @constructor
- */
- var _RangeError = (
- function (sReason, sGot, sExpected) {
- _jsx.InvalidArgumentError.apply(this, arguments);
- }
- ).extend(
- typeof RangeError == "function"
- ? RangeError
- : _jsx.InvalidArgumentError,
- {
- name: "jsx.array.RangeError"
- });
-
- /**
- * Array-like object which can hold up to 2<sup>53</sup> elements
- *
- * @function
- * @type jsx.array.BigArray
- * @extends Array
- * @constructor
- */
- var _BigArray = jsx.object.extend(
- /**
- * @type __jsx.array.BigArray
- * @param {Array|Object} src (optional)
- * Array-like object to be converted
- * @return {jsx.arrayBigArray}
- */
- function jsx_array_BigArray (src) {
- if (!(this instanceof jsx_array_BigArray))
- {
- return jsx_array_BigArray.construct(arguments);
- }
-
- /**
- * @memberOf __jsx.array.BigArray
- * @private
- */
- var _length = 0;
-
- /**
- * Sets the real length of this array
- *
- * @param {int} value
- * @throws jsx.array.RangeError
- * if the value is less than <code>0</code> or
- * greater than {@link BigArray.MAX_LENGTH}
- */
- this.setLength = function BigArray_setLength (value) {
- if (value < 0 || value > _BigArray.MAX_LENGTH)
- {
- return _jsx.throwThis(_RangeError,
- ["Invalid length", value,
- "0.." + _BigArray.MAX_LENGTH
- + " (2^" + Math.floor(Math.log(_BigArray.MAX_LENGTH) / Math.log(2)) + ")"],
- BigArray_setLength);
- }
-
- _length = Math.floor(value);
-
- return this;
- };
-
- /**
- * Returns the real length of this array
- *
- * @return {int}
- */
- this.getLength = function () {
- return _length;
- };
-
- /**
- * @memberOf jsx.array.BigArray
- * @name length
- */
- _defineProperty(this, "length", {
- "get": this.getLength,
- "set": this.setLength
- }, "jsx.array.BigArray");
-
- this.clear();
-
- var arglen = arguments.length;
- if (arglen > 1)
- {
- for (var i = arglen; i--;)
- {
- this.set(i, arguments[i]);
- }
- }
- else if (arglen == 1)
- {
- var t = typeof src;
- if (t == "number")
- {
- this.setLength(src);
- }
- else
- {
- if (!_isArray(src) && _isNativeObject(src)
- && _getClass(src) != "Object")
- {
- this.set(0, src);
- }
- else
- {
- this.setAll(src);
- }
- }
- }
- },
- {
- /**
- * Maximum number of elements that can be stored in
- * a <code>BigArray</code>. Successor of the greatest
- * integer value that can be used as index.
- *
- * @memberOf jsx.array.BigArray
- */
- MAX_LENGTH: Math.pow(2, 53),
-
- /**
- * Determines if a value can be used as <code>BigArray</code>
- * index.
- *
- * @param {any} i
- */
- isIndex: function (i) {
- return parseInt(i, 10).toString() == i
- && i > -1 && i < _BigArray.MAX_LENGTH;
- },
-
- /**
- * Determines if an object is a <code>BigArray</code>.
- *
- * @param {Object} o
- * @return {boolean}
- */
- isInstance: function (o) {
- return o.constructor == _BigArray;
- }
- }
- ).extend(Array, {
- /**
- * Removes all elements from the array
- *
- * @memberOf jsx.array.BigArray.prototype
- */
- clear: function () {
- for (var i in this)
- {
- if (_BigArray.isIndex(i))
- {
- delete this[i];
- }
- }
-
- this.setLength(0);
- },
-
- /**
- * @param {int} index
- * @return {any} the element of this array at <var>index</var>
- */
- get: function BigArray_get (index) {
- if (arguments.length < 1)
- {
- return jsx.throwThis(jsx.InvalidArgumentError,
- ["Not enough arguments", "", "(int)"],
- BigArray_get);
- }
-
- if (index < 0)
- {
- index = this.getLength() + Math.ceil(index);
- }
- else
- {
- index = Math.floor(index);
- }
-
- return this[index];
- },
-
- /**
- * Sets the element at <var>index</var> to <var>value</var>
- *
- * @param {int} index
- * @param {any} value
- */
- set: function (index, value) {
- var length = this.getLength();
-
- if (index < 0)
- {
- index = length + Math.ceil(index);
- }
- else
- {
- index = Math.floor(index);
- }
-
- if (length < index + 1)
- {
- this.setLength(index + 1);
- }
-
- this[index] = value;
-
- return this;
- },
-
- /**
- * Sets all elements based on another object.
- *
- * @param {Object} src
- * If an <code>Array</code> or </code>BigArray</code>,
- * copies all array elements (enumerable properties whose
- * name is an array index) to this array.
- * Otherwise, copies all properties with numeric name, from
- * 0 to the name specified by the value of the object's
- * <code>length</code> property, to this array.
- */
- setAll: function (src) {
- if (_isArray(src) || src instanceof _BigArray)
- {
- for (var i in src)
- {
- if (_BigArray.isIndex(i))
- {
- this.set(i, src[i]);
- }
- }
- }
- else
- {
- for (i = src.length; i--;)
- {
- if (_BigArray.isIndex(i))
- {
- this.set(i, src[i]);
- }
- }
- }
- },
-
- /**
- * Returns the string representations of this array's
- * elements, separated by another string (representation).
- *
- * @param {String} glue
- * The separator between the string representations
- * @return {string}
- */
- join: function (glue) {
- var len = this.getLength();
- var _join = [].join;
-
- if (len <= _MAX_ARRAY_LENGTH)
- {
- return _join.apply(this, arguments);
- }
-
- if (arguments.length < 1)
- {
- glue = ",";
- }
-
- var chunks = [];
- var chunk_index = 0;
-
- for (var i = 0; i < len; ++i)
- {
- var chunk = chunks[chunk_index];
- if (typeof chunk == "undefined")
- {
- chunk = chunks[chunk_index] = [];
- }
-
- if (chunk.length < _MAX_ARRAY_LENGTH)
- {
- chunk.push(this.get(i))
- }
- else
- {
- chunks[chunk_index++] = _join.apply(chunk, arguments);
- }
- }
-
- return _join.apply(chunks, arguments);
- },
-
- /**
- * Returns this <code>BigArray</code> as an {@link Array},
- * with extra indexes if necessary.
- *
- * <em>Note that the returned <code>Array</code>'s {@link Array#length}
- * property does not reflect the highest index in the array if
- * it is greater than the one supported by the implementation
- * for <code>Array</code>s (ES 5.x: 2³²−1). However, the extra
- * indexes are enumerable.</em>
- *
- * <strong>There is no point in calling this method unless you
- * really need an <code>Array</code>. The original object
- * inherits from <code>Array.prototype</code>, known methods are
- * overridden if necessary, and all its indexes are enumerable.</strong>
- *
- * @return {Array}
- */
- toArray: function () {
- var a = [];
-
- /* Speed up addition of elements */
- a.length = Math.min(_MAX_ARRAY_LENGTH, this.getLength());
-
- for (var i in this)
- {
- if (_BigArray.isIndex(i))
- {
- a[i] = this.get(i);
- }
- }
-
- return a;
- },
-
- /**
- * Returns the string representation of this array
- * as a comma-separated list.
- */
- toString: function () {
- return this.join(",");
- }
- });
-
- return {
- /**
- * @memberOf jsx.array
- */
- version: "0.1.$Rev$",
- copyright: "Copyright \xA9 2004-2013",
- author: "Thomas Lahn",
- email: "js@PointedEars.de",
- path: "http://pointedears.de/scripts/",
-
- /**
- * @param {string} sMsg (optional)
- * @return {boolean} false
- */
- ArrayError: function(sMsg) {
- alert(
- "array.js "
- + Array.version
- + "\n"
- + Array.copyright
- + " "
- + Array.author
- + " <"
- + Array.Email
- + ">\n\n"
- + sMsg);
- return false;
- },
-
- BigArray: _BigArray,
- RangeError: _RangeError,
-
- /**
- * Splits the array <code>a</code> into several arrays with
- * <code>iSize</code> values in them.
- *
- * @param {Array} a
- * (optional) Array which should be split. Is used instead of
- * the <code>Array</code> instance the function is applied to.
- * @param {Number} iSize
- * Maximum size of the resulting arrays.
- * An array of arrays indexed with numbers starting from zero.
- */
- chunk: function (a, iSize) {
- if (!_isArray(a) && _isArray(this))
- {
- iSize = a;
- a = this;
- }
-
- var arrays = new Array([]);
-
- var i = 0;
- if (_jsx_object.isMethod(a, "slice"))
- {
- while (i < a.length)
- {
- arrays[arrays.length] = a.slice(i, i + iSize);
- i += iSize;
- }
- }
- else
- {
- var index;
- for (i = 0, index = 0; i < a.length; i++)
- {
- if (arrays[index].length == iSize)
- {
- arrays[++index] = [];
- }
-
- _array_push(arrays[index], a[i]);
- }
- }
- },
-
- /**
- * Returns an object using the values of the array <code>a</code>
- * as properties and their frequency in <code>a</code> as values.
- *
- * @param {Array} a
- * (optional) Array which values should be counted. Is used
- * instead of the <code>Array</code> instance the function is
- * applied to.
- * @return {Object}
- */
- countValues: function (a) {
- if (!_isArray(a) && _isArray(this))
- {
- a = this;
- }
-
- var o = {};
-
- for (var i = 0; i < a.length; i++)
- {
- if (typeof o[a[i]] != "undefined")
- {
- o[a[i]]++;
- }
- else
- {
- o[a[i]] = 1;
- }
- }
-
- return o;
- },
-
- /**
- * Fills an array with <code>iNumber</code> entries of the value
- * of the <code>value</code> argument, indexes starting at the
- * value of the <code>iStart</code> argument.
- *
- * @param {Array} a
- * (optional) Array which should be filled. Is used instead
- * of the {@link Array} object the function is applied to.
- * @param {Number} iStart
- * Index where to start filling
- * @param {Number} iNumber
- * Number of elements to be filled, starting from <code>iStart</code>
- * @param value (optional)
- * The value the array should be filled with
- * @return {Array} The filled array
- */
- fill: function (a, iStart, iNumber, value) {
- if (!_isArray(a) && _isArray(this))
- {
- a = this;
- }
-
- if (!_isArray(a))
- {
- a = [];
- }
-
- for (var i = iStart; i < iStart + iNumber; i++)
- {
- a[i] = value;
- }
-
- return a;
- },
-
- /**
- * Returns an array containing all the elements of another
- * array filtered according to a callback function.
- *
- * @param {Function} fCallback
- * A function accepting a single argument that returns
- * a value to be interpreted either as <code>true</code>
- * or <code>false</code>. If it returns <code>true</code>
- * for the element of <code>a</code>, that element is
- * included in the resulting array, otherwise it is not.
- * @param {Array} a (optional)
- * Array which should be filtered. Is used instead of the
- * <code>Array</code> object the function is applied to.
- * @return Array
- */
- filter: function (fCallback, a) {
- if (a)
- {
- /* support for old-style calls */
- if (typeof a == "function")
- {
- if (_isArray(fCallback))
- {
- var tmp = a;
- fCallback = a;
- a = tmp;
- }
- else
- {
- _jsx.throwThis('TypeError');
- }
- }
- else
- {
- /* intentionally generic */
- a = this;
- }
- }
-
- var len = this.length;
-
- if (typeof fCallback != "function")
- {
- _jsx.throwThis('TypeError');
- }
-
- var res = [];
-
- for (var i = 0; i < len; i++)
- {
- if (i in this)
- {
- /* mozilla.org: in case fCallback mutates `this'(?) */
- var val = this[i];
-
- if (fCallback.call(a, val, i, this))
- {
- res.push(val);
- }
- }
- }
-
- return res;
- },
-
- /**
- * Returns a function that can be used for filtering an {@link Array}
- * by the property values of its elements.
- *
- * @param {Object} filter
- * Object whose property names are the elements' property
- * names, and whose property values are the element's property
- * values to compare against
- * @param {boolean} bStrict = false
- * If <code>true</code>, perform strict comparison.
- * @return {Function}
- * The filter function
- * @see jsx.array.filter
- */
- createFilter: function (filter, bStrict) {
- var keys = _getKeys(filter);
-
- /**
- * @param {any} element
- * @return {boolean}
- */
- return function (element) {
- for (var i = 0, len = keys.length; i < len; ++i)
- {
- var key = keys[i];
- if (bStrict)
- {
- if (element[key] === filter[key])
- {
- return true;
- }
- }
- else
- {
- if (element[key] == filter[key])
- {
- return true;
- }
- }
- }
- };
- },
-
- /**
- * Removes the last element from an array and returns that
- * element. This method changes the length of the array, if
- * applied directly to an array object.
- *
- * @param {Array} a (optional)
- * Array from which the last element should be removed. Is used
- * instead of the {@link Array} object the function is
- * applied to.
- * @return {any}
- * The element removed from the array changed array.
- */
- pop: function (a) {
- if (!_isArray(a) && _isArray(this))
- {
- a = this;
- }
-
- var result = null;
-
- if (a.length > 0)
- {
- result = a[a.length - 1];
- if (_isArray(this))
- {
- this.length = this.length - 1;
- }
- }
-
- return result;
- },
-
- push: _array_push,
-
- /**
- * Takes input array <code>a</code> or the calling <code>Array</code>
- * object and returns a new <code>Array</code> object with the
- * order of the elements reversed.
- *
- * @param {Array} a (optional)
- * <code>Array</code> object which order of elements should be
- * reversed. Is used instead of the calling <code>Array</code>
- * object.
- * @return {Array}
- * A copy of <code>a</code> or the calling <code>Array</code>
- * object with its elements in reverse order. If <code>a</code>
- * has no elements, an empty array is returned.
- */
- reverse: function (a) {
- if (!_isArray(a) && _isArray(this))
- {
- a = this;
- }
-
- var result = [];
-
- if (_isArray(a))
- {
- for (var i = a.length - 1; i > -1; i--) {result[result.length] = a[i];}
- }
-
- return result;
- },
-
- /**
- * Searches an array for a given value and returns
- * the corresponding index or vector if successful.
- *
- * @param needle
- * Value to be searched for.
- * @param {Array} aHaystack
- * <code>Array</code> to be searched for. Is used instead of
- * the calling <code>Array</code> object.
- * @param {boolean} bStrict (optional)
- * If <code>true</code> then the function will also check the
- * types of the <code>needle</code> in the <code>aHaystack</code>.
- * @param {boolean} bDeepSearch (optional)
- * If <code>true</code>, a deep search, if necessary, will be
- * performed, i.e. also elements of the array are searched if
- * they refer to <code>Array</code> objects. (Note that this
- * method pays attention to the possibility that an element may
- * refer to one of its parents, so that infinite recursion is
- * not performed in this case. However, this additional check
- * reduces efficiency as another {@link jsx.array#search()}
- * must be invoked for every ancestor relationship. Also
- * note that this compares only references, not content.
- * If <code>needle</code> is a reference to an <code>Array</code>
- * object, it is compared as reference with every single
- * element, not its content with the content of elements
- * [that refer to <code>Array</code> objects].)
- * @param {Array} aAncestors (optional)
- * Used internally by {@linkplain (bDeepSearch) deep search} to refer
- * to an <code>Array</code> object storing the ancestors of a
- * "child" array element that refers to an <code>Array</code>
- * object itself. Usage prevents infinite recursion, see
- * <code>bDeepSearch</code>.
- * @param {Array} aResultVector (optional)
- * Used internally by {@linkplain (bDeepSearch) deep search}
- * to refer to an <code>Array</code> object storing the
- * vector of a matching array element that refers to an
- * <code>Array</code> object itself.
- * @param {number} iLevel (optional)
- * Used internally by {@linkplain (bDeepSearch) deep search}
- * to specify the level for index of the coordinate of
- * <code>aResultVector</code> if there is a match. The default
- * level (also used for non-deep searches) is 0 for the
- * first coordinate of <code>aResultVector</code>.
- * @param {number} index (optional)
- * Used internally by {@linkplain (bDeepSearch) deep search}
- * to specify the current index for the coordinate of
- * <code>aResultVector</code> if there is a match.
- * @return {number}
- * Without {@linkplain (bDeepSearch) deep search}:
- * The zero-based index of the first matching element
- * if <code>needle</code> is found in the array,
- * -1
- * otherwise.
- *
- * With {@linkplain (bDeepSearch) deep search}:
- * A reference to an Array object indicating the vector of
- * the first matching element (i.e. its coordinates)
- * if <code>needle</code> is found in the array,
- * <code>null</code>
- * otherwise.
- *
- * If neither the calling object is an <code>Array</code>
- * object nor <code>aHaystack</code> is a reference to such:
- * 0 or <code>index</code>
- * if <code>needle</code> is equal to <code>aHaystack</code>
- * (<code>bStrict</code> is noted),
- * -1
- * otherwise.
- */
- search: function array_search (needle, aHaystack, bStrict, bDeepSearch,
- aAncestors, aResultVector, iLevel, index) {
- var result = -1;
-
- if (typeof index == "undefined" || index < 0)
- {
- index = 0;
- }
-
- /*
- array_search(4, [[1, 2, 3], [4, 5, 6], [7, 8, 9]], true, true);
-
- {0: {0: 1,
- 1: 2,
- 2: 3},
- 1: {0: 4,
- 1: 5,
- 2: 6},
- 2: {0: 7,
- 1: 8,
- 2: 9}}
-
- array_search(4, [[1, 2, 3], [4, 5, 6], [7, 8, 9]], true, true) == [1, 0]
- array_search(4, [1, 2, 3], true, true) == null
- array_search(4, [4, 5, 6], true, true) == 0
- array_search(4, [7, 8, 9], true, true) == null
- */
-
- if (_isArray(aHaystack))
- {
- for (var i = 0; i < aHaystack.length; i++)
- {
- if (bDeepSearch)
- {
- result = null;
-
- if (!aAncestors)
- {
- aAncestors = [];
- }
-
- /* avoid dupes */
- if (aAncestors.length == 0
- || aAncestors[aAncestors.length - 1] != aHaystack)
- {
- _array_push(aAncestors, aHaystack);
- }
-
- if (!aResultVector)
- {
- aResultVector = [];
- }
-
- if (typeof iLevel == "undefined")
- {
- iLevel = 0;
- }
-
- /* avoid inf. recursion */
- if (!inArray(aHaystack[i], aAncestors, false))
- {
- var res =
- array_search(
- needle,
- aHaystack[i],
- bStrict,
- bDeepSearch,
- aAncestors,
- aResultVector,
- iLevel + 1,
- i);
-
- if (res != null && res > -1)
- {
- result = aResultVector;
- break;
- }
- }
- }
- else
- {
- if (bStrict)
- {
- eval(
- 'if (aHaystack[i] === needle) {'
- + ' result = i;'
- + ' break;'
- + '}');
- }
-
- if (aHaystack[i] == needle)
- {
- result = i;
- break;
- }
- }
- }
- }
- else
- {
- if (bStrict)
- {
- eval(
- 'if (aHaystack === needle) {'
- + ' if (bDeepSearch) {'
- + ' aResultVector[iLevel - 1] = index;'
- + ' }'
- + ' result = index;'
- + '}');
- }
-
- if (aHaystack == needle)
- {
- if (bDeepSearch)
- {
- aResultVector[iLevel - 1] = index;
- }
- result = index;
- }
- }
-
- return result;
- },
-
- /**
- * @param value
- * @param {Array} a
- * Array which should be searched. Is used instead of the
- * <code>Array</code> object the function is applied to.
- * @param {boolean} bExactMatch
- * If <code>true</code> then the function will also check the
- * types of the <code>needle</code> in the <code>aHaystack</code>
- * (optional).
- * @param {boolean} bDeepSearch = false
- * If <code>true</code>, a {@linkplain #array_search(bDeepSearch)
- * deep search}, if necessary, will be performed.
- * @return {boolean}
- * <code>true</code> if <code>value</code> is an element of
- * <code>a</code>, <code>false</code> otherwise.
- */
- contains: function (value, a, bExactMatch, bDeepSearch) {
- var result = null;
-
- if (bDeepSearch)
- {
- result = !!array_search(value, a, bExactMatch, true);
- }
- else
- {
- result = array_search(value, a, bExactMatch, false) > -1;
- }
-
- return result;
- },
-
- /**
- * @function
- */
- changeCase: _changeCase,
-
- /**
- * Takes input array <code>a</code> or the Array object it is
- * applied to as method and returns a new Array object with all
- * string elements (optionally all elements regardless of their
- * type) lowercased.
- *
- * @param {Array} a (optional)
- * Array which elements should be converted. Is used instead
- * of the Array object the function is applied to.
- * @param {boolean} bConvertNonStrings = false
- * If <code>false</code> (default), changes only the case of
- * string elements. If <code>true</code>, converts non-string
- * elements to <code>string</code> and changes their case.
- * @return {Array}
- * A copy of <code>a</code> or the Array object with its
- * elements' value lowercased. If <code>a</code> has no
- * elements, an empty array is returned.
- */
- toLowerCase: function (a, bConvertNonStrings) {
- if (!_isArray(a) && _isArray(this))
- {
- bConvertNonStrings = a;
- a = this;
- }
-
- return _changeCase.call(a, a, false, bConvertNonStrings);
- },
-
- /**
- * Takes input array <code>a</code> or the Array object it is
- * applied to as method and returns a new Array object with all
- * string elements (optionally all elements regardless of their
- * type) uppercased.
- *
- * @param {Array} a (optional)
- * Array which elements should be converted. Is used instead
- * of the Array object the function is applied to.
- * @param {boolean} bConvertNonStrings = false
- * If <code>false</code> default, changes only the case of
- * string elements. If <code>true</code>, converts non-string
- * elements to <code>string</code> and changes their case.
- * @return {Array}
- * A copy of <code>a</code> or the Array object with its
- * elements' value uppercased. If <code>a</code> has no
- * elements, an empty array is returned.
- */
- toUpperCase: function (a, bConvertNonStrings) {
- if (!_isArray(a) && _isArray(this))
- {
- bConvertNonStrings = a;
- a = this;
- }
-
- return _changeCase.call(a, a, true, bConvertNonStrings);
- },
-
- /**
- * @function
- */
- splice: (function() {
- if (typeof _jsx.global.array_splice != "undefined")
- {
- return _jsx.global.array_splice;
- }
- else if (typeof Array != "undefined"
- && _jsx_object.isNativeMethod(Array, "prototype", "splice"))
- {
- return function(a, start, del, ins) {
- var proto = Array.prototype;
- ins = proto.slice.call(arguments, 3);
- return proto.splice.apply(a, [start, del].concat(ins));
- };
- }
-
- return function(a, start, del, ins) {
- var aDeleted = [];
-
- for (var i = start + del, len = a.length; i < len; i++)
- {
- aDeleted[aDeleted.length] = a[i - del];
- a[i - del] = a[i];
- }
-
- a.length = len - del;
-
- for (i = 3, len = arguments.length; i < len; i++)
- {
- a[a.length] = arguments[i];
- }
-
- return aDeleted;
- };
- }()),
-
- every: function (callback, thisObject) {
- /* NOTE: Checks for null or undefined */
- if (thisObject == null && _isArray(this))
- {
- thisObject = this;
- }
-
- if (_isNativeMethod(thisObject, "every"))
- {
- return thisObject.every(callback);
- }
-
- for (var i = 0, len = thisObject.length; i < len; i++)
- {
- if (!callback(thisObject[i]))
- {
- return false;
- }
- }
-
- return true;
- },
-
- equals: function (otherObject, thisObject, strict) {
- /* NOTE: Check for null or undefined */
- if (thisObject == null && _isArray(this))
- {
- thisObject = this;
- }
-
- if (thisObject.length != otherObject.length)
- {
- return false;
- }
-
- for (var i = 0, len = thisObject.length; i < len; ++i)
- {
- if (strict)
- {
- if (thisObject[i] !== otherObject[i])
- {
- return false;
- }
- }
- else
- {
- if (thisObject[i] != otherObject[i])
- {
- return false;
- }
- }
- }
-
- return true;
- },
-
- /**
- * Returns an {@link Array} from which all duplicates
- * have been removed.
- *
- * NOTE: Warns and falls back to {@link #uniqStr()} if
- * {@link jsx.map.Map()} is unavailable.
- *
- * @function
- */
- uniq: (function () {
- var _Map;
-
- /**
- * @param {Object} thisObject
- * The object to operate on. Is used instead of the calling
- * object if this method is called as a method of an
- * {@link Array}.
- */
- return function (thisObject) {
- /* NOTE: Check for null or undefined */
- if (thisObject == null && _isArray(this))
- {
- thisObject = this;
- }
-
- if (!_Map)
- {
- _Map = jsx.object.getFeature(jsx, "map", "Map");
- if (!_Map)
- {
- jsx.warn("jsx.array.uniq(): jsx.map.Map N/A, falling back to jsx.array.uniqStr()");
- return jsx.array.uniqStr(thisObject);
- }
- }
-
- var condensed = new _Map();
-
- for (var i = 0, len = thisObject.length; i < len; ++i)
- {
- if (_hasOwnProperty(thisObject, i))
- {
- condensed.put(thisObject[i], true);
- }
- }
-
- return condensed.getKeys();
- };
- }()),
-
- /**
- * Returns an {@link Array} from which all {@link String}
- * duplicates have been removed.
- *
- * This method is more efficient than {@link #uniq} if you
- * can be sure that either all elements are string values
- * or their string representations can be compared. However,
- * different to <code>uniq()</code>, the order of the
- * resulting elements is implementation-dependent.
- *
- * @param {Object} thisObject
- * The object to operate on. Is used instead of the calling
- * object if this method is called as a method of an
- * {@link Array}.
- */
- uniqStr: function (thisObject) {
- /* NOTE: Check for null or undefined */
- if (thisObject == null && _isArray(this))
- {
- thisObject = this;
- }
-
- var condensed = jsx.object.getDataObject();
-
- for (var i = 0, len = thisObject.length; i < len; ++i)
- {
- if (_hasOwnProperty(thisObject, i))
- {
- condensed[thisObject[i]] = true;
- }
- }
-
- return _getKeys(condensed);
- },
-
- /**
- * Returns a function that can be used for sorting an {@link Array}.
- *
- * @author (C) 2013 Thomas 'PointedEars' Lahn &lt;js@PointedEars.de&gt;
- */
- createComparator: (function () {
- var _isObject = _jsx_object.isObject;
-
- /**
- * @param {Array} aKeys
- * Array of keys that should be sorted by, in order.
- * A key may be a {@link string} value or a native object.
- * If it is a <code>string</code>, it specifies the property name
- * of the sort key. If it is another native object, the following
- * of its properties are used as options. See the <var>options</var>
- * parameter for the default values of these options.
- * <table>
- * <tr>
- * <th><code>key</code></th>
- * <td>The name of the property of the elements whose values
- * should be sorted by (sort values). If this option is
- * not present or a false-value, the element values are
- * used as sort values.</td>
- * </tr>
- * <tr>
- * <th><code>callback</code></th>
- * <td>A reference to the <code>Function</code> whose
- * return value, when passed the current sort value,
- * defines the new sort value.</td>
- * </tr>
- * <tr>
- * <th><code>constructor</code></th>
- * <td>A reference to the <code>Function</code> whose
- * return value when passed the current sort value
- * and called as a constructor, defines the new
- * sort value. This is useful if data can be converted
- * to an object whose <code>toString</code> or
- * <code>valueOf</code> methods can return a
- * valid sort value. If both <code>callback</code>
- * and <code>constructor</code> are specified, the
- * return value of the callback is passed to
- * the constructor.</td>
- * </tr>
- * <tr>
- * <th><code>comparator</code></th>
- * <td>A reference to the <code>Function</code> that
- * should be passed the first and second current
- * sort values and whose return value defines
- * the relation between the first and second sort
- * value. If the return value is not (loosely) equal
- * to 0 or if the key is the last key, its return
- * value is returned. Otherwise the subsequent
- * sort values are compared.</td>
- * </tr>
- * <tr>
- * <th><code>descending</code></th>
- * <td>If a true-value, the sort order for this key
- * is descending.</td>
- * </tr>
- * <tr>
- * <th><code>numeric</code></th>
- * <td>If a true-value, the sort values are compared as if
- * both of them were <code>Number</code> values.</td>
- * </tr>
- * <tr>
- * <th><code>strict</code></th>
- * <td>If a true-value, the sort values are sorted
- * using the <code>===</code> operator.</td>
- * </tr>
- * </table>
- * @param {Object} options (optional)
- * Default sort options. The following properties are used:
- * <table>
- * <tr>
- * <th><code>callback</code></th>
- * <td>A reference to the <code>Function</code> whose
- * return value, when passed the current sort value,
- * defines the new sort value. The factory default
- * is not to use a callback.</td>
- * </tr>
- * <tr>
- * <th><code>constructor</code></th>
- * <td>A reference to the <code>Function</code> whose
- * return value when passed the current sort value
- * and called as a constructor, defines the new
- * sort value. The factory default is not to use
- * a constructor.</td>
- * </tr>
- * <tr>
- * <th><code>comparator</code></th>
- * <td>A reference to the <code>Function</code> that
- * should be passed the first and second current
- * sort values and whose return value defines
- * the relation between the first and second sort
- * value. The factory default is not to use a
- * special sort value comparator.</td>
- * </tr>
- * <tr>
- * <th><code>descending</code></th>
- * <td>If a true-value, the default sort order is
- * descending. The factory default is ascending.</td>
- * </tr>
- * <tr>
- * <th><code>numeric</code></th>
- * <td>If a true-value, by default the sort values are compared
- * as if they were <code>Number</code> values. The factory
- * default is a generic comparison that uses the operators
- * <code>==</code> (non-strict) or <code>===</code>
- * (strict), and <code>&lt;</code>, and <code>></code>.</td>
- * </tr>
- * <tr>
- * <th><code>strict</code></th>
- * <td>If a true-value, use strict comparison by default.
- * The factory default is non-strict comparison.</td>
- * </tr>
- * </table>
- * @return {Function}
- */
- function _createComparator (aKeys, options)
- {
- if (aKeys == null || !_isArray(aKeys))
- {
- aKeys = [aKeys];
- }
-
- if (options == null || !_isObject(options))
- {
- options = {};
- }
-
- return function (el1, el2) {
- for (var i = 0, len = aKeys.length; i < len; ++i)
- {
- var key = aKeys[i];
- var propertyName = ((key == null || typeof key.valueOf() == "string")
- ? key
- : key.key);
-
- var el1Value = (propertyName != null ? el1[propertyName] : el1);
- var el2Value = (propertyName != null ? el2[propertyName] : el2);
-
- if (key && typeof key.callback == "function")
- {
- el1Value = key.callback(el1Value);
- el2Value = key.callback(el2Value);
- }
- else if (typeof options.callback == "function")
- {
- el1Value = options.callback(el1Value);
- el2Value = options.callback(el2Value);
- }
-
- if (key && _hasOwnProperty(key, "constructor"))
- {
- el1Value = new key.constructor(el1Value);
- el2Value = new key.constructor(el2Value);
- }
- else if (_hasOwnProperty(options, "constructor"))
- {
- el1Value = new options.constructor(el1Value);
- el2Value = new options.constructor(el2Value);
- }
-
- var isLastKey = (i == len - 1);
- var hasKeySpecificComparator = (typeof key.comparator == "function");
- if (hasKeySpecificComparator
- || (typeof options.comparator == "function"))
- {
- var comparatorResult = (hasKeySpecificComparator
- ? key.comparator(el1Value, el2Value)
- : options.comparator(el1Value, el2Value));
-
- if (isLastKey || comparatorResult != 0)
- {
- return comparatorResult;
- }
-
- continue;
- }
-
- equals = ((key && key.strict) || (options.strict)
- ? (el1Value === el2Value)
- : (el1Value == el2Value));
-
- if (equals)
- {
- if (isLastKey)
- {
- /* last key, same value */
- return 0;
- }
- }
- else
- {
- var descending = ((key && key.descending) || options.descending);
-
- return ((key && key.numeric) || options.numeric
- ? (descending
- ? el2Value - el1Value
- : el1Value - el2Value)
- : (descending
- ? (el1Value > el2Value ? -1 : 1)
- : (el1Value < el2Value ? -1 : 1)));
- }
- }
- };
- }
-
- return _createComparator;
- }())
- };
-}());
-
-//jsx.array.docURL = jsx.array.path + "array.htm";
-
-if (jsx.options.augmentPrototypes)
-{
- jsx.object.extend(Array.prototype, {
- /**
- * @memberOf Array.prototype
- */
- chunk: jsx.array.chunk,
- changeCase: jsx.array.changeCase,
- contains: jsx.array.contains,
- countValues: jsx.array.countValues,
- equals: jsx.array.equals,
- fill: jsx.array.fill,
- filter: jsx.array.filter,
- pop: jsx.array.pop,
- push: jsx.array.push,
- reverse: jsx.array.reverse,
- search: jsx.array.search,
- splice: jsx.array.splice,
- toLowerCase: jsx.array.toLowerCase,
- toUpperCase: jsx.array.toUpperCase,
- uniq: jsx.array.uniq,
- uniqStr: jsx.array.uniqStr,
-
- /* JavaScript 1.6 (1.5 in Gecko 1.8b2 and later) emulation */
- every: jsx.array.every,
-
- /* TODO */
- iterate: function () {
- var a = [];
-
- for (var i = 0, len = this.length; i < len; i++)
- {
- a.push(this[i]);
- }
-
- return a;
- }
- });
-}
\ No newline at end of file
/live/array.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Index: live/outline.js
===================================================================
--- live/outline.js (revision 509)
+++ live/outline.js (nonexistent)
@@ -1,199 +0,0 @@
-// The following tag is for display in advanced filelists only:
-// <TITLE>Support for Outline-styled Structure Using Dynamic HTML Statements</title>
-//
-// Refer outline.txt for general documentation.
-
-// Variable definitions
-
-var sOutline = "outline"; // Class name for outline node
-var sOutlined = "outlined"; // Class name for outline content
-var imgCollapsed = ""; // Image file to load when node is collapsed
-var imgExpanded = ""; // Image file to load when node is expanded
-var sCollapsed = "+"; // Text to display when node is collapsed
-var sExpanded = "-"; // Text to display when node is expanded
-
-/* SCRIPT EXCEPTIONS */
-
-function EOutline(Msg) {
- var msgBody = "outline.js (c) 1999-2006 Thomas Lahn (webmaster@PointedEars.de)\n\n";
- msgBody += Msg;
- msgBody += "\n\nClick \"OK\" to send a feedback e-mail to the author of the script or click \"Cancel\" to abort.\nAnyway, you should inform the author of the HTML document of the error you have encountered.";
- if (confirm(msgBody))
- {
- self.location.href = "mailto:webmaster@PointedEars.de?subject=Feedback/JavaScript/outline.js";
- }
- return false;
-}
-
-function ENoBrowser() {
- return EOutline( "This script is designed to be processed from a web browser only." );
-}
-
-function ENoJScript() {
- return EOutline( "Your browser does not support Microsoft JScript. This is designed for Microsoft Internet Explorer only." );
-}
-
-function ENoTarget(Object) {
- var msg = "The script could not determine the required target object (";
- msg += Object;
- msg += "+).\nThe possible causes are:\n\n";
- msg += "a) A style-sheet is included in the HTML document that redefines the OUTLINE class for DIV tags. The additional style-sheet needs to be removed, the class needs to be renamed, or the CLASS=\"OUTLINE\" attribute is to be used for no other objects than outline nodes for the script to work properly.\n\n";
- msg += "b) The HTML document did not provide the object.\nIt needs to be defined using the ID attribute of the respective HTML tag.\n\n";
- msg += "c) Maybe your browser is unable to return the complete object list due to low system resources.\nThere are currently ";
- msg += String(document.all.length);
- msg += " accessible objects within the HTML document. The number of outline objects possibly needs to be reduced for the script to work properly.\nFor the moment you may be able to expand/collapse all nodes of the outline structure using the respective items/buttons if the author had included them in the HTML document.";
- return EOutline(msg);
-}
-
-function ENoAttr(Object) {
- var msg = "The clicked object (ID=\"";
- msg += Object;
- msg += "\") does neither support the SRC, ALT nor the innerHTML attribute.\nUse the <IMG SRC=\"...\" [ALT=\"...\"] CLASS=\"outline\"> tag or any tag with an appropriate closing tag (<...></...>) for the node symbol instead.";
- return EOutline( msg );
-}
-
-function EInvalidArgument(Arg) {
- var msg = "FullTree: The user script did not pass the required number of arguments or passed an invalid argument (";
- msg += Arg;
- msg += "). Refer documentation in script file for correct function call.";
- return EOutline( msg );
-}
-
-/* SCRIPT FEATURES */
-
-function CalcPaths() { // Calculates relative image file paths to absolute ones
-var PathEnd = document.URL.lastIndexOf('\\'); // Folder path
- if( PathEnd == -1 )
- {
- PathEnd = document.URL.lastIndexOf('/'); // URL
- }
-
- if( PathEnd == -1 ) { // Extends filename to full path
- var prevImgCollapsed = imgCollapsed;
- imgCollapsed = document.URL.slice(0, PathEnd);
- imgCollapsed += "/";
- imgCollapsed += prevImgCollapsed;
- var prevImgExpanded = imgExpanded;
- imgExpanded = document.URL.slice(0, PathEnd);
- imgExpanded += "/";
- imgExpanded += prevImgExpanded;
- }
-}
-
-function clickHandler() {
-var srcElement, targetId, targetElement;
- if (document) { // If processed from web browser
- var srcElement = window.event.srcElement;
- if (srcElement && (srcElement.className.toLowerCase() == sOutline)) {
- // If classified as outline node
- targetId = srcElement.id;
- targetId += "+";
- targetElement = getElem("id", targetId);
- if (targetElement) { // If the node content exists
- if (targetElement.style.display == "none") { // If currently collapsed
- targetElement.style.display = "";
- if (srcElement.src) {
- if (imgExpanded != "") srcElement.src = imgExpanded;
- if (srcElement.alt) {
- if (sExpanded != "") srcElement.alt = sExpanded;
- }
- } else if (srcElement.alt) {
- if (sExpanded != "") srcElement.alt = sExpanded;
- } else if (srcElement.innerHTML) {
- if (sExpanded != "") srcElement.innerHTML = sExpanded;
- } else
- return ENoAttr( srcElement.id );
- } else { // If currently expanded
- targetElement.style.display = "none";
- if (srcElement.src) {
- if (imgCollapsed != "") srcElement.src = imgCollapsed;
- if (srcElement.alt) {
- if (sCollapsed != "") srcElement.alt = sCollapsed;
- }
- } else if (srcElement.alt) {
- if (sCollapsed != "") srcElement.alt = sCollapsed;
- } else if (srcElement.innerHTML) {
- if (sCollapsed != "") srcElement.innerHTML = sCollapsed;
- } else
- return ENoAttr();
- }
- } else
- return ENoTarget (srcElement.id);
- }
- } else
- return ENoBrowser();
-}
-
-function FullTree(action) {
-var obj;
- if (document) { // If processed from web browser
- if (document.all) { // If Microsoft JScript is supported
- for (var i = document.all.length; i--;) {
- obj = document.all[i];
- if (obj.className.toLowerCase() == sOutline || obj.className.toLowerCase() == sOutlined) {
- if ((obj.tagName.toLowerCase() == "div") && (obj.className.toLowerCase() != sOutline)) {
- if (action == "+")
- obj.style.display = "";
- else if (action == "-")
- obj.style.display = "none";
- else
- return EInvalidArgument();
- if (obj.src) {
- if (action == "+") {
- if (imgExpanded != "") obj.src = imgExpanded;
- } else if (action == "-") {
- if (imgCollapsed != "") obj.src = imgCollapsed;
- } else
- return EInvalidArgument();
- }
- if (obj.alt) {
- if (action == "+") {
- if (sExpanded != "") obj.alt = sExpanded;
- } else if (action == "-") {
- if (sCollapsed != "") obj.alt = sCollapsed;
- } else
- return EInvalidArgument();
- }
- } else if ((obj.innerHTML && obj.tagName.toLowerCase() == "span") && (obj.className.toLowerCase() == sOutline)) {
- // Only on SPAN
- if (action == "+") {
- if (sExpanded != "") obj.innerHTML = sExpanded;
- } else if (action == "-") {
- if (sCollapsed != "") obj.innerHTML = sCollapsed;
- } else
- return EInvalidArgument();
- }
- }
- }
- } else
- return ENoJScript();
- } else
- return ENoBrowser();
-}
-
-function FullExpand() {
- return FullTree("+");
-}
-
-function FullCollapse() {
- return FullTree("-");
-}
-
-function FullTreeItems() {
- document.write( '<p><a href="JavaScript:FullExpand()" target="_self">Alle Ebenen einblenden</a><br>',
- '<a href="FullCollapse()" target="_self">Alle Ebenen ausblenden</a></p>' );
-}
-
-function FullTreeButtons() {
- document.write( '<p><input type="button" width=100% value="Alle Ebenen einblenden" class="help" style="width:100%;" onClick="FullExpand();"><br>',
- '<input type="button" width=100% value="Alle Ebenen ausblenden" class="help" style="width:100%" onClick="FullCollapse()"></p>' );
-}
-
-if (document) // If processed from a web browser: Defines the function above to be processed on every click on the document
-{
- document.onclick = clickHandler;
-}
-else
-{
- ENoBrowser();
-}
\ No newline at end of file
Index: live/dom.js
===================================================================
--- live/dom.js (revision 509)
+++ live/dom.js (nonexistent)
@@ -1,1847 +0,0 @@
-/**
- * @fileOverview <title>PointedEars' DOM Library</title>
- * @file $Id$
- *
- * @partof PointedEars JavaScript Extensions (JSX)
- * @requires object.js
- * @recommends types.js, dom/xpath.js
- * @source Based upon
- * @link{
- * selfhtml#dhtml/beispiele/dhtml_bibliothek.htm,
- * dhtml.js from SELFHTML (8.0)
- * }
- *
- * @section Copyright & Disclaimer
- *
- * @author
- * (C) 2001 SELFHTML e.V. <stefan.muenz@selfhtml.org> et al.,
- * 2002-2013 Thomas Lahn <js@PointedEars.de>,
- * 2004 Ulrich Kritzner <droeppez@web.de> (loadScript),
- * 2005 MozillaZine Knowledge Base contributors (DOM XPath):
- * Eric H. Jung <grimholtz@yahoo.com> et al.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License (GPL) for more details.
- *
- * You should have received a copy of the GNU GPL along with this
- * program (COPYING file); if not, go to [1] or write to the Free
- * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA 02111-1307, USA.
- *
- * [1] <http://www.gnu.org/licenses/licenses.html#GPL>
- *
- * @section Enhancements
- *
- * - New features:
- * + getElem("tagname", "$TAGNAME") : HTML(Options)Collection
- * + setAttr(...)
- * + radioChkdVal(...)
- * + removeOptions(...)
- * + addOption(...)
- * + selectRadioBtn(...)
- * + disableElementGroup(...)
- *
- * - Pretty printing and detailed documentation
- * - Removed unnecessary variables and DHTML_init() function
- * - Use references and initialization wherever possible
- * - Introducing @link{#DHTML()} prototype and @link{#dhtml}
- * instance, using boolean properties instead of numeric
- * global variables.
- * Note: This enhancement makes this library incompatible to
- * the source code it is based upon and to previous versions
- * of this library (if you used the global variables that
- * were defined herein, otherwise _not_.)
- *
- * - Argument renaming and checking
- * - if...else if...else --> switch...case...default
- * - Calling exception function on invalid arguments
- * - Do not try to access undefined properties (prevents
- * warnings), use the "typeof" operator instead
- *
- * @section Bugfixes
- *
- * - When the result is an object, return `null' instead of
- * `void (0)'. Otherwise return a null-string (`""') or
- * true/false on success/failure, so that each function
- * has a defined return value.
- */
-/*
- * Refer the repository changelog at http://PointedEars.de/websvn/
- * for changes to the last version.
- *
- * This document contains JavaScriptDoc.
- * See http://pointedears.de/scripts/JSdoc/ for details.
- */
-
-/**
- * @deprecated
- */
-function DHTML()
-{
- this.allowExceptionMsg = true;
-}
-
-/* a more compatible approach */
-if (typeof jsx == "undefined")
-{
- /**
- * @namespace
- */
- var jsx = {};
-}
-
-jsx.dom = {
- version: "$Id$",
- //var dhtmlDocURL = dhtmlPath + "dhtml.htm";
- copyright: "Copyright \xA9 2002-2013",
- author: "Thomas Lahn",
- email: "js@PointedEars.de",
- path: "http://pointedears.de/scripts/"
-};
-jsx.dom.URI = jsx.dom.path + "dom.js";
-//this.docURI = this.path + "dhtml.htm";
-
-if (typeof document != "undefined")
-{
- jsx.dom.hasDocumentAll = false;
-
- jsx.dom.getElementById = jsx.dom.getElemById = jsx.dom.getEBI = jsx.dom.gEBI = (
- function () {
- if (typeof document == "undefined")
- {
- return function () {
- return null;
- };
- }
-
- var jsx_object = jsx.object;
-
- if (jsx_object.isMethod(document, "getElementById"))
- {
- /**
- * @param {string} sId
- * @return {Element|Null}
- * Reference to an {@link Element} object representing
- * the element with the given ID, <code>null</code> or
- * <code>undefined</code> if there is no such element.
- * The return value varies among DOM implementations
- * if there is more than one matching element (invalid markup).
- */
- return function (sId) {
- /* wrapper method required to avoid "invalid op. on prototype" exception */
- return document.getElementById(sId);
- };
- }
-
- if ((jsx.dom.hasDocumentAll = jsx_object.isMethod(document, "all")))
- {
- return function (sId) {
- return document.all(sId);
- };
- }
-
- return function (sId) {
- return document[sId];
- };
- }
- )();
-
- jsx.dom.hasDocumentLayers = false;
-
- jsx.dom.getElementsByName = jsx.dom.getElemByName = jsx.dom.gEBN = (
- function () {
- function dummy()
- {
- return null;
- }
-
- if (typeof document == "undefined")
- {
- return dummy;
- }
-
- if (jsx.object.isMethod(document, "getElementsByName"))
- {
- /* W3C DOM Level 2 HTML */
- /**
- * @param {string} sName
- * @param {number} index (optional)
- * @return Element|Layer|Null|Undefined
- */
- return function (sName, index) {
- var result = document.getElementsByName(sName);
- if (result && !isNaN(index) && index > -1)
- {
- result = result[index];
- }
-
- return result;
- };
- }
- else if (jsx.dom.hasDocumentAll)
- {
- /* IE4 DOM */
- return function (sName, index) {
- var result = document.all(sName);
- if (result && !isNaN(index) && index > -1)
- {
- result = result[index];
- }
-
- return result;
- };
- }
- else if ((jsx.dom.hasDocumentLayers = (typeof document.layers == "object")))
- {
- /* NN4 DOM */
- return function (sName, index) {
- var result = document.layers[sName];
- if (result && !isNaN(index) && index > -1)
- {
- result = result[index];
- }
-
- return result;
- };
- }
-
- return dummy;
- }()
- );
-
- jsx.dom.hasGetElementsByTagName = false;
-
- jsx.dom.getElementsByTagName = jsx.dom.getElemByTagName = jsx.dom.gEBTN = (
- function () {
- var jsx_object = jsx.object;
-
- if (jsx_object.isNativeMethod(jsx, "xpath", "evaluate"))
- {
- /* W3C DOM Level 3 XPath */
- /**
- * @param {string} sTagName
- * @param {number} index (optional)
- * @param {Element} oContextNode (optional)
- * @return {Array|Element}
- * An <code>Array</code> of references to objects representing
- * matching elements, or one reference to such an object if
- * <var>index</var> was provided.
- */
- return function (sTagName, index, oContextNode) {
- if (!sTagName)
- {
- sTagName = '*';
- }
-
- if (arguments.length > 2 && typeof index != "number")
- {
- var tmp = oContextNode;
- oContextNode = index;
- index = tmp;
- }
-
- var result = jsx.dom.xpath.evaluate('.//' + sTagName, oContextNode || null,
- null, XPathResult.ORDERED_NODE_ITERATOR_TYPE);
-
- if (result)
- {
- if (!isNaN(index) && index > -1)
- {
- result = result[index];
- }
- }
-
- return result;
- };
- }
-
- if ((jsx.dom.hasGetElementsByTagName =
- (typeof document != "undefined"
- && jsx_object.isMethod(document, "getElementsByTagName"))))
- {
- /* W3C DOM Level 2 Core */
- /**
- * @param {string} sTagName
- * @param {number} index (optional)
- * @param {Element} oContextNode (optional)
- * @return {NodeList|Element|Null}
- * An <code>NodeList</code> of references to objects representing
- * matching elements, or one reference to such an object if
- * <var>index</var> was provided; <code>null</code> if there
- * is no matching element.
- */
- return function (sTagName, index, oContextNode) {
- if (!sTagName)
- {
- sTagName = '*';
- }
-
- if (arguments.length > 2 && typeof index != "number")
- {
- var tmp = oContextNode;
- oContextNode = index;
- index = tmp;
- }
-
- if (!oContextNode)
- {
- oContextNode = document;
- }
-
- if (!jsx_object.isMethod(oContextNode, "getElementsByTagName"))
- {
- return null;
- }
-
- var result = oContextNode.getElementsByTagName(sTagName);
- if (result && !isNaN(index) && index > -1)
- {
- result = result[index];
- }
-
- return result;
- };
- }
-
- if (jsx.dom.hasDocumentAll && isMethod(document.all, "tags"))
- {
- /**
- * @param {string} sTagName
- * @param {number} index (optional)
- * @param {Element} oContextNode (optional)
- * @return {NodeList|Element|Undefined}
- * An <code>NodeList</code> of references to objects representing
- * matching elements, or one reference to such an object if
- * <var>index</var> was provided; <code>null</code>
- * if there is no matching element.
- */
- return function (sTagName, index, oContextNode) {
- if (arguments.length > 2 && typeof index != "number")
- {
- var tmp = oContextNode;
- oContextNode = index;
- index = tmp;
- }
-
- if (!oContextNode)
- {
- oContextNode = document;
- }
-
- if (!jsx.object.isMethod(oContextNode, "all", "tags"))
- {
- return null;
- }
-
- var result = oContextNode.all.tags(sTagName);
- if (result && !isNaN(index) && index > -1)
- {
- result = result[index];
- }
-
- return result;
- };
- }
-
- return function () {
- return null;
- };
- }()
- );
-
- jsx.dom.getElementByIndex = jsx.dom.getElemByIndex = jsx.dom.gEBIdx = (function () {
- function dummy()
- {
- return null;
- }
-
- if (typeof document == "undefined")
- {
- return dummy;
- }
-
- if (jsx.dom.hasGetElementsByTagName)
- {
- /**
- * @param {number} index
- * @return Element|Null|Undefined
- */
- return function (index) {
- return (result = document.getElementsByTagName('*')[index]);
- };
- }
-
- if (jsx.dom.hasDocumentAll)
- {
- /**
- * @param {number} index
- * @return Element|Null|Undefined
- */
- return function (index) {
- return document.all(index);
- };
- }
-
- if (jsx.dom.hasDocumentLayers)
- {
- /**
- * @param {number} index
- * @return Layer|Null|Undefined
- */
- return function (index) {
- return document.layers[index];
- };
- }
-
- return dummy;
- }());
-}
-
-/*
- * Apart from isNS4DOM, none of these object-inference properties is used
- * anymore; they are still here for backwards compatibility only
- */
-//this.isW3CDOM = jsx.object.isMethod(document, "getElementById");
-//this.isOpera = typeof window.opera != "undefined";
-jsx.dom.isNS4DOM = typeof document.layers != "undefined";
-//this.isIE4DOM = typeof document.all == "object" && !this.isOpera;
-//this.supported = this.isW3CDOM || this.isNS4DOM || this.isOpera
-// || this.isIE4DOM;
-
-/* DOM preselection (why?) */
-//this.W3CDOM = 3;
-//this.IE4DOM = 2;
-//this.NS4DOM = 1;
-//this.DOM = this.supported
-// && (this.isW3CDOM && this.W3CDOM)
-// || (this.isIE4DOM && this.IE4DOM)
-// || (this.isNS4DOM && this.NS4DOM);
-
-/* allows for de.pointedears.jsx.dom */
-if (typeof de == "undefined")
-{
- /**
- * @namespace
- */
- var de = {};
-}
-
-if (typeof de.pointedears == "undefined")
-{
- /**
- * @namespace
- */
- de.pointedears = {};
-}
-
-if (typeof de.pointedears.jsx == "undefined")
-{
- /**
- * @namespace
- */
- de.pointedears.jsx = jsx;
-}
-
-/**
- * Shows an exception alert and allows for
- * displaying a stack trace.
- *
- * @param {string} sMessage = ""
- * Error message to be displayed.
- * @return {boolean}
- * Always <code>false</code>
- */
-jsx.dom.DHTMLException = function (sMessage) {
- /* Prevent exceptions from "bubbling" on (keyboard) event */
- if (!jsx.dom.allowExceptionMsg)
- {
- return false;
- }
-
- jsx.dom.allowExceptionMsg = false;
-
- jsx.setErrorHandler();
- var stackTrace =
- jsx.object.isMethod(_global, "Error") && (new Error()).stack || "";
-
- jsx.clearErrorHandler();
-
- alert(
- "dhtml.js "
- + jsx.dom.version + "\n"
- + jsx.dom.copyright + " "
- + jsx.dom.author + " <" + jsx.dom.email + ">\n"
- + 'The latest version can be obtained from:\n'
- + "<" + jsx.dom.URI + ">\n\n"
- + sMessage + "\n"
- + "__________________________________________________________\n"
- + "Stack trace"
- + (stackTrace
- ? ":\n\n" + stackTrace
- : " not available in this DOM."));
-
- jsx.dom.allowExceptionMsg = true;
- return false;
-};
-
-jsx.dom.write = function (s) {
- var result = jsx.tryThis(
- function () {
- document.write(s);
-
- return true;
- },
- function () {
- return jsx.tryThis(
- function () {
- var result2 = false;
- var ns = document.documentElement.getAttribute("xmlns");
- var scripts;
- if (ns)
- {
- scripts = document.getElementsByTagNameNS(ns, "script");
- }
- else
- {
- scripts = document.getElementsByTagName("script");
- }
-
- if (scripts && scripts.length > 0)
- {
- var lastScript = scripts[scripts.length - 1];
- result2 = !!lastScript.parentNode.insertBefore(
- document.createTextNode(s), lastScript.nextSibling);
- }
-
- return result2;
- });
- });
-
- /* fix circular reference */
- s = null;
-
- return result;
-};
-
-/**
- * Retrieves an HTMLElement object or a collection of such
- * objects that match certain criteria.
- *
- * @author
- * (C) 2003, 2004 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @param {string} sType
- * Defines the type of <code>sValue</code>. Valid values are
- * "id", "name", "tagname", "index" and "classname". The
- * argument is case-insensitive.
- * @param {string} sValue (optional)
- * Case-sensitive ID, name or tag name of object (collection).
- * @param {number} index (optional)
- * Numeric index of an element of the selected
- * collection. For IDs must be unique throughout a document,
- * this argument is ignored if <code>sType</code> is "id".
- * @return {HTMLElement|NodeList|Null}
- * A reference to an object if <code>sType</code> is "id", or
- * if it is "name" or "tagname" and <code>index</code> is
- * specified; otherwise a collection of objects matching the
- * specified criteria; <code>null</code> if no matching object
- * exists.
- */
-jsx.dom.getElem = function (sType, sValue, index) {
- /**
- * Calls DHTMLException() for an invalid type.
- */
- function invalidType()
- {
- jsx.dom.DHTMLException(
- 'getElem: Invalid type "' + sType + '"\n'
- + 'Must be one of "id", "name", "tagname", "index" or "classname"'
- + ' (case-insensitive).');
- }
-
- if (!sType || typeof sType != "string" || !sType.toLowerCase)
- {
- jsx.dom.DHTMLException(
- "getElem: Invalid type: " + sType + "\n"
- + "Must be string.");
- }
-
- if (!sValue || typeof sValue != "string")
- {
- jsx.dom.DHTMLException(
- "getElem: Invalid value: " + sValue + "\n"
- + "Must be string.");
- }
-
- var o = null;
-
- switch ((sType = sType.toLowerCase()))
- {
- case 'id':
- case 'index':
- case 'classname':
- o = jsx.dom["getElemBy" + {
- id: "Id",
- index: "Index",
- classname: "ClassName"
- }[sType]](sValue);
- break;
-
- case 'name':
- case 'tagname':
- o = jsx.dom["getElemBy" + {
- name: "Name",
- tagname: "TagName"
- }[sType]](sValue, index);
- break;
-
- default:
- invalidType();
- }
-
- return o;
-};
-
-/**
- * Retrieves the content of an HTMLElement object.
- *
- * @author (C) 2003-2005, 2010 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @param {HTMLElement} oElement
- * Element which content is to be retrieved.
- * @param {boolean} bHTML (optional)
- * If <code>true</code>, returns the HTML content instead of
- * the text content in case the latter cannot be retrieved.
- * @return {string}
- * A string with the content of the element; a null-string if
- * no such element object exists or if the DOM does not provide
- * retrieval of the element's content.
- */
-jsx.dom.getCont = function (oElement, bHTML) {
- var sResult = "";
-
- if (oElement)
- {
- /* W3C DOM Level 2 Core */
- if (typeof oElement.firstChild != "undefined")
- {
- if (typeof oElement.firstChild.nodeType != "undefined"
- && oElement.firstChild.nodeType ==
- /* W3C-DOM 2 o.firstChild.TEXT_NODE constant is N/A in IE and O7 */
- ((typeof oElement.firstChild.TEXT_NODE != "undefined"
- && oElement.firstChild.TEXT_NODE)
- || 3))
- {
- sResult = oElement.firstChild.nodeValue;
- }
- }
- else
- {
- if (typeof oElement.innerText != "undefined")
- {
- sResult = oElement.innerText;
- }
-
- if ((bHTML || typeof oElement.innerText == "undefined")
- && typeof oElement.innerHTML != "undefined")
- {
- sResult = oElement.innerHTML;
- }
- }
- }
-
- return sResult;
-};
-
-/**
- * Specifies the content of an HTMLElement object.
- *
- * @author (C) 2003-2005, 2010 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @param {HTMLElement} oElement
- * Element which content is to be changed.
- * @param {string} sNodeValue
- * New content of the element.
- * @return {boolean}
- * <code>true</code> if successful, <code>false</code>
- * otherwise.
- */
-jsx.dom.setCont = function (oElement, sNodeValue) {
- if (oElement)
- {
- /* DOM Level 2 Core */
- if (typeof oElement.firstChild != "undefined")
- {
- oElement.firstChild.nodeValue = sNodeValue;
- return true;
- }
- else if (typeof oElement.nodeValue != "undefined")
- {
- oElement.nodeValue = sNodeValue;
- return true;
- }
-
- /* IE4 DOM */
- else if (typeof oElement.innerText != "undefined")
- {
- oElement.innerText = sNodeValue;
- return true;
- }
-
- /* NS4 DOM */
- else if (jsx.dom.isNS4DOM
- && oElement.document
- && oElement.document.open
- && oElement.document.write
- && oElement.document.close)
- {
- oElement.document.open();
- oElement.document.write(sNodeValue);
- oElement.document.close();
- return true;
- }
- }
-
- return false;
-};
-
-/**
- * Returns the text content of a document node.
- *
- * @author
- * (C) 2005 Thomas Lahn <dhtml.js@PointedEars.de>
- * @param {Node} oNode
- * Reference to the document node.
- * @param {boolean} bGetHTML (optional)
- * If <code>true</code>, returns the HTML content instead of
- * the text content in case the latter cannot be retrieved.
- * @return {string}
- * The text content of @{(oNode)}.
- * @todo Duplicate of getCont(..., false)?
- */
-jsx.dom.getContent = function (oNode, bGetHTML) {
- var text = "";
-
- if (oNode)
- {
- /* W3C DOM Level 3 */
- if (typeof oNode.textContent != "undefined")
- {
- text = oNode.textContent;
- }
-
- /* W3C DOM Level 2 */
- else if (oNode.childNodes && oNode.childNodes.length)
- {
- for (var i = oNode.childNodes.length; i--;)
- {
- var o = oNode.childNodes[i];
- if (o.nodeType == ((typeof Node != "undefined" && Node.TEXT_NODE)
- || 3))
- {
- text = o.nodeValue + text;
- }
- else
- {
- text = arguments.callee(o) + text;
- }
- }
- }
-
- /* proprietary: IE4+ */
- else if (typeof oNode.innerText != "undefined")
- {
- text = oNode.innerText;
- }
- }
-
- return text;
-};
-
-/**
- * Sets the text content of a document node.
- *
- * @author
- * (C) 2005 Thomas Lahn <dhtml.js@PointedEars.de>
- * @param {Node} oNode
- * Reference to the document node.
- * @param {string} sContent
- * @return {boolean}
- * <code>true</code> if successful, <code<false</code> otherwise.
- */
-jsx.dom.setTextContent = function (oNode, sContent) {
- var result = false;
-
- if (oNode)
- {
- /* W3C DOM Level 3 */
- if (typeof oNode.textContent != "undefined")
- {
- oNode.textContent = sContent;
- result = (oNode.textContent == sContent);
- }
-
- /* W3C DOM Level 2 */
- else if (oNode.removeChild && oNode.firstChild)
- {
- while (oNode.firstChild)
- {
- oNode.removeChild(oNode.firstChild);
- }
-
- result = !!oNode.appendChild(document.createTextNode(sContent));
- }
-
- /* proprietary: IE4+ */
- else if (typeof oNode.innerText != "undefined")
- {
- oNode.innerText = sContent;
- result = (oNode.innerText == sContent);
- }
- }
-
- return result;
-};
-
-/**
- * Retrieves the value of an attribute of an HTMLElement object
- * that matches certain criteria.
- *
- * @author
- * (C) 2003, 2008, 2010 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @param {HTMLElement} oElement
- * @param {string} sAttrName
- * Name of the attribute from which the value
- * should be retrieved.
- * @return {any}
- * The value of the object if <code>sType</code> is "id",
- * or if it is "name" or "tagname" and <code>index</code>
- * is specified;
- * a null-string if no matching object exists or if the DOM
- * does not provide retrieval of the attribute's values.
- */
-jsx.dom.getAttr = function (oElement, sAttrName) {
- var result = "";
-
- if (oElement)
- {
- if (jsx.object.isMethod(oElement, "getAttribute"))
- {
- result = oElement.getAttribute(sAttrName);
- }
- else if (jsx.dom.isNS4DOM)
- {
- result = oElement[sAttrName];
- }
- }
-
- return result;
-};
-
-jsx.dom.attrMap = {
- alink: "aLink",
- accesskey: "accessKey",
- bgcolor: "bgColor",
- cellpadding: "cellPadding",
- cellspacing: "cellSpacing",
- "char": "ch",
- charoff: "chOff",
- "class": "className",
- codebase: "codeBase",
- codetype: "codeType",
- colspan: "colSpan",
- datetime: "dateTime",
- frameborder: "frameBorder",
- "for": "htmlFor",
- ismap: "isMap",
- longdesc: "longDesc",
- maxlength: "maxLength",
- marginheight: "marginHeight",
- marginwidth: "marginWidth",
- nohref: "noHref",
- noresize: "noResize",
- noshade: "noShade",
- nowrap: "noWrap",
- readonly: "readOnly",
- rowspan: "rowSpan",
- tabindex: "tabIndex",
- usemap: "useMap",
- valuetype: "valueType",
- vlink: "vLink"
-};
-
-
-/**
- * Sets the value of an attribute of an HTMLElement object.
- *
- * @author
- * (C) 2003, 2006 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @param o
- * @param {string} sAttrName
- * Name of the attribute for which the value should be set.
- * Attribute names for which an ECMAScript language binding
- * is defined in W3C DOM Level 2 HTML, are automatically
- * mapped to the corresponding element object property.
- * All attribute names are automatically mapped to their
- * camelCased equivalent.
- *
- * Semicolon-separated style property declarations (in
- * form of colon-separated name-value pairs each) of a
- * <code>style</code> attribute value are mapped to the
- * corresponding properties of the object referenced by
- * the <code>style</code> property of the element object.
- * Declarations are evaluated from left to right, where
- * property values complement or replace the previously
- * defined ones.
- * @param attrValue
- * Value of the attribute to be set. The value is
- * converted to number if it can be interpreted as such.
- * @return {any}
- * The value of the attribute of the element object;
- * a null-string if no matching object exists or if the DOM
- * does not provide retrieval of the attribute's values.
- */
-jsx.dom.setAttr = function (o, sAttrName, attrValue) {
- var result = "";
-
- if (o && sAttrName)
- {
- var attrMap = jsx.dom.attrMap;
-
- /* camel-case specific attribute names */
- if (typeof attrMap[sAttrName] != "undefined")
- {
- sAttrName = attrMap[sAttrName];
- }
-
- var strToValue =
- /**
- * Converts a string, if possible, to a number
- *
- * @param {string} s
- * @return {string|number}
- * The converted value
- */
- function (s) {
- s = s.replace(/^["']|["']$/g, "");
- return isNaN(s) ? s : +s;
- };
-
- if (typeof attrValue != "undefined")
- {
- attrValue = strToValue(attrValue);
- if (sAttrName == "style" && typeof attrValue == "string")
- {
- var styleProps = attrValue.split(/\s*;\s*/);
- for (var i = 0, len = styleProps.length; i < len; i++)
- {
- var
- stylePair = styleProps[i].split(/\s*:\s*/),
- stylePropName = stylePair[0].toLowerCase();
-
- jsx.dom.css.setStyleProperty(o, stylePropName,
- strToValue(stylePair[1]));
- result = jsx.dom.css.getStyleProperty(o, stylePropName);
- }
- }
- else
- {
- result = o[sAttrName] = attrValue;
- }
- }
- else if (!(o[sAttrName] = true))
- {
- result = o[sAttrName] = sAttrName;
- }
- }
-
- return result;
-};
-
-/**
- * Creates an element of the type specified, using the
- * <code>document.createElement()</code> method if supported.
- * This method works with MSIE, too, for if JScript is used,
- * it is tried to use the start tag as is instead of passing
- * only the element type, and adding properties later.
- *
- * @function
- * @author
- * &copy; 2004, 2006, 2010 Thomas Lahn &lt;dhtml.js@PointedEars.de&gt;
- * @see <a href="dom2-core#ID-2141741547">DOM Level 2 Core: Document::createElement()</a>
- * @see <a href="msdn#workshop/author/dhtml/reference/methods/createelement.asp">MSDN Library: createElement()</a>
- */
-jsx.dom.createElement = (function () {
- var _setAttr = jsx.dom.setAttr;
-
- /**
- * @param {string} sTag
- * Start tag or element type of the element to be created.
- * Passing a start tag even works if the UA is not MSIE,
- * as attributes and values given are parsed from left to
- * right into the corresponding element object properties.
- * @return {Element}
- * A reference to a new <code>Element</code> object with the
- * <code>nodeName</code> property set to <code>sTagName</code>,
- * and the <code>localName</code>, <code>prefix</code>,
- * and <code>namespaceURI</code> properties set to
- * <code>null</code>.
- */
- return function (sTag) {
- var o = null;
-
- if (sTag
- && typeof document != "undefined"
- && jsx.object.isMethod(document, "createElement"))
- {
- /*@cc_on @*/
- /*@if (@_jscript)
- o = document.createElement(sTag);
- @end @*/
-
- if (!o)
- {
- /* NOTE: Uses RegExp() to work around misconfigured PHP (short_open_tag=1) */
- var aTagComponents = sTag.replace(new RegExp("^<\?\\s*|\\s*>?$", "g"), "")
- .replace(/\s*=\s*/g, "=").split(/\s+/);
- o = document.createElement(aTagComponents[0]);
- if (o)
- {
- aTagComponents.shift();
- var attrs = aTagComponents.join(" ");
- var m;
- while ((m = /([^\s=]+)\s*(=\s*(\S+)\s*)?/g.exec(attrs)))
- {
- _setAttr(o, m[1].toLowerCase(), m[3]);
- }
- }
- }
- }
-
- return o;
- };
-}());
-
-/**
- * Creates a node or several nodes from an object.
- *
- * Creates a DOM {@link Node} or an {@link Array} of several
- * <code>Node</code>s from the argument, depending on its type:
- * <table>
- * <thead>
- * <tr>
- * <th>Type</th>
- * <th>Return value</th>
- * </tr>
- * </thead>
- * <tbody>
- * <tr>
- * <th>{@link String}</th>
- * <td>{@link Text}</td>
- * </tr>
- * <tr>
- * <th><code>Array</code> of {@link Object} or <code>String</code></th>
- * <td><code>Array</code> of <code>Node</code>. The input
- * <code>Array</code>'s elements are processed recursively.</td>
- * </tr>
- * <tr>
- * <th><code>Object</code></th>
- * <td>{@link Element}. The following of the input
- * <code>Object</code>'s properties are considered:
- * <table>
- * <thead>
- * <th>Property</th>
- * <th>Expected type</th>
- * <th>Meaning</th>
- * </thead>
- * <tbody>
- * <tr>
- * <th><code><var>elementType</var></code> or
- * <code><var>type</var></code></th>
- * <td><code>String</code></td>
- * <td>Element type (case-sensitivity depends on
- * the document type)</td>
- * </tr>
- * <!--<tr>
- * <th><code><var>attributes</var></code></th>
- * <td><code>Object</code></td>
- * <td>Attributes of the element. All attributes
- * are created in the <code>null</code> namespace.</td>
- * </tr>-->
- * <tr>
- * <th><code><var>properties</var></code></th>
- * <td><code>Object</code></td>
- * <td>Properties of the element object. The property
- * <code>style</code> is handled specially: Its
- * value should be an <code>Object</code> whose
- * property names are <code>style</code> property
- * names and whose property values are the
- * corresponding values, as supported by
- * {@link jsx.dom.css#setStyleProperty()}.
- * <!--Note that some properties may overwrite
- * attributes.-->
- * </tr>
- * <tr>
- * <th><code><var>childNodes</var></code></th>
- * <td><code>Array</code> of <code>Object</code>
- * or <code>String</code></td>
- * <td>Child nodes of the element node.
- * The elements of the <code>Array</code>
- * are processed recursively.
- * </tr>
- * </tbody>
- * </table></td>
- * </tr>
- * </tbody>
- * </table>
- * @function
- */
-jsx.dom.createElementFromObj = jsx.dom.createNodeFromObj =
-jsx.dom.createNodesFromObj = (function () {
- var _getKeys = jsx.object.getKeys;
- var _isArray = jsx.object.isArray;
- var _isHostMethod = jsx.object.isHostMethod;
-
- /**
- * @param {Array|Object} data
- * @return TextNode|Array[Node]|Element
- */
- return function (data) {
- if (typeof data.valueOf() == "string")
- {
- return document.createTextNode(data);
- }
-
- /* Support ES5 strict mode */
- var me = jsx.dom.createNodeFromObj;
-
- /* If input is an Array, output is an Array of Nodes */
- if (_isArray(data))
- {
- var a = [];
-
- for (var i = 0, len = data.length; i < len; ++i)
- {
- a[i] = me(data[i]);
- }
-
- return a;
- }
-
- var el = document.createElement(data.elementType || data.type);
- if (!el)
- {
- return null;
- }
-
-// var attributes = data.attributes;
-// if (attributes && _isHostMethod(el, "setAttribute"))
-// {
-// var keys = _getKeys(attributes);
-//
-// for (var i = 0, len = keys.length; i < len; ++i)
-// {
-// var attrName = keys[i];
-// el.setAttribute(attrName, attributes[attrName]);
-// }
-// }
-
- var properties = data.properties;
- if (properties)
- {
- keys = _getKeys(properties);
-
- for (i = 0, len = keys.length; i < len; ++i)
- {
- var propName = keys[i];
-
- if (propName == "style")
- {
- var style = properties[propName];
- var _setStyleProperty = jsx.object.getFeature(jsx.dom, "css", "setStyleProperty");
- if (typeof style != "string" && typeof _setStyleProperty != "function")
- {
- jsx.warn("JSX:dom/css.js:jsx.dom.css.setStyleProperty()"
- + " is recommended for setting style object properties");
- el[propName] = style;
- }
- else
- {
- var styleKeys = _getKeys(style);
- for (var i = 0, len = styleKeys.length; i < len; ++i)
- {
- var stylePropName = styleKeys[i];
- _setStyleProperty(el, stylePropName, style[stylePropName]);
- }
- }
- }
- else
- {
- el[propName] = properties[propName];
- }
- }
- }
-
- var nodes = data.childNodes;
- for (var i = 0, len = nodes && nodes.length; i < len; ++i)
- {
- el.appendChild(me(nodes[i]));
- }
-
- return el;
- };
-}());
-
-/**
- * Removes all occurences of a class name from the
- * <code>class</code> attribute of an {@link Element}.
- *
- * For compatibility, if possible removes the <code>class</code>
- * attribute if it is empty afterwards.
- *
- * @param {Element} o
- * @param {string} sClassName
- * @return {boolean}
- * <code>true</code> if successful, <code>false</code> otherwise.
- */
-jsx.dom.removeClassName = function (o, sClassName) {
- var sRxClassName = "(^\\s*|\\s+)" + sClassName + "(\\s*$|(\\s))";
-
- if (jsx.object.isHostMethod(o, "classList", "remove"))
- {
- /* W3C DOM Level 4 */
- o.classList.remove(sClassName);
- }
- else
- {
- var curClassNames = o.className;
- var newClassNames = curClassNames.replace(
- new RegExp(sRxClassName, "g"),
- "$3");
- o.className = newClassNames;
-
- if (!newClassNames && jsx.object.isMethod(o, "removeAttribute"))
- {
- o.removeAttribute("class");
- }
- }
-
- return !((new RegExp(sRxClassName)).test(o.className));
-};
-
-jsx.dom.addClassName = (function () {
- var _removeClassName = jsx.dom.removeClassName;
-
- /**
- * Adds a class name to the <code>class</code> attribute of
- * an {@link Element}.
- *
- * @param {Element} o
- * @param {string} sClassName
- * @param {boolean} bRemove
- * If the class name is already there, and this argument is
- * <code>true</code>, all instances of it are removed first.
- * If the class is there and this argument is <code>false</code>,
- * exit without changing anything. The default is <code>false</code>,
- * which is more efficient.
- * @return {boolean}
- * <code>true</code> if the class name could be added successfully or
- * was already there, <code>false</code> otherwise.
- */
- function _addClassName (o, sClassName, bRemove)
- {
- var rx = new RegExp("(^\\s*|\\s+)" + sClassName + "(\\s*$|\\s)");
-
- if (bRemove)
- {
- _removeClassName(o, sClassName);
- }
- else if (rx.test(o.className))
- {
- return true;
- }
-
- if (sClassName)
- {
- if (jsx.object.isHostMethod(o, "classList", "add"))
- {
- /* W3C DOM Level 4 */
- o.classList.add(sClassName);
- }
- else
- {
- if (/\S/.test(o.className))
- {
- o.className += " " + sClassName;
- }
- else
- {
- o.className = sClassName;
- }
- }
-
- return rx.test(o.className);
- }
- }
-
- return _addClassName;
-}());
-
-/**
- * Appends several child nodes to a parent node in the specified order.
- *
- * @param {Node} parentNode
- * @param {NodeList|Array} childNodes
- * @return {boolean}
- * <code>true</code> on success, <code>false</code> otherwise.
- */
-jsx.dom.appendChildren = function (parentNode, childNodes) {
- if (parentNode)
- {
- for (var i = 0, len = childNodes.length; i < len; ++i)
- {
- parentNode.appendChild(childNodes[i]);
- }
-
- return true;
- }
-
- return false;
-};
-
-/**
- * Removes several child nodes of a parent node in reverse order.
- *
- * @param {Node} parentNode
- * @param {NodeList|Array} childNodes (optional)
- * The child nodes to be deleted. If not provided,
- * all child nodes of <var>parentNode</var> are deleted,
- * the table-safe equivalent to
- * <code><var>parentNode</var>.innerHTML = "";</code>
- * @return {boolean}
- * <code>true</code> on success, <code>false</code> otherwise.
- */
-jsx.dom.removeChildren = function (parentNode, childNodes) {
- if (parentNode)
- {
- if (arguments.length < 2)
- {
- childNodes = parentNode.childNodes;
- }
-
- for (var i = childNodes.length; i--;)
- {
- parentNode.removeChild(childNodes[i]);
- }
-
- return true;
- }
-
- return false;
-};
-
-jsx.dom.html2nodes = function (sHTML) {
- var m,
- rx = /(<([^\s>]+)(\s+[^>]*)?>)|([^<]+)/g,
- node = document.createElement("html");
-
- while ((m = rx.exec(sHTML)))
- {
- if (m[1])
- {
- if (m[2].charAt(0) !== "/")
- {
- var newNode = document.createElement(m[2]);
- node.appendChild(newNode);
- node = newNode;
- }
- else
- {
- node = node.parentNode;
- }
- }
- else
- {
- node.appendChild(document.createTextNode(m[4]));
- }
- }
-
- return node;
-};
-
-jsx.dom.HTMLSerializer = (
- function () {
-
- }
-).extend("Object", {
- serializeToString: (function () {
- var elemInfo = {
- 'a': {
- attribs: ["name", "href", "hreflang", "type", "rel", "rev", "charset",
- "id", "class", "lang", "title", "style", "shape", "coords",
- "onfocus", "onblur", "onclick", "ondblclick", "onmousedown",
- "onmouseup", "onmouseover", "onmousemove", "onmouseout",
- "onkeypress", "onkeydown", "onkeyup",
- "target", "tabindex", "accesskey"]
- },
- 'area': {
- empty: false
- },
- 'base': {
- empty: false
- },
- 'basefont': {
- empty: false
- },
- 'br': {
- empty: false
- },
- 'col': {
- empty: false
- },
- 'frame': {
- empty: false
- },
- 'hr': {
- empty: false
- },
- 'img': {
- empty: true
- },
- 'input': {
- empty: false
- },
- 'isindex': {
- empty: false
- },
- 'link': {
- empty: false
- },
- 'meta': {
- empty: false
- },
- 'param': {
- empty: true
- }
- };
-
- return function (oNode, bIncludeProprietary) {
- var me = arguments.callee;
-
- if (oNode.tagName)
- {
- var
- t = oNode.tagName.toLowerCase(),
- startTag = "<" + t,
- content = [],
- endTag = "";
-
- for (var i = 0, c = oNode.childNodes, len = c && c.length; i < len; i++)
- {
- content.push(me(oNode, bIncludeProprietary));
- }
-
- if (typeof elemInfo[t] != "undefined" && !elemInfo[t].empty)
- {
- endTag = "</" + t + ">";
- }
-
- return startTag + content.join("") + endTag;
- }
-
- return oNode.textContent;
- };
- })()
-});
-
-/**
- * Returns the first child node of another node.
- * <p>
- * NOTE: This method was written to support the MSHTML 4 DOM as well as
- * newer DOMs. It is <em>NOT</em> intended to work around the issue that
- * MSHTML removes white-space text nodes from the document tree, while
- * standards-compliant DOMs do not. In particular, it does <em>NOT</em>
- * return the first child <em>element</em> node, and return values do vary
- * across DOMs.
- * </p>
- * @param {Node} oNode
- * @return {Node} The first child node of another node.
- */
-jsx.dom.getFirstChild = function (oNode) {
- var result = null;
-
- if (oNode)
- {
- if (oNode.firstChild)
- {
- result = oNode.firstChild;
- }
- else if (oNode.document && oNode.document.all)
- {
- result = oNode.document.all(0);
- }
- }
-
- return result;
-};
-
-/**
- * Returns the parent node of a node
- *
- * @param {Node} oNode
- * @return {Node} The parent node of <var>oNode</var>
- */
-jsx.dom.getParent = function (oNode) {
- var result = null;
-
- if (oNode)
- {
- if (oNode.parentNode)
- {
- result = oNode.parentNode;
- }
- else if (oNode.parentElement)
- {
- result = oNode.parentElement;
- }
- }
-
- return result;
-};
-
-/**
- * Loads a script resource asynchonrously by appending
- * a <code>script</code> element to the current (X)HTML document.
- *
- * A <code>script</code> element is being created and appended as
- * child to the <code>body</code> element or the <code>head</code>
- * element of the document, whichever is available first. In a
- * frameset document, <code>document.body</code> refers to the
- * topmost <code>frameset</code> element object; in that case,
- * it is attempted to find a <code>body</code> element by other
- * means. If that fails, it means that there either is no such
- * element, or that the element object is inaccessible because
- * it is disabled by the frameset. In that case the
- * <code>script</code> element is appended to the <code>head</code>
- * element instead.
- *
- * Note that previous versions of this method appended to the
- * <code>head</code> element only. However, this limited its use
- * to scripts that did not modify the body content. You may still
- * not load such scripts with this method if the document has
- * been loaded and the script resource uses
- * <code>document.write()</code>. This method intentionally does
- * not use <code>document.write()</code> to avoid the possibility
- * that a loaded document could be overwritten.
- *
- * NOTE: Tested successfully with MSIE and Mozilla/5.0; however,
- * do not rely on that the script was included, but <em>test</em>
- * for it.
- *
- * @author
- * (C) 2004-2009, 2013 Thomas Lahn <dhtml.js@PointedEars.de>,
- * 2004 Ulrich Kritzner <droeppez@web.de>
- *
- * @requires jsx.object#isMethod()
- * @param {string} sURI
- * URI of the script resource to be loaded.
- * @param {string} sType = "text/javascript"
- * MIME type of the script to be loaded. Used as value of the
- * <code>type</code> attribute.
- * @param {string} sLanguage (optional)
- * Value of the <code>language</code> attribute (deprecated in
- * HTML 4.01 and XHTML 1.0, absent from XHTML 1.1 and later
- * versions) to specify the version of the script language.
- * Unused by default.
- * @param {boolean} bReload = false
- * If <code>true</code>Force an already loaded script to be reloaded,
- * i.e. another <code>script</code> element with the same URI
- * in the <code>src</code> attribute to be added;
- * if <code>false</code> (default), the attempt to load a script
- * that has already been loaded fails silently.
- * @return {boolean}
- * <code>false</code> if the script could not be loaded,
- * <code>true</code> otherwise.
- */
-jsx.dom.loadScript =
- function jsx_dom_loadScript (sURI, sType, sLanguage, bReload) {
- var
- jsx_object = jsx.object,
- result = false;
-
- if (typeof jsx_dom_loadScript.registry != "undefined"
- && jsx_object.getProperty(jsx_dom_loadScript.registry, sURI, false)
- && !bReload)
- {
- return true;
- }
-
- var parent = document.body;
- if (!parent || parent.tagName.toLowerCase() === "frameset")
- {
- parent = jsx.dom.getElemByTagName("script", 0);
- if (!parent)
- {
- parent = document.head || jsx.dom.getElemByTagName("head", 0);
- }
-
- if (!parent)
- {
- return false;
- }
- }
-
- if (!jsx_object.isHostMethod(document, "createElement"))
- {
- return false;
- }
-
- var oScript = document.createElement("script");
- if (!oScript)
- {
- return false;
- }
-
- /* no exception handling for backwards compatibility reasons */
- if (typeof oScript.src != "undefined")
- {
- oScript.src = sURI;
- }
-
- if (typeof oScript.type != "undefined")
- {
- oScript.type = sType || "text/javascript";
- }
-
- if (sLanguage)
- {
- oScript.language = sLanguage;
- }
-
- if (typeof oScript.defer != "undefined")
- {
- oScript.defer = true;
- }
-
- if (jsx_object.isHostMethod(parent, "appendChild"))
- {
- parent.appendChild(oScript);
- result = (
- typeof parent.lastChild != "undefined"
- && parent.lastChild == oScript);
- }
- else if (jsx_object.isHostMethod(parent, "insertAdjacentElement"))
- {
- parent.insertAdjacentElement("beforeEnd", oScript);
- result = true;
- }
-
- if (result)
- {
- if (typeof jsx_dom_loadScript.registry == "undefined")
- {
- jsx_dom_loadScript.registry = {};
- }
-
- jsx_dom_loadScript.registry[sURI] = true;
- }
-
- return result;
- };
-
-/**
- * Retrieves descendant focusable elements in order of their
- * "tabindex" attribute.
- *
- * @author
- * (C) 2004 Thomas Lahn <dhtml.js@PointedEars.de>
- * @requires
- * http://pointedears.de/scripts/collection.js
- * @param {Document|Element} o (optional)
- * Reference to a {@link dom2-core#Document Document} or
- * {@link dom2-core#Element Element} object from which to retrieve
- * descendant elements. If omitted or evaluated to
- * <code>false</code>, it is tried to use the calling object.
- * @return {Collection}
- * A reference to a {@link #Collection} object containing
- * the descendant elements of <var>o</var> or the calling
- * {@link dom2-core#Document Document}/{@link dom2-core#Element Element}
- * object in "tabindex" order: Elements with "tabindex" > 0 come first,
- * followed by elements with "tabindex" == 0 or where either
- * "tabindex" is not set or not applicable. Note: An element
- * with a "tabindex" of 1 will will be the first element
- * in the resulting collection but for design reasons will
- * have an index of 0 (but since the Collection prototype
- * provides an iterator, this does not need to disturb you).
- * Additional note: Unlike specified, disabled elements will
- * participate in the tabbing order (so they can be enabled
- * later without this method to be re-called.)
- */
-jsx.dom.getElementsByTabIndex = function (o) {
- var aIndexedElements = new Array();
- var aUnindexedElements = new Array();
-
- /* makes the method applicable to Document and Element objects */
- if (!o
- && typeof this.constructor != "undefined"
- && /Document|Element/.test(this.constructor))
- {
- o = this;
- }
-
- if (jsx.object.isMethod(o, "getElementsByTagName"))
- {
- var es = o.getElementsByTagName("*");
-
- if (es && typeof es.length != "undefined")
- {
- var l = es.length;
-
- for (var i = 0, e; i < l; i++)
- {
- e = es[i];
-
- if (typeof e.tabIndex != "undefined")
- {
- /* !null && !0 */
- if (e.tabIndex)
- {
- /*
- * tabindex="1" --> index == 0; use e.tabIndex
- * and a "zero dummy" if you do not like this
- */
- aIndexedElements[e.tabIndex - 1] = e;
- }
- else
- {
- aUnindexedElements[aUnindexedElements.length] = e;
- }
- }
- }
- }
- }
-
- return new Collection(aIndexedElements.concat(aUnindexedElements));
-};
-
-if (typeof jsx.types != "undefined"
- && jsx.types.isFeature("HTMLDocument", "prototype")
- && !jsx.object.isMethod(HTMLDocument.prototype, "getElementsByTabIndex"))
-{
- HTMLDocument.prototype.getElementsByTabIndex = jsx.dom.getElementsByTabIndex;
-}
-
-if (typeof jsx.types != "undefined"
- && jsx.types.isFeature("HTMLElement", "prototype")
- && !jsx.object.isMethod(HTMLElement.prototype, "getElementsByTabIndex"))
-{
- HTMLElement.prototype.getElementsByTabIndex = jsx.dom.getElementsByTabIndex;
-}
-
-jsx.dom.isDescendantOfOrSelf = function (node, ancestor) {
- if (arguments.length < 2)
- {
- jsx.throwThis(null, "No ancestor provided");
- }
-
- do
- {
- if (node == ancestor)
- {
- return true;
- }
- }
- while ((node = node.parentNode));
-
- return false;
-};
-
-/**
- * Applies hyphenation to the context node.
- *
- * Improves the readability of text by inserting soft hyphens
- * in text nodes as specified by the {@link jsx.string#hyphenation}
- * dictionary.
- *
- * @function
- * @requires jsx.string.hyphenation#hyphenate()
- */
-jsx.dom.hyphenate = (function () {
- var _isArray = jsx.object.isArray;
- var _hyphenation, _hyphenate, _me;
-
- /**
- * @param {Array} contextNodes = document
- * Hyphenation is applied to these {@link Node}s and their
- * descendant text nodes. The default is the <code>Document</code>
- * node referred by the <code>document</code> property of the
- * next fitting object in the scope chain (usually the Global
- * Object).
- * @param {boolean} hyphenateAll
- * If a true-value,
- */
- return function (contextNodes, hyphenateAll) {
- /* imports */
- if (!_hyphenate)
- {
- _hyphenation = jsx.string.hyphenation;
- _hyphenate = _hyphenation.hyphenate;
- }
-
- _hyphenation.setHyphenateAll(hyphenateAll);
-
- if (!_me)
- {
- _me = jsx.dom.hyphenate;
- }
-
- /* optional arguments */
- if (typeof contextNodes == "undefined")
- {
- contextNodes = document;
- }
-
- if (!contextNodes)
- {
- return jsx.warn("jsx.dom.hyphenate: Invalid context node: " + contextNodes);
- }
-
- if (!_isArray(contextNodes))
- {
- contextNodes = [contextNodes];
- }
-
- for (var i = 0, len = contextNodes.length; i < len; ++i)
- {
- var contextNode = contextNodes[i];
-
- if (!contextNode)
- {
- jsx.warn("jsx.dom.hyphenate: Invalid context node " + (i + 1) + ": " + contextNode);
- continue;
- }
-
- for (var j = 0,
- nodes = contextNode.childNodes,
- len2 = nodes && nodes.length;
- j < len2;
- ++j)
- {
- var node = nodes[j];
-
- if (node.nodeType == 1)
- {
- _me(node, hyphenateAll);
- }
- else
- {
- node.nodeValue = _hyphenate(node.nodeValue, hyphenateAll);
- }
- }
- }
- };
-}());
\ No newline at end of file
/live/dom.js
Property changes:
Deleted: svn:keywords
## -1 +0,0 ##
-LastChangedDate LastChangedRevision Id
\ No newline at end of property
Index: live/compat.js
===================================================================
--- live/compat.js (revision 509)
+++ live/compat.js (nonexistent)
@@ -1,41 +0,0 @@
-var _global = jsx.global;
-var setErrorHandler = jsx.setErrorHandler;
-var clearErrorHandler = jsx.clearErrorHandler;
-
-var addProperties = jsx.object.addProperties = (function () {
- var rxObject = /^\s*(object|function)\s*$/i;
-
- return function (oSource, iFlags, oOwner) {
- if (rxObject.test(typeof iFlags))
- {
- oOwner = iFlags;
- iFlags = 0;
- }
-
- if (!oOwner)
- {
- oOwner = jsx.global;
- }
-
- return jsx.object.extend(oOwner, oSource, iFlags);
- };
-}());
-
-var isMethod = function () {
- for (var i = arguments.length; i--;)
- {
- if (!jsx.object.isMethod(arguments[i]))
- {
- return false;
- }
- }
-
- return true;
-};
-
-var isMethodType = jsx.object.isMethodType;
-var isInstanceOf = jsx.object.isInstanceOf;
-
-var types = jsx.types;
-
-var Collection = jsx.Collection;
\ No newline at end of file
/live/compat.js
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/UnicodeData.txt
===================================================================
--- live/UnicodeData.txt (revision 509)
+++ live/UnicodeData.txt (nonexistent)
@@ -1,24429 +0,0 @@
-0000;<control>;Cc;0;BN;;;;;N;NULL;;;;
-0001;<control>;Cc;0;BN;;;;;N;START OF HEADING;;;;
-0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;;
-0003;<control>;Cc;0;BN;;;;;N;END OF TEXT;;;;
-0004;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION;;;;
-0005;<control>;Cc;0;BN;;;;;N;ENQUIRY;;;;
-0006;<control>;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;;
-0007;<control>;Cc;0;BN;;;;;N;BELL;;;;
-0008;<control>;Cc;0;BN;;;;;N;BACKSPACE;;;;
-0009;<control>;Cc;0;S;;;;;N;CHARACTER TABULATION;;;;
-000A;<control>;Cc;0;B;;;;;N;LINE FEED (LF);;;;
-000B;<control>;Cc;0;S;;;;;N;LINE TABULATION;;;;
-000C;<control>;Cc;0;WS;;;;;N;FORM FEED (FF);;;;
-000D;<control>;Cc;0;B;;;;;N;CARRIAGE RETURN (CR);;;;
-000E;<control>;Cc;0;BN;;;;;N;SHIFT OUT;;;;
-000F;<control>;Cc;0;BN;;;;;N;SHIFT IN;;;;
-0010;<control>;Cc;0;BN;;;;;N;DATA LINK ESCAPE;;;;
-0011;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL ONE;;;;
-0012;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL TWO;;;;
-0013;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL THREE;;;;
-0014;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL FOUR;;;;
-0015;<control>;Cc;0;BN;;;;;N;NEGATIVE ACKNOWLEDGE;;;;
-0016;<control>;Cc;0;BN;;;;;N;SYNCHRONOUS IDLE;;;;
-0017;<control>;Cc;0;BN;;;;;N;END OF TRANSMISSION BLOCK;;;;
-0018;<control>;Cc;0;BN;;;;;N;CANCEL;;;;
-0019;<control>;Cc;0;BN;;;;;N;END OF MEDIUM;;;;
-001A;<control>;Cc;0;BN;;;;;N;SUBSTITUTE;;;;
-001B;<control>;Cc;0;BN;;;;;N;ESCAPE;;;;
-001C;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR FOUR;;;;
-001D;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR THREE;;;;
-001E;<control>;Cc;0;B;;;;;N;INFORMATION SEPARATOR TWO;;;;
-001F;<control>;Cc;0;S;;;;;N;INFORMATION SEPARATOR ONE;;;;
-0020;SPACE;Zs;0;WS;;;;;N;;;;;
-0021;EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
-0022;QUOTATION MARK;Po;0;ON;;;;;N;;;;;
-0023;NUMBER SIGN;Po;0;ET;;;;;N;;;;;
-0024;DOLLAR SIGN;Sc;0;ET;;;;;N;;;;;
-0025;PERCENT SIGN;Po;0;ET;;;;;N;;;;;
-0026;AMPERSAND;Po;0;ON;;;;;N;;;;;
-0027;APOSTROPHE;Po;0;ON;;;;;N;APOSTROPHE-QUOTE;;;;
-0028;LEFT PARENTHESIS;Ps;0;ON;;;;;Y;OPENING PARENTHESIS;;;;
-0029;RIGHT PARENTHESIS;Pe;0;ON;;;;;Y;CLOSING PARENTHESIS;;;;
-002A;ASTERISK;Po;0;ON;;;;;N;;;;;
-002B;PLUS SIGN;Sm;0;ES;;;;;N;;;;;
-002C;COMMA;Po;0;CS;;;;;N;;;;;
-002D;HYPHEN-MINUS;Pd;0;ES;;;;;N;;;;;
-002E;FULL STOP;Po;0;CS;;;;;N;PERIOD;;;;
-002F;SOLIDUS;Po;0;CS;;;;;N;SLASH;;;;
-0030;DIGIT ZERO;Nd;0;EN;;0;0;0;N;;;;;
-0031;DIGIT ONE;Nd;0;EN;;1;1;1;N;;;;;
-0032;DIGIT TWO;Nd;0;EN;;2;2;2;N;;;;;
-0033;DIGIT THREE;Nd;0;EN;;3;3;3;N;;;;;
-0034;DIGIT FOUR;Nd;0;EN;;4;4;4;N;;;;;
-0035;DIGIT FIVE;Nd;0;EN;;5;5;5;N;;;;;
-0036;DIGIT SIX;Nd;0;EN;;6;6;6;N;;;;;
-0037;DIGIT SEVEN;Nd;0;EN;;7;7;7;N;;;;;
-0038;DIGIT EIGHT;Nd;0;EN;;8;8;8;N;;;;;
-0039;DIGIT NINE;Nd;0;EN;;9;9;9;N;;;;;
-003A;COLON;Po;0;CS;;;;;N;;;;;
-003B;SEMICOLON;Po;0;ON;;;;;N;;;;;
-003C;LESS-THAN SIGN;Sm;0;ON;;;;;Y;;;;;
-003D;EQUALS SIGN;Sm;0;ON;;;;;N;;;;;
-003E;GREATER-THAN SIGN;Sm;0;ON;;;;;Y;;;;;
-003F;QUESTION MARK;Po;0;ON;;;;;N;;;;;
-0040;COMMERCIAL AT;Po;0;ON;;;;;N;;;;;
-0041;LATIN CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0061;
-0042;LATIN CAPITAL LETTER B;Lu;0;L;;;;;N;;;;0062;
-0043;LATIN CAPITAL LETTER C;Lu;0;L;;;;;N;;;;0063;
-0044;LATIN CAPITAL LETTER D;Lu;0;L;;;;;N;;;;0064;
-0045;LATIN CAPITAL LETTER E;Lu;0;L;;;;;N;;;;0065;
-0046;LATIN CAPITAL LETTER F;Lu;0;L;;;;;N;;;;0066;
-0047;LATIN CAPITAL LETTER G;Lu;0;L;;;;;N;;;;0067;
-0048;LATIN CAPITAL LETTER H;Lu;0;L;;;;;N;;;;0068;
-0049;LATIN CAPITAL LETTER I;Lu;0;L;;;;;N;;;;0069;
-004A;LATIN CAPITAL LETTER J;Lu;0;L;;;;;N;;;;006A;
-004B;LATIN CAPITAL LETTER K;Lu;0;L;;;;;N;;;;006B;
-004C;LATIN CAPITAL LETTER L;Lu;0;L;;;;;N;;;;006C;
-004D;LATIN CAPITAL LETTER M;Lu;0;L;;;;;N;;;;006D;
-004E;LATIN CAPITAL LETTER N;Lu;0;L;;;;;N;;;;006E;
-004F;LATIN CAPITAL LETTER O;Lu;0;L;;;;;N;;;;006F;
-0050;LATIN CAPITAL LETTER P;Lu;0;L;;;;;N;;;;0070;
-0051;LATIN CAPITAL LETTER Q;Lu;0;L;;;;;N;;;;0071;
-0052;LATIN CAPITAL LETTER R;Lu;0;L;;;;;N;;;;0072;
-0053;LATIN CAPITAL LETTER S;Lu;0;L;;;;;N;;;;0073;
-0054;LATIN CAPITAL LETTER T;Lu;0;L;;;;;N;;;;0074;
-0055;LATIN CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0075;
-0056;LATIN CAPITAL LETTER V;Lu;0;L;;;;;N;;;;0076;
-0057;LATIN CAPITAL LETTER W;Lu;0;L;;;;;N;;;;0077;
-0058;LATIN CAPITAL LETTER X;Lu;0;L;;;;;N;;;;0078;
-0059;LATIN CAPITAL LETTER Y;Lu;0;L;;;;;N;;;;0079;
-005A;LATIN CAPITAL LETTER Z;Lu;0;L;;;;;N;;;;007A;
-005B;LEFT SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING SQUARE BRACKET;;;;
-005C;REVERSE SOLIDUS;Po;0;ON;;;;;N;BACKSLASH;;;;
-005D;RIGHT SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING SQUARE BRACKET;;;;
-005E;CIRCUMFLEX ACCENT;Sk;0;ON;;;;;N;SPACING CIRCUMFLEX;;;;
-005F;LOW LINE;Pc;0;ON;;;;;N;SPACING UNDERSCORE;;;;
-0060;GRAVE ACCENT;Sk;0;ON;;;;;N;SPACING GRAVE;;;;
-0061;LATIN SMALL LETTER A;Ll;0;L;;;;;N;;;0041;;0041
-0062;LATIN SMALL LETTER B;Ll;0;L;;;;;N;;;0042;;0042
-0063;LATIN SMALL LETTER C;Ll;0;L;;;;;N;;;0043;;0043
-0064;LATIN SMALL LETTER D;Ll;0;L;;;;;N;;;0044;;0044
-0065;LATIN SMALL LETTER E;Ll;0;L;;;;;N;;;0045;;0045
-0066;LATIN SMALL LETTER F;Ll;0;L;;;;;N;;;0046;;0046
-0067;LATIN SMALL LETTER G;Ll;0;L;;;;;N;;;0047;;0047
-0068;LATIN SMALL LETTER H;Ll;0;L;;;;;N;;;0048;;0048
-0069;LATIN SMALL LETTER I;Ll;0;L;;;;;N;;;0049;;0049
-006A;LATIN SMALL LETTER J;Ll;0;L;;;;;N;;;004A;;004A
-006B;LATIN SMALL LETTER K;Ll;0;L;;;;;N;;;004B;;004B
-006C;LATIN SMALL LETTER L;Ll;0;L;;;;;N;;;004C;;004C
-006D;LATIN SMALL LETTER M;Ll;0;L;;;;;N;;;004D;;004D
-006E;LATIN SMALL LETTER N;Ll;0;L;;;;;N;;;004E;;004E
-006F;LATIN SMALL LETTER O;Ll;0;L;;;;;N;;;004F;;004F
-0070;LATIN SMALL LETTER P;Ll;0;L;;;;;N;;;0050;;0050
-0071;LATIN SMALL LETTER Q;Ll;0;L;;;;;N;;;0051;;0051
-0072;LATIN SMALL LETTER R;Ll;0;L;;;;;N;;;0052;;0052
-0073;LATIN SMALL LETTER S;Ll;0;L;;;;;N;;;0053;;0053
-0074;LATIN SMALL LETTER T;Ll;0;L;;;;;N;;;0054;;0054
-0075;LATIN SMALL LETTER U;Ll;0;L;;;;;N;;;0055;;0055
-0076;LATIN SMALL LETTER V;Ll;0;L;;;;;N;;;0056;;0056
-0077;LATIN SMALL LETTER W;Ll;0;L;;;;;N;;;0057;;0057
-0078;LATIN SMALL LETTER X;Ll;0;L;;;;;N;;;0058;;0058
-0079;LATIN SMALL LETTER Y;Ll;0;L;;;;;N;;;0059;;0059
-007A;LATIN SMALL LETTER Z;Ll;0;L;;;;;N;;;005A;;005A
-007B;LEFT CURLY BRACKET;Ps;0;ON;;;;;Y;OPENING CURLY BRACKET;;;;
-007C;VERTICAL LINE;Sm;0;ON;;;;;N;VERTICAL BAR;;;;
-007D;RIGHT CURLY BRACKET;Pe;0;ON;;;;;Y;CLOSING CURLY BRACKET;;;;
-007E;TILDE;Sm;0;ON;;;;;N;;;;;
-007F;<control>;Cc;0;BN;;;;;N;DELETE;;;;
-0080;<control>;Cc;0;BN;;;;;N;;;;;
-0081;<control>;Cc;0;BN;;;;;N;;;;;
-0082;<control>;Cc;0;BN;;;;;N;BREAK PERMITTED HERE;;;;
-0083;<control>;Cc;0;BN;;;;;N;NO BREAK HERE;;;;
-0084;<control>;Cc;0;BN;;;;;N;;;;;
-0085;<control>;Cc;0;B;;;;;N;NEXT LINE (NEL);;;;
-0086;<control>;Cc;0;BN;;;;;N;START OF SELECTED AREA;;;;
-0087;<control>;Cc;0;BN;;;;;N;END OF SELECTED AREA;;;;
-0088;<control>;Cc;0;BN;;;;;N;CHARACTER TABULATION SET;;;;
-0089;<control>;Cc;0;BN;;;;;N;CHARACTER TABULATION WITH JUSTIFICATION;;;;
-008A;<control>;Cc;0;BN;;;;;N;LINE TABULATION SET;;;;
-008B;<control>;Cc;0;BN;;;;;N;PARTIAL LINE FORWARD;;;;
-008C;<control>;Cc;0;BN;;;;;N;PARTIAL LINE BACKWARD;;;;
-008D;<control>;Cc;0;BN;;;;;N;REVERSE LINE FEED;;;;
-008E;<control>;Cc;0;BN;;;;;N;SINGLE SHIFT TWO;;;;
-008F;<control>;Cc;0;BN;;;;;N;SINGLE SHIFT THREE;;;;
-0090;<control>;Cc;0;BN;;;;;N;DEVICE CONTROL STRING;;;;
-0091;<control>;Cc;0;BN;;;;;N;PRIVATE USE ONE;;;;
-0092;<control>;Cc;0;BN;;;;;N;PRIVATE USE TWO;;;;
-0093;<control>;Cc;0;BN;;;;;N;SET TRANSMIT STATE;;;;
-0094;<control>;Cc;0;BN;;;;;N;CANCEL CHARACTER;;;;
-0095;<control>;Cc;0;BN;;;;;N;MESSAGE WAITING;;;;
-0096;<control>;Cc;0;BN;;;;;N;START OF GUARDED AREA;;;;
-0097;<control>;Cc;0;BN;;;;;N;END OF GUARDED AREA;;;;
-0098;<control>;Cc;0;BN;;;;;N;START OF STRING;;;;
-0099;<control>;Cc;0;BN;;;;;N;;;;;
-009A;<control>;Cc;0;BN;;;;;N;SINGLE CHARACTER INTRODUCER;;;;
-009B;<control>;Cc;0;BN;;;;;N;CONTROL SEQUENCE INTRODUCER;;;;
-009C;<control>;Cc;0;BN;;;;;N;STRING TERMINATOR;;;;
-009D;<control>;Cc;0;BN;;;;;N;OPERATING SYSTEM COMMAND;;;;
-009E;<control>;Cc;0;BN;;;;;N;PRIVACY MESSAGE;;;;
-009F;<control>;Cc;0;BN;;;;;N;APPLICATION PROGRAM COMMAND;;;;
-00A0;NO-BREAK SPACE;Zs;0;CS;<noBreak> 0020;;;;N;NON-BREAKING SPACE;;;;
-00A1;INVERTED EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
-00A2;CENT SIGN;Sc;0;ET;;;;;N;;;;;
-00A3;POUND SIGN;Sc;0;ET;;;;;N;;;;;
-00A4;CURRENCY SIGN;Sc;0;ET;;;;;N;;;;;
-00A5;YEN SIGN;Sc;0;ET;;;;;N;;;;;
-00A6;BROKEN BAR;So;0;ON;;;;;N;BROKEN VERTICAL BAR;;;;
-00A7;SECTION SIGN;Po;0;ON;;;;;N;;;;;
-00A8;DIAERESIS;Sk;0;ON;<compat> 0020 0308;;;;N;SPACING DIAERESIS;;;;
-00A9;COPYRIGHT SIGN;So;0;ON;;;;;N;;;;;
-00AA;FEMININE ORDINAL INDICATOR;Lo;0;L;<super> 0061;;;;N;;;;;
-00AB;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING GUILLEMET;;;;
-00AC;NOT SIGN;Sm;0;ON;;;;;N;;;;;
-00AD;SOFT HYPHEN;Cf;0;BN;;;;;N;;;;;
-00AE;REGISTERED SIGN;So;0;ON;;;;;N;REGISTERED TRADE MARK SIGN;;;;
-00AF;MACRON;Sk;0;ON;<compat> 0020 0304;;;;N;SPACING MACRON;;;;
-00B0;DEGREE SIGN;So;0;ET;;;;;N;;;;;
-00B1;PLUS-MINUS SIGN;Sm;0;ET;;;;;N;PLUS-OR-MINUS SIGN;;;;
-00B2;SUPERSCRIPT TWO;No;0;EN;<super> 0032;;2;2;N;SUPERSCRIPT DIGIT TWO;;;;
-00B3;SUPERSCRIPT THREE;No;0;EN;<super> 0033;;3;3;N;SUPERSCRIPT DIGIT THREE;;;;
-00B4;ACUTE ACCENT;Sk;0;ON;<compat> 0020 0301;;;;N;SPACING ACUTE;;;;
-00B5;MICRO SIGN;Ll;0;L;<compat> 03BC;;;;N;;;039C;;039C
-00B6;PILCROW SIGN;Po;0;ON;;;;;N;PARAGRAPH SIGN;;;;
-00B7;MIDDLE DOT;Po;0;ON;;;;;N;;;;;
-00B8;CEDILLA;Sk;0;ON;<compat> 0020 0327;;;;N;SPACING CEDILLA;;;;
-00B9;SUPERSCRIPT ONE;No;0;EN;<super> 0031;;1;1;N;SUPERSCRIPT DIGIT ONE;;;;
-00BA;MASCULINE ORDINAL INDICATOR;Lo;0;L;<super> 006F;;;;N;;;;;
-00BB;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING GUILLEMET;;;;
-00BC;VULGAR FRACTION ONE QUARTER;No;0;ON;<fraction> 0031 2044 0034;;;1/4;N;FRACTION ONE QUARTER;;;;
-00BD;VULGAR FRACTION ONE HALF;No;0;ON;<fraction> 0031 2044 0032;;;1/2;N;FRACTION ONE HALF;;;;
-00BE;VULGAR FRACTION THREE QUARTERS;No;0;ON;<fraction> 0033 2044 0034;;;3/4;N;FRACTION THREE QUARTERS;;;;
-00BF;INVERTED QUESTION MARK;Po;0;ON;;;;;N;;;;;
-00C0;LATIN CAPITAL LETTER A WITH GRAVE;Lu;0;L;0041 0300;;;;N;LATIN CAPITAL LETTER A GRAVE;;;00E0;
-00C1;LATIN CAPITAL LETTER A WITH ACUTE;Lu;0;L;0041 0301;;;;N;LATIN CAPITAL LETTER A ACUTE;;;00E1;
-00C2;LATIN CAPITAL LETTER A WITH CIRCUMFLEX;Lu;0;L;0041 0302;;;;N;LATIN CAPITAL LETTER A CIRCUMFLEX;;;00E2;
-00C3;LATIN CAPITAL LETTER A WITH TILDE;Lu;0;L;0041 0303;;;;N;LATIN CAPITAL LETTER A TILDE;;;00E3;
-00C4;LATIN CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0041 0308;;;;N;LATIN CAPITAL LETTER A DIAERESIS;;;00E4;
-00C5;LATIN CAPITAL LETTER A WITH RING ABOVE;Lu;0;L;0041 030A;;;;N;LATIN CAPITAL LETTER A RING;;;00E5;
-00C6;LATIN CAPITAL LETTER AE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER A E;;;00E6;
-00C7;LATIN CAPITAL LETTER C WITH CEDILLA;Lu;0;L;0043 0327;;;;N;LATIN CAPITAL LETTER C CEDILLA;;;00E7;
-00C8;LATIN CAPITAL LETTER E WITH GRAVE;Lu;0;L;0045 0300;;;;N;LATIN CAPITAL LETTER E GRAVE;;;00E8;
-00C9;LATIN CAPITAL LETTER E WITH ACUTE;Lu;0;L;0045 0301;;;;N;LATIN CAPITAL LETTER E ACUTE;;;00E9;
-00CA;LATIN CAPITAL LETTER E WITH CIRCUMFLEX;Lu;0;L;0045 0302;;;;N;LATIN CAPITAL LETTER E CIRCUMFLEX;;;00EA;
-00CB;LATIN CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;0045 0308;;;;N;LATIN CAPITAL LETTER E DIAERESIS;;;00EB;
-00CC;LATIN CAPITAL LETTER I WITH GRAVE;Lu;0;L;0049 0300;;;;N;LATIN CAPITAL LETTER I GRAVE;;;00EC;
-00CD;LATIN CAPITAL LETTER I WITH ACUTE;Lu;0;L;0049 0301;;;;N;LATIN CAPITAL LETTER I ACUTE;;;00ED;
-00CE;LATIN CAPITAL LETTER I WITH CIRCUMFLEX;Lu;0;L;0049 0302;;;;N;LATIN CAPITAL LETTER I CIRCUMFLEX;;;00EE;
-00CF;LATIN CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0049 0308;;;;N;LATIN CAPITAL LETTER I DIAERESIS;;;00EF;
-00D0;LATIN CAPITAL LETTER ETH;Lu;0;L;;;;;N;;;;00F0;
-00D1;LATIN CAPITAL LETTER N WITH TILDE;Lu;0;L;004E 0303;;;;N;LATIN CAPITAL LETTER N TILDE;;;00F1;
-00D2;LATIN CAPITAL LETTER O WITH GRAVE;Lu;0;L;004F 0300;;;;N;LATIN CAPITAL LETTER O GRAVE;;;00F2;
-00D3;LATIN CAPITAL LETTER O WITH ACUTE;Lu;0;L;004F 0301;;;;N;LATIN CAPITAL LETTER O ACUTE;;;00F3;
-00D4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX;Lu;0;L;004F 0302;;;;N;LATIN CAPITAL LETTER O CIRCUMFLEX;;;00F4;
-00D5;LATIN CAPITAL LETTER O WITH TILDE;Lu;0;L;004F 0303;;;;N;LATIN CAPITAL LETTER O TILDE;;;00F5;
-00D6;LATIN CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;004F 0308;;;;N;LATIN CAPITAL LETTER O DIAERESIS;;;00F6;
-00D7;MULTIPLICATION SIGN;Sm;0;ON;;;;;N;;;;;
-00D8;LATIN CAPITAL LETTER O WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O SLASH;;;00F8;
-00D9;LATIN CAPITAL LETTER U WITH GRAVE;Lu;0;L;0055 0300;;;;N;LATIN CAPITAL LETTER U GRAVE;;;00F9;
-00DA;LATIN CAPITAL LETTER U WITH ACUTE;Lu;0;L;0055 0301;;;;N;LATIN CAPITAL LETTER U ACUTE;;;00FA;
-00DB;LATIN CAPITAL LETTER U WITH CIRCUMFLEX;Lu;0;L;0055 0302;;;;N;LATIN CAPITAL LETTER U CIRCUMFLEX;;;00FB;
-00DC;LATIN CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0055 0308;;;;N;LATIN CAPITAL LETTER U DIAERESIS;;;00FC;
-00DD;LATIN CAPITAL LETTER Y WITH ACUTE;Lu;0;L;0059 0301;;;;N;LATIN CAPITAL LETTER Y ACUTE;;;00FD;
-00DE;LATIN CAPITAL LETTER THORN;Lu;0;L;;;;;N;;;;00FE;
-00DF;LATIN SMALL LETTER SHARP S;Ll;0;L;;;;;N;;;;;
-00E0;LATIN SMALL LETTER A WITH GRAVE;Ll;0;L;0061 0300;;;;N;LATIN SMALL LETTER A GRAVE;;00C0;;00C0
-00E1;LATIN SMALL LETTER A WITH ACUTE;Ll;0;L;0061 0301;;;;N;LATIN SMALL LETTER A ACUTE;;00C1;;00C1
-00E2;LATIN SMALL LETTER A WITH CIRCUMFLEX;Ll;0;L;0061 0302;;;;N;LATIN SMALL LETTER A CIRCUMFLEX;;00C2;;00C2
-00E3;LATIN SMALL LETTER A WITH TILDE;Ll;0;L;0061 0303;;;;N;LATIN SMALL LETTER A TILDE;;00C3;;00C3
-00E4;LATIN SMALL LETTER A WITH DIAERESIS;Ll;0;L;0061 0308;;;;N;LATIN SMALL LETTER A DIAERESIS;;00C4;;00C4
-00E5;LATIN SMALL LETTER A WITH RING ABOVE;Ll;0;L;0061 030A;;;;N;LATIN SMALL LETTER A RING;;00C5;;00C5
-00E6;LATIN SMALL LETTER AE;Ll;0;L;;;;;N;LATIN SMALL LETTER A E;;00C6;;00C6
-00E7;LATIN SMALL LETTER C WITH CEDILLA;Ll;0;L;0063 0327;;;;N;LATIN SMALL LETTER C CEDILLA;;00C7;;00C7
-00E8;LATIN SMALL LETTER E WITH GRAVE;Ll;0;L;0065 0300;;;;N;LATIN SMALL LETTER E GRAVE;;00C8;;00C8
-00E9;LATIN SMALL LETTER E WITH ACUTE;Ll;0;L;0065 0301;;;;N;LATIN SMALL LETTER E ACUTE;;00C9;;00C9
-00EA;LATIN SMALL LETTER E WITH CIRCUMFLEX;Ll;0;L;0065 0302;;;;N;LATIN SMALL LETTER E CIRCUMFLEX;;00CA;;00CA
-00EB;LATIN SMALL LETTER E WITH DIAERESIS;Ll;0;L;0065 0308;;;;N;LATIN SMALL LETTER E DIAERESIS;;00CB;;00CB
-00EC;LATIN SMALL LETTER I WITH GRAVE;Ll;0;L;0069 0300;;;;N;LATIN SMALL LETTER I GRAVE;;00CC;;00CC
-00ED;LATIN SMALL LETTER I WITH ACUTE;Ll;0;L;0069 0301;;;;N;LATIN SMALL LETTER I ACUTE;;00CD;;00CD
-00EE;LATIN SMALL LETTER I WITH CIRCUMFLEX;Ll;0;L;0069 0302;;;;N;LATIN SMALL LETTER I CIRCUMFLEX;;00CE;;00CE
-00EF;LATIN SMALL LETTER I WITH DIAERESIS;Ll;0;L;0069 0308;;;;N;LATIN SMALL LETTER I DIAERESIS;;00CF;;00CF
-00F0;LATIN SMALL LETTER ETH;Ll;0;L;;;;;N;;;00D0;;00D0
-00F1;LATIN SMALL LETTER N WITH TILDE;Ll;0;L;006E 0303;;;;N;LATIN SMALL LETTER N TILDE;;00D1;;00D1
-00F2;LATIN SMALL LETTER O WITH GRAVE;Ll;0;L;006F 0300;;;;N;LATIN SMALL LETTER O GRAVE;;00D2;;00D2
-00F3;LATIN SMALL LETTER O WITH ACUTE;Ll;0;L;006F 0301;;;;N;LATIN SMALL LETTER O ACUTE;;00D3;;00D3
-00F4;LATIN SMALL LETTER O WITH CIRCUMFLEX;Ll;0;L;006F 0302;;;;N;LATIN SMALL LETTER O CIRCUMFLEX;;00D4;;00D4
-00F5;LATIN SMALL LETTER O WITH TILDE;Ll;0;L;006F 0303;;;;N;LATIN SMALL LETTER O TILDE;;00D5;;00D5
-00F6;LATIN SMALL LETTER O WITH DIAERESIS;Ll;0;L;006F 0308;;;;N;LATIN SMALL LETTER O DIAERESIS;;00D6;;00D6
-00F7;DIVISION SIGN;Sm;0;ON;;;;;N;;;;;
-00F8;LATIN SMALL LETTER O WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER O SLASH;;00D8;;00D8
-00F9;LATIN SMALL LETTER U WITH GRAVE;Ll;0;L;0075 0300;;;;N;LATIN SMALL LETTER U GRAVE;;00D9;;00D9
-00FA;LATIN SMALL LETTER U WITH ACUTE;Ll;0;L;0075 0301;;;;N;LATIN SMALL LETTER U ACUTE;;00DA;;00DA
-00FB;LATIN SMALL LETTER U WITH CIRCUMFLEX;Ll;0;L;0075 0302;;;;N;LATIN SMALL LETTER U CIRCUMFLEX;;00DB;;00DB
-00FC;LATIN SMALL LETTER U WITH DIAERESIS;Ll;0;L;0075 0308;;;;N;LATIN SMALL LETTER U DIAERESIS;;00DC;;00DC
-00FD;LATIN SMALL LETTER Y WITH ACUTE;Ll;0;L;0079 0301;;;;N;LATIN SMALL LETTER Y ACUTE;;00DD;;00DD
-00FE;LATIN SMALL LETTER THORN;Ll;0;L;;;;;N;;;00DE;;00DE
-00FF;LATIN SMALL LETTER Y WITH DIAERESIS;Ll;0;L;0079 0308;;;;N;LATIN SMALL LETTER Y DIAERESIS;;0178;;0178
-0100;LATIN CAPITAL LETTER A WITH MACRON;Lu;0;L;0041 0304;;;;N;LATIN CAPITAL LETTER A MACRON;;;0101;
-0101;LATIN SMALL LETTER A WITH MACRON;Ll;0;L;0061 0304;;;;N;LATIN SMALL LETTER A MACRON;;0100;;0100
-0102;LATIN CAPITAL LETTER A WITH BREVE;Lu;0;L;0041 0306;;;;N;LATIN CAPITAL LETTER A BREVE;;;0103;
-0103;LATIN SMALL LETTER A WITH BREVE;Ll;0;L;0061 0306;;;;N;LATIN SMALL LETTER A BREVE;;0102;;0102
-0104;LATIN CAPITAL LETTER A WITH OGONEK;Lu;0;L;0041 0328;;;;N;LATIN CAPITAL LETTER A OGONEK;;;0105;
-0105;LATIN SMALL LETTER A WITH OGONEK;Ll;0;L;0061 0328;;;;N;LATIN SMALL LETTER A OGONEK;;0104;;0104
-0106;LATIN CAPITAL LETTER C WITH ACUTE;Lu;0;L;0043 0301;;;;N;LATIN CAPITAL LETTER C ACUTE;;;0107;
-0107;LATIN SMALL LETTER C WITH ACUTE;Ll;0;L;0063 0301;;;;N;LATIN SMALL LETTER C ACUTE;;0106;;0106
-0108;LATIN CAPITAL LETTER C WITH CIRCUMFLEX;Lu;0;L;0043 0302;;;;N;LATIN CAPITAL LETTER C CIRCUMFLEX;;;0109;
-0109;LATIN SMALL LETTER C WITH CIRCUMFLEX;Ll;0;L;0063 0302;;;;N;LATIN SMALL LETTER C CIRCUMFLEX;;0108;;0108
-010A;LATIN CAPITAL LETTER C WITH DOT ABOVE;Lu;0;L;0043 0307;;;;N;LATIN CAPITAL LETTER C DOT;;;010B;
-010B;LATIN SMALL LETTER C WITH DOT ABOVE;Ll;0;L;0063 0307;;;;N;LATIN SMALL LETTER C DOT;;010A;;010A
-010C;LATIN CAPITAL LETTER C WITH CARON;Lu;0;L;0043 030C;;;;N;LATIN CAPITAL LETTER C HACEK;;;010D;
-010D;LATIN SMALL LETTER C WITH CARON;Ll;0;L;0063 030C;;;;N;LATIN SMALL LETTER C HACEK;;010C;;010C
-010E;LATIN CAPITAL LETTER D WITH CARON;Lu;0;L;0044 030C;;;;N;LATIN CAPITAL LETTER D HACEK;;;010F;
-010F;LATIN SMALL LETTER D WITH CARON;Ll;0;L;0064 030C;;;;N;LATIN SMALL LETTER D HACEK;;010E;;010E
-0110;LATIN CAPITAL LETTER D WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D BAR;;;0111;
-0111;LATIN SMALL LETTER D WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER D BAR;;0110;;0110
-0112;LATIN CAPITAL LETTER E WITH MACRON;Lu;0;L;0045 0304;;;;N;LATIN CAPITAL LETTER E MACRON;;;0113;
-0113;LATIN SMALL LETTER E WITH MACRON;Ll;0;L;0065 0304;;;;N;LATIN SMALL LETTER E MACRON;;0112;;0112
-0114;LATIN CAPITAL LETTER E WITH BREVE;Lu;0;L;0045 0306;;;;N;LATIN CAPITAL LETTER E BREVE;;;0115;
-0115;LATIN SMALL LETTER E WITH BREVE;Ll;0;L;0065 0306;;;;N;LATIN SMALL LETTER E BREVE;;0114;;0114
-0116;LATIN CAPITAL LETTER E WITH DOT ABOVE;Lu;0;L;0045 0307;;;;N;LATIN CAPITAL LETTER E DOT;;;0117;
-0117;LATIN SMALL LETTER E WITH DOT ABOVE;Ll;0;L;0065 0307;;;;N;LATIN SMALL LETTER E DOT;;0116;;0116
-0118;LATIN CAPITAL LETTER E WITH OGONEK;Lu;0;L;0045 0328;;;;N;LATIN CAPITAL LETTER E OGONEK;;;0119;
-0119;LATIN SMALL LETTER E WITH OGONEK;Ll;0;L;0065 0328;;;;N;LATIN SMALL LETTER E OGONEK;;0118;;0118
-011A;LATIN CAPITAL LETTER E WITH CARON;Lu;0;L;0045 030C;;;;N;LATIN CAPITAL LETTER E HACEK;;;011B;
-011B;LATIN SMALL LETTER E WITH CARON;Ll;0;L;0065 030C;;;;N;LATIN SMALL LETTER E HACEK;;011A;;011A
-011C;LATIN CAPITAL LETTER G WITH CIRCUMFLEX;Lu;0;L;0047 0302;;;;N;LATIN CAPITAL LETTER G CIRCUMFLEX;;;011D;
-011D;LATIN SMALL LETTER G WITH CIRCUMFLEX;Ll;0;L;0067 0302;;;;N;LATIN SMALL LETTER G CIRCUMFLEX;;011C;;011C
-011E;LATIN CAPITAL LETTER G WITH BREVE;Lu;0;L;0047 0306;;;;N;LATIN CAPITAL LETTER G BREVE;;;011F;
-011F;LATIN SMALL LETTER G WITH BREVE;Ll;0;L;0067 0306;;;;N;LATIN SMALL LETTER G BREVE;;011E;;011E
-0120;LATIN CAPITAL LETTER G WITH DOT ABOVE;Lu;0;L;0047 0307;;;;N;LATIN CAPITAL LETTER G DOT;;;0121;
-0121;LATIN SMALL LETTER G WITH DOT ABOVE;Ll;0;L;0067 0307;;;;N;LATIN SMALL LETTER G DOT;;0120;;0120
-0122;LATIN CAPITAL LETTER G WITH CEDILLA;Lu;0;L;0047 0327;;;;N;LATIN CAPITAL LETTER G CEDILLA;;;0123;
-0123;LATIN SMALL LETTER G WITH CEDILLA;Ll;0;L;0067 0327;;;;N;LATIN SMALL LETTER G CEDILLA;;0122;;0122
-0124;LATIN CAPITAL LETTER H WITH CIRCUMFLEX;Lu;0;L;0048 0302;;;;N;LATIN CAPITAL LETTER H CIRCUMFLEX;;;0125;
-0125;LATIN SMALL LETTER H WITH CIRCUMFLEX;Ll;0;L;0068 0302;;;;N;LATIN SMALL LETTER H CIRCUMFLEX;;0124;;0124
-0126;LATIN CAPITAL LETTER H WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER H BAR;;;0127;
-0127;LATIN SMALL LETTER H WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER H BAR;;0126;;0126
-0128;LATIN CAPITAL LETTER I WITH TILDE;Lu;0;L;0049 0303;;;;N;LATIN CAPITAL LETTER I TILDE;;;0129;
-0129;LATIN SMALL LETTER I WITH TILDE;Ll;0;L;0069 0303;;;;N;LATIN SMALL LETTER I TILDE;;0128;;0128
-012A;LATIN CAPITAL LETTER I WITH MACRON;Lu;0;L;0049 0304;;;;N;LATIN CAPITAL LETTER I MACRON;;;012B;
-012B;LATIN SMALL LETTER I WITH MACRON;Ll;0;L;0069 0304;;;;N;LATIN SMALL LETTER I MACRON;;012A;;012A
-012C;LATIN CAPITAL LETTER I WITH BREVE;Lu;0;L;0049 0306;;;;N;LATIN CAPITAL LETTER I BREVE;;;012D;
-012D;LATIN SMALL LETTER I WITH BREVE;Ll;0;L;0069 0306;;;;N;LATIN SMALL LETTER I BREVE;;012C;;012C
-012E;LATIN CAPITAL LETTER I WITH OGONEK;Lu;0;L;0049 0328;;;;N;LATIN CAPITAL LETTER I OGONEK;;;012F;
-012F;LATIN SMALL LETTER I WITH OGONEK;Ll;0;L;0069 0328;;;;N;LATIN SMALL LETTER I OGONEK;;012E;;012E
-0130;LATIN CAPITAL LETTER I WITH DOT ABOVE;Lu;0;L;0049 0307;;;;N;LATIN CAPITAL LETTER I DOT;;;0069;
-0131;LATIN SMALL LETTER DOTLESS I;Ll;0;L;;;;;N;;;0049;;0049
-0132;LATIN CAPITAL LIGATURE IJ;Lu;0;L;<compat> 0049 004A;;;;N;LATIN CAPITAL LETTER I J;;;0133;
-0133;LATIN SMALL LIGATURE IJ;Ll;0;L;<compat> 0069 006A;;;;N;LATIN SMALL LETTER I J;;0132;;0132
-0134;LATIN CAPITAL LETTER J WITH CIRCUMFLEX;Lu;0;L;004A 0302;;;;N;LATIN CAPITAL LETTER J CIRCUMFLEX;;;0135;
-0135;LATIN SMALL LETTER J WITH CIRCUMFLEX;Ll;0;L;006A 0302;;;;N;LATIN SMALL LETTER J CIRCUMFLEX;;0134;;0134
-0136;LATIN CAPITAL LETTER K WITH CEDILLA;Lu;0;L;004B 0327;;;;N;LATIN CAPITAL LETTER K CEDILLA;;;0137;
-0137;LATIN SMALL LETTER K WITH CEDILLA;Ll;0;L;006B 0327;;;;N;LATIN SMALL LETTER K CEDILLA;;0136;;0136
-0138;LATIN SMALL LETTER KRA;Ll;0;L;;;;;N;;;;;
-0139;LATIN CAPITAL LETTER L WITH ACUTE;Lu;0;L;004C 0301;;;;N;LATIN CAPITAL LETTER L ACUTE;;;013A;
-013A;LATIN SMALL LETTER L WITH ACUTE;Ll;0;L;006C 0301;;;;N;LATIN SMALL LETTER L ACUTE;;0139;;0139
-013B;LATIN CAPITAL LETTER L WITH CEDILLA;Lu;0;L;004C 0327;;;;N;LATIN CAPITAL LETTER L CEDILLA;;;013C;
-013C;LATIN SMALL LETTER L WITH CEDILLA;Ll;0;L;006C 0327;;;;N;LATIN SMALL LETTER L CEDILLA;;013B;;013B
-013D;LATIN CAPITAL LETTER L WITH CARON;Lu;0;L;004C 030C;;;;N;LATIN CAPITAL LETTER L HACEK;;;013E;
-013E;LATIN SMALL LETTER L WITH CARON;Ll;0;L;006C 030C;;;;N;LATIN SMALL LETTER L HACEK;;013D;;013D
-013F;LATIN CAPITAL LETTER L WITH MIDDLE DOT;Lu;0;L;<compat> 004C 00B7;;;;N;;;;0140;
-0140;LATIN SMALL LETTER L WITH MIDDLE DOT;Ll;0;L;<compat> 006C 00B7;;;;N;;;013F;;013F
-0141;LATIN CAPITAL LETTER L WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER L SLASH;;;0142;
-0142;LATIN SMALL LETTER L WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER L SLASH;;0141;;0141
-0143;LATIN CAPITAL LETTER N WITH ACUTE;Lu;0;L;004E 0301;;;;N;LATIN CAPITAL LETTER N ACUTE;;;0144;
-0144;LATIN SMALL LETTER N WITH ACUTE;Ll;0;L;006E 0301;;;;N;LATIN SMALL LETTER N ACUTE;;0143;;0143
-0145;LATIN CAPITAL LETTER N WITH CEDILLA;Lu;0;L;004E 0327;;;;N;LATIN CAPITAL LETTER N CEDILLA;;;0146;
-0146;LATIN SMALL LETTER N WITH CEDILLA;Ll;0;L;006E 0327;;;;N;LATIN SMALL LETTER N CEDILLA;;0145;;0145
-0147;LATIN CAPITAL LETTER N WITH CARON;Lu;0;L;004E 030C;;;;N;LATIN CAPITAL LETTER N HACEK;;;0148;
-0148;LATIN SMALL LETTER N WITH CARON;Ll;0;L;006E 030C;;;;N;LATIN SMALL LETTER N HACEK;;0147;;0147
-0149;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE;Ll;0;L;<compat> 02BC 006E;;;;N;LATIN SMALL LETTER APOSTROPHE N;;;;
-014A;LATIN CAPITAL LETTER ENG;Lu;0;L;;;;;N;;;;014B;
-014B;LATIN SMALL LETTER ENG;Ll;0;L;;;;;N;;;014A;;014A
-014C;LATIN CAPITAL LETTER O WITH MACRON;Lu;0;L;004F 0304;;;;N;LATIN CAPITAL LETTER O MACRON;;;014D;
-014D;LATIN SMALL LETTER O WITH MACRON;Ll;0;L;006F 0304;;;;N;LATIN SMALL LETTER O MACRON;;014C;;014C
-014E;LATIN CAPITAL LETTER O WITH BREVE;Lu;0;L;004F 0306;;;;N;LATIN CAPITAL LETTER O BREVE;;;014F;
-014F;LATIN SMALL LETTER O WITH BREVE;Ll;0;L;006F 0306;;;;N;LATIN SMALL LETTER O BREVE;;014E;;014E
-0150;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE;Lu;0;L;004F 030B;;;;N;LATIN CAPITAL LETTER O DOUBLE ACUTE;;;0151;
-0151;LATIN SMALL LETTER O WITH DOUBLE ACUTE;Ll;0;L;006F 030B;;;;N;LATIN SMALL LETTER O DOUBLE ACUTE;;0150;;0150
-0152;LATIN CAPITAL LIGATURE OE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O E;;;0153;
-0153;LATIN SMALL LIGATURE OE;Ll;0;L;;;;;N;LATIN SMALL LETTER O E;;0152;;0152
-0154;LATIN CAPITAL LETTER R WITH ACUTE;Lu;0;L;0052 0301;;;;N;LATIN CAPITAL LETTER R ACUTE;;;0155;
-0155;LATIN SMALL LETTER R WITH ACUTE;Ll;0;L;0072 0301;;;;N;LATIN SMALL LETTER R ACUTE;;0154;;0154
-0156;LATIN CAPITAL LETTER R WITH CEDILLA;Lu;0;L;0052 0327;;;;N;LATIN CAPITAL LETTER R CEDILLA;;;0157;
-0157;LATIN SMALL LETTER R WITH CEDILLA;Ll;0;L;0072 0327;;;;N;LATIN SMALL LETTER R CEDILLA;;0156;;0156
-0158;LATIN CAPITAL LETTER R WITH CARON;Lu;0;L;0052 030C;;;;N;LATIN CAPITAL LETTER R HACEK;;;0159;
-0159;LATIN SMALL LETTER R WITH CARON;Ll;0;L;0072 030C;;;;N;LATIN SMALL LETTER R HACEK;;0158;;0158
-015A;LATIN CAPITAL LETTER S WITH ACUTE;Lu;0;L;0053 0301;;;;N;LATIN CAPITAL LETTER S ACUTE;;;015B;
-015B;LATIN SMALL LETTER S WITH ACUTE;Ll;0;L;0073 0301;;;;N;LATIN SMALL LETTER S ACUTE;;015A;;015A
-015C;LATIN CAPITAL LETTER S WITH CIRCUMFLEX;Lu;0;L;0053 0302;;;;N;LATIN CAPITAL LETTER S CIRCUMFLEX;;;015D;
-015D;LATIN SMALL LETTER S WITH CIRCUMFLEX;Ll;0;L;0073 0302;;;;N;LATIN SMALL LETTER S CIRCUMFLEX;;015C;;015C
-015E;LATIN CAPITAL LETTER S WITH CEDILLA;Lu;0;L;0053 0327;;;;N;LATIN CAPITAL LETTER S CEDILLA;;;015F;
-015F;LATIN SMALL LETTER S WITH CEDILLA;Ll;0;L;0073 0327;;;;N;LATIN SMALL LETTER S CEDILLA;;015E;;015E
-0160;LATIN CAPITAL LETTER S WITH CARON;Lu;0;L;0053 030C;;;;N;LATIN CAPITAL LETTER S HACEK;;;0161;
-0161;LATIN SMALL LETTER S WITH CARON;Ll;0;L;0073 030C;;;;N;LATIN SMALL LETTER S HACEK;;0160;;0160
-0162;LATIN CAPITAL LETTER T WITH CEDILLA;Lu;0;L;0054 0327;;;;N;LATIN CAPITAL LETTER T CEDILLA;;;0163;
-0163;LATIN SMALL LETTER T WITH CEDILLA;Ll;0;L;0074 0327;;;;N;LATIN SMALL LETTER T CEDILLA;;0162;;0162
-0164;LATIN CAPITAL LETTER T WITH CARON;Lu;0;L;0054 030C;;;;N;LATIN CAPITAL LETTER T HACEK;;;0165;
-0165;LATIN SMALL LETTER T WITH CARON;Ll;0;L;0074 030C;;;;N;LATIN SMALL LETTER T HACEK;;0164;;0164
-0166;LATIN CAPITAL LETTER T WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T BAR;;;0167;
-0167;LATIN SMALL LETTER T WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER T BAR;;0166;;0166
-0168;LATIN CAPITAL LETTER U WITH TILDE;Lu;0;L;0055 0303;;;;N;LATIN CAPITAL LETTER U TILDE;;;0169;
-0169;LATIN SMALL LETTER U WITH TILDE;Ll;0;L;0075 0303;;;;N;LATIN SMALL LETTER U TILDE;;0168;;0168
-016A;LATIN CAPITAL LETTER U WITH MACRON;Lu;0;L;0055 0304;;;;N;LATIN CAPITAL LETTER U MACRON;;;016B;
-016B;LATIN SMALL LETTER U WITH MACRON;Ll;0;L;0075 0304;;;;N;LATIN SMALL LETTER U MACRON;;016A;;016A
-016C;LATIN CAPITAL LETTER U WITH BREVE;Lu;0;L;0055 0306;;;;N;LATIN CAPITAL LETTER U BREVE;;;016D;
-016D;LATIN SMALL LETTER U WITH BREVE;Ll;0;L;0075 0306;;;;N;LATIN SMALL LETTER U BREVE;;016C;;016C
-016E;LATIN CAPITAL LETTER U WITH RING ABOVE;Lu;0;L;0055 030A;;;;N;LATIN CAPITAL LETTER U RING;;;016F;
-016F;LATIN SMALL LETTER U WITH RING ABOVE;Ll;0;L;0075 030A;;;;N;LATIN SMALL LETTER U RING;;016E;;016E
-0170;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0055 030B;;;;N;LATIN CAPITAL LETTER U DOUBLE ACUTE;;;0171;
-0171;LATIN SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0075 030B;;;;N;LATIN SMALL LETTER U DOUBLE ACUTE;;0170;;0170
-0172;LATIN CAPITAL LETTER U WITH OGONEK;Lu;0;L;0055 0328;;;;N;LATIN CAPITAL LETTER U OGONEK;;;0173;
-0173;LATIN SMALL LETTER U WITH OGONEK;Ll;0;L;0075 0328;;;;N;LATIN SMALL LETTER U OGONEK;;0172;;0172
-0174;LATIN CAPITAL LETTER W WITH CIRCUMFLEX;Lu;0;L;0057 0302;;;;N;LATIN CAPITAL LETTER W CIRCUMFLEX;;;0175;
-0175;LATIN SMALL LETTER W WITH CIRCUMFLEX;Ll;0;L;0077 0302;;;;N;LATIN SMALL LETTER W CIRCUMFLEX;;0174;;0174
-0176;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX;Lu;0;L;0059 0302;;;;N;LATIN CAPITAL LETTER Y CIRCUMFLEX;;;0177;
-0177;LATIN SMALL LETTER Y WITH CIRCUMFLEX;Ll;0;L;0079 0302;;;;N;LATIN SMALL LETTER Y CIRCUMFLEX;;0176;;0176
-0178;LATIN CAPITAL LETTER Y WITH DIAERESIS;Lu;0;L;0059 0308;;;;N;LATIN CAPITAL LETTER Y DIAERESIS;;;00FF;
-0179;LATIN CAPITAL LETTER Z WITH ACUTE;Lu;0;L;005A 0301;;;;N;LATIN CAPITAL LETTER Z ACUTE;;;017A;
-017A;LATIN SMALL LETTER Z WITH ACUTE;Ll;0;L;007A 0301;;;;N;LATIN SMALL LETTER Z ACUTE;;0179;;0179
-017B;LATIN CAPITAL LETTER Z WITH DOT ABOVE;Lu;0;L;005A 0307;;;;N;LATIN CAPITAL LETTER Z DOT;;;017C;
-017C;LATIN SMALL LETTER Z WITH DOT ABOVE;Ll;0;L;007A 0307;;;;N;LATIN SMALL LETTER Z DOT;;017B;;017B
-017D;LATIN CAPITAL LETTER Z WITH CARON;Lu;0;L;005A 030C;;;;N;LATIN CAPITAL LETTER Z HACEK;;;017E;
-017E;LATIN SMALL LETTER Z WITH CARON;Ll;0;L;007A 030C;;;;N;LATIN SMALL LETTER Z HACEK;;017D;;017D
-017F;LATIN SMALL LETTER LONG S;Ll;0;L;<compat> 0073;;;;N;;;0053;;0053
-0180;LATIN SMALL LETTER B WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER B BAR;;0243;;0243
-0181;LATIN CAPITAL LETTER B WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B HOOK;;;0253;
-0182;LATIN CAPITAL LETTER B WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B TOPBAR;;;0183;
-0183;LATIN SMALL LETTER B WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER B TOPBAR;;0182;;0182
-0184;LATIN CAPITAL LETTER TONE SIX;Lu;0;L;;;;;N;;;;0185;
-0185;LATIN SMALL LETTER TONE SIX;Ll;0;L;;;;;N;;;0184;;0184
-0186;LATIN CAPITAL LETTER OPEN O;Lu;0;L;;;;;N;;;;0254;
-0187;LATIN CAPITAL LETTER C WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER C HOOK;;;0188;
-0188;LATIN SMALL LETTER C WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER C HOOK;;0187;;0187
-0189;LATIN CAPITAL LETTER AFRICAN D;Lu;0;L;;;;;N;;;;0256;
-018A;LATIN CAPITAL LETTER D WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D HOOK;;;0257;
-018B;LATIN CAPITAL LETTER D WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D TOPBAR;;;018C;
-018C;LATIN SMALL LETTER D WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER D TOPBAR;;018B;;018B
-018D;LATIN SMALL LETTER TURNED DELTA;Ll;0;L;;;;;N;;;;;
-018E;LATIN CAPITAL LETTER REVERSED E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER TURNED E;;;01DD;
-018F;LATIN CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;0259;
-0190;LATIN CAPITAL LETTER OPEN E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER EPSILON;;;025B;
-0191;LATIN CAPITAL LETTER F WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER F HOOK;;;0192;
-0192;LATIN SMALL LETTER F WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT F;;0191;;0191
-0193;LATIN CAPITAL LETTER G WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G HOOK;;;0260;
-0194;LATIN CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;0263;
-0195;LATIN SMALL LETTER HV;Ll;0;L;;;;;N;LATIN SMALL LETTER H V;;01F6;;01F6
-0196;LATIN CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;0269;
-0197;LATIN CAPITAL LETTER I WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED I;;;0268;
-0198;LATIN CAPITAL LETTER K WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER K HOOK;;;0199;
-0199;LATIN SMALL LETTER K WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER K HOOK;;0198;;0198
-019A;LATIN SMALL LETTER L WITH BAR;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED L;;023D;;023D
-019B;LATIN SMALL LETTER LAMBDA WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED LAMBDA;;;;
-019C;LATIN CAPITAL LETTER TURNED M;Lu;0;L;;;;;N;;;;026F;
-019D;LATIN CAPITAL LETTER N WITH LEFT HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER N HOOK;;;0272;
-019E;LATIN SMALL LETTER N WITH LONG RIGHT LEG;Ll;0;L;;;;;N;;;0220;;0220
-019F;LATIN CAPITAL LETTER O WITH MIDDLE TILDE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED O;;;0275;
-01A0;LATIN CAPITAL LETTER O WITH HORN;Lu;0;L;004F 031B;;;;N;LATIN CAPITAL LETTER O HORN;;;01A1;
-01A1;LATIN SMALL LETTER O WITH HORN;Ll;0;L;006F 031B;;;;N;LATIN SMALL LETTER O HORN;;01A0;;01A0
-01A2;LATIN CAPITAL LETTER OI;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O I;;;01A3;
-01A3;LATIN SMALL LETTER OI;Ll;0;L;;;;;N;LATIN SMALL LETTER O I;;01A2;;01A2
-01A4;LATIN CAPITAL LETTER P WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER P HOOK;;;01A5;
-01A5;LATIN SMALL LETTER P WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER P HOOK;;01A4;;01A4
-01A6;LATIN LETTER YR;Lu;0;L;;;;;N;LATIN LETTER Y R;;;0280;
-01A7;LATIN CAPITAL LETTER TONE TWO;Lu;0;L;;;;;N;;;;01A8;
-01A8;LATIN SMALL LETTER TONE TWO;Ll;0;L;;;;;N;;;01A7;;01A7
-01A9;LATIN CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;0283;
-01AA;LATIN LETTER REVERSED ESH LOOP;Ll;0;L;;;;;N;;;;;
-01AB;LATIN SMALL LETTER T WITH PALATAL HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T PALATAL HOOK;;;;
-01AC;LATIN CAPITAL LETTER T WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T HOOK;;;01AD;
-01AD;LATIN SMALL LETTER T WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T HOOK;;01AC;;01AC
-01AE;LATIN CAPITAL LETTER T WITH RETROFLEX HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T RETROFLEX HOOK;;;0288;
-01AF;LATIN CAPITAL LETTER U WITH HORN;Lu;0;L;0055 031B;;;;N;LATIN CAPITAL LETTER U HORN;;;01B0;
-01B0;LATIN SMALL LETTER U WITH HORN;Ll;0;L;0075 031B;;;;N;LATIN SMALL LETTER U HORN;;01AF;;01AF
-01B1;LATIN CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;028A;
-01B2;LATIN CAPITAL LETTER V WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER SCRIPT V;;;028B;
-01B3;LATIN CAPITAL LETTER Y WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Y HOOK;;;01B4;
-01B4;LATIN SMALL LETTER Y WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Y HOOK;;01B3;;01B3
-01B5;LATIN CAPITAL LETTER Z WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Z BAR;;;01B6;
-01B6;LATIN SMALL LETTER Z WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER Z BAR;;01B5;;01B5
-01B7;LATIN CAPITAL LETTER EZH;Lu;0;L;;;;;N;LATIN CAPITAL LETTER YOGH;;;0292;
-01B8;LATIN CAPITAL LETTER EZH REVERSED;Lu;0;L;;;;;N;LATIN CAPITAL LETTER REVERSED YOGH;;;01B9;
-01B9;LATIN SMALL LETTER EZH REVERSED;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED YOGH;;01B8;;01B8
-01BA;LATIN SMALL LETTER EZH WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH WITH TAIL;;;;
-01BB;LATIN LETTER TWO WITH STROKE;Lo;0;L;;;;;N;LATIN LETTER TWO BAR;;;;
-01BC;LATIN CAPITAL LETTER TONE FIVE;Lu;0;L;;;;;N;;;;01BD;
-01BD;LATIN SMALL LETTER TONE FIVE;Ll;0;L;;;;;N;;;01BC;;01BC
-01BE;LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER INVERTED GLOTTAL STOP BAR;;;;
-01BF;LATIN LETTER WYNN;Ll;0;L;;;;;N;;;01F7;;01F7
-01C0;LATIN LETTER DENTAL CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE;;;;
-01C1;LATIN LETTER LATERAL CLICK;Lo;0;L;;;;;N;LATIN LETTER DOUBLE PIPE;;;;
-01C2;LATIN LETTER ALVEOLAR CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE DOUBLE BAR;;;;
-01C3;LATIN LETTER RETROFLEX CLICK;Lo;0;L;;;;;N;LATIN LETTER EXCLAMATION MARK;;;;
-01C4;LATIN CAPITAL LETTER DZ WITH CARON;Lu;0;L;<compat> 0044 017D;;;;N;LATIN CAPITAL LETTER D Z HACEK;;;01C6;01C5
-01C5;LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON;Lt;0;L;<compat> 0044 017E;;;;N;LATIN LETTER CAPITAL D SMALL Z HACEK;;01C4;01C6;01C5
-01C6;LATIN SMALL LETTER DZ WITH CARON;Ll;0;L;<compat> 0064 017E;;;;N;LATIN SMALL LETTER D Z HACEK;;01C4;;01C5
-01C7;LATIN CAPITAL LETTER LJ;Lu;0;L;<compat> 004C 004A;;;;N;LATIN CAPITAL LETTER L J;;;01C9;01C8
-01C8;LATIN CAPITAL LETTER L WITH SMALL LETTER J;Lt;0;L;<compat> 004C 006A;;;;N;LATIN LETTER CAPITAL L SMALL J;;01C7;01C9;01C8
-01C9;LATIN SMALL LETTER LJ;Ll;0;L;<compat> 006C 006A;;;;N;LATIN SMALL LETTER L J;;01C7;;01C8
-01CA;LATIN CAPITAL LETTER NJ;Lu;0;L;<compat> 004E 004A;;;;N;LATIN CAPITAL LETTER N J;;;01CC;01CB
-01CB;LATIN CAPITAL LETTER N WITH SMALL LETTER J;Lt;0;L;<compat> 004E 006A;;;;N;LATIN LETTER CAPITAL N SMALL J;;01CA;01CC;01CB
-01CC;LATIN SMALL LETTER NJ;Ll;0;L;<compat> 006E 006A;;;;N;LATIN SMALL LETTER N J;;01CA;;01CB
-01CD;LATIN CAPITAL LETTER A WITH CARON;Lu;0;L;0041 030C;;;;N;LATIN CAPITAL LETTER A HACEK;;;01CE;
-01CE;LATIN SMALL LETTER A WITH CARON;Ll;0;L;0061 030C;;;;N;LATIN SMALL LETTER A HACEK;;01CD;;01CD
-01CF;LATIN CAPITAL LETTER I WITH CARON;Lu;0;L;0049 030C;;;;N;LATIN CAPITAL LETTER I HACEK;;;01D0;
-01D0;LATIN SMALL LETTER I WITH CARON;Ll;0;L;0069 030C;;;;N;LATIN SMALL LETTER I HACEK;;01CF;;01CF
-01D1;LATIN CAPITAL LETTER O WITH CARON;Lu;0;L;004F 030C;;;;N;LATIN CAPITAL LETTER O HACEK;;;01D2;
-01D2;LATIN SMALL LETTER O WITH CARON;Ll;0;L;006F 030C;;;;N;LATIN SMALL LETTER O HACEK;;01D1;;01D1
-01D3;LATIN CAPITAL LETTER U WITH CARON;Lu;0;L;0055 030C;;;;N;LATIN CAPITAL LETTER U HACEK;;;01D4;
-01D4;LATIN SMALL LETTER U WITH CARON;Ll;0;L;0075 030C;;;;N;LATIN SMALL LETTER U HACEK;;01D3;;01D3
-01D5;LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON;Lu;0;L;00DC 0304;;;;N;LATIN CAPITAL LETTER U DIAERESIS MACRON;;;01D6;
-01D6;LATIN SMALL LETTER U WITH DIAERESIS AND MACRON;Ll;0;L;00FC 0304;;;;N;LATIN SMALL LETTER U DIAERESIS MACRON;;01D5;;01D5
-01D7;LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE;Lu;0;L;00DC 0301;;;;N;LATIN CAPITAL LETTER U DIAERESIS ACUTE;;;01D8;
-01D8;LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE;Ll;0;L;00FC 0301;;;;N;LATIN SMALL LETTER U DIAERESIS ACUTE;;01D7;;01D7
-01D9;LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON;Lu;0;L;00DC 030C;;;;N;LATIN CAPITAL LETTER U DIAERESIS HACEK;;;01DA;
-01DA;LATIN SMALL LETTER U WITH DIAERESIS AND CARON;Ll;0;L;00FC 030C;;;;N;LATIN SMALL LETTER U DIAERESIS HACEK;;01D9;;01D9
-01DB;LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE;Lu;0;L;00DC 0300;;;;N;LATIN CAPITAL LETTER U DIAERESIS GRAVE;;;01DC;
-01DC;LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE;Ll;0;L;00FC 0300;;;;N;LATIN SMALL LETTER U DIAERESIS GRAVE;;01DB;;01DB
-01DD;LATIN SMALL LETTER TURNED E;Ll;0;L;;;;;N;;;018E;;018E
-01DE;LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON;Lu;0;L;00C4 0304;;;;N;LATIN CAPITAL LETTER A DIAERESIS MACRON;;;01DF;
-01DF;LATIN SMALL LETTER A WITH DIAERESIS AND MACRON;Ll;0;L;00E4 0304;;;;N;LATIN SMALL LETTER A DIAERESIS MACRON;;01DE;;01DE
-01E0;LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON;Lu;0;L;0226 0304;;;;N;LATIN CAPITAL LETTER A DOT MACRON;;;01E1;
-01E1;LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON;Ll;0;L;0227 0304;;;;N;LATIN SMALL LETTER A DOT MACRON;;01E0;;01E0
-01E2;LATIN CAPITAL LETTER AE WITH MACRON;Lu;0;L;00C6 0304;;;;N;LATIN CAPITAL LETTER A E MACRON;;;01E3;
-01E3;LATIN SMALL LETTER AE WITH MACRON;Ll;0;L;00E6 0304;;;;N;LATIN SMALL LETTER A E MACRON;;01E2;;01E2
-01E4;LATIN CAPITAL LETTER G WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G BAR;;;01E5;
-01E5;LATIN SMALL LETTER G WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER G BAR;;01E4;;01E4
-01E6;LATIN CAPITAL LETTER G WITH CARON;Lu;0;L;0047 030C;;;;N;LATIN CAPITAL LETTER G HACEK;;;01E7;
-01E7;LATIN SMALL LETTER G WITH CARON;Ll;0;L;0067 030C;;;;N;LATIN SMALL LETTER G HACEK;;01E6;;01E6
-01E8;LATIN CAPITAL LETTER K WITH CARON;Lu;0;L;004B 030C;;;;N;LATIN CAPITAL LETTER K HACEK;;;01E9;
-01E9;LATIN SMALL LETTER K WITH CARON;Ll;0;L;006B 030C;;;;N;LATIN SMALL LETTER K HACEK;;01E8;;01E8
-01EA;LATIN CAPITAL LETTER O WITH OGONEK;Lu;0;L;004F 0328;;;;N;LATIN CAPITAL LETTER O OGONEK;;;01EB;
-01EB;LATIN SMALL LETTER O WITH OGONEK;Ll;0;L;006F 0328;;;;N;LATIN SMALL LETTER O OGONEK;;01EA;;01EA
-01EC;LATIN CAPITAL LETTER O WITH OGONEK AND MACRON;Lu;0;L;01EA 0304;;;;N;LATIN CAPITAL LETTER O OGONEK MACRON;;;01ED;
-01ED;LATIN SMALL LETTER O WITH OGONEK AND MACRON;Ll;0;L;01EB 0304;;;;N;LATIN SMALL LETTER O OGONEK MACRON;;01EC;;01EC
-01EE;LATIN CAPITAL LETTER EZH WITH CARON;Lu;0;L;01B7 030C;;;;N;LATIN CAPITAL LETTER YOGH HACEK;;;01EF;
-01EF;LATIN SMALL LETTER EZH WITH CARON;Ll;0;L;0292 030C;;;;N;LATIN SMALL LETTER YOGH HACEK;;01EE;;01EE
-01F0;LATIN SMALL LETTER J WITH CARON;Ll;0;L;006A 030C;;;;N;LATIN SMALL LETTER J HACEK;;;;
-01F1;LATIN CAPITAL LETTER DZ;Lu;0;L;<compat> 0044 005A;;;;N;;;;01F3;01F2
-01F2;LATIN CAPITAL LETTER D WITH SMALL LETTER Z;Lt;0;L;<compat> 0044 007A;;;;N;;;01F1;01F3;01F2
-01F3;LATIN SMALL LETTER DZ;Ll;0;L;<compat> 0064 007A;;;;N;;;01F1;;01F2
-01F4;LATIN CAPITAL LETTER G WITH ACUTE;Lu;0;L;0047 0301;;;;N;;;;01F5;
-01F5;LATIN SMALL LETTER G WITH ACUTE;Ll;0;L;0067 0301;;;;N;;;01F4;;01F4
-01F6;LATIN CAPITAL LETTER HWAIR;Lu;0;L;;;;;N;;;;0195;
-01F7;LATIN CAPITAL LETTER WYNN;Lu;0;L;;;;;N;;;;01BF;
-01F8;LATIN CAPITAL LETTER N WITH GRAVE;Lu;0;L;004E 0300;;;;N;;;;01F9;
-01F9;LATIN SMALL LETTER N WITH GRAVE;Ll;0;L;006E 0300;;;;N;;;01F8;;01F8
-01FA;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE;Lu;0;L;00C5 0301;;;;N;;;;01FB;
-01FB;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE;Ll;0;L;00E5 0301;;;;N;;;01FA;;01FA
-01FC;LATIN CAPITAL LETTER AE WITH ACUTE;Lu;0;L;00C6 0301;;;;N;;;;01FD;
-01FD;LATIN SMALL LETTER AE WITH ACUTE;Ll;0;L;00E6 0301;;;;N;;;01FC;;01FC
-01FE;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE;Lu;0;L;00D8 0301;;;;N;;;;01FF;
-01FF;LATIN SMALL LETTER O WITH STROKE AND ACUTE;Ll;0;L;00F8 0301;;;;N;;;01FE;;01FE
-0200;LATIN CAPITAL LETTER A WITH DOUBLE GRAVE;Lu;0;L;0041 030F;;;;N;;;;0201;
-0201;LATIN SMALL LETTER A WITH DOUBLE GRAVE;Ll;0;L;0061 030F;;;;N;;;0200;;0200
-0202;LATIN CAPITAL LETTER A WITH INVERTED BREVE;Lu;0;L;0041 0311;;;;N;;;;0203;
-0203;LATIN SMALL LETTER A WITH INVERTED BREVE;Ll;0;L;0061 0311;;;;N;;;0202;;0202
-0204;LATIN CAPITAL LETTER E WITH DOUBLE GRAVE;Lu;0;L;0045 030F;;;;N;;;;0205;
-0205;LATIN SMALL LETTER E WITH DOUBLE GRAVE;Ll;0;L;0065 030F;;;;N;;;0204;;0204
-0206;LATIN CAPITAL LETTER E WITH INVERTED BREVE;Lu;0;L;0045 0311;;;;N;;;;0207;
-0207;LATIN SMALL LETTER E WITH INVERTED BREVE;Ll;0;L;0065 0311;;;;N;;;0206;;0206
-0208;LATIN CAPITAL LETTER I WITH DOUBLE GRAVE;Lu;0;L;0049 030F;;;;N;;;;0209;
-0209;LATIN SMALL LETTER I WITH DOUBLE GRAVE;Ll;0;L;0069 030F;;;;N;;;0208;;0208
-020A;LATIN CAPITAL LETTER I WITH INVERTED BREVE;Lu;0;L;0049 0311;;;;N;;;;020B;
-020B;LATIN SMALL LETTER I WITH INVERTED BREVE;Ll;0;L;0069 0311;;;;N;;;020A;;020A
-020C;LATIN CAPITAL LETTER O WITH DOUBLE GRAVE;Lu;0;L;004F 030F;;;;N;;;;020D;
-020D;LATIN SMALL LETTER O WITH DOUBLE GRAVE;Ll;0;L;006F 030F;;;;N;;;020C;;020C
-020E;LATIN CAPITAL LETTER O WITH INVERTED BREVE;Lu;0;L;004F 0311;;;;N;;;;020F;
-020F;LATIN SMALL LETTER O WITH INVERTED BREVE;Ll;0;L;006F 0311;;;;N;;;020E;;020E
-0210;LATIN CAPITAL LETTER R WITH DOUBLE GRAVE;Lu;0;L;0052 030F;;;;N;;;;0211;
-0211;LATIN SMALL LETTER R WITH DOUBLE GRAVE;Ll;0;L;0072 030F;;;;N;;;0210;;0210
-0212;LATIN CAPITAL LETTER R WITH INVERTED BREVE;Lu;0;L;0052 0311;;;;N;;;;0213;
-0213;LATIN SMALL LETTER R WITH INVERTED BREVE;Ll;0;L;0072 0311;;;;N;;;0212;;0212
-0214;LATIN CAPITAL LETTER U WITH DOUBLE GRAVE;Lu;0;L;0055 030F;;;;N;;;;0215;
-0215;LATIN SMALL LETTER U WITH DOUBLE GRAVE;Ll;0;L;0075 030F;;;;N;;;0214;;0214
-0216;LATIN CAPITAL LETTER U WITH INVERTED BREVE;Lu;0;L;0055 0311;;;;N;;;;0217;
-0217;LATIN SMALL LETTER U WITH INVERTED BREVE;Ll;0;L;0075 0311;;;;N;;;0216;;0216
-0218;LATIN CAPITAL LETTER S WITH COMMA BELOW;Lu;0;L;0053 0326;;;;N;;;;0219;
-0219;LATIN SMALL LETTER S WITH COMMA BELOW;Ll;0;L;0073 0326;;;;N;;;0218;;0218
-021A;LATIN CAPITAL LETTER T WITH COMMA BELOW;Lu;0;L;0054 0326;;;;N;;;;021B;
-021B;LATIN SMALL LETTER T WITH COMMA BELOW;Ll;0;L;0074 0326;;;;N;;;021A;;021A
-021C;LATIN CAPITAL LETTER YOGH;Lu;0;L;;;;;N;;;;021D;
-021D;LATIN SMALL LETTER YOGH;Ll;0;L;;;;;N;;;021C;;021C
-021E;LATIN CAPITAL LETTER H WITH CARON;Lu;0;L;0048 030C;;;;N;;;;021F;
-021F;LATIN SMALL LETTER H WITH CARON;Ll;0;L;0068 030C;;;;N;;;021E;;021E
-0220;LATIN CAPITAL LETTER N WITH LONG RIGHT LEG;Lu;0;L;;;;;N;;;;019E;
-0221;LATIN SMALL LETTER D WITH CURL;Ll;0;L;;;;;N;;;;;
-0222;LATIN CAPITAL LETTER OU;Lu;0;L;;;;;N;;;;0223;
-0223;LATIN SMALL LETTER OU;Ll;0;L;;;;;N;;;0222;;0222
-0224;LATIN CAPITAL LETTER Z WITH HOOK;Lu;0;L;;;;;N;;;;0225;
-0225;LATIN SMALL LETTER Z WITH HOOK;Ll;0;L;;;;;N;;;0224;;0224
-0226;LATIN CAPITAL LETTER A WITH DOT ABOVE;Lu;0;L;0041 0307;;;;N;;;;0227;
-0227;LATIN SMALL LETTER A WITH DOT ABOVE;Ll;0;L;0061 0307;;;;N;;;0226;;0226
-0228;LATIN CAPITAL LETTER E WITH CEDILLA;Lu;0;L;0045 0327;;;;N;;;;0229;
-0229;LATIN SMALL LETTER E WITH CEDILLA;Ll;0;L;0065 0327;;;;N;;;0228;;0228
-022A;LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON;Lu;0;L;00D6 0304;;;;N;;;;022B;
-022B;LATIN SMALL LETTER O WITH DIAERESIS AND MACRON;Ll;0;L;00F6 0304;;;;N;;;022A;;022A
-022C;LATIN CAPITAL LETTER O WITH TILDE AND MACRON;Lu;0;L;00D5 0304;;;;N;;;;022D;
-022D;LATIN SMALL LETTER O WITH TILDE AND MACRON;Ll;0;L;00F5 0304;;;;N;;;022C;;022C
-022E;LATIN CAPITAL LETTER O WITH DOT ABOVE;Lu;0;L;004F 0307;;;;N;;;;022F;
-022F;LATIN SMALL LETTER O WITH DOT ABOVE;Ll;0;L;006F 0307;;;;N;;;022E;;022E
-0230;LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON;Lu;0;L;022E 0304;;;;N;;;;0231;
-0231;LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON;Ll;0;L;022F 0304;;;;N;;;0230;;0230
-0232;LATIN CAPITAL LETTER Y WITH MACRON;Lu;0;L;0059 0304;;;;N;;;;0233;
-0233;LATIN SMALL LETTER Y WITH MACRON;Ll;0;L;0079 0304;;;;N;;;0232;;0232
-0234;LATIN SMALL LETTER L WITH CURL;Ll;0;L;;;;;N;;;;;
-0235;LATIN SMALL LETTER N WITH CURL;Ll;0;L;;;;;N;;;;;
-0236;LATIN SMALL LETTER T WITH CURL;Ll;0;L;;;;;N;;;;;
-0237;LATIN SMALL LETTER DOTLESS J;Ll;0;L;;;;;N;;;;;
-0238;LATIN SMALL LETTER DB DIGRAPH;Ll;0;L;;;;;N;;;;;
-0239;LATIN SMALL LETTER QP DIGRAPH;Ll;0;L;;;;;N;;;;;
-023A;LATIN CAPITAL LETTER A WITH STROKE;Lu;0;L;;;;;N;;;;2C65;
-023B;LATIN CAPITAL LETTER C WITH STROKE;Lu;0;L;;;;;N;;;;023C;
-023C;LATIN SMALL LETTER C WITH STROKE;Ll;0;L;;;;;N;;;023B;;023B
-023D;LATIN CAPITAL LETTER L WITH BAR;Lu;0;L;;;;;N;;;;019A;
-023E;LATIN CAPITAL LETTER T WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;2C66;
-023F;LATIN SMALL LETTER S WITH SWASH TAIL;Ll;0;L;;;;;N;;;2C7E;;2C7E
-0240;LATIN SMALL LETTER Z WITH SWASH TAIL;Ll;0;L;;;;;N;;;2C7F;;2C7F
-0241;LATIN CAPITAL LETTER GLOTTAL STOP;Lu;0;L;;;;;N;;;;0242;
-0242;LATIN SMALL LETTER GLOTTAL STOP;Ll;0;L;;;;;N;;;0241;;0241
-0243;LATIN CAPITAL LETTER B WITH STROKE;Lu;0;L;;;;;N;;;;0180;
-0244;LATIN CAPITAL LETTER U BAR;Lu;0;L;;;;;N;;;;0289;
-0245;LATIN CAPITAL LETTER TURNED V;Lu;0;L;;;;;N;;;;028C;
-0246;LATIN CAPITAL LETTER E WITH STROKE;Lu;0;L;;;;;N;;;;0247;
-0247;LATIN SMALL LETTER E WITH STROKE;Ll;0;L;;;;;N;;;0246;;0246
-0248;LATIN CAPITAL LETTER J WITH STROKE;Lu;0;L;;;;;N;;;;0249;
-0249;LATIN SMALL LETTER J WITH STROKE;Ll;0;L;;;;;N;;;0248;;0248
-024A;LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL;Lu;0;L;;;;;N;;;;024B;
-024B;LATIN SMALL LETTER Q WITH HOOK TAIL;Ll;0;L;;;;;N;;;024A;;024A
-024C;LATIN CAPITAL LETTER R WITH STROKE;Lu;0;L;;;;;N;;;;024D;
-024D;LATIN SMALL LETTER R WITH STROKE;Ll;0;L;;;;;N;;;024C;;024C
-024E;LATIN CAPITAL LETTER Y WITH STROKE;Lu;0;L;;;;;N;;;;024F;
-024F;LATIN SMALL LETTER Y WITH STROKE;Ll;0;L;;;;;N;;;024E;;024E
-0250;LATIN SMALL LETTER TURNED A;Ll;0;L;;;;;N;;;2C6F;;2C6F
-0251;LATIN SMALL LETTER ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT A;;2C6D;;2C6D
-0252;LATIN SMALL LETTER TURNED ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED SCRIPT A;;2C70;;2C70
-0253;LATIN SMALL LETTER B WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER B HOOK;;0181;;0181
-0254;LATIN SMALL LETTER OPEN O;Ll;0;L;;;;;N;;;0186;;0186
-0255;LATIN SMALL LETTER C WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER C CURL;;;;
-0256;LATIN SMALL LETTER D WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER D RETROFLEX HOOK;;0189;;0189
-0257;LATIN SMALL LETTER D WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER D HOOK;;018A;;018A
-0258;LATIN SMALL LETTER REVERSED E;Ll;0;L;;;;;N;;;;;
-0259;LATIN SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;018F;;018F
-025A;LATIN SMALL LETTER SCHWA WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCHWA HOOK;;;;
-025B;LATIN SMALL LETTER OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER EPSILON;;0190;;0190
-025C;LATIN SMALL LETTER REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON;;;;
-025D;LATIN SMALL LETTER REVERSED OPEN E WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON HOOK;;;;
-025E;LATIN SMALL LETTER CLOSED REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED REVERSED EPSILON;;;;
-025F;LATIN SMALL LETTER DOTLESS J WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR;;;;
-0260;LATIN SMALL LETTER G WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER G HOOK;;0193;;0193
-0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;;;
-0262;LATIN LETTER SMALL CAPITAL G;Ll;0;L;;;;;N;;;;;
-0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194
-0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;;;
-0265;LATIN SMALL LETTER TURNED H;Ll;0;L;;;;;N;;;A78D;;A78D
-0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;A7AA;;A7AA
-0267;LATIN SMALL LETTER HENG WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER HENG HOOK;;;;
-0268;LATIN SMALL LETTER I WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED I;;0197;;0197
-0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196
-026A;LATIN LETTER SMALL CAPITAL I;Ll;0;L;;;;;N;;;;;
-026B;LATIN SMALL LETTER L WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;2C62;;2C62
-026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;;;
-026D;LATIN SMALL LETTER L WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER L RETROFLEX HOOK;;;;
-026E;LATIN SMALL LETTER LEZH;Ll;0;L;;;;;N;LATIN SMALL LETTER L YOGH;;;;
-026F;LATIN SMALL LETTER TURNED M;Ll;0;L;;;;;N;;;019C;;019C
-0270;LATIN SMALL LETTER TURNED M WITH LONG LEG;Ll;0;L;;;;;N;;;;;
-0271;LATIN SMALL LETTER M WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER M HOOK;;2C6E;;2C6E
-0272;LATIN SMALL LETTER N WITH LEFT HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N HOOK;;019D;;019D
-0273;LATIN SMALL LETTER N WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N RETROFLEX HOOK;;;;
-0274;LATIN LETTER SMALL CAPITAL N;Ll;0;L;;;;;N;;;;;
-0275;LATIN SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;019F;;019F
-0276;LATIN LETTER SMALL CAPITAL OE;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL O E;;;;
-0277;LATIN SMALL LETTER CLOSED OMEGA;Ll;0;L;;;;;N;;;;;
-0278;LATIN SMALL LETTER PHI;Ll;0;L;;;;;N;;;;;
-0279;LATIN SMALL LETTER TURNED R;Ll;0;L;;;;;N;;;;;
-027A;LATIN SMALL LETTER TURNED R WITH LONG LEG;Ll;0;L;;;;;N;;;;;
-027B;LATIN SMALL LETTER TURNED R WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED R HOOK;;;;
-027C;LATIN SMALL LETTER R WITH LONG LEG;Ll;0;L;;;;;N;;;;;
-027D;LATIN SMALL LETTER R WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER R HOOK;;2C64;;2C64
-027E;LATIN SMALL LETTER R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER FISHHOOK R;;;;
-027F;LATIN SMALL LETTER REVERSED R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED FISHHOOK R;;;;
-0280;LATIN LETTER SMALL CAPITAL R;Ll;0;L;;;;;N;;;01A6;;01A6
-0281;LATIN LETTER SMALL CAPITAL INVERTED R;Ll;0;L;;;;;N;;;;;
-0282;LATIN SMALL LETTER S WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER S HOOK;;;;
-0283;LATIN SMALL LETTER ESH;Ll;0;L;;;;;N;;;01A9;;01A9
-0284;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR HOOK;;;;
-0285;LATIN SMALL LETTER SQUAT REVERSED ESH;Ll;0;L;;;;;N;;;;;
-0286;LATIN SMALL LETTER ESH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER ESH CURL;;;;
-0287;LATIN SMALL LETTER TURNED T;Ll;0;L;;;;;N;;;;;
-0288;LATIN SMALL LETTER T WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T RETROFLEX HOOK;;01AE;;01AE
-0289;LATIN SMALL LETTER U BAR;Ll;0;L;;;;;N;;;0244;;0244
-028A;LATIN SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;01B1;;01B1
-028B;LATIN SMALL LETTER V WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT V;;01B2;;01B2
-028C;LATIN SMALL LETTER TURNED V;Ll;0;L;;;;;N;;;0245;;0245
-028D;LATIN SMALL LETTER TURNED W;Ll;0;L;;;;;N;;;;;
-028E;LATIN SMALL LETTER TURNED Y;Ll;0;L;;;;;N;;;;;
-028F;LATIN LETTER SMALL CAPITAL Y;Ll;0;L;;;;;N;;;;;
-0290;LATIN SMALL LETTER Z WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Z RETROFLEX HOOK;;;;
-0291;LATIN SMALL LETTER Z WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER Z CURL;;;;
-0292;LATIN SMALL LETTER EZH;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH;;01B7;;01B7
-0293;LATIN SMALL LETTER EZH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH CURL;;;;
-0294;LATIN LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
-0295;LATIN LETTER PHARYNGEAL VOICED FRICATIVE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP;;;;
-0296;LATIN LETTER INVERTED GLOTTAL STOP;Ll;0;L;;;;;N;;;;;
-0297;LATIN LETTER STRETCHED C;Ll;0;L;;;;;N;;;;;
-0298;LATIN LETTER BILABIAL CLICK;Ll;0;L;;;;;N;LATIN LETTER BULLSEYE;;;;
-0299;LATIN LETTER SMALL CAPITAL B;Ll;0;L;;;;;N;;;;;
-029A;LATIN SMALL LETTER CLOSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED EPSILON;;;;
-029B;LATIN LETTER SMALL CAPITAL G WITH HOOK;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL G HOOK;;;;
-029C;LATIN LETTER SMALL CAPITAL H;Ll;0;L;;;;;N;;;;;
-029D;LATIN SMALL LETTER J WITH CROSSED-TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER CROSSED-TAIL J;;;;
-029E;LATIN SMALL LETTER TURNED K;Ll;0;L;;;;;N;;;;;
-029F;LATIN LETTER SMALL CAPITAL L;Ll;0;L;;;;;N;;;;;
-02A0;LATIN SMALL LETTER Q WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Q HOOK;;;;
-02A1;LATIN LETTER GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER GLOTTAL STOP BAR;;;;
-02A2;LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP BAR;;;;
-02A3;LATIN SMALL LETTER DZ DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z;;;;
-02A4;LATIN SMALL LETTER DEZH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D YOGH;;;;
-02A5;LATIN SMALL LETTER DZ DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z CURL;;;;
-02A6;LATIN SMALL LETTER TS DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T S;;;;
-02A7;LATIN SMALL LETTER TESH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T ESH;;;;
-02A8;LATIN SMALL LETTER TC DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER T C CURL;;;;
-02A9;LATIN SMALL LETTER FENG DIGRAPH;Ll;0;L;;;;;N;;;;;
-02AA;LATIN SMALL LETTER LS DIGRAPH;Ll;0;L;;;;;N;;;;;
-02AB;LATIN SMALL LETTER LZ DIGRAPH;Ll;0;L;;;;;N;;;;;
-02AC;LATIN LETTER BILABIAL PERCUSSIVE;Ll;0;L;;;;;N;;;;;
-02AD;LATIN LETTER BIDENTAL PERCUSSIVE;Ll;0;L;;;;;N;;;;;
-02AE;LATIN SMALL LETTER TURNED H WITH FISHHOOK;Ll;0;L;;;;;N;;;;;
-02AF;LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL;Ll;0;L;;;;;N;;;;;
-02B0;MODIFIER LETTER SMALL H;Lm;0;L;<super> 0068;;;;N;;;;;
-02B1;MODIFIER LETTER SMALL H WITH HOOK;Lm;0;L;<super> 0266;;;;N;MODIFIER LETTER SMALL H HOOK;;;;
-02B2;MODIFIER LETTER SMALL J;Lm;0;L;<super> 006A;;;;N;;;;;
-02B3;MODIFIER LETTER SMALL R;Lm;0;L;<super> 0072;;;;N;;;;;
-02B4;MODIFIER LETTER SMALL TURNED R;Lm;0;L;<super> 0279;;;;N;;;;;
-02B5;MODIFIER LETTER SMALL TURNED R WITH HOOK;Lm;0;L;<super> 027B;;;;N;MODIFIER LETTER SMALL TURNED R HOOK;;;;
-02B6;MODIFIER LETTER SMALL CAPITAL INVERTED R;Lm;0;L;<super> 0281;;;;N;;;;;
-02B7;MODIFIER LETTER SMALL W;Lm;0;L;<super> 0077;;;;N;;;;;
-02B8;MODIFIER LETTER SMALL Y;Lm;0;L;<super> 0079;;;;N;;;;;
-02B9;MODIFIER LETTER PRIME;Lm;0;ON;;;;;N;;;;;
-02BA;MODIFIER LETTER DOUBLE PRIME;Lm;0;ON;;;;;N;;;;;
-02BB;MODIFIER LETTER TURNED COMMA;Lm;0;L;;;;;N;;;;;
-02BC;MODIFIER LETTER APOSTROPHE;Lm;0;L;;;;;N;;;;;
-02BD;MODIFIER LETTER REVERSED COMMA;Lm;0;L;;;;;N;;;;;
-02BE;MODIFIER LETTER RIGHT HALF RING;Lm;0;L;;;;;N;;;;;
-02BF;MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;;
-02C0;MODIFIER LETTER GLOTTAL STOP;Lm;0;L;;;;;N;;;;;
-02C1;MODIFIER LETTER REVERSED GLOTTAL STOP;Lm;0;L;;;;;N;;;;;
-02C2;MODIFIER LETTER LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
-02C3;MODIFIER LETTER RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
-02C4;MODIFIER LETTER UP ARROWHEAD;Sk;0;ON;;;;;N;;;;;
-02C5;MODIFIER LETTER DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;;
-02C6;MODIFIER LETTER CIRCUMFLEX ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER CIRCUMFLEX;;;;
-02C7;CARON;Lm;0;ON;;;;;N;MODIFIER LETTER HACEK;;;;
-02C8;MODIFIER LETTER VERTICAL LINE;Lm;0;ON;;;;;N;;;;;
-02C9;MODIFIER LETTER MACRON;Lm;0;ON;;;;;N;;;;;
-02CA;MODIFIER LETTER ACUTE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER ACUTE;;;;
-02CB;MODIFIER LETTER GRAVE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER GRAVE;;;;
-02CC;MODIFIER LETTER LOW VERTICAL LINE;Lm;0;ON;;;;;N;;;;;
-02CD;MODIFIER LETTER LOW MACRON;Lm;0;ON;;;;;N;;;;;
-02CE;MODIFIER LETTER LOW GRAVE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER LOW GRAVE;;;;
-02CF;MODIFIER LETTER LOW ACUTE ACCENT;Lm;0;ON;;;;;N;MODIFIER LETTER LOW ACUTE;;;;
-02D0;MODIFIER LETTER TRIANGULAR COLON;Lm;0;L;;;;;N;;;;;
-02D1;MODIFIER LETTER HALF TRIANGULAR COLON;Lm;0;L;;;;;N;;;;;
-02D2;MODIFIER LETTER CENTRED RIGHT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED RIGHT HALF RING;;;;
-02D3;MODIFIER LETTER CENTRED LEFT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED LEFT HALF RING;;;;
-02D4;MODIFIER LETTER UP TACK;Sk;0;ON;;;;;N;;;;;
-02D5;MODIFIER LETTER DOWN TACK;Sk;0;ON;;;;;N;;;;;
-02D6;MODIFIER LETTER PLUS SIGN;Sk;0;ON;;;;;N;;;;;
-02D7;MODIFIER LETTER MINUS SIGN;Sk;0;ON;;;;;N;;;;;
-02D8;BREVE;Sk;0;ON;<compat> 0020 0306;;;;N;SPACING BREVE;;;;
-02D9;DOT ABOVE;Sk;0;ON;<compat> 0020 0307;;;;N;SPACING DOT ABOVE;;;;
-02DA;RING ABOVE;Sk;0;ON;<compat> 0020 030A;;;;N;SPACING RING ABOVE;;;;
-02DB;OGONEK;Sk;0;ON;<compat> 0020 0328;;;;N;SPACING OGONEK;;;;
-02DC;SMALL TILDE;Sk;0;ON;<compat> 0020 0303;;;;N;SPACING TILDE;;;;
-02DD;DOUBLE ACUTE ACCENT;Sk;0;ON;<compat> 0020 030B;;;;N;SPACING DOUBLE ACUTE;;;;
-02DE;MODIFIER LETTER RHOTIC HOOK;Sk;0;ON;;;;;N;;;;;
-02DF;MODIFIER LETTER CROSS ACCENT;Sk;0;ON;;;;;N;;;;;
-02E0;MODIFIER LETTER SMALL GAMMA;Lm;0;L;<super> 0263;;;;N;;;;;
-02E1;MODIFIER LETTER SMALL L;Lm;0;L;<super> 006C;;;;N;;;;;
-02E2;MODIFIER LETTER SMALL S;Lm;0;L;<super> 0073;;;;N;;;;;
-02E3;MODIFIER LETTER SMALL X;Lm;0;L;<super> 0078;;;;N;;;;;
-02E4;MODIFIER LETTER SMALL REVERSED GLOTTAL STOP;Lm;0;L;<super> 0295;;;;N;;;;;
-02E5;MODIFIER LETTER EXTRA-HIGH TONE BAR;Sk;0;ON;;;;;N;;;;;
-02E6;MODIFIER LETTER HIGH TONE BAR;Sk;0;ON;;;;;N;;;;;
-02E7;MODIFIER LETTER MID TONE BAR;Sk;0;ON;;;;;N;;;;;
-02E8;MODIFIER LETTER LOW TONE BAR;Sk;0;ON;;;;;N;;;;;
-02E9;MODIFIER LETTER EXTRA-LOW TONE BAR;Sk;0;ON;;;;;N;;;;;
-02EA;MODIFIER LETTER YIN DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;;
-02EB;MODIFIER LETTER YANG DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;;
-02EC;MODIFIER LETTER VOICING;Lm;0;ON;;;;;N;;;;;
-02ED;MODIFIER LETTER UNASPIRATED;Sk;0;ON;;;;;N;;;;;
-02EE;MODIFIER LETTER DOUBLE APOSTROPHE;Lm;0;L;;;;;N;;;;;
-02EF;MODIFIER LETTER LOW DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;;
-02F0;MODIFIER LETTER LOW UP ARROWHEAD;Sk;0;ON;;;;;N;;;;;
-02F1;MODIFIER LETTER LOW LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
-02F2;MODIFIER LETTER LOW RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;;
-02F3;MODIFIER LETTER LOW RING;Sk;0;ON;;;;;N;;;;;
-02F4;MODIFIER LETTER MIDDLE GRAVE ACCENT;Sk;0;ON;;;;;N;;;;;
-02F5;MODIFIER LETTER MIDDLE DOUBLE GRAVE ACCENT;Sk;0;ON;;;;;N;;;;;
-02F6;MODIFIER LETTER MIDDLE DOUBLE ACUTE ACCENT;Sk;0;ON;;;;;N;;;;;
-02F7;MODIFIER LETTER LOW TILDE;Sk;0;ON;;;;;N;;;;;
-02F8;MODIFIER LETTER RAISED COLON;Sk;0;ON;;;;;N;;;;;
-02F9;MODIFIER LETTER BEGIN HIGH TONE;Sk;0;ON;;;;;N;;;;;
-02FA;MODIFIER LETTER END HIGH TONE;Sk;0;ON;;;;;N;;;;;
-02FB;MODIFIER LETTER BEGIN LOW TONE;Sk;0;ON;;;;;N;;;;;
-02FC;MODIFIER LETTER END LOW TONE;Sk;0;ON;;;;;N;;;;;
-02FD;MODIFIER LETTER SHELF;Sk;0;ON;;;;;N;;;;;
-02FE;MODIFIER LETTER OPEN SHELF;Sk;0;ON;;;;;N;;;;;
-02FF;MODIFIER LETTER LOW LEFT ARROW;Sk;0;ON;;;;;N;;;;;
-0300;COMBINING GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING GRAVE;;;;
-0301;COMBINING ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING ACUTE;;;;
-0302;COMBINING CIRCUMFLEX ACCENT;Mn;230;NSM;;;;;N;NON-SPACING CIRCUMFLEX;;;;
-0303;COMBINING TILDE;Mn;230;NSM;;;;;N;NON-SPACING TILDE;;;;
-0304;COMBINING MACRON;Mn;230;NSM;;;;;N;NON-SPACING MACRON;;;;
-0305;COMBINING OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING OVERSCORE;;;;
-0306;COMBINING BREVE;Mn;230;NSM;;;;;N;NON-SPACING BREVE;;;;
-0307;COMBINING DOT ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOT ABOVE;;;;
-0308;COMBINING DIAERESIS;Mn;230;NSM;;;;;N;NON-SPACING DIAERESIS;;;;
-0309;COMBINING HOOK ABOVE;Mn;230;NSM;;;;;N;NON-SPACING HOOK ABOVE;;;;
-030A;COMBINING RING ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RING ABOVE;;;;
-030B;COMBINING DOUBLE ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE ACUTE;;;;
-030C;COMBINING CARON;Mn;230;NSM;;;;;N;NON-SPACING HACEK;;;;
-030D;COMBINING VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL LINE ABOVE;;;;
-030E;COMBINING DOUBLE VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE VERTICAL LINE ABOVE;;;;
-030F;COMBINING DOUBLE GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE GRAVE;;;;
-0310;COMBINING CANDRABINDU;Mn;230;NSM;;;;;N;NON-SPACING CANDRABINDU;;;;
-0311;COMBINING INVERTED BREVE;Mn;230;NSM;;;;;N;NON-SPACING INVERTED BREVE;;;;
-0312;COMBINING TURNED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING TURNED COMMA ABOVE;;;;
-0313;COMBINING COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING COMMA ABOVE;;;;
-0314;COMBINING REVERSED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING REVERSED COMMA ABOVE;;;;
-0315;COMBINING COMMA ABOVE RIGHT;Mn;232;NSM;;;;;N;NON-SPACING COMMA ABOVE RIGHT;;;;
-0316;COMBINING GRAVE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING GRAVE BELOW;;;;
-0317;COMBINING ACUTE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING ACUTE BELOW;;;;
-0318;COMBINING LEFT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT TACK BELOW;;;;
-0319;COMBINING RIGHT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT TACK BELOW;;;;
-031A;COMBINING LEFT ANGLE ABOVE;Mn;232;NSM;;;;;N;NON-SPACING LEFT ANGLE ABOVE;;;;
-031B;COMBINING HORN;Mn;216;NSM;;;;;N;NON-SPACING HORN;;;;
-031C;COMBINING LEFT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT HALF RING BELOW;;;;
-031D;COMBINING UP TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING UP TACK BELOW;;;;
-031E;COMBINING DOWN TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOWN TACK BELOW;;;;
-031F;COMBINING PLUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING PLUS SIGN BELOW;;;;
-0320;COMBINING MINUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING MINUS SIGN BELOW;;;;
-0321;COMBINING PALATALIZED HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING PALATALIZED HOOK BELOW;;;;
-0322;COMBINING RETROFLEX HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING RETROFLEX HOOK BELOW;;;;
-0323;COMBINING DOT BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOT BELOW;;;;
-0324;COMBINING DIAERESIS BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE DOT BELOW;;;;
-0325;COMBINING RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RING BELOW;;;;
-0326;COMBINING COMMA BELOW;Mn;220;NSM;;;;;N;NON-SPACING COMMA BELOW;;;;
-0327;COMBINING CEDILLA;Mn;202;NSM;;;;;N;NON-SPACING CEDILLA;;;;
-0328;COMBINING OGONEK;Mn;202;NSM;;;;;N;NON-SPACING OGONEK;;;;
-0329;COMBINING VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;NON-SPACING VERTICAL LINE BELOW;;;;
-032A;COMBINING BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BRIDGE BELOW;;;;
-032B;COMBINING INVERTED DOUBLE ARCH BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED DOUBLE ARCH BELOW;;;;
-032C;COMBINING CARON BELOW;Mn;220;NSM;;;;;N;NON-SPACING HACEK BELOW;;;;
-032D;COMBINING CIRCUMFLEX ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING CIRCUMFLEX BELOW;;;;
-032E;COMBINING BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BREVE BELOW;;;;
-032F;COMBINING INVERTED BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BREVE BELOW;;;;
-0330;COMBINING TILDE BELOW;Mn;220;NSM;;;;;N;NON-SPACING TILDE BELOW;;;;
-0331;COMBINING MACRON BELOW;Mn;220;NSM;;;;;N;NON-SPACING MACRON BELOW;;;;
-0332;COMBINING LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING UNDERSCORE;;;;
-0333;COMBINING DOUBLE LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE UNDERSCORE;;;;
-0334;COMBINING TILDE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING TILDE OVERLAY;;;;
-0335;COMBINING SHORT STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT BAR OVERLAY;;;;
-0336;COMBINING LONG STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG BAR OVERLAY;;;;
-0337;COMBINING SHORT SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT SLASH OVERLAY;;;;
-0338;COMBINING LONG SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG SLASH OVERLAY;;;;
-0339;COMBINING RIGHT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT HALF RING BELOW;;;;
-033A;COMBINING INVERTED BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BRIDGE BELOW;;;;
-033B;COMBINING SQUARE BELOW;Mn;220;NSM;;;;;N;NON-SPACING SQUARE BELOW;;;;
-033C;COMBINING SEAGULL BELOW;Mn;220;NSM;;;;;N;NON-SPACING SEAGULL BELOW;;;;
-033D;COMBINING X ABOVE;Mn;230;NSM;;;;;N;NON-SPACING X ABOVE;;;;
-033E;COMBINING VERTICAL TILDE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL TILDE;;;;
-033F;COMBINING DOUBLE OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE OVERSCORE;;;;
-0340;COMBINING GRAVE TONE MARK;Mn;230;NSM;0300;;;;N;NON-SPACING GRAVE TONE MARK;;;;
-0341;COMBINING ACUTE TONE MARK;Mn;230;NSM;0301;;;;N;NON-SPACING ACUTE TONE MARK;;;;
-0342;COMBINING GREEK PERISPOMENI;Mn;230;NSM;;;;;N;;;;;
-0343;COMBINING GREEK KORONIS;Mn;230;NSM;0313;;;;N;;;;;
-0344;COMBINING GREEK DIALYTIKA TONOS;Mn;230;NSM;0308 0301;;;;N;GREEK NON-SPACING DIAERESIS TONOS;;;;
-0345;COMBINING GREEK YPOGEGRAMMENI;Mn;240;NSM;;;;;N;GREEK NON-SPACING IOTA BELOW;;0399;;0399
-0346;COMBINING BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;;
-0347;COMBINING EQUALS SIGN BELOW;Mn;220;NSM;;;;;N;;;;;
-0348;COMBINING DOUBLE VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;;;;;
-0349;COMBINING LEFT ANGLE BELOW;Mn;220;NSM;;;;;N;;;;;
-034A;COMBINING NOT TILDE ABOVE;Mn;230;NSM;;;;;N;;;;;
-034B;COMBINING HOMOTHETIC ABOVE;Mn;230;NSM;;;;;N;;;;;
-034C;COMBINING ALMOST EQUAL TO ABOVE;Mn;230;NSM;;;;;N;;;;;
-034D;COMBINING LEFT RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
-034E;COMBINING UPWARDS ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
-034F;COMBINING GRAPHEME JOINER;Mn;0;NSM;;;;;N;;;;;
-0350;COMBINING RIGHT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
-0351;COMBINING LEFT HALF RING ABOVE;Mn;230;NSM;;;;;N;;;;;
-0352;COMBINING FERMATA;Mn;230;NSM;;;;;N;;;;;
-0353;COMBINING X BELOW;Mn;220;NSM;;;;;N;;;;;
-0354;COMBINING LEFT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
-0355;COMBINING RIGHT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
-0356;COMBINING RIGHT ARROWHEAD AND UP ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
-0357;COMBINING RIGHT HALF RING ABOVE;Mn;230;NSM;;;;;N;;;;;
-0358;COMBINING DOT ABOVE RIGHT;Mn;232;NSM;;;;;N;;;;;
-0359;COMBINING ASTERISK BELOW;Mn;220;NSM;;;;;N;;;;;
-035A;COMBINING DOUBLE RING BELOW;Mn;220;NSM;;;;;N;;;;;
-035B;COMBINING ZIGZAG ABOVE;Mn;230;NSM;;;;;N;;;;;
-035C;COMBINING DOUBLE BREVE BELOW;Mn;233;NSM;;;;;N;;;;;
-035D;COMBINING DOUBLE BREVE;Mn;234;NSM;;;;;N;;;;;
-035E;COMBINING DOUBLE MACRON;Mn;234;NSM;;;;;N;;;;;
-035F;COMBINING DOUBLE MACRON BELOW;Mn;233;NSM;;;;;N;;;;;
-0360;COMBINING DOUBLE TILDE;Mn;234;NSM;;;;;N;;;;;
-0361;COMBINING DOUBLE INVERTED BREVE;Mn;234;NSM;;;;;N;;;;;
-0362;COMBINING DOUBLE RIGHTWARDS ARROW BELOW;Mn;233;NSM;;;;;N;;;;;
-0363;COMBINING LATIN SMALL LETTER A;Mn;230;NSM;;;;;N;;;;;
-0364;COMBINING LATIN SMALL LETTER E;Mn;230;NSM;;;;;N;;;;;
-0365;COMBINING LATIN SMALL LETTER I;Mn;230;NSM;;;;;N;;;;;
-0366;COMBINING LATIN SMALL LETTER O;Mn;230;NSM;;;;;N;;;;;
-0367;COMBINING LATIN SMALL LETTER U;Mn;230;NSM;;;;;N;;;;;
-0368;COMBINING LATIN SMALL LETTER C;Mn;230;NSM;;;;;N;;;;;
-0369;COMBINING LATIN SMALL LETTER D;Mn;230;NSM;;;;;N;;;;;
-036A;COMBINING LATIN SMALL LETTER H;Mn;230;NSM;;;;;N;;;;;
-036B;COMBINING LATIN SMALL LETTER M;Mn;230;NSM;;;;;N;;;;;
-036C;COMBINING LATIN SMALL LETTER R;Mn;230;NSM;;;;;N;;;;;
-036D;COMBINING LATIN SMALL LETTER T;Mn;230;NSM;;;;;N;;;;;
-036E;COMBINING LATIN SMALL LETTER V;Mn;230;NSM;;;;;N;;;;;
-036F;COMBINING LATIN SMALL LETTER X;Mn;230;NSM;;;;;N;;;;;
-0370;GREEK CAPITAL LETTER HETA;Lu;0;L;;;;;N;;;;0371;
-0371;GREEK SMALL LETTER HETA;Ll;0;L;;;;;N;;;0370;;0370
-0372;GREEK CAPITAL LETTER ARCHAIC SAMPI;Lu;0;L;;;;;N;;;;0373;
-0373;GREEK SMALL LETTER ARCHAIC SAMPI;Ll;0;L;;;;;N;;;0372;;0372
-0374;GREEK NUMERAL SIGN;Lm;0;ON;02B9;;;;N;GREEK UPPER NUMERAL SIGN;;;;
-0375;GREEK LOWER NUMERAL SIGN;Sk;0;ON;;;;;N;;;;;
-0376;GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA;Lu;0;L;;;;;N;;;;0377;
-0377;GREEK SMALL LETTER PAMPHYLIAN DIGAMMA;Ll;0;L;;;;;N;;;0376;;0376
-037A;GREEK YPOGEGRAMMENI;Lm;0;L;<compat> 0020 0345;;;;N;GREEK SPACING IOTA BELOW;;;;
-037B;GREEK SMALL REVERSED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FD;;03FD
-037C;GREEK SMALL DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FE;;03FE
-037D;GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL;Ll;0;L;;;;;N;;;03FF;;03FF
-037E;GREEK QUESTION MARK;Po;0;ON;003B;;;;N;;;;;
-0384;GREEK TONOS;Sk;0;ON;<compat> 0020 0301;;;;N;GREEK SPACING TONOS;;;;
-0385;GREEK DIALYTIKA TONOS;Sk;0;ON;00A8 0301;;;;N;GREEK SPACING DIAERESIS TONOS;;;;
-0386;GREEK CAPITAL LETTER ALPHA WITH TONOS;Lu;0;L;0391 0301;;;;N;GREEK CAPITAL LETTER ALPHA TONOS;;;03AC;
-0387;GREEK ANO TELEIA;Po;0;ON;00B7;;;;N;;;;;
-0388;GREEK CAPITAL LETTER EPSILON WITH TONOS;Lu;0;L;0395 0301;;;;N;GREEK CAPITAL LETTER EPSILON TONOS;;;03AD;
-0389;GREEK CAPITAL LETTER ETA WITH TONOS;Lu;0;L;0397 0301;;;;N;GREEK CAPITAL LETTER ETA TONOS;;;03AE;
-038A;GREEK CAPITAL LETTER IOTA WITH TONOS;Lu;0;L;0399 0301;;;;N;GREEK CAPITAL LETTER IOTA TONOS;;;03AF;
-038C;GREEK CAPITAL LETTER OMICRON WITH TONOS;Lu;0;L;039F 0301;;;;N;GREEK CAPITAL LETTER OMICRON TONOS;;;03CC;
-038E;GREEK CAPITAL LETTER UPSILON WITH TONOS;Lu;0;L;03A5 0301;;;;N;GREEK CAPITAL LETTER UPSILON TONOS;;;03CD;
-038F;GREEK CAPITAL LETTER OMEGA WITH TONOS;Lu;0;L;03A9 0301;;;;N;GREEK CAPITAL LETTER OMEGA TONOS;;;03CE;
-0390;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS;Ll;0;L;03CA 0301;;;;N;GREEK SMALL LETTER IOTA DIAERESIS TONOS;;;;
-0391;GREEK CAPITAL LETTER ALPHA;Lu;0;L;;;;;N;;;;03B1;
-0392;GREEK CAPITAL LETTER BETA;Lu;0;L;;;;;N;;;;03B2;
-0393;GREEK CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;03B3;
-0394;GREEK CAPITAL LETTER DELTA;Lu;0;L;;;;;N;;;;03B4;
-0395;GREEK CAPITAL LETTER EPSILON;Lu;0;L;;;;;N;;;;03B5;
-0396;GREEK CAPITAL LETTER ZETA;Lu;0;L;;;;;N;;;;03B6;
-0397;GREEK CAPITAL LETTER ETA;Lu;0;L;;;;;N;;;;03B7;
-0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;
-0399;GREEK CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;03B9;
-039A;GREEK CAPITAL LETTER KAPPA;Lu;0;L;;;;;N;;;;03BA;
-039B;GREEK CAPITAL LETTER LAMDA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER LAMBDA;;;03BB;
-039C;GREEK CAPITAL LETTER MU;Lu;0;L;;;;;N;;;;03BC;
-039D;GREEK CAPITAL LETTER NU;Lu;0;L;;;;;N;;;;03BD;
-039E;GREEK CAPITAL LETTER XI;Lu;0;L;;;;;N;;;;03BE;
-039F;GREEK CAPITAL LETTER OMICRON;Lu;0;L;;;;;N;;;;03BF;
-03A0;GREEK CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;03C0;
-03A1;GREEK CAPITAL LETTER RHO;Lu;0;L;;;;;N;;;;03C1;
-03A3;GREEK CAPITAL LETTER SIGMA;Lu;0;L;;;;;N;;;;03C3;
-03A4;GREEK CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;03C4;
-03A5;GREEK CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;03C5;
-03A6;GREEK CAPITAL LETTER PHI;Lu;0;L;;;;;N;;;;03C6;
-03A7;GREEK CAPITAL LETTER CHI;Lu;0;L;;;;;N;;;;03C7;
-03A8;GREEK CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;03C8;
-03A9;GREEK CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;03C9;
-03AA;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA;Lu;0;L;0399 0308;;;;N;GREEK CAPITAL LETTER IOTA DIAERESIS;;;03CA;
-03AB;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA;Lu;0;L;03A5 0308;;;;N;GREEK CAPITAL LETTER UPSILON DIAERESIS;;;03CB;
-03AC;GREEK SMALL LETTER ALPHA WITH TONOS;Ll;0;L;03B1 0301;;;;N;GREEK SMALL LETTER ALPHA TONOS;;0386;;0386
-03AD;GREEK SMALL LETTER EPSILON WITH TONOS;Ll;0;L;03B5 0301;;;;N;GREEK SMALL LETTER EPSILON TONOS;;0388;;0388
-03AE;GREEK SMALL LETTER ETA WITH TONOS;Ll;0;L;03B7 0301;;;;N;GREEK SMALL LETTER ETA TONOS;;0389;;0389
-03AF;GREEK SMALL LETTER IOTA WITH TONOS;Ll;0;L;03B9 0301;;;;N;GREEK SMALL LETTER IOTA TONOS;;038A;;038A
-03B0;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS;Ll;0;L;03CB 0301;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS TONOS;;;;
-03B1;GREEK SMALL LETTER ALPHA;Ll;0;L;;;;;N;;;0391;;0391
-03B2;GREEK SMALL LETTER BETA;Ll;0;L;;;;;N;;;0392;;0392
-03B3;GREEK SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0393;;0393
-03B4;GREEK SMALL LETTER DELTA;Ll;0;L;;;;;N;;;0394;;0394
-03B5;GREEK SMALL LETTER EPSILON;Ll;0;L;;;;;N;;;0395;;0395
-03B6;GREEK SMALL LETTER ZETA;Ll;0;L;;;;;N;;;0396;;0396
-03B7;GREEK SMALL LETTER ETA;Ll;0;L;;;;;N;;;0397;;0397
-03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398
-03B9;GREEK SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0399;;0399
-03BA;GREEK SMALL LETTER KAPPA;Ll;0;L;;;;;N;;;039A;;039A
-03BB;GREEK SMALL LETTER LAMDA;Ll;0;L;;;;;N;GREEK SMALL LETTER LAMBDA;;039B;;039B
-03BC;GREEK SMALL LETTER MU;Ll;0;L;;;;;N;;;039C;;039C
-03BD;GREEK SMALL LETTER NU;Ll;0;L;;;;;N;;;039D;;039D
-03BE;GREEK SMALL LETTER XI;Ll;0;L;;;;;N;;;039E;;039E
-03BF;GREEK SMALL LETTER OMICRON;Ll;0;L;;;;;N;;;039F;;039F
-03C0;GREEK SMALL LETTER PI;Ll;0;L;;;;;N;;;03A0;;03A0
-03C1;GREEK SMALL LETTER RHO;Ll;0;L;;;;;N;;;03A1;;03A1
-03C2;GREEK SMALL LETTER FINAL SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3
-03C3;GREEK SMALL LETTER SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3
-03C4;GREEK SMALL LETTER TAU;Ll;0;L;;;;;N;;;03A4;;03A4
-03C5;GREEK SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;03A5;;03A5
-03C6;GREEK SMALL LETTER PHI;Ll;0;L;;;;;N;;;03A6;;03A6
-03C7;GREEK SMALL LETTER CHI;Ll;0;L;;;;;N;;;03A7;;03A7
-03C8;GREEK SMALL LETTER PSI;Ll;0;L;;;;;N;;;03A8;;03A8
-03C9;GREEK SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;03A9;;03A9
-03CA;GREEK SMALL LETTER IOTA WITH DIALYTIKA;Ll;0;L;03B9 0308;;;;N;GREEK SMALL LETTER IOTA DIAERESIS;;03AA;;03AA
-03CB;GREEK SMALL LETTER UPSILON WITH DIALYTIKA;Ll;0;L;03C5 0308;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS;;03AB;;03AB
-03CC;GREEK SMALL LETTER OMICRON WITH TONOS;Ll;0;L;03BF 0301;;;;N;GREEK SMALL LETTER OMICRON TONOS;;038C;;038C
-03CD;GREEK SMALL LETTER UPSILON WITH TONOS;Ll;0;L;03C5 0301;;;;N;GREEK SMALL LETTER UPSILON TONOS;;038E;;038E
-03CE;GREEK SMALL LETTER OMEGA WITH TONOS;Ll;0;L;03C9 0301;;;;N;GREEK SMALL LETTER OMEGA TONOS;;038F;;038F
-03CF;GREEK CAPITAL KAI SYMBOL;Lu;0;L;;;;;N;;;;03D7;
-03D0;GREEK BETA SYMBOL;Ll;0;L;<compat> 03B2;;;;N;GREEK SMALL LETTER CURLED BETA;;0392;;0392
-03D1;GREEK THETA SYMBOL;Ll;0;L;<compat> 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398
-03D2;GREEK UPSILON WITH HOOK SYMBOL;Lu;0;L;<compat> 03A5;;;;N;GREEK CAPITAL LETTER UPSILON HOOK;;;;
-03D3;GREEK UPSILON WITH ACUTE AND HOOK SYMBOL;Lu;0;L;03D2 0301;;;;N;GREEK CAPITAL LETTER UPSILON HOOK TONOS;;;;
-03D4;GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL;Lu;0;L;03D2 0308;;;;N;GREEK CAPITAL LETTER UPSILON HOOK DIAERESIS;;;;
-03D5;GREEK PHI SYMBOL;Ll;0;L;<compat> 03C6;;;;N;GREEK SMALL LETTER SCRIPT PHI;;03A6;;03A6
-03D6;GREEK PI SYMBOL;Ll;0;L;<compat> 03C0;;;;N;GREEK SMALL LETTER OMEGA PI;;03A0;;03A0
-03D7;GREEK KAI SYMBOL;Ll;0;L;;;;;N;;;03CF;;03CF
-03D8;GREEK LETTER ARCHAIC KOPPA;Lu;0;L;;;;;N;;;;03D9;
-03D9;GREEK SMALL LETTER ARCHAIC KOPPA;Ll;0;L;;;;;N;;;03D8;;03D8
-03DA;GREEK LETTER STIGMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER STIGMA;;;03DB;
-03DB;GREEK SMALL LETTER STIGMA;Ll;0;L;;;;;N;;;03DA;;03DA
-03DC;GREEK LETTER DIGAMMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DIGAMMA;;;03DD;
-03DD;GREEK SMALL LETTER DIGAMMA;Ll;0;L;;;;;N;;;03DC;;03DC
-03DE;GREEK LETTER KOPPA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KOPPA;;;03DF;
-03DF;GREEK SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;03DE;;03DE
-03E0;GREEK LETTER SAMPI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SAMPI;;;03E1;
-03E1;GREEK SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;03E0;;03E0
-03E2;COPTIC CAPITAL LETTER SHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHEI;;;03E3;
-03E3;COPTIC SMALL LETTER SHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER SHEI;;03E2;;03E2
-03E4;COPTIC CAPITAL LETTER FEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER FEI;;;03E5;
-03E5;COPTIC SMALL LETTER FEI;Ll;0;L;;;;;N;GREEK SMALL LETTER FEI;;03E4;;03E4
-03E6;COPTIC CAPITAL LETTER KHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KHEI;;;03E7;
-03E7;COPTIC SMALL LETTER KHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER KHEI;;03E6;;03E6
-03E8;COPTIC CAPITAL LETTER HORI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER HORI;;;03E9;
-03E9;COPTIC SMALL LETTER HORI;Ll;0;L;;;;;N;GREEK SMALL LETTER HORI;;03E8;;03E8
-03EA;COPTIC CAPITAL LETTER GANGIA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER GANGIA;;;03EB;
-03EB;COPTIC SMALL LETTER GANGIA;Ll;0;L;;;;;N;GREEK SMALL LETTER GANGIA;;03EA;;03EA
-03EC;COPTIC CAPITAL LETTER SHIMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHIMA;;;03ED;
-03ED;COPTIC SMALL LETTER SHIMA;Ll;0;L;;;;;N;GREEK SMALL LETTER SHIMA;;03EC;;03EC
-03EE;COPTIC CAPITAL LETTER DEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DEI;;;03EF;
-03EF;COPTIC SMALL LETTER DEI;Ll;0;L;;;;;N;GREEK SMALL LETTER DEI;;03EE;;03EE
-03F0;GREEK KAPPA SYMBOL;Ll;0;L;<compat> 03BA;;;;N;GREEK SMALL LETTER SCRIPT KAPPA;;039A;;039A
-03F1;GREEK RHO SYMBOL;Ll;0;L;<compat> 03C1;;;;N;GREEK SMALL LETTER TAILED RHO;;03A1;;03A1
-03F2;GREEK LUNATE SIGMA SYMBOL;Ll;0;L;<compat> 03C2;;;;N;GREEK SMALL LETTER LUNATE SIGMA;;03F9;;03F9
-03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;;;
-03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L;<compat> 0398;;;;N;;;;03B8;
-03F5;GREEK LUNATE EPSILON SYMBOL;Ll;0;L;<compat> 03B5;;;;N;;;0395;;0395
-03F6;GREEK REVERSED LUNATE EPSILON SYMBOL;Sm;0;ON;;;;;N;;;;;
-03F7;GREEK CAPITAL LETTER SHO;Lu;0;L;;;;;N;;;;03F8;
-03F8;GREEK SMALL LETTER SHO;Ll;0;L;;;;;N;;;03F7;;03F7
-03F9;GREEK CAPITAL LUNATE SIGMA SYMBOL;Lu;0;L;<compat> 03A3;;;;N;;;;03F2;
-03FA;GREEK CAPITAL LETTER SAN;Lu;0;L;;;;;N;;;;03FB;
-03FB;GREEK SMALL LETTER SAN;Ll;0;L;;;;;N;;;03FA;;03FA
-03FC;GREEK RHO WITH STROKE SYMBOL;Ll;0;L;;;;;N;;;;;
-03FD;GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037B;
-03FE;GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037C;
-03FF;GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL;Lu;0;L;;;;;N;;;;037D;
-0400;CYRILLIC CAPITAL LETTER IE WITH GRAVE;Lu;0;L;0415 0300;;;;N;;;;0450;
-0401;CYRILLIC CAPITAL LETTER IO;Lu;0;L;0415 0308;;;;N;;;;0451;
-0402;CYRILLIC CAPITAL LETTER DJE;Lu;0;L;;;;;N;;;;0452;
-0403;CYRILLIC CAPITAL LETTER GJE;Lu;0;L;0413 0301;;;;N;;;;0453;
-0404;CYRILLIC CAPITAL LETTER UKRAINIAN IE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER E;;;0454;
-0405;CYRILLIC CAPITAL LETTER DZE;Lu;0;L;;;;;N;;;;0455;
-0406;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER I;;;0456;
-0407;CYRILLIC CAPITAL LETTER YI;Lu;0;L;0406 0308;;;;N;;;;0457;
-0408;CYRILLIC CAPITAL LETTER JE;Lu;0;L;;;;;N;;;;0458;
-0409;CYRILLIC CAPITAL LETTER LJE;Lu;0;L;;;;;N;;;;0459;
-040A;CYRILLIC CAPITAL LETTER NJE;Lu;0;L;;;;;N;;;;045A;
-040B;CYRILLIC CAPITAL LETTER TSHE;Lu;0;L;;;;;N;;;;045B;
-040C;CYRILLIC CAPITAL LETTER KJE;Lu;0;L;041A 0301;;;;N;;;;045C;
-040D;CYRILLIC CAPITAL LETTER I WITH GRAVE;Lu;0;L;0418 0300;;;;N;;;;045D;
-040E;CYRILLIC CAPITAL LETTER SHORT U;Lu;0;L;0423 0306;;;;N;;;;045E;
-040F;CYRILLIC CAPITAL LETTER DZHE;Lu;0;L;;;;;N;;;;045F;
-0410;CYRILLIC CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0430;
-0411;CYRILLIC CAPITAL LETTER BE;Lu;0;L;;;;;N;;;;0431;
-0412;CYRILLIC CAPITAL LETTER VE;Lu;0;L;;;;;N;;;;0432;
-0413;CYRILLIC CAPITAL LETTER GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE;;;0433;
-0414;CYRILLIC CAPITAL LETTER DE;Lu;0;L;;;;;N;;;;0434;
-0415;CYRILLIC CAPITAL LETTER IE;Lu;0;L;;;;;N;;;;0435;
-0416;CYRILLIC CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;0436;
-0417;CYRILLIC CAPITAL LETTER ZE;Lu;0;L;;;;;N;;;;0437;
-0418;CYRILLIC CAPITAL LETTER I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER II;;;0438;
-0419;CYRILLIC CAPITAL LETTER SHORT I;Lu;0;L;0418 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT II;;;0439;
-041A;CYRILLIC CAPITAL LETTER KA;Lu;0;L;;;;;N;;;;043A;
-041B;CYRILLIC CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;043B;
-041C;CYRILLIC CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;043C;
-041D;CYRILLIC CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;043D;
-041E;CYRILLIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;043E;
-041F;CYRILLIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;043F;
-0420;CYRILLIC CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;0440;
-0421;CYRILLIC CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;0441;
-0422;CYRILLIC CAPITAL LETTER TE;Lu;0;L;;;;;N;;;;0442;
-0423;CYRILLIC CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0443;
-0424;CYRILLIC CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;0444;
-0425;CYRILLIC CAPITAL LETTER HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA;;;0445;
-0426;CYRILLIC CAPITAL LETTER TSE;Lu;0;L;;;;;N;;;;0446;
-0427;CYRILLIC CAPITAL LETTER CHE;Lu;0;L;;;;;N;;;;0447;
-0428;CYRILLIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0448;
-0429;CYRILLIC CAPITAL LETTER SHCHA;Lu;0;L;;;;;N;;;;0449;
-042A;CYRILLIC CAPITAL LETTER HARD SIGN;Lu;0;L;;;;;N;;;;044A;
-042B;CYRILLIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER YERI;;;044B;
-042C;CYRILLIC CAPITAL LETTER SOFT SIGN;Lu;0;L;;;;;N;;;;044C;
-042D;CYRILLIC CAPITAL LETTER E;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED E;;;044D;
-042E;CYRILLIC CAPITAL LETTER YU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IU;;;044E;
-042F;CYRILLIC CAPITAL LETTER YA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IA;;;044F;
-0430;CYRILLIC SMALL LETTER A;Ll;0;L;;;;;N;;;0410;;0410
-0431;CYRILLIC SMALL LETTER BE;Ll;0;L;;;;;N;;;0411;;0411
-0432;CYRILLIC SMALL LETTER VE;Ll;0;L;;;;;N;;;0412;;0412
-0433;CYRILLIC SMALL LETTER GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE;;0413;;0413
-0434;CYRILLIC SMALL LETTER DE;Ll;0;L;;;;;N;;;0414;;0414
-0435;CYRILLIC SMALL LETTER IE;Ll;0;L;;;;;N;;;0415;;0415
-0436;CYRILLIC SMALL LETTER ZHE;Ll;0;L;;;;;N;;;0416;;0416
-0437;CYRILLIC SMALL LETTER ZE;Ll;0;L;;;;;N;;;0417;;0417
-0438;CYRILLIC SMALL LETTER I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER II;;0418;;0418
-0439;CYRILLIC SMALL LETTER SHORT I;Ll;0;L;0438 0306;;;;N;CYRILLIC SMALL LETTER SHORT II;;0419;;0419
-043A;CYRILLIC SMALL LETTER KA;Ll;0;L;;;;;N;;;041A;;041A
-043B;CYRILLIC SMALL LETTER EL;Ll;0;L;;;;;N;;;041B;;041B
-043C;CYRILLIC SMALL LETTER EM;Ll;0;L;;;;;N;;;041C;;041C
-043D;CYRILLIC SMALL LETTER EN;Ll;0;L;;;;;N;;;041D;;041D
-043E;CYRILLIC SMALL LETTER O;Ll;0;L;;;;;N;;;041E;;041E
-043F;CYRILLIC SMALL LETTER PE;Ll;0;L;;;;;N;;;041F;;041F
-0440;CYRILLIC SMALL LETTER ER;Ll;0;L;;;;;N;;;0420;;0420
-0441;CYRILLIC SMALL LETTER ES;Ll;0;L;;;;;N;;;0421;;0421
-0442;CYRILLIC SMALL LETTER TE;Ll;0;L;;;;;N;;;0422;;0422
-0443;CYRILLIC SMALL LETTER U;Ll;0;L;;;;;N;;;0423;;0423
-0444;CYRILLIC SMALL LETTER EF;Ll;0;L;;;;;N;;;0424;;0424
-0445;CYRILLIC SMALL LETTER HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA;;0425;;0425
-0446;CYRILLIC SMALL LETTER TSE;Ll;0;L;;;;;N;;;0426;;0426
-0447;CYRILLIC SMALL LETTER CHE;Ll;0;L;;;;;N;;;0427;;0427
-0448;CYRILLIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;0428;;0428
-0449;CYRILLIC SMALL LETTER SHCHA;Ll;0;L;;;;;N;;;0429;;0429
-044A;CYRILLIC SMALL LETTER HARD SIGN;Ll;0;L;;;;;N;;;042A;;042A
-044B;CYRILLIC SMALL LETTER YERU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER YERI;;042B;;042B
-044C;CYRILLIC SMALL LETTER SOFT SIGN;Ll;0;L;;;;;N;;;042C;;042C
-044D;CYRILLIC SMALL LETTER E;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED E;;042D;;042D
-044E;CYRILLIC SMALL LETTER YU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IU;;042E;;042E
-044F;CYRILLIC SMALL LETTER YA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IA;;042F;;042F
-0450;CYRILLIC SMALL LETTER IE WITH GRAVE;Ll;0;L;0435 0300;;;;N;;;0400;;0400
-0451;CYRILLIC SMALL LETTER IO;Ll;0;L;0435 0308;;;;N;;;0401;;0401
-0452;CYRILLIC SMALL LETTER DJE;Ll;0;L;;;;;N;;;0402;;0402
-0453;CYRILLIC SMALL LETTER GJE;Ll;0;L;0433 0301;;;;N;;;0403;;0403
-0454;CYRILLIC SMALL LETTER UKRAINIAN IE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER E;;0404;;0404
-0455;CYRILLIC SMALL LETTER DZE;Ll;0;L;;;;;N;;;0405;;0405
-0456;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER I;;0406;;0406
-0457;CYRILLIC SMALL LETTER YI;Ll;0;L;0456 0308;;;;N;;;0407;;0407
-0458;CYRILLIC SMALL LETTER JE;Ll;0;L;;;;;N;;;0408;;0408
-0459;CYRILLIC SMALL LETTER LJE;Ll;0;L;;;;;N;;;0409;;0409
-045A;CYRILLIC SMALL LETTER NJE;Ll;0;L;;;;;N;;;040A;;040A
-045B;CYRILLIC SMALL LETTER TSHE;Ll;0;L;;;;;N;;;040B;;040B
-045C;CYRILLIC SMALL LETTER KJE;Ll;0;L;043A 0301;;;;N;;;040C;;040C
-045D;CYRILLIC SMALL LETTER I WITH GRAVE;Ll;0;L;0438 0300;;;;N;;;040D;;040D
-045E;CYRILLIC SMALL LETTER SHORT U;Ll;0;L;0443 0306;;;;N;;;040E;;040E
-045F;CYRILLIC SMALL LETTER DZHE;Ll;0;L;;;;;N;;;040F;;040F
-0460;CYRILLIC CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;0461;
-0461;CYRILLIC SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;0460;;0460
-0462;CYRILLIC CAPITAL LETTER YAT;Lu;0;L;;;;;N;;;;0463;
-0463;CYRILLIC SMALL LETTER YAT;Ll;0;L;;;;;N;;;0462;;0462
-0464;CYRILLIC CAPITAL LETTER IOTIFIED E;Lu;0;L;;;;;N;;;;0465;
-0465;CYRILLIC SMALL LETTER IOTIFIED E;Ll;0;L;;;;;N;;;0464;;0464
-0466;CYRILLIC CAPITAL LETTER LITTLE YUS;Lu;0;L;;;;;N;;;;0467;
-0467;CYRILLIC SMALL LETTER LITTLE YUS;Ll;0;L;;;;;N;;;0466;;0466
-0468;CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS;Lu;0;L;;;;;N;;;;0469;
-0469;CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS;Ll;0;L;;;;;N;;;0468;;0468
-046A;CYRILLIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;046B;
-046B;CYRILLIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;046A;;046A
-046C;CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS;Lu;0;L;;;;;N;;;;046D;
-046D;CYRILLIC SMALL LETTER IOTIFIED BIG YUS;Ll;0;L;;;;;N;;;046C;;046C
-046E;CYRILLIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;046F;
-046F;CYRILLIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;046E;;046E
-0470;CYRILLIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;0471;
-0471;CYRILLIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;0470;;0470
-0472;CYRILLIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;0473;
-0473;CYRILLIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;0472;;0472
-0474;CYRILLIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;0475;
-0475;CYRILLIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;0474;;0474
-0476;CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Lu;0;L;0474 030F;;;;N;CYRILLIC CAPITAL LETTER IZHITSA DOUBLE GRAVE;;;0477;
-0477;CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Ll;0;L;0475 030F;;;;N;CYRILLIC SMALL LETTER IZHITSA DOUBLE GRAVE;;0476;;0476
-0478;CYRILLIC CAPITAL LETTER UK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER UK DIGRAPH;;;0479;
-0479;CYRILLIC SMALL LETTER UK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER UK DIGRAPH;;0478;;0478
-047A;CYRILLIC CAPITAL LETTER ROUND OMEGA;Lu;0;L;;;;;N;;;;047B;
-047B;CYRILLIC SMALL LETTER ROUND OMEGA;Ll;0;L;;;;;N;;;047A;;047A
-047C;CYRILLIC CAPITAL LETTER OMEGA WITH TITLO;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER OMEGA TITLO;;;047D;
-047D;CYRILLIC SMALL LETTER OMEGA WITH TITLO;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER OMEGA TITLO;;047C;;047C
-047E;CYRILLIC CAPITAL LETTER OT;Lu;0;L;;;;;N;;;;047F;
-047F;CYRILLIC SMALL LETTER OT;Ll;0;L;;;;;N;;;047E;;047E
-0480;CYRILLIC CAPITAL LETTER KOPPA;Lu;0;L;;;;;N;;;;0481;
-0481;CYRILLIC SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;0480;;0480
-0482;CYRILLIC THOUSANDS SIGN;So;0;L;;;;;N;;;;;
-0483;COMBINING CYRILLIC TITLO;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING TITLO;;;;
-0484;COMBINING CYRILLIC PALATALIZATION;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PALATALIZATION;;;;
-0485;COMBINING CYRILLIC DASIA PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING DASIA PNEUMATA;;;;
-0486;COMBINING CYRILLIC PSILI PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PSILI PNEUMATA;;;;
-0487;COMBINING CYRILLIC POKRYTIE;Mn;230;NSM;;;;;N;;;;;
-0488;COMBINING CYRILLIC HUNDRED THOUSANDS SIGN;Me;0;NSM;;;;;N;;;;;
-0489;COMBINING CYRILLIC MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
-048A;CYRILLIC CAPITAL LETTER SHORT I WITH TAIL;Lu;0;L;;;;;N;;;;048B;
-048B;CYRILLIC SMALL LETTER SHORT I WITH TAIL;Ll;0;L;;;;;N;;;048A;;048A
-048C;CYRILLIC CAPITAL LETTER SEMISOFT SIGN;Lu;0;L;;;;;N;;;;048D;
-048D;CYRILLIC SMALL LETTER SEMISOFT SIGN;Ll;0;L;;;;;N;;;048C;;048C
-048E;CYRILLIC CAPITAL LETTER ER WITH TICK;Lu;0;L;;;;;N;;;;048F;
-048F;CYRILLIC SMALL LETTER ER WITH TICK;Ll;0;L;;;;;N;;;048E;;048E
-0490;CYRILLIC CAPITAL LETTER GHE WITH UPTURN;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE WITH UPTURN;;;0491;
-0491;CYRILLIC SMALL LETTER GHE WITH UPTURN;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE WITH UPTURN;;0490;;0490
-0492;CYRILLIC CAPITAL LETTER GHE WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE BAR;;;0493;
-0493;CYRILLIC SMALL LETTER GHE WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE BAR;;0492;;0492
-0494;CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE HOOK;;;0495;
-0495;CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE HOOK;;0494;;0494
-0496;CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZHE WITH RIGHT DESCENDER;;;0497;
-0497;CYRILLIC SMALL LETTER ZHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZHE WITH RIGHT DESCENDER;;0496;;0496
-0498;CYRILLIC CAPITAL LETTER ZE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZE CEDILLA;;;0499;
-0499;CYRILLIC SMALL LETTER ZE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZE CEDILLA;;0498;;0498
-049A;CYRILLIC CAPITAL LETTER KA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA WITH RIGHT DESCENDER;;;049B;
-049B;CYRILLIC SMALL LETTER KA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA WITH RIGHT DESCENDER;;049A;;049A
-049C;CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA VERTICAL BAR;;;049D;
-049D;CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA VERTICAL BAR;;049C;;049C
-049E;CYRILLIC CAPITAL LETTER KA WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA BAR;;;049F;
-049F;CYRILLIC SMALL LETTER KA WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA BAR;;049E;;049E
-04A0;CYRILLIC CAPITAL LETTER BASHKIR KA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED GE KA;;;04A1;
-04A1;CYRILLIC SMALL LETTER BASHKIR KA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED GE KA;;04A0;;04A0
-04A2;CYRILLIC CAPITAL LETTER EN WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN WITH RIGHT DESCENDER;;;04A3;
-04A3;CYRILLIC SMALL LETTER EN WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN WITH RIGHT DESCENDER;;04A2;;04A2
-04A4;CYRILLIC CAPITAL LIGATURE EN GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN GE;;;04A5;
-04A5;CYRILLIC SMALL LIGATURE EN GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN GE;;04A4;;04A4
-04A6;CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER PE HOOK;;;04A7;
-04A7;CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER PE HOOK;;04A6;;04A6
-04A8;CYRILLIC CAPITAL LETTER ABKHASIAN HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER O HOOK;;;04A9;
-04A9;CYRILLIC SMALL LETTER ABKHASIAN HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER O HOOK;;04A8;;04A8
-04AA;CYRILLIC CAPITAL LETTER ES WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ES CEDILLA;;;04AB;
-04AB;CYRILLIC SMALL LETTER ES WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ES CEDILLA;;04AA;;04AA
-04AC;CYRILLIC CAPITAL LETTER TE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE WITH RIGHT DESCENDER;;;04AD;
-04AD;CYRILLIC SMALL LETTER TE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE WITH RIGHT DESCENDER;;04AC;;04AC
-04AE;CYRILLIC CAPITAL LETTER STRAIGHT U;Lu;0;L;;;;;N;;;;04AF;
-04AF;CYRILLIC SMALL LETTER STRAIGHT U;Ll;0;L;;;;;N;;;04AE;;04AE
-04B0;CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER STRAIGHT U BAR;;;04B1;
-04B1;CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER STRAIGHT U BAR;;04B0;;04B0
-04B2;CYRILLIC CAPITAL LETTER HA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA WITH RIGHT DESCENDER;;;04B3;
-04B3;CYRILLIC SMALL LETTER HA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA WITH RIGHT DESCENDER;;04B2;;04B2
-04B4;CYRILLIC CAPITAL LIGATURE TE TSE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE TSE;;;04B5;
-04B5;CYRILLIC SMALL LIGATURE TE TSE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE TSE;;04B4;;04B4
-04B6;CYRILLIC CAPITAL LETTER CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH RIGHT DESCENDER;;;04B7;
-04B7;CYRILLIC SMALL LETTER CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH RIGHT DESCENDER;;04B6;;04B6
-04B8;CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE VERTICAL BAR;;;04B9;
-04B9;CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE VERTICAL BAR;;04B8;;04B8
-04BA;CYRILLIC CAPITAL LETTER SHHA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER H;;;04BB;
-04BB;CYRILLIC SMALL LETTER SHHA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER H;;04BA;;04BA
-04BC;CYRILLIC CAPITAL LETTER ABKHASIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK;;;04BD;
-04BD;CYRILLIC SMALL LETTER ABKHASIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK;;04BC;;04BC
-04BE;CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK OGONEK;;;04BF;
-04BF;CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK OGONEK;;04BE;;04BE
-04C0;CYRILLIC LETTER PALOCHKA;Lu;0;L;;;;;N;CYRILLIC LETTER I;;;04CF;
-04C1;CYRILLIC CAPITAL LETTER ZHE WITH BREVE;Lu;0;L;0416 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT ZHE;;;04C2;
-04C2;CYRILLIC SMALL LETTER ZHE WITH BREVE;Ll;0;L;0436 0306;;;;N;CYRILLIC SMALL LETTER SHORT ZHE;;04C1;;04C1
-04C3;CYRILLIC CAPITAL LETTER KA WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA HOOK;;;04C4;
-04C4;CYRILLIC SMALL LETTER KA WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA HOOK;;04C3;;04C3
-04C5;CYRILLIC CAPITAL LETTER EL WITH TAIL;Lu;0;L;;;;;N;;;;04C6;
-04C6;CYRILLIC SMALL LETTER EL WITH TAIL;Ll;0;L;;;;;N;;;04C5;;04C5
-04C7;CYRILLIC CAPITAL LETTER EN WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN HOOK;;;04C8;
-04C8;CYRILLIC SMALL LETTER EN WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN HOOK;;04C7;;04C7
-04C9;CYRILLIC CAPITAL LETTER EN WITH TAIL;Lu;0;L;;;;;N;;;;04CA;
-04CA;CYRILLIC SMALL LETTER EN WITH TAIL;Ll;0;L;;;;;N;;;04C9;;04C9
-04CB;CYRILLIC CAPITAL LETTER KHAKASSIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH LEFT DESCENDER;;;04CC;
-04CC;CYRILLIC SMALL LETTER KHAKASSIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH LEFT DESCENDER;;04CB;;04CB
-04CD;CYRILLIC CAPITAL LETTER EM WITH TAIL;Lu;0;L;;;;;N;;;;04CE;
-04CE;CYRILLIC SMALL LETTER EM WITH TAIL;Ll;0;L;;;;;N;;;04CD;;04CD
-04CF;CYRILLIC SMALL LETTER PALOCHKA;Ll;0;L;;;;;N;;;04C0;;04C0
-04D0;CYRILLIC CAPITAL LETTER A WITH BREVE;Lu;0;L;0410 0306;;;;N;;;;04D1;
-04D1;CYRILLIC SMALL LETTER A WITH BREVE;Ll;0;L;0430 0306;;;;N;;;04D0;;04D0
-04D2;CYRILLIC CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0410 0308;;;;N;;;;04D3;
-04D3;CYRILLIC SMALL LETTER A WITH DIAERESIS;Ll;0;L;0430 0308;;;;N;;;04D2;;04D2
-04D4;CYRILLIC CAPITAL LIGATURE A IE;Lu;0;L;;;;;N;;;;04D5;
-04D5;CYRILLIC SMALL LIGATURE A IE;Ll;0;L;;;;;N;;;04D4;;04D4
-04D6;CYRILLIC CAPITAL LETTER IE WITH BREVE;Lu;0;L;0415 0306;;;;N;;;;04D7;
-04D7;CYRILLIC SMALL LETTER IE WITH BREVE;Ll;0;L;0435 0306;;;;N;;;04D6;;04D6
-04D8;CYRILLIC CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;04D9;
-04D9;CYRILLIC SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;04D8;;04D8
-04DA;CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS;Lu;0;L;04D8 0308;;;;N;;;;04DB;
-04DB;CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS;Ll;0;L;04D9 0308;;;;N;;;04DA;;04DA
-04DC;CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS;Lu;0;L;0416 0308;;;;N;;;;04DD;
-04DD;CYRILLIC SMALL LETTER ZHE WITH DIAERESIS;Ll;0;L;0436 0308;;;;N;;;04DC;;04DC
-04DE;CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS;Lu;0;L;0417 0308;;;;N;;;;04DF;
-04DF;CYRILLIC SMALL LETTER ZE WITH DIAERESIS;Ll;0;L;0437 0308;;;;N;;;04DE;;04DE
-04E0;CYRILLIC CAPITAL LETTER ABKHASIAN DZE;Lu;0;L;;;;;N;;;;04E1;
-04E1;CYRILLIC SMALL LETTER ABKHASIAN DZE;Ll;0;L;;;;;N;;;04E0;;04E0
-04E2;CYRILLIC CAPITAL LETTER I WITH MACRON;Lu;0;L;0418 0304;;;;N;;;;04E3;
-04E3;CYRILLIC SMALL LETTER I WITH MACRON;Ll;0;L;0438 0304;;;;N;;;04E2;;04E2
-04E4;CYRILLIC CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0418 0308;;;;N;;;;04E5;
-04E5;CYRILLIC SMALL LETTER I WITH DIAERESIS;Ll;0;L;0438 0308;;;;N;;;04E4;;04E4
-04E6;CYRILLIC CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;041E 0308;;;;N;;;;04E7;
-04E7;CYRILLIC SMALL LETTER O WITH DIAERESIS;Ll;0;L;043E 0308;;;;N;;;04E6;;04E6
-04E8;CYRILLIC CAPITAL LETTER BARRED O;Lu;0;L;;;;;N;;;;04E9;
-04E9;CYRILLIC SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;04E8;;04E8
-04EA;CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS;Lu;0;L;04E8 0308;;;;N;;;;04EB;
-04EB;CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS;Ll;0;L;04E9 0308;;;;N;;;04EA;;04EA
-04EC;CYRILLIC CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;042D 0308;;;;N;;;;04ED;
-04ED;CYRILLIC SMALL LETTER E WITH DIAERESIS;Ll;0;L;044D 0308;;;;N;;;04EC;;04EC
-04EE;CYRILLIC CAPITAL LETTER U WITH MACRON;Lu;0;L;0423 0304;;;;N;;;;04EF;
-04EF;CYRILLIC SMALL LETTER U WITH MACRON;Ll;0;L;0443 0304;;;;N;;;04EE;;04EE
-04F0;CYRILLIC CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0423 0308;;;;N;;;;04F1;
-04F1;CYRILLIC SMALL LETTER U WITH DIAERESIS;Ll;0;L;0443 0308;;;;N;;;04F0;;04F0
-04F2;CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0423 030B;;;;N;;;;04F3;
-04F3;CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0443 030B;;;;N;;;04F2;;04F2
-04F4;CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS;Lu;0;L;0427 0308;;;;N;;;;04F5;
-04F5;CYRILLIC SMALL LETTER CHE WITH DIAERESIS;Ll;0;L;0447 0308;;;;N;;;04F4;;04F4
-04F6;CYRILLIC CAPITAL LETTER GHE WITH DESCENDER;Lu;0;L;;;;;N;;;;04F7;
-04F7;CYRILLIC SMALL LETTER GHE WITH DESCENDER;Ll;0;L;;;;;N;;;04F6;;04F6
-04F8;CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS;Lu;0;L;042B 0308;;;;N;;;;04F9;
-04F9;CYRILLIC SMALL LETTER YERU WITH DIAERESIS;Ll;0;L;044B 0308;;;;N;;;04F8;;04F8
-04FA;CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK;Lu;0;L;;;;;N;;;;04FB;
-04FB;CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK;Ll;0;L;;;;;N;;;04FA;;04FA
-04FC;CYRILLIC CAPITAL LETTER HA WITH HOOK;Lu;0;L;;;;;N;;;;04FD;
-04FD;CYRILLIC SMALL LETTER HA WITH HOOK;Ll;0;L;;;;;N;;;04FC;;04FC
-04FE;CYRILLIC CAPITAL LETTER HA WITH STROKE;Lu;0;L;;;;;N;;;;04FF;
-04FF;CYRILLIC SMALL LETTER HA WITH STROKE;Ll;0;L;;;;;N;;;04FE;;04FE
-0500;CYRILLIC CAPITAL LETTER KOMI DE;Lu;0;L;;;;;N;;;;0501;
-0501;CYRILLIC SMALL LETTER KOMI DE;Ll;0;L;;;;;N;;;0500;;0500
-0502;CYRILLIC CAPITAL LETTER KOMI DJE;Lu;0;L;;;;;N;;;;0503;
-0503;CYRILLIC SMALL LETTER KOMI DJE;Ll;0;L;;;;;N;;;0502;;0502
-0504;CYRILLIC CAPITAL LETTER KOMI ZJE;Lu;0;L;;;;;N;;;;0505;
-0505;CYRILLIC SMALL LETTER KOMI ZJE;Ll;0;L;;;;;N;;;0504;;0504
-0506;CYRILLIC CAPITAL LETTER KOMI DZJE;Lu;0;L;;;;;N;;;;0507;
-0507;CYRILLIC SMALL LETTER KOMI DZJE;Ll;0;L;;;;;N;;;0506;;0506
-0508;CYRILLIC CAPITAL LETTER KOMI LJE;Lu;0;L;;;;;N;;;;0509;
-0509;CYRILLIC SMALL LETTER KOMI LJE;Ll;0;L;;;;;N;;;0508;;0508
-050A;CYRILLIC CAPITAL LETTER KOMI NJE;Lu;0;L;;;;;N;;;;050B;
-050B;CYRILLIC SMALL LETTER KOMI NJE;Ll;0;L;;;;;N;;;050A;;050A
-050C;CYRILLIC CAPITAL LETTER KOMI SJE;Lu;0;L;;;;;N;;;;050D;
-050D;CYRILLIC SMALL LETTER KOMI SJE;Ll;0;L;;;;;N;;;050C;;050C
-050E;CYRILLIC CAPITAL LETTER KOMI TJE;Lu;0;L;;;;;N;;;;050F;
-050F;CYRILLIC SMALL LETTER KOMI TJE;Ll;0;L;;;;;N;;;050E;;050E
-0510;CYRILLIC CAPITAL LETTER REVERSED ZE;Lu;0;L;;;;;N;;;;0511;
-0511;CYRILLIC SMALL LETTER REVERSED ZE;Ll;0;L;;;;;N;;;0510;;0510
-0512;CYRILLIC CAPITAL LETTER EL WITH HOOK;Lu;0;L;;;;;N;;;;0513;
-0513;CYRILLIC SMALL LETTER EL WITH HOOK;Ll;0;L;;;;;N;;;0512;;0512
-0514;CYRILLIC CAPITAL LETTER LHA;Lu;0;L;;;;;N;;;;0515;
-0515;CYRILLIC SMALL LETTER LHA;Ll;0;L;;;;;N;;;0514;;0514
-0516;CYRILLIC CAPITAL LETTER RHA;Lu;0;L;;;;;N;;;;0517;
-0517;CYRILLIC SMALL LETTER RHA;Ll;0;L;;;;;N;;;0516;;0516
-0518;CYRILLIC CAPITAL LETTER YAE;Lu;0;L;;;;;N;;;;0519;
-0519;CYRILLIC SMALL LETTER YAE;Ll;0;L;;;;;N;;;0518;;0518
-051A;CYRILLIC CAPITAL LETTER QA;Lu;0;L;;;;;N;;;;051B;
-051B;CYRILLIC SMALL LETTER QA;Ll;0;L;;;;;N;;;051A;;051A
-051C;CYRILLIC CAPITAL LETTER WE;Lu;0;L;;;;;N;;;;051D;
-051D;CYRILLIC SMALL LETTER WE;Ll;0;L;;;;;N;;;051C;;051C
-051E;CYRILLIC CAPITAL LETTER ALEUT KA;Lu;0;L;;;;;N;;;;051F;
-051F;CYRILLIC SMALL LETTER ALEUT KA;Ll;0;L;;;;;N;;;051E;;051E
-0520;CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK;Lu;0;L;;;;;N;;;;0521;
-0521;CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK;Ll;0;L;;;;;N;;;0520;;0520
-0522;CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK;Lu;0;L;;;;;N;;;;0523;
-0523;CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK;Ll;0;L;;;;;N;;;0522;;0522
-0524;CYRILLIC CAPITAL LETTER PE WITH DESCENDER;Lu;0;L;;;;;N;;;;0525;
-0525;CYRILLIC SMALL LETTER PE WITH DESCENDER;Ll;0;L;;;;;N;;;0524;;0524
-0526;CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER;Lu;0;L;;;;;N;;;;0527;
-0527;CYRILLIC SMALL LETTER SHHA WITH DESCENDER;Ll;0;L;;;;;N;;;0526;;0526
-0531;ARMENIAN CAPITAL LETTER AYB;Lu;0;L;;;;;N;;;;0561;
-0532;ARMENIAN CAPITAL LETTER BEN;Lu;0;L;;;;;N;;;;0562;
-0533;ARMENIAN CAPITAL LETTER GIM;Lu;0;L;;;;;N;;;;0563;
-0534;ARMENIAN CAPITAL LETTER DA;Lu;0;L;;;;;N;;;;0564;
-0535;ARMENIAN CAPITAL LETTER ECH;Lu;0;L;;;;;N;;;;0565;
-0536;ARMENIAN CAPITAL LETTER ZA;Lu;0;L;;;;;N;;;;0566;
-0537;ARMENIAN CAPITAL LETTER EH;Lu;0;L;;;;;N;;;;0567;
-0538;ARMENIAN CAPITAL LETTER ET;Lu;0;L;;;;;N;;;;0568;
-0539;ARMENIAN CAPITAL LETTER TO;Lu;0;L;;;;;N;;;;0569;
-053A;ARMENIAN CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;056A;
-053B;ARMENIAN CAPITAL LETTER INI;Lu;0;L;;;;;N;;;;056B;
-053C;ARMENIAN CAPITAL LETTER LIWN;Lu;0;L;;;;;N;;;;056C;
-053D;ARMENIAN CAPITAL LETTER XEH;Lu;0;L;;;;;N;;;;056D;
-053E;ARMENIAN CAPITAL LETTER CA;Lu;0;L;;;;;N;;;;056E;
-053F;ARMENIAN CAPITAL LETTER KEN;Lu;0;L;;;;;N;;;;056F;
-0540;ARMENIAN CAPITAL LETTER HO;Lu;0;L;;;;;N;;;;0570;
-0541;ARMENIAN CAPITAL LETTER JA;Lu;0;L;;;;;N;;;;0571;
-0542;ARMENIAN CAPITAL LETTER GHAD;Lu;0;L;;;;;N;ARMENIAN CAPITAL LETTER LAD;;;0572;
-0543;ARMENIAN CAPITAL LETTER CHEH;Lu;0;L;;;;;N;;;;0573;
-0544;ARMENIAN CAPITAL LETTER MEN;Lu;0;L;;;;;N;;;;0574;
-0545;ARMENIAN CAPITAL LETTER YI;Lu;0;L;;;;;N;;;;0575;
-0546;ARMENIAN CAPITAL LETTER NOW;Lu;0;L;;;;;N;;;;0576;
-0547;ARMENIAN CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0577;
-0548;ARMENIAN CAPITAL LETTER VO;Lu;0;L;;;;;N;;;;0578;
-0549;ARMENIAN CAPITAL LETTER CHA;Lu;0;L;;;;;N;;;;0579;
-054A;ARMENIAN CAPITAL LETTER PEH;Lu;0;L;;;;;N;;;;057A;
-054B;ARMENIAN CAPITAL LETTER JHEH;Lu;0;L;;;;;N;;;;057B;
-054C;ARMENIAN CAPITAL LETTER RA;Lu;0;L;;;;;N;;;;057C;
-054D;ARMENIAN CAPITAL LETTER SEH;Lu;0;L;;;;;N;;;;057D;
-054E;ARMENIAN CAPITAL LETTER VEW;Lu;0;L;;;;;N;;;;057E;
-054F;ARMENIAN CAPITAL LETTER TIWN;Lu;0;L;;;;;N;;;;057F;
-0550;ARMENIAN CAPITAL LETTER REH;Lu;0;L;;;;;N;;;;0580;
-0551;ARMENIAN CAPITAL LETTER CO;Lu;0;L;;;;;N;;;;0581;
-0552;ARMENIAN CAPITAL LETTER YIWN;Lu;0;L;;;;;N;;;;0582;
-0553;ARMENIAN CAPITAL LETTER PIWR;Lu;0;L;;;;;N;;;;0583;
-0554;ARMENIAN CAPITAL LETTER KEH;Lu;0;L;;;;;N;;;;0584;
-0555;ARMENIAN CAPITAL LETTER OH;Lu;0;L;;;;;N;;;;0585;
-0556;ARMENIAN CAPITAL LETTER FEH;Lu;0;L;;;;;N;;;;0586;
-0559;ARMENIAN MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;;
-055A;ARMENIAN APOSTROPHE;Po;0;L;;;;;N;ARMENIAN MODIFIER LETTER RIGHT HALF RING;;;;
-055B;ARMENIAN EMPHASIS MARK;Po;0;L;;;;;N;;;;;
-055C;ARMENIAN EXCLAMATION MARK;Po;0;L;;;;;N;;;;;
-055D;ARMENIAN COMMA;Po;0;L;;;;;N;;;;;
-055E;ARMENIAN QUESTION MARK;Po;0;L;;;;;N;;;;;
-055F;ARMENIAN ABBREVIATION MARK;Po;0;L;;;;;N;;;;;
-0561;ARMENIAN SMALL LETTER AYB;Ll;0;L;;;;;N;;;0531;;0531
-0562;ARMENIAN SMALL LETTER BEN;Ll;0;L;;;;;N;;;0532;;0532
-0563;ARMENIAN SMALL LETTER GIM;Ll;0;L;;;;;N;;;0533;;0533
-0564;ARMENIAN SMALL LETTER DA;Ll;0;L;;;;;N;;;0534;;0534
-0565;ARMENIAN SMALL LETTER ECH;Ll;0;L;;;;;N;;;0535;;0535
-0566;ARMENIAN SMALL LETTER ZA;Ll;0;L;;;;;N;;;0536;;0536
-0567;ARMENIAN SMALL LETTER EH;Ll;0;L;;;;;N;;;0537;;0537
-0568;ARMENIAN SMALL LETTER ET;Ll;0;L;;;;;N;;;0538;;0538
-0569;ARMENIAN SMALL LETTER TO;Ll;0;L;;;;;N;;;0539;;0539
-056A;ARMENIAN SMALL LETTER ZHE;Ll;0;L;;;;;N;;;053A;;053A
-056B;ARMENIAN SMALL LETTER INI;Ll;0;L;;;;;N;;;053B;;053B
-056C;ARMENIAN SMALL LETTER LIWN;Ll;0;L;;;;;N;;;053C;;053C
-056D;ARMENIAN SMALL LETTER XEH;Ll;0;L;;;;;N;;;053D;;053D
-056E;ARMENIAN SMALL LETTER CA;Ll;0;L;;;;;N;;;053E;;053E
-056F;ARMENIAN SMALL LETTER KEN;Ll;0;L;;;;;N;;;053F;;053F
-0570;ARMENIAN SMALL LETTER HO;Ll;0;L;;;;;N;;;0540;;0540
-0571;ARMENIAN SMALL LETTER JA;Ll;0;L;;;;;N;;;0541;;0541
-0572;ARMENIAN SMALL LETTER GHAD;Ll;0;L;;;;;N;ARMENIAN SMALL LETTER LAD;;0542;;0542
-0573;ARMENIAN SMALL LETTER CHEH;Ll;0;L;;;;;N;;;0543;;0543
-0574;ARMENIAN SMALL LETTER MEN;Ll;0;L;;;;;N;;;0544;;0544
-0575;ARMENIAN SMALL LETTER YI;Ll;0;L;;;;;N;;;0545;;0545
-0576;ARMENIAN SMALL LETTER NOW;Ll;0;L;;;;;N;;;0546;;0546
-0577;ARMENIAN SMALL LETTER SHA;Ll;0;L;;;;;N;;;0547;;0547
-0578;ARMENIAN SMALL LETTER VO;Ll;0;L;;;;;N;;;0548;;0548
-0579;ARMENIAN SMALL LETTER CHA;Ll;0;L;;;;;N;;;0549;;0549
-057A;ARMENIAN SMALL LETTER PEH;Ll;0;L;;;;;N;;;054A;;054A
-057B;ARMENIAN SMALL LETTER JHEH;Ll;0;L;;;;;N;;;054B;;054B
-057C;ARMENIAN SMALL LETTER RA;Ll;0;L;;;;;N;;;054C;;054C
-057D;ARMENIAN SMALL LETTER SEH;Ll;0;L;;;;;N;;;054D;;054D
-057E;ARMENIAN SMALL LETTER VEW;Ll;0;L;;;;;N;;;054E;;054E
-057F;ARMENIAN SMALL LETTER TIWN;Ll;0;L;;;;;N;;;054F;;054F
-0580;ARMENIAN SMALL LETTER REH;Ll;0;L;;;;;N;;;0550;;0550
-0581;ARMENIAN SMALL LETTER CO;Ll;0;L;;;;;N;;;0551;;0551
-0582;ARMENIAN SMALL LETTER YIWN;Ll;0;L;;;;;N;;;0552;;0552
-0583;ARMENIAN SMALL LETTER PIWR;Ll;0;L;;;;;N;;;0553;;0553
-0584;ARMENIAN SMALL LETTER KEH;Ll;0;L;;;;;N;;;0554;;0554
-0585;ARMENIAN SMALL LETTER OH;Ll;0;L;;;;;N;;;0555;;0555
-0586;ARMENIAN SMALL LETTER FEH;Ll;0;L;;;;;N;;;0556;;0556
-0587;ARMENIAN SMALL LIGATURE ECH YIWN;Ll;0;L;<compat> 0565 0582;;;;N;;;;;
-0589;ARMENIAN FULL STOP;Po;0;L;;;;;N;ARMENIAN PERIOD;;;;
-058A;ARMENIAN HYPHEN;Pd;0;ON;;;;;N;;;;;
-058F;ARMENIAN DRAM SIGN;Sc;0;ET;;;;;N;;;;;
-0591;HEBREW ACCENT ETNAHTA;Mn;220;NSM;;;;;N;;;;;
-0592;HEBREW ACCENT SEGOL;Mn;230;NSM;;;;;N;;;;;
-0593;HEBREW ACCENT SHALSHELET;Mn;230;NSM;;;;;N;;;;;
-0594;HEBREW ACCENT ZAQEF QATAN;Mn;230;NSM;;;;;N;;;;;
-0595;HEBREW ACCENT ZAQEF GADOL;Mn;230;NSM;;;;;N;;;;;
-0596;HEBREW ACCENT TIPEHA;Mn;220;NSM;;;;;N;;;;;
-0597;HEBREW ACCENT REVIA;Mn;230;NSM;;;;;N;;;;;
-0598;HEBREW ACCENT ZARQA;Mn;230;NSM;;;;;N;;;;;
-0599;HEBREW ACCENT PASHTA;Mn;230;NSM;;;;;N;;;;;
-059A;HEBREW ACCENT YETIV;Mn;222;NSM;;;;;N;;;;;
-059B;HEBREW ACCENT TEVIR;Mn;220;NSM;;;;;N;;;;;
-059C;HEBREW ACCENT GERESH;Mn;230;NSM;;;;;N;;;;;
-059D;HEBREW ACCENT GERESH MUQDAM;Mn;230;NSM;;;;;N;;;;;
-059E;HEBREW ACCENT GERSHAYIM;Mn;230;NSM;;;;;N;;;;;
-059F;HEBREW ACCENT QARNEY PARA;Mn;230;NSM;;;;;N;;;;;
-05A0;HEBREW ACCENT TELISHA GEDOLA;Mn;230;NSM;;;;;N;;;;;
-05A1;HEBREW ACCENT PAZER;Mn;230;NSM;;;;;N;;;;;
-05A2;HEBREW ACCENT ATNAH HAFUKH;Mn;220;NSM;;;;;N;;;;;
-05A3;HEBREW ACCENT MUNAH;Mn;220;NSM;;;;;N;;;;;
-05A4;HEBREW ACCENT MAHAPAKH;Mn;220;NSM;;;;;N;;;;;
-05A5;HEBREW ACCENT MERKHA;Mn;220;NSM;;;;;N;;;;;
-05A6;HEBREW ACCENT MERKHA KEFULA;Mn;220;NSM;;;;;N;;;;;
-05A7;HEBREW ACCENT DARGA;Mn;220;NSM;;;;;N;;;;;
-05A8;HEBREW ACCENT QADMA;Mn;230;NSM;;;;;N;;;;;
-05A9;HEBREW ACCENT TELISHA QETANA;Mn;230;NSM;;;;;N;;;;;
-05AA;HEBREW ACCENT YERAH BEN YOMO;Mn;220;NSM;;;;;N;;;;;
-05AB;HEBREW ACCENT OLE;Mn;230;NSM;;;;;N;;;;;
-05AC;HEBREW ACCENT ILUY;Mn;230;NSM;;;;;N;;;;;
-05AD;HEBREW ACCENT DEHI;Mn;222;NSM;;;;;N;;;;;
-05AE;HEBREW ACCENT ZINOR;Mn;228;NSM;;;;;N;;;;;
-05AF;HEBREW MARK MASORA CIRCLE;Mn;230;NSM;;;;;N;;;;;
-05B0;HEBREW POINT SHEVA;Mn;10;NSM;;;;;N;;;;;
-05B1;HEBREW POINT HATAF SEGOL;Mn;11;NSM;;;;;N;;;;;
-05B2;HEBREW POINT HATAF PATAH;Mn;12;NSM;;;;;N;;;;;
-05B3;HEBREW POINT HATAF QAMATS;Mn;13;NSM;;;;;N;;;;;
-05B4;HEBREW POINT HIRIQ;Mn;14;NSM;;;;;N;;;;;
-05B5;HEBREW POINT TSERE;Mn;15;NSM;;;;;N;;;;;
-05B6;HEBREW POINT SEGOL;Mn;16;NSM;;;;;N;;;;;
-05B7;HEBREW POINT PATAH;Mn;17;NSM;;;;;N;;;;;
-05B8;HEBREW POINT QAMATS;Mn;18;NSM;;;;;N;;;;;
-05B9;HEBREW POINT HOLAM;Mn;19;NSM;;;;;N;;;;;
-05BA;HEBREW POINT HOLAM HASER FOR VAV;Mn;19;NSM;;;;;N;;;;;
-05BB;HEBREW POINT QUBUTS;Mn;20;NSM;;;;;N;;;;;
-05BC;HEBREW POINT DAGESH OR MAPIQ;Mn;21;NSM;;;;;N;HEBREW POINT DAGESH;;;;
-05BD;HEBREW POINT METEG;Mn;22;NSM;;;;;N;;;;;
-05BE;HEBREW PUNCTUATION MAQAF;Pd;0;R;;;;;N;;;;;
-05BF;HEBREW POINT RAFE;Mn;23;NSM;;;;;N;;;;;
-05C0;HEBREW PUNCTUATION PASEQ;Po;0;R;;;;;N;HEBREW POINT PASEQ;;;;
-05C1;HEBREW POINT SHIN DOT;Mn;24;NSM;;;;;N;;;;;
-05C2;HEBREW POINT SIN DOT;Mn;25;NSM;;;;;N;;;;;
-05C3;HEBREW PUNCTUATION SOF PASUQ;Po;0;R;;;;;N;;;;;
-05C4;HEBREW MARK UPPER DOT;Mn;230;NSM;;;;;N;;;;;
-05C5;HEBREW MARK LOWER DOT;Mn;220;NSM;;;;;N;;;;;
-05C6;HEBREW PUNCTUATION NUN HAFUKHA;Po;0;R;;;;;N;;;;;
-05C7;HEBREW POINT QAMATS QATAN;Mn;18;NSM;;;;;N;;;;;
-05D0;HEBREW LETTER ALEF;Lo;0;R;;;;;N;;;;;
-05D1;HEBREW LETTER BET;Lo;0;R;;;;;N;;;;;
-05D2;HEBREW LETTER GIMEL;Lo;0;R;;;;;N;;;;;
-05D3;HEBREW LETTER DALET;Lo;0;R;;;;;N;;;;;
-05D4;HEBREW LETTER HE;Lo;0;R;;;;;N;;;;;
-05D5;HEBREW LETTER VAV;Lo;0;R;;;;;N;;;;;
-05D6;HEBREW LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
-05D7;HEBREW LETTER HET;Lo;0;R;;;;;N;;;;;
-05D8;HEBREW LETTER TET;Lo;0;R;;;;;N;;;;;
-05D9;HEBREW LETTER YOD;Lo;0;R;;;;;N;;;;;
-05DA;HEBREW LETTER FINAL KAF;Lo;0;R;;;;;N;;;;;
-05DB;HEBREW LETTER KAF;Lo;0;R;;;;;N;;;;;
-05DC;HEBREW LETTER LAMED;Lo;0;R;;;;;N;;;;;
-05DD;HEBREW LETTER FINAL MEM;Lo;0;R;;;;;N;;;;;
-05DE;HEBREW LETTER MEM;Lo;0;R;;;;;N;;;;;
-05DF;HEBREW LETTER FINAL NUN;Lo;0;R;;;;;N;;;;;
-05E0;HEBREW LETTER NUN;Lo;0;R;;;;;N;;;;;
-05E1;HEBREW LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
-05E2;HEBREW LETTER AYIN;Lo;0;R;;;;;N;;;;;
-05E3;HEBREW LETTER FINAL PE;Lo;0;R;;;;;N;;;;;
-05E4;HEBREW LETTER PE;Lo;0;R;;;;;N;;;;;
-05E5;HEBREW LETTER FINAL TSADI;Lo;0;R;;;;;N;;;;;
-05E6;HEBREW LETTER TSADI;Lo;0;R;;;;;N;;;;;
-05E7;HEBREW LETTER QOF;Lo;0;R;;;;;N;;;;;
-05E8;HEBREW LETTER RESH;Lo;0;R;;;;;N;;;;;
-05E9;HEBREW LETTER SHIN;Lo;0;R;;;;;N;;;;;
-05EA;HEBREW LETTER TAV;Lo;0;R;;;;;N;;;;;
-05F0;HEBREW LIGATURE YIDDISH DOUBLE VAV;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE VAV;;;;
-05F1;HEBREW LIGATURE YIDDISH VAV YOD;Lo;0;R;;;;;N;HEBREW LETTER VAV YOD;;;;
-05F2;HEBREW LIGATURE YIDDISH DOUBLE YOD;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE YOD;;;;
-05F3;HEBREW PUNCTUATION GERESH;Po;0;R;;;;;N;;;;;
-05F4;HEBREW PUNCTUATION GERSHAYIM;Po;0;R;;;;;N;;;;;
-0600;ARABIC NUMBER SIGN;Cf;0;AN;;;;;N;;;;;
-0601;ARABIC SIGN SANAH;Cf;0;AN;;;;;N;;;;;
-0602;ARABIC FOOTNOTE MARKER;Cf;0;AN;;;;;N;;;;;
-0603;ARABIC SIGN SAFHA;Cf;0;AN;;;;;N;;;;;
-0604;ARABIC SIGN SAMVAT;Cf;0;AN;;;;;N;;;;;
-0606;ARABIC-INDIC CUBE ROOT;Sm;0;ON;;;;;N;;;;;
-0607;ARABIC-INDIC FOURTH ROOT;Sm;0;ON;;;;;N;;;;;
-0608;ARABIC RAY;Sm;0;AL;;;;;N;;;;;
-0609;ARABIC-INDIC PER MILLE SIGN;Po;0;ET;;;;;N;;;;;
-060A;ARABIC-INDIC PER TEN THOUSAND SIGN;Po;0;ET;;;;;N;;;;;
-060B;AFGHANI SIGN;Sc;0;AL;;;;;N;;;;;
-060C;ARABIC COMMA;Po;0;CS;;;;;N;;;;;
-060D;ARABIC DATE SEPARATOR;Po;0;AL;;;;;N;;;;;
-060E;ARABIC POETIC VERSE SIGN;So;0;ON;;;;;N;;;;;
-060F;ARABIC SIGN MISRA;So;0;ON;;;;;N;;;;;
-0610;ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM;Mn;230;NSM;;;;;N;;;;;
-0611;ARABIC SIGN ALAYHE ASSALLAM;Mn;230;NSM;;;;;N;;;;;
-0612;ARABIC SIGN RAHMATULLAH ALAYHE;Mn;230;NSM;;;;;N;;;;;
-0613;ARABIC SIGN RADI ALLAHOU ANHU;Mn;230;NSM;;;;;N;;;;;
-0614;ARABIC SIGN TAKHALLUS;Mn;230;NSM;;;;;N;;;;;
-0615;ARABIC SMALL HIGH TAH;Mn;230;NSM;;;;;N;;;;;
-0616;ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH;Mn;230;NSM;;;;;N;;;;;
-0617;ARABIC SMALL HIGH ZAIN;Mn;230;NSM;;;;;N;;;;;
-0618;ARABIC SMALL FATHA;Mn;30;NSM;;;;;N;;;;;
-0619;ARABIC SMALL DAMMA;Mn;31;NSM;;;;;N;;;;;
-061A;ARABIC SMALL KASRA;Mn;32;NSM;;;;;N;;;;;
-061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;;
-061E;ARABIC TRIPLE DOT PUNCTUATION MARK;Po;0;AL;;;;;N;;;;;
-061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;;
-0620;ARABIC LETTER KASHMIRI YEH;Lo;0;AL;;;;;N;;;;;
-0621;ARABIC LETTER HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH;;;;
-0622;ARABIC LETTER ALEF WITH MADDA ABOVE;Lo;0;AL;0627 0653;;;;N;ARABIC LETTER MADDAH ON ALEF;;;;
-0623;ARABIC LETTER ALEF WITH HAMZA ABOVE;Lo;0;AL;0627 0654;;;;N;ARABIC LETTER HAMZAH ON ALEF;;;;
-0624;ARABIC LETTER WAW WITH HAMZA ABOVE;Lo;0;AL;0648 0654;;;;N;ARABIC LETTER HAMZAH ON WAW;;;;
-0625;ARABIC LETTER ALEF WITH HAMZA BELOW;Lo;0;AL;0627 0655;;;;N;ARABIC LETTER HAMZAH UNDER ALEF;;;;
-0626;ARABIC LETTER YEH WITH HAMZA ABOVE;Lo;0;AL;064A 0654;;;;N;ARABIC LETTER HAMZAH ON YA;;;;
-0627;ARABIC LETTER ALEF;Lo;0;AL;;;;;N;;;;;
-0628;ARABIC LETTER BEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA;;;;
-0629;ARABIC LETTER TEH MARBUTA;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH;;;;
-062A;ARABIC LETTER TEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA;;;;
-062B;ARABIC LETTER THEH;Lo;0;AL;;;;;N;ARABIC LETTER THAA;;;;
-062C;ARABIC LETTER JEEM;Lo;0;AL;;;;;N;;;;;
-062D;ARABIC LETTER HAH;Lo;0;AL;;;;;N;ARABIC LETTER HAA;;;;
-062E;ARABIC LETTER KHAH;Lo;0;AL;;;;;N;ARABIC LETTER KHAA;;;;
-062F;ARABIC LETTER DAL;Lo;0;AL;;;;;N;;;;;
-0630;ARABIC LETTER THAL;Lo;0;AL;;;;;N;;;;;
-0631;ARABIC LETTER REH;Lo;0;AL;;;;;N;ARABIC LETTER RA;;;;
-0632;ARABIC LETTER ZAIN;Lo;0;AL;;;;;N;;;;;
-0633;ARABIC LETTER SEEN;Lo;0;AL;;;;;N;;;;;
-0634;ARABIC LETTER SHEEN;Lo;0;AL;;;;;N;;;;;
-0635;ARABIC LETTER SAD;Lo;0;AL;;;;;N;;;;;
-0636;ARABIC LETTER DAD;Lo;0;AL;;;;;N;;;;;
-0637;ARABIC LETTER TAH;Lo;0;AL;;;;;N;;;;;
-0638;ARABIC LETTER ZAH;Lo;0;AL;;;;;N;ARABIC LETTER DHAH;;;;
-0639;ARABIC LETTER AIN;Lo;0;AL;;;;;N;;;;;
-063A;ARABIC LETTER GHAIN;Lo;0;AL;;;;;N;;;;;
-063B;ARABIC LETTER KEHEH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-063C;ARABIC LETTER KEHEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
-063D;ARABIC LETTER FARSI YEH WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
-063E;ARABIC LETTER FARSI YEH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-063F;ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-0640;ARABIC TATWEEL;Lm;0;AL;;;;;N;;;;;
-0641;ARABIC LETTER FEH;Lo;0;AL;;;;;N;ARABIC LETTER FA;;;;
-0642;ARABIC LETTER QAF;Lo;0;AL;;;;;N;;;;;
-0643;ARABIC LETTER KAF;Lo;0;AL;;;;;N;ARABIC LETTER CAF;;;;
-0644;ARABIC LETTER LAM;Lo;0;AL;;;;;N;;;;;
-0645;ARABIC LETTER MEEM;Lo;0;AL;;;;;N;;;;;
-0646;ARABIC LETTER NOON;Lo;0;AL;;;;;N;;;;;
-0647;ARABIC LETTER HEH;Lo;0;AL;;;;;N;ARABIC LETTER HA;;;;
-0648;ARABIC LETTER WAW;Lo;0;AL;;;;;N;;;;;
-0649;ARABIC LETTER ALEF MAKSURA;Lo;0;AL;;;;;N;ARABIC LETTER ALEF MAQSURAH;;;;
-064A;ARABIC LETTER YEH;Lo;0;AL;;;;;N;ARABIC LETTER YA;;;;
-064B;ARABIC FATHATAN;Mn;27;NSM;;;;;N;;;;;
-064C;ARABIC DAMMATAN;Mn;28;NSM;;;;;N;;;;;
-064D;ARABIC KASRATAN;Mn;29;NSM;;;;;N;;;;;
-064E;ARABIC FATHA;Mn;30;NSM;;;;;N;ARABIC FATHAH;;;;
-064F;ARABIC DAMMA;Mn;31;NSM;;;;;N;ARABIC DAMMAH;;;;
-0650;ARABIC KASRA;Mn;32;NSM;;;;;N;ARABIC KASRAH;;;;
-0651;ARABIC SHADDA;Mn;33;NSM;;;;;N;ARABIC SHADDAH;;;;
-0652;ARABIC SUKUN;Mn;34;NSM;;;;;N;;;;;
-0653;ARABIC MADDAH ABOVE;Mn;230;NSM;;;;;N;;;;;
-0654;ARABIC HAMZA ABOVE;Mn;230;NSM;;;;;N;;;;;
-0655;ARABIC HAMZA BELOW;Mn;220;NSM;;;;;N;;;;;
-0656;ARABIC SUBSCRIPT ALEF;Mn;220;NSM;;;;;N;;;;;
-0657;ARABIC INVERTED DAMMA;Mn;230;NSM;;;;;N;;;;;
-0658;ARABIC MARK NOON GHUNNA;Mn;230;NSM;;;;;N;;;;;
-0659;ARABIC ZWARAKAY;Mn;230;NSM;;;;;N;;;;;
-065A;ARABIC VOWEL SIGN SMALL V ABOVE;Mn;230;NSM;;;;;N;;;;;
-065B;ARABIC VOWEL SIGN INVERTED SMALL V ABOVE;Mn;230;NSM;;;;;N;;;;;
-065C;ARABIC VOWEL SIGN DOT BELOW;Mn;220;NSM;;;;;N;;;;;
-065D;ARABIC REVERSED DAMMA;Mn;230;NSM;;;;;N;;;;;
-065E;ARABIC FATHA WITH TWO DOTS;Mn;230;NSM;;;;;N;;;;;
-065F;ARABIC WAVY HAMZA BELOW;Mn;220;NSM;;;;;N;;;;;
-0660;ARABIC-INDIC DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;;
-0661;ARABIC-INDIC DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;;
-0662;ARABIC-INDIC DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;;
-0663;ARABIC-INDIC DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;;
-0664;ARABIC-INDIC DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;;
-0665;ARABIC-INDIC DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;;
-0666;ARABIC-INDIC DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;;
-0667;ARABIC-INDIC DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;;
-0668;ARABIC-INDIC DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;;
-0669;ARABIC-INDIC DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;;
-066A;ARABIC PERCENT SIGN;Po;0;ET;;;;;N;;;;;
-066B;ARABIC DECIMAL SEPARATOR;Po;0;AN;;;;;N;;;;;
-066C;ARABIC THOUSANDS SEPARATOR;Po;0;AN;;;;;N;;;;;
-066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;;
-066E;ARABIC LETTER DOTLESS BEH;Lo;0;AL;;;;;N;;;;;
-066F;ARABIC LETTER DOTLESS QAF;Lo;0;AL;;;;;N;;;;;
-0670;ARABIC LETTER SUPERSCRIPT ALEF;Mn;35;NSM;;;;;N;ARABIC ALEF ABOVE;;;;
-0671;ARABIC LETTER ALEF WASLA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAT WASL ON ALEF;;;;
-0672;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH ON ALEF;;;;
-0673;ARABIC LETTER ALEF WITH WAVY HAMZA BELOW;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH UNDER ALEF;;;;
-0674;ARABIC LETTER HIGH HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HIGH HAMZAH;;;;
-0675;ARABIC LETTER HIGH HAMZA ALEF;Lo;0;AL;<compat> 0627 0674;;;;N;ARABIC LETTER HIGH HAMZAH ALEF;;;;
-0676;ARABIC LETTER HIGH HAMZA WAW;Lo;0;AL;<compat> 0648 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW;;;;
-0677;ARABIC LETTER U WITH HAMZA ABOVE;Lo;0;AL;<compat> 06C7 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW WITH DAMMAH;;;;
-0678;ARABIC LETTER HIGH HAMZA YEH;Lo;0;AL;<compat> 064A 0674;;;;N;ARABIC LETTER HIGH HAMZAH YA;;;;
-0679;ARABIC LETTER TTEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH SMALL TAH;;;;
-067A;ARABIC LETTER TTEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH TWO DOTS VERTICAL ABOVE;;;;
-067B;ARABIC LETTER BEEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH TWO DOTS VERTICAL BELOW;;;;
-067C;ARABIC LETTER TEH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH RING;;;;
-067D;ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS ABOVE DOWNWARD;;;;
-067E;ARABIC LETTER PEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS BELOW;;;;
-067F;ARABIC LETTER TEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH FOUR DOTS ABOVE;;;;
-0680;ARABIC LETTER BEHEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH FOUR DOTS BELOW;;;;
-0681;ARABIC LETTER HAH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH ON HAA;;;;
-0682;ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH TWO DOTS VERTICAL ABOVE;;;;
-0683;ARABIC LETTER NYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS;;;;
-0684;ARABIC LETTER DYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS VERTICAL;;;;
-0685;ARABIC LETTER HAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH THREE DOTS ABOVE;;;;
-0686;ARABIC LETTER TCHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE THREE DOTS DOWNWARD;;;;
-0687;ARABIC LETTER TCHEHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE FOUR DOTS;;;;
-0688;ARABIC LETTER DDAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH SMALL TAH;;;;
-0689;ARABIC LETTER DAL WITH RING;Lo;0;AL;;;;;N;;;;;
-068A;ARABIC LETTER DAL WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
-068B;ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;;
-068C;ARABIC LETTER DAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS ABOVE;;;;
-068D;ARABIC LETTER DDAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS BELOW;;;;
-068E;ARABIC LETTER DUL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE;;;;
-068F;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARD;;;;
-0690;ARABIC LETTER DAL WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-0691;ARABIC LETTER RREH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL TAH;;;;
-0692;ARABIC LETTER REH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V;;;;
-0693;ARABIC LETTER REH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH RING;;;;
-0694;ARABIC LETTER REH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW;;;;
-0695;ARABIC LETTER REH WITH SMALL V BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V BELOW;;;;
-0696;ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW AND DOT ABOVE;;;;
-0697;ARABIC LETTER REH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH TWO DOTS ABOVE;;;;
-0698;ARABIC LETTER JEH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH THREE DOTS ABOVE;;;;
-0699;ARABIC LETTER REH WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH FOUR DOTS ABOVE;;;;
-069A;ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
-069B;ARABIC LETTER SEEN WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
-069C;ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-069D;ARABIC LETTER SAD WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
-069E;ARABIC LETTER SAD WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-069F;ARABIC LETTER TAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-06A0;ARABIC LETTER AIN WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-06A1;ARABIC LETTER DOTLESS FEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS FA;;;;
-06A2;ARABIC LETTER FEH WITH DOT MOVED BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT MOVED BELOW;;;;
-06A3;ARABIC LETTER FEH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT BELOW;;;;
-06A4;ARABIC LETTER VEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS ABOVE;;;;
-06A5;ARABIC LETTER FEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS BELOW;;;;
-06A6;ARABIC LETTER PEHEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH FOUR DOTS ABOVE;;;;
-06A7;ARABIC LETTER QAF WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
-06A8;ARABIC LETTER QAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-06A9;ARABIC LETTER KEHEH;Lo;0;AL;;;;;N;ARABIC LETTER OPEN CAF;;;;
-06AA;ARABIC LETTER SWASH KAF;Lo;0;AL;;;;;N;ARABIC LETTER SWASH CAF;;;;
-06AB;ARABIC LETTER KAF WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH RING;;;;
-06AC;ARABIC LETTER KAF WITH DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH DOT ABOVE;;;;
-06AD;ARABIC LETTER NG;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS ABOVE;;;;
-06AE;ARABIC LETTER KAF WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS BELOW;;;;
-06AF;ARABIC LETTER GAF;Lo;0;AL;;;;;N;;;;;
-06B0;ARABIC LETTER GAF WITH RING;Lo;0;AL;;;;;N;;;;;
-06B1;ARABIC LETTER NGOEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS ABOVE;;;;
-06B2;ARABIC LETTER GAF WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
-06B3;ARABIC LETTER GUEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS VERTICAL BELOW;;;;
-06B4;ARABIC LETTER GAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-06B5;ARABIC LETTER LAM WITH SMALL V;Lo;0;AL;;;;;N;;;;;
-06B6;ARABIC LETTER LAM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
-06B7;ARABIC LETTER LAM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-06B8;ARABIC LETTER LAM WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
-06B9;ARABIC LETTER NOON WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
-06BA;ARABIC LETTER NOON GHUNNA;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON;;;;
-06BB;ARABIC LETTER RNOON;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON WITH SMALL TAH;;;;
-06BC;ARABIC LETTER NOON WITH RING;Lo;0;AL;;;;;N;;;;;
-06BD;ARABIC LETTER NOON WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-06BE;ARABIC LETTER HEH DOACHASHMEE;Lo;0;AL;;;;;N;ARABIC LETTER KNOTTED HA;;;;
-06BF;ARABIC LETTER TCHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
-06C0;ARABIC LETTER HEH WITH YEH ABOVE;Lo;0;AL;06D5 0654;;;;N;ARABIC LETTER HAMZAH ON HA;;;;
-06C1;ARABIC LETTER HEH GOAL;Lo;0;AL;;;;;N;ARABIC LETTER HA GOAL;;;;
-06C2;ARABIC LETTER HEH GOAL WITH HAMZA ABOVE;Lo;0;AL;06C1 0654;;;;N;ARABIC LETTER HAMZAH ON HA GOAL;;;;
-06C3;ARABIC LETTER TEH MARBUTA GOAL;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH GOAL;;;;
-06C4;ARABIC LETTER WAW WITH RING;Lo;0;AL;;;;;N;;;;;
-06C5;ARABIC LETTER KIRGHIZ OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH BAR;;;;
-06C6;ARABIC LETTER OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH SMALL V;;;;
-06C7;ARABIC LETTER U;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH DAMMAH;;;;
-06C8;ARABIC LETTER YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH ALEF ABOVE;;;;
-06C9;ARABIC LETTER KIRGHIZ YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH INVERTED SMALL V;;;;
-06CA;ARABIC LETTER WAW WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-06CB;ARABIC LETTER VE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH THREE DOTS ABOVE;;;;
-06CC;ARABIC LETTER FARSI YEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS YA;;;;
-06CD;ARABIC LETTER YEH WITH TAIL;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TAIL;;;;
-06CE;ARABIC LETTER YEH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH SMALL V;;;;
-06CF;ARABIC LETTER WAW WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
-06D0;ARABIC LETTER E;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TWO DOTS VERTICAL BELOW;;;;
-06D1;ARABIC LETTER YEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH THREE DOTS BELOW;;;;
-06D2;ARABIC LETTER YEH BARREE;Lo;0;AL;;;;;N;ARABIC LETTER YA BARREE;;;;
-06D3;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE;Lo;0;AL;06D2 0654;;;;N;ARABIC LETTER HAMZAH ON YA BARREE;;;;
-06D4;ARABIC FULL STOP;Po;0;AL;;;;;N;ARABIC PERIOD;;;;
-06D5;ARABIC LETTER AE;Lo;0;AL;;;;;N;;;;;
-06D6;ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;
-06D7;ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;;
-06D8;ARABIC SMALL HIGH MEEM INITIAL FORM;Mn;230;NSM;;;;;N;;;;;
-06D9;ARABIC SMALL HIGH LAM ALEF;Mn;230;NSM;;;;;N;;;;;
-06DA;ARABIC SMALL HIGH JEEM;Mn;230;NSM;;;;;N;;;;;
-06DB;ARABIC SMALL HIGH THREE DOTS;Mn;230;NSM;;;;;N;;;;;
-06DC;ARABIC SMALL HIGH SEEN;Mn;230;NSM;;;;;N;;;;;
-06DD;ARABIC END OF AYAH;Cf;0;AN;;;;;N;;;;;
-06DE;ARABIC START OF RUB EL HIZB;So;0;ON;;;;;N;;;;;
-06DF;ARABIC SMALL HIGH ROUNDED ZERO;Mn;230;NSM;;;;;N;;;;;
-06E0;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO;Mn;230;NSM;;;;;N;;;;;
-06E1;ARABIC SMALL HIGH DOTLESS HEAD OF KHAH;Mn;230;NSM;;;;;N;;;;;
-06E2;ARABIC SMALL HIGH MEEM ISOLATED FORM;Mn;230;NSM;;;;;N;;;;;
-06E3;ARABIC SMALL LOW SEEN;Mn;220;NSM;;;;;N;;;;;
-06E4;ARABIC SMALL HIGH MADDA;Mn;230;NSM;;;;;N;;;;;
-06E5;ARABIC SMALL WAW;Lm;0;AL;;;;;N;;;;;
-06E6;ARABIC SMALL YEH;Lm;0;AL;;;;;N;;;;;
-06E7;ARABIC SMALL HIGH YEH;Mn;230;NSM;;;;;N;;;;;
-06E8;ARABIC SMALL HIGH NOON;Mn;230;NSM;;;;;N;;;;;
-06E9;ARABIC PLACE OF SAJDAH;So;0;ON;;;;;N;;;;;
-06EA;ARABIC EMPTY CENTRE LOW STOP;Mn;220;NSM;;;;;N;;;;;
-06EB;ARABIC EMPTY CENTRE HIGH STOP;Mn;230;NSM;;;;;N;;;;;
-06EC;ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE;Mn;230;NSM;;;;;N;;;;;
-06ED;ARABIC SMALL LOW MEEM;Mn;220;NSM;;;;;N;;;;;
-06EE;ARABIC LETTER DAL WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
-06EF;ARABIC LETTER REH WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
-06F0;EXTENDED ARABIC-INDIC DIGIT ZERO;Nd;0;EN;;0;0;0;N;EASTERN ARABIC-INDIC DIGIT ZERO;;;;
-06F1;EXTENDED ARABIC-INDIC DIGIT ONE;Nd;0;EN;;1;1;1;N;EASTERN ARABIC-INDIC DIGIT ONE;;;;
-06F2;EXTENDED ARABIC-INDIC DIGIT TWO;Nd;0;EN;;2;2;2;N;EASTERN ARABIC-INDIC DIGIT TWO;;;;
-06F3;EXTENDED ARABIC-INDIC DIGIT THREE;Nd;0;EN;;3;3;3;N;EASTERN ARABIC-INDIC DIGIT THREE;;;;
-06F4;EXTENDED ARABIC-INDIC DIGIT FOUR;Nd;0;EN;;4;4;4;N;EASTERN ARABIC-INDIC DIGIT FOUR;;;;
-06F5;EXTENDED ARABIC-INDIC DIGIT FIVE;Nd;0;EN;;5;5;5;N;EASTERN ARABIC-INDIC DIGIT FIVE;;;;
-06F6;EXTENDED ARABIC-INDIC DIGIT SIX;Nd;0;EN;;6;6;6;N;EASTERN ARABIC-INDIC DIGIT SIX;;;;
-06F7;EXTENDED ARABIC-INDIC DIGIT SEVEN;Nd;0;EN;;7;7;7;N;EASTERN ARABIC-INDIC DIGIT SEVEN;;;;
-06F8;EXTENDED ARABIC-INDIC DIGIT EIGHT;Nd;0;EN;;8;8;8;N;EASTERN ARABIC-INDIC DIGIT EIGHT;;;;
-06F9;EXTENDED ARABIC-INDIC DIGIT NINE;Nd;0;EN;;9;9;9;N;EASTERN ARABIC-INDIC DIGIT NINE;;;;
-06FA;ARABIC LETTER SHEEN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
-06FB;ARABIC LETTER DAD WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
-06FC;ARABIC LETTER GHAIN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
-06FD;ARABIC SIGN SINDHI AMPERSAND;So;0;AL;;;;;N;;;;;
-06FE;ARABIC SIGN SINDHI POSTPOSITION MEN;So;0;AL;;;;;N;;;;;
-06FF;ARABIC LETTER HEH WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
-0700;SYRIAC END OF PARAGRAPH;Po;0;AL;;;;;N;;;;;
-0701;SYRIAC SUPRALINEAR FULL STOP;Po;0;AL;;;;;N;;;;;
-0702;SYRIAC SUBLINEAR FULL STOP;Po;0;AL;;;;;N;;;;;
-0703;SYRIAC SUPRALINEAR COLON;Po;0;AL;;;;;N;;;;;
-0704;SYRIAC SUBLINEAR COLON;Po;0;AL;;;;;N;;;;;
-0705;SYRIAC HORIZONTAL COLON;Po;0;AL;;;;;N;;;;;
-0706;SYRIAC COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;
-0707;SYRIAC COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;
-0708;SYRIAC SUPRALINEAR COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;;
-0709;SYRIAC SUBLINEAR COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;;
-070A;SYRIAC CONTRACTION;Po;0;AL;;;;;N;;;;;
-070B;SYRIAC HARKLEAN OBELUS;Po;0;AL;;;;;N;;;;;
-070C;SYRIAC HARKLEAN METOBELUS;Po;0;AL;;;;;N;;;;;
-070D;SYRIAC HARKLEAN ASTERISCUS;Po;0;AL;;;;;N;;;;;
-070F;SYRIAC ABBREVIATION MARK;Cf;0;AL;;;;;N;;;;;
-0710;SYRIAC LETTER ALAPH;Lo;0;AL;;;;;N;;;;;
-0711;SYRIAC LETTER SUPERSCRIPT ALAPH;Mn;36;NSM;;;;;N;;;;;
-0712;SYRIAC LETTER BETH;Lo;0;AL;;;;;N;;;;;
-0713;SYRIAC LETTER GAMAL;Lo;0;AL;;;;;N;;;;;
-0714;SYRIAC LETTER GAMAL GARSHUNI;Lo;0;AL;;;;;N;;;;;
-0715;SYRIAC LETTER DALATH;Lo;0;AL;;;;;N;;;;;
-0716;SYRIAC LETTER DOTLESS DALATH RISH;Lo;0;AL;;;;;N;;;;;
-0717;SYRIAC LETTER HE;Lo;0;AL;;;;;N;;;;;
-0718;SYRIAC LETTER WAW;Lo;0;AL;;;;;N;;;;;
-0719;SYRIAC LETTER ZAIN;Lo;0;AL;;;;;N;;;;;
-071A;SYRIAC LETTER HETH;Lo;0;AL;;;;;N;;;;;
-071B;SYRIAC LETTER TETH;Lo;0;AL;;;;;N;;;;;
-071C;SYRIAC LETTER TETH GARSHUNI;Lo;0;AL;;;;;N;;;;;
-071D;SYRIAC LETTER YUDH;Lo;0;AL;;;;;N;;;;;
-071E;SYRIAC LETTER YUDH HE;Lo;0;AL;;;;;N;;;;;
-071F;SYRIAC LETTER KAPH;Lo;0;AL;;;;;N;;;;;
-0720;SYRIAC LETTER LAMADH;Lo;0;AL;;;;;N;;;;;
-0721;SYRIAC LETTER MIM;Lo;0;AL;;;;;N;;;;;
-0722;SYRIAC LETTER NUN;Lo;0;AL;;;;;N;;;;;
-0723;SYRIAC LETTER SEMKATH;Lo;0;AL;;;;;N;;;;;
-0724;SYRIAC LETTER FINAL SEMKATH;Lo;0;AL;;;;;N;;;;;
-0725;SYRIAC LETTER E;Lo;0;AL;;;;;N;;;;;
-0726;SYRIAC LETTER PE;Lo;0;AL;;;;;N;;;;;
-0727;SYRIAC LETTER REVERSED PE;Lo;0;AL;;;;;N;;;;;
-0728;SYRIAC LETTER SADHE;Lo;0;AL;;;;;N;;;;;
-0729;SYRIAC LETTER QAPH;Lo;0;AL;;;;;N;;;;;
-072A;SYRIAC LETTER RISH;Lo;0;AL;;;;;N;;;;;
-072B;SYRIAC LETTER SHIN;Lo;0;AL;;;;;N;;;;;
-072C;SYRIAC LETTER TAW;Lo;0;AL;;;;;N;;;;;
-072D;SYRIAC LETTER PERSIAN BHETH;Lo;0;AL;;;;;N;;;;;
-072E;SYRIAC LETTER PERSIAN GHAMAL;Lo;0;AL;;;;;N;;;;;
-072F;SYRIAC LETTER PERSIAN DHALATH;Lo;0;AL;;;;;N;;;;;
-0730;SYRIAC PTHAHA ABOVE;Mn;230;NSM;;;;;N;;;;;
-0731;SYRIAC PTHAHA BELOW;Mn;220;NSM;;;;;N;;;;;
-0732;SYRIAC PTHAHA DOTTED;Mn;230;NSM;;;;;N;;;;;
-0733;SYRIAC ZQAPHA ABOVE;Mn;230;NSM;;;;;N;;;;;
-0734;SYRIAC ZQAPHA BELOW;Mn;220;NSM;;;;;N;;;;;
-0735;SYRIAC ZQAPHA DOTTED;Mn;230;NSM;;;;;N;;;;;
-0736;SYRIAC RBASA ABOVE;Mn;230;NSM;;;;;N;;;;;
-0737;SYRIAC RBASA BELOW;Mn;220;NSM;;;;;N;;;;;
-0738;SYRIAC DOTTED ZLAMA HORIZONTAL;Mn;220;NSM;;;;;N;;;;;
-0739;SYRIAC DOTTED ZLAMA ANGULAR;Mn;220;NSM;;;;;N;;;;;
-073A;SYRIAC HBASA ABOVE;Mn;230;NSM;;;;;N;;;;;
-073B;SYRIAC HBASA BELOW;Mn;220;NSM;;;;;N;;;;;
-073C;SYRIAC HBASA-ESASA DOTTED;Mn;220;NSM;;;;;N;;;;;
-073D;SYRIAC ESASA ABOVE;Mn;230;NSM;;;;;N;;;;;
-073E;SYRIAC ESASA BELOW;Mn;220;NSM;;;;;N;;;;;
-073F;SYRIAC RWAHA;Mn;230;NSM;;;;;N;;;;;
-0740;SYRIAC FEMININE DOT;Mn;230;NSM;;;;;N;;;;;
-0741;SYRIAC QUSHSHAYA;Mn;230;NSM;;;;;N;;;;;
-0742;SYRIAC RUKKAKHA;Mn;220;NSM;;;;;N;;;;;
-0743;SYRIAC TWO VERTICAL DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
-0744;SYRIAC TWO VERTICAL DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
-0745;SYRIAC THREE DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
-0746;SYRIAC THREE DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
-0747;SYRIAC OBLIQUE LINE ABOVE;Mn;230;NSM;;;;;N;;;;;
-0748;SYRIAC OBLIQUE LINE BELOW;Mn;220;NSM;;;;;N;;;;;
-0749;SYRIAC MUSIC;Mn;230;NSM;;;;;N;;;;;
-074A;SYRIAC BARREKH;Mn;230;NSM;;;;;N;;;;;
-074D;SYRIAC LETTER SOGDIAN ZHAIN;Lo;0;AL;;;;;N;;;;;
-074E;SYRIAC LETTER SOGDIAN KHAPH;Lo;0;AL;;;;;N;;;;;
-074F;SYRIAC LETTER SOGDIAN FE;Lo;0;AL;;;;;N;;;;;
-0750;ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW;Lo;0;AL;;;;;N;;;;;
-0751;ARABIC LETTER BEH WITH DOT BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-0752;ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;
-0753;ARABIC LETTER BEH WITH THREE DOTS POINTING UPWARDS BELOW AND TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-0754;ARABIC LETTER BEH WITH TWO DOTS BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
-0755;ARABIC LETTER BEH WITH INVERTED SMALL V BELOW;Lo;0;AL;;;;;N;;;;;
-0756;ARABIC LETTER BEH WITH SMALL V;Lo;0;AL;;;;;N;;;;;
-0757;ARABIC LETTER HAH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-0758;ARABIC LETTER HAH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;
-0759;ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;;
-075A;ARABIC LETTER DAL WITH INVERTED SMALL V BELOW;Lo;0;AL;;;;;N;;;;;
-075B;ARABIC LETTER REH WITH STROKE;Lo;0;AL;;;;;N;;;;;
-075C;ARABIC LETTER SEEN WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-075D;ARABIC LETTER AIN WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-075E;ARABIC LETTER AIN WITH THREE DOTS POINTING DOWNWARDS ABOVE;Lo;0;AL;;;;;N;;;;;
-075F;ARABIC LETTER AIN WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;;
-0760;ARABIC LETTER FEH WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
-0761;ARABIC LETTER FEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;
-0762;ARABIC LETTER KEHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
-0763;ARABIC LETTER KEHEH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-0764;ARABIC LETTER KEHEH WITH THREE DOTS POINTING UPWARDS BELOW;Lo;0;AL;;;;;N;;;;;
-0765;ARABIC LETTER MEEM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
-0766;ARABIC LETTER MEEM WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
-0767;ARABIC LETTER NOON WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
-0768;ARABIC LETTER NOON WITH SMALL TAH;Lo;0;AL;;;;;N;;;;;
-0769;ARABIC LETTER NOON WITH SMALL V;Lo;0;AL;;;;;N;;;;;
-076A;ARABIC LETTER LAM WITH BAR;Lo;0;AL;;;;;N;;;;;
-076B;ARABIC LETTER REH WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;;
-076C;ARABIC LETTER REH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;;;;;
-076D;ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE;Lo;0;AL;;;;;N;;;;;
-076E;ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW;Lo;0;AL;;;;;N;;;;;
-076F;ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH AND TWO DOTS;Lo;0;AL;;;;;N;;;;;
-0770;ARABIC LETTER SEEN WITH SMALL ARABIC LETTER TAH AND TWO DOTS;Lo;0;AL;;;;;N;;;;;
-0771;ARABIC LETTER REH WITH SMALL ARABIC LETTER TAH AND TWO DOTS;Lo;0;AL;;;;;N;;;;;
-0772;ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH ABOVE;Lo;0;AL;;;;;N;;;;;
-0773;ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE;Lo;0;AL;;;;;N;;;;;
-0774;ARABIC LETTER ALEF WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE;Lo;0;AL;;;;;N;;;;;
-0775;ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE;Lo;0;AL;;;;;N;;;;;
-0776;ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE;Lo;0;AL;;;;;N;;;;;
-0777;ARABIC LETTER FARSI YEH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW;Lo;0;AL;;;;;N;;;;;
-0778;ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE;Lo;0;AL;;;;;N;;;;;
-0779;ARABIC LETTER WAW WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE;Lo;0;AL;;;;;N;;;;;
-077A;ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT TWO ABOVE;Lo;0;AL;;;;;N;;;;;
-077B;ARABIC LETTER YEH BARREE WITH EXTENDED ARABIC-INDIC DIGIT THREE ABOVE;Lo;0;AL;;;;;N;;;;;
-077C;ARABIC LETTER HAH WITH EXTENDED ARABIC-INDIC DIGIT FOUR BELOW;Lo;0;AL;;;;;N;;;;;
-077D;ARABIC LETTER SEEN WITH EXTENDED ARABIC-INDIC DIGIT FOUR ABOVE;Lo;0;AL;;;;;N;;;;;
-077E;ARABIC LETTER SEEN WITH INVERTED V;Lo;0;AL;;;;;N;;;;;
-077F;ARABIC LETTER KAF WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-0780;THAANA LETTER HAA;Lo;0;AL;;;;;N;;;;;
-0781;THAANA LETTER SHAVIYANI;Lo;0;AL;;;;;N;;;;;
-0782;THAANA LETTER NOONU;Lo;0;AL;;;;;N;;;;;
-0783;THAANA LETTER RAA;Lo;0;AL;;;;;N;;;;;
-0784;THAANA LETTER BAA;Lo;0;AL;;;;;N;;;;;
-0785;THAANA LETTER LHAVIYANI;Lo;0;AL;;;;;N;;;;;
-0786;THAANA LETTER KAAFU;Lo;0;AL;;;;;N;;;;;
-0787;THAANA LETTER ALIFU;Lo;0;AL;;;;;N;;;;;
-0788;THAANA LETTER VAAVU;Lo;0;AL;;;;;N;;;;;
-0789;THAANA LETTER MEEMU;Lo;0;AL;;;;;N;;;;;
-078A;THAANA LETTER FAAFU;Lo;0;AL;;;;;N;;;;;
-078B;THAANA LETTER DHAALU;Lo;0;AL;;;;;N;;;;;
-078C;THAANA LETTER THAA;Lo;0;AL;;;;;N;;;;;
-078D;THAANA LETTER LAAMU;Lo;0;AL;;;;;N;;;;;
-078E;THAANA LETTER GAAFU;Lo;0;AL;;;;;N;;;;;
-078F;THAANA LETTER GNAVIYANI;Lo;0;AL;;;;;N;;;;;
-0790;THAANA LETTER SEENU;Lo;0;AL;;;;;N;;;;;
-0791;THAANA LETTER DAVIYANI;Lo;0;AL;;;;;N;;;;;
-0792;THAANA LETTER ZAVIYANI;Lo;0;AL;;;;;N;;;;;
-0793;THAANA LETTER TAVIYANI;Lo;0;AL;;;;;N;;;;;
-0794;THAANA LETTER YAA;Lo;0;AL;;;;;N;;;;;
-0795;THAANA LETTER PAVIYANI;Lo;0;AL;;;;;N;;;;;
-0796;THAANA LETTER JAVIYANI;Lo;0;AL;;;;;N;;;;;
-0797;THAANA LETTER CHAVIYANI;Lo;0;AL;;;;;N;;;;;
-0798;THAANA LETTER TTAA;Lo;0;AL;;;;;N;;;;;
-0799;THAANA LETTER HHAA;Lo;0;AL;;;;;N;;;;;
-079A;THAANA LETTER KHAA;Lo;0;AL;;;;;N;;;;;
-079B;THAANA LETTER THAALU;Lo;0;AL;;;;;N;;;;;
-079C;THAANA LETTER ZAA;Lo;0;AL;;;;;N;;;;;
-079D;THAANA LETTER SHEENU;Lo;0;AL;;;;;N;;;;;
-079E;THAANA LETTER SAADHU;Lo;0;AL;;;;;N;;;;;
-079F;THAANA LETTER DAADHU;Lo;0;AL;;;;;N;;;;;
-07A0;THAANA LETTER TO;Lo;0;AL;;;;;N;;;;;
-07A1;THAANA LETTER ZO;Lo;0;AL;;;;;N;;;;;
-07A2;THAANA LETTER AINU;Lo;0;AL;;;;;N;;;;;
-07A3;THAANA LETTER GHAINU;Lo;0;AL;;;;;N;;;;;
-07A4;THAANA LETTER QAAFU;Lo;0;AL;;;;;N;;;;;
-07A5;THAANA LETTER WAAVU;Lo;0;AL;;;;;N;;;;;
-07A6;THAANA ABAFILI;Mn;0;NSM;;;;;N;;;;;
-07A7;THAANA AABAAFILI;Mn;0;NSM;;;;;N;;;;;
-07A8;THAANA IBIFILI;Mn;0;NSM;;;;;N;;;;;
-07A9;THAANA EEBEEFILI;Mn;0;NSM;;;;;N;;;;;
-07AA;THAANA UBUFILI;Mn;0;NSM;;;;;N;;;;;
-07AB;THAANA OOBOOFILI;Mn;0;NSM;;;;;N;;;;;
-07AC;THAANA EBEFILI;Mn;0;NSM;;;;;N;;;;;
-07AD;THAANA EYBEYFILI;Mn;0;NSM;;;;;N;;;;;
-07AE;THAANA OBOFILI;Mn;0;NSM;;;;;N;;;;;
-07AF;THAANA OABOAFILI;Mn;0;NSM;;;;;N;;;;;
-07B0;THAANA SUKUN;Mn;0;NSM;;;;;N;;;;;
-07B1;THAANA LETTER NAA;Lo;0;AL;;;;;N;;;;;
-07C0;NKO DIGIT ZERO;Nd;0;R;;0;0;0;N;;;;;
-07C1;NKO DIGIT ONE;Nd;0;R;;1;1;1;N;;;;;
-07C2;NKO DIGIT TWO;Nd;0;R;;2;2;2;N;;;;;
-07C3;NKO DIGIT THREE;Nd;0;R;;3;3;3;N;;;;;
-07C4;NKO DIGIT FOUR;Nd;0;R;;4;4;4;N;;;;;
-07C5;NKO DIGIT FIVE;Nd;0;R;;5;5;5;N;;;;;
-07C6;NKO DIGIT SIX;Nd;0;R;;6;6;6;N;;;;;
-07C7;NKO DIGIT SEVEN;Nd;0;R;;7;7;7;N;;;;;
-07C8;NKO DIGIT EIGHT;Nd;0;R;;8;8;8;N;;;;;
-07C9;NKO DIGIT NINE;Nd;0;R;;9;9;9;N;;;;;
-07CA;NKO LETTER A;Lo;0;R;;;;;N;;;;;
-07CB;NKO LETTER EE;Lo;0;R;;;;;N;;;;;
-07CC;NKO LETTER I;Lo;0;R;;;;;N;;;;;
-07CD;NKO LETTER E;Lo;0;R;;;;;N;;;;;
-07CE;NKO LETTER U;Lo;0;R;;;;;N;;;;;
-07CF;NKO LETTER OO;Lo;0;R;;;;;N;;;;;
-07D0;NKO LETTER O;Lo;0;R;;;;;N;;;;;
-07D1;NKO LETTER DAGBASINNA;Lo;0;R;;;;;N;;;;;
-07D2;NKO LETTER N;Lo;0;R;;;;;N;;;;;
-07D3;NKO LETTER BA;Lo;0;R;;;;;N;;;;;
-07D4;NKO LETTER PA;Lo;0;R;;;;;N;;;;;
-07D5;NKO LETTER TA;Lo;0;R;;;;;N;;;;;
-07D6;NKO LETTER JA;Lo;0;R;;;;;N;;;;;
-07D7;NKO LETTER CHA;Lo;0;R;;;;;N;;;;;
-07D8;NKO LETTER DA;Lo;0;R;;;;;N;;;;;
-07D9;NKO LETTER RA;Lo;0;R;;;;;N;;;;;
-07DA;NKO LETTER RRA;Lo;0;R;;;;;N;;;;;
-07DB;NKO LETTER SA;Lo;0;R;;;;;N;;;;;
-07DC;NKO LETTER GBA;Lo;0;R;;;;;N;;;;;
-07DD;NKO LETTER FA;Lo;0;R;;;;;N;;;;;
-07DE;NKO LETTER KA;Lo;0;R;;;;;N;;;;;
-07DF;NKO LETTER LA;Lo;0;R;;;;;N;;;;;
-07E0;NKO LETTER NA WOLOSO;Lo;0;R;;;;;N;;;;;
-07E1;NKO LETTER MA;Lo;0;R;;;;;N;;;;;
-07E2;NKO LETTER NYA;Lo;0;R;;;;;N;;;;;
-07E3;NKO LETTER NA;Lo;0;R;;;;;N;;;;;
-07E4;NKO LETTER HA;Lo;0;R;;;;;N;;;;;
-07E5;NKO LETTER WA;Lo;0;R;;;;;N;;;;;
-07E6;NKO LETTER YA;Lo;0;R;;;;;N;;;;;
-07E7;NKO LETTER NYA WOLOSO;Lo;0;R;;;;;N;;;;;
-07E8;NKO LETTER JONA JA;Lo;0;R;;;;;N;;;;;
-07E9;NKO LETTER JONA CHA;Lo;0;R;;;;;N;;;;;
-07EA;NKO LETTER JONA RA;Lo;0;R;;;;;N;;;;;
-07EB;NKO COMBINING SHORT HIGH TONE;Mn;230;NSM;;;;;N;;;;;
-07EC;NKO COMBINING SHORT LOW TONE;Mn;230;NSM;;;;;N;;;;;
-07ED;NKO COMBINING SHORT RISING TONE;Mn;230;NSM;;;;;N;;;;;
-07EE;NKO COMBINING LONG DESCENDING TONE;Mn;230;NSM;;;;;N;;;;;
-07EF;NKO COMBINING LONG HIGH TONE;Mn;230;NSM;;;;;N;;;;;
-07F0;NKO COMBINING LONG LOW TONE;Mn;230;NSM;;;;;N;;;;;
-07F1;NKO COMBINING LONG RISING TONE;Mn;230;NSM;;;;;N;;;;;
-07F2;NKO COMBINING NASALIZATION MARK;Mn;220;NSM;;;;;N;;;;;
-07F3;NKO COMBINING DOUBLE DOT ABOVE;Mn;230;NSM;;;;;N;;;;;
-07F4;NKO HIGH TONE APOSTROPHE;Lm;0;R;;;;;N;;;;;
-07F5;NKO LOW TONE APOSTROPHE;Lm;0;R;;;;;N;;;;;
-07F6;NKO SYMBOL OO DENNEN;So;0;ON;;;;;N;;;;;
-07F7;NKO SYMBOL GBAKURUNEN;Po;0;ON;;;;;N;;;;;
-07F8;NKO COMMA;Po;0;ON;;;;;N;;;;;
-07F9;NKO EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
-07FA;NKO LAJANYALAN;Lm;0;R;;;;;N;;;;;
-0800;SAMARITAN LETTER ALAF;Lo;0;R;;;;;N;;;;;
-0801;SAMARITAN LETTER BIT;Lo;0;R;;;;;N;;;;;
-0802;SAMARITAN LETTER GAMAN;Lo;0;R;;;;;N;;;;;
-0803;SAMARITAN LETTER DALAT;Lo;0;R;;;;;N;;;;;
-0804;SAMARITAN LETTER IY;Lo;0;R;;;;;N;;;;;
-0805;SAMARITAN LETTER BAA;Lo;0;R;;;;;N;;;;;
-0806;SAMARITAN LETTER ZEN;Lo;0;R;;;;;N;;;;;
-0807;SAMARITAN LETTER IT;Lo;0;R;;;;;N;;;;;
-0808;SAMARITAN LETTER TIT;Lo;0;R;;;;;N;;;;;
-0809;SAMARITAN LETTER YUT;Lo;0;R;;;;;N;;;;;
-080A;SAMARITAN LETTER KAAF;Lo;0;R;;;;;N;;;;;
-080B;SAMARITAN LETTER LABAT;Lo;0;R;;;;;N;;;;;
-080C;SAMARITAN LETTER MIM;Lo;0;R;;;;;N;;;;;
-080D;SAMARITAN LETTER NUN;Lo;0;R;;;;;N;;;;;
-080E;SAMARITAN LETTER SINGAAT;Lo;0;R;;;;;N;;;;;
-080F;SAMARITAN LETTER IN;Lo;0;R;;;;;N;;;;;
-0810;SAMARITAN LETTER FI;Lo;0;R;;;;;N;;;;;
-0811;SAMARITAN LETTER TSAADIY;Lo;0;R;;;;;N;;;;;
-0812;SAMARITAN LETTER QUF;Lo;0;R;;;;;N;;;;;
-0813;SAMARITAN LETTER RISH;Lo;0;R;;;;;N;;;;;
-0814;SAMARITAN LETTER SHAN;Lo;0;R;;;;;N;;;;;
-0815;SAMARITAN LETTER TAAF;Lo;0;R;;;;;N;;;;;
-0816;SAMARITAN MARK IN;Mn;230;NSM;;;;;N;;;;;
-0817;SAMARITAN MARK IN-ALAF;Mn;230;NSM;;;;;N;;;;;
-0818;SAMARITAN MARK OCCLUSION;Mn;230;NSM;;;;;N;;;;;
-0819;SAMARITAN MARK DAGESH;Mn;230;NSM;;;;;N;;;;;
-081A;SAMARITAN MODIFIER LETTER EPENTHETIC YUT;Lm;0;R;;;;;N;;;;;
-081B;SAMARITAN MARK EPENTHETIC YUT;Mn;230;NSM;;;;;N;;;;;
-081C;SAMARITAN VOWEL SIGN LONG E;Mn;230;NSM;;;;;N;;;;;
-081D;SAMARITAN VOWEL SIGN E;Mn;230;NSM;;;;;N;;;;;
-081E;SAMARITAN VOWEL SIGN OVERLONG AA;Mn;230;NSM;;;;;N;;;;;
-081F;SAMARITAN VOWEL SIGN LONG AA;Mn;230;NSM;;;;;N;;;;;
-0820;SAMARITAN VOWEL SIGN AA;Mn;230;NSM;;;;;N;;;;;
-0821;SAMARITAN VOWEL SIGN OVERLONG A;Mn;230;NSM;;;;;N;;;;;
-0822;SAMARITAN VOWEL SIGN LONG A;Mn;230;NSM;;;;;N;;;;;
-0823;SAMARITAN VOWEL SIGN A;Mn;230;NSM;;;;;N;;;;;
-0824;SAMARITAN MODIFIER LETTER SHORT A;Lm;0;R;;;;;N;;;;;
-0825;SAMARITAN VOWEL SIGN SHORT A;Mn;230;NSM;;;;;N;;;;;
-0826;SAMARITAN VOWEL SIGN LONG U;Mn;230;NSM;;;;;N;;;;;
-0827;SAMARITAN VOWEL SIGN U;Mn;230;NSM;;;;;N;;;;;
-0828;SAMARITAN MODIFIER LETTER I;Lm;0;R;;;;;N;;;;;
-0829;SAMARITAN VOWEL SIGN LONG I;Mn;230;NSM;;;;;N;;;;;
-082A;SAMARITAN VOWEL SIGN I;Mn;230;NSM;;;;;N;;;;;
-082B;SAMARITAN VOWEL SIGN O;Mn;230;NSM;;;;;N;;;;;
-082C;SAMARITAN VOWEL SIGN SUKUN;Mn;230;NSM;;;;;N;;;;;
-082D;SAMARITAN MARK NEQUDAA;Mn;230;NSM;;;;;N;;;;;
-0830;SAMARITAN PUNCTUATION NEQUDAA;Po;0;R;;;;;N;;;;;
-0831;SAMARITAN PUNCTUATION AFSAAQ;Po;0;R;;;;;N;;;;;
-0832;SAMARITAN PUNCTUATION ANGED;Po;0;R;;;;;N;;;;;
-0833;SAMARITAN PUNCTUATION BAU;Po;0;R;;;;;N;;;;;
-0834;SAMARITAN PUNCTUATION ATMAAU;Po;0;R;;;;;N;;;;;
-0835;SAMARITAN PUNCTUATION SHIYYAALAA;Po;0;R;;;;;N;;;;;
-0836;SAMARITAN ABBREVIATION MARK;Po;0;R;;;;;N;;;;;
-0837;SAMARITAN PUNCTUATION MELODIC QITSA;Po;0;R;;;;;N;;;;;
-0838;SAMARITAN PUNCTUATION ZIQAA;Po;0;R;;;;;N;;;;;
-0839;SAMARITAN PUNCTUATION QITSA;Po;0;R;;;;;N;;;;;
-083A;SAMARITAN PUNCTUATION ZAEF;Po;0;R;;;;;N;;;;;
-083B;SAMARITAN PUNCTUATION TURU;Po;0;R;;;;;N;;;;;
-083C;SAMARITAN PUNCTUATION ARKAANU;Po;0;R;;;;;N;;;;;
-083D;SAMARITAN PUNCTUATION SOF MASHFAAT;Po;0;R;;;;;N;;;;;
-083E;SAMARITAN PUNCTUATION ANNAAU;Po;0;R;;;;;N;;;;;
-0840;MANDAIC LETTER HALQA;Lo;0;R;;;;;N;;;;;
-0841;MANDAIC LETTER AB;Lo;0;R;;;;;N;;;;;
-0842;MANDAIC LETTER AG;Lo;0;R;;;;;N;;;;;
-0843;MANDAIC LETTER AD;Lo;0;R;;;;;N;;;;;
-0844;MANDAIC LETTER AH;Lo;0;R;;;;;N;;;;;
-0845;MANDAIC LETTER USHENNA;Lo;0;R;;;;;N;;;;;
-0846;MANDAIC LETTER AZ;Lo;0;R;;;;;N;;;;;
-0847;MANDAIC LETTER IT;Lo;0;R;;;;;N;;;;;
-0848;MANDAIC LETTER ATT;Lo;0;R;;;;;N;;;;;
-0849;MANDAIC LETTER AKSA;Lo;0;R;;;;;N;;;;;
-084A;MANDAIC LETTER AK;Lo;0;R;;;;;N;;;;;
-084B;MANDAIC LETTER AL;Lo;0;R;;;;;N;;;;;
-084C;MANDAIC LETTER AM;Lo;0;R;;;;;N;;;;;
-084D;MANDAIC LETTER AN;Lo;0;R;;;;;N;;;;;
-084E;MANDAIC LETTER AS;Lo;0;R;;;;;N;;;;;
-084F;MANDAIC LETTER IN;Lo;0;R;;;;;N;;;;;
-0850;MANDAIC LETTER AP;Lo;0;R;;;;;N;;;;;
-0851;MANDAIC LETTER ASZ;Lo;0;R;;;;;N;;;;;
-0852;MANDAIC LETTER AQ;Lo;0;R;;;;;N;;;;;
-0853;MANDAIC LETTER AR;Lo;0;R;;;;;N;;;;;
-0854;MANDAIC LETTER ASH;Lo;0;R;;;;;N;;;;;
-0855;MANDAIC LETTER AT;Lo;0;R;;;;;N;;;;;
-0856;MANDAIC LETTER DUSHENNA;Lo;0;R;;;;;N;;;;;
-0857;MANDAIC LETTER KAD;Lo;0;R;;;;;N;;;;;
-0858;MANDAIC LETTER AIN;Lo;0;R;;;;;N;;;;;
-0859;MANDAIC AFFRICATION MARK;Mn;220;NSM;;;;;N;;;;;
-085A;MANDAIC VOCALIZATION MARK;Mn;220;NSM;;;;;N;;;;;
-085B;MANDAIC GEMINATION MARK;Mn;220;NSM;;;;;N;;;;;
-085E;MANDAIC PUNCTUATION;Po;0;R;;;;;N;;;;;
-08A0;ARABIC LETTER BEH WITH SMALL V BELOW;Lo;0;AL;;;;;N;;;;;
-08A2;ARABIC LETTER JEEM WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-08A3;ARABIC LETTER TAH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-08A4;ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-08A5;ARABIC LETTER QAF WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
-08A6;ARABIC LETTER LAM WITH DOUBLE BAR;Lo;0;AL;;;;;N;;;;;
-08A7;ARABIC LETTER MEEM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
-08A8;ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE;Lo;0;AL;;;;;N;;;;;
-08A9;ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
-08AA;ARABIC LETTER REH WITH LOOP;Lo;0;AL;;;;;N;;;;;
-08AB;ARABIC LETTER WAW WITH DOT WITHIN;Lo;0;AL;;;;;N;;;;;
-08AC;ARABIC LETTER ROHINGYA YEH;Lo;0;AL;;;;;N;;;;;
-08E4;ARABIC CURLY FATHA;Mn;230;NSM;;;;;N;;;;;
-08E5;ARABIC CURLY DAMMA;Mn;230;NSM;;;;;N;;;;;
-08E6;ARABIC CURLY KASRA;Mn;220;NSM;;;;;N;;;;;
-08E7;ARABIC CURLY FATHATAN;Mn;230;NSM;;;;;N;;;;;
-08E8;ARABIC CURLY DAMMATAN;Mn;230;NSM;;;;;N;;;;;
-08E9;ARABIC CURLY KASRATAN;Mn;220;NSM;;;;;N;;;;;
-08EA;ARABIC TONE ONE DOT ABOVE;Mn;230;NSM;;;;;N;;;;;
-08EB;ARABIC TONE TWO DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
-08EC;ARABIC TONE LOOP ABOVE;Mn;230;NSM;;;;;N;;;;;
-08ED;ARABIC TONE ONE DOT BELOW;Mn;220;NSM;;;;;N;;;;;
-08EE;ARABIC TONE TWO DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
-08EF;ARABIC TONE LOOP BELOW;Mn;220;NSM;;;;;N;;;;;
-08F0;ARABIC OPEN FATHATAN;Mn;27;NSM;;;;;N;;;;;
-08F1;ARABIC OPEN DAMMATAN;Mn;28;NSM;;;;;N;;;;;
-08F2;ARABIC OPEN KASRATAN;Mn;29;NSM;;;;;N;;;;;
-08F3;ARABIC SMALL HIGH WAW;Mn;230;NSM;;;;;N;;;;;
-08F4;ARABIC FATHA WITH RING;Mn;230;NSM;;;;;N;;;;;
-08F5;ARABIC FATHA WITH DOT ABOVE;Mn;230;NSM;;;;;N;;;;;
-08F6;ARABIC KASRA WITH DOT BELOW;Mn;220;NSM;;;;;N;;;;;
-08F7;ARABIC LEFT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
-08F8;ARABIC RIGHT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
-08F9;ARABIC LEFT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
-08FA;ARABIC RIGHT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
-08FB;ARABIC DOUBLE RIGHT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
-08FC;ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT;Mn;230;NSM;;;;;N;;;;;
-08FD;ARABIC RIGHT ARROWHEAD ABOVE WITH DOT;Mn;230;NSM;;;;;N;;;;;
-08FE;ARABIC DAMMA WITH DOT;Mn;230;NSM;;;;;N;;;;;
-0900;DEVANAGARI SIGN INVERTED CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
-0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
-0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
-0903;DEVANAGARI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
-0904;DEVANAGARI LETTER SHORT A;Lo;0;L;;;;;N;;;;;
-0905;DEVANAGARI LETTER A;Lo;0;L;;;;;N;;;;;
-0906;DEVANAGARI LETTER AA;Lo;0;L;;;;;N;;;;;
-0907;DEVANAGARI LETTER I;Lo;0;L;;;;;N;;;;;
-0908;DEVANAGARI LETTER II;Lo;0;L;;;;;N;;;;;
-0909;DEVANAGARI LETTER U;Lo;0;L;;;;;N;;;;;
-090A;DEVANAGARI LETTER UU;Lo;0;L;;;;;N;;;;;
-090B;DEVANAGARI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
-090C;DEVANAGARI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
-090D;DEVANAGARI LETTER CANDRA E;Lo;0;L;;;;;N;;;;;
-090E;DEVANAGARI LETTER SHORT E;Lo;0;L;;;;;N;;;;;
-090F;DEVANAGARI LETTER E;Lo;0;L;;;;;N;;;;;
-0910;DEVANAGARI LETTER AI;Lo;0;L;;;;;N;;;;;
-0911;DEVANAGARI LETTER CANDRA O;Lo;0;L;;;;;N;;;;;
-0912;DEVANAGARI LETTER SHORT O;Lo;0;L;;;;;N;;;;;
-0913;DEVANAGARI LETTER O;Lo;0;L;;;;;N;;;;;
-0914;DEVANAGARI LETTER AU;Lo;0;L;;;;;N;;;;;
-0915;DEVANAGARI LETTER KA;Lo;0;L;;;;;N;;;;;
-0916;DEVANAGARI LETTER KHA;Lo;0;L;;;;;N;;;;;
-0917;DEVANAGARI LETTER GA;Lo;0;L;;;;;N;;;;;
-0918;DEVANAGARI LETTER GHA;Lo;0;L;;;;;N;;;;;
-0919;DEVANAGARI LETTER NGA;Lo;0;L;;;;;N;;;;;
-091A;DEVANAGARI LETTER CA;Lo;0;L;;;;;N;;;;;
-091B;DEVANAGARI LETTER CHA;Lo;0;L;;;;;N;;;;;
-091C;DEVANAGARI LETTER JA;Lo;0;L;;;;;N;;;;;
-091D;DEVANAGARI LETTER JHA;Lo;0;L;;;;;N;;;;;
-091E;DEVANAGARI LETTER NYA;Lo;0;L;;;;;N;;;;;
-091F;DEVANAGARI LETTER TTA;Lo;0;L;;;;;N;;;;;
-0920;DEVANAGARI LETTER TTHA;Lo;0;L;;;;;N;;;;;
-0921;DEVANAGARI LETTER DDA;Lo;0;L;;;;;N;;;;;
-0922;DEVANAGARI LETTER DDHA;Lo;0;L;;;;;N;;;;;
-0923;DEVANAGARI LETTER NNA;Lo;0;L;;;;;N;;;;;
-0924;DEVANAGARI LETTER TA;Lo;0;L;;;;;N;;;;;
-0925;DEVANAGARI LETTER THA;Lo;0;L;;;;;N;;;;;
-0926;DEVANAGARI LETTER DA;Lo;0;L;;;;;N;;;;;
-0927;DEVANAGARI LETTER DHA;Lo;0;L;;;;;N;;;;;
-0928;DEVANAGARI LETTER NA;Lo;0;L;;;;;N;;;;;
-0929;DEVANAGARI LETTER NNNA;Lo;0;L;0928 093C;;;;N;;;;;
-092A;DEVANAGARI LETTER PA;Lo;0;L;;;;;N;;;;;
-092B;DEVANAGARI LETTER PHA;Lo;0;L;;;;;N;;;;;
-092C;DEVANAGARI LETTER BA;Lo;0;L;;;;;N;;;;;
-092D;DEVANAGARI LETTER BHA;Lo;0;L;;;;;N;;;;;
-092E;DEVANAGARI LETTER MA;Lo;0;L;;;;;N;;;;;
-092F;DEVANAGARI LETTER YA;Lo;0;L;;;;;N;;;;;
-0930;DEVANAGARI LETTER RA;Lo;0;L;;;;;N;;;;;
-0931;DEVANAGARI LETTER RRA;Lo;0;L;0930 093C;;;;N;;;;;
-0932;DEVANAGARI LETTER LA;Lo;0;L;;;;;N;;;;;
-0933;DEVANAGARI LETTER LLA;Lo;0;L;;;;;N;;;;;
-0934;DEVANAGARI LETTER LLLA;Lo;0;L;0933 093C;;;;N;;;;;
-0935;DEVANAGARI LETTER VA;Lo;0;L;;;;;N;;;;;
-0936;DEVANAGARI LETTER SHA;Lo;0;L;;;;;N;;;;;
-0937;DEVANAGARI LETTER SSA;Lo;0;L;;;;;N;;;;;
-0938;DEVANAGARI LETTER SA;Lo;0;L;;;;;N;;;;;
-0939;DEVANAGARI LETTER HA;Lo;0;L;;;;;N;;;;;
-093A;DEVANAGARI VOWEL SIGN OE;Mn;0;NSM;;;;;N;;;;;
-093B;DEVANAGARI VOWEL SIGN OOE;Mc;0;L;;;;;N;;;;;
-093C;DEVANAGARI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
-093D;DEVANAGARI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
-093E;DEVANAGARI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-093F;DEVANAGARI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
-0940;DEVANAGARI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
-0941;DEVANAGARI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-0942;DEVANAGARI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
-0943;DEVANAGARI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
-0944;DEVANAGARI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
-0945;DEVANAGARI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;;
-0946;DEVANAGARI VOWEL SIGN SHORT E;Mn;0;NSM;;;;;N;;;;;
-0947;DEVANAGARI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
-0948;DEVANAGARI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
-0949;DEVANAGARI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;;
-094A;DEVANAGARI VOWEL SIGN SHORT O;Mc;0;L;;;;;N;;;;;
-094B;DEVANAGARI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
-094C;DEVANAGARI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
-094D;DEVANAGARI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
-094E;DEVANAGARI VOWEL SIGN PRISHTHAMATRA E;Mc;0;L;;;;;N;;;;;
-094F;DEVANAGARI VOWEL SIGN AW;Mc;0;L;;;;;N;;;;;
-0950;DEVANAGARI OM;Lo;0;L;;;;;N;;;;;
-0951;DEVANAGARI STRESS SIGN UDATTA;Mn;230;NSM;;;;;N;;;;;
-0952;DEVANAGARI STRESS SIGN ANUDATTA;Mn;220;NSM;;;;;N;;;;;
-0953;DEVANAGARI GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;;
-0954;DEVANAGARI ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;;
-0955;DEVANAGARI VOWEL SIGN CANDRA LONG E;Mn;0;NSM;;;;;N;;;;;
-0956;DEVANAGARI VOWEL SIGN UE;Mn;0;NSM;;;;;N;;;;;
-0957;DEVANAGARI VOWEL SIGN UUE;Mn;0;NSM;;;;;N;;;;;
-0958;DEVANAGARI LETTER QA;Lo;0;L;0915 093C;;;;N;;;;;
-0959;DEVANAGARI LETTER KHHA;Lo;0;L;0916 093C;;;;N;;;;;
-095A;DEVANAGARI LETTER GHHA;Lo;0;L;0917 093C;;;;N;;;;;
-095B;DEVANAGARI LETTER ZA;Lo;0;L;091C 093C;;;;N;;;;;
-095C;DEVANAGARI LETTER DDDHA;Lo;0;L;0921 093C;;;;N;;;;;
-095D;DEVANAGARI LETTER RHA;Lo;0;L;0922 093C;;;;N;;;;;
-095E;DEVANAGARI LETTER FA;Lo;0;L;092B 093C;;;;N;;;;;
-095F;DEVANAGARI LETTER YYA;Lo;0;L;092F 093C;;;;N;;;;;
-0960;DEVANAGARI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
-0961;DEVANAGARI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
-0962;DEVANAGARI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
-0963;DEVANAGARI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
-0964;DEVANAGARI DANDA;Po;0;L;;;;;N;;;;;
-0965;DEVANAGARI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
-0966;DEVANAGARI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-0967;DEVANAGARI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-0968;DEVANAGARI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-0969;DEVANAGARI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-096A;DEVANAGARI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-096B;DEVANAGARI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-096C;DEVANAGARI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-096D;DEVANAGARI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-096E;DEVANAGARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-096F;DEVANAGARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-0970;DEVANAGARI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
-0971;DEVANAGARI SIGN HIGH SPACING DOT;Lm;0;L;;;;;N;;;;;
-0972;DEVANAGARI LETTER CANDRA A;Lo;0;L;;;;;N;;;;;
-0973;DEVANAGARI LETTER OE;Lo;0;L;;;;;N;;;;;
-0974;DEVANAGARI LETTER OOE;Lo;0;L;;;;;N;;;;;
-0975;DEVANAGARI LETTER AW;Lo;0;L;;;;;N;;;;;
-0976;DEVANAGARI LETTER UE;Lo;0;L;;;;;N;;;;;
-0977;DEVANAGARI LETTER UUE;Lo;0;L;;;;;N;;;;;
-0979;DEVANAGARI LETTER ZHA;Lo;0;L;;;;;N;;;;;
-097A;DEVANAGARI LETTER HEAVY YA;Lo;0;L;;;;;N;;;;;
-097B;DEVANAGARI LETTER GGA;Lo;0;L;;;;;N;;;;;
-097C;DEVANAGARI LETTER JJA;Lo;0;L;;;;;N;;;;;
-097D;DEVANAGARI LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
-097E;DEVANAGARI LETTER DDDA;Lo;0;L;;;;;N;;;;;
-097F;DEVANAGARI LETTER BBA;Lo;0;L;;;;;N;;;;;
-0981;BENGALI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
-0982;BENGALI SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
-0983;BENGALI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
-0985;BENGALI LETTER A;Lo;0;L;;;;;N;;;;;
-0986;BENGALI LETTER AA;Lo;0;L;;;;;N;;;;;
-0987;BENGALI LETTER I;Lo;0;L;;;;;N;;;;;
-0988;BENGALI LETTER II;Lo;0;L;;;;;N;;;;;
-0989;BENGALI LETTER U;Lo;0;L;;;;;N;;;;;
-098A;BENGALI LETTER UU;Lo;0;L;;;;;N;;;;;
-098B;BENGALI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
-098C;BENGALI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
-098F;BENGALI LETTER E;Lo;0;L;;;;;N;;;;;
-0990;BENGALI LETTER AI;Lo;0;L;;;;;N;;;;;
-0993;BENGALI LETTER O;Lo;0;L;;;;;N;;;;;
-0994;BENGALI LETTER AU;Lo;0;L;;;;;N;;;;;
-0995;BENGALI LETTER KA;Lo;0;L;;;;;N;;;;;
-0996;BENGALI LETTER KHA;Lo;0;L;;;;;N;;;;;
-0997;BENGALI LETTER GA;Lo;0;L;;;;;N;;;;;
-0998;BENGALI LETTER GHA;Lo;0;L;;;;;N;;;;;
-0999;BENGALI LETTER NGA;Lo;0;L;;;;;N;;;;;
-099A;BENGALI LETTER CA;Lo;0;L;;;;;N;;;;;
-099B;BENGALI LETTER CHA;Lo;0;L;;;;;N;;;;;
-099C;BENGALI LETTER JA;Lo;0;L;;;;;N;;;;;
-099D;BENGALI LETTER JHA;Lo;0;L;;;;;N;;;;;
-099E;BENGALI LETTER NYA;Lo;0;L;;;;;N;;;;;
-099F;BENGALI LETTER TTA;Lo;0;L;;;;;N;;;;;
-09A0;BENGALI LETTER TTHA;Lo;0;L;;;;;N;;;;;
-09A1;BENGALI LETTER DDA;Lo;0;L;;;;;N;;;;;
-09A2;BENGALI LETTER DDHA;Lo;0;L;;;;;N;;;;;
-09A3;BENGALI LETTER NNA;Lo;0;L;;;;;N;;;;;
-09A4;BENGALI LETTER TA;Lo;0;L;;;;;N;;;;;
-09A5;BENGALI LETTER THA;Lo;0;L;;;;;N;;;;;
-09A6;BENGALI LETTER DA;Lo;0;L;;;;;N;;;;;
-09A7;BENGALI LETTER DHA;Lo;0;L;;;;;N;;;;;
-09A8;BENGALI LETTER NA;Lo;0;L;;;;;N;;;;;
-09AA;BENGALI LETTER PA;Lo;0;L;;;;;N;;;;;
-09AB;BENGALI LETTER PHA;Lo;0;L;;;;;N;;;;;
-09AC;BENGALI LETTER BA;Lo;0;L;;;;;N;;;;;
-09AD;BENGALI LETTER BHA;Lo;0;L;;;;;N;;;;;
-09AE;BENGALI LETTER MA;Lo;0;L;;;;;N;;;;;
-09AF;BENGALI LETTER YA;Lo;0;L;;;;;N;;;;;
-09B0;BENGALI LETTER RA;Lo;0;L;;;;;N;;;;;
-09B2;BENGALI LETTER LA;Lo;0;L;;;;;N;;;;;
-09B6;BENGALI LETTER SHA;Lo;0;L;;;;;N;;;;;
-09B7;BENGALI LETTER SSA;Lo;0;L;;;;;N;;;;;
-09B8;BENGALI LETTER SA;Lo;0;L;;;;;N;;;;;
-09B9;BENGALI LETTER HA;Lo;0;L;;;;;N;;;;;
-09BC;BENGALI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
-09BD;BENGALI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
-09BE;BENGALI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-09BF;BENGALI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
-09C0;BENGALI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
-09C1;BENGALI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-09C2;BENGALI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
-09C3;BENGALI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
-09C4;BENGALI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
-09C7;BENGALI VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
-09C8;BENGALI VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
-09CB;BENGALI VOWEL SIGN O;Mc;0;L;09C7 09BE;;;;N;;;;;
-09CC;BENGALI VOWEL SIGN AU;Mc;0;L;09C7 09D7;;;;N;;;;;
-09CD;BENGALI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
-09CE;BENGALI LETTER KHANDA TA;Lo;0;L;;;;;N;;;;;
-09D7;BENGALI AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
-09DC;BENGALI LETTER RRA;Lo;0;L;09A1 09BC;;;;N;;;;;
-09DD;BENGALI LETTER RHA;Lo;0;L;09A2 09BC;;;;N;;;;;
-09DF;BENGALI LETTER YYA;Lo;0;L;09AF 09BC;;;;N;;;;;
-09E0;BENGALI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
-09E1;BENGALI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
-09E2;BENGALI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
-09E3;BENGALI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
-09E6;BENGALI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-09E7;BENGALI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-09E8;BENGALI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-09E9;BENGALI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-09EA;BENGALI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-09EB;BENGALI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-09EC;BENGALI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-09ED;BENGALI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-09EE;BENGALI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-09EF;BENGALI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-09F0;BENGALI LETTER RA WITH MIDDLE DIAGONAL;Lo;0;L;;;;;N;;;;;
-09F1;BENGALI LETTER RA WITH LOWER DIAGONAL;Lo;0;L;;;;;N;BENGALI LETTER VA WITH LOWER DIAGONAL;;;;
-09F2;BENGALI RUPEE MARK;Sc;0;ET;;;;;N;;;;;
-09F3;BENGALI RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
-09F4;BENGALI CURRENCY NUMERATOR ONE;No;0;L;;;;1/16;N;;;;;
-09F5;BENGALI CURRENCY NUMERATOR TWO;No;0;L;;;;1/8;N;;;;;
-09F6;BENGALI CURRENCY NUMERATOR THREE;No;0;L;;;;3/16;N;;;;;
-09F7;BENGALI CURRENCY NUMERATOR FOUR;No;0;L;;;;1/4;N;;;;;
-09F8;BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR;No;0;L;;;;3/4;N;;;;;
-09F9;BENGALI CURRENCY DENOMINATOR SIXTEEN;No;0;L;;;;16;N;;;;;
-09FA;BENGALI ISSHAR;So;0;L;;;;;N;;;;;
-09FB;BENGALI GANDA MARK;Sc;0;ET;;;;;N;;;;;
-0A01;GURMUKHI SIGN ADAK BINDI;Mn;0;NSM;;;;;N;;;;;
-0A02;GURMUKHI SIGN BINDI;Mn;0;NSM;;;;;N;;;;;
-0A03;GURMUKHI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
-0A05;GURMUKHI LETTER A;Lo;0;L;;;;;N;;;;;
-0A06;GURMUKHI LETTER AA;Lo;0;L;;;;;N;;;;;
-0A07;GURMUKHI LETTER I;Lo;0;L;;;;;N;;;;;
-0A08;GURMUKHI LETTER II;Lo;0;L;;;;;N;;;;;
-0A09;GURMUKHI LETTER U;Lo;0;L;;;;;N;;;;;
-0A0A;GURMUKHI LETTER UU;Lo;0;L;;;;;N;;;;;
-0A0F;GURMUKHI LETTER EE;Lo;0;L;;;;;N;;;;;
-0A10;GURMUKHI LETTER AI;Lo;0;L;;;;;N;;;;;
-0A13;GURMUKHI LETTER OO;Lo;0;L;;;;;N;;;;;
-0A14;GURMUKHI LETTER AU;Lo;0;L;;;;;N;;;;;
-0A15;GURMUKHI LETTER KA;Lo;0;L;;;;;N;;;;;
-0A16;GURMUKHI LETTER KHA;Lo;0;L;;;;;N;;;;;
-0A17;GURMUKHI LETTER GA;Lo;0;L;;;;;N;;;;;
-0A18;GURMUKHI LETTER GHA;Lo;0;L;;;;;N;;;;;
-0A19;GURMUKHI LETTER NGA;Lo;0;L;;;;;N;;;;;
-0A1A;GURMUKHI LETTER CA;Lo;0;L;;;;;N;;;;;
-0A1B;GURMUKHI LETTER CHA;Lo;0;L;;;;;N;;;;;
-0A1C;GURMUKHI LETTER JA;Lo;0;L;;;;;N;;;;;
-0A1D;GURMUKHI LETTER JHA;Lo;0;L;;;;;N;;;;;
-0A1E;GURMUKHI LETTER NYA;Lo;0;L;;;;;N;;;;;
-0A1F;GURMUKHI LETTER TTA;Lo;0;L;;;;;N;;;;;
-0A20;GURMUKHI LETTER TTHA;Lo;0;L;;;;;N;;;;;
-0A21;GURMUKHI LETTER DDA;Lo;0;L;;;;;N;;;;;
-0A22;GURMUKHI LETTER DDHA;Lo;0;L;;;;;N;;;;;
-0A23;GURMUKHI LETTER NNA;Lo;0;L;;;;;N;;;;;
-0A24;GURMUKHI LETTER TA;Lo;0;L;;;;;N;;;;;
-0A25;GURMUKHI LETTER THA;Lo;0;L;;;;;N;;;;;
-0A26;GURMUKHI LETTER DA;Lo;0;L;;;;;N;;;;;
-0A27;GURMUKHI LETTER DHA;Lo;0;L;;;;;N;;;;;
-0A28;GURMUKHI LETTER NA;Lo;0;L;;;;;N;;;;;
-0A2A;GURMUKHI LETTER PA;Lo;0;L;;;;;N;;;;;
-0A2B;GURMUKHI LETTER PHA;Lo;0;L;;;;;N;;;;;
-0A2C;GURMUKHI LETTER BA;Lo;0;L;;;;;N;;;;;
-0A2D;GURMUKHI LETTER BHA;Lo;0;L;;;;;N;;;;;
-0A2E;GURMUKHI LETTER MA;Lo;0;L;;;;;N;;;;;
-0A2F;GURMUKHI LETTER YA;Lo;0;L;;;;;N;;;;;
-0A30;GURMUKHI LETTER RA;Lo;0;L;;;;;N;;;;;
-0A32;GURMUKHI LETTER LA;Lo;0;L;;;;;N;;;;;
-0A33;GURMUKHI LETTER LLA;Lo;0;L;0A32 0A3C;;;;N;;;;;
-0A35;GURMUKHI LETTER VA;Lo;0;L;;;;;N;;;;;
-0A36;GURMUKHI LETTER SHA;Lo;0;L;0A38 0A3C;;;;N;;;;;
-0A38;GURMUKHI LETTER SA;Lo;0;L;;;;;N;;;;;
-0A39;GURMUKHI LETTER HA;Lo;0;L;;;;;N;;;;;
-0A3C;GURMUKHI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
-0A3E;GURMUKHI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-0A3F;GURMUKHI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
-0A40;GURMUKHI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
-0A41;GURMUKHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-0A42;GURMUKHI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
-0A47;GURMUKHI VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;;
-0A48;GURMUKHI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
-0A4B;GURMUKHI VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;;
-0A4C;GURMUKHI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
-0A4D;GURMUKHI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
-0A51;GURMUKHI SIGN UDAAT;Mn;0;NSM;;;;;N;;;;;
-0A59;GURMUKHI LETTER KHHA;Lo;0;L;0A16 0A3C;;;;N;;;;;
-0A5A;GURMUKHI LETTER GHHA;Lo;0;L;0A17 0A3C;;;;N;;;;;
-0A5B;GURMUKHI LETTER ZA;Lo;0;L;0A1C 0A3C;;;;N;;;;;
-0A5C;GURMUKHI LETTER RRA;Lo;0;L;;;;;N;;;;;
-0A5E;GURMUKHI LETTER FA;Lo;0;L;0A2B 0A3C;;;;N;;;;;
-0A66;GURMUKHI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-0A67;GURMUKHI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-0A68;GURMUKHI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-0A69;GURMUKHI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-0A6A;GURMUKHI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-0A6B;GURMUKHI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-0A6C;GURMUKHI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-0A6D;GURMUKHI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-0A6E;GURMUKHI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-0A6F;GURMUKHI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-0A70;GURMUKHI TIPPI;Mn;0;NSM;;;;;N;;;;;
-0A71;GURMUKHI ADDAK;Mn;0;NSM;;;;;N;;;;;
-0A72;GURMUKHI IRI;Lo;0;L;;;;;N;;;;;
-0A73;GURMUKHI URA;Lo;0;L;;;;;N;;;;;
-0A74;GURMUKHI EK ONKAR;Lo;0;L;;;;;N;;;;;
-0A75;GURMUKHI SIGN YAKASH;Mn;0;NSM;;;;;N;;;;;
-0A81;GUJARATI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
-0A82;GUJARATI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
-0A83;GUJARATI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
-0A85;GUJARATI LETTER A;Lo;0;L;;;;;N;;;;;
-0A86;GUJARATI LETTER AA;Lo;0;L;;;;;N;;;;;
-0A87;GUJARATI LETTER I;Lo;0;L;;;;;N;;;;;
-0A88;GUJARATI LETTER II;Lo;0;L;;;;;N;;;;;
-0A89;GUJARATI LETTER U;Lo;0;L;;;;;N;;;;;
-0A8A;GUJARATI LETTER UU;Lo;0;L;;;;;N;;;;;
-0A8B;GUJARATI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
-0A8C;GUJARATI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
-0A8D;GUJARATI VOWEL CANDRA E;Lo;0;L;;;;;N;;;;;
-0A8F;GUJARATI LETTER E;Lo;0;L;;;;;N;;;;;
-0A90;GUJARATI LETTER AI;Lo;0;L;;;;;N;;;;;
-0A91;GUJARATI VOWEL CANDRA O;Lo;0;L;;;;;N;;;;;
-0A93;GUJARATI LETTER O;Lo;0;L;;;;;N;;;;;
-0A94;GUJARATI LETTER AU;Lo;0;L;;;;;N;;;;;
-0A95;GUJARATI LETTER KA;Lo;0;L;;;;;N;;;;;
-0A96;GUJARATI LETTER KHA;Lo;0;L;;;;;N;;;;;
-0A97;GUJARATI LETTER GA;Lo;0;L;;;;;N;;;;;
-0A98;GUJARATI LETTER GHA;Lo;0;L;;;;;N;;;;;
-0A99;GUJARATI LETTER NGA;Lo;0;L;;;;;N;;;;;
-0A9A;GUJARATI LETTER CA;Lo;0;L;;;;;N;;;;;
-0A9B;GUJARATI LETTER CHA;Lo;0;L;;;;;N;;;;;
-0A9C;GUJARATI LETTER JA;Lo;0;L;;;;;N;;;;;
-0A9D;GUJARATI LETTER JHA;Lo;0;L;;;;;N;;;;;
-0A9E;GUJARATI LETTER NYA;Lo;0;L;;;;;N;;;;;
-0A9F;GUJARATI LETTER TTA;Lo;0;L;;;;;N;;;;;
-0AA0;GUJARATI LETTER TTHA;Lo;0;L;;;;;N;;;;;
-0AA1;GUJARATI LETTER DDA;Lo;0;L;;;;;N;;;;;
-0AA2;GUJARATI LETTER DDHA;Lo;0;L;;;;;N;;;;;
-0AA3;GUJARATI LETTER NNA;Lo;0;L;;;;;N;;;;;
-0AA4;GUJARATI LETTER TA;Lo;0;L;;;;;N;;;;;
-0AA5;GUJARATI LETTER THA;Lo;0;L;;;;;N;;;;;
-0AA6;GUJARATI LETTER DA;Lo;0;L;;;;;N;;;;;
-0AA7;GUJARATI LETTER DHA;Lo;0;L;;;;;N;;;;;
-0AA8;GUJARATI LETTER NA;Lo;0;L;;;;;N;;;;;
-0AAA;GUJARATI LETTER PA;Lo;0;L;;;;;N;;;;;
-0AAB;GUJARATI LETTER PHA;Lo;0;L;;;;;N;;;;;
-0AAC;GUJARATI LETTER BA;Lo;0;L;;;;;N;;;;;
-0AAD;GUJARATI LETTER BHA;Lo;0;L;;;;;N;;;;;
-0AAE;GUJARATI LETTER MA;Lo;0;L;;;;;N;;;;;
-0AAF;GUJARATI LETTER YA;Lo;0;L;;;;;N;;;;;
-0AB0;GUJARATI LETTER RA;Lo;0;L;;;;;N;;;;;
-0AB2;GUJARATI LETTER LA;Lo;0;L;;;;;N;;;;;
-0AB3;GUJARATI LETTER LLA;Lo;0;L;;;;;N;;;;;
-0AB5;GUJARATI LETTER VA;Lo;0;L;;;;;N;;;;;
-0AB6;GUJARATI LETTER SHA;Lo;0;L;;;;;N;;;;;
-0AB7;GUJARATI LETTER SSA;Lo;0;L;;;;;N;;;;;
-0AB8;GUJARATI LETTER SA;Lo;0;L;;;;;N;;;;;
-0AB9;GUJARATI LETTER HA;Lo;0;L;;;;;N;;;;;
-0ABC;GUJARATI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
-0ABD;GUJARATI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
-0ABE;GUJARATI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-0ABF;GUJARATI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
-0AC0;GUJARATI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
-0AC1;GUJARATI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-0AC2;GUJARATI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
-0AC3;GUJARATI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
-0AC4;GUJARATI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
-0AC5;GUJARATI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;;
-0AC7;GUJARATI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
-0AC8;GUJARATI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
-0AC9;GUJARATI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;;
-0ACB;GUJARATI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
-0ACC;GUJARATI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
-0ACD;GUJARATI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
-0AD0;GUJARATI OM;Lo;0;L;;;;;N;;;;;
-0AE0;GUJARATI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
-0AE1;GUJARATI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
-0AE2;GUJARATI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
-0AE3;GUJARATI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
-0AE6;GUJARATI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-0AE7;GUJARATI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-0AE8;GUJARATI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-0AE9;GUJARATI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-0AEA;GUJARATI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-0AEB;GUJARATI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-0AEC;GUJARATI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-0AED;GUJARATI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-0AEE;GUJARATI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-0AEF;GUJARATI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-0AF0;GUJARATI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
-0AF1;GUJARATI RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
-0B01;ORIYA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
-0B02;ORIYA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
-0B03;ORIYA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
-0B05;ORIYA LETTER A;Lo;0;L;;;;;N;;;;;
-0B06;ORIYA LETTER AA;Lo;0;L;;;;;N;;;;;
-0B07;ORIYA LETTER I;Lo;0;L;;;;;N;;;;;
-0B08;ORIYA LETTER II;Lo;0;L;;;;;N;;;;;
-0B09;ORIYA LETTER U;Lo;0;L;;;;;N;;;;;
-0B0A;ORIYA LETTER UU;Lo;0;L;;;;;N;;;;;
-0B0B;ORIYA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
-0B0C;ORIYA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
-0B0F;ORIYA LETTER E;Lo;0;L;;;;;N;;;;;
-0B10;ORIYA LETTER AI;Lo;0;L;;;;;N;;;;;
-0B13;ORIYA LETTER O;Lo;0;L;;;;;N;;;;;
-0B14;ORIYA LETTER AU;Lo;0;L;;;;;N;;;;;
-0B15;ORIYA LETTER KA;Lo;0;L;;;;;N;;;;;
-0B16;ORIYA LETTER KHA;Lo;0;L;;;;;N;;;;;
-0B17;ORIYA LETTER GA;Lo;0;L;;;;;N;;;;;
-0B18;ORIYA LETTER GHA;Lo;0;L;;;;;N;;;;;
-0B19;ORIYA LETTER NGA;Lo;0;L;;;;;N;;;;;
-0B1A;ORIYA LETTER CA;Lo;0;L;;;;;N;;;;;
-0B1B;ORIYA LETTER CHA;Lo;0;L;;;;;N;;;;;
-0B1C;ORIYA LETTER JA;Lo;0;L;;;;;N;;;;;
-0B1D;ORIYA LETTER JHA;Lo;0;L;;;;;N;;;;;
-0B1E;ORIYA LETTER NYA;Lo;0;L;;;;;N;;;;;
-0B1F;ORIYA LETTER TTA;Lo;0;L;;;;;N;;;;;
-0B20;ORIYA LETTER TTHA;Lo;0;L;;;;;N;;;;;
-0B21;ORIYA LETTER DDA;Lo;0;L;;;;;N;;;;;
-0B22;ORIYA LETTER DDHA;Lo;0;L;;;;;N;;;;;
-0B23;ORIYA LETTER NNA;Lo;0;L;;;;;N;;;;;
-0B24;ORIYA LETTER TA;Lo;0;L;;;;;N;;;;;
-0B25;ORIYA LETTER THA;Lo;0;L;;;;;N;;;;;
-0B26;ORIYA LETTER DA;Lo;0;L;;;;;N;;;;;
-0B27;ORIYA LETTER DHA;Lo;0;L;;;;;N;;;;;
-0B28;ORIYA LETTER NA;Lo;0;L;;;;;N;;;;;
-0B2A;ORIYA LETTER PA;Lo;0;L;;;;;N;;;;;
-0B2B;ORIYA LETTER PHA;Lo;0;L;;;;;N;;;;;
-0B2C;ORIYA LETTER BA;Lo;0;L;;;;;N;;;;;
-0B2D;ORIYA LETTER BHA;Lo;0;L;;;;;N;;;;;
-0B2E;ORIYA LETTER MA;Lo;0;L;;;;;N;;;;;
-0B2F;ORIYA LETTER YA;Lo;0;L;;;;;N;;;;;
-0B30;ORIYA LETTER RA;Lo;0;L;;;;;N;;;;;
-0B32;ORIYA LETTER LA;Lo;0;L;;;;;N;;;;;
-0B33;ORIYA LETTER LLA;Lo;0;L;;;;;N;;;;;
-0B35;ORIYA LETTER VA;Lo;0;L;;;;;N;;;;;
-0B36;ORIYA LETTER SHA;Lo;0;L;;;;;N;;;;;
-0B37;ORIYA LETTER SSA;Lo;0;L;;;;;N;;;;;
-0B38;ORIYA LETTER SA;Lo;0;L;;;;;N;;;;;
-0B39;ORIYA LETTER HA;Lo;0;L;;;;;N;;;;;
-0B3C;ORIYA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
-0B3D;ORIYA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
-0B3E;ORIYA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-0B3F;ORIYA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
-0B40;ORIYA VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
-0B41;ORIYA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-0B42;ORIYA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
-0B43;ORIYA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
-0B44;ORIYA VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
-0B47;ORIYA VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
-0B48;ORIYA VOWEL SIGN AI;Mc;0;L;0B47 0B56;;;;N;;;;;
-0B4B;ORIYA VOWEL SIGN O;Mc;0;L;0B47 0B3E;;;;N;;;;;
-0B4C;ORIYA VOWEL SIGN AU;Mc;0;L;0B47 0B57;;;;N;;;;;
-0B4D;ORIYA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
-0B56;ORIYA AI LENGTH MARK;Mn;0;NSM;;;;;N;;;;;
-0B57;ORIYA AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
-0B5C;ORIYA LETTER RRA;Lo;0;L;0B21 0B3C;;;;N;;;;;
-0B5D;ORIYA LETTER RHA;Lo;0;L;0B22 0B3C;;;;N;;;;;
-0B5F;ORIYA LETTER YYA;Lo;0;L;;;;;N;;;;;
-0B60;ORIYA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
-0B61;ORIYA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
-0B62;ORIYA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
-0B63;ORIYA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
-0B66;ORIYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-0B67;ORIYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-0B68;ORIYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-0B69;ORIYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-0B6A;ORIYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-0B6B;ORIYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-0B6C;ORIYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-0B6D;ORIYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-0B6E;ORIYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-0B6F;ORIYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-0B70;ORIYA ISSHAR;So;0;L;;;;;N;;;;;
-0B71;ORIYA LETTER WA;Lo;0;L;;;;;N;;;;;
-0B72;ORIYA FRACTION ONE QUARTER;No;0;L;;;;1/4;N;;;;;
-0B73;ORIYA FRACTION ONE HALF;No;0;L;;;;1/2;N;;;;;
-0B74;ORIYA FRACTION THREE QUARTERS;No;0;L;;;;3/4;N;;;;;
-0B75;ORIYA FRACTION ONE SIXTEENTH;No;0;L;;;;1/16;N;;;;;
-0B76;ORIYA FRACTION ONE EIGHTH;No;0;L;;;;1/8;N;;;;;
-0B77;ORIYA FRACTION THREE SIXTEENTHS;No;0;L;;;;3/16;N;;;;;
-0B82;TAMIL SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
-0B83;TAMIL SIGN VISARGA;Lo;0;L;;;;;N;;;;;
-0B85;TAMIL LETTER A;Lo;0;L;;;;;N;;;;;
-0B86;TAMIL LETTER AA;Lo;0;L;;;;;N;;;;;
-0B87;TAMIL LETTER I;Lo;0;L;;;;;N;;;;;
-0B88;TAMIL LETTER II;Lo;0;L;;;;;N;;;;;
-0B89;TAMIL LETTER U;Lo;0;L;;;;;N;;;;;
-0B8A;TAMIL LETTER UU;Lo;0;L;;;;;N;;;;;
-0B8E;TAMIL LETTER E;Lo;0;L;;;;;N;;;;;
-0B8F;TAMIL LETTER EE;Lo;0;L;;;;;N;;;;;
-0B90;TAMIL LETTER AI;Lo;0;L;;;;;N;;;;;
-0B92;TAMIL LETTER O;Lo;0;L;;;;;N;;;;;
-0B93;TAMIL LETTER OO;Lo;0;L;;;;;N;;;;;
-0B94;TAMIL LETTER AU;Lo;0;L;0B92 0BD7;;;;N;;;;;
-0B95;TAMIL LETTER KA;Lo;0;L;;;;;N;;;;;
-0B99;TAMIL LETTER NGA;Lo;0;L;;;;;N;;;;;
-0B9A;TAMIL LETTER CA;Lo;0;L;;;;;N;;;;;
-0B9C;TAMIL LETTER JA;Lo;0;L;;;;;N;;;;;
-0B9E;TAMIL LETTER NYA;Lo;0;L;;;;;N;;;;;
-0B9F;TAMIL LETTER TTA;Lo;0;L;;;;;N;;;;;
-0BA3;TAMIL LETTER NNA;Lo;0;L;;;;;N;;;;;
-0BA4;TAMIL LETTER TA;Lo;0;L;;;;;N;;;;;
-0BA8;TAMIL LETTER NA;Lo;0;L;;;;;N;;;;;
-0BA9;TAMIL LETTER NNNA;Lo;0;L;;;;;N;;;;;
-0BAA;TAMIL LETTER PA;Lo;0;L;;;;;N;;;;;
-0BAE;TAMIL LETTER MA;Lo;0;L;;;;;N;;;;;
-0BAF;TAMIL LETTER YA;Lo;0;L;;;;;N;;;;;
-0BB0;TAMIL LETTER RA;Lo;0;L;;;;;N;;;;;
-0BB1;TAMIL LETTER RRA;Lo;0;L;;;;;N;;;;;
-0BB2;TAMIL LETTER LA;Lo;0;L;;;;;N;;;;;
-0BB3;TAMIL LETTER LLA;Lo;0;L;;;;;N;;;;;
-0BB4;TAMIL LETTER LLLA;Lo;0;L;;;;;N;;;;;
-0BB5;TAMIL LETTER VA;Lo;0;L;;;;;N;;;;;
-0BB6;TAMIL LETTER SHA;Lo;0;L;;;;;N;;;;;
-0BB7;TAMIL LETTER SSA;Lo;0;L;;;;;N;;;;;
-0BB8;TAMIL LETTER SA;Lo;0;L;;;;;N;;;;;
-0BB9;TAMIL LETTER HA;Lo;0;L;;;;;N;;;;;
-0BBE;TAMIL VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-0BBF;TAMIL VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
-0BC0;TAMIL VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
-0BC1;TAMIL VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
-0BC2;TAMIL VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
-0BC6;TAMIL VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
-0BC7;TAMIL VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
-0BC8;TAMIL VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
-0BCA;TAMIL VOWEL SIGN O;Mc;0;L;0BC6 0BBE;;;;N;;;;;
-0BCB;TAMIL VOWEL SIGN OO;Mc;0;L;0BC7 0BBE;;;;N;;;;;
-0BCC;TAMIL VOWEL SIGN AU;Mc;0;L;0BC6 0BD7;;;;N;;;;;
-0BCD;TAMIL SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
-0BD0;TAMIL OM;Lo;0;L;;;;;N;;;;;
-0BD7;TAMIL AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
-0BE6;TAMIL DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-0BE7;TAMIL DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-0BE8;TAMIL DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-0BE9;TAMIL DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-0BEA;TAMIL DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-0BEB;TAMIL DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-0BEC;TAMIL DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-0BED;TAMIL DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-0BEE;TAMIL DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-0BEF;TAMIL DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-0BF0;TAMIL NUMBER TEN;No;0;L;;;;10;N;;;;;
-0BF1;TAMIL NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;;
-0BF2;TAMIL NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;;
-0BF3;TAMIL DAY SIGN;So;0;ON;;;;;N;;;;;
-0BF4;TAMIL MONTH SIGN;So;0;ON;;;;;N;;;;;
-0BF5;TAMIL YEAR SIGN;So;0;ON;;;;;N;;;;;
-0BF6;TAMIL DEBIT SIGN;So;0;ON;;;;;N;;;;;
-0BF7;TAMIL CREDIT SIGN;So;0;ON;;;;;N;;;;;
-0BF8;TAMIL AS ABOVE SIGN;So;0;ON;;;;;N;;;;;
-0BF9;TAMIL RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
-0BFA;TAMIL NUMBER SIGN;So;0;ON;;;;;N;;;;;
-0C01;TELUGU SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;;
-0C02;TELUGU SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
-0C03;TELUGU SIGN VISARGA;Mc;0;L;;;;;N;;;;;
-0C05;TELUGU LETTER A;Lo;0;L;;;;;N;;;;;
-0C06;TELUGU LETTER AA;Lo;0;L;;;;;N;;;;;
-0C07;TELUGU LETTER I;Lo;0;L;;;;;N;;;;;
-0C08;TELUGU LETTER II;Lo;0;L;;;;;N;;;;;
-0C09;TELUGU LETTER U;Lo;0;L;;;;;N;;;;;
-0C0A;TELUGU LETTER UU;Lo;0;L;;;;;N;;;;;
-0C0B;TELUGU LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
-0C0C;TELUGU LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
-0C0E;TELUGU LETTER E;Lo;0;L;;;;;N;;;;;
-0C0F;TELUGU LETTER EE;Lo;0;L;;;;;N;;;;;
-0C10;TELUGU LETTER AI;Lo;0;L;;;;;N;;;;;
-0C12;TELUGU LETTER O;Lo;0;L;;;;;N;;;;;
-0C13;TELUGU LETTER OO;Lo;0;L;;;;;N;;;;;
-0C14;TELUGU LETTER AU;Lo;0;L;;;;;N;;;;;
-0C15;TELUGU LETTER KA;Lo;0;L;;;;;N;;;;;
-0C16;TELUGU LETTER KHA;Lo;0;L;;;;;N;;;;;
-0C17;TELUGU LETTER GA;Lo;0;L;;;;;N;;;;;
-0C18;TELUGU LETTER GHA;Lo;0;L;;;;;N;;;;;
-0C19;TELUGU LETTER NGA;Lo;0;L;;;;;N;;;;;
-0C1A;TELUGU LETTER CA;Lo;0;L;;;;;N;;;;;
-0C1B;TELUGU LETTER CHA;Lo;0;L;;;;;N;;;;;
-0C1C;TELUGU LETTER JA;Lo;0;L;;;;;N;;;;;
-0C1D;TELUGU LETTER JHA;Lo;0;L;;;;;N;;;;;
-0C1E;TELUGU LETTER NYA;Lo;0;L;;;;;N;;;;;
-0C1F;TELUGU LETTER TTA;Lo;0;L;;;;;N;;;;;
-0C20;TELUGU LETTER TTHA;Lo;0;L;;;;;N;;;;;
-0C21;TELUGU LETTER DDA;Lo;0;L;;;;;N;;;;;
-0C22;TELUGU LETTER DDHA;Lo;0;L;;;;;N;;;;;
-0C23;TELUGU LETTER NNA;Lo;0;L;;;;;N;;;;;
-0C24;TELUGU LETTER TA;Lo;0;L;;;;;N;;;;;
-0C25;TELUGU LETTER THA;Lo;0;L;;;;;N;;;;;
-0C26;TELUGU LETTER DA;Lo;0;L;;;;;N;;;;;
-0C27;TELUGU LETTER DHA;Lo;0;L;;;;;N;;;;;
-0C28;TELUGU LETTER NA;Lo;0;L;;;;;N;;;;;
-0C2A;TELUGU LETTER PA;Lo;0;L;;;;;N;;;;;
-0C2B;TELUGU LETTER PHA;Lo;0;L;;;;;N;;;;;
-0C2C;TELUGU LETTER BA;Lo;0;L;;;;;N;;;;;
-0C2D;TELUGU LETTER BHA;Lo;0;L;;;;;N;;;;;
-0C2E;TELUGU LETTER MA;Lo;0;L;;;;;N;;;;;
-0C2F;TELUGU LETTER YA;Lo;0;L;;;;;N;;;;;
-0C30;TELUGU LETTER RA;Lo;0;L;;;;;N;;;;;
-0C31;TELUGU LETTER RRA;Lo;0;L;;;;;N;;;;;
-0C32;TELUGU LETTER LA;Lo;0;L;;;;;N;;;;;
-0C33;TELUGU LETTER LLA;Lo;0;L;;;;;N;;;;;
-0C35;TELUGU LETTER VA;Lo;0;L;;;;;N;;;;;
-0C36;TELUGU LETTER SHA;Lo;0;L;;;;;N;;;;;
-0C37;TELUGU LETTER SSA;Lo;0;L;;;;;N;;;;;
-0C38;TELUGU LETTER SA;Lo;0;L;;;;;N;;;;;
-0C39;TELUGU LETTER HA;Lo;0;L;;;;;N;;;;;
-0C3D;TELUGU SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
-0C3E;TELUGU VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;;
-0C3F;TELUGU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
-0C40;TELUGU VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
-0C41;TELUGU VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
-0C42;TELUGU VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
-0C43;TELUGU VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
-0C44;TELUGU VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
-0C46;TELUGU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
-0C47;TELUGU VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;;
-0C48;TELUGU VOWEL SIGN AI;Mn;0;NSM;0C46 0C56;;;;N;;;;;
-0C4A;TELUGU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
-0C4B;TELUGU VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;;
-0C4C;TELUGU VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
-0C4D;TELUGU SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
-0C55;TELUGU LENGTH MARK;Mn;84;NSM;;;;;N;;;;;
-0C56;TELUGU AI LENGTH MARK;Mn;91;NSM;;;;;N;;;;;
-0C58;TELUGU LETTER TSA;Lo;0;L;;;;;N;;;;;
-0C59;TELUGU LETTER DZA;Lo;0;L;;;;;N;;;;;
-0C60;TELUGU LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
-0C61;TELUGU LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
-0C62;TELUGU VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
-0C63;TELUGU VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
-0C66;TELUGU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-0C67;TELUGU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-0C68;TELUGU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-0C69;TELUGU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-0C6A;TELUGU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-0C6B;TELUGU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-0C6C;TELUGU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-0C6D;TELUGU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-0C6E;TELUGU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-0C6F;TELUGU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-0C78;TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR;No;0;ON;;;;0;N;;;;;
-0C79;TELUGU FRACTION DIGIT ONE FOR ODD POWERS OF FOUR;No;0;ON;;;;1;N;;;;;
-0C7A;TELUGU FRACTION DIGIT TWO FOR ODD POWERS OF FOUR;No;0;ON;;;;2;N;;;;;
-0C7B;TELUGU FRACTION DIGIT THREE FOR ODD POWERS OF FOUR;No;0;ON;;;;3;N;;;;;
-0C7C;TELUGU FRACTION DIGIT ONE FOR EVEN POWERS OF FOUR;No;0;ON;;;;1;N;;;;;
-0C7D;TELUGU FRACTION DIGIT TWO FOR EVEN POWERS OF FOUR;No;0;ON;;;;2;N;;;;;
-0C7E;TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR;No;0;ON;;;;3;N;;;;;
-0C7F;TELUGU SIGN TUUMU;So;0;L;;;;;N;;;;;
-0C82;KANNADA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
-0C83;KANNADA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
-0C85;KANNADA LETTER A;Lo;0;L;;;;;N;;;;;
-0C86;KANNADA LETTER AA;Lo;0;L;;;;;N;;;;;
-0C87;KANNADA LETTER I;Lo;0;L;;;;;N;;;;;
-0C88;KANNADA LETTER II;Lo;0;L;;;;;N;;;;;
-0C89;KANNADA LETTER U;Lo;0;L;;;;;N;;;;;
-0C8A;KANNADA LETTER UU;Lo;0;L;;;;;N;;;;;
-0C8B;KANNADA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
-0C8C;KANNADA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
-0C8E;KANNADA LETTER E;Lo;0;L;;;;;N;;;;;
-0C8F;KANNADA LETTER EE;Lo;0;L;;;;;N;;;;;
-0C90;KANNADA LETTER AI;Lo;0;L;;;;;N;;;;;
-0C92;KANNADA LETTER O;Lo;0;L;;;;;N;;;;;
-0C93;KANNADA LETTER OO;Lo;0;L;;;;;N;;;;;
-0C94;KANNADA LETTER AU;Lo;0;L;;;;;N;;;;;
-0C95;KANNADA LETTER KA;Lo;0;L;;;;;N;;;;;
-0C96;KANNADA LETTER KHA;Lo;0;L;;;;;N;;;;;
-0C97;KANNADA LETTER GA;Lo;0;L;;;;;N;;;;;
-0C98;KANNADA LETTER GHA;Lo;0;L;;;;;N;;;;;
-0C99;KANNADA LETTER NGA;Lo;0;L;;;;;N;;;;;
-0C9A;KANNADA LETTER CA;Lo;0;L;;;;;N;;;;;
-0C9B;KANNADA LETTER CHA;Lo;0;L;;;;;N;;;;;
-0C9C;KANNADA LETTER JA;Lo;0;L;;;;;N;;;;;
-0C9D;KANNADA LETTER JHA;Lo;0;L;;;;;N;;;;;
-0C9E;KANNADA LETTER NYA;Lo;0;L;;;;;N;;;;;
-0C9F;KANNADA LETTER TTA;Lo;0;L;;;;;N;;;;;
-0CA0;KANNADA LETTER TTHA;Lo;0;L;;;;;N;;;;;
-0CA1;KANNADA LETTER DDA;Lo;0;L;;;;;N;;;;;
-0CA2;KANNADA LETTER DDHA;Lo;0;L;;;;;N;;;;;
-0CA3;KANNADA LETTER NNA;Lo;0;L;;;;;N;;;;;
-0CA4;KANNADA LETTER TA;Lo;0;L;;;;;N;;;;;
-0CA5;KANNADA LETTER THA;Lo;0;L;;;;;N;;;;;
-0CA6;KANNADA LETTER DA;Lo;0;L;;;;;N;;;;;
-0CA7;KANNADA LETTER DHA;Lo;0;L;;;;;N;;;;;
-0CA8;KANNADA LETTER NA;Lo;0;L;;;;;N;;;;;
-0CAA;KANNADA LETTER PA;Lo;0;L;;;;;N;;;;;
-0CAB;KANNADA LETTER PHA;Lo;0;L;;;;;N;;;;;
-0CAC;KANNADA LETTER BA;Lo;0;L;;;;;N;;;;;
-0CAD;KANNADA LETTER BHA;Lo;0;L;;;;;N;;;;;
-0CAE;KANNADA LETTER MA;Lo;0;L;;;;;N;;;;;
-0CAF;KANNADA LETTER YA;Lo;0;L;;;;;N;;;;;
-0CB0;KANNADA LETTER RA;Lo;0;L;;;;;N;;;;;
-0CB1;KANNADA LETTER RRA;Lo;0;L;;;;;N;;;;;
-0CB2;KANNADA LETTER LA;Lo;0;L;;;;;N;;;;;
-0CB3;KANNADA LETTER LLA;Lo;0;L;;;;;N;;;;;
-0CB5;KANNADA LETTER VA;Lo;0;L;;;;;N;;;;;
-0CB6;KANNADA LETTER SHA;Lo;0;L;;;;;N;;;;;
-0CB7;KANNADA LETTER SSA;Lo;0;L;;;;;N;;;;;
-0CB8;KANNADA LETTER SA;Lo;0;L;;;;;N;;;;;
-0CB9;KANNADA LETTER HA;Lo;0;L;;;;;N;;;;;
-0CBC;KANNADA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
-0CBD;KANNADA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
-0CBE;KANNADA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-0CBF;KANNADA VOWEL SIGN I;Mn;0;L;;;;;N;;;;;
-0CC0;KANNADA VOWEL SIGN II;Mc;0;L;0CBF 0CD5;;;;N;;;;;
-0CC1;KANNADA VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
-0CC2;KANNADA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
-0CC3;KANNADA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
-0CC4;KANNADA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
-0CC6;KANNADA VOWEL SIGN E;Mn;0;L;;;;;N;;;;;
-0CC7;KANNADA VOWEL SIGN EE;Mc;0;L;0CC6 0CD5;;;;N;;;;;
-0CC8;KANNADA VOWEL SIGN AI;Mc;0;L;0CC6 0CD6;;;;N;;;;;
-0CCA;KANNADA VOWEL SIGN O;Mc;0;L;0CC6 0CC2;;;;N;;;;;
-0CCB;KANNADA VOWEL SIGN OO;Mc;0;L;0CCA 0CD5;;;;N;;;;;
-0CCC;KANNADA VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
-0CCD;KANNADA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
-0CD5;KANNADA LENGTH MARK;Mc;0;L;;;;;N;;;;;
-0CD6;KANNADA AI LENGTH MARK;Mc;0;L;;;;;N;;;;;
-0CDE;KANNADA LETTER FA;Lo;0;L;;;;;N;;;;;
-0CE0;KANNADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
-0CE1;KANNADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
-0CE2;KANNADA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
-0CE3;KANNADA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
-0CE6;KANNADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-0CE7;KANNADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-0CE8;KANNADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-0CE9;KANNADA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-0CEA;KANNADA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-0CEB;KANNADA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-0CEC;KANNADA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-0CED;KANNADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-0CEE;KANNADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-0CF1;KANNADA SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
-0CF2;KANNADA SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
-0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
-0D03;MALAYALAM SIGN VISARGA;Mc;0;L;;;;;N;;;;;
-0D05;MALAYALAM LETTER A;Lo;0;L;;;;;N;;;;;
-0D06;MALAYALAM LETTER AA;Lo;0;L;;;;;N;;;;;
-0D07;MALAYALAM LETTER I;Lo;0;L;;;;;N;;;;;
-0D08;MALAYALAM LETTER II;Lo;0;L;;;;;N;;;;;
-0D09;MALAYALAM LETTER U;Lo;0;L;;;;;N;;;;;
-0D0A;MALAYALAM LETTER UU;Lo;0;L;;;;;N;;;;;
-0D0B;MALAYALAM LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
-0D0C;MALAYALAM LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
-0D0E;MALAYALAM LETTER E;Lo;0;L;;;;;N;;;;;
-0D0F;MALAYALAM LETTER EE;Lo;0;L;;;;;N;;;;;
-0D10;MALAYALAM LETTER AI;Lo;0;L;;;;;N;;;;;
-0D12;MALAYALAM LETTER O;Lo;0;L;;;;;N;;;;;
-0D13;MALAYALAM LETTER OO;Lo;0;L;;;;;N;;;;;
-0D14;MALAYALAM LETTER AU;Lo;0;L;;;;;N;;;;;
-0D15;MALAYALAM LETTER KA;Lo;0;L;;;;;N;;;;;
-0D16;MALAYALAM LETTER KHA;Lo;0;L;;;;;N;;;;;
-0D17;MALAYALAM LETTER GA;Lo;0;L;;;;;N;;;;;
-0D18;MALAYALAM LETTER GHA;Lo;0;L;;;;;N;;;;;
-0D19;MALAYALAM LETTER NGA;Lo;0;L;;;;;N;;;;;
-0D1A;MALAYALAM LETTER CA;Lo;0;L;;;;;N;;;;;
-0D1B;MALAYALAM LETTER CHA;Lo;0;L;;;;;N;;;;;
-0D1C;MALAYALAM LETTER JA;Lo;0;L;;;;;N;;;;;
-0D1D;MALAYALAM LETTER JHA;Lo;0;L;;;;;N;;;;;
-0D1E;MALAYALAM LETTER NYA;Lo;0;L;;;;;N;;;;;
-0D1F;MALAYALAM LETTER TTA;Lo;0;L;;;;;N;;;;;
-0D20;MALAYALAM LETTER TTHA;Lo;0;L;;;;;N;;;;;
-0D21;MALAYALAM LETTER DDA;Lo;0;L;;;;;N;;;;;
-0D22;MALAYALAM LETTER DDHA;Lo;0;L;;;;;N;;;;;
-0D23;MALAYALAM LETTER NNA;Lo;0;L;;;;;N;;;;;
-0D24;MALAYALAM LETTER TA;Lo;0;L;;;;;N;;;;;
-0D25;MALAYALAM LETTER THA;Lo;0;L;;;;;N;;;;;
-0D26;MALAYALAM LETTER DA;Lo;0;L;;;;;N;;;;;
-0D27;MALAYALAM LETTER DHA;Lo;0;L;;;;;N;;;;;
-0D28;MALAYALAM LETTER NA;Lo;0;L;;;;;N;;;;;
-0D29;MALAYALAM LETTER NNNA;Lo;0;L;;;;;N;;;;;
-0D2A;MALAYALAM LETTER PA;Lo;0;L;;;;;N;;;;;
-0D2B;MALAYALAM LETTER PHA;Lo;0;L;;;;;N;;;;;
-0D2C;MALAYALAM LETTER BA;Lo;0;L;;;;;N;;;;;
-0D2D;MALAYALAM LETTER BHA;Lo;0;L;;;;;N;;;;;
-0D2E;MALAYALAM LETTER MA;Lo;0;L;;;;;N;;;;;
-0D2F;MALAYALAM LETTER YA;Lo;0;L;;;;;N;;;;;
-0D30;MALAYALAM LETTER RA;Lo;0;L;;;;;N;;;;;
-0D31;MALAYALAM LETTER RRA;Lo;0;L;;;;;N;;;;;
-0D32;MALAYALAM LETTER LA;Lo;0;L;;;;;N;;;;;
-0D33;MALAYALAM LETTER LLA;Lo;0;L;;;;;N;;;;;
-0D34;MALAYALAM LETTER LLLA;Lo;0;L;;;;;N;;;;;
-0D35;MALAYALAM LETTER VA;Lo;0;L;;;;;N;;;;;
-0D36;MALAYALAM LETTER SHA;Lo;0;L;;;;;N;;;;;
-0D37;MALAYALAM LETTER SSA;Lo;0;L;;;;;N;;;;;
-0D38;MALAYALAM LETTER SA;Lo;0;L;;;;;N;;;;;
-0D39;MALAYALAM LETTER HA;Lo;0;L;;;;;N;;;;;
-0D3A;MALAYALAM LETTER TTTA;Lo;0;L;;;;;N;;;;;
-0D3D;MALAYALAM SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
-0D3E;MALAYALAM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-0D3F;MALAYALAM VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
-0D40;MALAYALAM VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
-0D41;MALAYALAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-0D42;MALAYALAM VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
-0D43;MALAYALAM VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
-0D44;MALAYALAM VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
-0D46;MALAYALAM VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
-0D47;MALAYALAM VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
-0D48;MALAYALAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
-0D4A;MALAYALAM VOWEL SIGN O;Mc;0;L;0D46 0D3E;;;;N;;;;;
-0D4B;MALAYALAM VOWEL SIGN OO;Mc;0;L;0D47 0D3E;;;;N;;;;;
-0D4C;MALAYALAM VOWEL SIGN AU;Mc;0;L;0D46 0D57;;;;N;;;;;
-0D4D;MALAYALAM SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
-0D4E;MALAYALAM LETTER DOT REPH;Lo;0;L;;;;;N;;;;;
-0D57;MALAYALAM AU LENGTH MARK;Mc;0;L;;;;;N;;;;;
-0D60;MALAYALAM LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
-0D61;MALAYALAM LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
-0D62;MALAYALAM VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
-0D63;MALAYALAM VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
-0D66;MALAYALAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-0D67;MALAYALAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-0D68;MALAYALAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-0D69;MALAYALAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-0D6A;MALAYALAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-0D6B;MALAYALAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-0D6C;MALAYALAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-0D6D;MALAYALAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-0D6E;MALAYALAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-0D6F;MALAYALAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-0D70;MALAYALAM NUMBER TEN;No;0;L;;;;10;N;;;;;
-0D71;MALAYALAM NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;;
-0D72;MALAYALAM NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;;
-0D73;MALAYALAM FRACTION ONE QUARTER;No;0;L;;;;1/4;N;;;;;
-0D74;MALAYALAM FRACTION ONE HALF;No;0;L;;;;1/2;N;;;;;
-0D75;MALAYALAM FRACTION THREE QUARTERS;No;0;L;;;;3/4;N;;;;;
-0D79;MALAYALAM DATE MARK;So;0;L;;;;;N;;;;;
-0D7A;MALAYALAM LETTER CHILLU NN;Lo;0;L;;;;;N;;;;;
-0D7B;MALAYALAM LETTER CHILLU N;Lo;0;L;;;;;N;;;;;
-0D7C;MALAYALAM LETTER CHILLU RR;Lo;0;L;;;;;N;;;;;
-0D7D;MALAYALAM LETTER CHILLU L;Lo;0;L;;;;;N;;;;;
-0D7E;MALAYALAM LETTER CHILLU LL;Lo;0;L;;;;;N;;;;;
-0D7F;MALAYALAM LETTER CHILLU K;Lo;0;L;;;;;N;;;;;
-0D82;SINHALA SIGN ANUSVARAYA;Mc;0;L;;;;;N;;;;;
-0D83;SINHALA SIGN VISARGAYA;Mc;0;L;;;;;N;;;;;
-0D85;SINHALA LETTER AYANNA;Lo;0;L;;;;;N;;;;;
-0D86;SINHALA LETTER AAYANNA;Lo;0;L;;;;;N;;;;;
-0D87;SINHALA LETTER AEYANNA;Lo;0;L;;;;;N;;;;;
-0D88;SINHALA LETTER AEEYANNA;Lo;0;L;;;;;N;;;;;
-0D89;SINHALA LETTER IYANNA;Lo;0;L;;;;;N;;;;;
-0D8A;SINHALA LETTER IIYANNA;Lo;0;L;;;;;N;;;;;
-0D8B;SINHALA LETTER UYANNA;Lo;0;L;;;;;N;;;;;
-0D8C;SINHALA LETTER UUYANNA;Lo;0;L;;;;;N;;;;;
-0D8D;SINHALA LETTER IRUYANNA;Lo;0;L;;;;;N;;;;;
-0D8E;SINHALA LETTER IRUUYANNA;Lo;0;L;;;;;N;;;;;
-0D8F;SINHALA LETTER ILUYANNA;Lo;0;L;;;;;N;;;;;
-0D90;SINHALA LETTER ILUUYANNA;Lo;0;L;;;;;N;;;;;
-0D91;SINHALA LETTER EYANNA;Lo;0;L;;;;;N;;;;;
-0D92;SINHALA LETTER EEYANNA;Lo;0;L;;;;;N;;;;;
-0D93;SINHALA LETTER AIYANNA;Lo;0;L;;;;;N;;;;;
-0D94;SINHALA LETTER OYANNA;Lo;0;L;;;;;N;;;;;
-0D95;SINHALA LETTER OOYANNA;Lo;0;L;;;;;N;;;;;
-0D96;SINHALA LETTER AUYANNA;Lo;0;L;;;;;N;;;;;
-0D9A;SINHALA LETTER ALPAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;;
-0D9B;SINHALA LETTER MAHAAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;;
-0D9C;SINHALA LETTER ALPAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;;
-0D9D;SINHALA LETTER MAHAAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;;
-0D9E;SINHALA LETTER KANTAJA NAASIKYAYA;Lo;0;L;;;;;N;;;;;
-0D9F;SINHALA LETTER SANYAKA GAYANNA;Lo;0;L;;;;;N;;;;;
-0DA0;SINHALA LETTER ALPAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;;
-0DA1;SINHALA LETTER MAHAAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;;
-0DA2;SINHALA LETTER ALPAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;;
-0DA3;SINHALA LETTER MAHAAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;;
-0DA4;SINHALA LETTER TAALUJA NAASIKYAYA;Lo;0;L;;;;;N;;;;;
-0DA5;SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA;Lo;0;L;;;;;N;;;;;
-0DA6;SINHALA LETTER SANYAKA JAYANNA;Lo;0;L;;;;;N;;;;;
-0DA7;SINHALA LETTER ALPAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;;
-0DA8;SINHALA LETTER MAHAAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;;
-0DA9;SINHALA LETTER ALPAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;;
-0DAA;SINHALA LETTER MAHAAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;;
-0DAB;SINHALA LETTER MUURDHAJA NAYANNA;Lo;0;L;;;;;N;;;;;
-0DAC;SINHALA LETTER SANYAKA DDAYANNA;Lo;0;L;;;;;N;;;;;
-0DAD;SINHALA LETTER ALPAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;;
-0DAE;SINHALA LETTER MAHAAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;;
-0DAF;SINHALA LETTER ALPAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;;
-0DB0;SINHALA LETTER MAHAAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;;
-0DB1;SINHALA LETTER DANTAJA NAYANNA;Lo;0;L;;;;;N;;;;;
-0DB3;SINHALA LETTER SANYAKA DAYANNA;Lo;0;L;;;;;N;;;;;
-0DB4;SINHALA LETTER ALPAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;;
-0DB5;SINHALA LETTER MAHAAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;;
-0DB6;SINHALA LETTER ALPAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;;
-0DB7;SINHALA LETTER MAHAAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;;
-0DB8;SINHALA LETTER MAYANNA;Lo;0;L;;;;;N;;;;;
-0DB9;SINHALA LETTER AMBA BAYANNA;Lo;0;L;;;;;N;;;;;
-0DBA;SINHALA LETTER YAYANNA;Lo;0;L;;;;;N;;;;;
-0DBB;SINHALA LETTER RAYANNA;Lo;0;L;;;;;N;;;;;
-0DBD;SINHALA LETTER DANTAJA LAYANNA;Lo;0;L;;;;;N;;;;;
-0DC0;SINHALA LETTER VAYANNA;Lo;0;L;;;;;N;;;;;
-0DC1;SINHALA LETTER TAALUJA SAYANNA;Lo;0;L;;;;;N;;;;;
-0DC2;SINHALA LETTER MUURDHAJA SAYANNA;Lo;0;L;;;;;N;;;;;
-0DC3;SINHALA LETTER DANTAJA SAYANNA;Lo;0;L;;;;;N;;;;;
-0DC4;SINHALA LETTER HAYANNA;Lo;0;L;;;;;N;;;;;
-0DC5;SINHALA LETTER MUURDHAJA LAYANNA;Lo;0;L;;;;;N;;;;;
-0DC6;SINHALA LETTER FAYANNA;Lo;0;L;;;;;N;;;;;
-0DCA;SINHALA SIGN AL-LAKUNA;Mn;9;NSM;;;;;N;;;;;
-0DCF;SINHALA VOWEL SIGN AELA-PILLA;Mc;0;L;;;;;N;;;;;
-0DD0;SINHALA VOWEL SIGN KETTI AEDA-PILLA;Mc;0;L;;;;;N;;;;;
-0DD1;SINHALA VOWEL SIGN DIGA AEDA-PILLA;Mc;0;L;;;;;N;;;;;
-0DD2;SINHALA VOWEL SIGN KETTI IS-PILLA;Mn;0;NSM;;;;;N;;;;;
-0DD3;SINHALA VOWEL SIGN DIGA IS-PILLA;Mn;0;NSM;;;;;N;;;;;
-0DD4;SINHALA VOWEL SIGN KETTI PAA-PILLA;Mn;0;NSM;;;;;N;;;;;
-0DD6;SINHALA VOWEL SIGN DIGA PAA-PILLA;Mn;0;NSM;;;;;N;;;;;
-0DD8;SINHALA VOWEL SIGN GAETTA-PILLA;Mc;0;L;;;;;N;;;;;
-0DD9;SINHALA VOWEL SIGN KOMBUVA;Mc;0;L;;;;;N;;;;;
-0DDA;SINHALA VOWEL SIGN DIGA KOMBUVA;Mc;0;L;0DD9 0DCA;;;;N;;;;;
-0DDB;SINHALA VOWEL SIGN KOMBU DEKA;Mc;0;L;;;;;N;;;;;
-0DDC;SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA;Mc;0;L;0DD9 0DCF;;;;N;;;;;
-0DDD;SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA;Mc;0;L;0DDC 0DCA;;;;N;;;;;
-0DDE;SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA;Mc;0;L;0DD9 0DDF;;;;N;;;;;
-0DDF;SINHALA VOWEL SIGN GAYANUKITTA;Mc;0;L;;;;;N;;;;;
-0DF2;SINHALA VOWEL SIGN DIGA GAETTA-PILLA;Mc;0;L;;;;;N;;;;;
-0DF3;SINHALA VOWEL SIGN DIGA GAYANUKITTA;Mc;0;L;;;;;N;;;;;
-0DF4;SINHALA PUNCTUATION KUNDDALIYA;Po;0;L;;;;;N;;;;;
-0E01;THAI CHARACTER KO KAI;Lo;0;L;;;;;N;THAI LETTER KO KAI;;;;
-0E02;THAI CHARACTER KHO KHAI;Lo;0;L;;;;;N;THAI LETTER KHO KHAI;;;;
-0E03;THAI CHARACTER KHO KHUAT;Lo;0;L;;;;;N;THAI LETTER KHO KHUAT;;;;
-0E04;THAI CHARACTER KHO KHWAI;Lo;0;L;;;;;N;THAI LETTER KHO KHWAI;;;;
-0E05;THAI CHARACTER KHO KHON;Lo;0;L;;;;;N;THAI LETTER KHO KHON;;;;
-0E06;THAI CHARACTER KHO RAKHANG;Lo;0;L;;;;;N;THAI LETTER KHO RAKHANG;;;;
-0E07;THAI CHARACTER NGO NGU;Lo;0;L;;;;;N;THAI LETTER NGO NGU;;;;
-0E08;THAI CHARACTER CHO CHAN;Lo;0;L;;;;;N;THAI LETTER CHO CHAN;;;;
-0E09;THAI CHARACTER CHO CHING;Lo;0;L;;;;;N;THAI LETTER CHO CHING;;;;
-0E0A;THAI CHARACTER CHO CHANG;Lo;0;L;;;;;N;THAI LETTER CHO CHANG;;;;
-0E0B;THAI CHARACTER SO SO;Lo;0;L;;;;;N;THAI LETTER SO SO;;;;
-0E0C;THAI CHARACTER CHO CHOE;Lo;0;L;;;;;N;THAI LETTER CHO CHOE;;;;
-0E0D;THAI CHARACTER YO YING;Lo;0;L;;;;;N;THAI LETTER YO YING;;;;
-0E0E;THAI CHARACTER DO CHADA;Lo;0;L;;;;;N;THAI LETTER DO CHADA;;;;
-0E0F;THAI CHARACTER TO PATAK;Lo;0;L;;;;;N;THAI LETTER TO PATAK;;;;
-0E10;THAI CHARACTER THO THAN;Lo;0;L;;;;;N;THAI LETTER THO THAN;;;;
-0E11;THAI CHARACTER THO NANGMONTHO;Lo;0;L;;;;;N;THAI LETTER THO NANGMONTHO;;;;
-0E12;THAI CHARACTER THO PHUTHAO;Lo;0;L;;;;;N;THAI LETTER THO PHUTHAO;;;;
-0E13;THAI CHARACTER NO NEN;Lo;0;L;;;;;N;THAI LETTER NO NEN;;;;
-0E14;THAI CHARACTER DO DEK;Lo;0;L;;;;;N;THAI LETTER DO DEK;;;;
-0E15;THAI CHARACTER TO TAO;Lo;0;L;;;;;N;THAI LETTER TO TAO;;;;
-0E16;THAI CHARACTER THO THUNG;Lo;0;L;;;;;N;THAI LETTER THO THUNG;;;;
-0E17;THAI CHARACTER THO THAHAN;Lo;0;L;;;;;N;THAI LETTER THO THAHAN;;;;
-0E18;THAI CHARACTER THO THONG;Lo;0;L;;;;;N;THAI LETTER THO THONG;;;;
-0E19;THAI CHARACTER NO NU;Lo;0;L;;;;;N;THAI LETTER NO NU;;;;
-0E1A;THAI CHARACTER BO BAIMAI;Lo;0;L;;;;;N;THAI LETTER BO BAIMAI;;;;
-0E1B;THAI CHARACTER PO PLA;Lo;0;L;;;;;N;THAI LETTER PO PLA;;;;
-0E1C;THAI CHARACTER PHO PHUNG;Lo;0;L;;;;;N;THAI LETTER PHO PHUNG;;;;
-0E1D;THAI CHARACTER FO FA;Lo;0;L;;;;;N;THAI LETTER FO FA;;;;
-0E1E;THAI CHARACTER PHO PHAN;Lo;0;L;;;;;N;THAI LETTER PHO PHAN;;;;
-0E1F;THAI CHARACTER FO FAN;Lo;0;L;;;;;N;THAI LETTER FO FAN;;;;
-0E20;THAI CHARACTER PHO SAMPHAO;Lo;0;L;;;;;N;THAI LETTER PHO SAMPHAO;;;;
-0E21;THAI CHARACTER MO MA;Lo;0;L;;;;;N;THAI LETTER MO MA;;;;
-0E22;THAI CHARACTER YO YAK;Lo;0;L;;;;;N;THAI LETTER YO YAK;;;;
-0E23;THAI CHARACTER RO RUA;Lo;0;L;;;;;N;THAI LETTER RO RUA;;;;
-0E24;THAI CHARACTER RU;Lo;0;L;;;;;N;THAI LETTER RU;;;;
-0E25;THAI CHARACTER LO LING;Lo;0;L;;;;;N;THAI LETTER LO LING;;;;
-0E26;THAI CHARACTER LU;Lo;0;L;;;;;N;THAI LETTER LU;;;;
-0E27;THAI CHARACTER WO WAEN;Lo;0;L;;;;;N;THAI LETTER WO WAEN;;;;
-0E28;THAI CHARACTER SO SALA;Lo;0;L;;;;;N;THAI LETTER SO SALA;;;;
-0E29;THAI CHARACTER SO RUSI;Lo;0;L;;;;;N;THAI LETTER SO RUSI;;;;
-0E2A;THAI CHARACTER SO SUA;Lo;0;L;;;;;N;THAI LETTER SO SUA;;;;
-0E2B;THAI CHARACTER HO HIP;Lo;0;L;;;;;N;THAI LETTER HO HIP;;;;
-0E2C;THAI CHARACTER LO CHULA;Lo;0;L;;;;;N;THAI LETTER LO CHULA;;;;
-0E2D;THAI CHARACTER O ANG;Lo;0;L;;;;;N;THAI LETTER O ANG;;;;
-0E2E;THAI CHARACTER HO NOKHUK;Lo;0;L;;;;;N;THAI LETTER HO NOK HUK;;;;
-0E2F;THAI CHARACTER PAIYANNOI;Lo;0;L;;;;;N;THAI PAI YAN NOI;;;;
-0E30;THAI CHARACTER SARA A;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA A;;;;
-0E31;THAI CHARACTER MAI HAN-AKAT;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI HAN-AKAT;;;;
-0E32;THAI CHARACTER SARA AA;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AA;;;;
-0E33;THAI CHARACTER SARA AM;Lo;0;L;<compat> 0E4D 0E32;;;;N;THAI VOWEL SIGN SARA AM;;;;
-0E34;THAI CHARACTER SARA I;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA I;;;;
-0E35;THAI CHARACTER SARA II;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA II;;;;
-0E36;THAI CHARACTER SARA UE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UE;;;;
-0E37;THAI CHARACTER SARA UEE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UEE;;;;
-0E38;THAI CHARACTER SARA U;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA U;;;;
-0E39;THAI CHARACTER SARA UU;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA UU;;;;
-0E3A;THAI CHARACTER PHINTHU;Mn;9;NSM;;;;;N;THAI VOWEL SIGN PHINTHU;;;;
-0E3F;THAI CURRENCY SYMBOL BAHT;Sc;0;ET;;;;;N;THAI BAHT SIGN;;;;
-0E40;THAI CHARACTER SARA E;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA E;;;;
-0E41;THAI CHARACTER SARA AE;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AE;;;;
-0E42;THAI CHARACTER SARA O;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA O;;;;
-0E43;THAI CHARACTER SARA AI MAIMUAN;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MUAN;;;;
-0E44;THAI CHARACTER SARA AI MAIMALAI;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MALAI;;;;
-0E45;THAI CHARACTER LAKKHANGYAO;Lo;0;L;;;;;N;THAI LAK KHANG YAO;;;;
-0E46;THAI CHARACTER MAIYAMOK;Lm;0;L;;;;;N;THAI MAI YAMOK;;;;
-0E47;THAI CHARACTER MAITAIKHU;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI TAI KHU;;;;
-0E48;THAI CHARACTER MAI EK;Mn;107;NSM;;;;;N;THAI TONE MAI EK;;;;
-0E49;THAI CHARACTER MAI THO;Mn;107;NSM;;;;;N;THAI TONE MAI THO;;;;
-0E4A;THAI CHARACTER MAI TRI;Mn;107;NSM;;;;;N;THAI TONE MAI TRI;;;;
-0E4B;THAI CHARACTER MAI CHATTAWA;Mn;107;NSM;;;;;N;THAI TONE MAI CHATTAWA;;;;
-0E4C;THAI CHARACTER THANTHAKHAT;Mn;0;NSM;;;;;N;THAI THANTHAKHAT;;;;
-0E4D;THAI CHARACTER NIKHAHIT;Mn;0;NSM;;;;;N;THAI NIKKHAHIT;;;;
-0E4E;THAI CHARACTER YAMAKKAN;Mn;0;NSM;;;;;N;THAI YAMAKKAN;;;;
-0E4F;THAI CHARACTER FONGMAN;Po;0;L;;;;;N;THAI FONGMAN;;;;
-0E50;THAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-0E51;THAI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-0E52;THAI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-0E53;THAI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-0E54;THAI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-0E55;THAI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-0E56;THAI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-0E57;THAI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-0E58;THAI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-0E59;THAI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-0E5A;THAI CHARACTER ANGKHANKHU;Po;0;L;;;;;N;THAI ANGKHANKHU;;;;
-0E5B;THAI CHARACTER KHOMUT;Po;0;L;;;;;N;THAI KHOMUT;;;;
-0E81;LAO LETTER KO;Lo;0;L;;;;;N;;;;;
-0E82;LAO LETTER KHO SUNG;Lo;0;L;;;;;N;;;;;
-0E84;LAO LETTER KHO TAM;Lo;0;L;;;;;N;;;;;
-0E87;LAO LETTER NGO;Lo;0;L;;;;;N;;;;;
-0E88;LAO LETTER CO;Lo;0;L;;;;;N;;;;;
-0E8A;LAO LETTER SO TAM;Lo;0;L;;;;;N;;;;;
-0E8D;LAO LETTER NYO;Lo;0;L;;;;;N;;;;;
-0E94;LAO LETTER DO;Lo;0;L;;;;;N;;;;;
-0E95;LAO LETTER TO;Lo;0;L;;;;;N;;;;;
-0E96;LAO LETTER THO SUNG;Lo;0;L;;;;;N;;;;;
-0E97;LAO LETTER THO TAM;Lo;0;L;;;;;N;;;;;
-0E99;LAO LETTER NO;Lo;0;L;;;;;N;;;;;
-0E9A;LAO LETTER BO;Lo;0;L;;;;;N;;;;;
-0E9B;LAO LETTER PO;Lo;0;L;;;;;N;;;;;
-0E9C;LAO LETTER PHO SUNG;Lo;0;L;;;;;N;;;;;
-0E9D;LAO LETTER FO TAM;Lo;0;L;;;;;N;;;;;
-0E9E;LAO LETTER PHO TAM;Lo;0;L;;;;;N;;;;;
-0E9F;LAO LETTER FO SUNG;Lo;0;L;;;;;N;;;;;
-0EA1;LAO LETTER MO;Lo;0;L;;;;;N;;;;;
-0EA2;LAO LETTER YO;Lo;0;L;;;;;N;;;;;
-0EA3;LAO LETTER LO LING;Lo;0;L;;;;;N;;;;;
-0EA5;LAO LETTER LO LOOT;Lo;0;L;;;;;N;;;;;
-0EA7;LAO LETTER WO;Lo;0;L;;;;;N;;;;;
-0EAA;LAO LETTER SO SUNG;Lo;0;L;;;;;N;;;;;
-0EAB;LAO LETTER HO SUNG;Lo;0;L;;;;;N;;;;;
-0EAD;LAO LETTER O;Lo;0;L;;;;;N;;;;;
-0EAE;LAO LETTER HO TAM;Lo;0;L;;;;;N;;;;;
-0EAF;LAO ELLIPSIS;Lo;0;L;;;;;N;;;;;
-0EB0;LAO VOWEL SIGN A;Lo;0;L;;;;;N;;;;;
-0EB1;LAO VOWEL SIGN MAI KAN;Mn;0;NSM;;;;;N;;;;;
-0EB2;LAO VOWEL SIGN AA;Lo;0;L;;;;;N;;;;;
-0EB3;LAO VOWEL SIGN AM;Lo;0;L;<compat> 0ECD 0EB2;;;;N;;;;;
-0EB4;LAO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
-0EB5;LAO VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
-0EB6;LAO VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;;
-0EB7;LAO VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;;
-0EB8;LAO VOWEL SIGN U;Mn;118;NSM;;;;;N;;;;;
-0EB9;LAO VOWEL SIGN UU;Mn;118;NSM;;;;;N;;;;;
-0EBB;LAO VOWEL SIGN MAI KON;Mn;0;NSM;;;;;N;;;;;
-0EBC;LAO SEMIVOWEL SIGN LO;Mn;0;NSM;;;;;N;;;;;
-0EBD;LAO SEMIVOWEL SIGN NYO;Lo;0;L;;;;;N;;;;;
-0EC0;LAO VOWEL SIGN E;Lo;0;L;;;;;N;;;;;
-0EC1;LAO VOWEL SIGN EI;Lo;0;L;;;;;N;;;;;
-0EC2;LAO VOWEL SIGN O;Lo;0;L;;;;;N;;;;;
-0EC3;LAO VOWEL SIGN AY;Lo;0;L;;;;;N;;;;;
-0EC4;LAO VOWEL SIGN AI;Lo;0;L;;;;;N;;;;;
-0EC6;LAO KO LA;Lm;0;L;;;;;N;;;;;
-0EC8;LAO TONE MAI EK;Mn;122;NSM;;;;;N;;;;;
-0EC9;LAO TONE MAI THO;Mn;122;NSM;;;;;N;;;;;
-0ECA;LAO TONE MAI TI;Mn;122;NSM;;;;;N;;;;;
-0ECB;LAO TONE MAI CATAWA;Mn;122;NSM;;;;;N;;;;;
-0ECC;LAO CANCELLATION MARK;Mn;0;NSM;;;;;N;;;;;
-0ECD;LAO NIGGAHITA;Mn;0;NSM;;;;;N;;;;;
-0ED0;LAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-0ED1;LAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-0ED2;LAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-0ED3;LAO DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-0ED4;LAO DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-0ED5;LAO DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-0ED6;LAO DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-0ED7;LAO DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-0ED8;LAO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-0ED9;LAO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-0EDC;LAO HO NO;Lo;0;L;<compat> 0EAB 0E99;;;;N;;;;;
-0EDD;LAO HO MO;Lo;0;L;<compat> 0EAB 0EA1;;;;N;;;;;
-0EDE;LAO LETTER KHMU GO;Lo;0;L;;;;;N;;;;;
-0EDF;LAO LETTER KHMU NYO;Lo;0;L;;;;;N;;;;;
-0F00;TIBETAN SYLLABLE OM;Lo;0;L;;;;;N;;;;;
-0F01;TIBETAN MARK GTER YIG MGO TRUNCATED A;So;0;L;;;;;N;;;;;
-0F02;TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA;So;0;L;;;;;N;;;;;
-0F03;TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA;So;0;L;;;;;N;;;;;
-0F04;TIBETAN MARK INITIAL YIG MGO MDUN MA;Po;0;L;;;;;N;TIBETAN SINGLE ORNAMENT;;;;
-0F05;TIBETAN MARK CLOSING YIG MGO SGAB MA;Po;0;L;;;;;N;;;;;
-0F06;TIBETAN MARK CARET YIG MGO PHUR SHAD MA;Po;0;L;;;;;N;;;;;
-0F07;TIBETAN MARK YIG MGO TSHEG SHAD MA;Po;0;L;;;;;N;;;;;
-0F08;TIBETAN MARK SBRUL SHAD;Po;0;L;;;;;N;TIBETAN RGYANSHAD;;;;
-0F09;TIBETAN MARK BSKUR YIG MGO;Po;0;L;;;;;N;;;;;
-0F0A;TIBETAN MARK BKA- SHOG YIG MGO;Po;0;L;;;;;N;;;;;
-0F0B;TIBETAN MARK INTERSYLLABIC TSHEG;Po;0;L;;;;;N;TIBETAN TSEG;;;;
-0F0C;TIBETAN MARK DELIMITER TSHEG BSTAR;Po;0;L;<noBreak> 0F0B;;;;N;;;;;
-0F0D;TIBETAN MARK SHAD;Po;0;L;;;;;N;TIBETAN SHAD;;;;
-0F0E;TIBETAN MARK NYIS SHAD;Po;0;L;;;;;N;TIBETAN DOUBLE SHAD;;;;
-0F0F;TIBETAN MARK TSHEG SHAD;Po;0;L;;;;;N;;;;;
-0F10;TIBETAN MARK NYIS TSHEG SHAD;Po;0;L;;;;;N;;;;;
-0F11;TIBETAN MARK RIN CHEN SPUNGS SHAD;Po;0;L;;;;;N;TIBETAN RINCHANPHUNGSHAD;;;;
-0F12;TIBETAN MARK RGYA GRAM SHAD;Po;0;L;;;;;N;;;;;
-0F13;TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN;So;0;L;;;;;N;;;;;
-0F14;TIBETAN MARK GTER TSHEG;Po;0;L;;;;;N;TIBETAN COMMA;;;;
-0F15;TIBETAN LOGOTYPE SIGN CHAD RTAGS;So;0;L;;;;;N;;;;;
-0F16;TIBETAN LOGOTYPE SIGN LHAG RTAGS;So;0;L;;;;;N;;;;;
-0F17;TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS;So;0;L;;;;;N;;;;;
-0F18;TIBETAN ASTROLOGICAL SIGN -KHYUD PA;Mn;220;NSM;;;;;N;;;;;
-0F19;TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS;Mn;220;NSM;;;;;N;;;;;
-0F1A;TIBETAN SIGN RDEL DKAR GCIG;So;0;L;;;;;N;;;;;
-0F1B;TIBETAN SIGN RDEL DKAR GNYIS;So;0;L;;;;;N;;;;;
-0F1C;TIBETAN SIGN RDEL DKAR GSUM;So;0;L;;;;;N;;;;;
-0F1D;TIBETAN SIGN RDEL NAG GCIG;So;0;L;;;;;N;;;;;
-0F1E;TIBETAN SIGN RDEL NAG GNYIS;So;0;L;;;;;N;;;;;
-0F1F;TIBETAN SIGN RDEL DKAR RDEL NAG;So;0;L;;;;;N;;;;;
-0F20;TIBETAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-0F21;TIBETAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-0F22;TIBETAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-0F23;TIBETAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-0F24;TIBETAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-0F25;TIBETAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-0F26;TIBETAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-0F27;TIBETAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-0F28;TIBETAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-0F29;TIBETAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-0F2A;TIBETAN DIGIT HALF ONE;No;0;L;;;;1/2;N;;;;;
-0F2B;TIBETAN DIGIT HALF TWO;No;0;L;;;;3/2;N;;;;;
-0F2C;TIBETAN DIGIT HALF THREE;No;0;L;;;;5/2;N;;;;;
-0F2D;TIBETAN DIGIT HALF FOUR;No;0;L;;;;7/2;N;;;;;
-0F2E;TIBETAN DIGIT HALF FIVE;No;0;L;;;;9/2;N;;;;;
-0F2F;TIBETAN DIGIT HALF SIX;No;0;L;;;;11/2;N;;;;;
-0F30;TIBETAN DIGIT HALF SEVEN;No;0;L;;;;13/2;N;;;;;
-0F31;TIBETAN DIGIT HALF EIGHT;No;0;L;;;;15/2;N;;;;;
-0F32;TIBETAN DIGIT HALF NINE;No;0;L;;;;17/2;N;;;;;
-0F33;TIBETAN DIGIT HALF ZERO;No;0;L;;;;-1/2;N;;;;;
-0F34;TIBETAN MARK BSDUS RTAGS;So;0;L;;;;;N;;;;;
-0F35;TIBETAN MARK NGAS BZUNG NYI ZLA;Mn;220;NSM;;;;;N;TIBETAN HONORIFIC UNDER RING;;;;
-0F36;TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN;So;0;L;;;;;N;;;;;
-0F37;TIBETAN MARK NGAS BZUNG SGOR RTAGS;Mn;220;NSM;;;;;N;TIBETAN UNDER RING;;;;
-0F38;TIBETAN MARK CHE MGO;So;0;L;;;;;N;;;;;
-0F39;TIBETAN MARK TSA -PHRU;Mn;216;NSM;;;;;N;TIBETAN LENITION MARK;;;;
-0F3A;TIBETAN MARK GUG RTAGS GYON;Ps;0;ON;;;;;Y;;;;;
-0F3B;TIBETAN MARK GUG RTAGS GYAS;Pe;0;ON;;;;;Y;;;;;
-0F3C;TIBETAN MARK ANG KHANG GYON;Ps;0;ON;;;;;Y;TIBETAN LEFT BRACE;;;;
-0F3D;TIBETAN MARK ANG KHANG GYAS;Pe;0;ON;;;;;Y;TIBETAN RIGHT BRACE;;;;
-0F3E;TIBETAN SIGN YAR TSHES;Mc;0;L;;;;;N;;;;;
-0F3F;TIBETAN SIGN MAR TSHES;Mc;0;L;;;;;N;;;;;
-0F40;TIBETAN LETTER KA;Lo;0;L;;;;;N;;;;;
-0F41;TIBETAN LETTER KHA;Lo;0;L;;;;;N;;;;;
-0F42;TIBETAN LETTER GA;Lo;0;L;;;;;N;;;;;
-0F43;TIBETAN LETTER GHA;Lo;0;L;0F42 0FB7;;;;N;;;;;
-0F44;TIBETAN LETTER NGA;Lo;0;L;;;;;N;;;;;
-0F45;TIBETAN LETTER CA;Lo;0;L;;;;;N;;;;;
-0F46;TIBETAN LETTER CHA;Lo;0;L;;;;;N;;;;;
-0F47;TIBETAN LETTER JA;Lo;0;L;;;;;N;;;;;
-0F49;TIBETAN LETTER NYA;Lo;0;L;;;;;N;;;;;
-0F4A;TIBETAN LETTER TTA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED TA;;;;
-0F4B;TIBETAN LETTER TTHA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED THA;;;;
-0F4C;TIBETAN LETTER DDA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED DA;;;;
-0F4D;TIBETAN LETTER DDHA;Lo;0;L;0F4C 0FB7;;;;N;;;;;
-0F4E;TIBETAN LETTER NNA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED NA;;;;
-0F4F;TIBETAN LETTER TA;Lo;0;L;;;;;N;;;;;
-0F50;TIBETAN LETTER THA;Lo;0;L;;;;;N;;;;;
-0F51;TIBETAN LETTER DA;Lo;0;L;;;;;N;;;;;
-0F52;TIBETAN LETTER DHA;Lo;0;L;0F51 0FB7;;;;N;;;;;
-0F53;TIBETAN LETTER NA;Lo;0;L;;;;;N;;;;;
-0F54;TIBETAN LETTER PA;Lo;0;L;;;;;N;;;;;
-0F55;TIBETAN LETTER PHA;Lo;0;L;;;;;N;;;;;
-0F56;TIBETAN LETTER BA;Lo;0;L;;;;;N;;;;;
-0F57;TIBETAN LETTER BHA;Lo;0;L;0F56 0FB7;;;;N;;;;;
-0F58;TIBETAN LETTER MA;Lo;0;L;;;;;N;;;;;
-0F59;TIBETAN LETTER TSA;Lo;0;L;;;;;N;;;;;
-0F5A;TIBETAN LETTER TSHA;Lo;0;L;;;;;N;;;;;
-0F5B;TIBETAN LETTER DZA;Lo;0;L;;;;;N;;;;;
-0F5C;TIBETAN LETTER DZHA;Lo;0;L;0F5B 0FB7;;;;N;;;;;
-0F5D;TIBETAN LETTER WA;Lo;0;L;;;;;N;;;;;
-0F5E;TIBETAN LETTER ZHA;Lo;0;L;;;;;N;;;;;
-0F5F;TIBETAN LETTER ZA;Lo;0;L;;;;;N;;;;;
-0F60;TIBETAN LETTER -A;Lo;0;L;;;;;N;TIBETAN LETTER AA;;;;
-0F61;TIBETAN LETTER YA;Lo;0;L;;;;;N;;;;;
-0F62;TIBETAN LETTER RA;Lo;0;L;;;;;N;;;;;
-0F63;TIBETAN LETTER LA;Lo;0;L;;;;;N;;;;;
-0F64;TIBETAN LETTER SHA;Lo;0;L;;;;;N;;;;;
-0F65;TIBETAN LETTER SSA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED SHA;;;;
-0F66;TIBETAN LETTER SA;Lo;0;L;;;;;N;;;;;
-0F67;TIBETAN LETTER HA;Lo;0;L;;;;;N;;;;;
-0F68;TIBETAN LETTER A;Lo;0;L;;;;;N;;;;;
-0F69;TIBETAN LETTER KSSA;Lo;0;L;0F40 0FB5;;;;N;;;;;
-0F6A;TIBETAN LETTER FIXED-FORM RA;Lo;0;L;;;;;N;;;;;
-0F6B;TIBETAN LETTER KKA;Lo;0;L;;;;;N;;;;;
-0F6C;TIBETAN LETTER RRA;Lo;0;L;;;;;N;;;;;
-0F71;TIBETAN VOWEL SIGN AA;Mn;129;NSM;;;;;N;;;;;
-0F72;TIBETAN VOWEL SIGN I;Mn;130;NSM;;;;;N;;;;;
-0F73;TIBETAN VOWEL SIGN II;Mn;0;NSM;0F71 0F72;;;;N;;;;;
-0F74;TIBETAN VOWEL SIGN U;Mn;132;NSM;;;;;N;;;;;
-0F75;TIBETAN VOWEL SIGN UU;Mn;0;NSM;0F71 0F74;;;;N;;;;;
-0F76;TIBETAN VOWEL SIGN VOCALIC R;Mn;0;NSM;0FB2 0F80;;;;N;;;;;
-0F77;TIBETAN VOWEL SIGN VOCALIC RR;Mn;0;NSM;<compat> 0FB2 0F81;;;;N;;;;;
-0F78;TIBETAN VOWEL SIGN VOCALIC L;Mn;0;NSM;0FB3 0F80;;;;N;;;;;
-0F79;TIBETAN VOWEL SIGN VOCALIC LL;Mn;0;NSM;<compat> 0FB3 0F81;;;;N;;;;;
-0F7A;TIBETAN VOWEL SIGN E;Mn;130;NSM;;;;;N;;;;;
-0F7B;TIBETAN VOWEL SIGN EE;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AI;;;;
-0F7C;TIBETAN VOWEL SIGN O;Mn;130;NSM;;;;;N;;;;;
-0F7D;TIBETAN VOWEL SIGN OO;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AU;;;;
-0F7E;TIBETAN SIGN RJES SU NGA RO;Mn;0;NSM;;;;;N;TIBETAN ANUSVARA;;;;
-0F7F;TIBETAN SIGN RNAM BCAD;Mc;0;L;;;;;N;TIBETAN VISARGA;;;;
-0F80;TIBETAN VOWEL SIGN REVERSED I;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN SHORT I;;;;
-0F81;TIBETAN VOWEL SIGN REVERSED II;Mn;0;NSM;0F71 0F80;;;;N;;;;;
-0F82;TIBETAN SIGN NYI ZLA NAA DA;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU WITH ORNAMENT;;;;
-0F83;TIBETAN SIGN SNA LDAN;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU;;;;
-0F84;TIBETAN MARK HALANTA;Mn;9;NSM;;;;;N;TIBETAN VIRAMA;;;;
-0F85;TIBETAN MARK PALUTA;Po;0;L;;;;;N;TIBETAN CHUCHENYIGE;;;;
-0F86;TIBETAN SIGN LCI RTAGS;Mn;230;NSM;;;;;N;;;;;
-0F87;TIBETAN SIGN YANG RTAGS;Mn;230;NSM;;;;;N;;;;;
-0F88;TIBETAN SIGN LCE TSA CAN;Lo;0;L;;;;;N;;;;;
-0F89;TIBETAN SIGN MCHU CAN;Lo;0;L;;;;;N;;;;;
-0F8A;TIBETAN SIGN GRU CAN RGYINGS;Lo;0;L;;;;;N;;;;;
-0F8B;TIBETAN SIGN GRU MED RGYINGS;Lo;0;L;;;;;N;;;;;
-0F8C;TIBETAN SIGN INVERTED MCHU CAN;Lo;0;L;;;;;N;;;;;
-0F8D;TIBETAN SUBJOINED SIGN LCE TSA CAN;Mn;0;NSM;;;;;N;;;;;
-0F8E;TIBETAN SUBJOINED SIGN MCHU CAN;Mn;0;NSM;;;;;N;;;;;
-0F8F;TIBETAN SUBJOINED SIGN INVERTED MCHU CAN;Mn;0;NSM;;;;;N;;;;;
-0F90;TIBETAN SUBJOINED LETTER KA;Mn;0;NSM;;;;;N;;;;;
-0F91;TIBETAN SUBJOINED LETTER KHA;Mn;0;NSM;;;;;N;;;;;
-0F92;TIBETAN SUBJOINED LETTER GA;Mn;0;NSM;;;;;N;;;;;
-0F93;TIBETAN SUBJOINED LETTER GHA;Mn;0;NSM;0F92 0FB7;;;;N;;;;;
-0F94;TIBETAN SUBJOINED LETTER NGA;Mn;0;NSM;;;;;N;;;;;
-0F95;TIBETAN SUBJOINED LETTER CA;Mn;0;NSM;;;;;N;;;;;
-0F96;TIBETAN SUBJOINED LETTER CHA;Mn;0;NSM;;;;;N;;;;;
-0F97;TIBETAN SUBJOINED LETTER JA;Mn;0;NSM;;;;;N;;;;;
-0F99;TIBETAN SUBJOINED LETTER NYA;Mn;0;NSM;;;;;N;;;;;
-0F9A;TIBETAN SUBJOINED LETTER TTA;Mn;0;NSM;;;;;N;;;;;
-0F9B;TIBETAN SUBJOINED LETTER TTHA;Mn;0;NSM;;;;;N;;;;;
-0F9C;TIBETAN SUBJOINED LETTER DDA;Mn;0;NSM;;;;;N;;;;;
-0F9D;TIBETAN SUBJOINED LETTER DDHA;Mn;0;NSM;0F9C 0FB7;;;;N;;;;;
-0F9E;TIBETAN SUBJOINED LETTER NNA;Mn;0;NSM;;;;;N;;;;;
-0F9F;TIBETAN SUBJOINED LETTER TA;Mn;0;NSM;;;;;N;;;;;
-0FA0;TIBETAN SUBJOINED LETTER THA;Mn;0;NSM;;;;;N;;;;;
-0FA1;TIBETAN SUBJOINED LETTER DA;Mn;0;NSM;;;;;N;;;;;
-0FA2;TIBETAN SUBJOINED LETTER DHA;Mn;0;NSM;0FA1 0FB7;;;;N;;;;;
-0FA3;TIBETAN SUBJOINED LETTER NA;Mn;0;NSM;;;;;N;;;;;
-0FA4;TIBETAN SUBJOINED LETTER PA;Mn;0;NSM;;;;;N;;;;;
-0FA5;TIBETAN SUBJOINED LETTER PHA;Mn;0;NSM;;;;;N;;;;;
-0FA6;TIBETAN SUBJOINED LETTER BA;Mn;0;NSM;;;;;N;;;;;
-0FA7;TIBETAN SUBJOINED LETTER BHA;Mn;0;NSM;0FA6 0FB7;;;;N;;;;;
-0FA8;TIBETAN SUBJOINED LETTER MA;Mn;0;NSM;;;;;N;;;;;
-0FA9;TIBETAN SUBJOINED LETTER TSA;Mn;0;NSM;;;;;N;;;;;
-0FAA;TIBETAN SUBJOINED LETTER TSHA;Mn;0;NSM;;;;;N;;;;;
-0FAB;TIBETAN SUBJOINED LETTER DZA;Mn;0;NSM;;;;;N;;;;;
-0FAC;TIBETAN SUBJOINED LETTER DZHA;Mn;0;NSM;0FAB 0FB7;;;;N;;;;;
-0FAD;TIBETAN SUBJOINED LETTER WA;Mn;0;NSM;;;;;N;;;;;
-0FAE;TIBETAN SUBJOINED LETTER ZHA;Mn;0;NSM;;;;;N;;;;;
-0FAF;TIBETAN SUBJOINED LETTER ZA;Mn;0;NSM;;;;;N;;;;;
-0FB0;TIBETAN SUBJOINED LETTER -A;Mn;0;NSM;;;;;N;;;;;
-0FB1;TIBETAN SUBJOINED LETTER YA;Mn;0;NSM;;;;;N;;;;;
-0FB2;TIBETAN SUBJOINED LETTER RA;Mn;0;NSM;;;;;N;;;;;
-0FB3;TIBETAN SUBJOINED LETTER LA;Mn;0;NSM;;;;;N;;;;;
-0FB4;TIBETAN SUBJOINED LETTER SHA;Mn;0;NSM;;;;;N;;;;;
-0FB5;TIBETAN SUBJOINED LETTER SSA;Mn;0;NSM;;;;;N;;;;;
-0FB6;TIBETAN SUBJOINED LETTER SA;Mn;0;NSM;;;;;N;;;;;
-0FB7;TIBETAN SUBJOINED LETTER HA;Mn;0;NSM;;;;;N;;;;;
-0FB8;TIBETAN SUBJOINED LETTER A;Mn;0;NSM;;;;;N;;;;;
-0FB9;TIBETAN SUBJOINED LETTER KSSA;Mn;0;NSM;0F90 0FB5;;;;N;;;;;
-0FBA;TIBETAN SUBJOINED LETTER FIXED-FORM WA;Mn;0;NSM;;;;;N;;;;;
-0FBB;TIBETAN SUBJOINED LETTER FIXED-FORM YA;Mn;0;NSM;;;;;N;;;;;
-0FBC;TIBETAN SUBJOINED LETTER FIXED-FORM RA;Mn;0;NSM;;;;;N;;;;;
-0FBE;TIBETAN KU RU KHA;So;0;L;;;;;N;;;;;
-0FBF;TIBETAN KU RU KHA BZHI MIG CAN;So;0;L;;;;;N;;;;;
-0FC0;TIBETAN CANTILLATION SIGN HEAVY BEAT;So;0;L;;;;;N;;;;;
-0FC1;TIBETAN CANTILLATION SIGN LIGHT BEAT;So;0;L;;;;;N;;;;;
-0FC2;TIBETAN CANTILLATION SIGN CANG TE-U;So;0;L;;;;;N;;;;;
-0FC3;TIBETAN CANTILLATION SIGN SBUB -CHAL;So;0;L;;;;;N;;;;;
-0FC4;TIBETAN SYMBOL DRIL BU;So;0;L;;;;;N;;;;;
-0FC5;TIBETAN SYMBOL RDO RJE;So;0;L;;;;;N;;;;;
-0FC6;TIBETAN SYMBOL PADMA GDAN;Mn;220;NSM;;;;;N;;;;;
-0FC7;TIBETAN SYMBOL RDO RJE RGYA GRAM;So;0;L;;;;;N;;;;;
-0FC8;TIBETAN SYMBOL PHUR PA;So;0;L;;;;;N;;;;;
-0FC9;TIBETAN SYMBOL NOR BU;So;0;L;;;;;N;;;;;
-0FCA;TIBETAN SYMBOL NOR BU NYIS -KHYIL;So;0;L;;;;;N;;;;;
-0FCB;TIBETAN SYMBOL NOR BU GSUM -KHYIL;So;0;L;;;;;N;;;;;
-0FCC;TIBETAN SYMBOL NOR BU BZHI -KHYIL;So;0;L;;;;;N;;;;;
-0FCE;TIBETAN SIGN RDEL NAG RDEL DKAR;So;0;L;;;;;N;;;;;
-0FCF;TIBETAN SIGN RDEL NAG GSUM;So;0;L;;;;;N;;;;;
-0FD0;TIBETAN MARK BSKA- SHOG GI MGO RGYAN;Po;0;L;;;;;N;;;;;
-0FD1;TIBETAN MARK MNYAM YIG GI MGO RGYAN;Po;0;L;;;;;N;;;;;
-0FD2;TIBETAN MARK NYIS TSHEG;Po;0;L;;;;;N;;;;;
-0FD3;TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA;Po;0;L;;;;;N;;;;;
-0FD4;TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA;Po;0;L;;;;;N;;;;;
-0FD5;RIGHT-FACING SVASTI SIGN;So;0;L;;;;;N;;;;;
-0FD6;LEFT-FACING SVASTI SIGN;So;0;L;;;;;N;;;;;
-0FD7;RIGHT-FACING SVASTI SIGN WITH DOTS;So;0;L;;;;;N;;;;;
-0FD8;LEFT-FACING SVASTI SIGN WITH DOTS;So;0;L;;;;;N;;;;;
-0FD9;TIBETAN MARK LEADING MCHAN RTAGS;Po;0;L;;;;;N;;;;;
-0FDA;TIBETAN MARK TRAILING MCHAN RTAGS;Po;0;L;;;;;N;;;;;
-1000;MYANMAR LETTER KA;Lo;0;L;;;;;N;;;;;
-1001;MYANMAR LETTER KHA;Lo;0;L;;;;;N;;;;;
-1002;MYANMAR LETTER GA;Lo;0;L;;;;;N;;;;;
-1003;MYANMAR LETTER GHA;Lo;0;L;;;;;N;;;;;
-1004;MYANMAR LETTER NGA;Lo;0;L;;;;;N;;;;;
-1005;MYANMAR LETTER CA;Lo;0;L;;;;;N;;;;;
-1006;MYANMAR LETTER CHA;Lo;0;L;;;;;N;;;;;
-1007;MYANMAR LETTER JA;Lo;0;L;;;;;N;;;;;
-1008;MYANMAR LETTER JHA;Lo;0;L;;;;;N;;;;;
-1009;MYANMAR LETTER NYA;Lo;0;L;;;;;N;;;;;
-100A;MYANMAR LETTER NNYA;Lo;0;L;;;;;N;;;;;
-100B;MYANMAR LETTER TTA;Lo;0;L;;;;;N;;;;;
-100C;MYANMAR LETTER TTHA;Lo;0;L;;;;;N;;;;;
-100D;MYANMAR LETTER DDA;Lo;0;L;;;;;N;;;;;
-100E;MYANMAR LETTER DDHA;Lo;0;L;;;;;N;;;;;
-100F;MYANMAR LETTER NNA;Lo;0;L;;;;;N;;;;;
-1010;MYANMAR LETTER TA;Lo;0;L;;;;;N;;;;;
-1011;MYANMAR LETTER THA;Lo;0;L;;;;;N;;;;;
-1012;MYANMAR LETTER DA;Lo;0;L;;;;;N;;;;;
-1013;MYANMAR LETTER DHA;Lo;0;L;;;;;N;;;;;
-1014;MYANMAR LETTER NA;Lo;0;L;;;;;N;;;;;
-1015;MYANMAR LETTER PA;Lo;0;L;;;;;N;;;;;
-1016;MYANMAR LETTER PHA;Lo;0;L;;;;;N;;;;;
-1017;MYANMAR LETTER BA;Lo;0;L;;;;;N;;;;;
-1018;MYANMAR LETTER BHA;Lo;0;L;;;;;N;;;;;
-1019;MYANMAR LETTER MA;Lo;0;L;;;;;N;;;;;
-101A;MYANMAR LETTER YA;Lo;0;L;;;;;N;;;;;
-101B;MYANMAR LETTER RA;Lo;0;L;;;;;N;;;;;
-101C;MYANMAR LETTER LA;Lo;0;L;;;;;N;;;;;
-101D;MYANMAR LETTER WA;Lo;0;L;;;;;N;;;;;
-101E;MYANMAR LETTER SA;Lo;0;L;;;;;N;;;;;
-101F;MYANMAR LETTER HA;Lo;0;L;;;;;N;;;;;
-1020;MYANMAR LETTER LLA;Lo;0;L;;;;;N;;;;;
-1021;MYANMAR LETTER A;Lo;0;L;;;;;N;;;;;
-1022;MYANMAR LETTER SHAN A;Lo;0;L;;;;;N;;;;;
-1023;MYANMAR LETTER I;Lo;0;L;;;;;N;;;;;
-1024;MYANMAR LETTER II;Lo;0;L;;;;;N;;;;;
-1025;MYANMAR LETTER U;Lo;0;L;;;;;N;;;;;
-1026;MYANMAR LETTER UU;Lo;0;L;1025 102E;;;;N;;;;;
-1027;MYANMAR LETTER E;Lo;0;L;;;;;N;;;;;
-1028;MYANMAR LETTER MON E;Lo;0;L;;;;;N;;;;;
-1029;MYANMAR LETTER O;Lo;0;L;;;;;N;;;;;
-102A;MYANMAR LETTER AU;Lo;0;L;;;;;N;;;;;
-102B;MYANMAR VOWEL SIGN TALL AA;Mc;0;L;;;;;N;;;;;
-102C;MYANMAR VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-102D;MYANMAR VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
-102E;MYANMAR VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
-102F;MYANMAR VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-1030;MYANMAR VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
-1031;MYANMAR VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
-1032;MYANMAR VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
-1033;MYANMAR VOWEL SIGN MON II;Mn;0;NSM;;;;;N;;;;;
-1034;MYANMAR VOWEL SIGN MON O;Mn;0;NSM;;;;;N;;;;;
-1035;MYANMAR VOWEL SIGN E ABOVE;Mn;0;NSM;;;;;N;;;;;
-1036;MYANMAR SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
-1037;MYANMAR SIGN DOT BELOW;Mn;7;NSM;;;;;N;;;;;
-1038;MYANMAR SIGN VISARGA;Mc;0;L;;;;;N;;;;;
-1039;MYANMAR SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
-103A;MYANMAR SIGN ASAT;Mn;9;NSM;;;;;N;;;;;
-103B;MYANMAR CONSONANT SIGN MEDIAL YA;Mc;0;L;;;;;N;;;;;
-103C;MYANMAR CONSONANT SIGN MEDIAL RA;Mc;0;L;;;;;N;;;;;
-103D;MYANMAR CONSONANT SIGN MEDIAL WA;Mn;0;NSM;;;;;N;;;;;
-103E;MYANMAR CONSONANT SIGN MEDIAL HA;Mn;0;NSM;;;;;N;;;;;
-103F;MYANMAR LETTER GREAT SA;Lo;0;L;;;;;N;;;;;
-1040;MYANMAR DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-1041;MYANMAR DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-1042;MYANMAR DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-1043;MYANMAR DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-1044;MYANMAR DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-1045;MYANMAR DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-1046;MYANMAR DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-1047;MYANMAR DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-1048;MYANMAR DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-1049;MYANMAR DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-104A;MYANMAR SIGN LITTLE SECTION;Po;0;L;;;;;N;;;;;
-104B;MYANMAR SIGN SECTION;Po;0;L;;;;;N;;;;;
-104C;MYANMAR SYMBOL LOCATIVE;Po;0;L;;;;;N;;;;;
-104D;MYANMAR SYMBOL COMPLETED;Po;0;L;;;;;N;;;;;
-104E;MYANMAR SYMBOL AFOREMENTIONED;Po;0;L;;;;;N;;;;;
-104F;MYANMAR SYMBOL GENITIVE;Po;0;L;;;;;N;;;;;
-1050;MYANMAR LETTER SHA;Lo;0;L;;;;;N;;;;;
-1051;MYANMAR LETTER SSA;Lo;0;L;;;;;N;;;;;
-1052;MYANMAR LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
-1053;MYANMAR LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
-1054;MYANMAR LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
-1055;MYANMAR LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
-1056;MYANMAR VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
-1057;MYANMAR VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
-1058;MYANMAR VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
-1059;MYANMAR VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
-105A;MYANMAR LETTER MON NGA;Lo;0;L;;;;;N;;;;;
-105B;MYANMAR LETTER MON JHA;Lo;0;L;;;;;N;;;;;
-105C;MYANMAR LETTER MON BBA;Lo;0;L;;;;;N;;;;;
-105D;MYANMAR LETTER MON BBE;Lo;0;L;;;;;N;;;;;
-105E;MYANMAR CONSONANT SIGN MON MEDIAL NA;Mn;0;NSM;;;;;N;;;;;
-105F;MYANMAR CONSONANT SIGN MON MEDIAL MA;Mn;0;NSM;;;;;N;;;;;
-1060;MYANMAR CONSONANT SIGN MON MEDIAL LA;Mn;0;NSM;;;;;N;;;;;
-1061;MYANMAR LETTER SGAW KAREN SHA;Lo;0;L;;;;;N;;;;;
-1062;MYANMAR VOWEL SIGN SGAW KAREN EU;Mc;0;L;;;;;N;;;;;
-1063;MYANMAR TONE MARK SGAW KAREN HATHI;Mc;0;L;;;;;N;;;;;
-1064;MYANMAR TONE MARK SGAW KAREN KE PHO;Mc;0;L;;;;;N;;;;;
-1065;MYANMAR LETTER WESTERN PWO KAREN THA;Lo;0;L;;;;;N;;;;;
-1066;MYANMAR LETTER WESTERN PWO KAREN PWA;Lo;0;L;;;;;N;;;;;
-1067;MYANMAR VOWEL SIGN WESTERN PWO KAREN EU;Mc;0;L;;;;;N;;;;;
-1068;MYANMAR VOWEL SIGN WESTERN PWO KAREN UE;Mc;0;L;;;;;N;;;;;
-1069;MYANMAR SIGN WESTERN PWO KAREN TONE-1;Mc;0;L;;;;;N;;;;;
-106A;MYANMAR SIGN WESTERN PWO KAREN TONE-2;Mc;0;L;;;;;N;;;;;
-106B;MYANMAR SIGN WESTERN PWO KAREN TONE-3;Mc;0;L;;;;;N;;;;;
-106C;MYANMAR SIGN WESTERN PWO KAREN TONE-4;Mc;0;L;;;;;N;;;;;
-106D;MYANMAR SIGN WESTERN PWO KAREN TONE-5;Mc;0;L;;;;;N;;;;;
-106E;MYANMAR LETTER EASTERN PWO KAREN NNA;Lo;0;L;;;;;N;;;;;
-106F;MYANMAR LETTER EASTERN PWO KAREN YWA;Lo;0;L;;;;;N;;;;;
-1070;MYANMAR LETTER EASTERN PWO KAREN GHWA;Lo;0;L;;;;;N;;;;;
-1071;MYANMAR VOWEL SIGN GEBA KAREN I;Mn;0;NSM;;;;;N;;;;;
-1072;MYANMAR VOWEL SIGN KAYAH OE;Mn;0;NSM;;;;;N;;;;;
-1073;MYANMAR VOWEL SIGN KAYAH U;Mn;0;NSM;;;;;N;;;;;
-1074;MYANMAR VOWEL SIGN KAYAH EE;Mn;0;NSM;;;;;N;;;;;
-1075;MYANMAR LETTER SHAN KA;Lo;0;L;;;;;N;;;;;
-1076;MYANMAR LETTER SHAN KHA;Lo;0;L;;;;;N;;;;;
-1077;MYANMAR LETTER SHAN GA;Lo;0;L;;;;;N;;;;;
-1078;MYANMAR LETTER SHAN CA;Lo;0;L;;;;;N;;;;;
-1079;MYANMAR LETTER SHAN ZA;Lo;0;L;;;;;N;;;;;
-107A;MYANMAR LETTER SHAN NYA;Lo;0;L;;;;;N;;;;;
-107B;MYANMAR LETTER SHAN DA;Lo;0;L;;;;;N;;;;;
-107C;MYANMAR LETTER SHAN NA;Lo;0;L;;;;;N;;;;;
-107D;MYANMAR LETTER SHAN PHA;Lo;0;L;;;;;N;;;;;
-107E;MYANMAR LETTER SHAN FA;Lo;0;L;;;;;N;;;;;
-107F;MYANMAR LETTER SHAN BA;Lo;0;L;;;;;N;;;;;
-1080;MYANMAR LETTER SHAN THA;Lo;0;L;;;;;N;;;;;
-1081;MYANMAR LETTER SHAN HA;Lo;0;L;;;;;N;;;;;
-1082;MYANMAR CONSONANT SIGN SHAN MEDIAL WA;Mn;0;NSM;;;;;N;;;;;
-1083;MYANMAR VOWEL SIGN SHAN AA;Mc;0;L;;;;;N;;;;;
-1084;MYANMAR VOWEL SIGN SHAN E;Mc;0;L;;;;;N;;;;;
-1085;MYANMAR VOWEL SIGN SHAN E ABOVE;Mn;0;NSM;;;;;N;;;;;
-1086;MYANMAR VOWEL SIGN SHAN FINAL Y;Mn;0;NSM;;;;;N;;;;;
-1087;MYANMAR SIGN SHAN TONE-2;Mc;0;L;;;;;N;;;;;
-1088;MYANMAR SIGN SHAN TONE-3;Mc;0;L;;;;;N;;;;;
-1089;MYANMAR SIGN SHAN TONE-5;Mc;0;L;;;;;N;;;;;
-108A;MYANMAR SIGN SHAN TONE-6;Mc;0;L;;;;;N;;;;;
-108B;MYANMAR SIGN SHAN COUNCIL TONE-2;Mc;0;L;;;;;N;;;;;
-108C;MYANMAR SIGN SHAN COUNCIL TONE-3;Mc;0;L;;;;;N;;;;;
-108D;MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE;Mn;220;NSM;;;;;N;;;;;
-108E;MYANMAR LETTER RUMAI PALAUNG FA;Lo;0;L;;;;;N;;;;;
-108F;MYANMAR SIGN RUMAI PALAUNG TONE-5;Mc;0;L;;;;;N;;;;;
-1090;MYANMAR SHAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-1091;MYANMAR SHAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-1092;MYANMAR SHAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-1093;MYANMAR SHAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-1094;MYANMAR SHAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-1095;MYANMAR SHAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-1096;MYANMAR SHAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-1097;MYANMAR SHAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-1098;MYANMAR SHAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-1099;MYANMAR SHAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-109A;MYANMAR SIGN KHAMTI TONE-1;Mc;0;L;;;;;N;;;;;
-109B;MYANMAR SIGN KHAMTI TONE-3;Mc;0;L;;;;;N;;;;;
-109C;MYANMAR VOWEL SIGN AITON A;Mc;0;L;;;;;N;;;;;
-109D;MYANMAR VOWEL SIGN AITON AI;Mn;0;NSM;;;;;N;;;;;
-109E;MYANMAR SYMBOL SHAN ONE;So;0;L;;;;;N;;;;;
-109F;MYANMAR SYMBOL SHAN EXCLAMATION;So;0;L;;;;;N;;;;;
-10A0;GEORGIAN CAPITAL LETTER AN;Lu;0;L;;;;;N;;;;2D00;
-10A1;GEORGIAN CAPITAL LETTER BAN;Lu;0;L;;;;;N;;;;2D01;
-10A2;GEORGIAN CAPITAL LETTER GAN;Lu;0;L;;;;;N;;;;2D02;
-10A3;GEORGIAN CAPITAL LETTER DON;Lu;0;L;;;;;N;;;;2D03;
-10A4;GEORGIAN CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;2D04;
-10A5;GEORGIAN CAPITAL LETTER VIN;Lu;0;L;;;;;N;;;;2D05;
-10A6;GEORGIAN CAPITAL LETTER ZEN;Lu;0;L;;;;;N;;;;2D06;
-10A7;GEORGIAN CAPITAL LETTER TAN;Lu;0;L;;;;;N;;;;2D07;
-10A8;GEORGIAN CAPITAL LETTER IN;Lu;0;L;;;;;N;;;;2D08;
-10A9;GEORGIAN CAPITAL LETTER KAN;Lu;0;L;;;;;N;;;;2D09;
-10AA;GEORGIAN CAPITAL LETTER LAS;Lu;0;L;;;;;N;;;;2D0A;
-10AB;GEORGIAN CAPITAL LETTER MAN;Lu;0;L;;;;;N;;;;2D0B;
-10AC;GEORGIAN CAPITAL LETTER NAR;Lu;0;L;;;;;N;;;;2D0C;
-10AD;GEORGIAN CAPITAL LETTER ON;Lu;0;L;;;;;N;;;;2D0D;
-10AE;GEORGIAN CAPITAL LETTER PAR;Lu;0;L;;;;;N;;;;2D0E;
-10AF;GEORGIAN CAPITAL LETTER ZHAR;Lu;0;L;;;;;N;;;;2D0F;
-10B0;GEORGIAN CAPITAL LETTER RAE;Lu;0;L;;;;;N;;;;2D10;
-10B1;GEORGIAN CAPITAL LETTER SAN;Lu;0;L;;;;;N;;;;2D11;
-10B2;GEORGIAN CAPITAL LETTER TAR;Lu;0;L;;;;;N;;;;2D12;
-10B3;GEORGIAN CAPITAL LETTER UN;Lu;0;L;;;;;N;;;;2D13;
-10B4;GEORGIAN CAPITAL LETTER PHAR;Lu;0;L;;;;;N;;;;2D14;
-10B5;GEORGIAN CAPITAL LETTER KHAR;Lu;0;L;;;;;N;;;;2D15;
-10B6;GEORGIAN CAPITAL LETTER GHAN;Lu;0;L;;;;;N;;;;2D16;
-10B7;GEORGIAN CAPITAL LETTER QAR;Lu;0;L;;;;;N;;;;2D17;
-10B8;GEORGIAN CAPITAL LETTER SHIN;Lu;0;L;;;;;N;;;;2D18;
-10B9;GEORGIAN CAPITAL LETTER CHIN;Lu;0;L;;;;;N;;;;2D19;
-10BA;GEORGIAN CAPITAL LETTER CAN;Lu;0;L;;;;;N;;;;2D1A;
-10BB;GEORGIAN CAPITAL LETTER JIL;Lu;0;L;;;;;N;;;;2D1B;
-10BC;GEORGIAN CAPITAL LETTER CIL;Lu;0;L;;;;;N;;;;2D1C;
-10BD;GEORGIAN CAPITAL LETTER CHAR;Lu;0;L;;;;;N;;;;2D1D;
-10BE;GEORGIAN CAPITAL LETTER XAN;Lu;0;L;;;;;N;;;;2D1E;
-10BF;GEORGIAN CAPITAL LETTER JHAN;Lu;0;L;;;;;N;;;;2D1F;
-10C0;GEORGIAN CAPITAL LETTER HAE;Lu;0;L;;;;;N;;;;2D20;
-10C1;GEORGIAN CAPITAL LETTER HE;Lu;0;L;;;;;N;;;;2D21;
-10C2;GEORGIAN CAPITAL LETTER HIE;Lu;0;L;;;;;N;;;;2D22;
-10C3;GEORGIAN CAPITAL LETTER WE;Lu;0;L;;;;;N;;;;2D23;
-10C4;GEORGIAN CAPITAL LETTER HAR;Lu;0;L;;;;;N;;;;2D24;
-10C5;GEORGIAN CAPITAL LETTER HOE;Lu;0;L;;;;;N;;;;2D25;
-10C7;GEORGIAN CAPITAL LETTER YN;Lu;0;L;;;;;N;;;;2D27;
-10CD;GEORGIAN CAPITAL LETTER AEN;Lu;0;L;;;;;N;;;;2D2D;
-10D0;GEORGIAN LETTER AN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER AN;;;;
-10D1;GEORGIAN LETTER BAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER BAN;;;;
-10D2;GEORGIAN LETTER GAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GAN;;;;
-10D3;GEORGIAN LETTER DON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER DON;;;;
-10D4;GEORGIAN LETTER EN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER EN;;;;
-10D5;GEORGIAN LETTER VIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER VIN;;;;
-10D6;GEORGIAN LETTER ZEN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZEN;;;;
-10D7;GEORGIAN LETTER TAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAN;;;;
-10D8;GEORGIAN LETTER IN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER IN;;;;
-10D9;GEORGIAN LETTER KAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KAN;;;;
-10DA;GEORGIAN LETTER LAS;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER LAS;;;;
-10DB;GEORGIAN LETTER MAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER MAN;;;;
-10DC;GEORGIAN LETTER NAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER NAR;;;;
-10DD;GEORGIAN LETTER ON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ON;;;;
-10DE;GEORGIAN LETTER PAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PAR;;;;
-10DF;GEORGIAN LETTER ZHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZHAR;;;;
-10E0;GEORGIAN LETTER RAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER RAE;;;;
-10E1;GEORGIAN LETTER SAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SAN;;;;
-10E2;GEORGIAN LETTER TAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAR;;;;
-10E3;GEORGIAN LETTER UN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER UN;;;;
-10E4;GEORGIAN LETTER PHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PHAR;;;;
-10E5;GEORGIAN LETTER KHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KHAR;;;;
-10E6;GEORGIAN LETTER GHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GHAN;;;;
-10E7;GEORGIAN LETTER QAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER QAR;;;;
-10E8;GEORGIAN LETTER SHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SHIN;;;;
-10E9;GEORGIAN LETTER CHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHIN;;;;
-10EA;GEORGIAN LETTER CAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CAN;;;;
-10EB;GEORGIAN LETTER JIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JIL;;;;
-10EC;GEORGIAN LETTER CIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CIL;;;;
-10ED;GEORGIAN LETTER CHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHAR;;;;
-10EE;GEORGIAN LETTER XAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER XAN;;;;
-10EF;GEORGIAN LETTER JHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JHAN;;;;
-10F0;GEORGIAN LETTER HAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAE;;;;
-10F1;GEORGIAN LETTER HE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HE;;;;
-10F2;GEORGIAN LETTER HIE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HIE;;;;
-10F3;GEORGIAN LETTER WE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER WE;;;;
-10F4;GEORGIAN LETTER HAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAR;;;;
-10F5;GEORGIAN LETTER HOE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HOE;;;;
-10F6;GEORGIAN LETTER FI;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER FI;;;;
-10F7;GEORGIAN LETTER YN;Lo;0;L;;;;;N;;;;;
-10F8;GEORGIAN LETTER ELIFI;Lo;0;L;;;;;N;;;;;
-10F9;GEORGIAN LETTER TURNED GAN;Lo;0;L;;;;;N;;;;;
-10FA;GEORGIAN LETTER AIN;Lo;0;L;;;;;N;;;;;
-10FB;GEORGIAN PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;
-10FC;MODIFIER LETTER GEORGIAN NAR;Lm;0;L;<super> 10DC;;;;N;;;;;
-10FD;GEORGIAN LETTER AEN;Lo;0;L;;;;;N;;;;;
-10FE;GEORGIAN LETTER HARD SIGN;Lo;0;L;;;;;N;;;;;
-10FF;GEORGIAN LETTER LABIAL SIGN;Lo;0;L;;;;;N;;;;;
-1100;HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;;;;
-1101;HANGUL CHOSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;;;;
-1102;HANGUL CHOSEONG NIEUN;Lo;0;L;;;;;N;;;;;
-1103;HANGUL CHOSEONG TIKEUT;Lo;0;L;;;;;N;;;;;
-1104;HANGUL CHOSEONG SSANGTIKEUT;Lo;0;L;;;;;N;;;;;
-1105;HANGUL CHOSEONG RIEUL;Lo;0;L;;;;;N;;;;;
-1106;HANGUL CHOSEONG MIEUM;Lo;0;L;;;;;N;;;;;
-1107;HANGUL CHOSEONG PIEUP;Lo;0;L;;;;;N;;;;;
-1108;HANGUL CHOSEONG SSANGPIEUP;Lo;0;L;;;;;N;;;;;
-1109;HANGUL CHOSEONG SIOS;Lo;0;L;;;;;N;;;;;
-110A;HANGUL CHOSEONG SSANGSIOS;Lo;0;L;;;;;N;;;;;
-110B;HANGUL CHOSEONG IEUNG;Lo;0;L;;;;;N;;;;;
-110C;HANGUL CHOSEONG CIEUC;Lo;0;L;;;;;N;;;;;
-110D;HANGUL CHOSEONG SSANGCIEUC;Lo;0;L;;;;;N;;;;;
-110E;HANGUL CHOSEONG CHIEUCH;Lo;0;L;;;;;N;;;;;
-110F;HANGUL CHOSEONG KHIEUKH;Lo;0;L;;;;;N;;;;;
-1110;HANGUL CHOSEONG THIEUTH;Lo;0;L;;;;;N;;;;;
-1111;HANGUL CHOSEONG PHIEUPH;Lo;0;L;;;;;N;;;;;
-1112;HANGUL CHOSEONG HIEUH;Lo;0;L;;;;;N;;;;;
-1113;HANGUL CHOSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;;
-1114;HANGUL CHOSEONG SSANGNIEUN;Lo;0;L;;;;;N;;;;;
-1115;HANGUL CHOSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;;
-1116;HANGUL CHOSEONG NIEUN-PIEUP;Lo;0;L;;;;;N;;;;;
-1117;HANGUL CHOSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;;
-1118;HANGUL CHOSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;;
-1119;HANGUL CHOSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;;
-111A;HANGUL CHOSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;;;;
-111B;HANGUL CHOSEONG KAPYEOUNRIEUL;Lo;0;L;;;;;N;;;;;
-111C;HANGUL CHOSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;;
-111D;HANGUL CHOSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;;
-111E;HANGUL CHOSEONG PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;;
-111F;HANGUL CHOSEONG PIEUP-NIEUN;Lo;0;L;;;;;N;;;;;
-1120;HANGUL CHOSEONG PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;;
-1121;HANGUL CHOSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;;;;
-1122;HANGUL CHOSEONG PIEUP-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
-1123;HANGUL CHOSEONG PIEUP-SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
-1124;HANGUL CHOSEONG PIEUP-SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
-1125;HANGUL CHOSEONG PIEUP-SSANGSIOS;Lo;0;L;;;;;N;;;;;
-1126;HANGUL CHOSEONG PIEUP-SIOS-CIEUC;Lo;0;L;;;;;N;;;;;
-1127;HANGUL CHOSEONG PIEUP-CIEUC;Lo;0;L;;;;;N;;;;;
-1128;HANGUL CHOSEONG PIEUP-CHIEUCH;Lo;0;L;;;;;N;;;;;
-1129;HANGUL CHOSEONG PIEUP-THIEUTH;Lo;0;L;;;;;N;;;;;
-112A;HANGUL CHOSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;;
-112B;HANGUL CHOSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
-112C;HANGUL CHOSEONG KAPYEOUNSSANGPIEUP;Lo;0;L;;;;;N;;;;;
-112D;HANGUL CHOSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
-112E;HANGUL CHOSEONG SIOS-NIEUN;Lo;0;L;;;;;N;;;;;
-112F;HANGUL CHOSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
-1130;HANGUL CHOSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;;
-1131;HANGUL CHOSEONG SIOS-MIEUM;Lo;0;L;;;;;N;;;;;
-1132;HANGUL CHOSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
-1133;HANGUL CHOSEONG SIOS-PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;;
-1134;HANGUL CHOSEONG SIOS-SSANGSIOS;Lo;0;L;;;;;N;;;;;
-1135;HANGUL CHOSEONG SIOS-IEUNG;Lo;0;L;;;;;N;;;;;
-1136;HANGUL CHOSEONG SIOS-CIEUC;Lo;0;L;;;;;N;;;;;
-1137;HANGUL CHOSEONG SIOS-CHIEUCH;Lo;0;L;;;;;N;;;;;
-1138;HANGUL CHOSEONG SIOS-KHIEUKH;Lo;0;L;;;;;N;;;;;
-1139;HANGUL CHOSEONG SIOS-THIEUTH;Lo;0;L;;;;;N;;;;;
-113A;HANGUL CHOSEONG SIOS-PHIEUPH;Lo;0;L;;;;;N;;;;;
-113B;HANGUL CHOSEONG SIOS-HIEUH;Lo;0;L;;;;;N;;;;;
-113C;HANGUL CHOSEONG CHITUEUMSIOS;Lo;0;L;;;;;N;;;;;
-113D;HANGUL CHOSEONG CHITUEUMSSANGSIOS;Lo;0;L;;;;;N;;;;;
-113E;HANGUL CHOSEONG CEONGCHIEUMSIOS;Lo;0;L;;;;;N;;;;;
-113F;HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS;Lo;0;L;;;;;N;;;;;
-1140;HANGUL CHOSEONG PANSIOS;Lo;0;L;;;;;N;;;;;
-1141;HANGUL CHOSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;;
-1142;HANGUL CHOSEONG IEUNG-TIKEUT;Lo;0;L;;;;;N;;;;;
-1143;HANGUL CHOSEONG IEUNG-MIEUM;Lo;0;L;;;;;N;;;;;
-1144;HANGUL CHOSEONG IEUNG-PIEUP;Lo;0;L;;;;;N;;;;;
-1145;HANGUL CHOSEONG IEUNG-SIOS;Lo;0;L;;;;;N;;;;;
-1146;HANGUL CHOSEONG IEUNG-PANSIOS;Lo;0;L;;;;;N;;;;;
-1147;HANGUL CHOSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;;
-1148;HANGUL CHOSEONG IEUNG-CIEUC;Lo;0;L;;;;;N;;;;;
-1149;HANGUL CHOSEONG IEUNG-CHIEUCH;Lo;0;L;;;;;N;;;;;
-114A;HANGUL CHOSEONG IEUNG-THIEUTH;Lo;0;L;;;;;N;;;;;
-114B;HANGUL CHOSEONG IEUNG-PHIEUPH;Lo;0;L;;;;;N;;;;;
-114C;HANGUL CHOSEONG YESIEUNG;Lo;0;L;;;;;N;;;;;
-114D;HANGUL CHOSEONG CIEUC-IEUNG;Lo;0;L;;;;;N;;;;;
-114E;HANGUL CHOSEONG CHITUEUMCIEUC;Lo;0;L;;;;;N;;;;;
-114F;HANGUL CHOSEONG CHITUEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;;
-1150;HANGUL CHOSEONG CEONGCHIEUMCIEUC;Lo;0;L;;;;;N;;;;;
-1151;HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;;
-1152;HANGUL CHOSEONG CHIEUCH-KHIEUKH;Lo;0;L;;;;;N;;;;;
-1153;HANGUL CHOSEONG CHIEUCH-HIEUH;Lo;0;L;;;;;N;;;;;
-1154;HANGUL CHOSEONG CHITUEUMCHIEUCH;Lo;0;L;;;;;N;;;;;
-1155;HANGUL CHOSEONG CEONGCHIEUMCHIEUCH;Lo;0;L;;;;;N;;;;;
-1156;HANGUL CHOSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;;
-1157;HANGUL CHOSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;;
-1158;HANGUL CHOSEONG SSANGHIEUH;Lo;0;L;;;;;N;;;;;
-1159;HANGUL CHOSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;;
-115A;HANGUL CHOSEONG KIYEOK-TIKEUT;Lo;0;L;;;;;N;;;;;
-115B;HANGUL CHOSEONG NIEUN-SIOS;Lo;0;L;;;;;N;;;;;
-115C;HANGUL CHOSEONG NIEUN-CIEUC;Lo;0;L;;;;;N;;;;;
-115D;HANGUL CHOSEONG NIEUN-HIEUH;Lo;0;L;;;;;N;;;;;
-115E;HANGUL CHOSEONG TIKEUT-RIEUL;Lo;0;L;;;;;N;;;;;
-115F;HANGUL CHOSEONG FILLER;Lo;0;L;;;;;N;;;;;
-1160;HANGUL JUNGSEONG FILLER;Lo;0;L;;;;;N;;;;;
-1161;HANGUL JUNGSEONG A;Lo;0;L;;;;;N;;;;;
-1162;HANGUL JUNGSEONG AE;Lo;0;L;;;;;N;;;;;
-1163;HANGUL JUNGSEONG YA;Lo;0;L;;;;;N;;;;;
-1164;HANGUL JUNGSEONG YAE;Lo;0;L;;;;;N;;;;;
-1165;HANGUL JUNGSEONG EO;Lo;0;L;;;;;N;;;;;
-1166;HANGUL JUNGSEONG E;Lo;0;L;;;;;N;;;;;
-1167;HANGUL JUNGSEONG YEO;Lo;0;L;;;;;N;;;;;
-1168;HANGUL JUNGSEONG YE;Lo;0;L;;;;;N;;;;;
-1169;HANGUL JUNGSEONG O;Lo;0;L;;;;;N;;;;;
-116A;HANGUL JUNGSEONG WA;Lo;0;L;;;;;N;;;;;
-116B;HANGUL JUNGSEONG WAE;Lo;0;L;;;;;N;;;;;
-116C;HANGUL JUNGSEONG OE;Lo;0;L;;;;;N;;;;;
-116D;HANGUL JUNGSEONG YO;Lo;0;L;;;;;N;;;;;
-116E;HANGUL JUNGSEONG U;Lo;0;L;;;;;N;;;;;
-116F;HANGUL JUNGSEONG WEO;Lo;0;L;;;;;N;;;;;
-1170;HANGUL JUNGSEONG WE;Lo;0;L;;;;;N;;;;;
-1171;HANGUL JUNGSEONG WI;Lo;0;L;;;;;N;;;;;
-1172;HANGUL JUNGSEONG YU;Lo;0;L;;;;;N;;;;;
-1173;HANGUL JUNGSEONG EU;Lo;0;L;;;;;N;;;;;
-1174;HANGUL JUNGSEONG YI;Lo;0;L;;;;;N;;;;;
-1175;HANGUL JUNGSEONG I;Lo;0;L;;;;;N;;;;;
-1176;HANGUL JUNGSEONG A-O;Lo;0;L;;;;;N;;;;;
-1177;HANGUL JUNGSEONG A-U;Lo;0;L;;;;;N;;;;;
-1178;HANGUL JUNGSEONG YA-O;Lo;0;L;;;;;N;;;;;
-1179;HANGUL JUNGSEONG YA-YO;Lo;0;L;;;;;N;;;;;
-117A;HANGUL JUNGSEONG EO-O;Lo;0;L;;;;;N;;;;;
-117B;HANGUL JUNGSEONG EO-U;Lo;0;L;;;;;N;;;;;
-117C;HANGUL JUNGSEONG EO-EU;Lo;0;L;;;;;N;;;;;
-117D;HANGUL JUNGSEONG YEO-O;Lo;0;L;;;;;N;;;;;
-117E;HANGUL JUNGSEONG YEO-U;Lo;0;L;;;;;N;;;;;
-117F;HANGUL JUNGSEONG O-EO;Lo;0;L;;;;;N;;;;;
-1180;HANGUL JUNGSEONG O-E;Lo;0;L;;;;;N;;;;;
-1181;HANGUL JUNGSEONG O-YE;Lo;0;L;;;;;N;;;;;
-1182;HANGUL JUNGSEONG O-O;Lo;0;L;;;;;N;;;;;
-1183;HANGUL JUNGSEONG O-U;Lo;0;L;;;;;N;;;;;
-1184;HANGUL JUNGSEONG YO-YA;Lo;0;L;;;;;N;;;;;
-1185;HANGUL JUNGSEONG YO-YAE;Lo;0;L;;;;;N;;;;;
-1186;HANGUL JUNGSEONG YO-YEO;Lo;0;L;;;;;N;;;;;
-1187;HANGUL JUNGSEONG YO-O;Lo;0;L;;;;;N;;;;;
-1188;HANGUL JUNGSEONG YO-I;Lo;0;L;;;;;N;;;;;
-1189;HANGUL JUNGSEONG U-A;Lo;0;L;;;;;N;;;;;
-118A;HANGUL JUNGSEONG U-AE;Lo;0;L;;;;;N;;;;;
-118B;HANGUL JUNGSEONG U-EO-EU;Lo;0;L;;;;;N;;;;;
-118C;HANGUL JUNGSEONG U-YE;Lo;0;L;;;;;N;;;;;
-118D;HANGUL JUNGSEONG U-U;Lo;0;L;;;;;N;;;;;
-118E;HANGUL JUNGSEONG YU-A;Lo;0;L;;;;;N;;;;;
-118F;HANGUL JUNGSEONG YU-EO;Lo;0;L;;;;;N;;;;;
-1190;HANGUL JUNGSEONG YU-E;Lo;0;L;;;;;N;;;;;
-1191;HANGUL JUNGSEONG YU-YEO;Lo;0;L;;;;;N;;;;;
-1192;HANGUL JUNGSEONG YU-YE;Lo;0;L;;;;;N;;;;;
-1193;HANGUL JUNGSEONG YU-U;Lo;0;L;;;;;N;;;;;
-1194;HANGUL JUNGSEONG YU-I;Lo;0;L;;;;;N;;;;;
-1195;HANGUL JUNGSEONG EU-U;Lo;0;L;;;;;N;;;;;
-1196;HANGUL JUNGSEONG EU-EU;Lo;0;L;;;;;N;;;;;
-1197;HANGUL JUNGSEONG YI-U;Lo;0;L;;;;;N;;;;;
-1198;HANGUL JUNGSEONG I-A;Lo;0;L;;;;;N;;;;;
-1199;HANGUL JUNGSEONG I-YA;Lo;0;L;;;;;N;;;;;
-119A;HANGUL JUNGSEONG I-O;Lo;0;L;;;;;N;;;;;
-119B;HANGUL JUNGSEONG I-U;Lo;0;L;;;;;N;;;;;
-119C;HANGUL JUNGSEONG I-EU;Lo;0;L;;;;;N;;;;;
-119D;HANGUL JUNGSEONG I-ARAEA;Lo;0;L;;;;;N;;;;;
-119E;HANGUL JUNGSEONG ARAEA;Lo;0;L;;;;;N;;;;;
-119F;HANGUL JUNGSEONG ARAEA-EO;Lo;0;L;;;;;N;;;;;
-11A0;HANGUL JUNGSEONG ARAEA-U;Lo;0;L;;;;;N;;;;;
-11A1;HANGUL JUNGSEONG ARAEA-I;Lo;0;L;;;;;N;;;;;
-11A2;HANGUL JUNGSEONG SSANGARAEA;Lo;0;L;;;;;N;;;;;
-11A3;HANGUL JUNGSEONG A-EU;Lo;0;L;;;;;N;;;;;
-11A4;HANGUL JUNGSEONG YA-U;Lo;0;L;;;;;N;;;;;
-11A5;HANGUL JUNGSEONG YEO-YA;Lo;0;L;;;;;N;;;;;
-11A6;HANGUL JUNGSEONG O-YA;Lo;0;L;;;;;N;;;;;
-11A7;HANGUL JUNGSEONG O-YAE;Lo;0;L;;;;;N;;;;;
-11A8;HANGUL JONGSEONG KIYEOK;Lo;0;L;;;;;N;;;;;
-11A9;HANGUL JONGSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;;;;
-11AA;HANGUL JONGSEONG KIYEOK-SIOS;Lo;0;L;;;;;N;;;;;
-11AB;HANGUL JONGSEONG NIEUN;Lo;0;L;;;;;N;;;;;
-11AC;HANGUL JONGSEONG NIEUN-CIEUC;Lo;0;L;;;;;N;;;;;
-11AD;HANGUL JONGSEONG NIEUN-HIEUH;Lo;0;L;;;;;N;;;;;
-11AE;HANGUL JONGSEONG TIKEUT;Lo;0;L;;;;;N;;;;;
-11AF;HANGUL JONGSEONG RIEUL;Lo;0;L;;;;;N;;;;;
-11B0;HANGUL JONGSEONG RIEUL-KIYEOK;Lo;0;L;;;;;N;;;;;
-11B1;HANGUL JONGSEONG RIEUL-MIEUM;Lo;0;L;;;;;N;;;;;
-11B2;HANGUL JONGSEONG RIEUL-PIEUP;Lo;0;L;;;;;N;;;;;
-11B3;HANGUL JONGSEONG RIEUL-SIOS;Lo;0;L;;;;;N;;;;;
-11B4;HANGUL JONGSEONG RIEUL-THIEUTH;Lo;0;L;;;;;N;;;;;
-11B5;HANGUL JONGSEONG RIEUL-PHIEUPH;Lo;0;L;;;;;N;;;;;
-11B6;HANGUL JONGSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;;;;
-11B7;HANGUL JONGSEONG MIEUM;Lo;0;L;;;;;N;;;;;
-11B8;HANGUL JONGSEONG PIEUP;Lo;0;L;;;;;N;;;;;
-11B9;HANGUL JONGSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;;;;
-11BA;HANGUL JONGSEONG SIOS;Lo;0;L;;;;;N;;;;;
-11BB;HANGUL JONGSEONG SSANGSIOS;Lo;0;L;;;;;N;;;;;
-11BC;HANGUL JONGSEONG IEUNG;Lo;0;L;;;;;N;;;;;
-11BD;HANGUL JONGSEONG CIEUC;Lo;0;L;;;;;N;;;;;
-11BE;HANGUL JONGSEONG CHIEUCH;Lo;0;L;;;;;N;;;;;
-11BF;HANGUL JONGSEONG KHIEUKH;Lo;0;L;;;;;N;;;;;
-11C0;HANGUL JONGSEONG THIEUTH;Lo;0;L;;;;;N;;;;;
-11C1;HANGUL JONGSEONG PHIEUPH;Lo;0;L;;;;;N;;;;;
-11C2;HANGUL JONGSEONG HIEUH;Lo;0;L;;;;;N;;;;;
-11C3;HANGUL JONGSEONG KIYEOK-RIEUL;Lo;0;L;;;;;N;;;;;
-11C4;HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
-11C5;HANGUL JONGSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;;
-11C6;HANGUL JONGSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;;
-11C7;HANGUL JONGSEONG NIEUN-SIOS;Lo;0;L;;;;;N;;;;;
-11C8;HANGUL JONGSEONG NIEUN-PANSIOS;Lo;0;L;;;;;N;;;;;
-11C9;HANGUL JONGSEONG NIEUN-THIEUTH;Lo;0;L;;;;;N;;;;;
-11CA;HANGUL JONGSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;;
-11CB;HANGUL JONGSEONG TIKEUT-RIEUL;Lo;0;L;;;;;N;;;;;
-11CC;HANGUL JONGSEONG RIEUL-KIYEOK-SIOS;Lo;0;L;;;;;N;;;;;
-11CD;HANGUL JONGSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;;
-11CE;HANGUL JONGSEONG RIEUL-TIKEUT;Lo;0;L;;;;;N;;;;;
-11CF;HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH;Lo;0;L;;;;;N;;;;;
-11D0;HANGUL JONGSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;;
-11D1;HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;;
-11D2;HANGUL JONGSEONG RIEUL-MIEUM-SIOS;Lo;0;L;;;;;N;;;;;
-11D3;HANGUL JONGSEONG RIEUL-PIEUP-SIOS;Lo;0;L;;;;;N;;;;;
-11D4;HANGUL JONGSEONG RIEUL-PIEUP-HIEUH;Lo;0;L;;;;;N;;;;;
-11D5;HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
-11D6;HANGUL JONGSEONG RIEUL-SSANGSIOS;Lo;0;L;;;;;N;;;;;
-11D7;HANGUL JONGSEONG RIEUL-PANSIOS;Lo;0;L;;;;;N;;;;;
-11D8;HANGUL JONGSEONG RIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;;
-11D9;HANGUL JONGSEONG RIEUL-YEORINHIEUH;Lo;0;L;;;;;N;;;;;
-11DA;HANGUL JONGSEONG MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;;
-11DB;HANGUL JONGSEONG MIEUM-RIEUL;Lo;0;L;;;;;N;;;;;
-11DC;HANGUL JONGSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;;
-11DD;HANGUL JONGSEONG MIEUM-SIOS;Lo;0;L;;;;;N;;;;;
-11DE;HANGUL JONGSEONG MIEUM-SSANGSIOS;Lo;0;L;;;;;N;;;;;
-11DF;HANGUL JONGSEONG MIEUM-PANSIOS;Lo;0;L;;;;;N;;;;;
-11E0;HANGUL JONGSEONG MIEUM-CHIEUCH;Lo;0;L;;;;;N;;;;;
-11E1;HANGUL JONGSEONG MIEUM-HIEUH;Lo;0;L;;;;;N;;;;;
-11E2;HANGUL JONGSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;;
-11E3;HANGUL JONGSEONG PIEUP-RIEUL;Lo;0;L;;;;;N;;;;;
-11E4;HANGUL JONGSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;;
-11E5;HANGUL JONGSEONG PIEUP-HIEUH;Lo;0;L;;;;;N;;;;;
-11E6;HANGUL JONGSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
-11E7;HANGUL JONGSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
-11E8;HANGUL JONGSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
-11E9;HANGUL JONGSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;;
-11EA;HANGUL JONGSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;;
-11EB;HANGUL JONGSEONG PANSIOS;Lo;0;L;;;;;N;;;;;
-11EC;HANGUL JONGSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;;
-11ED;HANGUL JONGSEONG IEUNG-SSANGKIYEOK;Lo;0;L;;;;;N;;;;;
-11EE;HANGUL JONGSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;;
-11EF;HANGUL JONGSEONG IEUNG-KHIEUKH;Lo;0;L;;;;;N;;;;;
-11F0;HANGUL JONGSEONG YESIEUNG;Lo;0;L;;;;;N;;;;;
-11F1;HANGUL JONGSEONG YESIEUNG-SIOS;Lo;0;L;;;;;N;;;;;
-11F2;HANGUL JONGSEONG YESIEUNG-PANSIOS;Lo;0;L;;;;;N;;;;;
-11F3;HANGUL JONGSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;;
-11F4;HANGUL JONGSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;;
-11F5;HANGUL JONGSEONG HIEUH-NIEUN;Lo;0;L;;;;;N;;;;;
-11F6;HANGUL JONGSEONG HIEUH-RIEUL;Lo;0;L;;;;;N;;;;;
-11F7;HANGUL JONGSEONG HIEUH-MIEUM;Lo;0;L;;;;;N;;;;;
-11F8;HANGUL JONGSEONG HIEUH-PIEUP;Lo;0;L;;;;;N;;;;;
-11F9;HANGUL JONGSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;;
-11FA;HANGUL JONGSEONG KIYEOK-NIEUN;Lo;0;L;;;;;N;;;;;
-11FB;HANGUL JONGSEONG KIYEOK-PIEUP;Lo;0;L;;;;;N;;;;;
-11FC;HANGUL JONGSEONG KIYEOK-CHIEUCH;Lo;0;L;;;;;N;;;;;
-11FD;HANGUL JONGSEONG KIYEOK-KHIEUKH;Lo;0;L;;;;;N;;;;;
-11FE;HANGUL JONGSEONG KIYEOK-HIEUH;Lo;0;L;;;;;N;;;;;
-11FF;HANGUL JONGSEONG SSANGNIEUN;Lo;0;L;;;;;N;;;;;
-1200;ETHIOPIC SYLLABLE HA;Lo;0;L;;;;;N;;;;;
-1201;ETHIOPIC SYLLABLE HU;Lo;0;L;;;;;N;;;;;
-1202;ETHIOPIC SYLLABLE HI;Lo;0;L;;;;;N;;;;;
-1203;ETHIOPIC SYLLABLE HAA;Lo;0;L;;;;;N;;;;;
-1204;ETHIOPIC SYLLABLE HEE;Lo;0;L;;;;;N;;;;;
-1205;ETHIOPIC SYLLABLE HE;Lo;0;L;;;;;N;;;;;
-1206;ETHIOPIC SYLLABLE HO;Lo;0;L;;;;;N;;;;;
-1207;ETHIOPIC SYLLABLE HOA;Lo;0;L;;;;;N;;;;;
-1208;ETHIOPIC SYLLABLE LA;Lo;0;L;;;;;N;;;;;
-1209;ETHIOPIC SYLLABLE LU;Lo;0;L;;;;;N;;;;;
-120A;ETHIOPIC SYLLABLE LI;Lo;0;L;;;;;N;;;;;
-120B;ETHIOPIC SYLLABLE LAA;Lo;0;L;;;;;N;;;;;
-120C;ETHIOPIC SYLLABLE LEE;Lo;0;L;;;;;N;;;;;
-120D;ETHIOPIC SYLLABLE LE;Lo;0;L;;;;;N;;;;;
-120E;ETHIOPIC SYLLABLE LO;Lo;0;L;;;;;N;;;;;
-120F;ETHIOPIC SYLLABLE LWA;Lo;0;L;;;;;N;;;;;
-1210;ETHIOPIC SYLLABLE HHA;Lo;0;L;;;;;N;;;;;
-1211;ETHIOPIC SYLLABLE HHU;Lo;0;L;;;;;N;;;;;
-1212;ETHIOPIC SYLLABLE HHI;Lo;0;L;;;;;N;;;;;
-1213;ETHIOPIC SYLLABLE HHAA;Lo;0;L;;;;;N;;;;;
-1214;ETHIOPIC SYLLABLE HHEE;Lo;0;L;;;;;N;;;;;
-1215;ETHIOPIC SYLLABLE HHE;Lo;0;L;;;;;N;;;;;
-1216;ETHIOPIC SYLLABLE HHO;Lo;0;L;;;;;N;;;;;
-1217;ETHIOPIC SYLLABLE HHWA;Lo;0;L;;;;;N;;;;;
-1218;ETHIOPIC SYLLABLE MA;Lo;0;L;;;;;N;;;;;
-1219;ETHIOPIC SYLLABLE MU;Lo;0;L;;;;;N;;;;;
-121A;ETHIOPIC SYLLABLE MI;Lo;0;L;;;;;N;;;;;
-121B;ETHIOPIC SYLLABLE MAA;Lo;0;L;;;;;N;;;;;
-121C;ETHIOPIC SYLLABLE MEE;Lo;0;L;;;;;N;;;;;
-121D;ETHIOPIC SYLLABLE ME;Lo;0;L;;;;;N;;;;;
-121E;ETHIOPIC SYLLABLE MO;Lo;0;L;;;;;N;;;;;
-121F;ETHIOPIC SYLLABLE MWA;Lo;0;L;;;;;N;;;;;
-1220;ETHIOPIC SYLLABLE SZA;Lo;0;L;;;;;N;;;;;
-1221;ETHIOPIC SYLLABLE SZU;Lo;0;L;;;;;N;;;;;
-1222;ETHIOPIC SYLLABLE SZI;Lo;0;L;;;;;N;;;;;
-1223;ETHIOPIC SYLLABLE SZAA;Lo;0;L;;;;;N;;;;;
-1224;ETHIOPIC SYLLABLE SZEE;Lo;0;L;;;;;N;;;;;
-1225;ETHIOPIC SYLLABLE SZE;Lo;0;L;;;;;N;;;;;
-1226;ETHIOPIC SYLLABLE SZO;Lo;0;L;;;;;N;;;;;
-1227;ETHIOPIC SYLLABLE SZWA;Lo;0;L;;;;;N;;;;;
-1228;ETHIOPIC SYLLABLE RA;Lo;0;L;;;;;N;;;;;
-1229;ETHIOPIC SYLLABLE RU;Lo;0;L;;;;;N;;;;;
-122A;ETHIOPIC SYLLABLE RI;Lo;0;L;;;;;N;;;;;
-122B;ETHIOPIC SYLLABLE RAA;Lo;0;L;;;;;N;;;;;
-122C;ETHIOPIC SYLLABLE REE;Lo;0;L;;;;;N;;;;;
-122D;ETHIOPIC SYLLABLE RE;Lo;0;L;;;;;N;;;;;
-122E;ETHIOPIC SYLLABLE RO;Lo;0;L;;;;;N;;;;;
-122F;ETHIOPIC SYLLABLE RWA;Lo;0;L;;;;;N;;;;;
-1230;ETHIOPIC SYLLABLE SA;Lo;0;L;;;;;N;;;;;
-1231;ETHIOPIC SYLLABLE SU;Lo;0;L;;;;;N;;;;;
-1232;ETHIOPIC SYLLABLE SI;Lo;0;L;;;;;N;;;;;
-1233;ETHIOPIC SYLLABLE SAA;Lo;0;L;;;;;N;;;;;
-1234;ETHIOPIC SYLLABLE SEE;Lo;0;L;;;;;N;;;;;
-1235;ETHIOPIC SYLLABLE SE;Lo;0;L;;;;;N;;;;;
-1236;ETHIOPIC SYLLABLE SO;Lo;0;L;;;;;N;;;;;
-1237;ETHIOPIC SYLLABLE SWA;Lo;0;L;;;;;N;;;;;
-1238;ETHIOPIC SYLLABLE SHA;Lo;0;L;;;;;N;;;;;
-1239;ETHIOPIC SYLLABLE SHU;Lo;0;L;;;;;N;;;;;
-123A;ETHIOPIC SYLLABLE SHI;Lo;0;L;;;;;N;;;;;
-123B;ETHIOPIC SYLLABLE SHAA;Lo;0;L;;;;;N;;;;;
-123C;ETHIOPIC SYLLABLE SHEE;Lo;0;L;;;;;N;;;;;
-123D;ETHIOPIC SYLLABLE SHE;Lo;0;L;;;;;N;;;;;
-123E;ETHIOPIC SYLLABLE SHO;Lo;0;L;;;;;N;;;;;
-123F;ETHIOPIC SYLLABLE SHWA;Lo;0;L;;;;;N;;;;;
-1240;ETHIOPIC SYLLABLE QA;Lo;0;L;;;;;N;;;;;
-1241;ETHIOPIC SYLLABLE QU;Lo;0;L;;;;;N;;;;;
-1242;ETHIOPIC SYLLABLE QI;Lo;0;L;;;;;N;;;;;
-1243;ETHIOPIC SYLLABLE QAA;Lo;0;L;;;;;N;;;;;
-1244;ETHIOPIC SYLLABLE QEE;Lo;0;L;;;;;N;;;;;
-1245;ETHIOPIC SYLLABLE QE;Lo;0;L;;;;;N;;;;;
-1246;ETHIOPIC SYLLABLE QO;Lo;0;L;;;;;N;;;;;
-1247;ETHIOPIC SYLLABLE QOA;Lo;0;L;;;;;N;;;;;
-1248;ETHIOPIC SYLLABLE QWA;Lo;0;L;;;;;N;;;;;
-124A;ETHIOPIC SYLLABLE QWI;Lo;0;L;;;;;N;;;;;
-124B;ETHIOPIC SYLLABLE QWAA;Lo;0;L;;;;;N;;;;;
-124C;ETHIOPIC SYLLABLE QWEE;Lo;0;L;;;;;N;;;;;
-124D;ETHIOPIC SYLLABLE QWE;Lo;0;L;;;;;N;;;;;
-1250;ETHIOPIC SYLLABLE QHA;Lo;0;L;;;;;N;;;;;
-1251;ETHIOPIC SYLLABLE QHU;Lo;0;L;;;;;N;;;;;
-1252;ETHIOPIC SYLLABLE QHI;Lo;0;L;;;;;N;;;;;
-1253;ETHIOPIC SYLLABLE QHAA;Lo;0;L;;;;;N;;;;;
-1254;ETHIOPIC SYLLABLE QHEE;Lo;0;L;;;;;N;;;;;
-1255;ETHIOPIC SYLLABLE QHE;Lo;0;L;;;;;N;;;;;
-1256;ETHIOPIC SYLLABLE QHO;Lo;0;L;;;;;N;;;;;
-1258;ETHIOPIC SYLLABLE QHWA;Lo;0;L;;;;;N;;;;;
-125A;ETHIOPIC SYLLABLE QHWI;Lo;0;L;;;;;N;;;;;
-125B;ETHIOPIC SYLLABLE QHWAA;Lo;0;L;;;;;N;;;;;
-125C;ETHIOPIC SYLLABLE QHWEE;Lo;0;L;;;;;N;;;;;
-125D;ETHIOPIC SYLLABLE QHWE;Lo;0;L;;;;;N;;;;;
-1260;ETHIOPIC SYLLABLE BA;Lo;0;L;;;;;N;;;;;
-1261;ETHIOPIC SYLLABLE BU;Lo;0;L;;;;;N;;;;;
-1262;ETHIOPIC SYLLABLE BI;Lo;0;L;;;;;N;;;;;
-1263;ETHIOPIC SYLLABLE BAA;Lo;0;L;;;;;N;;;;;
-1264;ETHIOPIC SYLLABLE BEE;Lo;0;L;;;;;N;;;;;
-1265;ETHIOPIC SYLLABLE BE;Lo;0;L;;;;;N;;;;;
-1266;ETHIOPIC SYLLABLE BO;Lo;0;L;;;;;N;;;;;
-1267;ETHIOPIC SYLLABLE BWA;Lo;0;L;;;;;N;;;;;
-1268;ETHIOPIC SYLLABLE VA;Lo;0;L;;;;;N;;;;;
-1269;ETHIOPIC SYLLABLE VU;Lo;0;L;;;;;N;;;;;
-126A;ETHIOPIC SYLLABLE VI;Lo;0;L;;;;;N;;;;;
-126B;ETHIOPIC SYLLABLE VAA;Lo;0;L;;;;;N;;;;;
-126C;ETHIOPIC SYLLABLE VEE;Lo;0;L;;;;;N;;;;;
-126D;ETHIOPIC SYLLABLE VE;Lo;0;L;;;;;N;;;;;
-126E;ETHIOPIC SYLLABLE VO;Lo;0;L;;;;;N;;;;;
-126F;ETHIOPIC SYLLABLE VWA;Lo;0;L;;;;;N;;;;;
-1270;ETHIOPIC SYLLABLE TA;Lo;0;L;;;;;N;;;;;
-1271;ETHIOPIC SYLLABLE TU;Lo;0;L;;;;;N;;;;;
-1272;ETHIOPIC SYLLABLE TI;Lo;0;L;;;;;N;;;;;
-1273;ETHIOPIC SYLLABLE TAA;Lo;0;L;;;;;N;;;;;
-1274;ETHIOPIC SYLLABLE TEE;Lo;0;L;;;;;N;;;;;
-1275;ETHIOPIC SYLLABLE TE;Lo;0;L;;;;;N;;;;;
-1276;ETHIOPIC SYLLABLE TO;Lo;0;L;;;;;N;;;;;
-1277;ETHIOPIC SYLLABLE TWA;Lo;0;L;;;;;N;;;;;
-1278;ETHIOPIC SYLLABLE CA;Lo;0;L;;;;;N;;;;;
-1279;ETHIOPIC SYLLABLE CU;Lo;0;L;;;;;N;;;;;
-127A;ETHIOPIC SYLLABLE CI;Lo;0;L;;;;;N;;;;;
-127B;ETHIOPIC SYLLABLE CAA;Lo;0;L;;;;;N;;;;;
-127C;ETHIOPIC SYLLABLE CEE;Lo;0;L;;;;;N;;;;;
-127D;ETHIOPIC SYLLABLE CE;Lo;0;L;;;;;N;;;;;
-127E;ETHIOPIC SYLLABLE CO;Lo;0;L;;;;;N;;;;;
-127F;ETHIOPIC SYLLABLE CWA;Lo;0;L;;;;;N;;;;;
-1280;ETHIOPIC SYLLABLE XA;Lo;0;L;;;;;N;;;;;
-1281;ETHIOPIC SYLLABLE XU;Lo;0;L;;;;;N;;;;;
-1282;ETHIOPIC SYLLABLE XI;Lo;0;L;;;;;N;;;;;
-1283;ETHIOPIC SYLLABLE XAA;Lo;0;L;;;;;N;;;;;
-1284;ETHIOPIC SYLLABLE XEE;Lo;0;L;;;;;N;;;;;
-1285;ETHIOPIC SYLLABLE XE;Lo;0;L;;;;;N;;;;;
-1286;ETHIOPIC SYLLABLE XO;Lo;0;L;;;;;N;;;;;
-1287;ETHIOPIC SYLLABLE XOA;Lo;0;L;;;;;N;;;;;
-1288;ETHIOPIC SYLLABLE XWA;Lo;0;L;;;;;N;;;;;
-128A;ETHIOPIC SYLLABLE XWI;Lo;0;L;;;;;N;;;;;
-128B;ETHIOPIC SYLLABLE XWAA;Lo;0;L;;;;;N;;;;;
-128C;ETHIOPIC SYLLABLE XWEE;Lo;0;L;;;;;N;;;;;
-128D;ETHIOPIC SYLLABLE XWE;Lo;0;L;;;;;N;;;;;
-1290;ETHIOPIC SYLLABLE NA;Lo;0;L;;;;;N;;;;;
-1291;ETHIOPIC SYLLABLE NU;Lo;0;L;;;;;N;;;;;
-1292;ETHIOPIC SYLLABLE NI;Lo;0;L;;;;;N;;;;;
-1293;ETHIOPIC SYLLABLE NAA;Lo;0;L;;;;;N;;;;;
-1294;ETHIOPIC SYLLABLE NEE;Lo;0;L;;;;;N;;;;;
-1295;ETHIOPIC SYLLABLE NE;Lo;0;L;;;;;N;;;;;
-1296;ETHIOPIC SYLLABLE NO;Lo;0;L;;;;;N;;;;;
-1297;ETHIOPIC SYLLABLE NWA;Lo;0;L;;;;;N;;;;;
-1298;ETHIOPIC SYLLABLE NYA;Lo;0;L;;;;;N;;;;;
-1299;ETHIOPIC SYLLABLE NYU;Lo;0;L;;;;;N;;;;;
-129A;ETHIOPIC SYLLABLE NYI;Lo;0;L;;;;;N;;;;;
-129B;ETHIOPIC SYLLABLE NYAA;Lo;0;L;;;;;N;;;;;
-129C;ETHIOPIC SYLLABLE NYEE;Lo;0;L;;;;;N;;;;;
-129D;ETHIOPIC SYLLABLE NYE;Lo;0;L;;;;;N;;;;;
-129E;ETHIOPIC SYLLABLE NYO;Lo;0;L;;;;;N;;;;;
-129F;ETHIOPIC SYLLABLE NYWA;Lo;0;L;;;;;N;;;;;
-12A0;ETHIOPIC SYLLABLE GLOTTAL A;Lo;0;L;;;;;N;;;;;
-12A1;ETHIOPIC SYLLABLE GLOTTAL U;Lo;0;L;;;;;N;;;;;
-12A2;ETHIOPIC SYLLABLE GLOTTAL I;Lo;0;L;;;;;N;;;;;
-12A3;ETHIOPIC SYLLABLE GLOTTAL AA;Lo;0;L;;;;;N;;;;;
-12A4;ETHIOPIC SYLLABLE GLOTTAL EE;Lo;0;L;;;;;N;;;;;
-12A5;ETHIOPIC SYLLABLE GLOTTAL E;Lo;0;L;;;;;N;;;;;
-12A6;ETHIOPIC SYLLABLE GLOTTAL O;Lo;0;L;;;;;N;;;;;
-12A7;ETHIOPIC SYLLABLE GLOTTAL WA;Lo;0;L;;;;;N;;;;;
-12A8;ETHIOPIC SYLLABLE KA;Lo;0;L;;;;;N;;;;;
-12A9;ETHIOPIC SYLLABLE KU;Lo;0;L;;;;;N;;;;;
-12AA;ETHIOPIC SYLLABLE KI;Lo;0;L;;;;;N;;;;;
-12AB;ETHIOPIC SYLLABLE KAA;Lo;0;L;;;;;N;;;;;
-12AC;ETHIOPIC SYLLABLE KEE;Lo;0;L;;;;;N;;;;;
-12AD;ETHIOPIC SYLLABLE KE;Lo;0;L;;;;;N;;;;;
-12AE;ETHIOPIC SYLLABLE KO;Lo;0;L;;;;;N;;;;;
-12AF;ETHIOPIC SYLLABLE KOA;Lo;0;L;;;;;N;;;;;
-12B0;ETHIOPIC SYLLABLE KWA;Lo;0;L;;;;;N;;;;;
-12B2;ETHIOPIC SYLLABLE KWI;Lo;0;L;;;;;N;;;;;
-12B3;ETHIOPIC SYLLABLE KWAA;Lo;0;L;;;;;N;;;;;
-12B4;ETHIOPIC SYLLABLE KWEE;Lo;0;L;;;;;N;;;;;
-12B5;ETHIOPIC SYLLABLE KWE;Lo;0;L;;;;;N;;;;;
-12B8;ETHIOPIC SYLLABLE KXA;Lo;0;L;;;;;N;;;;;
-12B9;ETHIOPIC SYLLABLE KXU;Lo;0;L;;;;;N;;;;;
-12BA;ETHIOPIC SYLLABLE KXI;Lo;0;L;;;;;N;;;;;
-12BB;ETHIOPIC SYLLABLE KXAA;Lo;0;L;;;;;N;;;;;
-12BC;ETHIOPIC SYLLABLE KXEE;Lo;0;L;;;;;N;;;;;
-12BD;ETHIOPIC SYLLABLE KXE;Lo;0;L;;;;;N;;;;;
-12BE;ETHIOPIC SYLLABLE KXO;Lo;0;L;;;;;N;;;;;
-12C0;ETHIOPIC SYLLABLE KXWA;Lo;0;L;;;;;N;;;;;
-12C2;ETHIOPIC SYLLABLE KXWI;Lo;0;L;;;;;N;;;;;
-12C3;ETHIOPIC SYLLABLE KXWAA;Lo;0;L;;;;;N;;;;;
-12C4;ETHIOPIC SYLLABLE KXWEE;Lo;0;L;;;;;N;;;;;
-12C5;ETHIOPIC SYLLABLE KXWE;Lo;0;L;;;;;N;;;;;
-12C8;ETHIOPIC SYLLABLE WA;Lo;0;L;;;;;N;;;;;
-12C9;ETHIOPIC SYLLABLE WU;Lo;0;L;;;;;N;;;;;
-12CA;ETHIOPIC SYLLABLE WI;Lo;0;L;;;;;N;;;;;
-12CB;ETHIOPIC SYLLABLE WAA;Lo;0;L;;;;;N;;;;;
-12CC;ETHIOPIC SYLLABLE WEE;Lo;0;L;;;;;N;;;;;
-12CD;ETHIOPIC SYLLABLE WE;Lo;0;L;;;;;N;;;;;
-12CE;ETHIOPIC SYLLABLE WO;Lo;0;L;;;;;N;;;;;
-12CF;ETHIOPIC SYLLABLE WOA;Lo;0;L;;;;;N;;;;;
-12D0;ETHIOPIC SYLLABLE PHARYNGEAL A;Lo;0;L;;;;;N;;;;;
-12D1;ETHIOPIC SYLLABLE PHARYNGEAL U;Lo;0;L;;;;;N;;;;;
-12D2;ETHIOPIC SYLLABLE PHARYNGEAL I;Lo;0;L;;;;;N;;;;;
-12D3;ETHIOPIC SYLLABLE PHARYNGEAL AA;Lo;0;L;;;;;N;;;;;
-12D4;ETHIOPIC SYLLABLE PHARYNGEAL EE;Lo;0;L;;;;;N;;;;;
-12D5;ETHIOPIC SYLLABLE PHARYNGEAL E;Lo;0;L;;;;;N;;;;;
-12D6;ETHIOPIC SYLLABLE PHARYNGEAL O;Lo;0;L;;;;;N;;;;;
-12D8;ETHIOPIC SYLLABLE ZA;Lo;0;L;;;;;N;;;;;
-12D9;ETHIOPIC SYLLABLE ZU;Lo;0;L;;;;;N;;;;;
-12DA;ETHIOPIC SYLLABLE ZI;Lo;0;L;;;;;N;;;;;
-12DB;ETHIOPIC SYLLABLE ZAA;Lo;0;L;;;;;N;;;;;
-12DC;ETHIOPIC SYLLABLE ZEE;Lo;0;L;;;;;N;;;;;
-12DD;ETHIOPIC SYLLABLE ZE;Lo;0;L;;;;;N;;;;;
-12DE;ETHIOPIC SYLLABLE ZO;Lo;0;L;;;;;N;;;;;
-12DF;ETHIOPIC SYLLABLE ZWA;Lo;0;L;;;;;N;;;;;
-12E0;ETHIOPIC SYLLABLE ZHA;Lo;0;L;;;;;N;;;;;
-12E1;ETHIOPIC SYLLABLE ZHU;Lo;0;L;;;;;N;;;;;
-12E2;ETHIOPIC SYLLABLE ZHI;Lo;0;L;;;;;N;;;;;
-12E3;ETHIOPIC SYLLABLE ZHAA;Lo;0;L;;;;;N;;;;;
-12E4;ETHIOPIC SYLLABLE ZHEE;Lo;0;L;;;;;N;;;;;
-12E5;ETHIOPIC SYLLABLE ZHE;Lo;0;L;;;;;N;;;;;
-12E6;ETHIOPIC SYLLABLE ZHO;Lo;0;L;;;;;N;;;;;
-12E7;ETHIOPIC SYLLABLE ZHWA;Lo;0;L;;;;;N;;;;;
-12E8;ETHIOPIC SYLLABLE YA;Lo;0;L;;;;;N;;;;;
-12E9;ETHIOPIC SYLLABLE YU;Lo;0;L;;;;;N;;;;;
-12EA;ETHIOPIC SYLLABLE YI;Lo;0;L;;;;;N;;;;;
-12EB;ETHIOPIC SYLLABLE YAA;Lo;0;L;;;;;N;;;;;
-12EC;ETHIOPIC SYLLABLE YEE;Lo;0;L;;;;;N;;;;;
-12ED;ETHIOPIC SYLLABLE YE;Lo;0;L;;;;;N;;;;;
-12EE;ETHIOPIC SYLLABLE YO;Lo;0;L;;;;;N;;;;;
-12EF;ETHIOPIC SYLLABLE YOA;Lo;0;L;;;;;N;;;;;
-12F0;ETHIOPIC SYLLABLE DA;Lo;0;L;;;;;N;;;;;
-12F1;ETHIOPIC SYLLABLE DU;Lo;0;L;;;;;N;;;;;
-12F2;ETHIOPIC SYLLABLE DI;Lo;0;L;;;;;N;;;;;
-12F3;ETHIOPIC SYLLABLE DAA;Lo;0;L;;;;;N;;;;;
-12F4;ETHIOPIC SYLLABLE DEE;Lo;0;L;;;;;N;;;;;
-12F5;ETHIOPIC SYLLABLE DE;Lo;0;L;;;;;N;;;;;
-12F6;ETHIOPIC SYLLABLE DO;Lo;0;L;;;;;N;;;;;
-12F7;ETHIOPIC SYLLABLE DWA;Lo;0;L;;;;;N;;;;;
-12F8;ETHIOPIC SYLLABLE DDA;Lo;0;L;;;;;N;;;;;
-12F9;ETHIOPIC SYLLABLE DDU;Lo;0;L;;;;;N;;;;;
-12FA;ETHIOPIC SYLLABLE DDI;Lo;0;L;;;;;N;;;;;
-12FB;ETHIOPIC SYLLABLE DDAA;Lo;0;L;;;;;N;;;;;
-12FC;ETHIOPIC SYLLABLE DDEE;Lo;0;L;;;;;N;;;;;
-12FD;ETHIOPIC SYLLABLE DDE;Lo;0;L;;;;;N;;;;;
-12FE;ETHIOPIC SYLLABLE DDO;Lo;0;L;;;;;N;;;;;
-12FF;ETHIOPIC SYLLABLE DDWA;Lo;0;L;;;;;N;;;;;
-1300;ETHIOPIC SYLLABLE JA;Lo;0;L;;;;;N;;;;;
-1301;ETHIOPIC SYLLABLE JU;Lo;0;L;;;;;N;;;;;
-1302;ETHIOPIC SYLLABLE JI;Lo;0;L;;;;;N;;;;;
-1303;ETHIOPIC SYLLABLE JAA;Lo;0;L;;;;;N;;;;;
-1304;ETHIOPIC SYLLABLE JEE;Lo;0;L;;;;;N;;;;;
-1305;ETHIOPIC SYLLABLE JE;Lo;0;L;;;;;N;;;;;
-1306;ETHIOPIC SYLLABLE JO;Lo;0;L;;;;;N;;;;;
-1307;ETHIOPIC SYLLABLE JWA;Lo;0;L;;;;;N;;;;;
-1308;ETHIOPIC SYLLABLE GA;Lo;0;L;;;;;N;;;;;
-1309;ETHIOPIC SYLLABLE GU;Lo;0;L;;;;;N;;;;;
-130A;ETHIOPIC SYLLABLE GI;Lo;0;L;;;;;N;;;;;
-130B;ETHIOPIC SYLLABLE GAA;Lo;0;L;;;;;N;;;;;
-130C;ETHIOPIC SYLLABLE GEE;Lo;0;L;;;;;N;;;;;
-130D;ETHIOPIC SYLLABLE GE;Lo;0;L;;;;;N;;;;;
-130E;ETHIOPIC SYLLABLE GO;Lo;0;L;;;;;N;;;;;
-130F;ETHIOPIC SYLLABLE GOA;Lo;0;L;;;;;N;;;;;
-1310;ETHIOPIC SYLLABLE GWA;Lo;0;L;;;;;N;;;;;
-1312;ETHIOPIC SYLLABLE GWI;Lo;0;L;;;;;N;;;;;
-1313;ETHIOPIC SYLLABLE GWAA;Lo;0;L;;;;;N;;;;;
-1314;ETHIOPIC SYLLABLE GWEE;Lo;0;L;;;;;N;;;;;
-1315;ETHIOPIC SYLLABLE GWE;Lo;0;L;;;;;N;;;;;
-1318;ETHIOPIC SYLLABLE GGA;Lo;0;L;;;;;N;;;;;
-1319;ETHIOPIC SYLLABLE GGU;Lo;0;L;;;;;N;;;;;
-131A;ETHIOPIC SYLLABLE GGI;Lo;0;L;;;;;N;;;;;
-131B;ETHIOPIC SYLLABLE GGAA;Lo;0;L;;;;;N;;;;;
-131C;ETHIOPIC SYLLABLE GGEE;Lo;0;L;;;;;N;;;;;
-131D;ETHIOPIC SYLLABLE GGE;Lo;0;L;;;;;N;;;;;
-131E;ETHIOPIC SYLLABLE GGO;Lo;0;L;;;;;N;;;;;
-131F;ETHIOPIC SYLLABLE GGWAA;Lo;0;L;;;;;N;;;;;
-1320;ETHIOPIC SYLLABLE THA;Lo;0;L;;;;;N;;;;;
-1321;ETHIOPIC SYLLABLE THU;Lo;0;L;;;;;N;;;;;
-1322;ETHIOPIC SYLLABLE THI;Lo;0;L;;;;;N;;;;;
-1323;ETHIOPIC SYLLABLE THAA;Lo;0;L;;;;;N;;;;;
-1324;ETHIOPIC SYLLABLE THEE;Lo;0;L;;;;;N;;;;;
-1325;ETHIOPIC SYLLABLE THE;Lo;0;L;;;;;N;;;;;
-1326;ETHIOPIC SYLLABLE THO;Lo;0;L;;;;;N;;;;;
-1327;ETHIOPIC SYLLABLE THWA;Lo;0;L;;;;;N;;;;;
-1328;ETHIOPIC SYLLABLE CHA;Lo;0;L;;;;;N;;;;;
-1329;ETHIOPIC SYLLABLE CHU;Lo;0;L;;;;;N;;;;;
-132A;ETHIOPIC SYLLABLE CHI;Lo;0;L;;;;;N;;;;;
-132B;ETHIOPIC SYLLABLE CHAA;Lo;0;L;;;;;N;;;;;
-132C;ETHIOPIC SYLLABLE CHEE;Lo;0;L;;;;;N;;;;;
-132D;ETHIOPIC SYLLABLE CHE;Lo;0;L;;;;;N;;;;;
-132E;ETHIOPIC SYLLABLE CHO;Lo;0;L;;;;;N;;;;;
-132F;ETHIOPIC SYLLABLE CHWA;Lo;0;L;;;;;N;;;;;
-1330;ETHIOPIC SYLLABLE PHA;Lo;0;L;;;;;N;;;;;
-1331;ETHIOPIC SYLLABLE PHU;Lo;0;L;;;;;N;;;;;
-1332;ETHIOPIC SYLLABLE PHI;Lo;0;L;;;;;N;;;;;
-1333;ETHIOPIC SYLLABLE PHAA;Lo;0;L;;;;;N;;;;;
-1334;ETHIOPIC SYLLABLE PHEE;Lo;0;L;;;;;N;;;;;
-1335;ETHIOPIC SYLLABLE PHE;Lo;0;L;;;;;N;;;;;
-1336;ETHIOPIC SYLLABLE PHO;Lo;0;L;;;;;N;;;;;
-1337;ETHIOPIC SYLLABLE PHWA;Lo;0;L;;;;;N;;;;;
-1338;ETHIOPIC SYLLABLE TSA;Lo;0;L;;;;;N;;;;;
-1339;ETHIOPIC SYLLABLE TSU;Lo;0;L;;;;;N;;;;;
-133A;ETHIOPIC SYLLABLE TSI;Lo;0;L;;;;;N;;;;;
-133B;ETHIOPIC SYLLABLE TSAA;Lo;0;L;;;;;N;;;;;
-133C;ETHIOPIC SYLLABLE TSEE;Lo;0;L;;;;;N;;;;;
-133D;ETHIOPIC SYLLABLE TSE;Lo;0;L;;;;;N;;;;;
-133E;ETHIOPIC SYLLABLE TSO;Lo;0;L;;;;;N;;;;;
-133F;ETHIOPIC SYLLABLE TSWA;Lo;0;L;;;;;N;;;;;
-1340;ETHIOPIC SYLLABLE TZA;Lo;0;L;;;;;N;;;;;
-1341;ETHIOPIC SYLLABLE TZU;Lo;0;L;;;;;N;;;;;
-1342;ETHIOPIC SYLLABLE TZI;Lo;0;L;;;;;N;;;;;
-1343;ETHIOPIC SYLLABLE TZAA;Lo;0;L;;;;;N;;;;;
-1344;ETHIOPIC SYLLABLE TZEE;Lo;0;L;;;;;N;;;;;
-1345;ETHIOPIC SYLLABLE TZE;Lo;0;L;;;;;N;;;;;
-1346;ETHIOPIC SYLLABLE TZO;Lo;0;L;;;;;N;;;;;
-1347;ETHIOPIC SYLLABLE TZOA;Lo;0;L;;;;;N;;;;;
-1348;ETHIOPIC SYLLABLE FA;Lo;0;L;;;;;N;;;;;
-1349;ETHIOPIC SYLLABLE FU;Lo;0;L;;;;;N;;;;;
-134A;ETHIOPIC SYLLABLE FI;Lo;0;L;;;;;N;;;;;
-134B;ETHIOPIC SYLLABLE FAA;Lo;0;L;;;;;N;;;;;
-134C;ETHIOPIC SYLLABLE FEE;Lo;0;L;;;;;N;;;;;
-134D;ETHIOPIC SYLLABLE FE;Lo;0;L;;;;;N;;;;;
-134E;ETHIOPIC SYLLABLE FO;Lo;0;L;;;;;N;;;;;
-134F;ETHIOPIC SYLLABLE FWA;Lo;0;L;;;;;N;;;;;
-1350;ETHIOPIC SYLLABLE PA;Lo;0;L;;;;;N;;;;;
-1351;ETHIOPIC SYLLABLE PU;Lo;0;L;;;;;N;;;;;
-1352;ETHIOPIC SYLLABLE PI;Lo;0;L;;;;;N;;;;;
-1353;ETHIOPIC SYLLABLE PAA;Lo;0;L;;;;;N;;;;;
-1354;ETHIOPIC SYLLABLE PEE;Lo;0;L;;;;;N;;;;;
-1355;ETHIOPIC SYLLABLE PE;Lo;0;L;;;;;N;;;;;
-1356;ETHIOPIC SYLLABLE PO;Lo;0;L;;;;;N;;;;;
-1357;ETHIOPIC SYLLABLE PWA;Lo;0;L;;;;;N;;;;;
-1358;ETHIOPIC SYLLABLE RYA;Lo;0;L;;;;;N;;;;;
-1359;ETHIOPIC SYLLABLE MYA;Lo;0;L;;;;;N;;;;;
-135A;ETHIOPIC SYLLABLE FYA;Lo;0;L;;;;;N;;;;;
-135D;ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK;Mn;230;NSM;;;;;N;;;;;
-135E;ETHIOPIC COMBINING VOWEL LENGTH MARK;Mn;230;NSM;;;;;N;;;;;
-135F;ETHIOPIC COMBINING GEMINATION MARK;Mn;230;NSM;;;;;N;;;;;
-1360;ETHIOPIC SECTION MARK;Po;0;L;;;;;N;;;;;
-1361;ETHIOPIC WORDSPACE;Po;0;L;;;;;N;;;;;
-1362;ETHIOPIC FULL STOP;Po;0;L;;;;;N;;;;;
-1363;ETHIOPIC COMMA;Po;0;L;;;;;N;;;;;
-1364;ETHIOPIC SEMICOLON;Po;0;L;;;;;N;;;;;
-1365;ETHIOPIC COLON;Po;0;L;;;;;N;;;;;
-1366;ETHIOPIC PREFACE COLON;Po;0;L;;;;;N;;;;;
-1367;ETHIOPIC QUESTION MARK;Po;0;L;;;;;N;;;;;
-1368;ETHIOPIC PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;
-1369;ETHIOPIC DIGIT ONE;No;0;L;;;1;1;N;;;;;
-136A;ETHIOPIC DIGIT TWO;No;0;L;;;2;2;N;;;;;
-136B;ETHIOPIC DIGIT THREE;No;0;L;;;3;3;N;;;;;
-136C;ETHIOPIC DIGIT FOUR;No;0;L;;;4;4;N;;;;;
-136D;ETHIOPIC DIGIT FIVE;No;0;L;;;5;5;N;;;;;
-136E;ETHIOPIC DIGIT SIX;No;0;L;;;6;6;N;;;;;
-136F;ETHIOPIC DIGIT SEVEN;No;0;L;;;7;7;N;;;;;
-1370;ETHIOPIC DIGIT EIGHT;No;0;L;;;8;8;N;;;;;
-1371;ETHIOPIC DIGIT NINE;No;0;L;;;9;9;N;;;;;
-1372;ETHIOPIC NUMBER TEN;No;0;L;;;;10;N;;;;;
-1373;ETHIOPIC NUMBER TWENTY;No;0;L;;;;20;N;;;;;
-1374;ETHIOPIC NUMBER THIRTY;No;0;L;;;;30;N;;;;;
-1375;ETHIOPIC NUMBER FORTY;No;0;L;;;;40;N;;;;;
-1376;ETHIOPIC NUMBER FIFTY;No;0;L;;;;50;N;;;;;
-1377;ETHIOPIC NUMBER SIXTY;No;0;L;;;;60;N;;;;;
-1378;ETHIOPIC NUMBER SEVENTY;No;0;L;;;;70;N;;;;;
-1379;ETHIOPIC NUMBER EIGHTY;No;0;L;;;;80;N;;;;;
-137A;ETHIOPIC NUMBER NINETY;No;0;L;;;;90;N;;;;;
-137B;ETHIOPIC NUMBER HUNDRED;No;0;L;;;;100;N;;;;;
-137C;ETHIOPIC NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;;
-1380;ETHIOPIC SYLLABLE SEBATBEIT MWA;Lo;0;L;;;;;N;;;;;
-1381;ETHIOPIC SYLLABLE MWI;Lo;0;L;;;;;N;;;;;
-1382;ETHIOPIC SYLLABLE MWEE;Lo;0;L;;;;;N;;;;;
-1383;ETHIOPIC SYLLABLE MWE;Lo;0;L;;;;;N;;;;;
-1384;ETHIOPIC SYLLABLE SEBATBEIT BWA;Lo;0;L;;;;;N;;;;;
-1385;ETHIOPIC SYLLABLE BWI;Lo;0;L;;;;;N;;;;;
-1386;ETHIOPIC SYLLABLE BWEE;Lo;0;L;;;;;N;;;;;
-1387;ETHIOPIC SYLLABLE BWE;Lo;0;L;;;;;N;;;;;
-1388;ETHIOPIC SYLLABLE SEBATBEIT FWA;Lo;0;L;;;;;N;;;;;
-1389;ETHIOPIC SYLLABLE FWI;Lo;0;L;;;;;N;;;;;
-138A;ETHIOPIC SYLLABLE FWEE;Lo;0;L;;;;;N;;;;;
-138B;ETHIOPIC SYLLABLE FWE;Lo;0;L;;;;;N;;;;;
-138C;ETHIOPIC SYLLABLE SEBATBEIT PWA;Lo;0;L;;;;;N;;;;;
-138D;ETHIOPIC SYLLABLE PWI;Lo;0;L;;;;;N;;;;;
-138E;ETHIOPIC SYLLABLE PWEE;Lo;0;L;;;;;N;;;;;
-138F;ETHIOPIC SYLLABLE PWE;Lo;0;L;;;;;N;;;;;
-1390;ETHIOPIC TONAL MARK YIZET;So;0;ON;;;;;N;;;;;
-1391;ETHIOPIC TONAL MARK DERET;So;0;ON;;;;;N;;;;;
-1392;ETHIOPIC TONAL MARK RIKRIK;So;0;ON;;;;;N;;;;;
-1393;ETHIOPIC TONAL MARK SHORT RIKRIK;So;0;ON;;;;;N;;;;;
-1394;ETHIOPIC TONAL MARK DIFAT;So;0;ON;;;;;N;;;;;
-1395;ETHIOPIC TONAL MARK KENAT;So;0;ON;;;;;N;;;;;
-1396;ETHIOPIC TONAL MARK CHIRET;So;0;ON;;;;;N;;;;;
-1397;ETHIOPIC TONAL MARK HIDET;So;0;ON;;;;;N;;;;;
-1398;ETHIOPIC TONAL MARK DERET-HIDET;So;0;ON;;;;;N;;;;;
-1399;ETHIOPIC TONAL MARK KURT;So;0;ON;;;;;N;;;;;
-13A0;CHEROKEE LETTER A;Lo;0;L;;;;;N;;;;;
-13A1;CHEROKEE LETTER E;Lo;0;L;;;;;N;;;;;
-13A2;CHEROKEE LETTER I;Lo;0;L;;;;;N;;;;;
-13A3;CHEROKEE LETTER O;Lo;0;L;;;;;N;;;;;
-13A4;CHEROKEE LETTER U;Lo;0;L;;;;;N;;;;;
-13A5;CHEROKEE LETTER V;Lo;0;L;;;;;N;;;;;
-13A6;CHEROKEE LETTER GA;Lo;0;L;;;;;N;;;;;
-13A7;CHEROKEE LETTER KA;Lo;0;L;;;;;N;;;;;
-13A8;CHEROKEE LETTER GE;Lo;0;L;;;;;N;;;;;
-13A9;CHEROKEE LETTER GI;Lo;0;L;;;;;N;;;;;
-13AA;CHEROKEE LETTER GO;Lo;0;L;;;;;N;;;;;
-13AB;CHEROKEE LETTER GU;Lo;0;L;;;;;N;;;;;
-13AC;CHEROKEE LETTER GV;Lo;0;L;;;;;N;;;;;
-13AD;CHEROKEE LETTER HA;Lo;0;L;;;;;N;;;;;
-13AE;CHEROKEE LETTER HE;Lo;0;L;;;;;N;;;;;
-13AF;CHEROKEE LETTER HI;Lo;0;L;;;;;N;;;;;
-13B0;CHEROKEE LETTER HO;Lo;0;L;;;;;N;;;;;
-13B1;CHEROKEE LETTER HU;Lo;0;L;;;;;N;;;;;
-13B2;CHEROKEE LETTER HV;Lo;0;L;;;;;N;;;;;
-13B3;CHEROKEE LETTER LA;Lo;0;L;;;;;N;;;;;
-13B4;CHEROKEE LETTER LE;Lo;0;L;;;;;N;;;;;
-13B5;CHEROKEE LETTER LI;Lo;0;L;;;;;N;;;;;
-13B6;CHEROKEE LETTER LO;Lo;0;L;;;;;N;;;;;
-13B7;CHEROKEE LETTER LU;Lo;0;L;;;;;N;;;;;
-13B8;CHEROKEE LETTER LV;Lo;0;L;;;;;N;;;;;
-13B9;CHEROKEE LETTER MA;Lo;0;L;;;;;N;;;;;
-13BA;CHEROKEE LETTER ME;Lo;0;L;;;;;N;;;;;
-13BB;CHEROKEE LETTER MI;Lo;0;L;;;;;N;;;;;
-13BC;CHEROKEE LETTER MO;Lo;0;L;;;;;N;;;;;
-13BD;CHEROKEE LETTER MU;Lo;0;L;;;;;N;;;;;
-13BE;CHEROKEE LETTER NA;Lo;0;L;;;;;N;;;;;
-13BF;CHEROKEE LETTER HNA;Lo;0;L;;;;;N;;;;;
-13C0;CHEROKEE LETTER NAH;Lo;0;L;;;;;N;;;;;
-13C1;CHEROKEE LETTER NE;Lo;0;L;;;;;N;;;;;
-13C2;CHEROKEE LETTER NI;Lo;0;L;;;;;N;;;;;
-13C3;CHEROKEE LETTER NO;Lo;0;L;;;;;N;;;;;
-13C4;CHEROKEE LETTER NU;Lo;0;L;;;;;N;;;;;
-13C5;CHEROKEE LETTER NV;Lo;0;L;;;;;N;;;;;
-13C6;CHEROKEE LETTER QUA;Lo;0;L;;;;;N;;;;;
-13C7;CHEROKEE LETTER QUE;Lo;0;L;;;;;N;;;;;
-13C8;CHEROKEE LETTER QUI;Lo;0;L;;;;;N;;;;;
-13C9;CHEROKEE LETTER QUO;Lo;0;L;;;;;N;;;;;
-13CA;CHEROKEE LETTER QUU;Lo;0;L;;;;;N;;;;;
-13CB;CHEROKEE LETTER QUV;Lo;0;L;;;;;N;;;;;
-13CC;CHEROKEE LETTER SA;Lo;0;L;;;;;N;;;;;
-13CD;CHEROKEE LETTER S;Lo;0;L;;;;;N;;;;;
-13CE;CHEROKEE LETTER SE;Lo;0;L;;;;;N;;;;;
-13CF;CHEROKEE LETTER SI;Lo;0;L;;;;;N;;;;;
-13D0;CHEROKEE LETTER SO;Lo;0;L;;;;;N;;;;;
-13D1;CHEROKEE LETTER SU;Lo;0;L;;;;;N;;;;;
-13D2;CHEROKEE LETTER SV;Lo;0;L;;;;;N;;;;;
-13D3;CHEROKEE LETTER DA;Lo;0;L;;;;;N;;;;;
-13D4;CHEROKEE LETTER TA;Lo;0;L;;;;;N;;;;;
-13D5;CHEROKEE LETTER DE;Lo;0;L;;;;;N;;;;;
-13D6;CHEROKEE LETTER TE;Lo;0;L;;;;;N;;;;;
-13D7;CHEROKEE LETTER DI;Lo;0;L;;;;;N;;;;;
-13D8;CHEROKEE LETTER TI;Lo;0;L;;;;;N;;;;;
-13D9;CHEROKEE LETTER DO;Lo;0;L;;;;;N;;;;;
-13DA;CHEROKEE LETTER DU;Lo;0;L;;;;;N;;;;;
-13DB;CHEROKEE LETTER DV;Lo;0;L;;;;;N;;;;;
-13DC;CHEROKEE LETTER DLA;Lo;0;L;;;;;N;;;;;
-13DD;CHEROKEE LETTER TLA;Lo;0;L;;;;;N;;;;;
-13DE;CHEROKEE LETTER TLE;Lo;0;L;;;;;N;;;;;
-13DF;CHEROKEE LETTER TLI;Lo;0;L;;;;;N;;;;;
-13E0;CHEROKEE LETTER TLO;Lo;0;L;;;;;N;;;;;
-13E1;CHEROKEE LETTER TLU;Lo;0;L;;;;;N;;;;;
-13E2;CHEROKEE LETTER TLV;Lo;0;L;;;;;N;;;;;
-13E3;CHEROKEE LETTER TSA;Lo;0;L;;;;;N;;;;;
-13E4;CHEROKEE LETTER TSE;Lo;0;L;;;;;N;;;;;
-13E5;CHEROKEE LETTER TSI;Lo;0;L;;;;;N;;;;;
-13E6;CHEROKEE LETTER TSO;Lo;0;L;;;;;N;;;;;
-13E7;CHEROKEE LETTER TSU;Lo;0;L;;;;;N;;;;;
-13E8;CHEROKEE LETTER TSV;Lo;0;L;;;;;N;;;;;
-13E9;CHEROKEE LETTER WA;Lo;0;L;;;;;N;;;;;
-13EA;CHEROKEE LETTER WE;Lo;0;L;;;;;N;;;;;
-13EB;CHEROKEE LETTER WI;Lo;0;L;;;;;N;;;;;
-13EC;CHEROKEE LETTER WO;Lo;0;L;;;;;N;;;;;
-13ED;CHEROKEE LETTER WU;Lo;0;L;;;;;N;;;;;
-13EE;CHEROKEE LETTER WV;Lo;0;L;;;;;N;;;;;
-13EF;CHEROKEE LETTER YA;Lo;0;L;;;;;N;;;;;
-13F0;CHEROKEE LETTER YE;Lo;0;L;;;;;N;;;;;
-13F1;CHEROKEE LETTER YI;Lo;0;L;;;;;N;;;;;
-13F2;CHEROKEE LETTER YO;Lo;0;L;;;;;N;;;;;
-13F3;CHEROKEE LETTER YU;Lo;0;L;;;;;N;;;;;
-13F4;CHEROKEE LETTER YV;Lo;0;L;;;;;N;;;;;
-1400;CANADIAN SYLLABICS HYPHEN;Pd;0;ON;;;;;N;;;;;
-1401;CANADIAN SYLLABICS E;Lo;0;L;;;;;N;;;;;
-1402;CANADIAN SYLLABICS AAI;Lo;0;L;;;;;N;;;;;
-1403;CANADIAN SYLLABICS I;Lo;0;L;;;;;N;;;;;
-1404;CANADIAN SYLLABICS II;Lo;0;L;;;;;N;;;;;
-1405;CANADIAN SYLLABICS O;Lo;0;L;;;;;N;;;;;
-1406;CANADIAN SYLLABICS OO;Lo;0;L;;;;;N;;;;;
-1407;CANADIAN SYLLABICS Y-CREE OO;Lo;0;L;;;;;N;;;;;
-1408;CANADIAN SYLLABICS CARRIER EE;Lo;0;L;;;;;N;;;;;
-1409;CANADIAN SYLLABICS CARRIER I;Lo;0;L;;;;;N;;;;;
-140A;CANADIAN SYLLABICS A;Lo;0;L;;;;;N;;;;;
-140B;CANADIAN SYLLABICS AA;Lo;0;L;;;;;N;;;;;
-140C;CANADIAN SYLLABICS WE;Lo;0;L;;;;;N;;;;;
-140D;CANADIAN SYLLABICS WEST-CREE WE;Lo;0;L;;;;;N;;;;;
-140E;CANADIAN SYLLABICS WI;Lo;0;L;;;;;N;;;;;
-140F;CANADIAN SYLLABICS WEST-CREE WI;Lo;0;L;;;;;N;;;;;
-1410;CANADIAN SYLLABICS WII;Lo;0;L;;;;;N;;;;;
-1411;CANADIAN SYLLABICS WEST-CREE WII;Lo;0;L;;;;;N;;;;;
-1412;CANADIAN SYLLABICS WO;Lo;0;L;;;;;N;;;;;
-1413;CANADIAN SYLLABICS WEST-CREE WO;Lo;0;L;;;;;N;;;;;
-1414;CANADIAN SYLLABICS WOO;Lo;0;L;;;;;N;;;;;
-1415;CANADIAN SYLLABICS WEST-CREE WOO;Lo;0;L;;;;;N;;;;;
-1416;CANADIAN SYLLABICS NASKAPI WOO;Lo;0;L;;;;;N;;;;;
-1417;CANADIAN SYLLABICS WA;Lo;0;L;;;;;N;;;;;
-1418;CANADIAN SYLLABICS WEST-CREE WA;Lo;0;L;;;;;N;;;;;
-1419;CANADIAN SYLLABICS WAA;Lo;0;L;;;;;N;;;;;
-141A;CANADIAN SYLLABICS WEST-CREE WAA;Lo;0;L;;;;;N;;;;;
-141B;CANADIAN SYLLABICS NASKAPI WAA;Lo;0;L;;;;;N;;;;;
-141C;CANADIAN SYLLABICS AI;Lo;0;L;;;;;N;;;;;
-141D;CANADIAN SYLLABICS Y-CREE W;Lo;0;L;;;;;N;;;;;
-141E;CANADIAN SYLLABICS GLOTTAL STOP;Lo;0;L;;;;;N;;;;;
-141F;CANADIAN SYLLABICS FINAL ACUTE;Lo;0;L;;;;;N;;;;;
-1420;CANADIAN SYLLABICS FINAL GRAVE;Lo;0;L;;;;;N;;;;;
-1421;CANADIAN SYLLABICS FINAL BOTTOM HALF RING;Lo;0;L;;;;;N;;;;;
-1422;CANADIAN SYLLABICS FINAL TOP HALF RING;Lo;0;L;;;;;N;;;;;
-1423;CANADIAN SYLLABICS FINAL RIGHT HALF RING;Lo;0;L;;;;;N;;;;;
-1424;CANADIAN SYLLABICS FINAL RING;Lo;0;L;;;;;N;;;;;
-1425;CANADIAN SYLLABICS FINAL DOUBLE ACUTE;Lo;0;L;;;;;N;;;;;
-1426;CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES;Lo;0;L;;;;;N;;;;;
-1427;CANADIAN SYLLABICS FINAL MIDDLE DOT;Lo;0;L;;;;;N;;;;;
-1428;CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE;Lo;0;L;;;;;N;;;;;
-1429;CANADIAN SYLLABICS FINAL PLUS;Lo;0;L;;;;;N;;;;;
-142A;CANADIAN SYLLABICS FINAL DOWN TACK;Lo;0;L;;;;;N;;;;;
-142B;CANADIAN SYLLABICS EN;Lo;0;L;;;;;N;;;;;
-142C;CANADIAN SYLLABICS IN;Lo;0;L;;;;;N;;;;;
-142D;CANADIAN SYLLABICS ON;Lo;0;L;;;;;N;;;;;
-142E;CANADIAN SYLLABICS AN;Lo;0;L;;;;;N;;;;;
-142F;CANADIAN SYLLABICS PE;Lo;0;L;;;;;N;;;;;
-1430;CANADIAN SYLLABICS PAAI;Lo;0;L;;;;;N;;;;;
-1431;CANADIAN SYLLABICS PI;Lo;0;L;;;;;N;;;;;
-1432;CANADIAN SYLLABICS PII;Lo;0;L;;;;;N;;;;;
-1433;CANADIAN SYLLABICS PO;Lo;0;L;;;;;N;;;;;
-1434;CANADIAN SYLLABICS POO;Lo;0;L;;;;;N;;;;;
-1435;CANADIAN SYLLABICS Y-CREE POO;Lo;0;L;;;;;N;;;;;
-1436;CANADIAN SYLLABICS CARRIER HEE;Lo;0;L;;;;;N;;;;;
-1437;CANADIAN SYLLABICS CARRIER HI;Lo;0;L;;;;;N;;;;;
-1438;CANADIAN SYLLABICS PA;Lo;0;L;;;;;N;;;;;
-1439;CANADIAN SYLLABICS PAA;Lo;0;L;;;;;N;;;;;
-143A;CANADIAN SYLLABICS PWE;Lo;0;L;;;;;N;;;;;
-143B;CANADIAN SYLLABICS WEST-CREE PWE;Lo;0;L;;;;;N;;;;;
-143C;CANADIAN SYLLABICS PWI;Lo;0;L;;;;;N;;;;;
-143D;CANADIAN SYLLABICS WEST-CREE PWI;Lo;0;L;;;;;N;;;;;
-143E;CANADIAN SYLLABICS PWII;Lo;0;L;;;;;N;;;;;
-143F;CANADIAN SYLLABICS WEST-CREE PWII;Lo;0;L;;;;;N;;;;;
-1440;CANADIAN SYLLABICS PWO;Lo;0;L;;;;;N;;;;;
-1441;CANADIAN SYLLABICS WEST-CREE PWO;Lo;0;L;;;;;N;;;;;
-1442;CANADIAN SYLLABICS PWOO;Lo;0;L;;;;;N;;;;;
-1443;CANADIAN SYLLABICS WEST-CREE PWOO;Lo;0;L;;;;;N;;;;;
-1444;CANADIAN SYLLABICS PWA;Lo;0;L;;;;;N;;;;;
-1445;CANADIAN SYLLABICS WEST-CREE PWA;Lo;0;L;;;;;N;;;;;
-1446;CANADIAN SYLLABICS PWAA;Lo;0;L;;;;;N;;;;;
-1447;CANADIAN SYLLABICS WEST-CREE PWAA;Lo;0;L;;;;;N;;;;;
-1448;CANADIAN SYLLABICS Y-CREE PWAA;Lo;0;L;;;;;N;;;;;
-1449;CANADIAN SYLLABICS P;Lo;0;L;;;;;N;;;;;
-144A;CANADIAN SYLLABICS WEST-CREE P;Lo;0;L;;;;;N;;;;;
-144B;CANADIAN SYLLABICS CARRIER H;Lo;0;L;;;;;N;;;;;
-144C;CANADIAN SYLLABICS TE;Lo;0;L;;;;;N;;;;;
-144D;CANADIAN SYLLABICS TAAI;Lo;0;L;;;;;N;;;;;
-144E;CANADIAN SYLLABICS TI;Lo;0;L;;;;;N;;;;;
-144F;CANADIAN SYLLABICS TII;Lo;0;L;;;;;N;;;;;
-1450;CANADIAN SYLLABICS TO;Lo;0;L;;;;;N;;;;;
-1451;CANADIAN SYLLABICS TOO;Lo;0;L;;;;;N;;;;;
-1452;CANADIAN SYLLABICS Y-CREE TOO;Lo;0;L;;;;;N;;;;;
-1453;CANADIAN SYLLABICS CARRIER DEE;Lo;0;L;;;;;N;;;;;
-1454;CANADIAN SYLLABICS CARRIER DI;Lo;0;L;;;;;N;;;;;
-1455;CANADIAN SYLLABICS TA;Lo;0;L;;;;;N;;;;;
-1456;CANADIAN SYLLABICS TAA;Lo;0;L;;;;;N;;;;;
-1457;CANADIAN SYLLABICS TWE;Lo;0;L;;;;;N;;;;;
-1458;CANADIAN SYLLABICS WEST-CREE TWE;Lo;0;L;;;;;N;;;;;
-1459;CANADIAN SYLLABICS TWI;Lo;0;L;;;;;N;;;;;
-145A;CANADIAN SYLLABICS WEST-CREE TWI;Lo;0;L;;;;;N;;;;;
-145B;CANADIAN SYLLABICS TWII;Lo;0;L;;;;;N;;;;;
-145C;CANADIAN SYLLABICS WEST-CREE TWII;Lo;0;L;;;;;N;;;;;
-145D;CANADIAN SYLLABICS TWO;Lo;0;L;;;;;N;;;;;
-145E;CANADIAN SYLLABICS WEST-CREE TWO;Lo;0;L;;;;;N;;;;;
-145F;CANADIAN SYLLABICS TWOO;Lo;0;L;;;;;N;;;;;
-1460;CANADIAN SYLLABICS WEST-CREE TWOO;Lo;0;L;;;;;N;;;;;
-1461;CANADIAN SYLLABICS TWA;Lo;0;L;;;;;N;;;;;
-1462;CANADIAN SYLLABICS WEST-CREE TWA;Lo;0;L;;;;;N;;;;;
-1463;CANADIAN SYLLABICS TWAA;Lo;0;L;;;;;N;;;;;
-1464;CANADIAN SYLLABICS WEST-CREE TWAA;Lo;0;L;;;;;N;;;;;
-1465;CANADIAN SYLLABICS NASKAPI TWAA;Lo;0;L;;;;;N;;;;;
-1466;CANADIAN SYLLABICS T;Lo;0;L;;;;;N;;;;;
-1467;CANADIAN SYLLABICS TTE;Lo;0;L;;;;;N;;;;;
-1468;CANADIAN SYLLABICS TTI;Lo;0;L;;;;;N;;;;;
-1469;CANADIAN SYLLABICS TTO;Lo;0;L;;;;;N;;;;;
-146A;CANADIAN SYLLABICS TTA;Lo;0;L;;;;;N;;;;;
-146B;CANADIAN SYLLABICS KE;Lo;0;L;;;;;N;;;;;
-146C;CANADIAN SYLLABICS KAAI;Lo;0;L;;;;;N;;;;;
-146D;CANADIAN SYLLABICS KI;Lo;0;L;;;;;N;;;;;
-146E;CANADIAN SYLLABICS KII;Lo;0;L;;;;;N;;;;;
-146F;CANADIAN SYLLABICS KO;Lo;0;L;;;;;N;;;;;
-1470;CANADIAN SYLLABICS KOO;Lo;0;L;;;;;N;;;;;
-1471;CANADIAN SYLLABICS Y-CREE KOO;Lo;0;L;;;;;N;;;;;
-1472;CANADIAN SYLLABICS KA;Lo;0;L;;;;;N;;;;;
-1473;CANADIAN SYLLABICS KAA;Lo;0;L;;;;;N;;;;;
-1474;CANADIAN SYLLABICS KWE;Lo;0;L;;;;;N;;;;;
-1475;CANADIAN SYLLABICS WEST-CREE KWE;Lo;0;L;;;;;N;;;;;
-1476;CANADIAN SYLLABICS KWI;Lo;0;L;;;;;N;;;;;
-1477;CANADIAN SYLLABICS WEST-CREE KWI;Lo;0;L;;;;;N;;;;;
-1478;CANADIAN SYLLABICS KWII;Lo;0;L;;;;;N;;;;;
-1479;CANADIAN SYLLABICS WEST-CREE KWII;Lo;0;L;;;;;N;;;;;
-147A;CANADIAN SYLLABICS KWO;Lo;0;L;;;;;N;;;;;
-147B;CANADIAN SYLLABICS WEST-CREE KWO;Lo;0;L;;;;;N;;;;;
-147C;CANADIAN SYLLABICS KWOO;Lo;0;L;;;;;N;;;;;
-147D;CANADIAN SYLLABICS WEST-CREE KWOO;Lo;0;L;;;;;N;;;;;
-147E;CANADIAN SYLLABICS KWA;Lo;0;L;;;;;N;;;;;
-147F;CANADIAN SYLLABICS WEST-CREE KWA;Lo;0;L;;;;;N;;;;;
-1480;CANADIAN SYLLABICS KWAA;Lo;0;L;;;;;N;;;;;
-1481;CANADIAN SYLLABICS WEST-CREE KWAA;Lo;0;L;;;;;N;;;;;
-1482;CANADIAN SYLLABICS NASKAPI KWAA;Lo;0;L;;;;;N;;;;;
-1483;CANADIAN SYLLABICS K;Lo;0;L;;;;;N;;;;;
-1484;CANADIAN SYLLABICS KW;Lo;0;L;;;;;N;;;;;
-1485;CANADIAN SYLLABICS SOUTH-SLAVEY KEH;Lo;0;L;;;;;N;;;;;
-1486;CANADIAN SYLLABICS SOUTH-SLAVEY KIH;Lo;0;L;;;;;N;;;;;
-1487;CANADIAN SYLLABICS SOUTH-SLAVEY KOH;Lo;0;L;;;;;N;;;;;
-1488;CANADIAN SYLLABICS SOUTH-SLAVEY KAH;Lo;0;L;;;;;N;;;;;
-1489;CANADIAN SYLLABICS CE;Lo;0;L;;;;;N;;;;;
-148A;CANADIAN SYLLABICS CAAI;Lo;0;L;;;;;N;;;;;
-148B;CANADIAN SYLLABICS CI;Lo;0;L;;;;;N;;;;;
-148C;CANADIAN SYLLABICS CII;Lo;0;L;;;;;N;;;;;
-148D;CANADIAN SYLLABICS CO;Lo;0;L;;;;;N;;;;;
-148E;CANADIAN SYLLABICS COO;Lo;0;L;;;;;N;;;;;
-148F;CANADIAN SYLLABICS Y-CREE COO;Lo;0;L;;;;;N;;;;;
-1490;CANADIAN SYLLABICS CA;Lo;0;L;;;;;N;;;;;
-1491;CANADIAN SYLLABICS CAA;Lo;0;L;;;;;N;;;;;
-1492;CANADIAN SYLLABICS CWE;Lo;0;L;;;;;N;;;;;
-1493;CANADIAN SYLLABICS WEST-CREE CWE;Lo;0;L;;;;;N;;;;;
-1494;CANADIAN SYLLABICS CWI;Lo;0;L;;;;;N;;;;;
-1495;CANADIAN SYLLABICS WEST-CREE CWI;Lo;0;L;;;;;N;;;;;
-1496;CANADIAN SYLLABICS CWII;Lo;0;L;;;;;N;;;;;
-1497;CANADIAN SYLLABICS WEST-CREE CWII;Lo;0;L;;;;;N;;;;;
-1498;CANADIAN SYLLABICS CWO;Lo;0;L;;;;;N;;;;;
-1499;CANADIAN SYLLABICS WEST-CREE CWO;Lo;0;L;;;;;N;;;;;
-149A;CANADIAN SYLLABICS CWOO;Lo;0;L;;;;;N;;;;;
-149B;CANADIAN SYLLABICS WEST-CREE CWOO;Lo;0;L;;;;;N;;;;;
-149C;CANADIAN SYLLABICS CWA;Lo;0;L;;;;;N;;;;;
-149D;CANADIAN SYLLABICS WEST-CREE CWA;Lo;0;L;;;;;N;;;;;
-149E;CANADIAN SYLLABICS CWAA;Lo;0;L;;;;;N;;;;;
-149F;CANADIAN SYLLABICS WEST-CREE CWAA;Lo;0;L;;;;;N;;;;;
-14A0;CANADIAN SYLLABICS NASKAPI CWAA;Lo;0;L;;;;;N;;;;;
-14A1;CANADIAN SYLLABICS C;Lo;0;L;;;;;N;;;;;
-14A2;CANADIAN SYLLABICS SAYISI TH;Lo;0;L;;;;;N;;;;;
-14A3;CANADIAN SYLLABICS ME;Lo;0;L;;;;;N;;;;;
-14A4;CANADIAN SYLLABICS MAAI;Lo;0;L;;;;;N;;;;;
-14A5;CANADIAN SYLLABICS MI;Lo;0;L;;;;;N;;;;;
-14A6;CANADIAN SYLLABICS MII;Lo;0;L;;;;;N;;;;;
-14A7;CANADIAN SYLLABICS MO;Lo;0;L;;;;;N;;;;;
-14A8;CANADIAN SYLLABICS MOO;Lo;0;L;;;;;N;;;;;
-14A9;CANADIAN SYLLABICS Y-CREE MOO;Lo;0;L;;;;;N;;;;;
-14AA;CANADIAN SYLLABICS MA;Lo;0;L;;;;;N;;;;;
-14AB;CANADIAN SYLLABICS MAA;Lo;0;L;;;;;N;;;;;
-14AC;CANADIAN SYLLABICS MWE;Lo;0;L;;;;;N;;;;;
-14AD;CANADIAN SYLLABICS WEST-CREE MWE;Lo;0;L;;;;;N;;;;;
-14AE;CANADIAN SYLLABICS MWI;Lo;0;L;;;;;N;;;;;
-14AF;CANADIAN SYLLABICS WEST-CREE MWI;Lo;0;L;;;;;N;;;;;
-14B0;CANADIAN SYLLABICS MWII;Lo;0;L;;;;;N;;;;;
-14B1;CANADIAN SYLLABICS WEST-CREE MWII;Lo;0;L;;;;;N;;;;;
-14B2;CANADIAN SYLLABICS MWO;Lo;0;L;;;;;N;;;;;
-14B3;CANADIAN SYLLABICS WEST-CREE MWO;Lo;0;L;;;;;N;;;;;
-14B4;CANADIAN SYLLABICS MWOO;Lo;0;L;;;;;N;;;;;
-14B5;CANADIAN SYLLABICS WEST-CREE MWOO;Lo;0;L;;;;;N;;;;;
-14B6;CANADIAN SYLLABICS MWA;Lo;0;L;;;;;N;;;;;
-14B7;CANADIAN SYLLABICS WEST-CREE MWA;Lo;0;L;;;;;N;;;;;
-14B8;CANADIAN SYLLABICS MWAA;Lo;0;L;;;;;N;;;;;
-14B9;CANADIAN SYLLABICS WEST-CREE MWAA;Lo;0;L;;;;;N;;;;;
-14BA;CANADIAN SYLLABICS NASKAPI MWAA;Lo;0;L;;;;;N;;;;;
-14BB;CANADIAN SYLLABICS M;Lo;0;L;;;;;N;;;;;
-14BC;CANADIAN SYLLABICS WEST-CREE M;Lo;0;L;;;;;N;;;;;
-14BD;CANADIAN SYLLABICS MH;Lo;0;L;;;;;N;;;;;
-14BE;CANADIAN SYLLABICS ATHAPASCAN M;Lo;0;L;;;;;N;;;;;
-14BF;CANADIAN SYLLABICS SAYISI M;Lo;0;L;;;;;N;;;;;
-14C0;CANADIAN SYLLABICS NE;Lo;0;L;;;;;N;;;;;
-14C1;CANADIAN SYLLABICS NAAI;Lo;0;L;;;;;N;;;;;
-14C2;CANADIAN SYLLABICS NI;Lo;0;L;;;;;N;;;;;
-14C3;CANADIAN SYLLABICS NII;Lo;0;L;;;;;N;;;;;
-14C4;CANADIAN SYLLABICS NO;Lo;0;L;;;;;N;;;;;
-14C5;CANADIAN SYLLABICS NOO;Lo;0;L;;;;;N;;;;;
-14C6;CANADIAN SYLLABICS Y-CREE NOO;Lo;0;L;;;;;N;;;;;
-14C7;CANADIAN SYLLABICS NA;Lo;0;L;;;;;N;;;;;
-14C8;CANADIAN SYLLABICS NAA;Lo;0;L;;;;;N;;;;;
-14C9;CANADIAN SYLLABICS NWE;Lo;0;L;;;;;N;;;;;
-14CA;CANADIAN SYLLABICS WEST-CREE NWE;Lo;0;L;;;;;N;;;;;
-14CB;CANADIAN SYLLABICS NWA;Lo;0;L;;;;;N;;;;;
-14CC;CANADIAN SYLLABICS WEST-CREE NWA;Lo;0;L;;;;;N;;;;;
-14CD;CANADIAN SYLLABICS NWAA;Lo;0;L;;;;;N;;;;;
-14CE;CANADIAN SYLLABICS WEST-CREE NWAA;Lo;0;L;;;;;N;;;;;
-14CF;CANADIAN SYLLABICS NASKAPI NWAA;Lo;0;L;;;;;N;;;;;
-14D0;CANADIAN SYLLABICS N;Lo;0;L;;;;;N;;;;;
-14D1;CANADIAN SYLLABICS CARRIER NG;Lo;0;L;;;;;N;;;;;
-14D2;CANADIAN SYLLABICS NH;Lo;0;L;;;;;N;;;;;
-14D3;CANADIAN SYLLABICS LE;Lo;0;L;;;;;N;;;;;
-14D4;CANADIAN SYLLABICS LAAI;Lo;0;L;;;;;N;;;;;
-14D5;CANADIAN SYLLABICS LI;Lo;0;L;;;;;N;;;;;
-14D6;CANADIAN SYLLABICS LII;Lo;0;L;;;;;N;;;;;
-14D7;CANADIAN SYLLABICS LO;Lo;0;L;;;;;N;;;;;
-14D8;CANADIAN SYLLABICS LOO;Lo;0;L;;;;;N;;;;;
-14D9;CANADIAN SYLLABICS Y-CREE LOO;Lo;0;L;;;;;N;;;;;
-14DA;CANADIAN SYLLABICS LA;Lo;0;L;;;;;N;;;;;
-14DB;CANADIAN SYLLABICS LAA;Lo;0;L;;;;;N;;;;;
-14DC;CANADIAN SYLLABICS LWE;Lo;0;L;;;;;N;;;;;
-14DD;CANADIAN SYLLABICS WEST-CREE LWE;Lo;0;L;;;;;N;;;;;
-14DE;CANADIAN SYLLABICS LWI;Lo;0;L;;;;;N;;;;;
-14DF;CANADIAN SYLLABICS WEST-CREE LWI;Lo;0;L;;;;;N;;;;;
-14E0;CANADIAN SYLLABICS LWII;Lo;0;L;;;;;N;;;;;
-14E1;CANADIAN SYLLABICS WEST-CREE LWII;Lo;0;L;;;;;N;;;;;
-14E2;CANADIAN SYLLABICS LWO;Lo;0;L;;;;;N;;;;;
-14E3;CANADIAN SYLLABICS WEST-CREE LWO;Lo;0;L;;;;;N;;;;;
-14E4;CANADIAN SYLLABICS LWOO;Lo;0;L;;;;;N;;;;;
-14E5;CANADIAN SYLLABICS WEST-CREE LWOO;Lo;0;L;;;;;N;;;;;
-14E6;CANADIAN SYLLABICS LWA;Lo;0;L;;;;;N;;;;;
-14E7;CANADIAN SYLLABICS WEST-CREE LWA;Lo;0;L;;;;;N;;;;;
-14E8;CANADIAN SYLLABICS LWAA;Lo;0;L;;;;;N;;;;;
-14E9;CANADIAN SYLLABICS WEST-CREE LWAA;Lo;0;L;;;;;N;;;;;
-14EA;CANADIAN SYLLABICS L;Lo;0;L;;;;;N;;;;;
-14EB;CANADIAN SYLLABICS WEST-CREE L;Lo;0;L;;;;;N;;;;;
-14EC;CANADIAN SYLLABICS MEDIAL L;Lo;0;L;;;;;N;;;;;
-14ED;CANADIAN SYLLABICS SE;Lo;0;L;;;;;N;;;;;
-14EE;CANADIAN SYLLABICS SAAI;Lo;0;L;;;;;N;;;;;
-14EF;CANADIAN SYLLABICS SI;Lo;0;L;;;;;N;;;;;
-14F0;CANADIAN SYLLABICS SII;Lo;0;L;;;;;N;;;;;
-14F1;CANADIAN SYLLABICS SO;Lo;0;L;;;;;N;;;;;
-14F2;CANADIAN SYLLABICS SOO;Lo;0;L;;;;;N;;;;;
-14F3;CANADIAN SYLLABICS Y-CREE SOO;Lo;0;L;;;;;N;;;;;
-14F4;CANADIAN SYLLABICS SA;Lo;0;L;;;;;N;;;;;
-14F5;CANADIAN SYLLABICS SAA;Lo;0;L;;;;;N;;;;;
-14F6;CANADIAN SYLLABICS SWE;Lo;0;L;;;;;N;;;;;
-14F7;CANADIAN SYLLABICS WEST-CREE SWE;Lo;0;L;;;;;N;;;;;
-14F8;CANADIAN SYLLABICS SWI;Lo;0;L;;;;;N;;;;;
-14F9;CANADIAN SYLLABICS WEST-CREE SWI;Lo;0;L;;;;;N;;;;;
-14FA;CANADIAN SYLLABICS SWII;Lo;0;L;;;;;N;;;;;
-14FB;CANADIAN SYLLABICS WEST-CREE SWII;Lo;0;L;;;;;N;;;;;
-14FC;CANADIAN SYLLABICS SWO;Lo;0;L;;;;;N;;;;;
-14FD;CANADIAN SYLLABICS WEST-CREE SWO;Lo;0;L;;;;;N;;;;;
-14FE;CANADIAN SYLLABICS SWOO;Lo;0;L;;;;;N;;;;;
-14FF;CANADIAN SYLLABICS WEST-CREE SWOO;Lo;0;L;;;;;N;;;;;
-1500;CANADIAN SYLLABICS SWA;Lo;0;L;;;;;N;;;;;
-1501;CANADIAN SYLLABICS WEST-CREE SWA;Lo;0;L;;;;;N;;;;;
-1502;CANADIAN SYLLABICS SWAA;Lo;0;L;;;;;N;;;;;
-1503;CANADIAN SYLLABICS WEST-CREE SWAA;Lo;0;L;;;;;N;;;;;
-1504;CANADIAN SYLLABICS NASKAPI SWAA;Lo;0;L;;;;;N;;;;;
-1505;CANADIAN SYLLABICS S;Lo;0;L;;;;;N;;;;;
-1506;CANADIAN SYLLABICS ATHAPASCAN S;Lo;0;L;;;;;N;;;;;
-1507;CANADIAN SYLLABICS SW;Lo;0;L;;;;;N;;;;;
-1508;CANADIAN SYLLABICS BLACKFOOT S;Lo;0;L;;;;;N;;;;;
-1509;CANADIAN SYLLABICS MOOSE-CREE SK;Lo;0;L;;;;;N;;;;;
-150A;CANADIAN SYLLABICS NASKAPI SKW;Lo;0;L;;;;;N;;;;;
-150B;CANADIAN SYLLABICS NASKAPI S-W;Lo;0;L;;;;;N;;;;;
-150C;CANADIAN SYLLABICS NASKAPI SPWA;Lo;0;L;;;;;N;;;;;
-150D;CANADIAN SYLLABICS NASKAPI STWA;Lo;0;L;;;;;N;;;;;
-150E;CANADIAN SYLLABICS NASKAPI SKWA;Lo;0;L;;;;;N;;;;;
-150F;CANADIAN SYLLABICS NASKAPI SCWA;Lo;0;L;;;;;N;;;;;
-1510;CANADIAN SYLLABICS SHE;Lo;0;L;;;;;N;;;;;
-1511;CANADIAN SYLLABICS SHI;Lo;0;L;;;;;N;;;;;
-1512;CANADIAN SYLLABICS SHII;Lo;0;L;;;;;N;;;;;
-1513;CANADIAN SYLLABICS SHO;Lo;0;L;;;;;N;;;;;
-1514;CANADIAN SYLLABICS SHOO;Lo;0;L;;;;;N;;;;;
-1515;CANADIAN SYLLABICS SHA;Lo;0;L;;;;;N;;;;;
-1516;CANADIAN SYLLABICS SHAA;Lo;0;L;;;;;N;;;;;
-1517;CANADIAN SYLLABICS SHWE;Lo;0;L;;;;;N;;;;;
-1518;CANADIAN SYLLABICS WEST-CREE SHWE;Lo;0;L;;;;;N;;;;;
-1519;CANADIAN SYLLABICS SHWI;Lo;0;L;;;;;N;;;;;
-151A;CANADIAN SYLLABICS WEST-CREE SHWI;Lo;0;L;;;;;N;;;;;
-151B;CANADIAN SYLLABICS SHWII;Lo;0;L;;;;;N;;;;;
-151C;CANADIAN SYLLABICS WEST-CREE SHWII;Lo;0;L;;;;;N;;;;;
-151D;CANADIAN SYLLABICS SHWO;Lo;0;L;;;;;N;;;;;
-151E;CANADIAN SYLLABICS WEST-CREE SHWO;Lo;0;L;;;;;N;;;;;
-151F;CANADIAN SYLLABICS SHWOO;Lo;0;L;;;;;N;;;;;
-1520;CANADIAN SYLLABICS WEST-CREE SHWOO;Lo;0;L;;;;;N;;;;;
-1521;CANADIAN SYLLABICS SHWA;Lo;0;L;;;;;N;;;;;
-1522;CANADIAN SYLLABICS WEST-CREE SHWA;Lo;0;L;;;;;N;;;;;
-1523;CANADIAN SYLLABICS SHWAA;Lo;0;L;;;;;N;;;;;
-1524;CANADIAN SYLLABICS WEST-CREE SHWAA;Lo;0;L;;;;;N;;;;;
-1525;CANADIAN SYLLABICS SH;Lo;0;L;;;;;N;;;;;
-1526;CANADIAN SYLLABICS YE;Lo;0;L;;;;;N;;;;;
-1527;CANADIAN SYLLABICS YAAI;Lo;0;L;;;;;N;;;;;
-1528;CANADIAN SYLLABICS YI;Lo;0;L;;;;;N;;;;;
-1529;CANADIAN SYLLABICS YII;Lo;0;L;;;;;N;;;;;
-152A;CANADIAN SYLLABICS YO;Lo;0;L;;;;;N;;;;;
-152B;CANADIAN SYLLABICS YOO;Lo;0;L;;;;;N;;;;;
-152C;CANADIAN SYLLABICS Y-CREE YOO;Lo;0;L;;;;;N;;;;;
-152D;CANADIAN SYLLABICS YA;Lo;0;L;;;;;N;;;;;
-152E;CANADIAN SYLLABICS YAA;Lo;0;L;;;;;N;;;;;
-152F;CANADIAN SYLLABICS YWE;Lo;0;L;;;;;N;;;;;
-1530;CANADIAN SYLLABICS WEST-CREE YWE;Lo;0;L;;;;;N;;;;;
-1531;CANADIAN SYLLABICS YWI;Lo;0;L;;;;;N;;;;;
-1532;CANADIAN SYLLABICS WEST-CREE YWI;Lo;0;L;;;;;N;;;;;
-1533;CANADIAN SYLLABICS YWII;Lo;0;L;;;;;N;;;;;
-1534;CANADIAN SYLLABICS WEST-CREE YWII;Lo;0;L;;;;;N;;;;;
-1535;CANADIAN SYLLABICS YWO;Lo;0;L;;;;;N;;;;;
-1536;CANADIAN SYLLABICS WEST-CREE YWO;Lo;0;L;;;;;N;;;;;
-1537;CANADIAN SYLLABICS YWOO;Lo;0;L;;;;;N;;;;;
-1538;CANADIAN SYLLABICS WEST-CREE YWOO;Lo;0;L;;;;;N;;;;;
-1539;CANADIAN SYLLABICS YWA;Lo;0;L;;;;;N;;;;;
-153A;CANADIAN SYLLABICS WEST-CREE YWA;Lo;0;L;;;;;N;;;;;
-153B;CANADIAN SYLLABICS YWAA;Lo;0;L;;;;;N;;;;;
-153C;CANADIAN SYLLABICS WEST-CREE YWAA;Lo;0;L;;;;;N;;;;;
-153D;CANADIAN SYLLABICS NASKAPI YWAA;Lo;0;L;;;;;N;;;;;
-153E;CANADIAN SYLLABICS Y;Lo;0;L;;;;;N;;;;;
-153F;CANADIAN SYLLABICS BIBLE-CREE Y;Lo;0;L;;;;;N;;;;;
-1540;CANADIAN SYLLABICS WEST-CREE Y;Lo;0;L;;;;;N;;;;;
-1541;CANADIAN SYLLABICS SAYISI YI;Lo;0;L;;;;;N;;;;;
-1542;CANADIAN SYLLABICS RE;Lo;0;L;;;;;N;;;;;
-1543;CANADIAN SYLLABICS R-CREE RE;Lo;0;L;;;;;N;;;;;
-1544;CANADIAN SYLLABICS WEST-CREE LE;Lo;0;L;;;;;N;;;;;
-1545;CANADIAN SYLLABICS RAAI;Lo;0;L;;;;;N;;;;;
-1546;CANADIAN SYLLABICS RI;Lo;0;L;;;;;N;;;;;
-1547;CANADIAN SYLLABICS RII;Lo;0;L;;;;;N;;;;;
-1548;CANADIAN SYLLABICS RO;Lo;0;L;;;;;N;;;;;
-1549;CANADIAN SYLLABICS ROO;Lo;0;L;;;;;N;;;;;
-154A;CANADIAN SYLLABICS WEST-CREE LO;Lo;0;L;;;;;N;;;;;
-154B;CANADIAN SYLLABICS RA;Lo;0;L;;;;;N;;;;;
-154C;CANADIAN SYLLABICS RAA;Lo;0;L;;;;;N;;;;;
-154D;CANADIAN SYLLABICS WEST-CREE LA;Lo;0;L;;;;;N;;;;;
-154E;CANADIAN SYLLABICS RWAA;Lo;0;L;;;;;N;;;;;
-154F;CANADIAN SYLLABICS WEST-CREE RWAA;Lo;0;L;;;;;N;;;;;
-1550;CANADIAN SYLLABICS R;Lo;0;L;;;;;N;;;;;
-1551;CANADIAN SYLLABICS WEST-CREE R;Lo;0;L;;;;;N;;;;;
-1552;CANADIAN SYLLABICS MEDIAL R;Lo;0;L;;;;;N;;;;;
-1553;CANADIAN SYLLABICS FE;Lo;0;L;;;;;N;;;;;
-1554;CANADIAN SYLLABICS FAAI;Lo;0;L;;;;;N;;;;;
-1555;CANADIAN SYLLABICS FI;Lo;0;L;;;;;N;;;;;
-1556;CANADIAN SYLLABICS FII;Lo;0;L;;;;;N;;;;;
-1557;CANADIAN SYLLABICS FO;Lo;0;L;;;;;N;;;;;
-1558;CANADIAN SYLLABICS FOO;Lo;0;L;;;;;N;;;;;
-1559;CANADIAN SYLLABICS FA;Lo;0;L;;;;;N;;;;;
-155A;CANADIAN SYLLABICS FAA;Lo;0;L;;;;;N;;;;;
-155B;CANADIAN SYLLABICS FWAA;Lo;0;L;;;;;N;;;;;
-155C;CANADIAN SYLLABICS WEST-CREE FWAA;Lo;0;L;;;;;N;;;;;
-155D;CANADIAN SYLLABICS F;Lo;0;L;;;;;N;;;;;
-155E;CANADIAN SYLLABICS THE;Lo;0;L;;;;;N;;;;;
-155F;CANADIAN SYLLABICS N-CREE THE;Lo;0;L;;;;;N;;;;;
-1560;CANADIAN SYLLABICS THI;Lo;0;L;;;;;N;;;;;
-1561;CANADIAN SYLLABICS N-CREE THI;Lo;0;L;;;;;N;;;;;
-1562;CANADIAN SYLLABICS THII;Lo;0;L;;;;;N;;;;;
-1563;CANADIAN SYLLABICS N-CREE THII;Lo;0;L;;;;;N;;;;;
-1564;CANADIAN SYLLABICS THO;Lo;0;L;;;;;N;;;;;
-1565;CANADIAN SYLLABICS THOO;Lo;0;L;;;;;N;;;;;
-1566;CANADIAN SYLLABICS THA;Lo;0;L;;;;;N;;;;;
-1567;CANADIAN SYLLABICS THAA;Lo;0;L;;;;;N;;;;;
-1568;CANADIAN SYLLABICS THWAA;Lo;0;L;;;;;N;;;;;
-1569;CANADIAN SYLLABICS WEST-CREE THWAA;Lo;0;L;;;;;N;;;;;
-156A;CANADIAN SYLLABICS TH;Lo;0;L;;;;;N;;;;;
-156B;CANADIAN SYLLABICS TTHE;Lo;0;L;;;;;N;;;;;
-156C;CANADIAN SYLLABICS TTHI;Lo;0;L;;;;;N;;;;;
-156D;CANADIAN SYLLABICS TTHO;Lo;0;L;;;;;N;;;;;
-156E;CANADIAN SYLLABICS TTHA;Lo;0;L;;;;;N;;;;;
-156F;CANADIAN SYLLABICS TTH;Lo;0;L;;;;;N;;;;;
-1570;CANADIAN SYLLABICS TYE;Lo;0;L;;;;;N;;;;;
-1571;CANADIAN SYLLABICS TYI;Lo;0;L;;;;;N;;;;;
-1572;CANADIAN SYLLABICS TYO;Lo;0;L;;;;;N;;;;;
-1573;CANADIAN SYLLABICS TYA;Lo;0;L;;;;;N;;;;;
-1574;CANADIAN SYLLABICS NUNAVIK HE;Lo;0;L;;;;;N;;;;;
-1575;CANADIAN SYLLABICS NUNAVIK HI;Lo;0;L;;;;;N;;;;;
-1576;CANADIAN SYLLABICS NUNAVIK HII;Lo;0;L;;;;;N;;;;;
-1577;CANADIAN SYLLABICS NUNAVIK HO;Lo;0;L;;;;;N;;;;;
-1578;CANADIAN SYLLABICS NUNAVIK HOO;Lo;0;L;;;;;N;;;;;
-1579;CANADIAN SYLLABICS NUNAVIK HA;Lo;0;L;;;;;N;;;;;
-157A;CANADIAN SYLLABICS NUNAVIK HAA;Lo;0;L;;;;;N;;;;;
-157B;CANADIAN SYLLABICS NUNAVIK H;Lo;0;L;;;;;N;;;;;
-157C;CANADIAN SYLLABICS NUNAVUT H;Lo;0;L;;;;;N;;;;;
-157D;CANADIAN SYLLABICS HK;Lo;0;L;;;;;N;;;;;
-157E;CANADIAN SYLLABICS QAAI;Lo;0;L;;;;;N;;;;;
-157F;CANADIAN SYLLABICS QI;Lo;0;L;;;;;N;;;;;
-1580;CANADIAN SYLLABICS QII;Lo;0;L;;;;;N;;;;;
-1581;CANADIAN SYLLABICS QO;Lo;0;L;;;;;N;;;;;
-1582;CANADIAN SYLLABICS QOO;Lo;0;L;;;;;N;;;;;
-1583;CANADIAN SYLLABICS QA;Lo;0;L;;;;;N;;;;;
-1584;CANADIAN SYLLABICS QAA;Lo;0;L;;;;;N;;;;;
-1585;CANADIAN SYLLABICS Q;Lo;0;L;;;;;N;;;;;
-1586;CANADIAN SYLLABICS TLHE;Lo;0;L;;;;;N;;;;;
-1587;CANADIAN SYLLABICS TLHI;Lo;0;L;;;;;N;;;;;
-1588;CANADIAN SYLLABICS TLHO;Lo;0;L;;;;;N;;;;;
-1589;CANADIAN SYLLABICS TLHA;Lo;0;L;;;;;N;;;;;
-158A;CANADIAN SYLLABICS WEST-CREE RE;Lo;0;L;;;;;N;;;;;
-158B;CANADIAN SYLLABICS WEST-CREE RI;Lo;0;L;;;;;N;;;;;
-158C;CANADIAN SYLLABICS WEST-CREE RO;Lo;0;L;;;;;N;;;;;
-158D;CANADIAN SYLLABICS WEST-CREE RA;Lo;0;L;;;;;N;;;;;
-158E;CANADIAN SYLLABICS NGAAI;Lo;0;L;;;;;N;;;;;
-158F;CANADIAN SYLLABICS NGI;Lo;0;L;;;;;N;;;;;
-1590;CANADIAN SYLLABICS NGII;Lo;0;L;;;;;N;;;;;
-1591;CANADIAN SYLLABICS NGO;Lo;0;L;;;;;N;;;;;
-1592;CANADIAN SYLLABICS NGOO;Lo;0;L;;;;;N;;;;;
-1593;CANADIAN SYLLABICS NGA;Lo;0;L;;;;;N;;;;;
-1594;CANADIAN SYLLABICS NGAA;Lo;0;L;;;;;N;;;;;
-1595;CANADIAN SYLLABICS NG;Lo;0;L;;;;;N;;;;;
-1596;CANADIAN SYLLABICS NNG;Lo;0;L;;;;;N;;;;;
-1597;CANADIAN SYLLABICS SAYISI SHE;Lo;0;L;;;;;N;;;;;
-1598;CANADIAN SYLLABICS SAYISI SHI;Lo;0;L;;;;;N;;;;;
-1599;CANADIAN SYLLABICS SAYISI SHO;Lo;0;L;;;;;N;;;;;
-159A;CANADIAN SYLLABICS SAYISI SHA;Lo;0;L;;;;;N;;;;;
-159B;CANADIAN SYLLABICS WOODS-CREE THE;Lo;0;L;;;;;N;;;;;
-159C;CANADIAN SYLLABICS WOODS-CREE THI;Lo;0;L;;;;;N;;;;;
-159D;CANADIAN SYLLABICS WOODS-CREE THO;Lo;0;L;;;;;N;;;;;
-159E;CANADIAN SYLLABICS WOODS-CREE THA;Lo;0;L;;;;;N;;;;;
-159F;CANADIAN SYLLABICS WOODS-CREE TH;Lo;0;L;;;;;N;;;;;
-15A0;CANADIAN SYLLABICS LHI;Lo;0;L;;;;;N;;;;;
-15A1;CANADIAN SYLLABICS LHII;Lo;0;L;;;;;N;;;;;
-15A2;CANADIAN SYLLABICS LHO;Lo;0;L;;;;;N;;;;;
-15A3;CANADIAN SYLLABICS LHOO;Lo;0;L;;;;;N;;;;;
-15A4;CANADIAN SYLLABICS LHA;Lo;0;L;;;;;N;;;;;
-15A5;CANADIAN SYLLABICS LHAA;Lo;0;L;;;;;N;;;;;
-15A6;CANADIAN SYLLABICS LH;Lo;0;L;;;;;N;;;;;
-15A7;CANADIAN SYLLABICS TH-CREE THE;Lo;0;L;;;;;N;;;;;
-15A8;CANADIAN SYLLABICS TH-CREE THI;Lo;0;L;;;;;N;;;;;
-15A9;CANADIAN SYLLABICS TH-CREE THII;Lo;0;L;;;;;N;;;;;
-15AA;CANADIAN SYLLABICS TH-CREE THO;Lo;0;L;;;;;N;;;;;
-15AB;CANADIAN SYLLABICS TH-CREE THOO;Lo;0;L;;;;;N;;;;;
-15AC;CANADIAN SYLLABICS TH-CREE THA;Lo;0;L;;;;;N;;;;;
-15AD;CANADIAN SYLLABICS TH-CREE THAA;Lo;0;L;;;;;N;;;;;
-15AE;CANADIAN SYLLABICS TH-CREE TH;Lo;0;L;;;;;N;;;;;
-15AF;CANADIAN SYLLABICS AIVILIK B;Lo;0;L;;;;;N;;;;;
-15B0;CANADIAN SYLLABICS BLACKFOOT E;Lo;0;L;;;;;N;;;;;
-15B1;CANADIAN SYLLABICS BLACKFOOT I;Lo;0;L;;;;;N;;;;;
-15B2;CANADIAN SYLLABICS BLACKFOOT O;Lo;0;L;;;;;N;;;;;
-15B3;CANADIAN SYLLABICS BLACKFOOT A;Lo;0;L;;;;;N;;;;;
-15B4;CANADIAN SYLLABICS BLACKFOOT WE;Lo;0;L;;;;;N;;;;;
-15B5;CANADIAN SYLLABICS BLACKFOOT WI;Lo;0;L;;;;;N;;;;;
-15B6;CANADIAN SYLLABICS BLACKFOOT WO;Lo;0;L;;;;;N;;;;;
-15B7;CANADIAN SYLLABICS BLACKFOOT WA;Lo;0;L;;;;;N;;;;;
-15B8;CANADIAN SYLLABICS BLACKFOOT NE;Lo;0;L;;;;;N;;;;;
-15B9;CANADIAN SYLLABICS BLACKFOOT NI;Lo;0;L;;;;;N;;;;;
-15BA;CANADIAN SYLLABICS BLACKFOOT NO;Lo;0;L;;;;;N;;;;;
-15BB;CANADIAN SYLLABICS BLACKFOOT NA;Lo;0;L;;;;;N;;;;;
-15BC;CANADIAN SYLLABICS BLACKFOOT KE;Lo;0;L;;;;;N;;;;;
-15BD;CANADIAN SYLLABICS BLACKFOOT KI;Lo;0;L;;;;;N;;;;;
-15BE;CANADIAN SYLLABICS BLACKFOOT KO;Lo;0;L;;;;;N;;;;;
-15BF;CANADIAN SYLLABICS BLACKFOOT KA;Lo;0;L;;;;;N;;;;;
-15C0;CANADIAN SYLLABICS SAYISI HE;Lo;0;L;;;;;N;;;;;
-15C1;CANADIAN SYLLABICS SAYISI HI;Lo;0;L;;;;;N;;;;;
-15C2;CANADIAN SYLLABICS SAYISI HO;Lo;0;L;;;;;N;;;;;
-15C3;CANADIAN SYLLABICS SAYISI HA;Lo;0;L;;;;;N;;;;;
-15C4;CANADIAN SYLLABICS CARRIER GHU;Lo;0;L;;;;;N;;;;;
-15C5;CANADIAN SYLLABICS CARRIER GHO;Lo;0;L;;;;;N;;;;;
-15C6;CANADIAN SYLLABICS CARRIER GHE;Lo;0;L;;;;;N;;;;;
-15C7;CANADIAN SYLLABICS CARRIER GHEE;Lo;0;L;;;;;N;;;;;
-15C8;CANADIAN SYLLABICS CARRIER GHI;Lo;0;L;;;;;N;;;;;
-15C9;CANADIAN SYLLABICS CARRIER GHA;Lo;0;L;;;;;N;;;;;
-15CA;CANADIAN SYLLABICS CARRIER RU;Lo;0;L;;;;;N;;;;;
-15CB;CANADIAN SYLLABICS CARRIER RO;Lo;0;L;;;;;N;;;;;
-15CC;CANADIAN SYLLABICS CARRIER RE;Lo;0;L;;;;;N;;;;;
-15CD;CANADIAN SYLLABICS CARRIER REE;Lo;0;L;;;;;N;;;;;
-15CE;CANADIAN SYLLABICS CARRIER RI;Lo;0;L;;;;;N;;;;;
-15CF;CANADIAN SYLLABICS CARRIER RA;Lo;0;L;;;;;N;;;;;
-15D0;CANADIAN SYLLABICS CARRIER WU;Lo;0;L;;;;;N;;;;;
-15D1;CANADIAN SYLLABICS CARRIER WO;Lo;0;L;;;;;N;;;;;
-15D2;CANADIAN SYLLABICS CARRIER WE;Lo;0;L;;;;;N;;;;;
-15D3;CANADIAN SYLLABICS CARRIER WEE;Lo;0;L;;;;;N;;;;;
-15D4;CANADIAN SYLLABICS CARRIER WI;Lo;0;L;;;;;N;;;;;
-15D5;CANADIAN SYLLABICS CARRIER WA;Lo;0;L;;;;;N;;;;;
-15D6;CANADIAN SYLLABICS CARRIER HWU;Lo;0;L;;;;;N;;;;;
-15D7;CANADIAN SYLLABICS CARRIER HWO;Lo;0;L;;;;;N;;;;;
-15D8;CANADIAN SYLLABICS CARRIER HWE;Lo;0;L;;;;;N;;;;;
-15D9;CANADIAN SYLLABICS CARRIER HWEE;Lo;0;L;;;;;N;;;;;
-15DA;CANADIAN SYLLABICS CARRIER HWI;Lo;0;L;;;;;N;;;;;
-15DB;CANADIAN SYLLABICS CARRIER HWA;Lo;0;L;;;;;N;;;;;
-15DC;CANADIAN SYLLABICS CARRIER THU;Lo;0;L;;;;;N;;;;;
-15DD;CANADIAN SYLLABICS CARRIER THO;Lo;0;L;;;;;N;;;;;
-15DE;CANADIAN SYLLABICS CARRIER THE;Lo;0;L;;;;;N;;;;;
-15DF;CANADIAN SYLLABICS CARRIER THEE;Lo;0;L;;;;;N;;;;;
-15E0;CANADIAN SYLLABICS CARRIER THI;Lo;0;L;;;;;N;;;;;
-15E1;CANADIAN SYLLABICS CARRIER THA;Lo;0;L;;;;;N;;;;;
-15E2;CANADIAN SYLLABICS CARRIER TTU;Lo;0;L;;;;;N;;;;;
-15E3;CANADIAN SYLLABICS CARRIER TTO;Lo;0;L;;;;;N;;;;;
-15E4;CANADIAN SYLLABICS CARRIER TTE;Lo;0;L;;;;;N;;;;;
-15E5;CANADIAN SYLLABICS CARRIER TTEE;Lo;0;L;;;;;N;;;;;
-15E6;CANADIAN SYLLABICS CARRIER TTI;Lo;0;L;;;;;N;;;;;
-15E7;CANADIAN SYLLABICS CARRIER TTA;Lo;0;L;;;;;N;;;;;
-15E8;CANADIAN SYLLABICS CARRIER PU;Lo;0;L;;;;;N;;;;;
-15E9;CANADIAN SYLLABICS CARRIER PO;Lo;0;L;;;;;N;;;;;
-15EA;CANADIAN SYLLABICS CARRIER PE;Lo;0;L;;;;;N;;;;;
-15EB;CANADIAN SYLLABICS CARRIER PEE;Lo;0;L;;;;;N;;;;;
-15EC;CANADIAN SYLLABICS CARRIER PI;Lo;0;L;;;;;N;;;;;
-15ED;CANADIAN SYLLABICS CARRIER PA;Lo;0;L;;;;;N;;;;;
-15EE;CANADIAN SYLLABICS CARRIER P;Lo;0;L;;;;;N;;;;;
-15EF;CANADIAN SYLLABICS CARRIER GU;Lo;0;L;;;;;N;;;;;
-15F0;CANADIAN SYLLABICS CARRIER GO;Lo;0;L;;;;;N;;;;;
-15F1;CANADIAN SYLLABICS CARRIER GE;Lo;0;L;;;;;N;;;;;
-15F2;CANADIAN SYLLABICS CARRIER GEE;Lo;0;L;;;;;N;;;;;
-15F3;CANADIAN SYLLABICS CARRIER GI;Lo;0;L;;;;;N;;;;;
-15F4;CANADIAN SYLLABICS CARRIER GA;Lo;0;L;;;;;N;;;;;
-15F5;CANADIAN SYLLABICS CARRIER KHU;Lo;0;L;;;;;N;;;;;
-15F6;CANADIAN SYLLABICS CARRIER KHO;Lo;0;L;;;;;N;;;;;
-15F7;CANADIAN SYLLABICS CARRIER KHE;Lo;0;L;;;;;N;;;;;
-15F8;CANADIAN SYLLABICS CARRIER KHEE;Lo;0;L;;;;;N;;;;;
-15F9;CANADIAN SYLLABICS CARRIER KHI;Lo;0;L;;;;;N;;;;;
-15FA;CANADIAN SYLLABICS CARRIER KHA;Lo;0;L;;;;;N;;;;;
-15FB;CANADIAN SYLLABICS CARRIER KKU;Lo;0;L;;;;;N;;;;;
-15FC;CANADIAN SYLLABICS CARRIER KKO;Lo;0;L;;;;;N;;;;;
-15FD;CANADIAN SYLLABICS CARRIER KKE;Lo;0;L;;;;;N;;;;;
-15FE;CANADIAN SYLLABICS CARRIER KKEE;Lo;0;L;;;;;N;;;;;
-15FF;CANADIAN SYLLABICS CARRIER KKI;Lo;0;L;;;;;N;;;;;
-1600;CANADIAN SYLLABICS CARRIER KKA;Lo;0;L;;;;;N;;;;;
-1601;CANADIAN SYLLABICS CARRIER KK;Lo;0;L;;;;;N;;;;;
-1602;CANADIAN SYLLABICS CARRIER NU;Lo;0;L;;;;;N;;;;;
-1603;CANADIAN SYLLABICS CARRIER NO;Lo;0;L;;;;;N;;;;;
-1604;CANADIAN SYLLABICS CARRIER NE;Lo;0;L;;;;;N;;;;;
-1605;CANADIAN SYLLABICS CARRIER NEE;Lo;0;L;;;;;N;;;;;
-1606;CANADIAN SYLLABICS CARRIER NI;Lo;0;L;;;;;N;;;;;
-1607;CANADIAN SYLLABICS CARRIER NA;Lo;0;L;;;;;N;;;;;
-1608;CANADIAN SYLLABICS CARRIER MU;Lo;0;L;;;;;N;;;;;
-1609;CANADIAN SYLLABICS CARRIER MO;Lo;0;L;;;;;N;;;;;
-160A;CANADIAN SYLLABICS CARRIER ME;Lo;0;L;;;;;N;;;;;
-160B;CANADIAN SYLLABICS CARRIER MEE;Lo;0;L;;;;;N;;;;;
-160C;CANADIAN SYLLABICS CARRIER MI;Lo;0;L;;;;;N;;;;;
-160D;CANADIAN SYLLABICS CARRIER MA;Lo;0;L;;;;;N;;;;;
-160E;CANADIAN SYLLABICS CARRIER YU;Lo;0;L;;;;;N;;;;;
-160F;CANADIAN SYLLABICS CARRIER YO;Lo;0;L;;;;;N;;;;;
-1610;CANADIAN SYLLABICS CARRIER YE;Lo;0;L;;;;;N;;;;;
-1611;CANADIAN SYLLABICS CARRIER YEE;Lo;0;L;;;;;N;;;;;
-1612;CANADIAN SYLLABICS CARRIER YI;Lo;0;L;;;;;N;;;;;
-1613;CANADIAN SYLLABICS CARRIER YA;Lo;0;L;;;;;N;;;;;
-1614;CANADIAN SYLLABICS CARRIER JU;Lo;0;L;;;;;N;;;;;
-1615;CANADIAN SYLLABICS SAYISI JU;Lo;0;L;;;;;N;;;;;
-1616;CANADIAN SYLLABICS CARRIER JO;Lo;0;L;;;;;N;;;;;
-1617;CANADIAN SYLLABICS CARRIER JE;Lo;0;L;;;;;N;;;;;
-1618;CANADIAN SYLLABICS CARRIER JEE;Lo;0;L;;;;;N;;;;;
-1619;CANADIAN SYLLABICS CARRIER JI;Lo;0;L;;;;;N;;;;;
-161A;CANADIAN SYLLABICS SAYISI JI;Lo;0;L;;;;;N;;;;;
-161B;CANADIAN SYLLABICS CARRIER JA;Lo;0;L;;;;;N;;;;;
-161C;CANADIAN SYLLABICS CARRIER JJU;Lo;0;L;;;;;N;;;;;
-161D;CANADIAN SYLLABICS CARRIER JJO;Lo;0;L;;;;;N;;;;;
-161E;CANADIAN SYLLABICS CARRIER JJE;Lo;0;L;;;;;N;;;;;
-161F;CANADIAN SYLLABICS CARRIER JJEE;Lo;0;L;;;;;N;;;;;
-1620;CANADIAN SYLLABICS CARRIER JJI;Lo;0;L;;;;;N;;;;;
-1621;CANADIAN SYLLABICS CARRIER JJA;Lo;0;L;;;;;N;;;;;
-1622;CANADIAN SYLLABICS CARRIER LU;Lo;0;L;;;;;N;;;;;
-1623;CANADIAN SYLLABICS CARRIER LO;Lo;0;L;;;;;N;;;;;
-1624;CANADIAN SYLLABICS CARRIER LE;Lo;0;L;;;;;N;;;;;
-1625;CANADIAN SYLLABICS CARRIER LEE;Lo;0;L;;;;;N;;;;;
-1626;CANADIAN SYLLABICS CARRIER LI;Lo;0;L;;;;;N;;;;;
-1627;CANADIAN SYLLABICS CARRIER LA;Lo;0;L;;;;;N;;;;;
-1628;CANADIAN SYLLABICS CARRIER DLU;Lo;0;L;;;;;N;;;;;
-1629;CANADIAN SYLLABICS CARRIER DLO;Lo;0;L;;;;;N;;;;;
-162A;CANADIAN SYLLABICS CARRIER DLE;Lo;0;L;;;;;N;;;;;
-162B;CANADIAN SYLLABICS CARRIER DLEE;Lo;0;L;;;;;N;;;;;
-162C;CANADIAN SYLLABICS CARRIER DLI;Lo;0;L;;;;;N;;;;;
-162D;CANADIAN SYLLABICS CARRIER DLA;Lo;0;L;;;;;N;;;;;
-162E;CANADIAN SYLLABICS CARRIER LHU;Lo;0;L;;;;;N;;;;;
-162F;CANADIAN SYLLABICS CARRIER LHO;Lo;0;L;;;;;N;;;;;
-1630;CANADIAN SYLLABICS CARRIER LHE;Lo;0;L;;;;;N;;;;;
-1631;CANADIAN SYLLABICS CARRIER LHEE;Lo;0;L;;;;;N;;;;;
-1632;CANADIAN SYLLABICS CARRIER LHI;Lo;0;L;;;;;N;;;;;
-1633;CANADIAN SYLLABICS CARRIER LHA;Lo;0;L;;;;;N;;;;;
-1634;CANADIAN SYLLABICS CARRIER TLHU;Lo;0;L;;;;;N;;;;;
-1635;CANADIAN SYLLABICS CARRIER TLHO;Lo;0;L;;;;;N;;;;;
-1636;CANADIAN SYLLABICS CARRIER TLHE;Lo;0;L;;;;;N;;;;;
-1637;CANADIAN SYLLABICS CARRIER TLHEE;Lo;0;L;;;;;N;;;;;
-1638;CANADIAN SYLLABICS CARRIER TLHI;Lo;0;L;;;;;N;;;;;
-1639;CANADIAN SYLLABICS CARRIER TLHA;Lo;0;L;;;;;N;;;;;
-163A;CANADIAN SYLLABICS CARRIER TLU;Lo;0;L;;;;;N;;;;;
-163B;CANADIAN SYLLABICS CARRIER TLO;Lo;0;L;;;;;N;;;;;
-163C;CANADIAN SYLLABICS CARRIER TLE;Lo;0;L;;;;;N;;;;;
-163D;CANADIAN SYLLABICS CARRIER TLEE;Lo;0;L;;;;;N;;;;;
-163E;CANADIAN SYLLABICS CARRIER TLI;Lo;0;L;;;;;N;;;;;
-163F;CANADIAN SYLLABICS CARRIER TLA;Lo;0;L;;;;;N;;;;;
-1640;CANADIAN SYLLABICS CARRIER ZU;Lo;0;L;;;;;N;;;;;
-1641;CANADIAN SYLLABICS CARRIER ZO;Lo;0;L;;;;;N;;;;;
-1642;CANADIAN SYLLABICS CARRIER ZE;Lo;0;L;;;;;N;;;;;
-1643;CANADIAN SYLLABICS CARRIER ZEE;Lo;0;L;;;;;N;;;;;
-1644;CANADIAN SYLLABICS CARRIER ZI;Lo;0;L;;;;;N;;;;;
-1645;CANADIAN SYLLABICS CARRIER ZA;Lo;0;L;;;;;N;;;;;
-1646;CANADIAN SYLLABICS CARRIER Z;Lo;0;L;;;;;N;;;;;
-1647;CANADIAN SYLLABICS CARRIER INITIAL Z;Lo;0;L;;;;;N;;;;;
-1648;CANADIAN SYLLABICS CARRIER DZU;Lo;0;L;;;;;N;;;;;
-1649;CANADIAN SYLLABICS CARRIER DZO;Lo;0;L;;;;;N;;;;;
-164A;CANADIAN SYLLABICS CARRIER DZE;Lo;0;L;;;;;N;;;;;
-164B;CANADIAN SYLLABICS CARRIER DZEE;Lo;0;L;;;;;N;;;;;
-164C;CANADIAN SYLLABICS CARRIER DZI;Lo;0;L;;;;;N;;;;;
-164D;CANADIAN SYLLABICS CARRIER DZA;Lo;0;L;;;;;N;;;;;
-164E;CANADIAN SYLLABICS CARRIER SU;Lo;0;L;;;;;N;;;;;
-164F;CANADIAN SYLLABICS CARRIER SO;Lo;0;L;;;;;N;;;;;
-1650;CANADIAN SYLLABICS CARRIER SE;Lo;0;L;;;;;N;;;;;
-1651;CANADIAN SYLLABICS CARRIER SEE;Lo;0;L;;;;;N;;;;;
-1652;CANADIAN SYLLABICS CARRIER SI;Lo;0;L;;;;;N;;;;;
-1653;CANADIAN SYLLABICS CARRIER SA;Lo;0;L;;;;;N;;;;;
-1654;CANADIAN SYLLABICS CARRIER SHU;Lo;0;L;;;;;N;;;;;
-1655;CANADIAN SYLLABICS CARRIER SHO;Lo;0;L;;;;;N;;;;;
-1656;CANADIAN SYLLABICS CARRIER SHE;Lo;0;L;;;;;N;;;;;
-1657;CANADIAN SYLLABICS CARRIER SHEE;Lo;0;L;;;;;N;;;;;
-1658;CANADIAN SYLLABICS CARRIER SHI;Lo;0;L;;;;;N;;;;;
-1659;CANADIAN SYLLABICS CARRIER SHA;Lo;0;L;;;;;N;;;;;
-165A;CANADIAN SYLLABICS CARRIER SH;Lo;0;L;;;;;N;;;;;
-165B;CANADIAN SYLLABICS CARRIER TSU;Lo;0;L;;;;;N;;;;;
-165C;CANADIAN SYLLABICS CARRIER TSO;Lo;0;L;;;;;N;;;;;
-165D;CANADIAN SYLLABICS CARRIER TSE;Lo;0;L;;;;;N;;;;;
-165E;CANADIAN SYLLABICS CARRIER TSEE;Lo;0;L;;;;;N;;;;;
-165F;CANADIAN SYLLABICS CARRIER TSI;Lo;0;L;;;;;N;;;;;
-1660;CANADIAN SYLLABICS CARRIER TSA;Lo;0;L;;;;;N;;;;;
-1661;CANADIAN SYLLABICS CARRIER CHU;Lo;0;L;;;;;N;;;;;
-1662;CANADIAN SYLLABICS CARRIER CHO;Lo;0;L;;;;;N;;;;;
-1663;CANADIAN SYLLABICS CARRIER CHE;Lo;0;L;;;;;N;;;;;
-1664;CANADIAN SYLLABICS CARRIER CHEE;Lo;0;L;;;;;N;;;;;
-1665;CANADIAN SYLLABICS CARRIER CHI;Lo;0;L;;;;;N;;;;;
-1666;CANADIAN SYLLABICS CARRIER CHA;Lo;0;L;;;;;N;;;;;
-1667;CANADIAN SYLLABICS CARRIER TTSU;Lo;0;L;;;;;N;;;;;
-1668;CANADIAN SYLLABICS CARRIER TTSO;Lo;0;L;;;;;N;;;;;
-1669;CANADIAN SYLLABICS CARRIER TTSE;Lo;0;L;;;;;N;;;;;
-166A;CANADIAN SYLLABICS CARRIER TTSEE;Lo;0;L;;;;;N;;;;;
-166B;CANADIAN SYLLABICS CARRIER TTSI;Lo;0;L;;;;;N;;;;;
-166C;CANADIAN SYLLABICS CARRIER TTSA;Lo;0;L;;;;;N;;;;;
-166D;CANADIAN SYLLABICS CHI SIGN;Po;0;L;;;;;N;;;;;
-166E;CANADIAN SYLLABICS FULL STOP;Po;0;L;;;;;N;;;;;
-166F;CANADIAN SYLLABICS QAI;Lo;0;L;;;;;N;;;;;
-1670;CANADIAN SYLLABICS NGAI;Lo;0;L;;;;;N;;;;;
-1671;CANADIAN SYLLABICS NNGI;Lo;0;L;;;;;N;;;;;
-1672;CANADIAN SYLLABICS NNGII;Lo;0;L;;;;;N;;;;;
-1673;CANADIAN SYLLABICS NNGO;Lo;0;L;;;;;N;;;;;
-1674;CANADIAN SYLLABICS NNGOO;Lo;0;L;;;;;N;;;;;
-1675;CANADIAN SYLLABICS NNGA;Lo;0;L;;;;;N;;;;;
-1676;CANADIAN SYLLABICS NNGAA;Lo;0;L;;;;;N;;;;;
-1677;CANADIAN SYLLABICS WOODS-CREE THWEE;Lo;0;L;;;;;N;;;;;
-1678;CANADIAN SYLLABICS WOODS-CREE THWI;Lo;0;L;;;;;N;;;;;
-1679;CANADIAN SYLLABICS WOODS-CREE THWII;Lo;0;L;;;;;N;;;;;
-167A;CANADIAN SYLLABICS WOODS-CREE THWO;Lo;0;L;;;;;N;;;;;
-167B;CANADIAN SYLLABICS WOODS-CREE THWOO;Lo;0;L;;;;;N;;;;;
-167C;CANADIAN SYLLABICS WOODS-CREE THWA;Lo;0;L;;;;;N;;;;;
-167D;CANADIAN SYLLABICS WOODS-CREE THWAA;Lo;0;L;;;;;N;;;;;
-167E;CANADIAN SYLLABICS WOODS-CREE FINAL TH;Lo;0;L;;;;;N;;;;;
-167F;CANADIAN SYLLABICS BLACKFOOT W;Lo;0;L;;;;;N;;;;;
-1680;OGHAM SPACE MARK;Zs;0;WS;;;;;N;;;;;
-1681;OGHAM LETTER BEITH;Lo;0;L;;;;;N;;;;;
-1682;OGHAM LETTER LUIS;Lo;0;L;;;;;N;;;;;
-1683;OGHAM LETTER FEARN;Lo;0;L;;;;;N;;;;;
-1684;OGHAM LETTER SAIL;Lo;0;L;;;;;N;;;;;
-1685;OGHAM LETTER NION;Lo;0;L;;;;;N;;;;;
-1686;OGHAM LETTER UATH;Lo;0;L;;;;;N;;;;;
-1687;OGHAM LETTER DAIR;Lo;0;L;;;;;N;;;;;
-1688;OGHAM LETTER TINNE;Lo;0;L;;;;;N;;;;;
-1689;OGHAM LETTER COLL;Lo;0;L;;;;;N;;;;;
-168A;OGHAM LETTER CEIRT;Lo;0;L;;;;;N;;;;;
-168B;OGHAM LETTER MUIN;Lo;0;L;;;;;N;;;;;
-168C;OGHAM LETTER GORT;Lo;0;L;;;;;N;;;;;
-168D;OGHAM LETTER NGEADAL;Lo;0;L;;;;;N;;;;;
-168E;OGHAM LETTER STRAIF;Lo;0;L;;;;;N;;;;;
-168F;OGHAM LETTER RUIS;Lo;0;L;;;;;N;;;;;
-1690;OGHAM LETTER AILM;Lo;0;L;;;;;N;;;;;
-1691;OGHAM LETTER ONN;Lo;0;L;;;;;N;;;;;
-1692;OGHAM LETTER UR;Lo;0;L;;;;;N;;;;;
-1693;OGHAM LETTER EADHADH;Lo;0;L;;;;;N;;;;;
-1694;OGHAM LETTER IODHADH;Lo;0;L;;;;;N;;;;;
-1695;OGHAM LETTER EABHADH;Lo;0;L;;;;;N;;;;;
-1696;OGHAM LETTER OR;Lo;0;L;;;;;N;;;;;
-1697;OGHAM LETTER UILLEANN;Lo;0;L;;;;;N;;;;;
-1698;OGHAM LETTER IFIN;Lo;0;L;;;;;N;;;;;
-1699;OGHAM LETTER EAMHANCHOLL;Lo;0;L;;;;;N;;;;;
-169A;OGHAM LETTER PEITH;Lo;0;L;;;;;N;;;;;
-169B;OGHAM FEATHER MARK;Ps;0;ON;;;;;Y;;;;;
-169C;OGHAM REVERSED FEATHER MARK;Pe;0;ON;;;;;Y;;;;;
-16A0;RUNIC LETTER FEHU FEOH FE F;Lo;0;L;;;;;N;;;;;
-16A1;RUNIC LETTER V;Lo;0;L;;;;;N;;;;;
-16A2;RUNIC LETTER URUZ UR U;Lo;0;L;;;;;N;;;;;
-16A3;RUNIC LETTER YR;Lo;0;L;;;;;N;;;;;
-16A4;RUNIC LETTER Y;Lo;0;L;;;;;N;;;;;
-16A5;RUNIC LETTER W;Lo;0;L;;;;;N;;;;;
-16A6;RUNIC LETTER THURISAZ THURS THORN;Lo;0;L;;;;;N;;;;;
-16A7;RUNIC LETTER ETH;Lo;0;L;;;;;N;;;;;
-16A8;RUNIC LETTER ANSUZ A;Lo;0;L;;;;;N;;;;;
-16A9;RUNIC LETTER OS O;Lo;0;L;;;;;N;;;;;
-16AA;RUNIC LETTER AC A;Lo;0;L;;;;;N;;;;;
-16AB;RUNIC LETTER AESC;Lo;0;L;;;;;N;;;;;
-16AC;RUNIC LETTER LONG-BRANCH-OSS O;Lo;0;L;;;;;N;;;;;
-16AD;RUNIC LETTER SHORT-TWIG-OSS O;Lo;0;L;;;;;N;;;;;
-16AE;RUNIC LETTER O;Lo;0;L;;;;;N;;;;;
-16AF;RUNIC LETTER OE;Lo;0;L;;;;;N;;;;;
-16B0;RUNIC LETTER ON;Lo;0;L;;;;;N;;;;;
-16B1;RUNIC LETTER RAIDO RAD REID R;Lo;0;L;;;;;N;;;;;
-16B2;RUNIC LETTER KAUNA;Lo;0;L;;;;;N;;;;;
-16B3;RUNIC LETTER CEN;Lo;0;L;;;;;N;;;;;
-16B4;RUNIC LETTER KAUN K;Lo;0;L;;;;;N;;;;;
-16B5;RUNIC LETTER G;Lo;0;L;;;;;N;;;;;
-16B6;RUNIC LETTER ENG;Lo;0;L;;;;;N;;;;;
-16B7;RUNIC LETTER GEBO GYFU G;Lo;0;L;;;;;N;;;;;
-16B8;RUNIC LETTER GAR;Lo;0;L;;;;;N;;;;;
-16B9;RUNIC LETTER WUNJO WYNN W;Lo;0;L;;;;;N;;;;;
-16BA;RUNIC LETTER HAGLAZ H;Lo;0;L;;;;;N;;;;;
-16BB;RUNIC LETTER HAEGL H;Lo;0;L;;;;;N;;;;;
-16BC;RUNIC LETTER LONG-BRANCH-HAGALL H;Lo;0;L;;;;;N;;;;;
-16BD;RUNIC LETTER SHORT-TWIG-HAGALL H;Lo;0;L;;;;;N;;;;;
-16BE;RUNIC LETTER NAUDIZ NYD NAUD N;Lo;0;L;;;;;N;;;;;
-16BF;RUNIC LETTER SHORT-TWIG-NAUD N;Lo;0;L;;;;;N;;;;;
-16C0;RUNIC LETTER DOTTED-N;Lo;0;L;;;;;N;;;;;
-16C1;RUNIC LETTER ISAZ IS ISS I;Lo;0;L;;;;;N;;;;;
-16C2;RUNIC LETTER E;Lo;0;L;;;;;N;;;;;
-16C3;RUNIC LETTER JERAN J;Lo;0;L;;;;;N;;;;;
-16C4;RUNIC LETTER GER;Lo;0;L;;;;;N;;;;;
-16C5;RUNIC LETTER LONG-BRANCH-AR AE;Lo;0;L;;;;;N;;;;;
-16C6;RUNIC LETTER SHORT-TWIG-AR A;Lo;0;L;;;;;N;;;;;
-16C7;RUNIC LETTER IWAZ EOH;Lo;0;L;;;;;N;;;;;
-16C8;RUNIC LETTER PERTHO PEORTH P;Lo;0;L;;;;;N;;;;;
-16C9;RUNIC LETTER ALGIZ EOLHX;Lo;0;L;;;;;N;;;;;
-16CA;RUNIC LETTER SOWILO S;Lo;0;L;;;;;N;;;;;
-16CB;RUNIC LETTER SIGEL LONG-BRANCH-SOL S;Lo;0;L;;;;;N;;;;;
-16CC;RUNIC LETTER SHORT-TWIG-SOL S;Lo;0;L;;;;;N;;;;;
-16CD;RUNIC LETTER C;Lo;0;L;;;;;N;;;;;
-16CE;RUNIC LETTER Z;Lo;0;L;;;;;N;;;;;
-16CF;RUNIC LETTER TIWAZ TIR TYR T;Lo;0;L;;;;;N;;;;;
-16D0;RUNIC LETTER SHORT-TWIG-TYR T;Lo;0;L;;;;;N;;;;;
-16D1;RUNIC LETTER D;Lo;0;L;;;;;N;;;;;
-16D2;RUNIC LETTER BERKANAN BEORC BJARKAN B;Lo;0;L;;;;;N;;;;;
-16D3;RUNIC LETTER SHORT-TWIG-BJARKAN B;Lo;0;L;;;;;N;;;;;
-16D4;RUNIC LETTER DOTTED-P;Lo;0;L;;;;;N;;;;;
-16D5;RUNIC LETTER OPEN-P;Lo;0;L;;;;;N;;;;;
-16D6;RUNIC LETTER EHWAZ EH E;Lo;0;L;;;;;N;;;;;
-16D7;RUNIC LETTER MANNAZ MAN M;Lo;0;L;;;;;N;;;;;
-16D8;RUNIC LETTER LONG-BRANCH-MADR M;Lo;0;L;;;;;N;;;;;
-16D9;RUNIC LETTER SHORT-TWIG-MADR M;Lo;0;L;;;;;N;;;;;
-16DA;RUNIC LETTER LAUKAZ LAGU LOGR L;Lo;0;L;;;;;N;;;;;
-16DB;RUNIC LETTER DOTTED-L;Lo;0;L;;;;;N;;;;;
-16DC;RUNIC LETTER INGWAZ;Lo;0;L;;;;;N;;;;;
-16DD;RUNIC LETTER ING;Lo;0;L;;;;;N;;;;;
-16DE;RUNIC LETTER DAGAZ DAEG D;Lo;0;L;;;;;N;;;;;
-16DF;RUNIC LETTER OTHALAN ETHEL O;Lo;0;L;;;;;N;;;;;
-16E0;RUNIC LETTER EAR;Lo;0;L;;;;;N;;;;;
-16E1;RUNIC LETTER IOR;Lo;0;L;;;;;N;;;;;
-16E2;RUNIC LETTER CWEORTH;Lo;0;L;;;;;N;;;;;
-16E3;RUNIC LETTER CALC;Lo;0;L;;;;;N;;;;;
-16E4;RUNIC LETTER CEALC;Lo;0;L;;;;;N;;;;;
-16E5;RUNIC LETTER STAN;Lo;0;L;;;;;N;;;;;
-16E6;RUNIC LETTER LONG-BRANCH-YR;Lo;0;L;;;;;N;;;;;
-16E7;RUNIC LETTER SHORT-TWIG-YR;Lo;0;L;;;;;N;;;;;
-16E8;RUNIC LETTER ICELANDIC-YR;Lo;0;L;;;;;N;;;;;
-16E9;RUNIC LETTER Q;Lo;0;L;;;;;N;;;;;
-16EA;RUNIC LETTER X;Lo;0;L;;;;;N;;;;;
-16EB;RUNIC SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;;
-16EC;RUNIC MULTIPLE PUNCTUATION;Po;0;L;;;;;N;;;;;
-16ED;RUNIC CROSS PUNCTUATION;Po;0;L;;;;;N;;;;;
-16EE;RUNIC ARLAUG SYMBOL;Nl;0;L;;;;17;N;;;;;
-16EF;RUNIC TVIMADUR SYMBOL;Nl;0;L;;;;18;N;;;;;
-16F0;RUNIC BELGTHOR SYMBOL;Nl;0;L;;;;19;N;;;;;
-1700;TAGALOG LETTER A;Lo;0;L;;;;;N;;;;;
-1701;TAGALOG LETTER I;Lo;0;L;;;;;N;;;;;
-1702;TAGALOG LETTER U;Lo;0;L;;;;;N;;;;;
-1703;TAGALOG LETTER KA;Lo;0;L;;;;;N;;;;;
-1704;TAGALOG LETTER GA;Lo;0;L;;;;;N;;;;;
-1705;TAGALOG LETTER NGA;Lo;0;L;;;;;N;;;;;
-1706;TAGALOG LETTER TA;Lo;0;L;;;;;N;;;;;
-1707;TAGALOG LETTER DA;Lo;0;L;;;;;N;;;;;
-1708;TAGALOG LETTER NA;Lo;0;L;;;;;N;;;;;
-1709;TAGALOG LETTER PA;Lo;0;L;;;;;N;;;;;
-170A;TAGALOG LETTER BA;Lo;0;L;;;;;N;;;;;
-170B;TAGALOG LETTER MA;Lo;0;L;;;;;N;;;;;
-170C;TAGALOG LETTER YA;Lo;0;L;;;;;N;;;;;
-170E;TAGALOG LETTER LA;Lo;0;L;;;;;N;;;;;
-170F;TAGALOG LETTER WA;Lo;0;L;;;;;N;;;;;
-1710;TAGALOG LETTER SA;Lo;0;L;;;;;N;;;;;
-1711;TAGALOG LETTER HA;Lo;0;L;;;;;N;;;;;
-1712;TAGALOG VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
-1713;TAGALOG VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-1714;TAGALOG SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
-1720;HANUNOO LETTER A;Lo;0;L;;;;;N;;;;;
-1721;HANUNOO LETTER I;Lo;0;L;;;;;N;;;;;
-1722;HANUNOO LETTER U;Lo;0;L;;;;;N;;;;;
-1723;HANUNOO LETTER KA;Lo;0;L;;;;;N;;;;;
-1724;HANUNOO LETTER GA;Lo;0;L;;;;;N;;;;;
-1725;HANUNOO LETTER NGA;Lo;0;L;;;;;N;;;;;
-1726;HANUNOO LETTER TA;Lo;0;L;;;;;N;;;;;
-1727;HANUNOO LETTER DA;Lo;0;L;;;;;N;;;;;
-1728;HANUNOO LETTER NA;Lo;0;L;;;;;N;;;;;
-1729;HANUNOO LETTER PA;Lo;0;L;;;;;N;;;;;
-172A;HANUNOO LETTER BA;Lo;0;L;;;;;N;;;;;
-172B;HANUNOO LETTER MA;Lo;0;L;;;;;N;;;;;
-172C;HANUNOO LETTER YA;Lo;0;L;;;;;N;;;;;
-172D;HANUNOO LETTER RA;Lo;0;L;;;;;N;;;;;
-172E;HANUNOO LETTER LA;Lo;0;L;;;;;N;;;;;
-172F;HANUNOO LETTER WA;Lo;0;L;;;;;N;;;;;
-1730;HANUNOO LETTER SA;Lo;0;L;;;;;N;;;;;
-1731;HANUNOO LETTER HA;Lo;0;L;;;;;N;;;;;
-1732;HANUNOO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
-1733;HANUNOO VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-1734;HANUNOO SIGN PAMUDPOD;Mn;9;NSM;;;;;N;;;;;
-1735;PHILIPPINE SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;;
-1736;PHILIPPINE DOUBLE PUNCTUATION;Po;0;L;;;;;N;;;;;
-1740;BUHID LETTER A;Lo;0;L;;;;;N;;;;;
-1741;BUHID LETTER I;Lo;0;L;;;;;N;;;;;
-1742;BUHID LETTER U;Lo;0;L;;;;;N;;;;;
-1743;BUHID LETTER KA;Lo;0;L;;;;;N;;;;;
-1744;BUHID LETTER GA;Lo;0;L;;;;;N;;;;;
-1745;BUHID LETTER NGA;Lo;0;L;;;;;N;;;;;
-1746;BUHID LETTER TA;Lo;0;L;;;;;N;;;;;
-1747;BUHID LETTER DA;Lo;0;L;;;;;N;;;;;
-1748;BUHID LETTER NA;Lo;0;L;;;;;N;;;;;
-1749;BUHID LETTER PA;Lo;0;L;;;;;N;;;;;
-174A;BUHID LETTER BA;Lo;0;L;;;;;N;;;;;
-174B;BUHID LETTER MA;Lo;0;L;;;;;N;;;;;
-174C;BUHID LETTER YA;Lo;0;L;;;;;N;;;;;
-174D;BUHID LETTER RA;Lo;0;L;;;;;N;;;;;
-174E;BUHID LETTER LA;Lo;0;L;;;;;N;;;;;
-174F;BUHID LETTER WA;Lo;0;L;;;;;N;;;;;
-1750;BUHID LETTER SA;Lo;0;L;;;;;N;;;;;
-1751;BUHID LETTER HA;Lo;0;L;;;;;N;;;;;
-1752;BUHID VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
-1753;BUHID VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-1760;TAGBANWA LETTER A;Lo;0;L;;;;;N;;;;;
-1761;TAGBANWA LETTER I;Lo;0;L;;;;;N;;;;;
-1762;TAGBANWA LETTER U;Lo;0;L;;;;;N;;;;;
-1763;TAGBANWA LETTER KA;Lo;0;L;;;;;N;;;;;
-1764;TAGBANWA LETTER GA;Lo;0;L;;;;;N;;;;;
-1765;TAGBANWA LETTER NGA;Lo;0;L;;;;;N;;;;;
-1766;TAGBANWA LETTER TA;Lo;0;L;;;;;N;;;;;
-1767;TAGBANWA LETTER DA;Lo;0;L;;;;;N;;;;;
-1768;TAGBANWA LETTER NA;Lo;0;L;;;;;N;;;;;
-1769;TAGBANWA LETTER PA;Lo;0;L;;;;;N;;;;;
-176A;TAGBANWA LETTER BA;Lo;0;L;;;;;N;;;;;
-176B;TAGBANWA LETTER MA;Lo;0;L;;;;;N;;;;;
-176C;TAGBANWA LETTER YA;Lo;0;L;;;;;N;;;;;
-176E;TAGBANWA LETTER LA;Lo;0;L;;;;;N;;;;;
-176F;TAGBANWA LETTER WA;Lo;0;L;;;;;N;;;;;
-1770;TAGBANWA LETTER SA;Lo;0;L;;;;;N;;;;;
-1772;TAGBANWA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
-1773;TAGBANWA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-1780;KHMER LETTER KA;Lo;0;L;;;;;N;;;;;
-1781;KHMER LETTER KHA;Lo;0;L;;;;;N;;;;;
-1782;KHMER LETTER KO;Lo;0;L;;;;;N;;;;;
-1783;KHMER LETTER KHO;Lo;0;L;;;;;N;;;;;
-1784;KHMER LETTER NGO;Lo;0;L;;;;;N;;;;;
-1785;KHMER LETTER CA;Lo;0;L;;;;;N;;;;;
-1786;KHMER LETTER CHA;Lo;0;L;;;;;N;;;;;
-1787;KHMER LETTER CO;Lo;0;L;;;;;N;;;;;
-1788;KHMER LETTER CHO;Lo;0;L;;;;;N;;;;;
-1789;KHMER LETTER NYO;Lo;0;L;;;;;N;;;;;
-178A;KHMER LETTER DA;Lo;0;L;;;;;N;;;;;
-178B;KHMER LETTER TTHA;Lo;0;L;;;;;N;;;;;
-178C;KHMER LETTER DO;Lo;0;L;;;;;N;;;;;
-178D;KHMER LETTER TTHO;Lo;0;L;;;;;N;;;;;
-178E;KHMER LETTER NNO;Lo;0;L;;;;;N;;;;;
-178F;KHMER LETTER TA;Lo;0;L;;;;;N;;;;;
-1790;KHMER LETTER THA;Lo;0;L;;;;;N;;;;;
-1791;KHMER LETTER TO;Lo;0;L;;;;;N;;;;;
-1792;KHMER LETTER THO;Lo;0;L;;;;;N;;;;;
-1793;KHMER LETTER NO;Lo;0;L;;;;;N;;;;;
-1794;KHMER LETTER BA;Lo;0;L;;;;;N;;;;;
-1795;KHMER LETTER PHA;Lo;0;L;;;;;N;;;;;
-1796;KHMER LETTER PO;Lo;0;L;;;;;N;;;;;
-1797;KHMER LETTER PHO;Lo;0;L;;;;;N;;;;;
-1798;KHMER LETTER MO;Lo;0;L;;;;;N;;;;;
-1799;KHMER LETTER YO;Lo;0;L;;;;;N;;;;;
-179A;KHMER LETTER RO;Lo;0;L;;;;;N;;;;;
-179B;KHMER LETTER LO;Lo;0;L;;;;;N;;;;;
-179C;KHMER LETTER VO;Lo;0;L;;;;;N;;;;;
-179D;KHMER LETTER SHA;Lo;0;L;;;;;N;;;;;
-179E;KHMER LETTER SSO;Lo;0;L;;;;;N;;;;;
-179F;KHMER LETTER SA;Lo;0;L;;;;;N;;;;;
-17A0;KHMER LETTER HA;Lo;0;L;;;;;N;;;;;
-17A1;KHMER LETTER LA;Lo;0;L;;;;;N;;;;;
-17A2;KHMER LETTER QA;Lo;0;L;;;;;N;;;;;
-17A3;KHMER INDEPENDENT VOWEL QAQ;Lo;0;L;;;;;N;;;;;
-17A4;KHMER INDEPENDENT VOWEL QAA;Lo;0;L;;;;;N;;;;;
-17A5;KHMER INDEPENDENT VOWEL QI;Lo;0;L;;;;;N;;;;;
-17A6;KHMER INDEPENDENT VOWEL QII;Lo;0;L;;;;;N;;;;;
-17A7;KHMER INDEPENDENT VOWEL QU;Lo;0;L;;;;;N;;;;;
-17A8;KHMER INDEPENDENT VOWEL QUK;Lo;0;L;;;;;N;;;;;
-17A9;KHMER INDEPENDENT VOWEL QUU;Lo;0;L;;;;;N;;;;;
-17AA;KHMER INDEPENDENT VOWEL QUUV;Lo;0;L;;;;;N;;;;;
-17AB;KHMER INDEPENDENT VOWEL RY;Lo;0;L;;;;;N;;;;;
-17AC;KHMER INDEPENDENT VOWEL RYY;Lo;0;L;;;;;N;;;;;
-17AD;KHMER INDEPENDENT VOWEL LY;Lo;0;L;;;;;N;;;;;
-17AE;KHMER INDEPENDENT VOWEL LYY;Lo;0;L;;;;;N;;;;;
-17AF;KHMER INDEPENDENT VOWEL QE;Lo;0;L;;;;;N;;;;;
-17B0;KHMER INDEPENDENT VOWEL QAI;Lo;0;L;;;;;N;;;;;
-17B1;KHMER INDEPENDENT VOWEL QOO TYPE ONE;Lo;0;L;;;;;N;;;;;
-17B2;KHMER INDEPENDENT VOWEL QOO TYPE TWO;Lo;0;L;;;;;N;;;;;
-17B3;KHMER INDEPENDENT VOWEL QAU;Lo;0;L;;;;;N;;;;;
-17B4;KHMER VOWEL INHERENT AQ;Mn;0;NSM;;;;;N;;;;;
-17B5;KHMER VOWEL INHERENT AA;Mn;0;NSM;;;;;N;;;;;
-17B6;KHMER VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-17B7;KHMER VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
-17B8;KHMER VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
-17B9;KHMER VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;;
-17BA;KHMER VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;;
-17BB;KHMER VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-17BC;KHMER VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
-17BD;KHMER VOWEL SIGN UA;Mn;0;NSM;;;;;N;;;;;
-17BE;KHMER VOWEL SIGN OE;Mc;0;L;;;;;N;;;;;
-17BF;KHMER VOWEL SIGN YA;Mc;0;L;;;;;N;;;;;
-17C0;KHMER VOWEL SIGN IE;Mc;0;L;;;;;N;;;;;
-17C1;KHMER VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
-17C2;KHMER VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
-17C3;KHMER VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
-17C4;KHMER VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
-17C5;KHMER VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
-17C6;KHMER SIGN NIKAHIT;Mn;0;NSM;;;;;N;;;;;
-17C7;KHMER SIGN REAHMUK;Mc;0;L;;;;;N;;;;;
-17C8;KHMER SIGN YUUKALEAPINTU;Mc;0;L;;;;;N;;;;;
-17C9;KHMER SIGN MUUSIKATOAN;Mn;0;NSM;;;;;N;;;;;
-17CA;KHMER SIGN TRIISAP;Mn;0;NSM;;;;;N;;;;;
-17CB;KHMER SIGN BANTOC;Mn;0;NSM;;;;;N;;;;;
-17CC;KHMER SIGN ROBAT;Mn;0;NSM;;;;;N;;;;;
-17CD;KHMER SIGN TOANDAKHIAT;Mn;0;NSM;;;;;N;;;;;
-17CE;KHMER SIGN KAKABAT;Mn;0;NSM;;;;;N;;;;;
-17CF;KHMER SIGN AHSDA;Mn;0;NSM;;;;;N;;;;;
-17D0;KHMER SIGN SAMYOK SANNYA;Mn;0;NSM;;;;;N;;;;;
-17D1;KHMER SIGN VIRIAM;Mn;0;NSM;;;;;N;;;;;
-17D2;KHMER SIGN COENG;Mn;9;NSM;;;;;N;;;;;
-17D3;KHMER SIGN BATHAMASAT;Mn;0;NSM;;;;;N;;;;;
-17D4;KHMER SIGN KHAN;Po;0;L;;;;;N;;;;;
-17D5;KHMER SIGN BARIYOOSAN;Po;0;L;;;;;N;;;;;
-17D6;KHMER SIGN CAMNUC PII KUUH;Po;0;L;;;;;N;;;;;
-17D7;KHMER SIGN LEK TOO;Lm;0;L;;;;;N;;;;;
-17D8;KHMER SIGN BEYYAL;Po;0;L;;;;;N;;;;;
-17D9;KHMER SIGN PHNAEK MUAN;Po;0;L;;;;;N;;;;;
-17DA;KHMER SIGN KOOMUUT;Po;0;L;;;;;N;;;;;
-17DB;KHMER CURRENCY SYMBOL RIEL;Sc;0;ET;;;;;N;;;;;
-17DC;KHMER SIGN AVAKRAHASANYA;Lo;0;L;;;;;N;;;;;
-17DD;KHMER SIGN ATTHACAN;Mn;230;NSM;;;;;N;;;;;
-17E0;KHMER DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-17E1;KHMER DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-17E2;KHMER DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-17E3;KHMER DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-17E4;KHMER DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-17E5;KHMER DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-17E6;KHMER DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-17E7;KHMER DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-17E8;KHMER DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-17E9;KHMER DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-17F0;KHMER SYMBOL LEK ATTAK SON;No;0;ON;;;;0;N;;;;;
-17F1;KHMER SYMBOL LEK ATTAK MUOY;No;0;ON;;;;1;N;;;;;
-17F2;KHMER SYMBOL LEK ATTAK PII;No;0;ON;;;;2;N;;;;;
-17F3;KHMER SYMBOL LEK ATTAK BEI;No;0;ON;;;;3;N;;;;;
-17F4;KHMER SYMBOL LEK ATTAK BUON;No;0;ON;;;;4;N;;;;;
-17F5;KHMER SYMBOL LEK ATTAK PRAM;No;0;ON;;;;5;N;;;;;
-17F6;KHMER SYMBOL LEK ATTAK PRAM-MUOY;No;0;ON;;;;6;N;;;;;
-17F7;KHMER SYMBOL LEK ATTAK PRAM-PII;No;0;ON;;;;7;N;;;;;
-17F8;KHMER SYMBOL LEK ATTAK PRAM-BEI;No;0;ON;;;;8;N;;;;;
-17F9;KHMER SYMBOL LEK ATTAK PRAM-BUON;No;0;ON;;;;9;N;;;;;
-1800;MONGOLIAN BIRGA;Po;0;ON;;;;;N;;;;;
-1801;MONGOLIAN ELLIPSIS;Po;0;ON;;;;;N;;;;;
-1802;MONGOLIAN COMMA;Po;0;ON;;;;;N;;;;;
-1803;MONGOLIAN FULL STOP;Po;0;ON;;;;;N;;;;;
-1804;MONGOLIAN COLON;Po;0;ON;;;;;N;;;;;
-1805;MONGOLIAN FOUR DOTS;Po;0;ON;;;;;N;;;;;
-1806;MONGOLIAN TODO SOFT HYPHEN;Pd;0;ON;;;;;N;;;;;
-1807;MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER;Po;0;ON;;;;;N;;;;;
-1808;MONGOLIAN MANCHU COMMA;Po;0;ON;;;;;N;;;;;
-1809;MONGOLIAN MANCHU FULL STOP;Po;0;ON;;;;;N;;;;;
-180A;MONGOLIAN NIRUGU;Po;0;ON;;;;;N;;;;;
-180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Mn;0;NSM;;;;;N;;;;;
-180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Mn;0;NSM;;;;;N;;;;;
-180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Mn;0;NSM;;;;;N;;;;;
-180E;MONGOLIAN VOWEL SEPARATOR;Zs;0;WS;;;;;N;;;;;
-1810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-1811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-1812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-1813;MONGOLIAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-1814;MONGOLIAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-1815;MONGOLIAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-1816;MONGOLIAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-1817;MONGOLIAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-1818;MONGOLIAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-1819;MONGOLIAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-1820;MONGOLIAN LETTER A;Lo;0;L;;;;;N;;;;;
-1821;MONGOLIAN LETTER E;Lo;0;L;;;;;N;;;;;
-1822;MONGOLIAN LETTER I;Lo;0;L;;;;;N;;;;;
-1823;MONGOLIAN LETTER O;Lo;0;L;;;;;N;;;;;
-1824;MONGOLIAN LETTER U;Lo;0;L;;;;;N;;;;;
-1825;MONGOLIAN LETTER OE;Lo;0;L;;;;;N;;;;;
-1826;MONGOLIAN LETTER UE;Lo;0;L;;;;;N;;;;;
-1827;MONGOLIAN LETTER EE;Lo;0;L;;;;;N;;;;;
-1828;MONGOLIAN LETTER NA;Lo;0;L;;;;;N;;;;;
-1829;MONGOLIAN LETTER ANG;Lo;0;L;;;;;N;;;;;
-182A;MONGOLIAN LETTER BA;Lo;0;L;;;;;N;;;;;
-182B;MONGOLIAN LETTER PA;Lo;0;L;;;;;N;;;;;
-182C;MONGOLIAN LETTER QA;Lo;0;L;;;;;N;;;;;
-182D;MONGOLIAN LETTER GA;Lo;0;L;;;;;N;;;;;
-182E;MONGOLIAN LETTER MA;Lo;0;L;;;;;N;;;;;
-182F;MONGOLIAN LETTER LA;Lo;0;L;;;;;N;;;;;
-1830;MONGOLIAN LETTER SA;Lo;0;L;;;;;N;;;;;
-1831;MONGOLIAN LETTER SHA;Lo;0;L;;;;;N;;;;;
-1832;MONGOLIAN LETTER TA;Lo;0;L;;;;;N;;;;;
-1833;MONGOLIAN LETTER DA;Lo;0;L;;;;;N;;;;;
-1834;MONGOLIAN LETTER CHA;Lo;0;L;;;;;N;;;;;
-1835;MONGOLIAN LETTER JA;Lo;0;L;;;;;N;;;;;
-1836;MONGOLIAN LETTER YA;Lo;0;L;;;;;N;;;;;
-1837;MONGOLIAN LETTER RA;Lo;0;L;;;;;N;;;;;
-1838;MONGOLIAN LETTER WA;Lo;0;L;;;;;N;;;;;
-1839;MONGOLIAN LETTER FA;Lo;0;L;;;;;N;;;;;
-183A;MONGOLIAN LETTER KA;Lo;0;L;;;;;N;;;;;
-183B;MONGOLIAN LETTER KHA;Lo;0;L;;;;;N;;;;;
-183C;MONGOLIAN LETTER TSA;Lo;0;L;;;;;N;;;;;
-183D;MONGOLIAN LETTER ZA;Lo;0;L;;;;;N;;;;;
-183E;MONGOLIAN LETTER HAA;Lo;0;L;;;;;N;;;;;
-183F;MONGOLIAN LETTER ZRA;Lo;0;L;;;;;N;;;;;
-1840;MONGOLIAN LETTER LHA;Lo;0;L;;;;;N;;;;;
-1841;MONGOLIAN LETTER ZHI;Lo;0;L;;;;;N;;;;;
-1842;MONGOLIAN LETTER CHI;Lo;0;L;;;;;N;;;;;
-1843;MONGOLIAN LETTER TODO LONG VOWEL SIGN;Lm;0;L;;;;;N;;;;;
-1844;MONGOLIAN LETTER TODO E;Lo;0;L;;;;;N;;;;;
-1845;MONGOLIAN LETTER TODO I;Lo;0;L;;;;;N;;;;;
-1846;MONGOLIAN LETTER TODO O;Lo;0;L;;;;;N;;;;;
-1847;MONGOLIAN LETTER TODO U;Lo;0;L;;;;;N;;;;;
-1848;MONGOLIAN LETTER TODO OE;Lo;0;L;;;;;N;;;;;
-1849;MONGOLIAN LETTER TODO UE;Lo;0;L;;;;;N;;;;;
-184A;MONGOLIAN LETTER TODO ANG;Lo;0;L;;;;;N;;;;;
-184B;MONGOLIAN LETTER TODO BA;Lo;0;L;;;;;N;;;;;
-184C;MONGOLIAN LETTER TODO PA;Lo;0;L;;;;;N;;;;;
-184D;MONGOLIAN LETTER TODO QA;Lo;0;L;;;;;N;;;;;
-184E;MONGOLIAN LETTER TODO GA;Lo;0;L;;;;;N;;;;;
-184F;MONGOLIAN LETTER TODO MA;Lo;0;L;;;;;N;;;;;
-1850;MONGOLIAN LETTER TODO TA;Lo;0;L;;;;;N;;;;;
-1851;MONGOLIAN LETTER TODO DA;Lo;0;L;;;;;N;;;;;
-1852;MONGOLIAN LETTER TODO CHA;Lo;0;L;;;;;N;;;;;
-1853;MONGOLIAN LETTER TODO JA;Lo;0;L;;;;;N;;;;;
-1854;MONGOLIAN LETTER TODO TSA;Lo;0;L;;;;;N;;;;;
-1855;MONGOLIAN LETTER TODO YA;Lo;0;L;;;;;N;;;;;
-1856;MONGOLIAN LETTER TODO WA;Lo;0;L;;;;;N;;;;;
-1857;MONGOLIAN LETTER TODO KA;Lo;0;L;;;;;N;;;;;
-1858;MONGOLIAN LETTER TODO GAA;Lo;0;L;;;;;N;;;;;
-1859;MONGOLIAN LETTER TODO HAA;Lo;0;L;;;;;N;;;;;
-185A;MONGOLIAN LETTER TODO JIA;Lo;0;L;;;;;N;;;;;
-185B;MONGOLIAN LETTER TODO NIA;Lo;0;L;;;;;N;;;;;
-185C;MONGOLIAN LETTER TODO DZA;Lo;0;L;;;;;N;;;;;
-185D;MONGOLIAN LETTER SIBE E;Lo;0;L;;;;;N;;;;;
-185E;MONGOLIAN LETTER SIBE I;Lo;0;L;;;;;N;;;;;
-185F;MONGOLIAN LETTER SIBE IY;Lo;0;L;;;;;N;;;;;
-1860;MONGOLIAN LETTER SIBE UE;Lo;0;L;;;;;N;;;;;
-1861;MONGOLIAN LETTER SIBE U;Lo;0;L;;;;;N;;;;;
-1862;MONGOLIAN LETTER SIBE ANG;Lo;0;L;;;;;N;;;;;
-1863;MONGOLIAN LETTER SIBE KA;Lo;0;L;;;;;N;;;;;
-1864;MONGOLIAN LETTER SIBE GA;Lo;0;L;;;;;N;;;;;
-1865;MONGOLIAN LETTER SIBE HA;Lo;0;L;;;;;N;;;;;
-1866;MONGOLIAN LETTER SIBE PA;Lo;0;L;;;;;N;;;;;
-1867;MONGOLIAN LETTER SIBE SHA;Lo;0;L;;;;;N;;;;;
-1868;MONGOLIAN LETTER SIBE TA;Lo;0;L;;;;;N;;;;;
-1869;MONGOLIAN LETTER SIBE DA;Lo;0;L;;;;;N;;;;;
-186A;MONGOLIAN LETTER SIBE JA;Lo;0;L;;;;;N;;;;;
-186B;MONGOLIAN LETTER SIBE FA;Lo;0;L;;;;;N;;;;;
-186C;MONGOLIAN LETTER SIBE GAA;Lo;0;L;;;;;N;;;;;
-186D;MONGOLIAN LETTER SIBE HAA;Lo;0;L;;;;;N;;;;;
-186E;MONGOLIAN LETTER SIBE TSA;Lo;0;L;;;;;N;;;;;
-186F;MONGOLIAN LETTER SIBE ZA;Lo;0;L;;;;;N;;;;;
-1870;MONGOLIAN LETTER SIBE RAA;Lo;0;L;;;;;N;;;;;
-1871;MONGOLIAN LETTER SIBE CHA;Lo;0;L;;;;;N;;;;;
-1872;MONGOLIAN LETTER SIBE ZHA;Lo;0;L;;;;;N;;;;;
-1873;MONGOLIAN LETTER MANCHU I;Lo;0;L;;;;;N;;;;;
-1874;MONGOLIAN LETTER MANCHU KA;Lo;0;L;;;;;N;;;;;
-1875;MONGOLIAN LETTER MANCHU RA;Lo;0;L;;;;;N;;;;;
-1876;MONGOLIAN LETTER MANCHU FA;Lo;0;L;;;;;N;;;;;
-1877;MONGOLIAN LETTER MANCHU ZHA;Lo;0;L;;;;;N;;;;;
-1880;MONGOLIAN LETTER ALI GALI ANUSVARA ONE;Lo;0;L;;;;;N;;;;;
-1881;MONGOLIAN LETTER ALI GALI VISARGA ONE;Lo;0;L;;;;;N;;;;;
-1882;MONGOLIAN LETTER ALI GALI DAMARU;Lo;0;L;;;;;N;;;;;
-1883;MONGOLIAN LETTER ALI GALI UBADAMA;Lo;0;L;;;;;N;;;;;
-1884;MONGOLIAN LETTER ALI GALI INVERTED UBADAMA;Lo;0;L;;;;;N;;;;;
-1885;MONGOLIAN LETTER ALI GALI BALUDA;Lo;0;L;;;;;N;;;;;
-1886;MONGOLIAN LETTER ALI GALI THREE BALUDA;Lo;0;L;;;;;N;;;;;
-1887;MONGOLIAN LETTER ALI GALI A;Lo;0;L;;;;;N;;;;;
-1888;MONGOLIAN LETTER ALI GALI I;Lo;0;L;;;;;N;;;;;
-1889;MONGOLIAN LETTER ALI GALI KA;Lo;0;L;;;;;N;;;;;
-188A;MONGOLIAN LETTER ALI GALI NGA;Lo;0;L;;;;;N;;;;;
-188B;MONGOLIAN LETTER ALI GALI CA;Lo;0;L;;;;;N;;;;;
-188C;MONGOLIAN LETTER ALI GALI TTA;Lo;0;L;;;;;N;;;;;
-188D;MONGOLIAN LETTER ALI GALI TTHA;Lo;0;L;;;;;N;;;;;
-188E;MONGOLIAN LETTER ALI GALI DDA;Lo;0;L;;;;;N;;;;;
-188F;MONGOLIAN LETTER ALI GALI NNA;Lo;0;L;;;;;N;;;;;
-1890;MONGOLIAN LETTER ALI GALI TA;Lo;0;L;;;;;N;;;;;
-1891;MONGOLIAN LETTER ALI GALI DA;Lo;0;L;;;;;N;;;;;
-1892;MONGOLIAN LETTER ALI GALI PA;Lo;0;L;;;;;N;;;;;
-1893;MONGOLIAN LETTER ALI GALI PHA;Lo;0;L;;;;;N;;;;;
-1894;MONGOLIAN LETTER ALI GALI SSA;Lo;0;L;;;;;N;;;;;
-1895;MONGOLIAN LETTER ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
-1896;MONGOLIAN LETTER ALI GALI ZA;Lo;0;L;;;;;N;;;;;
-1897;MONGOLIAN LETTER ALI GALI AH;Lo;0;L;;;;;N;;;;;
-1898;MONGOLIAN LETTER TODO ALI GALI TA;Lo;0;L;;;;;N;;;;;
-1899;MONGOLIAN LETTER TODO ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
-189A;MONGOLIAN LETTER MANCHU ALI GALI GHA;Lo;0;L;;;;;N;;;;;
-189B;MONGOLIAN LETTER MANCHU ALI GALI NGA;Lo;0;L;;;;;N;;;;;
-189C;MONGOLIAN LETTER MANCHU ALI GALI CA;Lo;0;L;;;;;N;;;;;
-189D;MONGOLIAN LETTER MANCHU ALI GALI JHA;Lo;0;L;;;;;N;;;;;
-189E;MONGOLIAN LETTER MANCHU ALI GALI TTA;Lo;0;L;;;;;N;;;;;
-189F;MONGOLIAN LETTER MANCHU ALI GALI DDHA;Lo;0;L;;;;;N;;;;;
-18A0;MONGOLIAN LETTER MANCHU ALI GALI TA;Lo;0;L;;;;;N;;;;;
-18A1;MONGOLIAN LETTER MANCHU ALI GALI DHA;Lo;0;L;;;;;N;;;;;
-18A2;MONGOLIAN LETTER MANCHU ALI GALI SSA;Lo;0;L;;;;;N;;;;;
-18A3;MONGOLIAN LETTER MANCHU ALI GALI CYA;Lo;0;L;;;;;N;;;;;
-18A4;MONGOLIAN LETTER MANCHU ALI GALI ZHA;Lo;0;L;;;;;N;;;;;
-18A5;MONGOLIAN LETTER MANCHU ALI GALI ZA;Lo;0;L;;;;;N;;;;;
-18A6;MONGOLIAN LETTER ALI GALI HALF U;Lo;0;L;;;;;N;;;;;
-18A7;MONGOLIAN LETTER ALI GALI HALF YA;Lo;0;L;;;;;N;;;;;
-18A8;MONGOLIAN LETTER MANCHU ALI GALI BHA;Lo;0;L;;;;;N;;;;;
-18A9;MONGOLIAN LETTER ALI GALI DAGALGA;Mn;228;NSM;;;;;N;;;;;
-18AA;MONGOLIAN LETTER MANCHU ALI GALI LHA;Lo;0;L;;;;;N;;;;;
-18B0;CANADIAN SYLLABICS OY;Lo;0;L;;;;;N;;;;;
-18B1;CANADIAN SYLLABICS AY;Lo;0;L;;;;;N;;;;;
-18B2;CANADIAN SYLLABICS AAY;Lo;0;L;;;;;N;;;;;
-18B3;CANADIAN SYLLABICS WAY;Lo;0;L;;;;;N;;;;;
-18B4;CANADIAN SYLLABICS POY;Lo;0;L;;;;;N;;;;;
-18B5;CANADIAN SYLLABICS PAY;Lo;0;L;;;;;N;;;;;
-18B6;CANADIAN SYLLABICS PWOY;Lo;0;L;;;;;N;;;;;
-18B7;CANADIAN SYLLABICS TAY;Lo;0;L;;;;;N;;;;;
-18B8;CANADIAN SYLLABICS KAY;Lo;0;L;;;;;N;;;;;
-18B9;CANADIAN SYLLABICS KWAY;Lo;0;L;;;;;N;;;;;
-18BA;CANADIAN SYLLABICS MAY;Lo;0;L;;;;;N;;;;;
-18BB;CANADIAN SYLLABICS NOY;Lo;0;L;;;;;N;;;;;
-18BC;CANADIAN SYLLABICS NAY;Lo;0;L;;;;;N;;;;;
-18BD;CANADIAN SYLLABICS LAY;Lo;0;L;;;;;N;;;;;
-18BE;CANADIAN SYLLABICS SOY;Lo;0;L;;;;;N;;;;;
-18BF;CANADIAN SYLLABICS SAY;Lo;0;L;;;;;N;;;;;
-18C0;CANADIAN SYLLABICS SHOY;Lo;0;L;;;;;N;;;;;
-18C1;CANADIAN SYLLABICS SHAY;Lo;0;L;;;;;N;;;;;
-18C2;CANADIAN SYLLABICS SHWOY;Lo;0;L;;;;;N;;;;;
-18C3;CANADIAN SYLLABICS YOY;Lo;0;L;;;;;N;;;;;
-18C4;CANADIAN SYLLABICS YAY;Lo;0;L;;;;;N;;;;;
-18C5;CANADIAN SYLLABICS RAY;Lo;0;L;;;;;N;;;;;
-18C6;CANADIAN SYLLABICS NWI;Lo;0;L;;;;;N;;;;;
-18C7;CANADIAN SYLLABICS OJIBWAY NWI;Lo;0;L;;;;;N;;;;;
-18C8;CANADIAN SYLLABICS NWII;Lo;0;L;;;;;N;;;;;
-18C9;CANADIAN SYLLABICS OJIBWAY NWII;Lo;0;L;;;;;N;;;;;
-18CA;CANADIAN SYLLABICS NWO;Lo;0;L;;;;;N;;;;;
-18CB;CANADIAN SYLLABICS OJIBWAY NWO;Lo;0;L;;;;;N;;;;;
-18CC;CANADIAN SYLLABICS NWOO;Lo;0;L;;;;;N;;;;;
-18CD;CANADIAN SYLLABICS OJIBWAY NWOO;Lo;0;L;;;;;N;;;;;
-18CE;CANADIAN SYLLABICS RWEE;Lo;0;L;;;;;N;;;;;
-18CF;CANADIAN SYLLABICS RWI;Lo;0;L;;;;;N;;;;;
-18D0;CANADIAN SYLLABICS RWII;Lo;0;L;;;;;N;;;;;
-18D1;CANADIAN SYLLABICS RWO;Lo;0;L;;;;;N;;;;;
-18D2;CANADIAN SYLLABICS RWOO;Lo;0;L;;;;;N;;;;;
-18D3;CANADIAN SYLLABICS RWA;Lo;0;L;;;;;N;;;;;
-18D4;CANADIAN SYLLABICS OJIBWAY P;Lo;0;L;;;;;N;;;;;
-18D5;CANADIAN SYLLABICS OJIBWAY T;Lo;0;L;;;;;N;;;;;
-18D6;CANADIAN SYLLABICS OJIBWAY K;Lo;0;L;;;;;N;;;;;
-18D7;CANADIAN SYLLABICS OJIBWAY C;Lo;0;L;;;;;N;;;;;
-18D8;CANADIAN SYLLABICS OJIBWAY M;Lo;0;L;;;;;N;;;;;
-18D9;CANADIAN SYLLABICS OJIBWAY N;Lo;0;L;;;;;N;;;;;
-18DA;CANADIAN SYLLABICS OJIBWAY S;Lo;0;L;;;;;N;;;;;
-18DB;CANADIAN SYLLABICS OJIBWAY SH;Lo;0;L;;;;;N;;;;;
-18DC;CANADIAN SYLLABICS EASTERN W;Lo;0;L;;;;;N;;;;;
-18DD;CANADIAN SYLLABICS WESTERN W;Lo;0;L;;;;;N;;;;;
-18DE;CANADIAN SYLLABICS FINAL SMALL RING;Lo;0;L;;;;;N;;;;;
-18DF;CANADIAN SYLLABICS FINAL RAISED DOT;Lo;0;L;;;;;N;;;;;
-18E0;CANADIAN SYLLABICS R-CREE RWE;Lo;0;L;;;;;N;;;;;
-18E1;CANADIAN SYLLABICS WEST-CREE LOO;Lo;0;L;;;;;N;;;;;
-18E2;CANADIAN SYLLABICS WEST-CREE LAA;Lo;0;L;;;;;N;;;;;
-18E3;CANADIAN SYLLABICS THWE;Lo;0;L;;;;;N;;;;;
-18E4;CANADIAN SYLLABICS THWA;Lo;0;L;;;;;N;;;;;
-18E5;CANADIAN SYLLABICS TTHWE;Lo;0;L;;;;;N;;;;;
-18E6;CANADIAN SYLLABICS TTHOO;Lo;0;L;;;;;N;;;;;
-18E7;CANADIAN SYLLABICS TTHAA;Lo;0;L;;;;;N;;;;;
-18E8;CANADIAN SYLLABICS TLHWE;Lo;0;L;;;;;N;;;;;
-18E9;CANADIAN SYLLABICS TLHOO;Lo;0;L;;;;;N;;;;;
-18EA;CANADIAN SYLLABICS SAYISI SHWE;Lo;0;L;;;;;N;;;;;
-18EB;CANADIAN SYLLABICS SAYISI SHOO;Lo;0;L;;;;;N;;;;;
-18EC;CANADIAN SYLLABICS SAYISI HOO;Lo;0;L;;;;;N;;;;;
-18ED;CANADIAN SYLLABICS CARRIER GWU;Lo;0;L;;;;;N;;;;;
-18EE;CANADIAN SYLLABICS CARRIER DENE GEE;Lo;0;L;;;;;N;;;;;
-18EF;CANADIAN SYLLABICS CARRIER GAA;Lo;0;L;;;;;N;;;;;
-18F0;CANADIAN SYLLABICS CARRIER GWA;Lo;0;L;;;;;N;;;;;
-18F1;CANADIAN SYLLABICS SAYISI JUU;Lo;0;L;;;;;N;;;;;
-18F2;CANADIAN SYLLABICS CARRIER JWA;Lo;0;L;;;;;N;;;;;
-18F3;CANADIAN SYLLABICS BEAVER DENE L;Lo;0;L;;;;;N;;;;;
-18F4;CANADIAN SYLLABICS BEAVER DENE R;Lo;0;L;;;;;N;;;;;
-18F5;CANADIAN SYLLABICS CARRIER DENTAL S;Lo;0;L;;;;;N;;;;;
-1900;LIMBU VOWEL-CARRIER LETTER;Lo;0;L;;;;;N;;;;;
-1901;LIMBU LETTER KA;Lo;0;L;;;;;N;;;;;
-1902;LIMBU LETTER KHA;Lo;0;L;;;;;N;;;;;
-1903;LIMBU LETTER GA;Lo;0;L;;;;;N;;;;;
-1904;LIMBU LETTER GHA;Lo;0;L;;;;;N;;;;;
-1905;LIMBU LETTER NGA;Lo;0;L;;;;;N;;;;;
-1906;LIMBU LETTER CA;Lo;0;L;;;;;N;;;;;
-1907;LIMBU LETTER CHA;Lo;0;L;;;;;N;;;;;
-1908;LIMBU LETTER JA;Lo;0;L;;;;;N;;;;;
-1909;LIMBU LETTER JHA;Lo;0;L;;;;;N;;;;;
-190A;LIMBU LETTER YAN;Lo;0;L;;;;;N;;;;;
-190B;LIMBU LETTER TA;Lo;0;L;;;;;N;;;;;
-190C;LIMBU LETTER THA;Lo;0;L;;;;;N;;;;;
-190D;LIMBU LETTER DA;Lo;0;L;;;;;N;;;;;
-190E;LIMBU LETTER DHA;Lo;0;L;;;;;N;;;;;
-190F;LIMBU LETTER NA;Lo;0;L;;;;;N;;;;;
-1910;LIMBU LETTER PA;Lo;0;L;;;;;N;;;;;
-1911;LIMBU LETTER PHA;Lo;0;L;;;;;N;;;;;
-1912;LIMBU LETTER BA;Lo;0;L;;;;;N;;;;;
-1913;LIMBU LETTER BHA;Lo;0;L;;;;;N;;;;;
-1914;LIMBU LETTER MA;Lo;0;L;;;;;N;;;;;
-1915;LIMBU LETTER YA;Lo;0;L;;;;;N;;;;;
-1916;LIMBU LETTER RA;Lo;0;L;;;;;N;;;;;
-1917;LIMBU LETTER LA;Lo;0;L;;;;;N;;;;;
-1918;LIMBU LETTER WA;Lo;0;L;;;;;N;;;;;
-1919;LIMBU LETTER SHA;Lo;0;L;;;;;N;;;;;
-191A;LIMBU LETTER SSA;Lo;0;L;;;;;N;;;;;
-191B;LIMBU LETTER SA;Lo;0;L;;;;;N;;;;;
-191C;LIMBU LETTER HA;Lo;0;L;;;;;N;;;;;
-1920;LIMBU VOWEL SIGN A;Mn;0;NSM;;;;;N;;;;;
-1921;LIMBU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
-1922;LIMBU VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-1923;LIMBU VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
-1924;LIMBU VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
-1925;LIMBU VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
-1926;LIMBU VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
-1927;LIMBU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
-1928;LIMBU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
-1929;LIMBU SUBJOINED LETTER YA;Mc;0;L;;;;;N;;;;;
-192A;LIMBU SUBJOINED LETTER RA;Mc;0;L;;;;;N;;;;;
-192B;LIMBU SUBJOINED LETTER WA;Mc;0;L;;;;;N;;;;;
-1930;LIMBU SMALL LETTER KA;Mc;0;L;;;;;N;;;;;
-1931;LIMBU SMALL LETTER NGA;Mc;0;L;;;;;N;;;;;
-1932;LIMBU SMALL LETTER ANUSVARA;Mn;0;NSM;;;;;N;;;;;
-1933;LIMBU SMALL LETTER TA;Mc;0;L;;;;;N;;;;;
-1934;LIMBU SMALL LETTER NA;Mc;0;L;;;;;N;;;;;
-1935;LIMBU SMALL LETTER PA;Mc;0;L;;;;;N;;;;;
-1936;LIMBU SMALL LETTER MA;Mc;0;L;;;;;N;;;;;
-1937;LIMBU SMALL LETTER RA;Mc;0;L;;;;;N;;;;;
-1938;LIMBU SMALL LETTER LA;Mc;0;L;;;;;N;;;;;
-1939;LIMBU SIGN MUKPHRENG;Mn;222;NSM;;;;;N;;;;;
-193A;LIMBU SIGN KEMPHRENG;Mn;230;NSM;;;;;N;;;;;
-193B;LIMBU SIGN SA-I;Mn;220;NSM;;;;;N;;;;;
-1940;LIMBU SIGN LOO;So;0;ON;;;;;N;;;;;
-1944;LIMBU EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
-1945;LIMBU QUESTION MARK;Po;0;ON;;;;;N;;;;;
-1946;LIMBU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-1947;LIMBU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-1948;LIMBU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-1949;LIMBU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-194A;LIMBU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-194B;LIMBU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-194C;LIMBU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-194D;LIMBU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-194E;LIMBU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-194F;LIMBU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-1950;TAI LE LETTER KA;Lo;0;L;;;;;N;;;;;
-1951;TAI LE LETTER XA;Lo;0;L;;;;;N;;;;;
-1952;TAI LE LETTER NGA;Lo;0;L;;;;;N;;;;;
-1953;TAI LE LETTER TSA;Lo;0;L;;;;;N;;;;;
-1954;TAI LE LETTER SA;Lo;0;L;;;;;N;;;;;
-1955;TAI LE LETTER YA;Lo;0;L;;;;;N;;;;;
-1956;TAI LE LETTER TA;Lo;0;L;;;;;N;;;;;
-1957;TAI LE LETTER THA;Lo;0;L;;;;;N;;;;;
-1958;TAI LE LETTER LA;Lo;0;L;;;;;N;;;;;
-1959;TAI LE LETTER PA;Lo;0;L;;;;;N;;;;;
-195A;TAI LE LETTER PHA;Lo;0;L;;;;;N;;;;;
-195B;TAI LE LETTER MA;Lo;0;L;;;;;N;;;;;
-195C;TAI LE LETTER FA;Lo;0;L;;;;;N;;;;;
-195D;TAI LE LETTER VA;Lo;0;L;;;;;N;;;;;
-195E;TAI LE LETTER HA;Lo;0;L;;;;;N;;;;;
-195F;TAI LE LETTER QA;Lo;0;L;;;;;N;;;;;
-1960;TAI LE LETTER KHA;Lo;0;L;;;;;N;;;;;
-1961;TAI LE LETTER TSHA;Lo;0;L;;;;;N;;;;;
-1962;TAI LE LETTER NA;Lo;0;L;;;;;N;;;;;
-1963;TAI LE LETTER A;Lo;0;L;;;;;N;;;;;
-1964;TAI LE LETTER I;Lo;0;L;;;;;N;;;;;
-1965;TAI LE LETTER EE;Lo;0;L;;;;;N;;;;;
-1966;TAI LE LETTER EH;Lo;0;L;;;;;N;;;;;
-1967;TAI LE LETTER U;Lo;0;L;;;;;N;;;;;
-1968;TAI LE LETTER OO;Lo;0;L;;;;;N;;;;;
-1969;TAI LE LETTER O;Lo;0;L;;;;;N;;;;;
-196A;TAI LE LETTER UE;Lo;0;L;;;;;N;;;;;
-196B;TAI LE LETTER E;Lo;0;L;;;;;N;;;;;
-196C;TAI LE LETTER AUE;Lo;0;L;;;;;N;;;;;
-196D;TAI LE LETTER AI;Lo;0;L;;;;;N;;;;;
-1970;TAI LE LETTER TONE-2;Lo;0;L;;;;;N;;;;;
-1971;TAI LE LETTER TONE-3;Lo;0;L;;;;;N;;;;;
-1972;TAI LE LETTER TONE-4;Lo;0;L;;;;;N;;;;;
-1973;TAI LE LETTER TONE-5;Lo;0;L;;;;;N;;;;;
-1974;TAI LE LETTER TONE-6;Lo;0;L;;;;;N;;;;;
-1980;NEW TAI LUE LETTER HIGH QA;Lo;0;L;;;;;N;;;;;
-1981;NEW TAI LUE LETTER LOW QA;Lo;0;L;;;;;N;;;;;
-1982;NEW TAI LUE LETTER HIGH KA;Lo;0;L;;;;;N;;;;;
-1983;NEW TAI LUE LETTER HIGH XA;Lo;0;L;;;;;N;;;;;
-1984;NEW TAI LUE LETTER HIGH NGA;Lo;0;L;;;;;N;;;;;
-1985;NEW TAI LUE LETTER LOW KA;Lo;0;L;;;;;N;;;;;
-1986;NEW TAI LUE LETTER LOW XA;Lo;0;L;;;;;N;;;;;
-1987;NEW TAI LUE LETTER LOW NGA;Lo;0;L;;;;;N;;;;;
-1988;NEW TAI LUE LETTER HIGH TSA;Lo;0;L;;;;;N;;;;;
-1989;NEW TAI LUE LETTER HIGH SA;Lo;0;L;;;;;N;;;;;
-198A;NEW TAI LUE LETTER HIGH YA;Lo;0;L;;;;;N;;;;;
-198B;NEW TAI LUE LETTER LOW TSA;Lo;0;L;;;;;N;;;;;
-198C;NEW TAI LUE LETTER LOW SA;Lo;0;L;;;;;N;;;;;
-198D;NEW TAI LUE LETTER LOW YA;Lo;0;L;;;;;N;;;;;
-198E;NEW TAI LUE LETTER HIGH TA;Lo;0;L;;;;;N;;;;;
-198F;NEW TAI LUE LETTER HIGH THA;Lo;0;L;;;;;N;;;;;
-1990;NEW TAI LUE LETTER HIGH NA;Lo;0;L;;;;;N;;;;;
-1991;NEW TAI LUE LETTER LOW TA;Lo;0;L;;;;;N;;;;;
-1992;NEW TAI LUE LETTER LOW THA;Lo;0;L;;;;;N;;;;;
-1993;NEW TAI LUE LETTER LOW NA;Lo;0;L;;;;;N;;;;;
-1994;NEW TAI LUE LETTER HIGH PA;Lo;0;L;;;;;N;;;;;
-1995;NEW TAI LUE LETTER HIGH PHA;Lo;0;L;;;;;N;;;;;
-1996;NEW TAI LUE LETTER HIGH MA;Lo;0;L;;;;;N;;;;;
-1997;NEW TAI LUE LETTER LOW PA;Lo;0;L;;;;;N;;;;;
-1998;NEW TAI LUE LETTER LOW PHA;Lo;0;L;;;;;N;;;;;
-1999;NEW TAI LUE LETTER LOW MA;Lo;0;L;;;;;N;;;;;
-199A;NEW TAI LUE LETTER HIGH FA;Lo;0;L;;;;;N;;;;;
-199B;NEW TAI LUE LETTER HIGH VA;Lo;0;L;;;;;N;;;;;
-199C;NEW TAI LUE LETTER HIGH LA;Lo;0;L;;;;;N;;;;;
-199D;NEW TAI LUE LETTER LOW FA;Lo;0;L;;;;;N;;;;;
-199E;NEW TAI LUE LETTER LOW VA;Lo;0;L;;;;;N;;;;;
-199F;NEW TAI LUE LETTER LOW LA;Lo;0;L;;;;;N;;;;;
-19A0;NEW TAI LUE LETTER HIGH HA;Lo;0;L;;;;;N;;;;;
-19A1;NEW TAI LUE LETTER HIGH DA;Lo;0;L;;;;;N;;;;;
-19A2;NEW TAI LUE LETTER HIGH BA;Lo;0;L;;;;;N;;;;;
-19A3;NEW TAI LUE LETTER LOW HA;Lo;0;L;;;;;N;;;;;
-19A4;NEW TAI LUE LETTER LOW DA;Lo;0;L;;;;;N;;;;;
-19A5;NEW TAI LUE LETTER LOW BA;Lo;0;L;;;;;N;;;;;
-19A6;NEW TAI LUE LETTER HIGH KVA;Lo;0;L;;;;;N;;;;;
-19A7;NEW TAI LUE LETTER HIGH XVA;Lo;0;L;;;;;N;;;;;
-19A8;NEW TAI LUE LETTER LOW KVA;Lo;0;L;;;;;N;;;;;
-19A9;NEW TAI LUE LETTER LOW XVA;Lo;0;L;;;;;N;;;;;
-19AA;NEW TAI LUE LETTER HIGH SUA;Lo;0;L;;;;;N;;;;;
-19AB;NEW TAI LUE LETTER LOW SUA;Lo;0;L;;;;;N;;;;;
-19B0;NEW TAI LUE VOWEL SIGN VOWEL SHORTENER;Mc;0;L;;;;;N;;;;;
-19B1;NEW TAI LUE VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-19B2;NEW TAI LUE VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
-19B3;NEW TAI LUE VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
-19B4;NEW TAI LUE VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
-19B5;NEW TAI LUE VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
-19B6;NEW TAI LUE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
-19B7;NEW TAI LUE VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
-19B8;NEW TAI LUE VOWEL SIGN OA;Mc;0;L;;;;;N;;;;;
-19B9;NEW TAI LUE VOWEL SIGN UE;Mc;0;L;;;;;N;;;;;
-19BA;NEW TAI LUE VOWEL SIGN AY;Mc;0;L;;;;;N;;;;;
-19BB;NEW TAI LUE VOWEL SIGN AAY;Mc;0;L;;;;;N;;;;;
-19BC;NEW TAI LUE VOWEL SIGN UY;Mc;0;L;;;;;N;;;;;
-19BD;NEW TAI LUE VOWEL SIGN OY;Mc;0;L;;;;;N;;;;;
-19BE;NEW TAI LUE VOWEL SIGN OAY;Mc;0;L;;;;;N;;;;;
-19BF;NEW TAI LUE VOWEL SIGN UEY;Mc;0;L;;;;;N;;;;;
-19C0;NEW TAI LUE VOWEL SIGN IY;Mc;0;L;;;;;N;;;;;
-19C1;NEW TAI LUE LETTER FINAL V;Lo;0;L;;;;;N;;;;;
-19C2;NEW TAI LUE LETTER FINAL NG;Lo;0;L;;;;;N;;;;;
-19C3;NEW TAI LUE LETTER FINAL N;Lo;0;L;;;;;N;;;;;
-19C4;NEW TAI LUE LETTER FINAL M;Lo;0;L;;;;;N;;;;;
-19C5;NEW TAI LUE LETTER FINAL K;Lo;0;L;;;;;N;;;;;
-19C6;NEW TAI LUE LETTER FINAL D;Lo;0;L;;;;;N;;;;;
-19C7;NEW TAI LUE LETTER FINAL B;Lo;0;L;;;;;N;;;;;
-19C8;NEW TAI LUE TONE MARK-1;Mc;0;L;;;;;N;;;;;
-19C9;NEW TAI LUE TONE MARK-2;Mc;0;L;;;;;N;;;;;
-19D0;NEW TAI LUE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-19D1;NEW TAI LUE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-19D2;NEW TAI LUE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-19D3;NEW TAI LUE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-19D4;NEW TAI LUE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-19D5;NEW TAI LUE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-19D6;NEW TAI LUE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-19D7;NEW TAI LUE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-19D8;NEW TAI LUE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-19D9;NEW TAI LUE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-19DA;NEW TAI LUE THAM DIGIT ONE;No;0;L;;;1;1;N;;;;;
-19DE;NEW TAI LUE SIGN LAE;So;0;ON;;;;;N;;;;;
-19DF;NEW TAI LUE SIGN LAEV;So;0;ON;;;;;N;;;;;
-19E0;KHMER SYMBOL PATHAMASAT;So;0;ON;;;;;N;;;;;
-19E1;KHMER SYMBOL MUOY KOET;So;0;ON;;;;;N;;;;;
-19E2;KHMER SYMBOL PII KOET;So;0;ON;;;;;N;;;;;
-19E3;KHMER SYMBOL BEI KOET;So;0;ON;;;;;N;;;;;
-19E4;KHMER SYMBOL BUON KOET;So;0;ON;;;;;N;;;;;
-19E5;KHMER SYMBOL PRAM KOET;So;0;ON;;;;;N;;;;;
-19E6;KHMER SYMBOL PRAM-MUOY KOET;So;0;ON;;;;;N;;;;;
-19E7;KHMER SYMBOL PRAM-PII KOET;So;0;ON;;;;;N;;;;;
-19E8;KHMER SYMBOL PRAM-BEI KOET;So;0;ON;;;;;N;;;;;
-19E9;KHMER SYMBOL PRAM-BUON KOET;So;0;ON;;;;;N;;;;;
-19EA;KHMER SYMBOL DAP KOET;So;0;ON;;;;;N;;;;;
-19EB;KHMER SYMBOL DAP-MUOY KOET;So;0;ON;;;;;N;;;;;
-19EC;KHMER SYMBOL DAP-PII KOET;So;0;ON;;;;;N;;;;;
-19ED;KHMER SYMBOL DAP-BEI KOET;So;0;ON;;;;;N;;;;;
-19EE;KHMER SYMBOL DAP-BUON KOET;So;0;ON;;;;;N;;;;;
-19EF;KHMER SYMBOL DAP-PRAM KOET;So;0;ON;;;;;N;;;;;
-19F0;KHMER SYMBOL TUTEYASAT;So;0;ON;;;;;N;;;;;
-19F1;KHMER SYMBOL MUOY ROC;So;0;ON;;;;;N;;;;;
-19F2;KHMER SYMBOL PII ROC;So;0;ON;;;;;N;;;;;
-19F3;KHMER SYMBOL BEI ROC;So;0;ON;;;;;N;;;;;
-19F4;KHMER SYMBOL BUON ROC;So;0;ON;;;;;N;;;;;
-19F5;KHMER SYMBOL PRAM ROC;So;0;ON;;;;;N;;;;;
-19F6;KHMER SYMBOL PRAM-MUOY ROC;So;0;ON;;;;;N;;;;;
-19F7;KHMER SYMBOL PRAM-PII ROC;So;0;ON;;;;;N;;;;;
-19F8;KHMER SYMBOL PRAM-BEI ROC;So;0;ON;;;;;N;;;;;
-19F9;KHMER SYMBOL PRAM-BUON ROC;So;0;ON;;;;;N;;;;;
-19FA;KHMER SYMBOL DAP ROC;So;0;ON;;;;;N;;;;;
-19FB;KHMER SYMBOL DAP-MUOY ROC;So;0;ON;;;;;N;;;;;
-19FC;KHMER SYMBOL DAP-PII ROC;So;0;ON;;;;;N;;;;;
-19FD;KHMER SYMBOL DAP-BEI ROC;So;0;ON;;;;;N;;;;;
-19FE;KHMER SYMBOL DAP-BUON ROC;So;0;ON;;;;;N;;;;;
-19FF;KHMER SYMBOL DAP-PRAM ROC;So;0;ON;;;;;N;;;;;
-1A00;BUGINESE LETTER KA;Lo;0;L;;;;;N;;;;;
-1A01;BUGINESE LETTER GA;Lo;0;L;;;;;N;;;;;
-1A02;BUGINESE LETTER NGA;Lo;0;L;;;;;N;;;;;
-1A03;BUGINESE LETTER NGKA;Lo;0;L;;;;;N;;;;;
-1A04;BUGINESE LETTER PA;Lo;0;L;;;;;N;;;;;
-1A05;BUGINESE LETTER BA;Lo;0;L;;;;;N;;;;;
-1A06;BUGINESE LETTER MA;Lo;0;L;;;;;N;;;;;
-1A07;BUGINESE LETTER MPA;Lo;0;L;;;;;N;;;;;
-1A08;BUGINESE LETTER TA;Lo;0;L;;;;;N;;;;;
-1A09;BUGINESE LETTER DA;Lo;0;L;;;;;N;;;;;
-1A0A;BUGINESE LETTER NA;Lo;0;L;;;;;N;;;;;
-1A0B;BUGINESE LETTER NRA;Lo;0;L;;;;;N;;;;;
-1A0C;BUGINESE LETTER CA;Lo;0;L;;;;;N;;;;;
-1A0D;BUGINESE LETTER JA;Lo;0;L;;;;;N;;;;;
-1A0E;BUGINESE LETTER NYA;Lo;0;L;;;;;N;;;;;
-1A0F;BUGINESE LETTER NYCA;Lo;0;L;;;;;N;;;;;
-1A10;BUGINESE LETTER YA;Lo;0;L;;;;;N;;;;;
-1A11;BUGINESE LETTER RA;Lo;0;L;;;;;N;;;;;
-1A12;BUGINESE LETTER LA;Lo;0;L;;;;;N;;;;;
-1A13;BUGINESE LETTER VA;Lo;0;L;;;;;N;;;;;
-1A14;BUGINESE LETTER SA;Lo;0;L;;;;;N;;;;;
-1A15;BUGINESE LETTER A;Lo;0;L;;;;;N;;;;;
-1A16;BUGINESE LETTER HA;Lo;0;L;;;;;N;;;;;
-1A17;BUGINESE VOWEL SIGN I;Mn;230;NSM;;;;;N;;;;;
-1A18;BUGINESE VOWEL SIGN U;Mn;220;NSM;;;;;N;;;;;
-1A19;BUGINESE VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
-1A1A;BUGINESE VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
-1A1B;BUGINESE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
-1A1E;BUGINESE PALLAWA;Po;0;L;;;;;N;;;;;
-1A1F;BUGINESE END OF SECTION;Po;0;L;;;;;N;;;;;
-1A20;TAI THAM LETTER HIGH KA;Lo;0;L;;;;;N;;;;;
-1A21;TAI THAM LETTER HIGH KHA;Lo;0;L;;;;;N;;;;;
-1A22;TAI THAM LETTER HIGH KXA;Lo;0;L;;;;;N;;;;;
-1A23;TAI THAM LETTER LOW KA;Lo;0;L;;;;;N;;;;;
-1A24;TAI THAM LETTER LOW KXA;Lo;0;L;;;;;N;;;;;
-1A25;TAI THAM LETTER LOW KHA;Lo;0;L;;;;;N;;;;;
-1A26;TAI THAM LETTER NGA;Lo;0;L;;;;;N;;;;;
-1A27;TAI THAM LETTER HIGH CA;Lo;0;L;;;;;N;;;;;
-1A28;TAI THAM LETTER HIGH CHA;Lo;0;L;;;;;N;;;;;
-1A29;TAI THAM LETTER LOW CA;Lo;0;L;;;;;N;;;;;
-1A2A;TAI THAM LETTER LOW SA;Lo;0;L;;;;;N;;;;;
-1A2B;TAI THAM LETTER LOW CHA;Lo;0;L;;;;;N;;;;;
-1A2C;TAI THAM LETTER NYA;Lo;0;L;;;;;N;;;;;
-1A2D;TAI THAM LETTER RATA;Lo;0;L;;;;;N;;;;;
-1A2E;TAI THAM LETTER HIGH RATHA;Lo;0;L;;;;;N;;;;;
-1A2F;TAI THAM LETTER DA;Lo;0;L;;;;;N;;;;;
-1A30;TAI THAM LETTER LOW RATHA;Lo;0;L;;;;;N;;;;;
-1A31;TAI THAM LETTER RANA;Lo;0;L;;;;;N;;;;;
-1A32;TAI THAM LETTER HIGH TA;Lo;0;L;;;;;N;;;;;
-1A33;TAI THAM LETTER HIGH THA;Lo;0;L;;;;;N;;;;;
-1A34;TAI THAM LETTER LOW TA;Lo;0;L;;;;;N;;;;;
-1A35;TAI THAM LETTER LOW THA;Lo;0;L;;;;;N;;;;;
-1A36;TAI THAM LETTER NA;Lo;0;L;;;;;N;;;;;
-1A37;TAI THAM LETTER BA;Lo;0;L;;;;;N;;;;;
-1A38;TAI THAM LETTER HIGH PA;Lo;0;L;;;;;N;;;;;
-1A39;TAI THAM LETTER HIGH PHA;Lo;0;L;;;;;N;;;;;
-1A3A;TAI THAM LETTER HIGH FA;Lo;0;L;;;;;N;;;;;
-1A3B;TAI THAM LETTER LOW PA;Lo;0;L;;;;;N;;;;;
-1A3C;TAI THAM LETTER LOW FA;Lo;0;L;;;;;N;;;;;
-1A3D;TAI THAM LETTER LOW PHA;Lo;0;L;;;;;N;;;;;
-1A3E;TAI THAM LETTER MA;Lo;0;L;;;;;N;;;;;
-1A3F;TAI THAM LETTER LOW YA;Lo;0;L;;;;;N;;;;;
-1A40;TAI THAM LETTER HIGH YA;Lo;0;L;;;;;N;;;;;
-1A41;TAI THAM LETTER RA;Lo;0;L;;;;;N;;;;;
-1A42;TAI THAM LETTER RUE;Lo;0;L;;;;;N;;;;;
-1A43;TAI THAM LETTER LA;Lo;0;L;;;;;N;;;;;
-1A44;TAI THAM LETTER LUE;Lo;0;L;;;;;N;;;;;
-1A45;TAI THAM LETTER WA;Lo;0;L;;;;;N;;;;;
-1A46;TAI THAM LETTER HIGH SHA;Lo;0;L;;;;;N;;;;;
-1A47;TAI THAM LETTER HIGH SSA;Lo;0;L;;;;;N;;;;;
-1A48;TAI THAM LETTER HIGH SA;Lo;0;L;;;;;N;;;;;
-1A49;TAI THAM LETTER HIGH HA;Lo;0;L;;;;;N;;;;;
-1A4A;TAI THAM LETTER LLA;Lo;0;L;;;;;N;;;;;
-1A4B;TAI THAM LETTER A;Lo;0;L;;;;;N;;;;;
-1A4C;TAI THAM LETTER LOW HA;Lo;0;L;;;;;N;;;;;
-1A4D;TAI THAM LETTER I;Lo;0;L;;;;;N;;;;;
-1A4E;TAI THAM LETTER II;Lo;0;L;;;;;N;;;;;
-1A4F;TAI THAM LETTER U;Lo;0;L;;;;;N;;;;;
-1A50;TAI THAM LETTER UU;Lo;0;L;;;;;N;;;;;
-1A51;TAI THAM LETTER EE;Lo;0;L;;;;;N;;;;;
-1A52;TAI THAM LETTER OO;Lo;0;L;;;;;N;;;;;
-1A53;TAI THAM LETTER LAE;Lo;0;L;;;;;N;;;;;
-1A54;TAI THAM LETTER GREAT SA;Lo;0;L;;;;;N;;;;;
-1A55;TAI THAM CONSONANT SIGN MEDIAL RA;Mc;0;L;;;;;N;;;;;
-1A56;TAI THAM CONSONANT SIGN MEDIAL LA;Mn;0;NSM;;;;;N;;;;;
-1A57;TAI THAM CONSONANT SIGN LA TANG LAI;Mc;0;L;;;;;N;;;;;
-1A58;TAI THAM SIGN MAI KANG LAI;Mn;0;NSM;;;;;N;;;;;
-1A59;TAI THAM CONSONANT SIGN FINAL NGA;Mn;0;NSM;;;;;N;;;;;
-1A5A;TAI THAM CONSONANT SIGN LOW PA;Mn;0;NSM;;;;;N;;;;;
-1A5B;TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA;Mn;0;NSM;;;;;N;;;;;
-1A5C;TAI THAM CONSONANT SIGN MA;Mn;0;NSM;;;;;N;;;;;
-1A5D;TAI THAM CONSONANT SIGN BA;Mn;0;NSM;;;;;N;;;;;
-1A5E;TAI THAM CONSONANT SIGN SA;Mn;0;NSM;;;;;N;;;;;
-1A60;TAI THAM SIGN SAKOT;Mn;9;NSM;;;;;N;;;;;
-1A61;TAI THAM VOWEL SIGN A;Mc;0;L;;;;;N;;;;;
-1A62;TAI THAM VOWEL SIGN MAI SAT;Mn;0;NSM;;;;;N;;;;;
-1A63;TAI THAM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-1A64;TAI THAM VOWEL SIGN TALL AA;Mc;0;L;;;;;N;;;;;
-1A65;TAI THAM VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
-1A66;TAI THAM VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
-1A67;TAI THAM VOWEL SIGN UE;Mn;0;NSM;;;;;N;;;;;
-1A68;TAI THAM VOWEL SIGN UUE;Mn;0;NSM;;;;;N;;;;;
-1A69;TAI THAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-1A6A;TAI THAM VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
-1A6B;TAI THAM VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
-1A6C;TAI THAM VOWEL SIGN OA BELOW;Mn;0;NSM;;;;;N;;;;;
-1A6D;TAI THAM VOWEL SIGN OY;Mc;0;L;;;;;N;;;;;
-1A6E;TAI THAM VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
-1A6F;TAI THAM VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
-1A70;TAI THAM VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
-1A71;TAI THAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
-1A72;TAI THAM VOWEL SIGN THAM AI;Mc;0;L;;;;;N;;;;;
-1A73;TAI THAM VOWEL SIGN OA ABOVE;Mn;0;NSM;;;;;N;;;;;
-1A74;TAI THAM SIGN MAI KANG;Mn;0;NSM;;;;;N;;;;;
-1A75;TAI THAM SIGN TONE-1;Mn;230;NSM;;;;;N;;;;;
-1A76;TAI THAM SIGN TONE-2;Mn;230;NSM;;;;;N;;;;;
-1A77;TAI THAM SIGN KHUEN TONE-3;Mn;230;NSM;;;;;N;;;;;
-1A78;TAI THAM SIGN KHUEN TONE-4;Mn;230;NSM;;;;;N;;;;;
-1A79;TAI THAM SIGN KHUEN TONE-5;Mn;230;NSM;;;;;N;;;;;
-1A7A;TAI THAM SIGN RA HAAM;Mn;230;NSM;;;;;N;;;;;
-1A7B;TAI THAM SIGN MAI SAM;Mn;230;NSM;;;;;N;;;;;
-1A7C;TAI THAM SIGN KHUEN-LUE KARAN;Mn;230;NSM;;;;;N;;;;;
-1A7F;TAI THAM COMBINING CRYPTOGRAMMIC DOT;Mn;220;NSM;;;;;N;;;;;
-1A80;TAI THAM HORA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-1A81;TAI THAM HORA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-1A82;TAI THAM HORA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-1A83;TAI THAM HORA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-1A84;TAI THAM HORA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-1A85;TAI THAM HORA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-1A86;TAI THAM HORA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-1A87;TAI THAM HORA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-1A88;TAI THAM HORA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-1A89;TAI THAM HORA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-1A90;TAI THAM THAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-1A91;TAI THAM THAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-1A92;TAI THAM THAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-1A93;TAI THAM THAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-1A94;TAI THAM THAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-1A95;TAI THAM THAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-1A96;TAI THAM THAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-1A97;TAI THAM THAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-1A98;TAI THAM THAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-1A99;TAI THAM THAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-1AA0;TAI THAM SIGN WIANG;Po;0;L;;;;;N;;;;;
-1AA1;TAI THAM SIGN WIANGWAAK;Po;0;L;;;;;N;;;;;
-1AA2;TAI THAM SIGN SAWAN;Po;0;L;;;;;N;;;;;
-1AA3;TAI THAM SIGN KEOW;Po;0;L;;;;;N;;;;;
-1AA4;TAI THAM SIGN HOY;Po;0;L;;;;;N;;;;;
-1AA5;TAI THAM SIGN DOKMAI;Po;0;L;;;;;N;;;;;
-1AA6;TAI THAM SIGN REVERSED ROTATED RANA;Po;0;L;;;;;N;;;;;
-1AA7;TAI THAM SIGN MAI YAMOK;Lm;0;L;;;;;N;;;;;
-1AA8;TAI THAM SIGN KAAN;Po;0;L;;;;;N;;;;;
-1AA9;TAI THAM SIGN KAANKUU;Po;0;L;;;;;N;;;;;
-1AAA;TAI THAM SIGN SATKAAN;Po;0;L;;;;;N;;;;;
-1AAB;TAI THAM SIGN SATKAANKUU;Po;0;L;;;;;N;;;;;
-1AAC;TAI THAM SIGN HANG;Po;0;L;;;;;N;;;;;
-1AAD;TAI THAM SIGN CAANG;Po;0;L;;;;;N;;;;;
-1B00;BALINESE SIGN ULU RICEM;Mn;0;NSM;;;;;N;;;;;
-1B01;BALINESE SIGN ULU CANDRA;Mn;0;NSM;;;;;N;;;;;
-1B02;BALINESE SIGN CECEK;Mn;0;NSM;;;;;N;;;;;
-1B03;BALINESE SIGN SURANG;Mn;0;NSM;;;;;N;;;;;
-1B04;BALINESE SIGN BISAH;Mc;0;L;;;;;N;;;;;
-1B05;BALINESE LETTER AKARA;Lo;0;L;;;;;N;;;;;
-1B06;BALINESE LETTER AKARA TEDUNG;Lo;0;L;1B05 1B35;;;;N;;;;;
-1B07;BALINESE LETTER IKARA;Lo;0;L;;;;;N;;;;;
-1B08;BALINESE LETTER IKARA TEDUNG;Lo;0;L;1B07 1B35;;;;N;;;;;
-1B09;BALINESE LETTER UKARA;Lo;0;L;;;;;N;;;;;
-1B0A;BALINESE LETTER UKARA TEDUNG;Lo;0;L;1B09 1B35;;;;N;;;;;
-1B0B;BALINESE LETTER RA REPA;Lo;0;L;;;;;N;;;;;
-1B0C;BALINESE LETTER RA REPA TEDUNG;Lo;0;L;1B0B 1B35;;;;N;;;;;
-1B0D;BALINESE LETTER LA LENGA;Lo;0;L;;;;;N;;;;;
-1B0E;BALINESE LETTER LA LENGA TEDUNG;Lo;0;L;1B0D 1B35;;;;N;;;;;
-1B0F;BALINESE LETTER EKARA;Lo;0;L;;;;;N;;;;;
-1B10;BALINESE LETTER AIKARA;Lo;0;L;;;;;N;;;;;
-1B11;BALINESE LETTER OKARA;Lo;0;L;;;;;N;;;;;
-1B12;BALINESE LETTER OKARA TEDUNG;Lo;0;L;1B11 1B35;;;;N;;;;;
-1B13;BALINESE LETTER KA;Lo;0;L;;;;;N;;;;;
-1B14;BALINESE LETTER KA MAHAPRANA;Lo;0;L;;;;;N;;;;;
-1B15;BALINESE LETTER GA;Lo;0;L;;;;;N;;;;;
-1B16;BALINESE LETTER GA GORA;Lo;0;L;;;;;N;;;;;
-1B17;BALINESE LETTER NGA;Lo;0;L;;;;;N;;;;;
-1B18;BALINESE LETTER CA;Lo;0;L;;;;;N;;;;;
-1B19;BALINESE LETTER CA LACA;Lo;0;L;;;;;N;;;;;
-1B1A;BALINESE LETTER JA;Lo;0;L;;;;;N;;;;;
-1B1B;BALINESE LETTER JA JERA;Lo;0;L;;;;;N;;;;;
-1B1C;BALINESE LETTER NYA;Lo;0;L;;;;;N;;;;;
-1B1D;BALINESE LETTER TA LATIK;Lo;0;L;;;;;N;;;;;
-1B1E;BALINESE LETTER TA MURDA MAHAPRANA;Lo;0;L;;;;;N;;;;;
-1B1F;BALINESE LETTER DA MURDA ALPAPRANA;Lo;0;L;;;;;N;;;;;
-1B20;BALINESE LETTER DA MURDA MAHAPRANA;Lo;0;L;;;;;N;;;;;
-1B21;BALINESE LETTER NA RAMBAT;Lo;0;L;;;;;N;;;;;
-1B22;BALINESE LETTER TA;Lo;0;L;;;;;N;;;;;
-1B23;BALINESE LETTER TA TAWA;Lo;0;L;;;;;N;;;;;
-1B24;BALINESE LETTER DA;Lo;0;L;;;;;N;;;;;
-1B25;BALINESE LETTER DA MADU;Lo;0;L;;;;;N;;;;;
-1B26;BALINESE LETTER NA;Lo;0;L;;;;;N;;;;;
-1B27;BALINESE LETTER PA;Lo;0;L;;;;;N;;;;;
-1B28;BALINESE LETTER PA KAPAL;Lo;0;L;;;;;N;;;;;
-1B29;BALINESE LETTER BA;Lo;0;L;;;;;N;;;;;
-1B2A;BALINESE LETTER BA KEMBANG;Lo;0;L;;;;;N;;;;;
-1B2B;BALINESE LETTER MA;Lo;0;L;;;;;N;;;;;
-1B2C;BALINESE LETTER YA;Lo;0;L;;;;;N;;;;;
-1B2D;BALINESE LETTER RA;Lo;0;L;;;;;N;;;;;
-1B2E;BALINESE LETTER LA;Lo;0;L;;;;;N;;;;;
-1B2F;BALINESE LETTER WA;Lo;0;L;;;;;N;;;;;
-1B30;BALINESE LETTER SA SAGA;Lo;0;L;;;;;N;;;;;
-1B31;BALINESE LETTER SA SAPA;Lo;0;L;;;;;N;;;;;
-1B32;BALINESE LETTER SA;Lo;0;L;;;;;N;;;;;
-1B33;BALINESE LETTER HA;Lo;0;L;;;;;N;;;;;
-1B34;BALINESE SIGN REREKAN;Mn;7;NSM;;;;;N;;;;;
-1B35;BALINESE VOWEL SIGN TEDUNG;Mc;0;L;;;;;N;;;;;
-1B36;BALINESE VOWEL SIGN ULU;Mn;0;NSM;;;;;N;;;;;
-1B37;BALINESE VOWEL SIGN ULU SARI;Mn;0;NSM;;;;;N;;;;;
-1B38;BALINESE VOWEL SIGN SUKU;Mn;0;NSM;;;;;N;;;;;
-1B39;BALINESE VOWEL SIGN SUKU ILUT;Mn;0;NSM;;;;;N;;;;;
-1B3A;BALINESE VOWEL SIGN RA REPA;Mn;0;NSM;;;;;N;;;;;
-1B3B;BALINESE VOWEL SIGN RA REPA TEDUNG;Mc;0;L;1B3A 1B35;;;;N;;;;;
-1B3C;BALINESE VOWEL SIGN LA LENGA;Mn;0;NSM;;;;;N;;;;;
-1B3D;BALINESE VOWEL SIGN LA LENGA TEDUNG;Mc;0;L;1B3C 1B35;;;;N;;;;;
-1B3E;BALINESE VOWEL SIGN TALING;Mc;0;L;;;;;N;;;;;
-1B3F;BALINESE VOWEL SIGN TALING REPA;Mc;0;L;;;;;N;;;;;
-1B40;BALINESE VOWEL SIGN TALING TEDUNG;Mc;0;L;1B3E 1B35;;;;N;;;;;
-1B41;BALINESE VOWEL SIGN TALING REPA TEDUNG;Mc;0;L;1B3F 1B35;;;;N;;;;;
-1B42;BALINESE VOWEL SIGN PEPET;Mn;0;NSM;;;;;N;;;;;
-1B43;BALINESE VOWEL SIGN PEPET TEDUNG;Mc;0;L;1B42 1B35;;;;N;;;;;
-1B44;BALINESE ADEG ADEG;Mc;9;L;;;;;N;;;;;
-1B45;BALINESE LETTER KAF SASAK;Lo;0;L;;;;;N;;;;;
-1B46;BALINESE LETTER KHOT SASAK;Lo;0;L;;;;;N;;;;;
-1B47;BALINESE LETTER TZIR SASAK;Lo;0;L;;;;;N;;;;;
-1B48;BALINESE LETTER EF SASAK;Lo;0;L;;;;;N;;;;;
-1B49;BALINESE LETTER VE SASAK;Lo;0;L;;;;;N;;;;;
-1B4A;BALINESE LETTER ZAL SASAK;Lo;0;L;;;;;N;;;;;
-1B4B;BALINESE LETTER ASYURA SASAK;Lo;0;L;;;;;N;;;;;
-1B50;BALINESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-1B51;BALINESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-1B52;BALINESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-1B53;BALINESE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-1B54;BALINESE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-1B55;BALINESE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-1B56;BALINESE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-1B57;BALINESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-1B58;BALINESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-1B59;BALINESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-1B5A;BALINESE PANTI;Po;0;L;;;;;N;;;;;
-1B5B;BALINESE PAMADA;Po;0;L;;;;;N;;;;;
-1B5C;BALINESE WINDU;Po;0;L;;;;;N;;;;;
-1B5D;BALINESE CARIK PAMUNGKAH;Po;0;L;;;;;N;;;;;
-1B5E;BALINESE CARIK SIKI;Po;0;L;;;;;N;;;;;
-1B5F;BALINESE CARIK PAREREN;Po;0;L;;;;;N;;;;;
-1B60;BALINESE PAMENENG;Po;0;L;;;;;N;;;;;
-1B61;BALINESE MUSICAL SYMBOL DONG;So;0;L;;;;;N;;;;;
-1B62;BALINESE MUSICAL SYMBOL DENG;So;0;L;;;;;N;;;;;
-1B63;BALINESE MUSICAL SYMBOL DUNG;So;0;L;;;;;N;;;;;
-1B64;BALINESE MUSICAL SYMBOL DANG;So;0;L;;;;;N;;;;;
-1B65;BALINESE MUSICAL SYMBOL DANG SURANG;So;0;L;;;;;N;;;;;
-1B66;BALINESE MUSICAL SYMBOL DING;So;0;L;;;;;N;;;;;
-1B67;BALINESE MUSICAL SYMBOL DAENG;So;0;L;;;;;N;;;;;
-1B68;BALINESE MUSICAL SYMBOL DEUNG;So;0;L;;;;;N;;;;;
-1B69;BALINESE MUSICAL SYMBOL DAING;So;0;L;;;;;N;;;;;
-1B6A;BALINESE MUSICAL SYMBOL DANG GEDE;So;0;L;;;;;N;;;;;
-1B6B;BALINESE MUSICAL SYMBOL COMBINING TEGEH;Mn;230;NSM;;;;;N;;;;;
-1B6C;BALINESE MUSICAL SYMBOL COMBINING ENDEP;Mn;220;NSM;;;;;N;;;;;
-1B6D;BALINESE MUSICAL SYMBOL COMBINING KEMPUL;Mn;230;NSM;;;;;N;;;;;
-1B6E;BALINESE MUSICAL SYMBOL COMBINING KEMPLI;Mn;230;NSM;;;;;N;;;;;
-1B6F;BALINESE MUSICAL SYMBOL COMBINING JEGOGAN;Mn;230;NSM;;;;;N;;;;;
-1B70;BALINESE MUSICAL SYMBOL COMBINING KEMPUL WITH JEGOGAN;Mn;230;NSM;;;;;N;;;;;
-1B71;BALINESE MUSICAL SYMBOL COMBINING KEMPLI WITH JEGOGAN;Mn;230;NSM;;;;;N;;;;;
-1B72;BALINESE MUSICAL SYMBOL COMBINING BENDE;Mn;230;NSM;;;;;N;;;;;
-1B73;BALINESE MUSICAL SYMBOL COMBINING GONG;Mn;230;NSM;;;;;N;;;;;
-1B74;BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG;So;0;L;;;;;N;;;;;
-1B75;BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DAG;So;0;L;;;;;N;;;;;
-1B76;BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TUK;So;0;L;;;;;N;;;;;
-1B77;BALINESE MUSICAL SYMBOL RIGHT-HAND CLOSED TAK;So;0;L;;;;;N;;;;;
-1B78;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PANG;So;0;L;;;;;N;;;;;
-1B79;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PUNG;So;0;L;;;;;N;;;;;
-1B7A;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK;So;0;L;;;;;N;;;;;
-1B7B;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK;So;0;L;;;;;N;;;;;
-1B7C;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING;So;0;L;;;;;N;;;;;
-1B80;SUNDANESE SIGN PANYECEK;Mn;0;NSM;;;;;N;;;;;
-1B81;SUNDANESE SIGN PANGLAYAR;Mn;0;NSM;;;;;N;;;;;
-1B82;SUNDANESE SIGN PANGWISAD;Mc;0;L;;;;;N;;;;;
-1B83;SUNDANESE LETTER A;Lo;0;L;;;;;N;;;;;
-1B84;SUNDANESE LETTER I;Lo;0;L;;;;;N;;;;;
-1B85;SUNDANESE LETTER U;Lo;0;L;;;;;N;;;;;
-1B86;SUNDANESE LETTER AE;Lo;0;L;;;;;N;;;;;
-1B87;SUNDANESE LETTER O;Lo;0;L;;;;;N;;;;;
-1B88;SUNDANESE LETTER E;Lo;0;L;;;;;N;;;;;
-1B89;SUNDANESE LETTER EU;Lo;0;L;;;;;N;;;;;
-1B8A;SUNDANESE LETTER KA;Lo;0;L;;;;;N;;;;;
-1B8B;SUNDANESE LETTER QA;Lo;0;L;;;;;N;;;;;
-1B8C;SUNDANESE LETTER GA;Lo;0;L;;;;;N;;;;;
-1B8D;SUNDANESE LETTER NGA;Lo;0;L;;;;;N;;;;;
-1B8E;SUNDANESE LETTER CA;Lo;0;L;;;;;N;;;;;
-1B8F;SUNDANESE LETTER JA;Lo;0;L;;;;;N;;;;;
-1B90;SUNDANESE LETTER ZA;Lo;0;L;;;;;N;;;;;
-1B91;SUNDANESE LETTER NYA;Lo;0;L;;;;;N;;;;;
-1B92;SUNDANESE LETTER TA;Lo;0;L;;;;;N;;;;;
-1B93;SUNDANESE LETTER DA;Lo;0;L;;;;;N;;;;;
-1B94;SUNDANESE LETTER NA;Lo;0;L;;;;;N;;;;;
-1B95;SUNDANESE LETTER PA;Lo;0;L;;;;;N;;;;;
-1B96;SUNDANESE LETTER FA;Lo;0;L;;;;;N;;;;;
-1B97;SUNDANESE LETTER VA;Lo;0;L;;;;;N;;;;;
-1B98;SUNDANESE LETTER BA;Lo;0;L;;;;;N;;;;;
-1B99;SUNDANESE LETTER MA;Lo;0;L;;;;;N;;;;;
-1B9A;SUNDANESE LETTER YA;Lo;0;L;;;;;N;;;;;
-1B9B;SUNDANESE LETTER RA;Lo;0;L;;;;;N;;;;;
-1B9C;SUNDANESE LETTER LA;Lo;0;L;;;;;N;;;;;
-1B9D;SUNDANESE LETTER WA;Lo;0;L;;;;;N;;;;;
-1B9E;SUNDANESE LETTER SA;Lo;0;L;;;;;N;;;;;
-1B9F;SUNDANESE LETTER XA;Lo;0;L;;;;;N;;;;;
-1BA0;SUNDANESE LETTER HA;Lo;0;L;;;;;N;;;;;
-1BA1;SUNDANESE CONSONANT SIGN PAMINGKAL;Mc;0;L;;;;;N;;;;;
-1BA2;SUNDANESE CONSONANT SIGN PANYAKRA;Mn;0;NSM;;;;;N;;;;;
-1BA3;SUNDANESE CONSONANT SIGN PANYIKU;Mn;0;NSM;;;;;N;;;;;
-1BA4;SUNDANESE VOWEL SIGN PANGHULU;Mn;0;NSM;;;;;N;;;;;
-1BA5;SUNDANESE VOWEL SIGN PANYUKU;Mn;0;NSM;;;;;N;;;;;
-1BA6;SUNDANESE VOWEL SIGN PANAELAENG;Mc;0;L;;;;;N;;;;;
-1BA7;SUNDANESE VOWEL SIGN PANOLONG;Mc;0;L;;;;;N;;;;;
-1BA8;SUNDANESE VOWEL SIGN PAMEPET;Mn;0;NSM;;;;;N;;;;;
-1BA9;SUNDANESE VOWEL SIGN PANEULEUNG;Mn;0;NSM;;;;;N;;;;;
-1BAA;SUNDANESE SIGN PAMAAEH;Mc;9;L;;;;;N;;;;;
-1BAB;SUNDANESE SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
-1BAC;SUNDANESE CONSONANT SIGN PASANGAN MA;Mc;0;L;;;;;N;;;;;
-1BAD;SUNDANESE CONSONANT SIGN PASANGAN WA;Mc;0;L;;;;;N;;;;;
-1BAE;SUNDANESE LETTER KHA;Lo;0;L;;;;;N;;;;;
-1BAF;SUNDANESE LETTER SYA;Lo;0;L;;;;;N;;;;;
-1BB0;SUNDANESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-1BB1;SUNDANESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-1BB2;SUNDANESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-1BB3;SUNDANESE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-1BB4;SUNDANESE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-1BB5;SUNDANESE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-1BB6;SUNDANESE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-1BB7;SUNDANESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-1BB8;SUNDANESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-1BB9;SUNDANESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-1BBA;SUNDANESE AVAGRAHA;Lo;0;L;;;;;N;;;;;
-1BBB;SUNDANESE LETTER REU;Lo;0;L;;;;;N;;;;;
-1BBC;SUNDANESE LETTER LEU;Lo;0;L;;;;;N;;;;;
-1BBD;SUNDANESE LETTER BHA;Lo;0;L;;;;;N;;;;;
-1BBE;SUNDANESE LETTER FINAL K;Lo;0;L;;;;;N;;;;;
-1BBF;SUNDANESE LETTER FINAL M;Lo;0;L;;;;;N;;;;;
-1BC0;BATAK LETTER A;Lo;0;L;;;;;N;;;;;
-1BC1;BATAK LETTER SIMALUNGUN A;Lo;0;L;;;;;N;;;;;
-1BC2;BATAK LETTER HA;Lo;0;L;;;;;N;;;;;
-1BC3;BATAK LETTER SIMALUNGUN HA;Lo;0;L;;;;;N;;;;;
-1BC4;BATAK LETTER MANDAILING HA;Lo;0;L;;;;;N;;;;;
-1BC5;BATAK LETTER BA;Lo;0;L;;;;;N;;;;;
-1BC6;BATAK LETTER KARO BA;Lo;0;L;;;;;N;;;;;
-1BC7;BATAK LETTER PA;Lo;0;L;;;;;N;;;;;
-1BC8;BATAK LETTER SIMALUNGUN PA;Lo;0;L;;;;;N;;;;;
-1BC9;BATAK LETTER NA;Lo;0;L;;;;;N;;;;;
-1BCA;BATAK LETTER MANDAILING NA;Lo;0;L;;;;;N;;;;;
-1BCB;BATAK LETTER WA;Lo;0;L;;;;;N;;;;;
-1BCC;BATAK LETTER SIMALUNGUN WA;Lo;0;L;;;;;N;;;;;
-1BCD;BATAK LETTER PAKPAK WA;Lo;0;L;;;;;N;;;;;
-1BCE;BATAK LETTER GA;Lo;0;L;;;;;N;;;;;
-1BCF;BATAK LETTER SIMALUNGUN GA;Lo;0;L;;;;;N;;;;;
-1BD0;BATAK LETTER JA;Lo;0;L;;;;;N;;;;;
-1BD1;BATAK LETTER DA;Lo;0;L;;;;;N;;;;;
-1BD2;BATAK LETTER RA;Lo;0;L;;;;;N;;;;;
-1BD3;BATAK LETTER SIMALUNGUN RA;Lo;0;L;;;;;N;;;;;
-1BD4;BATAK LETTER MA;Lo;0;L;;;;;N;;;;;
-1BD5;BATAK LETTER SIMALUNGUN MA;Lo;0;L;;;;;N;;;;;
-1BD6;BATAK LETTER SOUTHERN TA;Lo;0;L;;;;;N;;;;;
-1BD7;BATAK LETTER NORTHERN TA;Lo;0;L;;;;;N;;;;;
-1BD8;BATAK LETTER SA;Lo;0;L;;;;;N;;;;;
-1BD9;BATAK LETTER SIMALUNGUN SA;Lo;0;L;;;;;N;;;;;
-1BDA;BATAK LETTER MANDAILING SA;Lo;0;L;;;;;N;;;;;
-1BDB;BATAK LETTER YA;Lo;0;L;;;;;N;;;;;
-1BDC;BATAK LETTER SIMALUNGUN YA;Lo;0;L;;;;;N;;;;;
-1BDD;BATAK LETTER NGA;Lo;0;L;;;;;N;;;;;
-1BDE;BATAK LETTER LA;Lo;0;L;;;;;N;;;;;
-1BDF;BATAK LETTER SIMALUNGUN LA;Lo;0;L;;;;;N;;;;;
-1BE0;BATAK LETTER NYA;Lo;0;L;;;;;N;;;;;
-1BE1;BATAK LETTER CA;Lo;0;L;;;;;N;;;;;
-1BE2;BATAK LETTER NDA;Lo;0;L;;;;;N;;;;;
-1BE3;BATAK LETTER MBA;Lo;0;L;;;;;N;;;;;
-1BE4;BATAK LETTER I;Lo;0;L;;;;;N;;;;;
-1BE5;BATAK LETTER U;Lo;0;L;;;;;N;;;;;
-1BE6;BATAK SIGN TOMPI;Mn;7;NSM;;;;;N;;;;;
-1BE7;BATAK VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
-1BE8;BATAK VOWEL SIGN PAKPAK E;Mn;0;NSM;;;;;N;;;;;
-1BE9;BATAK VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;;
-1BEA;BATAK VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
-1BEB;BATAK VOWEL SIGN KARO I;Mc;0;L;;;;;N;;;;;
-1BEC;BATAK VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
-1BED;BATAK VOWEL SIGN KARO O;Mn;0;NSM;;;;;N;;;;;
-1BEE;BATAK VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
-1BEF;BATAK VOWEL SIGN U FOR SIMALUNGUN SA;Mn;0;NSM;;;;;N;;;;;
-1BF0;BATAK CONSONANT SIGN NG;Mn;0;NSM;;;;;N;;;;;
-1BF1;BATAK CONSONANT SIGN H;Mn;0;NSM;;;;;N;;;;;
-1BF2;BATAK PANGOLAT;Mc;9;L;;;;;N;;;;;
-1BF3;BATAK PANONGONAN;Mc;9;L;;;;;N;;;;;
-1BFC;BATAK SYMBOL BINDU NA METEK;Po;0;L;;;;;N;;;;;
-1BFD;BATAK SYMBOL BINDU PINARBORAS;Po;0;L;;;;;N;;;;;
-1BFE;BATAK SYMBOL BINDU JUDUL;Po;0;L;;;;;N;;;;;
-1BFF;BATAK SYMBOL BINDU PANGOLAT;Po;0;L;;;;;N;;;;;
-1C00;LEPCHA LETTER KA;Lo;0;L;;;;;N;;;;;
-1C01;LEPCHA LETTER KLA;Lo;0;L;;;;;N;;;;;
-1C02;LEPCHA LETTER KHA;Lo;0;L;;;;;N;;;;;
-1C03;LEPCHA LETTER GA;Lo;0;L;;;;;N;;;;;
-1C04;LEPCHA LETTER GLA;Lo;0;L;;;;;N;;;;;
-1C05;LEPCHA LETTER NGA;Lo;0;L;;;;;N;;;;;
-1C06;LEPCHA LETTER CA;Lo;0;L;;;;;N;;;;;
-1C07;LEPCHA LETTER CHA;Lo;0;L;;;;;N;;;;;
-1C08;LEPCHA LETTER JA;Lo;0;L;;;;;N;;;;;
-1C09;LEPCHA LETTER NYA;Lo;0;L;;;;;N;;;;;
-1C0A;LEPCHA LETTER TA;Lo;0;L;;;;;N;;;;;
-1C0B;LEPCHA LETTER THA;Lo;0;L;;;;;N;;;;;
-1C0C;LEPCHA LETTER DA;Lo;0;L;;;;;N;;;;;
-1C0D;LEPCHA LETTER NA;Lo;0;L;;;;;N;;;;;
-1C0E;LEPCHA LETTER PA;Lo;0;L;;;;;N;;;;;
-1C0F;LEPCHA LETTER PLA;Lo;0;L;;;;;N;;;;;
-1C10;LEPCHA LETTER PHA;Lo;0;L;;;;;N;;;;;
-1C11;LEPCHA LETTER FA;Lo;0;L;;;;;N;;;;;
-1C12;LEPCHA LETTER FLA;Lo;0;L;;;;;N;;;;;
-1C13;LEPCHA LETTER BA;Lo;0;L;;;;;N;;;;;
-1C14;LEPCHA LETTER BLA;Lo;0;L;;;;;N;;;;;
-1C15;LEPCHA LETTER MA;Lo;0;L;;;;;N;;;;;
-1C16;LEPCHA LETTER MLA;Lo;0;L;;;;;N;;;;;
-1C17;LEPCHA LETTER TSA;Lo;0;L;;;;;N;;;;;
-1C18;LEPCHA LETTER TSHA;Lo;0;L;;;;;N;;;;;
-1C19;LEPCHA LETTER DZA;Lo;0;L;;;;;N;;;;;
-1C1A;LEPCHA LETTER YA;Lo;0;L;;;;;N;;;;;
-1C1B;LEPCHA LETTER RA;Lo;0;L;;;;;N;;;;;
-1C1C;LEPCHA LETTER LA;Lo;0;L;;;;;N;;;;;
-1C1D;LEPCHA LETTER HA;Lo;0;L;;;;;N;;;;;
-1C1E;LEPCHA LETTER HLA;Lo;0;L;;;;;N;;;;;
-1C1F;LEPCHA LETTER VA;Lo;0;L;;;;;N;;;;;
-1C20;LEPCHA LETTER SA;Lo;0;L;;;;;N;;;;;
-1C21;LEPCHA LETTER SHA;Lo;0;L;;;;;N;;;;;
-1C22;LEPCHA LETTER WA;Lo;0;L;;;;;N;;;;;
-1C23;LEPCHA LETTER A;Lo;0;L;;;;;N;;;;;
-1C24;LEPCHA SUBJOINED LETTER YA;Mc;0;L;;;;;N;;;;;
-1C25;LEPCHA SUBJOINED LETTER RA;Mc;0;L;;;;;N;;;;;
-1C26;LEPCHA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-1C27;LEPCHA VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
-1C28;LEPCHA VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
-1C29;LEPCHA VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
-1C2A;LEPCHA VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
-1C2B;LEPCHA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
-1C2C;LEPCHA VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
-1C2D;LEPCHA CONSONANT SIGN K;Mn;0;NSM;;;;;N;;;;;
-1C2E;LEPCHA CONSONANT SIGN M;Mn;0;NSM;;;;;N;;;;;
-1C2F;LEPCHA CONSONANT SIGN L;Mn;0;NSM;;;;;N;;;;;
-1C30;LEPCHA CONSONANT SIGN N;Mn;0;NSM;;;;;N;;;;;
-1C31;LEPCHA CONSONANT SIGN P;Mn;0;NSM;;;;;N;;;;;
-1C32;LEPCHA CONSONANT SIGN R;Mn;0;NSM;;;;;N;;;;;
-1C33;LEPCHA CONSONANT SIGN T;Mn;0;NSM;;;;;N;;;;;
-1C34;LEPCHA CONSONANT SIGN NYIN-DO;Mc;0;L;;;;;N;;;;;
-1C35;LEPCHA CONSONANT SIGN KANG;Mc;0;L;;;;;N;;;;;
-1C36;LEPCHA SIGN RAN;Mn;0;NSM;;;;;N;;;;;
-1C37;LEPCHA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
-1C3B;LEPCHA PUNCTUATION TA-ROL;Po;0;L;;;;;N;;;;;
-1C3C;LEPCHA PUNCTUATION NYET THYOOM TA-ROL;Po;0;L;;;;;N;;;;;
-1C3D;LEPCHA PUNCTUATION CER-WA;Po;0;L;;;;;N;;;;;
-1C3E;LEPCHA PUNCTUATION TSHOOK CER-WA;Po;0;L;;;;;N;;;;;
-1C3F;LEPCHA PUNCTUATION TSHOOK;Po;0;L;;;;;N;;;;;
-1C40;LEPCHA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-1C41;LEPCHA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-1C42;LEPCHA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-1C43;LEPCHA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-1C44;LEPCHA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-1C45;LEPCHA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-1C46;LEPCHA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-1C47;LEPCHA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-1C48;LEPCHA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-1C49;LEPCHA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-1C4D;LEPCHA LETTER TTA;Lo;0;L;;;;;N;;;;;
-1C4E;LEPCHA LETTER TTHA;Lo;0;L;;;;;N;;;;;
-1C4F;LEPCHA LETTER DDA;Lo;0;L;;;;;N;;;;;
-1C50;OL CHIKI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-1C51;OL CHIKI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-1C52;OL CHIKI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-1C53;OL CHIKI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-1C54;OL CHIKI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-1C55;OL CHIKI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-1C56;OL CHIKI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-1C57;OL CHIKI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-1C58;OL CHIKI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-1C59;OL CHIKI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-1C5A;OL CHIKI LETTER LA;Lo;0;L;;;;;N;;;;;
-1C5B;OL CHIKI LETTER AT;Lo;0;L;;;;;N;;;;;
-1C5C;OL CHIKI LETTER AG;Lo;0;L;;;;;N;;;;;
-1C5D;OL CHIKI LETTER ANG;Lo;0;L;;;;;N;;;;;
-1C5E;OL CHIKI LETTER AL;Lo;0;L;;;;;N;;;;;
-1C5F;OL CHIKI LETTER LAA;Lo;0;L;;;;;N;;;;;
-1C60;OL CHIKI LETTER AAK;Lo;0;L;;;;;N;;;;;
-1C61;OL CHIKI LETTER AAJ;Lo;0;L;;;;;N;;;;;
-1C62;OL CHIKI LETTER AAM;Lo;0;L;;;;;N;;;;;
-1C63;OL CHIKI LETTER AAW;Lo;0;L;;;;;N;;;;;
-1C64;OL CHIKI LETTER LI;Lo;0;L;;;;;N;;;;;
-1C65;OL CHIKI LETTER IS;Lo;0;L;;;;;N;;;;;
-1C66;OL CHIKI LETTER IH;Lo;0;L;;;;;N;;;;;
-1C67;OL CHIKI LETTER INY;Lo;0;L;;;;;N;;;;;
-1C68;OL CHIKI LETTER IR;Lo;0;L;;;;;N;;;;;
-1C69;OL CHIKI LETTER LU;Lo;0;L;;;;;N;;;;;
-1C6A;OL CHIKI LETTER UC;Lo;0;L;;;;;N;;;;;
-1C6B;OL CHIKI LETTER UD;Lo;0;L;;;;;N;;;;;
-1C6C;OL CHIKI LETTER UNN;Lo;0;L;;;;;N;;;;;
-1C6D;OL CHIKI LETTER UY;Lo;0;L;;;;;N;;;;;
-1C6E;OL CHIKI LETTER LE;Lo;0;L;;;;;N;;;;;
-1C6F;OL CHIKI LETTER EP;Lo;0;L;;;;;N;;;;;
-1C70;OL CHIKI LETTER EDD;Lo;0;L;;;;;N;;;;;
-1C71;OL CHIKI LETTER EN;Lo;0;L;;;;;N;;;;;
-1C72;OL CHIKI LETTER ERR;Lo;0;L;;;;;N;;;;;
-1C73;OL CHIKI LETTER LO;Lo;0;L;;;;;N;;;;;
-1C74;OL CHIKI LETTER OTT;Lo;0;L;;;;;N;;;;;
-1C75;OL CHIKI LETTER OB;Lo;0;L;;;;;N;;;;;
-1C76;OL CHIKI LETTER OV;Lo;0;L;;;;;N;;;;;
-1C77;OL CHIKI LETTER OH;Lo;0;L;;;;;N;;;;;
-1C78;OL CHIKI MU TTUDDAG;Lm;0;L;;;;;N;;;;;
-1C79;OL CHIKI GAAHLAA TTUDDAAG;Lm;0;L;;;;;N;;;;;
-1C7A;OL CHIKI MU-GAAHLAA TTUDDAAG;Lm;0;L;;;;;N;;;;;
-1C7B;OL CHIKI RELAA;Lm;0;L;;;;;N;;;;;
-1C7C;OL CHIKI PHAARKAA;Lm;0;L;;;;;N;;;;;
-1C7D;OL CHIKI AHAD;Lm;0;L;;;;;N;;;;;
-1C7E;OL CHIKI PUNCTUATION MUCAAD;Po;0;L;;;;;N;;;;;
-1C7F;OL CHIKI PUNCTUATION DOUBLE MUCAAD;Po;0;L;;;;;N;;;;;
-1CC0;SUNDANESE PUNCTUATION BINDU SURYA;Po;0;L;;;;;N;;;;;
-1CC1;SUNDANESE PUNCTUATION BINDU PANGLONG;Po;0;L;;;;;N;;;;;
-1CC2;SUNDANESE PUNCTUATION BINDU PURNAMA;Po;0;L;;;;;N;;;;;
-1CC3;SUNDANESE PUNCTUATION BINDU CAKRA;Po;0;L;;;;;N;;;;;
-1CC4;SUNDANESE PUNCTUATION BINDU LEU SATANGA;Po;0;L;;;;;N;;;;;
-1CC5;SUNDANESE PUNCTUATION BINDU KA SATANGA;Po;0;L;;;;;N;;;;;
-1CC6;SUNDANESE PUNCTUATION BINDU DA SATANGA;Po;0;L;;;;;N;;;;;
-1CC7;SUNDANESE PUNCTUATION BINDU BA SATANGA;Po;0;L;;;;;N;;;;;
-1CD0;VEDIC TONE KARSHANA;Mn;230;NSM;;;;;N;;;;;
-1CD1;VEDIC TONE SHARA;Mn;230;NSM;;;;;N;;;;;
-1CD2;VEDIC TONE PRENKHA;Mn;230;NSM;;;;;N;;;;;
-1CD3;VEDIC SIGN NIHSHVASA;Po;0;L;;;;;N;;;;;
-1CD4;VEDIC SIGN YAJURVEDIC MIDLINE SVARITA;Mn;1;NSM;;;;;N;;;;;
-1CD5;VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA;Mn;220;NSM;;;;;N;;;;;
-1CD6;VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA;Mn;220;NSM;;;;;N;;;;;
-1CD7;VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA;Mn;220;NSM;;;;;N;;;;;
-1CD8;VEDIC TONE CANDRA BELOW;Mn;220;NSM;;;;;N;;;;;
-1CD9;VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER;Mn;220;NSM;;;;;N;;;;;
-1CDA;VEDIC TONE DOUBLE SVARITA;Mn;230;NSM;;;;;N;;;;;
-1CDB;VEDIC TONE TRIPLE SVARITA;Mn;230;NSM;;;;;N;;;;;
-1CDC;VEDIC TONE KATHAKA ANUDATTA;Mn;220;NSM;;;;;N;;;;;
-1CDD;VEDIC TONE DOT BELOW;Mn;220;NSM;;;;;N;;;;;
-1CDE;VEDIC TONE TWO DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
-1CDF;VEDIC TONE THREE DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
-1CE0;VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA;Mn;230;NSM;;;;;N;;;;;
-1CE1;VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA;Mc;0;L;;;;;N;;;;;
-1CE2;VEDIC SIGN VISARGA SVARITA;Mn;1;NSM;;;;;N;;;;;
-1CE3;VEDIC SIGN VISARGA UDATTA;Mn;1;NSM;;;;;N;;;;;
-1CE4;VEDIC SIGN REVERSED VISARGA UDATTA;Mn;1;NSM;;;;;N;;;;;
-1CE5;VEDIC SIGN VISARGA ANUDATTA;Mn;1;NSM;;;;;N;;;;;
-1CE6;VEDIC SIGN REVERSED VISARGA ANUDATTA;Mn;1;NSM;;;;;N;;;;;
-1CE7;VEDIC SIGN VISARGA UDATTA WITH TAIL;Mn;1;NSM;;;;;N;;;;;
-1CE8;VEDIC SIGN VISARGA ANUDATTA WITH TAIL;Mn;1;NSM;;;;;N;;;;;
-1CE9;VEDIC SIGN ANUSVARA ANTARGOMUKHA;Lo;0;L;;;;;N;;;;;
-1CEA;VEDIC SIGN ANUSVARA BAHIRGOMUKHA;Lo;0;L;;;;;N;;;;;
-1CEB;VEDIC SIGN ANUSVARA VAMAGOMUKHA;Lo;0;L;;;;;N;;;;;
-1CEC;VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL;Lo;0;L;;;;;N;;;;;
-1CED;VEDIC SIGN TIRYAK;Mn;220;NSM;;;;;N;;;;;
-1CEE;VEDIC SIGN HEXIFORM LONG ANUSVARA;Lo;0;L;;;;;N;;;;;
-1CEF;VEDIC SIGN LONG ANUSVARA;Lo;0;L;;;;;N;;;;;
-1CF0;VEDIC SIGN RTHANG LONG ANUSVARA;Lo;0;L;;;;;N;;;;;
-1CF1;VEDIC SIGN ANUSVARA UBHAYATO MUKHA;Lo;0;L;;;;;N;;;;;
-1CF2;VEDIC SIGN ARDHAVISARGA;Mc;0;L;;;;;N;;;;;
-1CF3;VEDIC SIGN ROTATED ARDHAVISARGA;Mc;0;L;;;;;N;;;;;
-1CF4;VEDIC TONE CANDRA ABOVE;Mn;230;NSM;;;;;N;;;;;
-1CF5;VEDIC SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
-1CF6;VEDIC SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
-1D00;LATIN LETTER SMALL CAPITAL A;Ll;0;L;;;;;N;;;;;
-1D01;LATIN LETTER SMALL CAPITAL AE;Ll;0;L;;;;;N;;;;;
-1D02;LATIN SMALL LETTER TURNED AE;Ll;0;L;;;;;N;;;;;
-1D03;LATIN LETTER SMALL CAPITAL BARRED B;Ll;0;L;;;;;N;;;;;
-1D04;LATIN LETTER SMALL CAPITAL C;Ll;0;L;;;;;N;;;;;
-1D05;LATIN LETTER SMALL CAPITAL D;Ll;0;L;;;;;N;;;;;
-1D06;LATIN LETTER SMALL CAPITAL ETH;Ll;0;L;;;;;N;;;;;
-1D07;LATIN LETTER SMALL CAPITAL E;Ll;0;L;;;;;N;;;;;
-1D08;LATIN SMALL LETTER TURNED OPEN E;Ll;0;L;;;;;N;;;;;
-1D09;LATIN SMALL LETTER TURNED I;Ll;0;L;;;;;N;;;;;
-1D0A;LATIN LETTER SMALL CAPITAL J;Ll;0;L;;;;;N;;;;;
-1D0B;LATIN LETTER SMALL CAPITAL K;Ll;0;L;;;;;N;;;;;
-1D0C;LATIN LETTER SMALL CAPITAL L WITH STROKE;Ll;0;L;;;;;N;;;;;
-1D0D;LATIN LETTER SMALL CAPITAL M;Ll;0;L;;;;;N;;;;;
-1D0E;LATIN LETTER SMALL CAPITAL REVERSED N;Ll;0;L;;;;;N;;;;;
-1D0F;LATIN LETTER SMALL CAPITAL O;Ll;0;L;;;;;N;;;;;
-1D10;LATIN LETTER SMALL CAPITAL OPEN O;Ll;0;L;;;;;N;;;;;
-1D11;LATIN SMALL LETTER SIDEWAYS O;Ll;0;L;;;;;N;;;;;
-1D12;LATIN SMALL LETTER SIDEWAYS OPEN O;Ll;0;L;;;;;N;;;;;
-1D13;LATIN SMALL LETTER SIDEWAYS O WITH STROKE;Ll;0;L;;;;;N;;;;;
-1D14;LATIN SMALL LETTER TURNED OE;Ll;0;L;;;;;N;;;;;
-1D15;LATIN LETTER SMALL CAPITAL OU;Ll;0;L;;;;;N;;;;;
-1D16;LATIN SMALL LETTER TOP HALF O;Ll;0;L;;;;;N;;;;;
-1D17;LATIN SMALL LETTER BOTTOM HALF O;Ll;0;L;;;;;N;;;;;
-1D18;LATIN LETTER SMALL CAPITAL P;Ll;0;L;;;;;N;;;;;
-1D19;LATIN LETTER SMALL CAPITAL REVERSED R;Ll;0;L;;;;;N;;;;;
-1D1A;LATIN LETTER SMALL CAPITAL TURNED R;Ll;0;L;;;;;N;;;;;
-1D1B;LATIN LETTER SMALL CAPITAL T;Ll;0;L;;;;;N;;;;;
-1D1C;LATIN LETTER SMALL CAPITAL U;Ll;0;L;;;;;N;;;;;
-1D1D;LATIN SMALL LETTER SIDEWAYS U;Ll;0;L;;;;;N;;;;;
-1D1E;LATIN SMALL LETTER SIDEWAYS DIAERESIZED U;Ll;0;L;;;;;N;;;;;
-1D1F;LATIN SMALL LETTER SIDEWAYS TURNED M;Ll;0;L;;;;;N;;;;;
-1D20;LATIN LETTER SMALL CAPITAL V;Ll;0;L;;;;;N;;;;;
-1D21;LATIN LETTER SMALL CAPITAL W;Ll;0;L;;;;;N;;;;;
-1D22;LATIN LETTER SMALL CAPITAL Z;Ll;0;L;;;;;N;;;;;
-1D23;LATIN LETTER SMALL CAPITAL EZH;Ll;0;L;;;;;N;;;;;
-1D24;LATIN LETTER VOICED LARYNGEAL SPIRANT;Ll;0;L;;;;;N;;;;;
-1D25;LATIN LETTER AIN;Ll;0;L;;;;;N;;;;;
-1D26;GREEK LETTER SMALL CAPITAL GAMMA;Ll;0;L;;;;;N;;;;;
-1D27;GREEK LETTER SMALL CAPITAL LAMDA;Ll;0;L;;;;;N;;;;;
-1D28;GREEK LETTER SMALL CAPITAL PI;Ll;0;L;;;;;N;;;;;
-1D29;GREEK LETTER SMALL CAPITAL RHO;Ll;0;L;;;;;N;;;;;
-1D2A;GREEK LETTER SMALL CAPITAL PSI;Ll;0;L;;;;;N;;;;;
-1D2B;CYRILLIC LETTER SMALL CAPITAL EL;Ll;0;L;;;;;N;;;;;
-1D2C;MODIFIER LETTER CAPITAL A;Lm;0;L;<super> 0041;;;;N;;;;;
-1D2D;MODIFIER LETTER CAPITAL AE;Lm;0;L;<super> 00C6;;;;N;;;;;
-1D2E;MODIFIER LETTER CAPITAL B;Lm;0;L;<super> 0042;;;;N;;;;;
-1D2F;MODIFIER LETTER CAPITAL BARRED B;Lm;0;L;;;;;N;;;;;
-1D30;MODIFIER LETTER CAPITAL D;Lm;0;L;<super> 0044;;;;N;;;;;
-1D31;MODIFIER LETTER CAPITAL E;Lm;0;L;<super> 0045;;;;N;;;;;
-1D32;MODIFIER LETTER CAPITAL REVERSED E;Lm;0;L;<super> 018E;;;;N;;;;;
-1D33;MODIFIER LETTER CAPITAL G;Lm;0;L;<super> 0047;;;;N;;;;;
-1D34;MODIFIER LETTER CAPITAL H;Lm;0;L;<super> 0048;;;;N;;;;;
-1D35;MODIFIER LETTER CAPITAL I;Lm;0;L;<super> 0049;;;;N;;;;;
-1D36;MODIFIER LETTER CAPITAL J;Lm;0;L;<super> 004A;;;;N;;;;;
-1D37;MODIFIER LETTER CAPITAL K;Lm;0;L;<super> 004B;;;;N;;;;;
-1D38;MODIFIER LETTER CAPITAL L;Lm;0;L;<super> 004C;;;;N;;;;;
-1D39;MODIFIER LETTER CAPITAL M;Lm;0;L;<super> 004D;;;;N;;;;;
-1D3A;MODIFIER LETTER CAPITAL N;Lm;0;L;<super> 004E;;;;N;;;;;
-1D3B;MODIFIER LETTER CAPITAL REVERSED N;Lm;0;L;;;;;N;;;;;
-1D3C;MODIFIER LETTER CAPITAL O;Lm;0;L;<super> 004F;;;;N;;;;;
-1D3D;MODIFIER LETTER CAPITAL OU;Lm;0;L;<super> 0222;;;;N;;;;;
-1D3E;MODIFIER LETTER CAPITAL P;Lm;0;L;<super> 0050;;;;N;;;;;
-1D3F;MODIFIER LETTER CAPITAL R;Lm;0;L;<super> 0052;;;;N;;;;;
-1D40;MODIFIER LETTER CAPITAL T;Lm;0;L;<super> 0054;;;;N;;;;;
-1D41;MODIFIER LETTER CAPITAL U;Lm;0;L;<super> 0055;;;;N;;;;;
-1D42;MODIFIER LETTER CAPITAL W;Lm;0;L;<super> 0057;;;;N;;;;;
-1D43;MODIFIER LETTER SMALL A;Lm;0;L;<super> 0061;;;;N;;;;;
-1D44;MODIFIER LETTER SMALL TURNED A;Lm;0;L;<super> 0250;;;;N;;;;;
-1D45;MODIFIER LETTER SMALL ALPHA;Lm;0;L;<super> 0251;;;;N;;;;;
-1D46;MODIFIER LETTER SMALL TURNED AE;Lm;0;L;<super> 1D02;;;;N;;;;;
-1D47;MODIFIER LETTER SMALL B;Lm;0;L;<super> 0062;;;;N;;;;;
-1D48;MODIFIER LETTER SMALL D;Lm;0;L;<super> 0064;;;;N;;;;;
-1D49;MODIFIER LETTER SMALL E;Lm;0;L;<super> 0065;;;;N;;;;;
-1D4A;MODIFIER LETTER SMALL SCHWA;Lm;0;L;<super> 0259;;;;N;;;;;
-1D4B;MODIFIER LETTER SMALL OPEN E;Lm;0;L;<super> 025B;;;;N;;;;;
-1D4C;MODIFIER LETTER SMALL TURNED OPEN E;Lm;0;L;<super> 025C;;;;N;;;;;
-1D4D;MODIFIER LETTER SMALL G;Lm;0;L;<super> 0067;;;;N;;;;;
-1D4E;MODIFIER LETTER SMALL TURNED I;Lm;0;L;;;;;N;;;;;
-1D4F;MODIFIER LETTER SMALL K;Lm;0;L;<super> 006B;;;;N;;;;;
-1D50;MODIFIER LETTER SMALL M;Lm;0;L;<super> 006D;;;;N;;;;;
-1D51;MODIFIER LETTER SMALL ENG;Lm;0;L;<super> 014B;;;;N;;;;;
-1D52;MODIFIER LETTER SMALL O;Lm;0;L;<super> 006F;;;;N;;;;;
-1D53;MODIFIER LETTER SMALL OPEN O;Lm;0;L;<super> 0254;;;;N;;;;;
-1D54;MODIFIER LETTER SMALL TOP HALF O;Lm;0;L;<super> 1D16;;;;N;;;;;
-1D55;MODIFIER LETTER SMALL BOTTOM HALF O;Lm;0;L;<super> 1D17;;;;N;;;;;
-1D56;MODIFIER LETTER SMALL P;Lm;0;L;<super> 0070;;;;N;;;;;
-1D57;MODIFIER LETTER SMALL T;Lm;0;L;<super> 0074;;;;N;;;;;
-1D58;MODIFIER LETTER SMALL U;Lm;0;L;<super> 0075;;;;N;;;;;
-1D59;MODIFIER LETTER SMALL SIDEWAYS U;Lm;0;L;<super> 1D1D;;;;N;;;;;
-1D5A;MODIFIER LETTER SMALL TURNED M;Lm;0;L;<super> 026F;;;;N;;;;;
-1D5B;MODIFIER LETTER SMALL V;Lm;0;L;<super> 0076;;;;N;;;;;
-1D5C;MODIFIER LETTER SMALL AIN;Lm;0;L;<super> 1D25;;;;N;;;;;
-1D5D;MODIFIER LETTER SMALL BETA;Lm;0;L;<super> 03B2;;;;N;;;;;
-1D5E;MODIFIER LETTER SMALL GREEK GAMMA;Lm;0;L;<super> 03B3;;;;N;;;;;
-1D5F;MODIFIER LETTER SMALL DELTA;Lm;0;L;<super> 03B4;;;;N;;;;;
-1D60;MODIFIER LETTER SMALL GREEK PHI;Lm;0;L;<super> 03C6;;;;N;;;;;
-1D61;MODIFIER LETTER SMALL CHI;Lm;0;L;<super> 03C7;;;;N;;;;;
-1D62;LATIN SUBSCRIPT SMALL LETTER I;Lm;0;L;<sub> 0069;;;;N;;;;;
-1D63;LATIN SUBSCRIPT SMALL LETTER R;Lm;0;L;<sub> 0072;;;;N;;;;;
-1D64;LATIN SUBSCRIPT SMALL LETTER U;Lm;0;L;<sub> 0075;;;;N;;;;;
-1D65;LATIN SUBSCRIPT SMALL LETTER V;Lm;0;L;<sub> 0076;;;;N;;;;;
-1D66;GREEK SUBSCRIPT SMALL LETTER BETA;Lm;0;L;<sub> 03B2;;;;N;;;;;
-1D67;GREEK SUBSCRIPT SMALL LETTER GAMMA;Lm;0;L;<sub> 03B3;;;;N;;;;;
-1D68;GREEK SUBSCRIPT SMALL LETTER RHO;Lm;0;L;<sub> 03C1;;;;N;;;;;
-1D69;GREEK SUBSCRIPT SMALL LETTER PHI;Lm;0;L;<sub> 03C6;;;;N;;;;;
-1D6A;GREEK SUBSCRIPT SMALL LETTER CHI;Lm;0;L;<sub> 03C7;;;;N;;;;;
-1D6B;LATIN SMALL LETTER UE;Ll;0;L;;;;;N;;;;;
-1D6C;LATIN SMALL LETTER B WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
-1D6D;LATIN SMALL LETTER D WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
-1D6E;LATIN SMALL LETTER F WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
-1D6F;LATIN SMALL LETTER M WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
-1D70;LATIN SMALL LETTER N WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
-1D71;LATIN SMALL LETTER P WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
-1D72;LATIN SMALL LETTER R WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
-1D73;LATIN SMALL LETTER R WITH FISHHOOK AND MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
-1D74;LATIN SMALL LETTER S WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
-1D75;LATIN SMALL LETTER T WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
-1D76;LATIN SMALL LETTER Z WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
-1D77;LATIN SMALL LETTER TURNED G;Ll;0;L;;;;;N;;;;;
-1D78;MODIFIER LETTER CYRILLIC EN;Lm;0;L;<super> 043D;;;;N;;;;;
-1D79;LATIN SMALL LETTER INSULAR G;Ll;0;L;;;;;N;;;A77D;;A77D
-1D7A;LATIN SMALL LETTER TH WITH STRIKETHROUGH;Ll;0;L;;;;;N;;;;;
-1D7B;LATIN SMALL CAPITAL LETTER I WITH STROKE;Ll;0;L;;;;;N;;;;;
-1D7C;LATIN SMALL LETTER IOTA WITH STROKE;Ll;0;L;;;;;N;;;;;
-1D7D;LATIN SMALL LETTER P WITH STROKE;Ll;0;L;;;;;N;;;2C63;;2C63
-1D7E;LATIN SMALL CAPITAL LETTER U WITH STROKE;Ll;0;L;;;;;N;;;;;
-1D7F;LATIN SMALL LETTER UPSILON WITH STROKE;Ll;0;L;;;;;N;;;;;
-1D80;LATIN SMALL LETTER B WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
-1D81;LATIN SMALL LETTER D WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
-1D82;LATIN SMALL LETTER F WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
-1D83;LATIN SMALL LETTER G WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
-1D84;LATIN SMALL LETTER K WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
-1D85;LATIN SMALL LETTER L WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
-1D86;LATIN SMALL LETTER M WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
-1D87;LATIN SMALL LETTER N WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
-1D88;LATIN SMALL LETTER P WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
-1D89;LATIN SMALL LETTER R WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
-1D8A;LATIN SMALL LETTER S WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
-1D8B;LATIN SMALL LETTER ESH WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
-1D8C;LATIN SMALL LETTER V WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
-1D8D;LATIN SMALL LETTER X WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
-1D8E;LATIN SMALL LETTER Z WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
-1D8F;LATIN SMALL LETTER A WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
-1D90;LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
-1D91;LATIN SMALL LETTER D WITH HOOK AND TAIL;Ll;0;L;;;;;N;;;;;
-1D92;LATIN SMALL LETTER E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
-1D93;LATIN SMALL LETTER OPEN E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
-1D94;LATIN SMALL LETTER REVERSED OPEN E WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
-1D95;LATIN SMALL LETTER SCHWA WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
-1D96;LATIN SMALL LETTER I WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
-1D97;LATIN SMALL LETTER OPEN O WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
-1D98;LATIN SMALL LETTER ESH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
-1D99;LATIN SMALL LETTER U WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
-1D9A;LATIN SMALL LETTER EZH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
-1D9B;MODIFIER LETTER SMALL TURNED ALPHA;Lm;0;L;<super> 0252;;;;N;;;;;
-1D9C;MODIFIER LETTER SMALL C;Lm;0;L;<super> 0063;;;;N;;;;;
-1D9D;MODIFIER LETTER SMALL C WITH CURL;Lm;0;L;<super> 0255;;;;N;;;;;
-1D9E;MODIFIER LETTER SMALL ETH;Lm;0;L;<super> 00F0;;;;N;;;;;
-1D9F;MODIFIER LETTER SMALL REVERSED OPEN E;Lm;0;L;<super> 025C;;;;N;;;;;
-1DA0;MODIFIER LETTER SMALL F;Lm;0;L;<super> 0066;;;;N;;;;;
-1DA1;MODIFIER LETTER SMALL DOTLESS J WITH STROKE;Lm;0;L;<super> 025F;;;;N;;;;;
-1DA2;MODIFIER LETTER SMALL SCRIPT G;Lm;0;L;<super> 0261;;;;N;;;;;
-1DA3;MODIFIER LETTER SMALL TURNED H;Lm;0;L;<super> 0265;;;;N;;;;;
-1DA4;MODIFIER LETTER SMALL I WITH STROKE;Lm;0;L;<super> 0268;;;;N;;;;;
-1DA5;MODIFIER LETTER SMALL IOTA;Lm;0;L;<super> 0269;;;;N;;;;;
-1DA6;MODIFIER LETTER SMALL CAPITAL I;Lm;0;L;<super> 026A;;;;N;;;;;
-1DA7;MODIFIER LETTER SMALL CAPITAL I WITH STROKE;Lm;0;L;<super> 1D7B;;;;N;;;;;
-1DA8;MODIFIER LETTER SMALL J WITH CROSSED-TAIL;Lm;0;L;<super> 029D;;;;N;;;;;
-1DA9;MODIFIER LETTER SMALL L WITH RETROFLEX HOOK;Lm;0;L;<super> 026D;;;;N;;;;;
-1DAA;MODIFIER LETTER SMALL L WITH PALATAL HOOK;Lm;0;L;<super> 1D85;;;;N;;;;;
-1DAB;MODIFIER LETTER SMALL CAPITAL L;Lm;0;L;<super> 029F;;;;N;;;;;
-1DAC;MODIFIER LETTER SMALL M WITH HOOK;Lm;0;L;<super> 0271;;;;N;;;;;
-1DAD;MODIFIER LETTER SMALL TURNED M WITH LONG LEG;Lm;0;L;<super> 0270;;;;N;;;;;
-1DAE;MODIFIER LETTER SMALL N WITH LEFT HOOK;Lm;0;L;<super> 0272;;;;N;;;;;
-1DAF;MODIFIER LETTER SMALL N WITH RETROFLEX HOOK;Lm;0;L;<super> 0273;;;;N;;;;;
-1DB0;MODIFIER LETTER SMALL CAPITAL N;Lm;0;L;<super> 0274;;;;N;;;;;
-1DB1;MODIFIER LETTER SMALL BARRED O;Lm;0;L;<super> 0275;;;;N;;;;;
-1DB2;MODIFIER LETTER SMALL PHI;Lm;0;L;<super> 0278;;;;N;;;;;
-1DB3;MODIFIER LETTER SMALL S WITH HOOK;Lm;0;L;<super> 0282;;;;N;;;;;
-1DB4;MODIFIER LETTER SMALL ESH;Lm;0;L;<super> 0283;;;;N;;;;;
-1DB5;MODIFIER LETTER SMALL T WITH PALATAL HOOK;Lm;0;L;<super> 01AB;;;;N;;;;;
-1DB6;MODIFIER LETTER SMALL U BAR;Lm;0;L;<super> 0289;;;;N;;;;;
-1DB7;MODIFIER LETTER SMALL UPSILON;Lm;0;L;<super> 028A;;;;N;;;;;
-1DB8;MODIFIER LETTER SMALL CAPITAL U;Lm;0;L;<super> 1D1C;;;;N;;;;;
-1DB9;MODIFIER LETTER SMALL V WITH HOOK;Lm;0;L;<super> 028B;;;;N;;;;;
-1DBA;MODIFIER LETTER SMALL TURNED V;Lm;0;L;<super> 028C;;;;N;;;;;
-1DBB;MODIFIER LETTER SMALL Z;Lm;0;L;<super> 007A;;;;N;;;;;
-1DBC;MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK;Lm;0;L;<super> 0290;;;;N;;;;;
-1DBD;MODIFIER LETTER SMALL Z WITH CURL;Lm;0;L;<super> 0291;;;;N;;;;;
-1DBE;MODIFIER LETTER SMALL EZH;Lm;0;L;<super> 0292;;;;N;;;;;
-1DBF;MODIFIER LETTER SMALL THETA;Lm;0;L;<super> 03B8;;;;N;;;;;
-1DC0;COMBINING DOTTED GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;;
-1DC1;COMBINING DOTTED ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;;
-1DC2;COMBINING SNAKE BELOW;Mn;220;NSM;;;;;N;;;;;
-1DC3;COMBINING SUSPENSION MARK;Mn;230;NSM;;;;;N;;;;;
-1DC4;COMBINING MACRON-ACUTE;Mn;230;NSM;;;;;N;;;;;
-1DC5;COMBINING GRAVE-MACRON;Mn;230;NSM;;;;;N;;;;;
-1DC6;COMBINING MACRON-GRAVE;Mn;230;NSM;;;;;N;;;;;
-1DC7;COMBINING ACUTE-MACRON;Mn;230;NSM;;;;;N;;;;;
-1DC8;COMBINING GRAVE-ACUTE-GRAVE;Mn;230;NSM;;;;;N;;;;;
-1DC9;COMBINING ACUTE-GRAVE-ACUTE;Mn;230;NSM;;;;;N;;;;;
-1DCA;COMBINING LATIN SMALL LETTER R BELOW;Mn;220;NSM;;;;;N;;;;;
-1DCB;COMBINING BREVE-MACRON;Mn;230;NSM;;;;;N;;;;;
-1DCC;COMBINING MACRON-BREVE;Mn;230;NSM;;;;;N;;;;;
-1DCD;COMBINING DOUBLE CIRCUMFLEX ABOVE;Mn;234;NSM;;;;;N;;;;;
-1DCE;COMBINING OGONEK ABOVE;Mn;214;NSM;;;;;N;;;;;
-1DCF;COMBINING ZIGZAG BELOW;Mn;220;NSM;;;;;N;;;;;
-1DD0;COMBINING IS BELOW;Mn;202;NSM;;;;;N;;;;;
-1DD1;COMBINING UR ABOVE;Mn;230;NSM;;;;;N;;;;;
-1DD2;COMBINING US ABOVE;Mn;230;NSM;;;;;N;;;;;
-1DD3;COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE;Mn;230;NSM;;;;;N;;;;;
-1DD4;COMBINING LATIN SMALL LETTER AE;Mn;230;NSM;;;;;N;;;;;
-1DD5;COMBINING LATIN SMALL LETTER AO;Mn;230;NSM;;;;;N;;;;;
-1DD6;COMBINING LATIN SMALL LETTER AV;Mn;230;NSM;;;;;N;;;;;
-1DD7;COMBINING LATIN SMALL LETTER C CEDILLA;Mn;230;NSM;;;;;N;;;;;
-1DD8;COMBINING LATIN SMALL LETTER INSULAR D;Mn;230;NSM;;;;;N;;;;;
-1DD9;COMBINING LATIN SMALL LETTER ETH;Mn;230;NSM;;;;;N;;;;;
-1DDA;COMBINING LATIN SMALL LETTER G;Mn;230;NSM;;;;;N;;;;;
-1DDB;COMBINING LATIN LETTER SMALL CAPITAL G;Mn;230;NSM;;;;;N;;;;;
-1DDC;COMBINING LATIN SMALL LETTER K;Mn;230;NSM;;;;;N;;;;;
-1DDD;COMBINING LATIN SMALL LETTER L;Mn;230;NSM;;;;;N;;;;;
-1DDE;COMBINING LATIN LETTER SMALL CAPITAL L;Mn;230;NSM;;;;;N;;;;;
-1DDF;COMBINING LATIN LETTER SMALL CAPITAL M;Mn;230;NSM;;;;;N;;;;;
-1DE0;COMBINING LATIN SMALL LETTER N;Mn;230;NSM;;;;;N;;;;;
-1DE1;COMBINING LATIN LETTER SMALL CAPITAL N;Mn;230;NSM;;;;;N;;;;;
-1DE2;COMBINING LATIN LETTER SMALL CAPITAL R;Mn;230;NSM;;;;;N;;;;;
-1DE3;COMBINING LATIN SMALL LETTER R ROTUNDA;Mn;230;NSM;;;;;N;;;;;
-1DE4;COMBINING LATIN SMALL LETTER S;Mn;230;NSM;;;;;N;;;;;
-1DE5;COMBINING LATIN SMALL LETTER LONG S;Mn;230;NSM;;;;;N;;;;;
-1DE6;COMBINING LATIN SMALL LETTER Z;Mn;230;NSM;;;;;N;;;;;
-1DFC;COMBINING DOUBLE INVERTED BREVE BELOW;Mn;233;NSM;;;;;N;;;;;
-1DFD;COMBINING ALMOST EQUAL TO BELOW;Mn;220;NSM;;;;;N;;;;;
-1DFE;COMBINING LEFT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
-1DFF;COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
-1E00;LATIN CAPITAL LETTER A WITH RING BELOW;Lu;0;L;0041 0325;;;;N;;;;1E01;
-1E01;LATIN SMALL LETTER A WITH RING BELOW;Ll;0;L;0061 0325;;;;N;;;1E00;;1E00
-1E02;LATIN CAPITAL LETTER B WITH DOT ABOVE;Lu;0;L;0042 0307;;;;N;;;;1E03;
-1E03;LATIN SMALL LETTER B WITH DOT ABOVE;Ll;0;L;0062 0307;;;;N;;;1E02;;1E02
-1E04;LATIN CAPITAL LETTER B WITH DOT BELOW;Lu;0;L;0042 0323;;;;N;;;;1E05;
-1E05;LATIN SMALL LETTER B WITH DOT BELOW;Ll;0;L;0062 0323;;;;N;;;1E04;;1E04
-1E06;LATIN CAPITAL LETTER B WITH LINE BELOW;Lu;0;L;0042 0331;;;;N;;;;1E07;
-1E07;LATIN SMALL LETTER B WITH LINE BELOW;Ll;0;L;0062 0331;;;;N;;;1E06;;1E06
-1E08;LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE;Lu;0;L;00C7 0301;;;;N;;;;1E09;
-1E09;LATIN SMALL LETTER C WITH CEDILLA AND ACUTE;Ll;0;L;00E7 0301;;;;N;;;1E08;;1E08
-1E0A;LATIN CAPITAL LETTER D WITH DOT ABOVE;Lu;0;L;0044 0307;;;;N;;;;1E0B;
-1E0B;LATIN SMALL LETTER D WITH DOT ABOVE;Ll;0;L;0064 0307;;;;N;;;1E0A;;1E0A
-1E0C;LATIN CAPITAL LETTER D WITH DOT BELOW;Lu;0;L;0044 0323;;;;N;;;;1E0D;
-1E0D;LATIN SMALL LETTER D WITH DOT BELOW;Ll;0;L;0064 0323;;;;N;;;1E0C;;1E0C
-1E0E;LATIN CAPITAL LETTER D WITH LINE BELOW;Lu;0;L;0044 0331;;;;N;;;;1E0F;
-1E0F;LATIN SMALL LETTER D WITH LINE BELOW;Ll;0;L;0064 0331;;;;N;;;1E0E;;1E0E
-1E10;LATIN CAPITAL LETTER D WITH CEDILLA;Lu;0;L;0044 0327;;;;N;;;;1E11;
-1E11;LATIN SMALL LETTER D WITH CEDILLA;Ll;0;L;0064 0327;;;;N;;;1E10;;1E10
-1E12;LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW;Lu;0;L;0044 032D;;;;N;;;;1E13;
-1E13;LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW;Ll;0;L;0064 032D;;;;N;;;1E12;;1E12
-1E14;LATIN CAPITAL LETTER E WITH MACRON AND GRAVE;Lu;0;L;0112 0300;;;;N;;;;1E15;
-1E15;LATIN SMALL LETTER E WITH MACRON AND GRAVE;Ll;0;L;0113 0300;;;;N;;;1E14;;1E14
-1E16;LATIN CAPITAL LETTER E WITH MACRON AND ACUTE;Lu;0;L;0112 0301;;;;N;;;;1E17;
-1E17;LATIN SMALL LETTER E WITH MACRON AND ACUTE;Ll;0;L;0113 0301;;;;N;;;1E16;;1E16
-1E18;LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW;Lu;0;L;0045 032D;;;;N;;;;1E19;
-1E19;LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW;Ll;0;L;0065 032D;;;;N;;;1E18;;1E18
-1E1A;LATIN CAPITAL LETTER E WITH TILDE BELOW;Lu;0;L;0045 0330;;;;N;;;;1E1B;
-1E1B;LATIN SMALL LETTER E WITH TILDE BELOW;Ll;0;L;0065 0330;;;;N;;;1E1A;;1E1A
-1E1C;LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE;Lu;0;L;0228 0306;;;;N;;;;1E1D;
-1E1D;LATIN SMALL LETTER E WITH CEDILLA AND BREVE;Ll;0;L;0229 0306;;;;N;;;1E1C;;1E1C
-1E1E;LATIN CAPITAL LETTER F WITH DOT ABOVE;Lu;0;L;0046 0307;;;;N;;;;1E1F;
-1E1F;LATIN SMALL LETTER F WITH DOT ABOVE;Ll;0;L;0066 0307;;;;N;;;1E1E;;1E1E
-1E20;LATIN CAPITAL LETTER G WITH MACRON;Lu;0;L;0047 0304;;;;N;;;;1E21;
-1E21;LATIN SMALL LETTER G WITH MACRON;Ll;0;L;0067 0304;;;;N;;;1E20;;1E20
-1E22;LATIN CAPITAL LETTER H WITH DOT ABOVE;Lu;0;L;0048 0307;;;;N;;;;1E23;
-1E23;LATIN SMALL LETTER H WITH DOT ABOVE;Ll;0;L;0068 0307;;;;N;;;1E22;;1E22
-1E24;LATIN CAPITAL LETTER H WITH DOT BELOW;Lu;0;L;0048 0323;;;;N;;;;1E25;
-1E25;LATIN SMALL LETTER H WITH DOT BELOW;Ll;0;L;0068 0323;;;;N;;;1E24;;1E24
-1E26;LATIN CAPITAL LETTER H WITH DIAERESIS;Lu;0;L;0048 0308;;;;N;;;;1E27;
-1E27;LATIN SMALL LETTER H WITH DIAERESIS;Ll;0;L;0068 0308;;;;N;;;1E26;;1E26
-1E28;LATIN CAPITAL LETTER H WITH CEDILLA;Lu;0;L;0048 0327;;;;N;;;;1E29;
-1E29;LATIN SMALL LETTER H WITH CEDILLA;Ll;0;L;0068 0327;;;;N;;;1E28;;1E28
-1E2A;LATIN CAPITAL LETTER H WITH BREVE BELOW;Lu;0;L;0048 032E;;;;N;;;;1E2B;
-1E2B;LATIN SMALL LETTER H WITH BREVE BELOW;Ll;0;L;0068 032E;;;;N;;;1E2A;;1E2A
-1E2C;LATIN CAPITAL LETTER I WITH TILDE BELOW;Lu;0;L;0049 0330;;;;N;;;;1E2D;
-1E2D;LATIN SMALL LETTER I WITH TILDE BELOW;Ll;0;L;0069 0330;;;;N;;;1E2C;;1E2C
-1E2E;LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE;Lu;0;L;00CF 0301;;;;N;;;;1E2F;
-1E2F;LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE;Ll;0;L;00EF 0301;;;;N;;;1E2E;;1E2E
-1E30;LATIN CAPITAL LETTER K WITH ACUTE;Lu;0;L;004B 0301;;;;N;;;;1E31;
-1E31;LATIN SMALL LETTER K WITH ACUTE;Ll;0;L;006B 0301;;;;N;;;1E30;;1E30
-1E32;LATIN CAPITAL LETTER K WITH DOT BELOW;Lu;0;L;004B 0323;;;;N;;;;1E33;
-1E33;LATIN SMALL LETTER K WITH DOT BELOW;Ll;0;L;006B 0323;;;;N;;;1E32;;1E32
-1E34;LATIN CAPITAL LETTER K WITH LINE BELOW;Lu;0;L;004B 0331;;;;N;;;;1E35;
-1E35;LATIN SMALL LETTER K WITH LINE BELOW;Ll;0;L;006B 0331;;;;N;;;1E34;;1E34
-1E36;LATIN CAPITAL LETTER L WITH DOT BELOW;Lu;0;L;004C 0323;;;;N;;;;1E37;
-1E37;LATIN SMALL LETTER L WITH DOT BELOW;Ll;0;L;006C 0323;;;;N;;;1E36;;1E36
-1E38;LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON;Lu;0;L;1E36 0304;;;;N;;;;1E39;
-1E39;LATIN SMALL LETTER L WITH DOT BELOW AND MACRON;Ll;0;L;1E37 0304;;;;N;;;1E38;;1E38
-1E3A;LATIN CAPITAL LETTER L WITH LINE BELOW;Lu;0;L;004C 0331;;;;N;;;;1E3B;
-1E3B;LATIN SMALL LETTER L WITH LINE BELOW;Ll;0;L;006C 0331;;;;N;;;1E3A;;1E3A
-1E3C;LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW;Lu;0;L;004C 032D;;;;N;;;;1E3D;
-1E3D;LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW;Ll;0;L;006C 032D;;;;N;;;1E3C;;1E3C
-1E3E;LATIN CAPITAL LETTER M WITH ACUTE;Lu;0;L;004D 0301;;;;N;;;;1E3F;
-1E3F;LATIN SMALL LETTER M WITH ACUTE;Ll;0;L;006D 0301;;;;N;;;1E3E;;1E3E
-1E40;LATIN CAPITAL LETTER M WITH DOT ABOVE;Lu;0;L;004D 0307;;;;N;;;;1E41;
-1E41;LATIN SMALL LETTER M WITH DOT ABOVE;Ll;0;L;006D 0307;;;;N;;;1E40;;1E40
-1E42;LATIN CAPITAL LETTER M WITH DOT BELOW;Lu;0;L;004D 0323;;;;N;;;;1E43;
-1E43;LATIN SMALL LETTER M WITH DOT BELOW;Ll;0;L;006D 0323;;;;N;;;1E42;;1E42
-1E44;LATIN CAPITAL LETTER N WITH DOT ABOVE;Lu;0;L;004E 0307;;;;N;;;;1E45;
-1E45;LATIN SMALL LETTER N WITH DOT ABOVE;Ll;0;L;006E 0307;;;;N;;;1E44;;1E44
-1E46;LATIN CAPITAL LETTER N WITH DOT BELOW;Lu;0;L;004E 0323;;;;N;;;;1E47;
-1E47;LATIN SMALL LETTER N WITH DOT BELOW;Ll;0;L;006E 0323;;;;N;;;1E46;;1E46
-1E48;LATIN CAPITAL LETTER N WITH LINE BELOW;Lu;0;L;004E 0331;;;;N;;;;1E49;
-1E49;LATIN SMALL LETTER N WITH LINE BELOW;Ll;0;L;006E 0331;;;;N;;;1E48;;1E48
-1E4A;LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW;Lu;0;L;004E 032D;;;;N;;;;1E4B;
-1E4B;LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW;Ll;0;L;006E 032D;;;;N;;;1E4A;;1E4A
-1E4C;LATIN CAPITAL LETTER O WITH TILDE AND ACUTE;Lu;0;L;00D5 0301;;;;N;;;;1E4D;
-1E4D;LATIN SMALL LETTER O WITH TILDE AND ACUTE;Ll;0;L;00F5 0301;;;;N;;;1E4C;;1E4C
-1E4E;LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS;Lu;0;L;00D5 0308;;;;N;;;;1E4F;
-1E4F;LATIN SMALL LETTER O WITH TILDE AND DIAERESIS;Ll;0;L;00F5 0308;;;;N;;;1E4E;;1E4E
-1E50;LATIN CAPITAL LETTER O WITH MACRON AND GRAVE;Lu;0;L;014C 0300;;;;N;;;;1E51;
-1E51;LATIN SMALL LETTER O WITH MACRON AND GRAVE;Ll;0;L;014D 0300;;;;N;;;1E50;;1E50
-1E52;LATIN CAPITAL LETTER O WITH MACRON AND ACUTE;Lu;0;L;014C 0301;;;;N;;;;1E53;
-1E53;LATIN SMALL LETTER O WITH MACRON AND ACUTE;Ll;0;L;014D 0301;;;;N;;;1E52;;1E52
-1E54;LATIN CAPITAL LETTER P WITH ACUTE;Lu;0;L;0050 0301;;;;N;;;;1E55;
-1E55;LATIN SMALL LETTER P WITH ACUTE;Ll;0;L;0070 0301;;;;N;;;1E54;;1E54
-1E56;LATIN CAPITAL LETTER P WITH DOT ABOVE;Lu;0;L;0050 0307;;;;N;;;;1E57;
-1E57;LATIN SMALL LETTER P WITH DOT ABOVE;Ll;0;L;0070 0307;;;;N;;;1E56;;1E56
-1E58;LATIN CAPITAL LETTER R WITH DOT ABOVE;Lu;0;L;0052 0307;;;;N;;;;1E59;
-1E59;LATIN SMALL LETTER R WITH DOT ABOVE;Ll;0;L;0072 0307;;;;N;;;1E58;;1E58
-1E5A;LATIN CAPITAL LETTER R WITH DOT BELOW;Lu;0;L;0052 0323;;;;N;;;;1E5B;
-1E5B;LATIN SMALL LETTER R WITH DOT BELOW;Ll;0;L;0072 0323;;;;N;;;1E5A;;1E5A
-1E5C;LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON;Lu;0;L;1E5A 0304;;;;N;;;;1E5D;
-1E5D;LATIN SMALL LETTER R WITH DOT BELOW AND MACRON;Ll;0;L;1E5B 0304;;;;N;;;1E5C;;1E5C
-1E5E;LATIN CAPITAL LETTER R WITH LINE BELOW;Lu;0;L;0052 0331;;;;N;;;;1E5F;
-1E5F;LATIN SMALL LETTER R WITH LINE BELOW;Ll;0;L;0072 0331;;;;N;;;1E5E;;1E5E
-1E60;LATIN CAPITAL LETTER S WITH DOT ABOVE;Lu;0;L;0053 0307;;;;N;;;;1E61;
-1E61;LATIN SMALL LETTER S WITH DOT ABOVE;Ll;0;L;0073 0307;;;;N;;;1E60;;1E60
-1E62;LATIN CAPITAL LETTER S WITH DOT BELOW;Lu;0;L;0053 0323;;;;N;;;;1E63;
-1E63;LATIN SMALL LETTER S WITH DOT BELOW;Ll;0;L;0073 0323;;;;N;;;1E62;;1E62
-1E64;LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE;Lu;0;L;015A 0307;;;;N;;;;1E65;
-1E65;LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE;Ll;0;L;015B 0307;;;;N;;;1E64;;1E64
-1E66;LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE;Lu;0;L;0160 0307;;;;N;;;;1E67;
-1E67;LATIN SMALL LETTER S WITH CARON AND DOT ABOVE;Ll;0;L;0161 0307;;;;N;;;1E66;;1E66
-1E68;LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE;Lu;0;L;1E62 0307;;;;N;;;;1E69;
-1E69;LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE;Ll;0;L;1E63 0307;;;;N;;;1E68;;1E68
-1E6A;LATIN CAPITAL LETTER T WITH DOT ABOVE;Lu;0;L;0054 0307;;;;N;;;;1E6B;
-1E6B;LATIN SMALL LETTER T WITH DOT ABOVE;Ll;0;L;0074 0307;;;;N;;;1E6A;;1E6A
-1E6C;LATIN CAPITAL LETTER T WITH DOT BELOW;Lu;0;L;0054 0323;;;;N;;;;1E6D;
-1E6D;LATIN SMALL LETTER T WITH DOT BELOW;Ll;0;L;0074 0323;;;;N;;;1E6C;;1E6C
-1E6E;LATIN CAPITAL LETTER T WITH LINE BELOW;Lu;0;L;0054 0331;;;;N;;;;1E6F;
-1E6F;LATIN SMALL LETTER T WITH LINE BELOW;Ll;0;L;0074 0331;;;;N;;;1E6E;;1E6E
-1E70;LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW;Lu;0;L;0054 032D;;;;N;;;;1E71;
-1E71;LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW;Ll;0;L;0074 032D;;;;N;;;1E70;;1E70
-1E72;LATIN CAPITAL LETTER U WITH DIAERESIS BELOW;Lu;0;L;0055 0324;;;;N;;;;1E73;
-1E73;LATIN SMALL LETTER U WITH DIAERESIS BELOW;Ll;0;L;0075 0324;;;;N;;;1E72;;1E72
-1E74;LATIN CAPITAL LETTER U WITH TILDE BELOW;Lu;0;L;0055 0330;;;;N;;;;1E75;
-1E75;LATIN SMALL LETTER U WITH TILDE BELOW;Ll;0;L;0075 0330;;;;N;;;1E74;;1E74
-1E76;LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW;Lu;0;L;0055 032D;;;;N;;;;1E77;
-1E77;LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW;Ll;0;L;0075 032D;;;;N;;;1E76;;1E76
-1E78;LATIN CAPITAL LETTER U WITH TILDE AND ACUTE;Lu;0;L;0168 0301;;;;N;;;;1E79;
-1E79;LATIN SMALL LETTER U WITH TILDE AND ACUTE;Ll;0;L;0169 0301;;;;N;;;1E78;;1E78
-1E7A;LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS;Lu;0;L;016A 0308;;;;N;;;;1E7B;
-1E7B;LATIN SMALL LETTER U WITH MACRON AND DIAERESIS;Ll;0;L;016B 0308;;;;N;;;1E7A;;1E7A
-1E7C;LATIN CAPITAL LETTER V WITH TILDE;Lu;0;L;0056 0303;;;;N;;;;1E7D;
-1E7D;LATIN SMALL LETTER V WITH TILDE;Ll;0;L;0076 0303;;;;N;;;1E7C;;1E7C
-1E7E;LATIN CAPITAL LETTER V WITH DOT BELOW;Lu;0;L;0056 0323;;;;N;;;;1E7F;
-1E7F;LATIN SMALL LETTER V WITH DOT BELOW;Ll;0;L;0076 0323;;;;N;;;1E7E;;1E7E
-1E80;LATIN CAPITAL LETTER W WITH GRAVE;Lu;0;L;0057 0300;;;;N;;;;1E81;
-1E81;LATIN SMALL LETTER W WITH GRAVE;Ll;0;L;0077 0300;;;;N;;;1E80;;1E80
-1E82;LATIN CAPITAL LETTER W WITH ACUTE;Lu;0;L;0057 0301;;;;N;;;;1E83;
-1E83;LATIN SMALL LETTER W WITH ACUTE;Ll;0;L;0077 0301;;;;N;;;1E82;;1E82
-1E84;LATIN CAPITAL LETTER W WITH DIAERESIS;Lu;0;L;0057 0308;;;;N;;;;1E85;
-1E85;LATIN SMALL LETTER W WITH DIAERESIS;Ll;0;L;0077 0308;;;;N;;;1E84;;1E84
-1E86;LATIN CAPITAL LETTER W WITH DOT ABOVE;Lu;0;L;0057 0307;;;;N;;;;1E87;
-1E87;LATIN SMALL LETTER W WITH DOT ABOVE;Ll;0;L;0077 0307;;;;N;;;1E86;;1E86
-1E88;LATIN CAPITAL LETTER W WITH DOT BELOW;Lu;0;L;0057 0323;;;;N;;;;1E89;
-1E89;LATIN SMALL LETTER W WITH DOT BELOW;Ll;0;L;0077 0323;;;;N;;;1E88;;1E88
-1E8A;LATIN CAPITAL LETTER X WITH DOT ABOVE;Lu;0;L;0058 0307;;;;N;;;;1E8B;
-1E8B;LATIN SMALL LETTER X WITH DOT ABOVE;Ll;0;L;0078 0307;;;;N;;;1E8A;;1E8A
-1E8C;LATIN CAPITAL LETTER X WITH DIAERESIS;Lu;0;L;0058 0308;;;;N;;;;1E8D;
-1E8D;LATIN SMALL LETTER X WITH DIAERESIS;Ll;0;L;0078 0308;;;;N;;;1E8C;;1E8C
-1E8E;LATIN CAPITAL LETTER Y WITH DOT ABOVE;Lu;0;L;0059 0307;;;;N;;;;1E8F;
-1E8F;LATIN SMALL LETTER Y WITH DOT ABOVE;Ll;0;L;0079 0307;;;;N;;;1E8E;;1E8E
-1E90;LATIN CAPITAL LETTER Z WITH CIRCUMFLEX;Lu;0;L;005A 0302;;;;N;;;;1E91;
-1E91;LATIN SMALL LETTER Z WITH CIRCUMFLEX;Ll;0;L;007A 0302;;;;N;;;1E90;;1E90
-1E92;LATIN CAPITAL LETTER Z WITH DOT BELOW;Lu;0;L;005A 0323;;;;N;;;;1E93;
-1E93;LATIN SMALL LETTER Z WITH DOT BELOW;Ll;0;L;007A 0323;;;;N;;;1E92;;1E92
-1E94;LATIN CAPITAL LETTER Z WITH LINE BELOW;Lu;0;L;005A 0331;;;;N;;;;1E95;
-1E95;LATIN SMALL LETTER Z WITH LINE BELOW;Ll;0;L;007A 0331;;;;N;;;1E94;;1E94
-1E96;LATIN SMALL LETTER H WITH LINE BELOW;Ll;0;L;0068 0331;;;;N;;;;;
-1E97;LATIN SMALL LETTER T WITH DIAERESIS;Ll;0;L;0074 0308;;;;N;;;;;
-1E98;LATIN SMALL LETTER W WITH RING ABOVE;Ll;0;L;0077 030A;;;;N;;;;;
-1E99;LATIN SMALL LETTER Y WITH RING ABOVE;Ll;0;L;0079 030A;;;;N;;;;;
-1E9A;LATIN SMALL LETTER A WITH RIGHT HALF RING;Ll;0;L;<compat> 0061 02BE;;;;N;;;;;
-1E9B;LATIN SMALL LETTER LONG S WITH DOT ABOVE;Ll;0;L;017F 0307;;;;N;;;1E60;;1E60
-1E9C;LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;;;
-1E9D;LATIN SMALL LETTER LONG S WITH HIGH STROKE;Ll;0;L;;;;;N;;;;;
-1E9E;LATIN CAPITAL LETTER SHARP S;Lu;0;L;;;;;N;;;;00DF;
-1E9F;LATIN SMALL LETTER DELTA;Ll;0;L;;;;;N;;;;;
-1EA0;LATIN CAPITAL LETTER A WITH DOT BELOW;Lu;0;L;0041 0323;;;;N;;;;1EA1;
-1EA1;LATIN SMALL LETTER A WITH DOT BELOW;Ll;0;L;0061 0323;;;;N;;;1EA0;;1EA0
-1EA2;LATIN CAPITAL LETTER A WITH HOOK ABOVE;Lu;0;L;0041 0309;;;;N;;;;1EA3;
-1EA3;LATIN SMALL LETTER A WITH HOOK ABOVE;Ll;0;L;0061 0309;;;;N;;;1EA2;;1EA2
-1EA4;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00C2 0301;;;;N;;;;1EA5;
-1EA5;LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00E2 0301;;;;N;;;1EA4;;1EA4
-1EA6;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00C2 0300;;;;N;;;;1EA7;
-1EA7;LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00E2 0300;;;;N;;;1EA6;;1EA6
-1EA8;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00C2 0309;;;;N;;;;1EA9;
-1EA9;LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00E2 0309;;;;N;;;1EA8;;1EA8
-1EAA;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE;Lu;0;L;00C2 0303;;;;N;;;;1EAB;
-1EAB;LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE;Ll;0;L;00E2 0303;;;;N;;;1EAA;;1EAA
-1EAC;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EA0 0302;;;;N;;;;1EAD;
-1EAD;LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EA1 0302;;;;N;;;1EAC;;1EAC
-1EAE;LATIN CAPITAL LETTER A WITH BREVE AND ACUTE;Lu;0;L;0102 0301;;;;N;;;;1EAF;
-1EAF;LATIN SMALL LETTER A WITH BREVE AND ACUTE;Ll;0;L;0103 0301;;;;N;;;1EAE;;1EAE
-1EB0;LATIN CAPITAL LETTER A WITH BREVE AND GRAVE;Lu;0;L;0102 0300;;;;N;;;;1EB1;
-1EB1;LATIN SMALL LETTER A WITH BREVE AND GRAVE;Ll;0;L;0103 0300;;;;N;;;1EB0;;1EB0
-1EB2;LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE;Lu;0;L;0102 0309;;;;N;;;;1EB3;
-1EB3;LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE;Ll;0;L;0103 0309;;;;N;;;1EB2;;1EB2
-1EB4;LATIN CAPITAL LETTER A WITH BREVE AND TILDE;Lu;0;L;0102 0303;;;;N;;;;1EB5;
-1EB5;LATIN SMALL LETTER A WITH BREVE AND TILDE;Ll;0;L;0103 0303;;;;N;;;1EB4;;1EB4
-1EB6;LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW;Lu;0;L;1EA0 0306;;;;N;;;;1EB7;
-1EB7;LATIN SMALL LETTER A WITH BREVE AND DOT BELOW;Ll;0;L;1EA1 0306;;;;N;;;1EB6;;1EB6
-1EB8;LATIN CAPITAL LETTER E WITH DOT BELOW;Lu;0;L;0045 0323;;;;N;;;;1EB9;
-1EB9;LATIN SMALL LETTER E WITH DOT BELOW;Ll;0;L;0065 0323;;;;N;;;1EB8;;1EB8
-1EBA;LATIN CAPITAL LETTER E WITH HOOK ABOVE;Lu;0;L;0045 0309;;;;N;;;;1EBB;
-1EBB;LATIN SMALL LETTER E WITH HOOK ABOVE;Ll;0;L;0065 0309;;;;N;;;1EBA;;1EBA
-1EBC;LATIN CAPITAL LETTER E WITH TILDE;Lu;0;L;0045 0303;;;;N;;;;1EBD;
-1EBD;LATIN SMALL LETTER E WITH TILDE;Ll;0;L;0065 0303;;;;N;;;1EBC;;1EBC
-1EBE;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00CA 0301;;;;N;;;;1EBF;
-1EBF;LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00EA 0301;;;;N;;;1EBE;;1EBE
-1EC0;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00CA 0300;;;;N;;;;1EC1;
-1EC1;LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00EA 0300;;;;N;;;1EC0;;1EC0
-1EC2;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00CA 0309;;;;N;;;;1EC3;
-1EC3;LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00EA 0309;;;;N;;;1EC2;;1EC2
-1EC4;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE;Lu;0;L;00CA 0303;;;;N;;;;1EC5;
-1EC5;LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE;Ll;0;L;00EA 0303;;;;N;;;1EC4;;1EC4
-1EC6;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EB8 0302;;;;N;;;;1EC7;
-1EC7;LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EB9 0302;;;;N;;;1EC6;;1EC6
-1EC8;LATIN CAPITAL LETTER I WITH HOOK ABOVE;Lu;0;L;0049 0309;;;;N;;;;1EC9;
-1EC9;LATIN SMALL LETTER I WITH HOOK ABOVE;Ll;0;L;0069 0309;;;;N;;;1EC8;;1EC8
-1ECA;LATIN CAPITAL LETTER I WITH DOT BELOW;Lu;0;L;0049 0323;;;;N;;;;1ECB;
-1ECB;LATIN SMALL LETTER I WITH DOT BELOW;Ll;0;L;0069 0323;;;;N;;;1ECA;;1ECA
-1ECC;LATIN CAPITAL LETTER O WITH DOT BELOW;Lu;0;L;004F 0323;;;;N;;;;1ECD;
-1ECD;LATIN SMALL LETTER O WITH DOT BELOW;Ll;0;L;006F 0323;;;;N;;;1ECC;;1ECC
-1ECE;LATIN CAPITAL LETTER O WITH HOOK ABOVE;Lu;0;L;004F 0309;;;;N;;;;1ECF;
-1ECF;LATIN SMALL LETTER O WITH HOOK ABOVE;Ll;0;L;006F 0309;;;;N;;;1ECE;;1ECE
-1ED0;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00D4 0301;;;;N;;;;1ED1;
-1ED1;LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00F4 0301;;;;N;;;1ED0;;1ED0
-1ED2;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00D4 0300;;;;N;;;;1ED3;
-1ED3;LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00F4 0300;;;;N;;;1ED2;;1ED2
-1ED4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00D4 0309;;;;N;;;;1ED5;
-1ED5;LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00F4 0309;;;;N;;;1ED4;;1ED4
-1ED6;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE;Lu;0;L;00D4 0303;;;;N;;;;1ED7;
-1ED7;LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE;Ll;0;L;00F4 0303;;;;N;;;1ED6;;1ED6
-1ED8;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1ECC 0302;;;;N;;;;1ED9;
-1ED9;LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1ECD 0302;;;;N;;;1ED8;;1ED8
-1EDA;LATIN CAPITAL LETTER O WITH HORN AND ACUTE;Lu;0;L;01A0 0301;;;;N;;;;1EDB;
-1EDB;LATIN SMALL LETTER O WITH HORN AND ACUTE;Ll;0;L;01A1 0301;;;;N;;;1EDA;;1EDA
-1EDC;LATIN CAPITAL LETTER O WITH HORN AND GRAVE;Lu;0;L;01A0 0300;;;;N;;;;1EDD;
-1EDD;LATIN SMALL LETTER O WITH HORN AND GRAVE;Ll;0;L;01A1 0300;;;;N;;;1EDC;;1EDC
-1EDE;LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE;Lu;0;L;01A0 0309;;;;N;;;;1EDF;
-1EDF;LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE;Ll;0;L;01A1 0309;;;;N;;;1EDE;;1EDE
-1EE0;LATIN CAPITAL LETTER O WITH HORN AND TILDE;Lu;0;L;01A0 0303;;;;N;;;;1EE1;
-1EE1;LATIN SMALL LETTER O WITH HORN AND TILDE;Ll;0;L;01A1 0303;;;;N;;;1EE0;;1EE0
-1EE2;LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW;Lu;0;L;01A0 0323;;;;N;;;;1EE3;
-1EE3;LATIN SMALL LETTER O WITH HORN AND DOT BELOW;Ll;0;L;01A1 0323;;;;N;;;1EE2;;1EE2
-1EE4;LATIN CAPITAL LETTER U WITH DOT BELOW;Lu;0;L;0055 0323;;;;N;;;;1EE5;
-1EE5;LATIN SMALL LETTER U WITH DOT BELOW;Ll;0;L;0075 0323;;;;N;;;1EE4;;1EE4
-1EE6;LATIN CAPITAL LETTER U WITH HOOK ABOVE;Lu;0;L;0055 0309;;;;N;;;;1EE7;
-1EE7;LATIN SMALL LETTER U WITH HOOK ABOVE;Ll;0;L;0075 0309;;;;N;;;1EE6;;1EE6
-1EE8;LATIN CAPITAL LETTER U WITH HORN AND ACUTE;Lu;0;L;01AF 0301;;;;N;;;;1EE9;
-1EE9;LATIN SMALL LETTER U WITH HORN AND ACUTE;Ll;0;L;01B0 0301;;;;N;;;1EE8;;1EE8
-1EEA;LATIN CAPITAL LETTER U WITH HORN AND GRAVE;Lu;0;L;01AF 0300;;;;N;;;;1EEB;
-1EEB;LATIN SMALL LETTER U WITH HORN AND GRAVE;Ll;0;L;01B0 0300;;;;N;;;1EEA;;1EEA
-1EEC;LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE;Lu;0;L;01AF 0309;;;;N;;;;1EED;
-1EED;LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE;Ll;0;L;01B0 0309;;;;N;;;1EEC;;1EEC
-1EEE;LATIN CAPITAL LETTER U WITH HORN AND TILDE;Lu;0;L;01AF 0303;;;;N;;;;1EEF;
-1EEF;LATIN SMALL LETTER U WITH HORN AND TILDE;Ll;0;L;01B0 0303;;;;N;;;1EEE;;1EEE
-1EF0;LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW;Lu;0;L;01AF 0323;;;;N;;;;1EF1;
-1EF1;LATIN SMALL LETTER U WITH HORN AND DOT BELOW;Ll;0;L;01B0 0323;;;;N;;;1EF0;;1EF0
-1EF2;LATIN CAPITAL LETTER Y WITH GRAVE;Lu;0;L;0059 0300;;;;N;;;;1EF3;
-1EF3;LATIN SMALL LETTER Y WITH GRAVE;Ll;0;L;0079 0300;;;;N;;;1EF2;;1EF2
-1EF4;LATIN CAPITAL LETTER Y WITH DOT BELOW;Lu;0;L;0059 0323;;;;N;;;;1EF5;
-1EF5;LATIN SMALL LETTER Y WITH DOT BELOW;Ll;0;L;0079 0323;;;;N;;;1EF4;;1EF4
-1EF6;LATIN CAPITAL LETTER Y WITH HOOK ABOVE;Lu;0;L;0059 0309;;;;N;;;;1EF7;
-1EF7;LATIN SMALL LETTER Y WITH HOOK ABOVE;Ll;0;L;0079 0309;;;;N;;;1EF6;;1EF6
-1EF8;LATIN CAPITAL LETTER Y WITH TILDE;Lu;0;L;0059 0303;;;;N;;;;1EF9;
-1EF9;LATIN SMALL LETTER Y WITH TILDE;Ll;0;L;0079 0303;;;;N;;;1EF8;;1EF8
-1EFA;LATIN CAPITAL LETTER MIDDLE-WELSH LL;Lu;0;L;;;;;N;;;;1EFB;
-1EFB;LATIN SMALL LETTER MIDDLE-WELSH LL;Ll;0;L;;;;;N;;;1EFA;;1EFA
-1EFC;LATIN CAPITAL LETTER MIDDLE-WELSH V;Lu;0;L;;;;;N;;;;1EFD;
-1EFD;LATIN SMALL LETTER MIDDLE-WELSH V;Ll;0;L;;;;;N;;;1EFC;;1EFC
-1EFE;LATIN CAPITAL LETTER Y WITH LOOP;Lu;0;L;;;;;N;;;;1EFF;
-1EFF;LATIN SMALL LETTER Y WITH LOOP;Ll;0;L;;;;;N;;;1EFE;;1EFE
-1F00;GREEK SMALL LETTER ALPHA WITH PSILI;Ll;0;L;03B1 0313;;;;N;;;1F08;;1F08
-1F01;GREEK SMALL LETTER ALPHA WITH DASIA;Ll;0;L;03B1 0314;;;;N;;;1F09;;1F09
-1F02;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA;Ll;0;L;1F00 0300;;;;N;;;1F0A;;1F0A
-1F03;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA;Ll;0;L;1F01 0300;;;;N;;;1F0B;;1F0B
-1F04;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA;Ll;0;L;1F00 0301;;;;N;;;1F0C;;1F0C
-1F05;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA;Ll;0;L;1F01 0301;;;;N;;;1F0D;;1F0D
-1F06;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI;Ll;0;L;1F00 0342;;;;N;;;1F0E;;1F0E
-1F07;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI;Ll;0;L;1F01 0342;;;;N;;;1F0F;;1F0F
-1F08;GREEK CAPITAL LETTER ALPHA WITH PSILI;Lu;0;L;0391 0313;;;;N;;;;1F00;
-1F09;GREEK CAPITAL LETTER ALPHA WITH DASIA;Lu;0;L;0391 0314;;;;N;;;;1F01;
-1F0A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA;Lu;0;L;1F08 0300;;;;N;;;;1F02;
-1F0B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA;Lu;0;L;1F09 0300;;;;N;;;;1F03;
-1F0C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA;Lu;0;L;1F08 0301;;;;N;;;;1F04;
-1F0D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA;Lu;0;L;1F09 0301;;;;N;;;;1F05;
-1F0E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI;Lu;0;L;1F08 0342;;;;N;;;;1F06;
-1F0F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI;Lu;0;L;1F09 0342;;;;N;;;;1F07;
-1F10;GREEK SMALL LETTER EPSILON WITH PSILI;Ll;0;L;03B5 0313;;;;N;;;1F18;;1F18
-1F11;GREEK SMALL LETTER EPSILON WITH DASIA;Ll;0;L;03B5 0314;;;;N;;;1F19;;1F19
-1F12;GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA;Ll;0;L;1F10 0300;;;;N;;;1F1A;;1F1A
-1F13;GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA;Ll;0;L;1F11 0300;;;;N;;;1F1B;;1F1B
-1F14;GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA;Ll;0;L;1F10 0301;;;;N;;;1F1C;;1F1C
-1F15;GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA;Ll;0;L;1F11 0301;;;;N;;;1F1D;;1F1D
-1F18;GREEK CAPITAL LETTER EPSILON WITH PSILI;Lu;0;L;0395 0313;;;;N;;;;1F10;
-1F19;GREEK CAPITAL LETTER EPSILON WITH DASIA;Lu;0;L;0395 0314;;;;N;;;;1F11;
-1F1A;GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA;Lu;0;L;1F18 0300;;;;N;;;;1F12;
-1F1B;GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA;Lu;0;L;1F19 0300;;;;N;;;;1F13;
-1F1C;GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA;Lu;0;L;1F18 0301;;;;N;;;;1F14;
-1F1D;GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA;Lu;0;L;1F19 0301;;;;N;;;;1F15;
-1F20;GREEK SMALL LETTER ETA WITH PSILI;Ll;0;L;03B7 0313;;;;N;;;1F28;;1F28
-1F21;GREEK SMALL LETTER ETA WITH DASIA;Ll;0;L;03B7 0314;;;;N;;;1F29;;1F29
-1F22;GREEK SMALL LETTER ETA WITH PSILI AND VARIA;Ll;0;L;1F20 0300;;;;N;;;1F2A;;1F2A
-1F23;GREEK SMALL LETTER ETA WITH DASIA AND VARIA;Ll;0;L;1F21 0300;;;;N;;;1F2B;;1F2B
-1F24;GREEK SMALL LETTER ETA WITH PSILI AND OXIA;Ll;0;L;1F20 0301;;;;N;;;1F2C;;1F2C
-1F25;GREEK SMALL LETTER ETA WITH DASIA AND OXIA;Ll;0;L;1F21 0301;;;;N;;;1F2D;;1F2D
-1F26;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI;Ll;0;L;1F20 0342;;;;N;;;1F2E;;1F2E
-1F27;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI;Ll;0;L;1F21 0342;;;;N;;;1F2F;;1F2F
-1F28;GREEK CAPITAL LETTER ETA WITH PSILI;Lu;0;L;0397 0313;;;;N;;;;1F20;
-1F29;GREEK CAPITAL LETTER ETA WITH DASIA;Lu;0;L;0397 0314;;;;N;;;;1F21;
-1F2A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA;Lu;0;L;1F28 0300;;;;N;;;;1F22;
-1F2B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA;Lu;0;L;1F29 0300;;;;N;;;;1F23;
-1F2C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA;Lu;0;L;1F28 0301;;;;N;;;;1F24;
-1F2D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA;Lu;0;L;1F29 0301;;;;N;;;;1F25;
-1F2E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI;Lu;0;L;1F28 0342;;;;N;;;;1F26;
-1F2F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI;Lu;0;L;1F29 0342;;;;N;;;;1F27;
-1F30;GREEK SMALL LETTER IOTA WITH PSILI;Ll;0;L;03B9 0313;;;;N;;;1F38;;1F38
-1F31;GREEK SMALL LETTER IOTA WITH DASIA;Ll;0;L;03B9 0314;;;;N;;;1F39;;1F39
-1F32;GREEK SMALL LETTER IOTA WITH PSILI AND VARIA;Ll;0;L;1F30 0300;;;;N;;;1F3A;;1F3A
-1F33;GREEK SMALL LETTER IOTA WITH DASIA AND VARIA;Ll;0;L;1F31 0300;;;;N;;;1F3B;;1F3B
-1F34;GREEK SMALL LETTER IOTA WITH PSILI AND OXIA;Ll;0;L;1F30 0301;;;;N;;;1F3C;;1F3C
-1F35;GREEK SMALL LETTER IOTA WITH DASIA AND OXIA;Ll;0;L;1F31 0301;;;;N;;;1F3D;;1F3D
-1F36;GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI;Ll;0;L;1F30 0342;;;;N;;;1F3E;;1F3E
-1F37;GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI;Ll;0;L;1F31 0342;;;;N;;;1F3F;;1F3F
-1F38;GREEK CAPITAL LETTER IOTA WITH PSILI;Lu;0;L;0399 0313;;;;N;;;;1F30;
-1F39;GREEK CAPITAL LETTER IOTA WITH DASIA;Lu;0;L;0399 0314;;;;N;;;;1F31;
-1F3A;GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA;Lu;0;L;1F38 0300;;;;N;;;;1F32;
-1F3B;GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA;Lu;0;L;1F39 0300;;;;N;;;;1F33;
-1F3C;GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA;Lu;0;L;1F38 0301;;;;N;;;;1F34;
-1F3D;GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA;Lu;0;L;1F39 0301;;;;N;;;;1F35;
-1F3E;GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI;Lu;0;L;1F38 0342;;;;N;;;;1F36;
-1F3F;GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI;Lu;0;L;1F39 0342;;;;N;;;;1F37;
-1F40;GREEK SMALL LETTER OMICRON WITH PSILI;Ll;0;L;03BF 0313;;;;N;;;1F48;;1F48
-1F41;GREEK SMALL LETTER OMICRON WITH DASIA;Ll;0;L;03BF 0314;;;;N;;;1F49;;1F49
-1F42;GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA;Ll;0;L;1F40 0300;;;;N;;;1F4A;;1F4A
-1F43;GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA;Ll;0;L;1F41 0300;;;;N;;;1F4B;;1F4B
-1F44;GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA;Ll;0;L;1F40 0301;;;;N;;;1F4C;;1F4C
-1F45;GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA;Ll;0;L;1F41 0301;;;;N;;;1F4D;;1F4D
-1F48;GREEK CAPITAL LETTER OMICRON WITH PSILI;Lu;0;L;039F 0313;;;;N;;;;1F40;
-1F49;GREEK CAPITAL LETTER OMICRON WITH DASIA;Lu;0;L;039F 0314;;;;N;;;;1F41;
-1F4A;GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA;Lu;0;L;1F48 0300;;;;N;;;;1F42;
-1F4B;GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA;Lu;0;L;1F49 0300;;;;N;;;;1F43;
-1F4C;GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA;Lu;0;L;1F48 0301;;;;N;;;;1F44;
-1F4D;GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA;Lu;0;L;1F49 0301;;;;N;;;;1F45;
-1F50;GREEK SMALL LETTER UPSILON WITH PSILI;Ll;0;L;03C5 0313;;;;N;;;;;
-1F51;GREEK SMALL LETTER UPSILON WITH DASIA;Ll;0;L;03C5 0314;;;;N;;;1F59;;1F59
-1F52;GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA;Ll;0;L;1F50 0300;;;;N;;;;;
-1F53;GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA;Ll;0;L;1F51 0300;;;;N;;;1F5B;;1F5B
-1F54;GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA;Ll;0;L;1F50 0301;;;;N;;;;;
-1F55;GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA;Ll;0;L;1F51 0301;;;;N;;;1F5D;;1F5D
-1F56;GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI;Ll;0;L;1F50 0342;;;;N;;;;;
-1F57;GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI;Ll;0;L;1F51 0342;;;;N;;;1F5F;;1F5F
-1F59;GREEK CAPITAL LETTER UPSILON WITH DASIA;Lu;0;L;03A5 0314;;;;N;;;;1F51;
-1F5B;GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA;Lu;0;L;1F59 0300;;;;N;;;;1F53;
-1F5D;GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA;Lu;0;L;1F59 0301;;;;N;;;;1F55;
-1F5F;GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI;Lu;0;L;1F59 0342;;;;N;;;;1F57;
-1F60;GREEK SMALL LETTER OMEGA WITH PSILI;Ll;0;L;03C9 0313;;;;N;;;1F68;;1F68
-1F61;GREEK SMALL LETTER OMEGA WITH DASIA;Ll;0;L;03C9 0314;;;;N;;;1F69;;1F69
-1F62;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA;Ll;0;L;1F60 0300;;;;N;;;1F6A;;1F6A
-1F63;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA;Ll;0;L;1F61 0300;;;;N;;;1F6B;;1F6B
-1F64;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA;Ll;0;L;1F60 0301;;;;N;;;1F6C;;1F6C
-1F65;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA;Ll;0;L;1F61 0301;;;;N;;;1F6D;;1F6D
-1F66;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI;Ll;0;L;1F60 0342;;;;N;;;1F6E;;1F6E
-1F67;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI;Ll;0;L;1F61 0342;;;;N;;;1F6F;;1F6F
-1F68;GREEK CAPITAL LETTER OMEGA WITH PSILI;Lu;0;L;03A9 0313;;;;N;;;;1F60;
-1F69;GREEK CAPITAL LETTER OMEGA WITH DASIA;Lu;0;L;03A9 0314;;;;N;;;;1F61;
-1F6A;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA;Lu;0;L;1F68 0300;;;;N;;;;1F62;
-1F6B;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA;Lu;0;L;1F69 0300;;;;N;;;;1F63;
-1F6C;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA;Lu;0;L;1F68 0301;;;;N;;;;1F64;
-1F6D;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA;Lu;0;L;1F69 0301;;;;N;;;;1F65;
-1F6E;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI;Lu;0;L;1F68 0342;;;;N;;;;1F66;
-1F6F;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI;Lu;0;L;1F69 0342;;;;N;;;;1F67;
-1F70;GREEK SMALL LETTER ALPHA WITH VARIA;Ll;0;L;03B1 0300;;;;N;;;1FBA;;1FBA
-1F71;GREEK SMALL LETTER ALPHA WITH OXIA;Ll;0;L;03AC;;;;N;;;1FBB;;1FBB
-1F72;GREEK SMALL LETTER EPSILON WITH VARIA;Ll;0;L;03B5 0300;;;;N;;;1FC8;;1FC8
-1F73;GREEK SMALL LETTER EPSILON WITH OXIA;Ll;0;L;03AD;;;;N;;;1FC9;;1FC9
-1F74;GREEK SMALL LETTER ETA WITH VARIA;Ll;0;L;03B7 0300;;;;N;;;1FCA;;1FCA
-1F75;GREEK SMALL LETTER ETA WITH OXIA;Ll;0;L;03AE;;;;N;;;1FCB;;1FCB
-1F76;GREEK SMALL LETTER IOTA WITH VARIA;Ll;0;L;03B9 0300;;;;N;;;1FDA;;1FDA
-1F77;GREEK SMALL LETTER IOTA WITH OXIA;Ll;0;L;03AF;;;;N;;;1FDB;;1FDB
-1F78;GREEK SMALL LETTER OMICRON WITH VARIA;Ll;0;L;03BF 0300;;;;N;;;1FF8;;1FF8
-1F79;GREEK SMALL LETTER OMICRON WITH OXIA;Ll;0;L;03CC;;;;N;;;1FF9;;1FF9
-1F7A;GREEK SMALL LETTER UPSILON WITH VARIA;Ll;0;L;03C5 0300;;;;N;;;1FEA;;1FEA
-1F7B;GREEK SMALL LETTER UPSILON WITH OXIA;Ll;0;L;03CD;;;;N;;;1FEB;;1FEB
-1F7C;GREEK SMALL LETTER OMEGA WITH VARIA;Ll;0;L;03C9 0300;;;;N;;;1FFA;;1FFA
-1F7D;GREEK SMALL LETTER OMEGA WITH OXIA;Ll;0;L;03CE;;;;N;;;1FFB;;1FFB
-1F80;GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F00 0345;;;;N;;;1F88;;1F88
-1F81;GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F01 0345;;;;N;;;1F89;;1F89
-1F82;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F02 0345;;;;N;;;1F8A;;1F8A
-1F83;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F03 0345;;;;N;;;1F8B;;1F8B
-1F84;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F04 0345;;;;N;;;1F8C;;1F8C
-1F85;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F05 0345;;;;N;;;1F8D;;1F8D
-1F86;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F06 0345;;;;N;;;1F8E;;1F8E
-1F87;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F07 0345;;;;N;;;1F8F;;1F8F
-1F88;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F08 0345;;;;N;;;;1F80;
-1F89;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F09 0345;;;;N;;;;1F81;
-1F8A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0A 0345;;;;N;;;;1F82;
-1F8B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0B 0345;;;;N;;;;1F83;
-1F8C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0C 0345;;;;N;;;;1F84;
-1F8D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0D 0345;;;;N;;;;1F85;
-1F8E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0E 0345;;;;N;;;;1F86;
-1F8F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0F 0345;;;;N;;;;1F87;
-1F90;GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F20 0345;;;;N;;;1F98;;1F98
-1F91;GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F21 0345;;;;N;;;1F99;;1F99
-1F92;GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F22 0345;;;;N;;;1F9A;;1F9A
-1F93;GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F23 0345;;;;N;;;1F9B;;1F9B
-1F94;GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F24 0345;;;;N;;;1F9C;;1F9C
-1F95;GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F25 0345;;;;N;;;1F9D;;1F9D
-1F96;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F26 0345;;;;N;;;1F9E;;1F9E
-1F97;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F27 0345;;;;N;;;1F9F;;1F9F
-1F98;GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F28 0345;;;;N;;;;1F90;
-1F99;GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F29 0345;;;;N;;;;1F91;
-1F9A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2A 0345;;;;N;;;;1F92;
-1F9B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2B 0345;;;;N;;;;1F93;
-1F9C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2C 0345;;;;N;;;;1F94;
-1F9D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2D 0345;;;;N;;;;1F95;
-1F9E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2E 0345;;;;N;;;;1F96;
-1F9F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2F 0345;;;;N;;;;1F97;
-1FA0;GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F60 0345;;;;N;;;1FA8;;1FA8
-1FA1;GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F61 0345;;;;N;;;1FA9;;1FA9
-1FA2;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F62 0345;;;;N;;;1FAA;;1FAA
-1FA3;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F63 0345;;;;N;;;1FAB;;1FAB
-1FA4;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F64 0345;;;;N;;;1FAC;;1FAC
-1FA5;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F65 0345;;;;N;;;1FAD;;1FAD
-1FA6;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F66 0345;;;;N;;;1FAE;;1FAE
-1FA7;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F67 0345;;;;N;;;1FAF;;1FAF
-1FA8;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F68 0345;;;;N;;;;1FA0;
-1FA9;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F69 0345;;;;N;;;;1FA1;
-1FAA;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6A 0345;;;;N;;;;1FA2;
-1FAB;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6B 0345;;;;N;;;;1FA3;
-1FAC;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6C 0345;;;;N;;;;1FA4;
-1FAD;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6D 0345;;;;N;;;;1FA5;
-1FAE;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6E 0345;;;;N;;;;1FA6;
-1FAF;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6F 0345;;;;N;;;;1FA7;
-1FB0;GREEK SMALL LETTER ALPHA WITH VRACHY;Ll;0;L;03B1 0306;;;;N;;;1FB8;;1FB8
-1FB1;GREEK SMALL LETTER ALPHA WITH MACRON;Ll;0;L;03B1 0304;;;;N;;;1FB9;;1FB9
-1FB2;GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F70 0345;;;;N;;;;;
-1FB3;GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI;Ll;0;L;03B1 0345;;;;N;;;1FBC;;1FBC
-1FB4;GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AC 0345;;;;N;;;;;
-1FB6;GREEK SMALL LETTER ALPHA WITH PERISPOMENI;Ll;0;L;03B1 0342;;;;N;;;;;
-1FB7;GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FB6 0345;;;;N;;;;;
-1FB8;GREEK CAPITAL LETTER ALPHA WITH VRACHY;Lu;0;L;0391 0306;;;;N;;;;1FB0;
-1FB9;GREEK CAPITAL LETTER ALPHA WITH MACRON;Lu;0;L;0391 0304;;;;N;;;;1FB1;
-1FBA;GREEK CAPITAL LETTER ALPHA WITH VARIA;Lu;0;L;0391 0300;;;;N;;;;1F70;
-1FBB;GREEK CAPITAL LETTER ALPHA WITH OXIA;Lu;0;L;0386;;;;N;;;;1F71;
-1FBC;GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI;Lt;0;L;0391 0345;;;;N;;;;1FB3;
-1FBD;GREEK KORONIS;Sk;0;ON;<compat> 0020 0313;;;;N;;;;;
-1FBE;GREEK PROSGEGRAMMENI;Ll;0;L;03B9;;;;N;;;0399;;0399
-1FBF;GREEK PSILI;Sk;0;ON;<compat> 0020 0313;;;;N;;;;;
-1FC0;GREEK PERISPOMENI;Sk;0;ON;<compat> 0020 0342;;;;N;;;;;
-1FC1;GREEK DIALYTIKA AND PERISPOMENI;Sk;0;ON;00A8 0342;;;;N;;;;;
-1FC2;GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F74 0345;;;;N;;;;;
-1FC3;GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI;Ll;0;L;03B7 0345;;;;N;;;1FCC;;1FCC
-1FC4;GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AE 0345;;;;N;;;;;
-1FC6;GREEK SMALL LETTER ETA WITH PERISPOMENI;Ll;0;L;03B7 0342;;;;N;;;;;
-1FC7;GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FC6 0345;;;;N;;;;;
-1FC8;GREEK CAPITAL LETTER EPSILON WITH VARIA;Lu;0;L;0395 0300;;;;N;;;;1F72;
-1FC9;GREEK CAPITAL LETTER EPSILON WITH OXIA;Lu;0;L;0388;;;;N;;;;1F73;
-1FCA;GREEK CAPITAL LETTER ETA WITH VARIA;Lu;0;L;0397 0300;;;;N;;;;1F74;
-1FCB;GREEK CAPITAL LETTER ETA WITH OXIA;Lu;0;L;0389;;;;N;;;;1F75;
-1FCC;GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI;Lt;0;L;0397 0345;;;;N;;;;1FC3;
-1FCD;GREEK PSILI AND VARIA;Sk;0;ON;1FBF 0300;;;;N;;;;;
-1FCE;GREEK PSILI AND OXIA;Sk;0;ON;1FBF 0301;;;;N;;;;;
-1FCF;GREEK PSILI AND PERISPOMENI;Sk;0;ON;1FBF 0342;;;;N;;;;;
-1FD0;GREEK SMALL LETTER IOTA WITH VRACHY;Ll;0;L;03B9 0306;;;;N;;;1FD8;;1FD8
-1FD1;GREEK SMALL LETTER IOTA WITH MACRON;Ll;0;L;03B9 0304;;;;N;;;1FD9;;1FD9
-1FD2;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA;Ll;0;L;03CA 0300;;;;N;;;;;
-1FD3;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA;Ll;0;L;0390;;;;N;;;;;
-1FD6;GREEK SMALL LETTER IOTA WITH PERISPOMENI;Ll;0;L;03B9 0342;;;;N;;;;;
-1FD7;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CA 0342;;;;N;;;;;
-1FD8;GREEK CAPITAL LETTER IOTA WITH VRACHY;Lu;0;L;0399 0306;;;;N;;;;1FD0;
-1FD9;GREEK CAPITAL LETTER IOTA WITH MACRON;Lu;0;L;0399 0304;;;;N;;;;1FD1;
-1FDA;GREEK CAPITAL LETTER IOTA WITH VARIA;Lu;0;L;0399 0300;;;;N;;;;1F76;
-1FDB;GREEK CAPITAL LETTER IOTA WITH OXIA;Lu;0;L;038A;;;;N;;;;1F77;
-1FDD;GREEK DASIA AND VARIA;Sk;0;ON;1FFE 0300;;;;N;;;;;
-1FDE;GREEK DASIA AND OXIA;Sk;0;ON;1FFE 0301;;;;N;;;;;
-1FDF;GREEK DASIA AND PERISPOMENI;Sk;0;ON;1FFE 0342;;;;N;;;;;
-1FE0;GREEK SMALL LETTER UPSILON WITH VRACHY;Ll;0;L;03C5 0306;;;;N;;;1FE8;;1FE8
-1FE1;GREEK SMALL LETTER UPSILON WITH MACRON;Ll;0;L;03C5 0304;;;;N;;;1FE9;;1FE9
-1FE2;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA;Ll;0;L;03CB 0300;;;;N;;;;;
-1FE3;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA;Ll;0;L;03B0;;;;N;;;;;
-1FE4;GREEK SMALL LETTER RHO WITH PSILI;Ll;0;L;03C1 0313;;;;N;;;;;
-1FE5;GREEK SMALL LETTER RHO WITH DASIA;Ll;0;L;03C1 0314;;;;N;;;1FEC;;1FEC
-1FE6;GREEK SMALL LETTER UPSILON WITH PERISPOMENI;Ll;0;L;03C5 0342;;;;N;;;;;
-1FE7;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CB 0342;;;;N;;;;;
-1FE8;GREEK CAPITAL LETTER UPSILON WITH VRACHY;Lu;0;L;03A5 0306;;;;N;;;;1FE0;
-1FE9;GREEK CAPITAL LETTER UPSILON WITH MACRON;Lu;0;L;03A5 0304;;;;N;;;;1FE1;
-1FEA;GREEK CAPITAL LETTER UPSILON WITH VARIA;Lu;0;L;03A5 0300;;;;N;;;;1F7A;
-1FEB;GREEK CAPITAL LETTER UPSILON WITH OXIA;Lu;0;L;038E;;;;N;;;;1F7B;
-1FEC;GREEK CAPITAL LETTER RHO WITH DASIA;Lu;0;L;03A1 0314;;;;N;;;;1FE5;
-1FED;GREEK DIALYTIKA AND VARIA;Sk;0;ON;00A8 0300;;;;N;;;;;
-1FEE;GREEK DIALYTIKA AND OXIA;Sk;0;ON;0385;;;;N;;;;;
-1FEF;GREEK VARIA;Sk;0;ON;0060;;;;N;;;;;
-1FF2;GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F7C 0345;;;;N;;;;;
-1FF3;GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI;Ll;0;L;03C9 0345;;;;N;;;1FFC;;1FFC
-1FF4;GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03CE 0345;;;;N;;;;;
-1FF6;GREEK SMALL LETTER OMEGA WITH PERISPOMENI;Ll;0;L;03C9 0342;;;;N;;;;;
-1FF7;GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FF6 0345;;;;N;;;;;
-1FF8;GREEK CAPITAL LETTER OMICRON WITH VARIA;Lu;0;L;039F 0300;;;;N;;;;1F78;
-1FF9;GREEK CAPITAL LETTER OMICRON WITH OXIA;Lu;0;L;038C;;;;N;;;;1F79;
-1FFA;GREEK CAPITAL LETTER OMEGA WITH VARIA;Lu;0;L;03A9 0300;;;;N;;;;1F7C;
-1FFB;GREEK CAPITAL LETTER OMEGA WITH OXIA;Lu;0;L;038F;;;;N;;;;1F7D;
-1FFC;GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI;Lt;0;L;03A9 0345;;;;N;;;;1FF3;
-1FFD;GREEK OXIA;Sk;0;ON;00B4;;;;N;;;;;
-1FFE;GREEK DASIA;Sk;0;ON;<compat> 0020 0314;;;;N;;;;;
-2000;EN QUAD;Zs;0;WS;2002;;;;N;;;;;
-2001;EM QUAD;Zs;0;WS;2003;;;;N;;;;;
-2002;EN SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
-2003;EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
-2004;THREE-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
-2005;FOUR-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
-2006;SIX-PER-EM SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
-2007;FIGURE SPACE;Zs;0;WS;<noBreak> 0020;;;;N;;;;;
-2008;PUNCTUATION SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
-2009;THIN SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
-200A;HAIR SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
-200B;ZERO WIDTH SPACE;Cf;0;BN;;;;;N;;;;;
-200C;ZERO WIDTH NON-JOINER;Cf;0;BN;;;;;N;;;;;
-200D;ZERO WIDTH JOINER;Cf;0;BN;;;;;N;;;;;
-200E;LEFT-TO-RIGHT MARK;Cf;0;L;;;;;N;;;;;
-200F;RIGHT-TO-LEFT MARK;Cf;0;R;;;;;N;;;;;
-2010;HYPHEN;Pd;0;ON;;;;;N;;;;;
-2011;NON-BREAKING HYPHEN;Pd;0;ON;<noBreak> 2010;;;;N;;;;;
-2012;FIGURE DASH;Pd;0;ON;;;;;N;;;;;
-2013;EN DASH;Pd;0;ON;;;;;N;;;;;
-2014;EM DASH;Pd;0;ON;;;;;N;;;;;
-2015;HORIZONTAL BAR;Pd;0;ON;;;;;N;QUOTATION DASH;;;;
-2016;DOUBLE VERTICAL LINE;Po;0;ON;;;;;N;DOUBLE VERTICAL BAR;;;;
-2017;DOUBLE LOW LINE;Po;0;ON;<compat> 0020 0333;;;;N;SPACING DOUBLE UNDERSCORE;;;;
-2018;LEFT SINGLE QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE TURNED COMMA QUOTATION MARK;;;;
-2019;RIGHT SINGLE QUOTATION MARK;Pf;0;ON;;;;;N;SINGLE COMMA QUOTATION MARK;;;;
-201A;SINGLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW SINGLE COMMA QUOTATION MARK;;;;
-201B;SINGLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE REVERSED COMMA QUOTATION MARK;;;;
-201C;LEFT DOUBLE QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE TURNED COMMA QUOTATION MARK;;;;
-201D;RIGHT DOUBLE QUOTATION MARK;Pf;0;ON;;;;;N;DOUBLE COMMA QUOTATION MARK;;;;
-201E;DOUBLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW DOUBLE COMMA QUOTATION MARK;;;;
-201F;DOUBLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE REVERSED COMMA QUOTATION MARK;;;;
-2020;DAGGER;Po;0;ON;;;;;N;;;;;
-2021;DOUBLE DAGGER;Po;0;ON;;;;;N;;;;;
-2022;BULLET;Po;0;ON;;;;;N;;;;;
-2023;TRIANGULAR BULLET;Po;0;ON;;;;;N;;;;;
-2024;ONE DOT LEADER;Po;0;ON;<compat> 002E;;;;N;;;;;
-2025;TWO DOT LEADER;Po;0;ON;<compat> 002E 002E;;;;N;;;;;
-2026;HORIZONTAL ELLIPSIS;Po;0;ON;<compat> 002E 002E 002E;;;;N;;;;;
-2027;HYPHENATION POINT;Po;0;ON;;;;;N;;;;;
-2028;LINE SEPARATOR;Zl;0;WS;;;;;N;;;;;
-2029;PARAGRAPH SEPARATOR;Zp;0;B;;;;;N;;;;;
-202A;LEFT-TO-RIGHT EMBEDDING;Cf;0;LRE;;;;;N;;;;;
-202B;RIGHT-TO-LEFT EMBEDDING;Cf;0;RLE;;;;;N;;;;;
-202C;POP DIRECTIONAL FORMATTING;Cf;0;PDF;;;;;N;;;;;
-202D;LEFT-TO-RIGHT OVERRIDE;Cf;0;LRO;;;;;N;;;;;
-202E;RIGHT-TO-LEFT OVERRIDE;Cf;0;RLO;;;;;N;;;;;
-202F;NARROW NO-BREAK SPACE;Zs;0;CS;<noBreak> 0020;;;;N;;;;;
-2030;PER MILLE SIGN;Po;0;ET;;;;;N;;;;;
-2031;PER TEN THOUSAND SIGN;Po;0;ET;;;;;N;;;;;
-2032;PRIME;Po;0;ET;;;;;N;;;;;
-2033;DOUBLE PRIME;Po;0;ET;<compat> 2032 2032;;;;N;;;;;
-2034;TRIPLE PRIME;Po;0;ET;<compat> 2032 2032 2032;;;;N;;;;;
-2035;REVERSED PRIME;Po;0;ON;;;;;N;;;;;
-2036;REVERSED DOUBLE PRIME;Po;0;ON;<compat> 2035 2035;;;;N;;;;;
-2037;REVERSED TRIPLE PRIME;Po;0;ON;<compat> 2035 2035 2035;;;;N;;;;;
-2038;CARET;Po;0;ON;;;;;N;;;;;
-2039;SINGLE LEFT-POINTING ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING SINGLE GUILLEMET;;;;
-203A;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING SINGLE GUILLEMET;;;;
-203B;REFERENCE MARK;Po;0;ON;;;;;N;;;;;
-203C;DOUBLE EXCLAMATION MARK;Po;0;ON;<compat> 0021 0021;;;;N;;;;;
-203D;INTERROBANG;Po;0;ON;;;;;N;;;;;
-203E;OVERLINE;Po;0;ON;<compat> 0020 0305;;;;N;SPACING OVERSCORE;;;;
-203F;UNDERTIE;Pc;0;ON;;;;;N;;;;;
-2040;CHARACTER TIE;Pc;0;ON;;;;;N;;;;;
-2041;CARET INSERTION POINT;Po;0;ON;;;;;N;;;;;
-2042;ASTERISM;Po;0;ON;;;;;N;;;;;
-2043;HYPHEN BULLET;Po;0;ON;;;;;N;;;;;
-2044;FRACTION SLASH;Sm;0;CS;;;;;N;;;;;
-2045;LEFT SQUARE BRACKET WITH QUILL;Ps;0;ON;;;;;Y;;;;;
-2046;RIGHT SQUARE BRACKET WITH QUILL;Pe;0;ON;;;;;Y;;;;;
-2047;DOUBLE QUESTION MARK;Po;0;ON;<compat> 003F 003F;;;;N;;;;;
-2048;QUESTION EXCLAMATION MARK;Po;0;ON;<compat> 003F 0021;;;;N;;;;;
-2049;EXCLAMATION QUESTION MARK;Po;0;ON;<compat> 0021 003F;;;;N;;;;;
-204A;TIRONIAN SIGN ET;Po;0;ON;;;;;N;;;;;
-204B;REVERSED PILCROW SIGN;Po;0;ON;;;;;N;;;;;
-204C;BLACK LEFTWARDS BULLET;Po;0;ON;;;;;N;;;;;
-204D;BLACK RIGHTWARDS BULLET;Po;0;ON;;;;;N;;;;;
-204E;LOW ASTERISK;Po;0;ON;;;;;N;;;;;
-204F;REVERSED SEMICOLON;Po;0;ON;;;;;N;;;;;
-2050;CLOSE UP;Po;0;ON;;;;;N;;;;;
-2051;TWO ASTERISKS ALIGNED VERTICALLY;Po;0;ON;;;;;N;;;;;
-2052;COMMERCIAL MINUS SIGN;Sm;0;ON;;;;;N;;;;;
-2053;SWUNG DASH;Po;0;ON;;;;;N;;;;;
-2054;INVERTED UNDERTIE;Pc;0;ON;;;;;N;;;;;
-2055;FLOWER PUNCTUATION MARK;Po;0;ON;;;;;N;;;;;
-2056;THREE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
-2057;QUADRUPLE PRIME;Po;0;ON;<compat> 2032 2032 2032 2032;;;;N;;;;;
-2058;FOUR DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
-2059;FIVE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
-205A;TWO DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
-205B;FOUR DOT MARK;Po;0;ON;;;;;N;;;;;
-205C;DOTTED CROSS;Po;0;ON;;;;;N;;;;;
-205D;TRICOLON;Po;0;ON;;;;;N;;;;;
-205E;VERTICAL FOUR DOTS;Po;0;ON;;;;;N;;;;;
-205F;MEDIUM MATHEMATICAL SPACE;Zs;0;WS;<compat> 0020;;;;N;;;;;
-2060;WORD JOINER;Cf;0;BN;;;;;N;;;;;
-2061;FUNCTION APPLICATION;Cf;0;BN;;;;;N;;;;;
-2062;INVISIBLE TIMES;Cf;0;BN;;;;;N;;;;;
-2063;INVISIBLE SEPARATOR;Cf;0;BN;;;;;N;;;;;
-2064;INVISIBLE PLUS;Cf;0;BN;;;;;N;;;;;
-206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
-206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
-206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;
-206D;ACTIVATE ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;
-206E;NATIONAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;;
-206F;NOMINAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;;
-2070;SUPERSCRIPT ZERO;No;0;EN;<super> 0030;;0;0;N;SUPERSCRIPT DIGIT ZERO;;;;
-2071;SUPERSCRIPT LATIN SMALL LETTER I;Lm;0;L;<super> 0069;;;;N;;;;;
-2074;SUPERSCRIPT FOUR;No;0;EN;<super> 0034;;4;4;N;SUPERSCRIPT DIGIT FOUR;;;;
-2075;SUPERSCRIPT FIVE;No;0;EN;<super> 0035;;5;5;N;SUPERSCRIPT DIGIT FIVE;;;;
-2076;SUPERSCRIPT SIX;No;0;EN;<super> 0036;;6;6;N;SUPERSCRIPT DIGIT SIX;;;;
-2077;SUPERSCRIPT SEVEN;No;0;EN;<super> 0037;;7;7;N;SUPERSCRIPT DIGIT SEVEN;;;;
-2078;SUPERSCRIPT EIGHT;No;0;EN;<super> 0038;;8;8;N;SUPERSCRIPT DIGIT EIGHT;;;;
-2079;SUPERSCRIPT NINE;No;0;EN;<super> 0039;;9;9;N;SUPERSCRIPT DIGIT NINE;;;;
-207A;SUPERSCRIPT PLUS SIGN;Sm;0;ES;<super> 002B;;;;N;;;;;
-207B;SUPERSCRIPT MINUS;Sm;0;ES;<super> 2212;;;;N;SUPERSCRIPT HYPHEN-MINUS;;;;
-207C;SUPERSCRIPT EQUALS SIGN;Sm;0;ON;<super> 003D;;;;N;;;;;
-207D;SUPERSCRIPT LEFT PARENTHESIS;Ps;0;ON;<super> 0028;;;;Y;SUPERSCRIPT OPENING PARENTHESIS;;;;
-207E;SUPERSCRIPT RIGHT PARENTHESIS;Pe;0;ON;<super> 0029;;;;Y;SUPERSCRIPT CLOSING PARENTHESIS;;;;
-207F;SUPERSCRIPT LATIN SMALL LETTER N;Lm;0;L;<super> 006E;;;;N;;;;;
-2080;SUBSCRIPT ZERO;No;0;EN;<sub> 0030;;0;0;N;SUBSCRIPT DIGIT ZERO;;;;
-2081;SUBSCRIPT ONE;No;0;EN;<sub> 0031;;1;1;N;SUBSCRIPT DIGIT ONE;;;;
-2082;SUBSCRIPT TWO;No;0;EN;<sub> 0032;;2;2;N;SUBSCRIPT DIGIT TWO;;;;
-2083;SUBSCRIPT THREE;No;0;EN;<sub> 0033;;3;3;N;SUBSCRIPT DIGIT THREE;;;;
-2084;SUBSCRIPT FOUR;No;0;EN;<sub> 0034;;4;4;N;SUBSCRIPT DIGIT FOUR;;;;
-2085;SUBSCRIPT FIVE;No;0;EN;<sub> 0035;;5;5;N;SUBSCRIPT DIGIT FIVE;;;;
-2086;SUBSCRIPT SIX;No;0;EN;<sub> 0036;;6;6;N;SUBSCRIPT DIGIT SIX;;;;
-2087;SUBSCRIPT SEVEN;No;0;EN;<sub> 0037;;7;7;N;SUBSCRIPT DIGIT SEVEN;;;;
-2088;SUBSCRIPT EIGHT;No;0;EN;<sub> 0038;;8;8;N;SUBSCRIPT DIGIT EIGHT;;;;
-2089;SUBSCRIPT NINE;No;0;EN;<sub> 0039;;9;9;N;SUBSCRIPT DIGIT NINE;;;;
-208A;SUBSCRIPT PLUS SIGN;Sm;0;ES;<sub> 002B;;;;N;;;;;
-208B;SUBSCRIPT MINUS;Sm;0;ES;<sub> 2212;;;;N;SUBSCRIPT HYPHEN-MINUS;;;;
-208C;SUBSCRIPT EQUALS SIGN;Sm;0;ON;<sub> 003D;;;;N;;;;;
-208D;SUBSCRIPT LEFT PARENTHESIS;Ps;0;ON;<sub> 0028;;;;Y;SUBSCRIPT OPENING PARENTHESIS;;;;
-208E;SUBSCRIPT RIGHT PARENTHESIS;Pe;0;ON;<sub> 0029;;;;Y;SUBSCRIPT CLOSING PARENTHESIS;;;;
-2090;LATIN SUBSCRIPT SMALL LETTER A;Lm;0;L;<sub> 0061;;;;N;;;;;
-2091;LATIN SUBSCRIPT SMALL LETTER E;Lm;0;L;<sub> 0065;;;;N;;;;;
-2092;LATIN SUBSCRIPT SMALL LETTER O;Lm;0;L;<sub> 006F;;;;N;;;;;
-2093;LATIN SUBSCRIPT SMALL LETTER X;Lm;0;L;<sub> 0078;;;;N;;;;;
-2094;LATIN SUBSCRIPT SMALL LETTER SCHWA;Lm;0;L;<sub> 0259;;;;N;;;;;
-2095;LATIN SUBSCRIPT SMALL LETTER H;Lm;0;L;<sub> 0068;;;;N;;;;;
-2096;LATIN SUBSCRIPT SMALL LETTER K;Lm;0;L;<sub> 006B;;;;N;;;;;
-2097;LATIN SUBSCRIPT SMALL LETTER L;Lm;0;L;<sub> 006C;;;;N;;;;;
-2098;LATIN SUBSCRIPT SMALL LETTER M;Lm;0;L;<sub> 006D;;;;N;;;;;
-2099;LATIN SUBSCRIPT SMALL LETTER N;Lm;0;L;<sub> 006E;;;;N;;;;;
-209A;LATIN SUBSCRIPT SMALL LETTER P;Lm;0;L;<sub> 0070;;;;N;;;;;
-209B;LATIN SUBSCRIPT SMALL LETTER S;Lm;0;L;<sub> 0073;;;;N;;;;;
-209C;LATIN SUBSCRIPT SMALL LETTER T;Lm;0;L;<sub> 0074;;;;N;;;;;
-20A0;EURO-CURRENCY SIGN;Sc;0;ET;;;;;N;;;;;
-20A1;COLON SIGN;Sc;0;ET;;;;;N;;;;;
-20A2;CRUZEIRO SIGN;Sc;0;ET;;;;;N;;;;;
-20A3;FRENCH FRANC SIGN;Sc;0;ET;;;;;N;;;;;
-20A4;LIRA SIGN;Sc;0;ET;;;;;N;;;;;
-20A5;MILL SIGN;Sc;0;ET;;;;;N;;;;;
-20A6;NAIRA SIGN;Sc;0;ET;;;;;N;;;;;
-20A7;PESETA SIGN;Sc;0;ET;;;;;N;;;;;
-20A8;RUPEE SIGN;Sc;0;ET;<compat> 0052 0073;;;;N;;;;;
-20A9;WON SIGN;Sc;0;ET;;;;;N;;;;;
-20AA;NEW SHEQEL SIGN;Sc;0;ET;;;;;N;;;;;
-20AB;DONG SIGN;Sc;0;ET;;;;;N;;;;;
-20AC;EURO SIGN;Sc;0;ET;;;;;N;;;;;
-20AD;KIP SIGN;Sc;0;ET;;;;;N;;;;;
-20AE;TUGRIK SIGN;Sc;0;ET;;;;;N;;;;;
-20AF;DRACHMA SIGN;Sc;0;ET;;;;;N;;;;;
-20B0;GERMAN PENNY SIGN;Sc;0;ET;;;;;N;;;;;
-20B1;PESO SIGN;Sc;0;ET;;;;;N;;;;;
-20B2;GUARANI SIGN;Sc;0;ET;;;;;N;;;;;
-20B3;AUSTRAL SIGN;Sc;0;ET;;;;;N;;;;;
-20B4;HRYVNIA SIGN;Sc;0;ET;;;;;N;;;;;
-20B5;CEDI SIGN;Sc;0;ET;;;;;N;;;;;
-20B6;LIVRE TOURNOIS SIGN;Sc;0;ET;;;;;N;;;;;
-20B7;SPESMILO SIGN;Sc;0;ET;;;;;N;;;;;
-20B8;TENGE SIGN;Sc;0;ET;;;;;N;;;;;
-20B9;INDIAN RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
-20BA;TURKISH LIRA SIGN;Sc;0;ET;;;;;N;;;;;
-20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;;
-20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;;
-20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;;
-20D3;COMBINING SHORT VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT VERTICAL BAR OVERLAY;;;;
-20D4;COMBINING ANTICLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING ANTICLOCKWISE ARROW ABOVE;;;;
-20D5;COMBINING CLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING CLOCKWISE ARROW ABOVE;;;;
-20D6;COMBINING LEFT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT ARROW ABOVE;;;;
-20D7;COMBINING RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT ARROW ABOVE;;;;
-20D8;COMBINING RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING RING OVERLAY;;;;
-20D9;COMBINING CLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING CLOCKWISE RING OVERLAY;;;;
-20DA;COMBINING ANTICLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING ANTICLOCKWISE RING OVERLAY;;;;
-20DB;COMBINING THREE DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING THREE DOTS ABOVE;;;;
-20DC;COMBINING FOUR DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING FOUR DOTS ABOVE;;;;
-20DD;COMBINING ENCLOSING CIRCLE;Me;0;NSM;;;;;N;ENCLOSING CIRCLE;;;;
-20DE;COMBINING ENCLOSING SQUARE;Me;0;NSM;;;;;N;ENCLOSING SQUARE;;;;
-20DF;COMBINING ENCLOSING DIAMOND;Me;0;NSM;;;;;N;ENCLOSING DIAMOND;;;;
-20E0;COMBINING ENCLOSING CIRCLE BACKSLASH;Me;0;NSM;;;;;N;ENCLOSING CIRCLE SLASH;;;;
-20E1;COMBINING LEFT RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT RIGHT ARROW ABOVE;;;;
-20E2;COMBINING ENCLOSING SCREEN;Me;0;NSM;;;;;N;;;;;
-20E3;COMBINING ENCLOSING KEYCAP;Me;0;NSM;;;;;N;;;;;
-20E4;COMBINING ENCLOSING UPWARD POINTING TRIANGLE;Me;0;NSM;;;;;N;;;;;
-20E5;COMBINING REVERSE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;;
-20E6;COMBINING DOUBLE VERTICAL STROKE OVERLAY;Mn;1;NSM;;;;;N;;;;;
-20E7;COMBINING ANNUITY SYMBOL;Mn;230;NSM;;;;;N;;;;;
-20E8;COMBINING TRIPLE UNDERDOT;Mn;220;NSM;;;;;N;;;;;
-20E9;COMBINING WIDE BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;;
-20EA;COMBINING LEFTWARDS ARROW OVERLAY;Mn;1;NSM;;;;;N;;;;;
-20EB;COMBINING LONG DOUBLE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;;
-20EC;COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS;Mn;220;NSM;;;;;N;;;;;
-20ED;COMBINING LEFTWARDS HARPOON WITH BARB DOWNWARDS;Mn;220;NSM;;;;;N;;;;;
-20EE;COMBINING LEFT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
-20EF;COMBINING RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;;
-20F0;COMBINING ASTERISK ABOVE;Mn;230;NSM;;;;;N;;;;;
-2100;ACCOUNT OF;So;0;ON;<compat> 0061 002F 0063;;;;N;;;;;
-2101;ADDRESSED TO THE SUBJECT;So;0;ON;<compat> 0061 002F 0073;;;;N;;;;;
-2102;DOUBLE-STRUCK CAPITAL C;Lu;0;L;<font> 0043;;;;N;DOUBLE-STRUCK C;;;;
-2103;DEGREE CELSIUS;So;0;ON;<compat> 00B0 0043;;;;N;DEGREES CENTIGRADE;;;;
-2104;CENTRE LINE SYMBOL;So;0;ON;;;;;N;C L SYMBOL;;;;
-2105;CARE OF;So;0;ON;<compat> 0063 002F 006F;;;;N;;;;;
-2106;CADA UNA;So;0;ON;<compat> 0063 002F 0075;;;;N;;;;;
-2107;EULER CONSTANT;Lu;0;L;<compat> 0190;;;;N;EULERS;;;;
-2108;SCRUPLE;So;0;ON;;;;;N;;;;;
-2109;DEGREE FAHRENHEIT;So;0;ON;<compat> 00B0 0046;;;;N;DEGREES FAHRENHEIT;;;;
-210A;SCRIPT SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
-210B;SCRIPT CAPITAL H;Lu;0;L;<font> 0048;;;;N;SCRIPT H;;;;
-210C;BLACK-LETTER CAPITAL H;Lu;0;L;<font> 0048;;;;N;BLACK-LETTER H;;;;
-210D;DOUBLE-STRUCK CAPITAL H;Lu;0;L;<font> 0048;;;;N;DOUBLE-STRUCK H;;;;
-210E;PLANCK CONSTANT;Ll;0;L;<font> 0068;;;;N;;;;;
-210F;PLANCK CONSTANT OVER TWO PI;Ll;0;L;<font> 0127;;;;N;PLANCK CONSTANT OVER 2 PI;;;;
-2110;SCRIPT CAPITAL I;Lu;0;L;<font> 0049;;;;N;SCRIPT I;;;;
-2111;BLACK-LETTER CAPITAL I;Lu;0;L;<font> 0049;;;;N;BLACK-LETTER I;;;;
-2112;SCRIPT CAPITAL L;Lu;0;L;<font> 004C;;;;N;SCRIPT L;;;;
-2113;SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
-2114;L B BAR SYMBOL;So;0;ON;;;;;N;;;;;
-2115;DOUBLE-STRUCK CAPITAL N;Lu;0;L;<font> 004E;;;;N;DOUBLE-STRUCK N;;;;
-2116;NUMERO SIGN;So;0;ON;<compat> 004E 006F;;;;N;NUMERO;;;;
-2117;SOUND RECORDING COPYRIGHT;So;0;ON;;;;;N;;;;;
-2118;SCRIPT CAPITAL P;Sm;0;ON;;;;;N;SCRIPT P;;;;
-2119;DOUBLE-STRUCK CAPITAL P;Lu;0;L;<font> 0050;;;;N;DOUBLE-STRUCK P;;;;
-211A;DOUBLE-STRUCK CAPITAL Q;Lu;0;L;<font> 0051;;;;N;DOUBLE-STRUCK Q;;;;
-211B;SCRIPT CAPITAL R;Lu;0;L;<font> 0052;;;;N;SCRIPT R;;;;
-211C;BLACK-LETTER CAPITAL R;Lu;0;L;<font> 0052;;;;N;BLACK-LETTER R;;;;
-211D;DOUBLE-STRUCK CAPITAL R;Lu;0;L;<font> 0052;;;;N;DOUBLE-STRUCK R;;;;
-211E;PRESCRIPTION TAKE;So;0;ON;;;;;N;;;;;
-211F;RESPONSE;So;0;ON;;;;;N;;;;;
-2120;SERVICE MARK;So;0;ON;<super> 0053 004D;;;;N;;;;;
-2121;TELEPHONE SIGN;So;0;ON;<compat> 0054 0045 004C;;;;N;T E L SYMBOL;;;;
-2122;TRADE MARK SIGN;So;0;ON;<super> 0054 004D;;;;N;TRADEMARK;;;;
-2123;VERSICLE;So;0;ON;;;;;N;;;;;
-2124;DOUBLE-STRUCK CAPITAL Z;Lu;0;L;<font> 005A;;;;N;DOUBLE-STRUCK Z;;;;
-2125;OUNCE SIGN;So;0;ON;;;;;N;OUNCE;;;;
-2126;OHM SIGN;Lu;0;L;03A9;;;;N;OHM;;;03C9;
-2127;INVERTED OHM SIGN;So;0;ON;;;;;N;MHO;;;;
-2128;BLACK-LETTER CAPITAL Z;Lu;0;L;<font> 005A;;;;N;BLACK-LETTER Z;;;;
-2129;TURNED GREEK SMALL LETTER IOTA;So;0;ON;;;;;N;;;;;
-212A;KELVIN SIGN;Lu;0;L;004B;;;;N;DEGREES KELVIN;;;006B;
-212B;ANGSTROM SIGN;Lu;0;L;00C5;;;;N;ANGSTROM UNIT;;;00E5;
-212C;SCRIPT CAPITAL B;Lu;0;L;<font> 0042;;;;N;SCRIPT B;;;;
-212D;BLACK-LETTER CAPITAL C;Lu;0;L;<font> 0043;;;;N;BLACK-LETTER C;;;;
-212E;ESTIMATED SYMBOL;So;0;ET;;;;;N;;;;;
-212F;SCRIPT SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
-2130;SCRIPT CAPITAL E;Lu;0;L;<font> 0045;;;;N;SCRIPT E;;;;
-2131;SCRIPT CAPITAL F;Lu;0;L;<font> 0046;;;;N;SCRIPT F;;;;
-2132;TURNED CAPITAL F;Lu;0;L;;;;;N;TURNED F;;;214E;
-2133;SCRIPT CAPITAL M;Lu;0;L;<font> 004D;;;;N;SCRIPT M;;;;
-2134;SCRIPT SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
-2135;ALEF SYMBOL;Lo;0;L;<compat> 05D0;;;;N;FIRST TRANSFINITE CARDINAL;;;;
-2136;BET SYMBOL;Lo;0;L;<compat> 05D1;;;;N;SECOND TRANSFINITE CARDINAL;;;;
-2137;GIMEL SYMBOL;Lo;0;L;<compat> 05D2;;;;N;THIRD TRANSFINITE CARDINAL;;;;
-2138;DALET SYMBOL;Lo;0;L;<compat> 05D3;;;;N;FOURTH TRANSFINITE CARDINAL;;;;
-2139;INFORMATION SOURCE;Ll;0;L;<font> 0069;;;;N;;;;;
-213A;ROTATED CAPITAL Q;So;0;ON;;;;;N;;;;;
-213B;FACSIMILE SIGN;So;0;ON;<compat> 0046 0041 0058;;;;N;;;;;
-213C;DOUBLE-STRUCK SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
-213D;DOUBLE-STRUCK SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
-213E;DOUBLE-STRUCK CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
-213F;DOUBLE-STRUCK CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
-2140;DOUBLE-STRUCK N-ARY SUMMATION;Sm;0;ON;<font> 2211;;;;Y;;;;;
-2141;TURNED SANS-SERIF CAPITAL G;Sm;0;ON;;;;;N;;;;;
-2142;TURNED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;;
-2143;REVERSED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;;
-2144;TURNED SANS-SERIF CAPITAL Y;Sm;0;ON;;;;;N;;;;;
-2145;DOUBLE-STRUCK ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
-2146;DOUBLE-STRUCK ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
-2147;DOUBLE-STRUCK ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
-2148;DOUBLE-STRUCK ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
-2149;DOUBLE-STRUCK ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
-214A;PROPERTY LINE;So;0;ON;;;;;N;;;;;
-214B;TURNED AMPERSAND;Sm;0;ON;;;;;N;;;;;
-214C;PER SIGN;So;0;ON;;;;;N;;;;;
-214D;AKTIESELSKAB;So;0;ON;;;;;N;;;;;
-214E;TURNED SMALL F;Ll;0;L;;;;;N;;;2132;;2132
-214F;SYMBOL FOR SAMARITAN SOURCE;So;0;L;;;;;N;;;;;
-2150;VULGAR FRACTION ONE SEVENTH;No;0;ON;<fraction> 0031 2044 0037;;;1/7;N;;;;;
-2151;VULGAR FRACTION ONE NINTH;No;0;ON;<fraction> 0031 2044 0039;;;1/9;N;;;;;
-2152;VULGAR FRACTION ONE TENTH;No;0;ON;<fraction> 0031 2044 0031 0030;;;1/10;N;;;;;
-2153;VULGAR FRACTION ONE THIRD;No;0;ON;<fraction> 0031 2044 0033;;;1/3;N;FRACTION ONE THIRD;;;;
-2154;VULGAR FRACTION TWO THIRDS;No;0;ON;<fraction> 0032 2044 0033;;;2/3;N;FRACTION TWO THIRDS;;;;
-2155;VULGAR FRACTION ONE FIFTH;No;0;ON;<fraction> 0031 2044 0035;;;1/5;N;FRACTION ONE FIFTH;;;;
-2156;VULGAR FRACTION TWO FIFTHS;No;0;ON;<fraction> 0032 2044 0035;;;2/5;N;FRACTION TWO FIFTHS;;;;
-2157;VULGAR FRACTION THREE FIFTHS;No;0;ON;<fraction> 0033 2044 0035;;;3/5;N;FRACTION THREE FIFTHS;;;;
-2158;VULGAR FRACTION FOUR FIFTHS;No;0;ON;<fraction> 0034 2044 0035;;;4/5;N;FRACTION FOUR FIFTHS;;;;
-2159;VULGAR FRACTION ONE SIXTH;No;0;ON;<fraction> 0031 2044 0036;;;1/6;N;FRACTION ONE SIXTH;;;;
-215A;VULGAR FRACTION FIVE SIXTHS;No;0;ON;<fraction> 0035 2044 0036;;;5/6;N;FRACTION FIVE SIXTHS;;;;
-215B;VULGAR FRACTION ONE EIGHTH;No;0;ON;<fraction> 0031 2044 0038;;;1/8;N;FRACTION ONE EIGHTH;;;;
-215C;VULGAR FRACTION THREE EIGHTHS;No;0;ON;<fraction> 0033 2044 0038;;;3/8;N;FRACTION THREE EIGHTHS;;;;
-215D;VULGAR FRACTION FIVE EIGHTHS;No;0;ON;<fraction> 0035 2044 0038;;;5/8;N;FRACTION FIVE EIGHTHS;;;;
-215E;VULGAR FRACTION SEVEN EIGHTHS;No;0;ON;<fraction> 0037 2044 0038;;;7/8;N;FRACTION SEVEN EIGHTHS;;;;
-215F;FRACTION NUMERATOR ONE;No;0;ON;<fraction> 0031 2044;;;1;N;;;;;
-2160;ROMAN NUMERAL ONE;Nl;0;L;<compat> 0049;;;1;N;;;;2170;
-2161;ROMAN NUMERAL TWO;Nl;0;L;<compat> 0049 0049;;;2;N;;;;2171;
-2162;ROMAN NUMERAL THREE;Nl;0;L;<compat> 0049 0049 0049;;;3;N;;;;2172;
-2163;ROMAN NUMERAL FOUR;Nl;0;L;<compat> 0049 0056;;;4;N;;;;2173;
-2164;ROMAN NUMERAL FIVE;Nl;0;L;<compat> 0056;;;5;N;;;;2174;
-2165;ROMAN NUMERAL SIX;Nl;0;L;<compat> 0056 0049;;;6;N;;;;2175;
-2166;ROMAN NUMERAL SEVEN;Nl;0;L;<compat> 0056 0049 0049;;;7;N;;;;2176;
-2167;ROMAN NUMERAL EIGHT;Nl;0;L;<compat> 0056 0049 0049 0049;;;8;N;;;;2177;
-2168;ROMAN NUMERAL NINE;Nl;0;L;<compat> 0049 0058;;;9;N;;;;2178;
-2169;ROMAN NUMERAL TEN;Nl;0;L;<compat> 0058;;;10;N;;;;2179;
-216A;ROMAN NUMERAL ELEVEN;Nl;0;L;<compat> 0058 0049;;;11;N;;;;217A;
-216B;ROMAN NUMERAL TWELVE;Nl;0;L;<compat> 0058 0049 0049;;;12;N;;;;217B;
-216C;ROMAN NUMERAL FIFTY;Nl;0;L;<compat> 004C;;;50;N;;;;217C;
-216D;ROMAN NUMERAL ONE HUNDRED;Nl;0;L;<compat> 0043;;;100;N;;;;217D;
-216E;ROMAN NUMERAL FIVE HUNDRED;Nl;0;L;<compat> 0044;;;500;N;;;;217E;
-216F;ROMAN NUMERAL ONE THOUSAND;Nl;0;L;<compat> 004D;;;1000;N;;;;217F;
-2170;SMALL ROMAN NUMERAL ONE;Nl;0;L;<compat> 0069;;;1;N;;;2160;;2160
-2171;SMALL ROMAN NUMERAL TWO;Nl;0;L;<compat> 0069 0069;;;2;N;;;2161;;2161
-2172;SMALL ROMAN NUMERAL THREE;Nl;0;L;<compat> 0069 0069 0069;;;3;N;;;2162;;2162
-2173;SMALL ROMAN NUMERAL FOUR;Nl;0;L;<compat> 0069 0076;;;4;N;;;2163;;2163
-2174;SMALL ROMAN NUMERAL FIVE;Nl;0;L;<compat> 0076;;;5;N;;;2164;;2164
-2175;SMALL ROMAN NUMERAL SIX;Nl;0;L;<compat> 0076 0069;;;6;N;;;2165;;2165
-2176;SMALL ROMAN NUMERAL SEVEN;Nl;0;L;<compat> 0076 0069 0069;;;7;N;;;2166;;2166
-2177;SMALL ROMAN NUMERAL EIGHT;Nl;0;L;<compat> 0076 0069 0069 0069;;;8;N;;;2167;;2167
-2178;SMALL ROMAN NUMERAL NINE;Nl;0;L;<compat> 0069 0078;;;9;N;;;2168;;2168
-2179;SMALL ROMAN NUMERAL TEN;Nl;0;L;<compat> 0078;;;10;N;;;2169;;2169
-217A;SMALL ROMAN NUMERAL ELEVEN;Nl;0;L;<compat> 0078 0069;;;11;N;;;216A;;216A
-217B;SMALL ROMAN NUMERAL TWELVE;Nl;0;L;<compat> 0078 0069 0069;;;12;N;;;216B;;216B
-217C;SMALL ROMAN NUMERAL FIFTY;Nl;0;L;<compat> 006C;;;50;N;;;216C;;216C
-217D;SMALL ROMAN NUMERAL ONE HUNDRED;Nl;0;L;<compat> 0063;;;100;N;;;216D;;216D
-217E;SMALL ROMAN NUMERAL FIVE HUNDRED;Nl;0;L;<compat> 0064;;;500;N;;;216E;;216E
-217F;SMALL ROMAN NUMERAL ONE THOUSAND;Nl;0;L;<compat> 006D;;;1000;N;;;216F;;216F
-2180;ROMAN NUMERAL ONE THOUSAND C D;Nl;0;L;;;;1000;N;;;;;
-2181;ROMAN NUMERAL FIVE THOUSAND;Nl;0;L;;;;5000;N;;;;;
-2182;ROMAN NUMERAL TEN THOUSAND;Nl;0;L;;;;10000;N;;;;;
-2183;ROMAN NUMERAL REVERSED ONE HUNDRED;Lu;0;L;;;;;N;;;;2184;
-2184;LATIN SMALL LETTER REVERSED C;Ll;0;L;;;;;N;;;2183;;2183
-2185;ROMAN NUMERAL SIX LATE FORM;Nl;0;L;;;;6;N;;;;;
-2186;ROMAN NUMERAL FIFTY EARLY FORM;Nl;0;L;;;;50;N;;;;;
-2187;ROMAN NUMERAL FIFTY THOUSAND;Nl;0;L;;;;50000;N;;;;;
-2188;ROMAN NUMERAL ONE HUNDRED THOUSAND;Nl;0;L;;;;100000;N;;;;;
-2189;VULGAR FRACTION ZERO THIRDS;No;0;ON;<fraction> 0030 2044 0033;;;0;N;;;;;
-2190;LEFTWARDS ARROW;Sm;0;ON;;;;;N;LEFT ARROW;;;;
-2191;UPWARDS ARROW;Sm;0;ON;;;;;N;UP ARROW;;;;
-2192;RIGHTWARDS ARROW;Sm;0;ON;;;;;N;RIGHT ARROW;;;;
-2193;DOWNWARDS ARROW;Sm;0;ON;;;;;N;DOWN ARROW;;;;
-2194;LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;;
-2195;UP DOWN ARROW;So;0;ON;;;;;N;;;;;
-2196;NORTH WEST ARROW;So;0;ON;;;;;N;UPPER LEFT ARROW;;;;
-2197;NORTH EAST ARROW;So;0;ON;;;;;N;UPPER RIGHT ARROW;;;;
-2198;SOUTH EAST ARROW;So;0;ON;;;;;N;LOWER RIGHT ARROW;;;;
-2199;SOUTH WEST ARROW;So;0;ON;;;;;N;LOWER LEFT ARROW;;;;
-219A;LEFTWARDS ARROW WITH STROKE;Sm;0;ON;2190 0338;;;;N;LEFT ARROW WITH STROKE;;;;
-219B;RIGHTWARDS ARROW WITH STROKE;Sm;0;ON;2192 0338;;;;N;RIGHT ARROW WITH STROKE;;;;
-219C;LEFTWARDS WAVE ARROW;So;0;ON;;;;;N;LEFT WAVE ARROW;;;;
-219D;RIGHTWARDS WAVE ARROW;So;0;ON;;;;;N;RIGHT WAVE ARROW;;;;
-219E;LEFTWARDS TWO HEADED ARROW;So;0;ON;;;;;N;LEFT TWO HEADED ARROW;;;;
-219F;UPWARDS TWO HEADED ARROW;So;0;ON;;;;;N;UP TWO HEADED ARROW;;;;
-21A0;RIGHTWARDS TWO HEADED ARROW;Sm;0;ON;;;;;N;RIGHT TWO HEADED ARROW;;;;
-21A1;DOWNWARDS TWO HEADED ARROW;So;0;ON;;;;;N;DOWN TWO HEADED ARROW;;;;
-21A2;LEFTWARDS ARROW WITH TAIL;So;0;ON;;;;;N;LEFT ARROW WITH TAIL;;;;
-21A3;RIGHTWARDS ARROW WITH TAIL;Sm;0;ON;;;;;N;RIGHT ARROW WITH TAIL;;;;
-21A4;LEFTWARDS ARROW FROM BAR;So;0;ON;;;;;N;LEFT ARROW FROM BAR;;;;
-21A5;UPWARDS ARROW FROM BAR;So;0;ON;;;;;N;UP ARROW FROM BAR;;;;
-21A6;RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;RIGHT ARROW FROM BAR;;;;
-21A7;DOWNWARDS ARROW FROM BAR;So;0;ON;;;;;N;DOWN ARROW FROM BAR;;;;
-21A8;UP DOWN ARROW WITH BASE;So;0;ON;;;;;N;;;;;
-21A9;LEFTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;LEFT ARROW WITH HOOK;;;;
-21AA;RIGHTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;RIGHT ARROW WITH HOOK;;;;
-21AB;LEFTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;LEFT ARROW WITH LOOP;;;;
-21AC;RIGHTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;RIGHT ARROW WITH LOOP;;;;
-21AD;LEFT RIGHT WAVE ARROW;So;0;ON;;;;;N;;;;;
-21AE;LEFT RIGHT ARROW WITH STROKE;Sm;0;ON;2194 0338;;;;N;;;;;
-21AF;DOWNWARDS ZIGZAG ARROW;So;0;ON;;;;;N;DOWN ZIGZAG ARROW;;;;
-21B0;UPWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP LEFT;;;;
-21B1;UPWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP RIGHT;;;;
-21B2;DOWNWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP LEFT;;;;
-21B3;DOWNWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP RIGHT;;;;
-21B4;RIGHTWARDS ARROW WITH CORNER DOWNWARDS;So;0;ON;;;;;N;RIGHT ARROW WITH CORNER DOWN;;;;
-21B5;DOWNWARDS ARROW WITH CORNER LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH CORNER LEFT;;;;
-21B6;ANTICLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;;
-21B7;CLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;;
-21B8;NORTH WEST ARROW TO LONG BAR;So;0;ON;;;;;N;UPPER LEFT ARROW TO LONG BAR;;;;
-21B9;LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR OVER RIGHT ARROW TO BAR;;;;
-21BA;ANTICLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;
-21BB;CLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;;
-21BC;LEFTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB UP;;;;
-21BD;LEFTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB DOWN;;;;
-21BE;UPWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB RIGHT;;;;
-21BF;UPWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB LEFT;;;;
-21C0;RIGHTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB UP;;;;
-21C1;RIGHTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB DOWN;;;;
-21C2;DOWNWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB RIGHT;;;;
-21C3;DOWNWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB LEFT;;;;
-21C4;RIGHTWARDS ARROW OVER LEFTWARDS ARROW;So;0;ON;;;;;N;RIGHT ARROW OVER LEFT ARROW;;;;
-21C5;UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW;So;0;ON;;;;;N;UP ARROW LEFT OF DOWN ARROW;;;;
-21C6;LEFTWARDS ARROW OVER RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT ARROW OVER RIGHT ARROW;;;;
-21C7;LEFTWARDS PAIRED ARROWS;So;0;ON;;;;;N;LEFT PAIRED ARROWS;;;;
-21C8;UPWARDS PAIRED ARROWS;So;0;ON;;;;;N;UP PAIRED ARROWS;;;;
-21C9;RIGHTWARDS PAIRED ARROWS;So;0;ON;;;;;N;RIGHT PAIRED ARROWS;;;;
-21CA;DOWNWARDS PAIRED ARROWS;So;0;ON;;;;;N;DOWN PAIRED ARROWS;;;;
-21CB;LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON;So;0;ON;;;;;N;LEFT HARPOON OVER RIGHT HARPOON;;;;
-21CC;RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON;So;0;ON;;;;;N;RIGHT HARPOON OVER LEFT HARPOON;;;;
-21CD;LEFTWARDS DOUBLE ARROW WITH STROKE;So;0;ON;21D0 0338;;;;N;LEFT DOUBLE ARROW WITH STROKE;;;;
-21CE;LEFT RIGHT DOUBLE ARROW WITH STROKE;Sm;0;ON;21D4 0338;;;;N;;;;;
-21CF;RIGHTWARDS DOUBLE ARROW WITH STROKE;Sm;0;ON;21D2 0338;;;;N;RIGHT DOUBLE ARROW WITH STROKE;;;;
-21D0;LEFTWARDS DOUBLE ARROW;So;0;ON;;;;;N;LEFT DOUBLE ARROW;;;;
-21D1;UPWARDS DOUBLE ARROW;So;0;ON;;;;;N;UP DOUBLE ARROW;;;;
-21D2;RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;RIGHT DOUBLE ARROW;;;;
-21D3;DOWNWARDS DOUBLE ARROW;So;0;ON;;;;;N;DOWN DOUBLE ARROW;;;;
-21D4;LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
-21D5;UP DOWN DOUBLE ARROW;So;0;ON;;;;;N;;;;;
-21D6;NORTH WEST DOUBLE ARROW;So;0;ON;;;;;N;UPPER LEFT DOUBLE ARROW;;;;
-21D7;NORTH EAST DOUBLE ARROW;So;0;ON;;;;;N;UPPER RIGHT DOUBLE ARROW;;;;
-21D8;SOUTH EAST DOUBLE ARROW;So;0;ON;;;;;N;LOWER RIGHT DOUBLE ARROW;;;;
-21D9;SOUTH WEST DOUBLE ARROW;So;0;ON;;;;;N;LOWER LEFT DOUBLE ARROW;;;;
-21DA;LEFTWARDS TRIPLE ARROW;So;0;ON;;;;;N;LEFT TRIPLE ARROW;;;;
-21DB;RIGHTWARDS TRIPLE ARROW;So;0;ON;;;;;N;RIGHT TRIPLE ARROW;;;;
-21DC;LEFTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;LEFT SQUIGGLE ARROW;;;;
-21DD;RIGHTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;RIGHT SQUIGGLE ARROW;;;;
-21DE;UPWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;UP ARROW WITH DOUBLE STROKE;;;;
-21DF;DOWNWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;DOWN ARROW WITH DOUBLE STROKE;;;;
-21E0;LEFTWARDS DASHED ARROW;So;0;ON;;;;;N;LEFT DASHED ARROW;;;;
-21E1;UPWARDS DASHED ARROW;So;0;ON;;;;;N;UP DASHED ARROW;;;;
-21E2;RIGHTWARDS DASHED ARROW;So;0;ON;;;;;N;RIGHT DASHED ARROW;;;;
-21E3;DOWNWARDS DASHED ARROW;So;0;ON;;;;;N;DOWN DASHED ARROW;;;;
-21E4;LEFTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR;;;;
-21E5;RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;RIGHT ARROW TO BAR;;;;
-21E6;LEFTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE LEFT ARROW;;;;
-21E7;UPWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE UP ARROW;;;;
-21E8;RIGHTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE RIGHT ARROW;;;;
-21E9;DOWNWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE DOWN ARROW;;;;
-21EA;UPWARDS WHITE ARROW FROM BAR;So;0;ON;;;;;N;WHITE UP ARROW FROM BAR;;;;
-21EB;UPWARDS WHITE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;;
-21EC;UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;;
-21ED;UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR;So;0;ON;;;;;N;;;;;
-21EE;UPWARDS WHITE DOUBLE ARROW;So;0;ON;;;;;N;;;;;
-21EF;UPWARDS WHITE DOUBLE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;;
-21F0;RIGHTWARDS WHITE ARROW FROM WALL;So;0;ON;;;;;N;;;;;
-21F1;NORTH WEST ARROW TO CORNER;So;0;ON;;;;;N;;;;;
-21F2;SOUTH EAST ARROW TO CORNER;So;0;ON;;;;;N;;;;;
-21F3;UP DOWN WHITE ARROW;So;0;ON;;;;;N;;;;;
-21F4;RIGHT ARROW WITH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
-21F5;DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW;Sm;0;ON;;;;;N;;;;;
-21F6;THREE RIGHTWARDS ARROWS;Sm;0;ON;;;;;N;;;;;
-21F7;LEFTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-21F8;RIGHTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-21F9;LEFT RIGHT ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-21FA;LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-21FB;RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-21FC;LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-21FD;LEFTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;
-21FE;RIGHTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;
-21FF;LEFT RIGHT OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;;
-2200;FOR ALL;Sm;0;ON;;;;;N;;;;;
-2201;COMPLEMENT;Sm;0;ON;;;;;Y;;;;;
-2202;PARTIAL DIFFERENTIAL;Sm;0;ON;;;;;Y;;;;;
-2203;THERE EXISTS;Sm;0;ON;;;;;Y;;;;;
-2204;THERE DOES NOT EXIST;Sm;0;ON;2203 0338;;;;Y;;;;;
-2205;EMPTY SET;Sm;0;ON;;;;;N;;;;;
-2206;INCREMENT;Sm;0;ON;;;;;N;;;;;
-2207;NABLA;Sm;0;ON;;;;;N;;;;;
-2208;ELEMENT OF;Sm;0;ON;;;;;Y;;;;;
-2209;NOT AN ELEMENT OF;Sm;0;ON;2208 0338;;;;Y;;;;;
-220A;SMALL ELEMENT OF;Sm;0;ON;;;;;Y;;;;;
-220B;CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;;
-220C;DOES NOT CONTAIN AS MEMBER;Sm;0;ON;220B 0338;;;;Y;;;;;
-220D;SMALL CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;;
-220E;END OF PROOF;Sm;0;ON;;;;;N;;;;;
-220F;N-ARY PRODUCT;Sm;0;ON;;;;;N;;;;;
-2210;N-ARY COPRODUCT;Sm;0;ON;;;;;N;;;;;
-2211;N-ARY SUMMATION;Sm;0;ON;;;;;Y;;;;;
-2212;MINUS SIGN;Sm;0;ES;;;;;N;;;;;
-2213;MINUS-OR-PLUS SIGN;Sm;0;ET;;;;;N;;;;;
-2214;DOT PLUS;Sm;0;ON;;;;;N;;;;;
-2215;DIVISION SLASH;Sm;0;ON;;;;;Y;;;;;
-2216;SET MINUS;Sm;0;ON;;;;;Y;;;;;
-2217;ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;;
-2218;RING OPERATOR;Sm;0;ON;;;;;N;;;;;
-2219;BULLET OPERATOR;Sm;0;ON;;;;;N;;;;;
-221A;SQUARE ROOT;Sm;0;ON;;;;;Y;;;;;
-221B;CUBE ROOT;Sm;0;ON;;;;;Y;;;;;
-221C;FOURTH ROOT;Sm;0;ON;;;;;Y;;;;;
-221D;PROPORTIONAL TO;Sm;0;ON;;;;;Y;;;;;
-221E;INFINITY;Sm;0;ON;;;;;N;;;;;
-221F;RIGHT ANGLE;Sm;0;ON;;;;;Y;;;;;
-2220;ANGLE;Sm;0;ON;;;;;Y;;;;;
-2221;MEASURED ANGLE;Sm;0;ON;;;;;Y;;;;;
-2222;SPHERICAL ANGLE;Sm;0;ON;;;;;Y;;;;;
-2223;DIVIDES;Sm;0;ON;;;;;N;;;;;
-2224;DOES NOT DIVIDE;Sm;0;ON;2223 0338;;;;Y;;;;;
-2225;PARALLEL TO;Sm;0;ON;;;;;N;;;;;
-2226;NOT PARALLEL TO;Sm;0;ON;2225 0338;;;;Y;;;;;
-2227;LOGICAL AND;Sm;0;ON;;;;;N;;;;;
-2228;LOGICAL OR;Sm;0;ON;;;;;N;;;;;
-2229;INTERSECTION;Sm;0;ON;;;;;N;;;;;
-222A;UNION;Sm;0;ON;;;;;N;;;;;
-222B;INTEGRAL;Sm;0;ON;;;;;Y;;;;;
-222C;DOUBLE INTEGRAL;Sm;0;ON;<compat> 222B 222B;;;;Y;;;;;
-222D;TRIPLE INTEGRAL;Sm;0;ON;<compat> 222B 222B 222B;;;;Y;;;;;
-222E;CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
-222F;SURFACE INTEGRAL;Sm;0;ON;<compat> 222E 222E;;;;Y;;;;;
-2230;VOLUME INTEGRAL;Sm;0;ON;<compat> 222E 222E 222E;;;;Y;;;;;
-2231;CLOCKWISE INTEGRAL;Sm;0;ON;;;;;Y;;;;;
-2232;CLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
-2233;ANTICLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;;
-2234;THEREFORE;Sm;0;ON;;;;;N;;;;;
-2235;BECAUSE;Sm;0;ON;;;;;N;;;;;
-2236;RATIO;Sm;0;ON;;;;;N;;;;;
-2237;PROPORTION;Sm;0;ON;;;;;N;;;;;
-2238;DOT MINUS;Sm;0;ON;;;;;N;;;;;
-2239;EXCESS;Sm;0;ON;;;;;Y;;;;;
-223A;GEOMETRIC PROPORTION;Sm;0;ON;;;;;N;;;;;
-223B;HOMOTHETIC;Sm;0;ON;;;;;Y;;;;;
-223C;TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
-223D;REVERSED TILDE;Sm;0;ON;;;;;Y;;;;;
-223E;INVERTED LAZY S;Sm;0;ON;;;;;Y;;;;;
-223F;SINE WAVE;Sm;0;ON;;;;;Y;;;;;
-2240;WREATH PRODUCT;Sm;0;ON;;;;;Y;;;;;
-2241;NOT TILDE;Sm;0;ON;223C 0338;;;;Y;;;;;
-2242;MINUS TILDE;Sm;0;ON;;;;;Y;;;;;
-2243;ASYMPTOTICALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2244;NOT ASYMPTOTICALLY EQUAL TO;Sm;0;ON;2243 0338;;;;Y;;;;;
-2245;APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2246;APPROXIMATELY BUT NOT ACTUALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2247;NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO;Sm;0;ON;2245 0338;;;;Y;;;;;
-2248;ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2249;NOT ALMOST EQUAL TO;Sm;0;ON;2248 0338;;;;Y;;;;;
-224A;ALMOST EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-224B;TRIPLE TILDE;Sm;0;ON;;;;;Y;;;;;
-224C;ALL EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-224D;EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
-224E;GEOMETRICALLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
-224F;DIFFERENCE BETWEEN;Sm;0;ON;;;;;N;;;;;
-2250;APPROACHES THE LIMIT;Sm;0;ON;;;;;N;;;;;
-2251;GEOMETRICALLY EQUAL TO;Sm;0;ON;;;;;N;;;;;
-2252;APPROXIMATELY EQUAL TO OR THE IMAGE OF;Sm;0;ON;;;;;Y;;;;;
-2253;IMAGE OF OR APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2254;COLON EQUALS;Sm;0;ON;;;;;Y;COLON EQUAL;;;;
-2255;EQUALS COLON;Sm;0;ON;;;;;Y;EQUAL COLON;;;;
-2256;RING IN EQUAL TO;Sm;0;ON;;;;;N;;;;;
-2257;RING EQUAL TO;Sm;0;ON;;;;;N;;;;;
-2258;CORRESPONDS TO;Sm;0;ON;;;;;N;;;;;
-2259;ESTIMATES;Sm;0;ON;;;;;N;;;;;
-225A;EQUIANGULAR TO;Sm;0;ON;;;;;N;;;;;
-225B;STAR EQUALS;Sm;0;ON;;;;;N;;;;;
-225C;DELTA EQUAL TO;Sm;0;ON;;;;;N;;;;;
-225D;EQUAL TO BY DEFINITION;Sm;0;ON;;;;;N;;;;;
-225E;MEASURED BY;Sm;0;ON;;;;;N;;;;;
-225F;QUESTIONED EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2260;NOT EQUAL TO;Sm;0;ON;003D 0338;;;;Y;;;;;
-2261;IDENTICAL TO;Sm;0;ON;;;;;N;;;;;
-2262;NOT IDENTICAL TO;Sm;0;ON;2261 0338;;;;Y;;;;;
-2263;STRICTLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;;
-2264;LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUAL TO;;;;
-2265;GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUAL TO;;;;
-2266;LESS-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OVER EQUAL TO;;;;
-2267;GREATER-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OVER EQUAL TO;;;;
-2268;LESS-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUAL TO;;;;
-2269;GREATER-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUAL TO;;;;
-226A;MUCH LESS-THAN;Sm;0;ON;;;;;Y;MUCH LESS THAN;;;;
-226B;MUCH GREATER-THAN;Sm;0;ON;;;;;Y;MUCH GREATER THAN;;;;
-226C;BETWEEN;Sm;0;ON;;;;;N;;;;;
-226D;NOT EQUIVALENT TO;Sm;0;ON;224D 0338;;;;N;;;;;
-226E;NOT LESS-THAN;Sm;0;ON;003C 0338;;;;Y;NOT LESS THAN;;;;
-226F;NOT GREATER-THAN;Sm;0;ON;003E 0338;;;;Y;NOT GREATER THAN;;;;
-2270;NEITHER LESS-THAN NOR EQUAL TO;Sm;0;ON;2264 0338;;;;Y;NEITHER LESS THAN NOR EQUAL TO;;;;
-2271;NEITHER GREATER-THAN NOR EQUAL TO;Sm;0;ON;2265 0338;;;;Y;NEITHER GREATER THAN NOR EQUAL TO;;;;
-2272;LESS-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUIVALENT TO;;;;
-2273;GREATER-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUIVALENT TO;;;;
-2274;NEITHER LESS-THAN NOR EQUIVALENT TO;Sm;0;ON;2272 0338;;;;Y;NEITHER LESS THAN NOR EQUIVALENT TO;;;;
-2275;NEITHER GREATER-THAN NOR EQUIVALENT TO;Sm;0;ON;2273 0338;;;;Y;NEITHER GREATER THAN NOR EQUIVALENT TO;;;;
-2276;LESS-THAN OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN OR GREATER THAN;;;;
-2277;GREATER-THAN OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN OR LESS THAN;;;;
-2278;NEITHER LESS-THAN NOR GREATER-THAN;Sm;0;ON;2276 0338;;;;Y;NEITHER LESS THAN NOR GREATER THAN;;;;
-2279;NEITHER GREATER-THAN NOR LESS-THAN;Sm;0;ON;2277 0338;;;;Y;NEITHER GREATER THAN NOR LESS THAN;;;;
-227A;PRECEDES;Sm;0;ON;;;;;Y;;;;;
-227B;SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
-227C;PRECEDES OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-227D;SUCCEEDS OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-227E;PRECEDES OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
-227F;SUCCEEDS OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
-2280;DOES NOT PRECEDE;Sm;0;ON;227A 0338;;;;Y;;;;;
-2281;DOES NOT SUCCEED;Sm;0;ON;227B 0338;;;;Y;;;;;
-2282;SUBSET OF;Sm;0;ON;;;;;Y;;;;;
-2283;SUPERSET OF;Sm;0;ON;;;;;Y;;;;;
-2284;NOT A SUBSET OF;Sm;0;ON;2282 0338;;;;Y;;;;;
-2285;NOT A SUPERSET OF;Sm;0;ON;2283 0338;;;;Y;;;;;
-2286;SUBSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2287;SUPERSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2288;NEITHER A SUBSET OF NOR EQUAL TO;Sm;0;ON;2286 0338;;;;Y;;;;;
-2289;NEITHER A SUPERSET OF NOR EQUAL TO;Sm;0;ON;2287 0338;;;;Y;;;;;
-228A;SUBSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUBSET OF OR NOT EQUAL TO;;;;
-228B;SUPERSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUPERSET OF OR NOT EQUAL TO;;;;
-228C;MULTISET;Sm;0;ON;;;;;Y;;;;;
-228D;MULTISET MULTIPLICATION;Sm;0;ON;;;;;N;;;;;
-228E;MULTISET UNION;Sm;0;ON;;;;;N;;;;;
-228F;SQUARE IMAGE OF;Sm;0;ON;;;;;Y;;;;;
-2290;SQUARE ORIGINAL OF;Sm;0;ON;;;;;Y;;;;;
-2291;SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2292;SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2293;SQUARE CAP;Sm;0;ON;;;;;N;;;;;
-2294;SQUARE CUP;Sm;0;ON;;;;;N;;;;;
-2295;CIRCLED PLUS;Sm;0;ON;;;;;N;;;;;
-2296;CIRCLED MINUS;Sm;0;ON;;;;;N;;;;;
-2297;CIRCLED TIMES;Sm;0;ON;;;;;N;;;;;
-2298;CIRCLED DIVISION SLASH;Sm;0;ON;;;;;Y;;;;;
-2299;CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
-229A;CIRCLED RING OPERATOR;Sm;0;ON;;;;;N;;;;;
-229B;CIRCLED ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;;
-229C;CIRCLED EQUALS;Sm;0;ON;;;;;N;;;;;
-229D;CIRCLED DASH;Sm;0;ON;;;;;N;;;;;
-229E;SQUARED PLUS;Sm;0;ON;;;;;N;;;;;
-229F;SQUARED MINUS;Sm;0;ON;;;;;N;;;;;
-22A0;SQUARED TIMES;Sm;0;ON;;;;;N;;;;;
-22A1;SQUARED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
-22A2;RIGHT TACK;Sm;0;ON;;;;;Y;;;;;
-22A3;LEFT TACK;Sm;0;ON;;;;;Y;;;;;
-22A4;DOWN TACK;Sm;0;ON;;;;;N;;;;;
-22A5;UP TACK;Sm;0;ON;;;;;N;;;;;
-22A6;ASSERTION;Sm;0;ON;;;;;Y;;;;;
-22A7;MODELS;Sm;0;ON;;;;;Y;;;;;
-22A8;TRUE;Sm;0;ON;;;;;Y;;;;;
-22A9;FORCES;Sm;0;ON;;;;;Y;;;;;
-22AA;TRIPLE VERTICAL BAR RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
-22AB;DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
-22AC;DOES NOT PROVE;Sm;0;ON;22A2 0338;;;;Y;;;;;
-22AD;NOT TRUE;Sm;0;ON;22A8 0338;;;;Y;;;;;
-22AE;DOES NOT FORCE;Sm;0;ON;22A9 0338;;;;Y;;;;;
-22AF;NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;22AB 0338;;;;Y;;;;;
-22B0;PRECEDES UNDER RELATION;Sm;0;ON;;;;;Y;;;;;
-22B1;SUCCEEDS UNDER RELATION;Sm;0;ON;;;;;Y;;;;;
-22B2;NORMAL SUBGROUP OF;Sm;0;ON;;;;;Y;;;;;
-22B3;CONTAINS AS NORMAL SUBGROUP;Sm;0;ON;;;;;Y;;;;;
-22B4;NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-22B5;CONTAINS AS NORMAL SUBGROUP OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-22B6;ORIGINAL OF;Sm;0;ON;;;;;Y;;;;;
-22B7;IMAGE OF;Sm;0;ON;;;;;Y;;;;;
-22B8;MULTIMAP;Sm;0;ON;;;;;Y;;;;;
-22B9;HERMITIAN CONJUGATE MATRIX;Sm;0;ON;;;;;N;;;;;
-22BA;INTERCALATE;Sm;0;ON;;;;;N;;;;;
-22BB;XOR;Sm;0;ON;;;;;N;;;;;
-22BC;NAND;Sm;0;ON;;;;;N;;;;;
-22BD;NOR;Sm;0;ON;;;;;N;;;;;
-22BE;RIGHT ANGLE WITH ARC;Sm;0;ON;;;;;Y;;;;;
-22BF;RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;;
-22C0;N-ARY LOGICAL AND;Sm;0;ON;;;;;N;;;;;
-22C1;N-ARY LOGICAL OR;Sm;0;ON;;;;;N;;;;;
-22C2;N-ARY INTERSECTION;Sm;0;ON;;;;;N;;;;;
-22C3;N-ARY UNION;Sm;0;ON;;;;;N;;;;;
-22C4;DIAMOND OPERATOR;Sm;0;ON;;;;;N;;;;;
-22C5;DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
-22C6;STAR OPERATOR;Sm;0;ON;;;;;N;;;;;
-22C7;DIVISION TIMES;Sm;0;ON;;;;;N;;;;;
-22C8;BOWTIE;Sm;0;ON;;;;;N;;;;;
-22C9;LEFT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
-22CA;RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
-22CB;LEFT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
-22CC;RIGHT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;;
-22CD;REVERSED TILDE EQUALS;Sm;0;ON;;;;;Y;;;;;
-22CE;CURLY LOGICAL OR;Sm;0;ON;;;;;N;;;;;
-22CF;CURLY LOGICAL AND;Sm;0;ON;;;;;N;;;;;
-22D0;DOUBLE SUBSET;Sm;0;ON;;;;;Y;;;;;
-22D1;DOUBLE SUPERSET;Sm;0;ON;;;;;Y;;;;;
-22D2;DOUBLE INTERSECTION;Sm;0;ON;;;;;N;;;;;
-22D3;DOUBLE UNION;Sm;0;ON;;;;;N;;;;;
-22D4;PITCHFORK;Sm;0;ON;;;;;N;;;;;
-22D5;EQUAL AND PARALLEL TO;Sm;0;ON;;;;;N;;;;;
-22D6;LESS-THAN WITH DOT;Sm;0;ON;;;;;Y;LESS THAN WITH DOT;;;;
-22D7;GREATER-THAN WITH DOT;Sm;0;ON;;;;;Y;GREATER THAN WITH DOT;;;;
-22D8;VERY MUCH LESS-THAN;Sm;0;ON;;;;;Y;VERY MUCH LESS THAN;;;;
-22D9;VERY MUCH GREATER-THAN;Sm;0;ON;;;;;Y;VERY MUCH GREATER THAN;;;;
-22DA;LESS-THAN EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN EQUAL TO OR GREATER THAN;;;;
-22DB;GREATER-THAN EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN EQUAL TO OR LESS THAN;;;;
-22DC;EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR LESS THAN;;;;
-22DD;EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR GREATER THAN;;;;
-22DE;EQUAL TO OR PRECEDES;Sm;0;ON;;;;;Y;;;;;
-22DF;EQUAL TO OR SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
-22E0;DOES NOT PRECEDE OR EQUAL;Sm;0;ON;227C 0338;;;;Y;;;;;
-22E1;DOES NOT SUCCEED OR EQUAL;Sm;0;ON;227D 0338;;;;Y;;;;;
-22E2;NOT SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;2291 0338;;;;Y;;;;;
-22E3;NOT SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;2292 0338;;;;Y;;;;;
-22E4;SQUARE IMAGE OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-22E5;SQUARE ORIGINAL OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-22E6;LESS-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUIVALENT TO;;;;
-22E7;GREATER-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUIVALENT TO;;;;
-22E8;PRECEDES BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
-22E9;SUCCEEDS BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;;
-22EA;NOT NORMAL SUBGROUP OF;Sm;0;ON;22B2 0338;;;;Y;;;;;
-22EB;DOES NOT CONTAIN AS NORMAL SUBGROUP;Sm;0;ON;22B3 0338;;;;Y;;;;;
-22EC;NOT NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;22B4 0338;;;;Y;;;;;
-22ED;DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL;Sm;0;ON;22B5 0338;;;;Y;;;;;
-22EE;VERTICAL ELLIPSIS;Sm;0;ON;;;;;N;;;;;
-22EF;MIDLINE HORIZONTAL ELLIPSIS;Sm;0;ON;;;;;N;;;;;
-22F0;UP RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;;
-22F1;DOWN RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;;
-22F2;ELEMENT OF WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
-22F3;ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
-22F4;SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
-22F5;ELEMENT OF WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
-22F6;ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
-22F7;SMALL ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
-22F8;ELEMENT OF WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
-22F9;ELEMENT OF WITH TWO HORIZONTAL STROKES;Sm;0;ON;;;;;Y;;;;;
-22FA;CONTAINS WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
-22FB;CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
-22FC;SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
-22FD;CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
-22FE;SMALL CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
-22FF;Z NOTATION BAG MEMBERSHIP;Sm;0;ON;;;;;Y;;;;;
-2300;DIAMETER SIGN;So;0;ON;;;;;N;;;;;
-2301;ELECTRIC ARROW;So;0;ON;;;;;N;;;;;
-2302;HOUSE;So;0;ON;;;;;N;;;;;
-2303;UP ARROWHEAD;So;0;ON;;;;;N;;;;;
-2304;DOWN ARROWHEAD;So;0;ON;;;;;N;;;;;
-2305;PROJECTIVE;So;0;ON;;;;;N;;;;;
-2306;PERSPECTIVE;So;0;ON;;;;;N;;;;;
-2307;WAVY LINE;So;0;ON;;;;;N;;;;;
-2308;LEFT CEILING;Sm;0;ON;;;;;Y;;;;;
-2309;RIGHT CEILING;Sm;0;ON;;;;;Y;;;;;
-230A;LEFT FLOOR;Sm;0;ON;;;;;Y;;;;;
-230B;RIGHT FLOOR;Sm;0;ON;;;;;Y;;;;;
-230C;BOTTOM RIGHT CROP;So;0;ON;;;;;N;;;;;
-230D;BOTTOM LEFT CROP;So;0;ON;;;;;N;;;;;
-230E;TOP RIGHT CROP;So;0;ON;;;;;N;;;;;
-230F;TOP LEFT CROP;So;0;ON;;;;;N;;;;;
-2310;REVERSED NOT SIGN;So;0;ON;;;;;N;;;;;
-2311;SQUARE LOZENGE;So;0;ON;;;;;N;;;;;
-2312;ARC;So;0;ON;;;;;N;;;;;
-2313;SEGMENT;So;0;ON;;;;;N;;;;;
-2314;SECTOR;So;0;ON;;;;;N;;;;;
-2315;TELEPHONE RECORDER;So;0;ON;;;;;N;;;;;
-2316;POSITION INDICATOR;So;0;ON;;;;;N;;;;;
-2317;VIEWDATA SQUARE;So;0;ON;;;;;N;;;;;
-2318;PLACE OF INTEREST SIGN;So;0;ON;;;;;N;COMMAND KEY;;;;
-2319;TURNED NOT SIGN;So;0;ON;;;;;N;;;;;
-231A;WATCH;So;0;ON;;;;;N;;;;;
-231B;HOURGLASS;So;0;ON;;;;;N;;;;;
-231C;TOP LEFT CORNER;So;0;ON;;;;;N;;;;;
-231D;TOP RIGHT CORNER;So;0;ON;;;;;N;;;;;
-231E;BOTTOM LEFT CORNER;So;0;ON;;;;;N;;;;;
-231F;BOTTOM RIGHT CORNER;So;0;ON;;;;;N;;;;;
-2320;TOP HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;;
-2321;BOTTOM HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;;
-2322;FROWN;So;0;ON;;;;;N;;;;;
-2323;SMILE;So;0;ON;;;;;N;;;;;
-2324;UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS;So;0;ON;;;;;N;ENTER KEY;;;;
-2325;OPTION KEY;So;0;ON;;;;;N;;;;;
-2326;ERASE TO THE RIGHT;So;0;ON;;;;;N;DELETE TO THE RIGHT KEY;;;;
-2327;X IN A RECTANGLE BOX;So;0;ON;;;;;N;CLEAR KEY;;;;
-2328;KEYBOARD;So;0;ON;;;;;N;;;;;
-2329;LEFT-POINTING ANGLE BRACKET;Ps;0;ON;3008;;;;Y;BRA;;;;
-232A;RIGHT-POINTING ANGLE BRACKET;Pe;0;ON;3009;;;;Y;KET;;;;
-232B;ERASE TO THE LEFT;So;0;ON;;;;;N;DELETE TO THE LEFT KEY;;;;
-232C;BENZENE RING;So;0;ON;;;;;N;;;;;
-232D;CYLINDRICITY;So;0;ON;;;;;N;;;;;
-232E;ALL AROUND-PROFILE;So;0;ON;;;;;N;;;;;
-232F;SYMMETRY;So;0;ON;;;;;N;;;;;
-2330;TOTAL RUNOUT;So;0;ON;;;;;N;;;;;
-2331;DIMENSION ORIGIN;So;0;ON;;;;;N;;;;;
-2332;CONICAL TAPER;So;0;ON;;;;;N;;;;;
-2333;SLOPE;So;0;ON;;;;;N;;;;;
-2334;COUNTERBORE;So;0;ON;;;;;N;;;;;
-2335;COUNTERSINK;So;0;ON;;;;;N;;;;;
-2336;APL FUNCTIONAL SYMBOL I-BEAM;So;0;L;;;;;N;;;;;
-2337;APL FUNCTIONAL SYMBOL SQUISH QUAD;So;0;L;;;;;N;;;;;
-2338;APL FUNCTIONAL SYMBOL QUAD EQUAL;So;0;L;;;;;N;;;;;
-2339;APL FUNCTIONAL SYMBOL QUAD DIVIDE;So;0;L;;;;;N;;;;;
-233A;APL FUNCTIONAL SYMBOL QUAD DIAMOND;So;0;L;;;;;N;;;;;
-233B;APL FUNCTIONAL SYMBOL QUAD JOT;So;0;L;;;;;N;;;;;
-233C;APL FUNCTIONAL SYMBOL QUAD CIRCLE;So;0;L;;;;;N;;;;;
-233D;APL FUNCTIONAL SYMBOL CIRCLE STILE;So;0;L;;;;;N;;;;;
-233E;APL FUNCTIONAL SYMBOL CIRCLE JOT;So;0;L;;;;;N;;;;;
-233F;APL FUNCTIONAL SYMBOL SLASH BAR;So;0;L;;;;;N;;;;;
-2340;APL FUNCTIONAL SYMBOL BACKSLASH BAR;So;0;L;;;;;N;;;;;
-2341;APL FUNCTIONAL SYMBOL QUAD SLASH;So;0;L;;;;;N;;;;;
-2342;APL FUNCTIONAL SYMBOL QUAD BACKSLASH;So;0;L;;;;;N;;;;;
-2343;APL FUNCTIONAL SYMBOL QUAD LESS-THAN;So;0;L;;;;;N;;;;;
-2344;APL FUNCTIONAL SYMBOL QUAD GREATER-THAN;So;0;L;;;;;N;;;;;
-2345;APL FUNCTIONAL SYMBOL LEFTWARDS VANE;So;0;L;;;;;N;;;;;
-2346;APL FUNCTIONAL SYMBOL RIGHTWARDS VANE;So;0;L;;;;;N;;;;;
-2347;APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW;So;0;L;;;;;N;;;;;
-2348;APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW;So;0;L;;;;;N;;;;;
-2349;APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH;So;0;L;;;;;N;;;;;
-234A;APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR;So;0;L;;;;;N;;;;;
-234B;APL FUNCTIONAL SYMBOL DELTA STILE;So;0;L;;;;;N;;;;;
-234C;APL FUNCTIONAL SYMBOL QUAD DOWN CARET;So;0;L;;;;;N;;;;;
-234D;APL FUNCTIONAL SYMBOL QUAD DELTA;So;0;L;;;;;N;;;;;
-234E;APL FUNCTIONAL SYMBOL DOWN TACK JOT;So;0;L;;;;;N;;;;;
-234F;APL FUNCTIONAL SYMBOL UPWARDS VANE;So;0;L;;;;;N;;;;;
-2350;APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW;So;0;L;;;;;N;;;;;
-2351;APL FUNCTIONAL SYMBOL UP TACK OVERBAR;So;0;L;;;;;N;;;;;
-2352;APL FUNCTIONAL SYMBOL DEL STILE;So;0;L;;;;;N;;;;;
-2353;APL FUNCTIONAL SYMBOL QUAD UP CARET;So;0;L;;;;;N;;;;;
-2354;APL FUNCTIONAL SYMBOL QUAD DEL;So;0;L;;;;;N;;;;;
-2355;APL FUNCTIONAL SYMBOL UP TACK JOT;So;0;L;;;;;N;;;;;
-2356;APL FUNCTIONAL SYMBOL DOWNWARDS VANE;So;0;L;;;;;N;;;;;
-2357;APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW;So;0;L;;;;;N;;;;;
-2358;APL FUNCTIONAL SYMBOL QUOTE UNDERBAR;So;0;L;;;;;N;;;;;
-2359;APL FUNCTIONAL SYMBOL DELTA UNDERBAR;So;0;L;;;;;N;;;;;
-235A;APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR;So;0;L;;;;;N;;;;;
-235B;APL FUNCTIONAL SYMBOL JOT UNDERBAR;So;0;L;;;;;N;;;;;
-235C;APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR;So;0;L;;;;;N;;;;;
-235D;APL FUNCTIONAL SYMBOL UP SHOE JOT;So;0;L;;;;;N;;;;;
-235E;APL FUNCTIONAL SYMBOL QUOTE QUAD;So;0;L;;;;;N;;;;;
-235F;APL FUNCTIONAL SYMBOL CIRCLE STAR;So;0;L;;;;;N;;;;;
-2360;APL FUNCTIONAL SYMBOL QUAD COLON;So;0;L;;;;;N;;;;;
-2361;APL FUNCTIONAL SYMBOL UP TACK DIAERESIS;So;0;L;;;;;N;;;;;
-2362;APL FUNCTIONAL SYMBOL DEL DIAERESIS;So;0;L;;;;;N;;;;;
-2363;APL FUNCTIONAL SYMBOL STAR DIAERESIS;So;0;L;;;;;N;;;;;
-2364;APL FUNCTIONAL SYMBOL JOT DIAERESIS;So;0;L;;;;;N;;;;;
-2365;APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS;So;0;L;;;;;N;;;;;
-2366;APL FUNCTIONAL SYMBOL DOWN SHOE STILE;So;0;L;;;;;N;;;;;
-2367;APL FUNCTIONAL SYMBOL LEFT SHOE STILE;So;0;L;;;;;N;;;;;
-2368;APL FUNCTIONAL SYMBOL TILDE DIAERESIS;So;0;L;;;;;N;;;;;
-2369;APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS;So;0;L;;;;;N;;;;;
-236A;APL FUNCTIONAL SYMBOL COMMA BAR;So;0;L;;;;;N;;;;;
-236B;APL FUNCTIONAL SYMBOL DEL TILDE;So;0;L;;;;;N;;;;;
-236C;APL FUNCTIONAL SYMBOL ZILDE;So;0;L;;;;;N;;;;;
-236D;APL FUNCTIONAL SYMBOL STILE TILDE;So;0;L;;;;;N;;;;;
-236E;APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR;So;0;L;;;;;N;;;;;
-236F;APL FUNCTIONAL SYMBOL QUAD NOT EQUAL;So;0;L;;;;;N;;;;;
-2370;APL FUNCTIONAL SYMBOL QUAD QUESTION;So;0;L;;;;;N;;;;;
-2371;APL FUNCTIONAL SYMBOL DOWN CARET TILDE;So;0;L;;;;;N;;;;;
-2372;APL FUNCTIONAL SYMBOL UP CARET TILDE;So;0;L;;;;;N;;;;;
-2373;APL FUNCTIONAL SYMBOL IOTA;So;0;L;;;;;N;;;;;
-2374;APL FUNCTIONAL SYMBOL RHO;So;0;L;;;;;N;;;;;
-2375;APL FUNCTIONAL SYMBOL OMEGA;So;0;L;;;;;N;;;;;
-2376;APL FUNCTIONAL SYMBOL ALPHA UNDERBAR;So;0;L;;;;;N;;;;;
-2377;APL FUNCTIONAL SYMBOL EPSILON UNDERBAR;So;0;L;;;;;N;;;;;
-2378;APL FUNCTIONAL SYMBOL IOTA UNDERBAR;So;0;L;;;;;N;;;;;
-2379;APL FUNCTIONAL SYMBOL OMEGA UNDERBAR;So;0;L;;;;;N;;;;;
-237A;APL FUNCTIONAL SYMBOL ALPHA;So;0;L;;;;;N;;;;;
-237B;NOT CHECK MARK;So;0;ON;;;;;N;;;;;
-237C;RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW;Sm;0;ON;;;;;N;;;;;
-237D;SHOULDERED OPEN BOX;So;0;ON;;;;;N;;;;;
-237E;BELL SYMBOL;So;0;ON;;;;;N;;;;;
-237F;VERTICAL LINE WITH MIDDLE DOT;So;0;ON;;;;;N;;;;;
-2380;INSERTION SYMBOL;So;0;ON;;;;;N;;;;;
-2381;CONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;;
-2382;DISCONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;;
-2383;EMPHASIS SYMBOL;So;0;ON;;;;;N;;;;;
-2384;COMPOSITION SYMBOL;So;0;ON;;;;;N;;;;;
-2385;WHITE SQUARE WITH CENTRE VERTICAL LINE;So;0;ON;;;;;N;;;;;
-2386;ENTER SYMBOL;So;0;ON;;;;;N;;;;;
-2387;ALTERNATIVE KEY SYMBOL;So;0;ON;;;;;N;;;;;
-2388;HELM SYMBOL;So;0;ON;;;;;N;;;;;
-2389;CIRCLED HORIZONTAL BAR WITH NOTCH;So;0;ON;;;;;N;;;;;
-238A;CIRCLED TRIANGLE DOWN;So;0;ON;;;;;N;;;;;
-238B;BROKEN CIRCLE WITH NORTHWEST ARROW;So;0;ON;;;;;N;;;;;
-238C;UNDO SYMBOL;So;0;ON;;;;;N;;;;;
-238D;MONOSTABLE SYMBOL;So;0;ON;;;;;N;;;;;
-238E;HYSTERESIS SYMBOL;So;0;ON;;;;;N;;;;;
-238F;OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL;So;0;ON;;;;;N;;;;;
-2390;OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL;So;0;ON;;;;;N;;;;;
-2391;PASSIVE-PULL-DOWN-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;;
-2392;PASSIVE-PULL-UP-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;;
-2393;DIRECT CURRENT SYMBOL FORM TWO;So;0;ON;;;;;N;;;;;
-2394;SOFTWARE-FUNCTION SYMBOL;So;0;ON;;;;;N;;;;;
-2395;APL FUNCTIONAL SYMBOL QUAD;So;0;L;;;;;N;;;;;
-2396;DECIMAL SEPARATOR KEY SYMBOL;So;0;ON;;;;;N;;;;;
-2397;PREVIOUS PAGE;So;0;ON;;;;;N;;;;;
-2398;NEXT PAGE;So;0;ON;;;;;N;;;;;
-2399;PRINT SCREEN SYMBOL;So;0;ON;;;;;N;;;;;
-239A;CLEAR SCREEN SYMBOL;So;0;ON;;;;;N;;;;;
-239B;LEFT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;;
-239C;LEFT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;;
-239D;LEFT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;;
-239E;RIGHT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;;
-239F;RIGHT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;;
-23A0;RIGHT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;;
-23A1;LEFT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;;
-23A2;LEFT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;
-23A3;LEFT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;;
-23A4;RIGHT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;;
-23A5;RIGHT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;
-23A6;RIGHT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;;
-23A7;LEFT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;;
-23A8;LEFT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;;
-23A9;LEFT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;;
-23AA;CURLY BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;;
-23AB;RIGHT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;;
-23AC;RIGHT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;;
-23AD;RIGHT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;;
-23AE;INTEGRAL EXTENSION;Sm;0;ON;;;;;N;;;;;
-23AF;HORIZONTAL LINE EXTENSION;Sm;0;ON;;;;;N;;;;;
-23B0;UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;;
-23B1;UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;;
-23B2;SUMMATION TOP;Sm;0;ON;;;;;N;;;;;
-23B3;SUMMATION BOTTOM;Sm;0;ON;;;;;N;;;;;
-23B4;TOP SQUARE BRACKET;So;0;ON;;;;;N;;;;;
-23B5;BOTTOM SQUARE BRACKET;So;0;ON;;;;;N;;;;;
-23B6;BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET;So;0;ON;;;;;N;;;;;
-23B7;RADICAL SYMBOL BOTTOM;So;0;ON;;;;;N;;;;;
-23B8;LEFT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;;
-23B9;RIGHT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;;
-23BA;HORIZONTAL SCAN LINE-1;So;0;ON;;;;;N;;;;;
-23BB;HORIZONTAL SCAN LINE-3;So;0;ON;;;;;N;;;;;
-23BC;HORIZONTAL SCAN LINE-7;So;0;ON;;;;;N;;;;;
-23BD;HORIZONTAL SCAN LINE-9;So;0;ON;;;;;N;;;;;
-23BE;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT;So;0;ON;;;;;N;;;;;
-23BF;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT;So;0;ON;;;;;N;;;;;
-23C0;DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE;So;0;ON;;;;;N;;;;;
-23C1;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;;
-23C2;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;;
-23C3;DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;
-23C4;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;
-23C5;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;;
-23C6;DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE;So;0;ON;;;;;N;;;;;
-23C7;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;;
-23C8;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;;
-23C9;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;;;;;
-23CA;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;;;;;
-23CB;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT;So;0;ON;;;;;N;;;;;
-23CC;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT;So;0;ON;;;;;N;;;;;
-23CD;SQUARE FOOT;So;0;ON;;;;;N;;;;;
-23CE;RETURN SYMBOL;So;0;ON;;;;;N;;;;;
-23CF;EJECT SYMBOL;So;0;ON;;;;;N;;;;;
-23D0;VERTICAL LINE EXTENSION;So;0;ON;;;;;N;;;;;
-23D1;METRICAL BREVE;So;0;ON;;;;;N;;;;;
-23D2;METRICAL LONG OVER SHORT;So;0;ON;;;;;N;;;;;
-23D3;METRICAL SHORT OVER LONG;So;0;ON;;;;;N;;;;;
-23D4;METRICAL LONG OVER TWO SHORTS;So;0;ON;;;;;N;;;;;
-23D5;METRICAL TWO SHORTS OVER LONG;So;0;ON;;;;;N;;;;;
-23D6;METRICAL TWO SHORTS JOINED;So;0;ON;;;;;N;;;;;
-23D7;METRICAL TRISEME;So;0;ON;;;;;N;;;;;
-23D8;METRICAL TETRASEME;So;0;ON;;;;;N;;;;;
-23D9;METRICAL PENTASEME;So;0;ON;;;;;N;;;;;
-23DA;EARTH GROUND;So;0;ON;;;;;N;;;;;
-23DB;FUSE;So;0;ON;;;;;N;;;;;
-23DC;TOP PARENTHESIS;Sm;0;ON;;;;;N;;;;;
-23DD;BOTTOM PARENTHESIS;Sm;0;ON;;;;;N;;;;;
-23DE;TOP CURLY BRACKET;Sm;0;ON;;;;;N;;;;;
-23DF;BOTTOM CURLY BRACKET;Sm;0;ON;;;;;N;;;;;
-23E0;TOP TORTOISE SHELL BRACKET;Sm;0;ON;;;;;N;;;;;
-23E1;BOTTOM TORTOISE SHELL BRACKET;Sm;0;ON;;;;;N;;;;;
-23E2;WHITE TRAPEZIUM;So;0;ON;;;;;N;;;;;
-23E3;BENZENE RING WITH CIRCLE;So;0;ON;;;;;N;;;;;
-23E4;STRAIGHTNESS;So;0;ON;;;;;N;;;;;
-23E5;FLATNESS;So;0;ON;;;;;N;;;;;
-23E6;AC CURRENT;So;0;ON;;;;;N;;;;;
-23E7;ELECTRICAL INTERSECTION;So;0;ON;;;;;N;;;;;
-23E8;DECIMAL EXPONENT SYMBOL;So;0;ON;;;;;N;;;;;
-23E9;BLACK RIGHT-POINTING DOUBLE TRIANGLE;So;0;ON;;;;;N;;;;;
-23EA;BLACK LEFT-POINTING DOUBLE TRIANGLE;So;0;ON;;;;;N;;;;;
-23EB;BLACK UP-POINTING DOUBLE TRIANGLE;So;0;ON;;;;;N;;;;;
-23EC;BLACK DOWN-POINTING DOUBLE TRIANGLE;So;0;ON;;;;;N;;;;;
-23ED;BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR;So;0;ON;;;;;N;;;;;
-23EE;BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR;So;0;ON;;;;;N;;;;;
-23EF;BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR;So;0;ON;;;;;N;;;;;
-23F0;ALARM CLOCK;So;0;ON;;;;;N;;;;;
-23F1;STOPWATCH;So;0;ON;;;;;N;;;;;
-23F2;TIMER CLOCK;So;0;ON;;;;;N;;;;;
-23F3;HOURGLASS WITH FLOWING SAND;So;0;ON;;;;;N;;;;;
-2400;SYMBOL FOR NULL;So;0;ON;;;;;N;GRAPHIC FOR NULL;;;;
-2401;SYMBOL FOR START OF HEADING;So;0;ON;;;;;N;GRAPHIC FOR START OF HEADING;;;;
-2402;SYMBOL FOR START OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR START OF TEXT;;;;
-2403;SYMBOL FOR END OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR END OF TEXT;;;;
-2404;SYMBOL FOR END OF TRANSMISSION;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION;;;;
-2405;SYMBOL FOR ENQUIRY;So;0;ON;;;;;N;GRAPHIC FOR ENQUIRY;;;;
-2406;SYMBOL FOR ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR ACKNOWLEDGE;;;;
-2407;SYMBOL FOR BELL;So;0;ON;;;;;N;GRAPHIC FOR BELL;;;;
-2408;SYMBOL FOR BACKSPACE;So;0;ON;;;;;N;GRAPHIC FOR BACKSPACE;;;;
-2409;SYMBOL FOR HORIZONTAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR HORIZONTAL TABULATION;;;;
-240A;SYMBOL FOR LINE FEED;So;0;ON;;;;;N;GRAPHIC FOR LINE FEED;;;;
-240B;SYMBOL FOR VERTICAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR VERTICAL TABULATION;;;;
-240C;SYMBOL FOR FORM FEED;So;0;ON;;;;;N;GRAPHIC FOR FORM FEED;;;;
-240D;SYMBOL FOR CARRIAGE RETURN;So;0;ON;;;;;N;GRAPHIC FOR CARRIAGE RETURN;;;;
-240E;SYMBOL FOR SHIFT OUT;So;0;ON;;;;;N;GRAPHIC FOR SHIFT OUT;;;;
-240F;SYMBOL FOR SHIFT IN;So;0;ON;;;;;N;GRAPHIC FOR SHIFT IN;;;;
-2410;SYMBOL FOR DATA LINK ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR DATA LINK ESCAPE;;;;
-2411;SYMBOL FOR DEVICE CONTROL ONE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL ONE;;;;
-2412;SYMBOL FOR DEVICE CONTROL TWO;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL TWO;;;;
-2413;SYMBOL FOR DEVICE CONTROL THREE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL THREE;;;;
-2414;SYMBOL FOR DEVICE CONTROL FOUR;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL FOUR;;;;
-2415;SYMBOL FOR NEGATIVE ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR NEGATIVE ACKNOWLEDGE;;;;
-2416;SYMBOL FOR SYNCHRONOUS IDLE;So;0;ON;;;;;N;GRAPHIC FOR SYNCHRONOUS IDLE;;;;
-2417;SYMBOL FOR END OF TRANSMISSION BLOCK;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION BLOCK;;;;
-2418;SYMBOL FOR CANCEL;So;0;ON;;;;;N;GRAPHIC FOR CANCEL;;;;
-2419;SYMBOL FOR END OF MEDIUM;So;0;ON;;;;;N;GRAPHIC FOR END OF MEDIUM;;;;
-241A;SYMBOL FOR SUBSTITUTE;So;0;ON;;;;;N;GRAPHIC FOR SUBSTITUTE;;;;
-241B;SYMBOL FOR ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR ESCAPE;;;;
-241C;SYMBOL FOR FILE SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR FILE SEPARATOR;;;;
-241D;SYMBOL FOR GROUP SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR GROUP SEPARATOR;;;;
-241E;SYMBOL FOR RECORD SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR RECORD SEPARATOR;;;;
-241F;SYMBOL FOR UNIT SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR UNIT SEPARATOR;;;;
-2420;SYMBOL FOR SPACE;So;0;ON;;;;;N;GRAPHIC FOR SPACE;;;;
-2421;SYMBOL FOR DELETE;So;0;ON;;;;;N;GRAPHIC FOR DELETE;;;;
-2422;BLANK SYMBOL;So;0;ON;;;;;N;BLANK;;;;
-2423;OPEN BOX;So;0;ON;;;;;N;;;;;
-2424;SYMBOL FOR NEWLINE;So;0;ON;;;;;N;GRAPHIC FOR NEWLINE;;;;
-2425;SYMBOL FOR DELETE FORM TWO;So;0;ON;;;;;N;;;;;
-2426;SYMBOL FOR SUBSTITUTE FORM TWO;So;0;ON;;;;;N;;;;;
-2440;OCR HOOK;So;0;ON;;;;;N;;;;;
-2441;OCR CHAIR;So;0;ON;;;;;N;;;;;
-2442;OCR FORK;So;0;ON;;;;;N;;;;;
-2443;OCR INVERTED FORK;So;0;ON;;;;;N;;;;;
-2444;OCR BELT BUCKLE;So;0;ON;;;;;N;;;;;
-2445;OCR BOW TIE;So;0;ON;;;;;N;;;;;
-2446;OCR BRANCH BANK IDENTIFICATION;So;0;ON;;;;;N;;;;;
-2447;OCR AMOUNT OF CHECK;So;0;ON;;;;;N;;;;;
-2448;OCR DASH;So;0;ON;;;;;N;;;;;
-2449;OCR CUSTOMER ACCOUNT NUMBER;So;0;ON;;;;;N;;;;;
-244A;OCR DOUBLE BACKSLASH;So;0;ON;;;;;N;;;;;
-2460;CIRCLED DIGIT ONE;No;0;ON;<circle> 0031;;1;1;N;;;;;
-2461;CIRCLED DIGIT TWO;No;0;ON;<circle> 0032;;2;2;N;;;;;
-2462;CIRCLED DIGIT THREE;No;0;ON;<circle> 0033;;3;3;N;;;;;
-2463;CIRCLED DIGIT FOUR;No;0;ON;<circle> 0034;;4;4;N;;;;;
-2464;CIRCLED DIGIT FIVE;No;0;ON;<circle> 0035;;5;5;N;;;;;
-2465;CIRCLED DIGIT SIX;No;0;ON;<circle> 0036;;6;6;N;;;;;
-2466;CIRCLED DIGIT SEVEN;No;0;ON;<circle> 0037;;7;7;N;;;;;
-2467;CIRCLED DIGIT EIGHT;No;0;ON;<circle> 0038;;8;8;N;;;;;
-2468;CIRCLED DIGIT NINE;No;0;ON;<circle> 0039;;9;9;N;;;;;
-2469;CIRCLED NUMBER TEN;No;0;ON;<circle> 0031 0030;;;10;N;;;;;
-246A;CIRCLED NUMBER ELEVEN;No;0;ON;<circle> 0031 0031;;;11;N;;;;;
-246B;CIRCLED NUMBER TWELVE;No;0;ON;<circle> 0031 0032;;;12;N;;;;;
-246C;CIRCLED NUMBER THIRTEEN;No;0;ON;<circle> 0031 0033;;;13;N;;;;;
-246D;CIRCLED NUMBER FOURTEEN;No;0;ON;<circle> 0031 0034;;;14;N;;;;;
-246E;CIRCLED NUMBER FIFTEEN;No;0;ON;<circle> 0031 0035;;;15;N;;;;;
-246F;CIRCLED NUMBER SIXTEEN;No;0;ON;<circle> 0031 0036;;;16;N;;;;;
-2470;CIRCLED NUMBER SEVENTEEN;No;0;ON;<circle> 0031 0037;;;17;N;;;;;
-2471;CIRCLED NUMBER EIGHTEEN;No;0;ON;<circle> 0031 0038;;;18;N;;;;;
-2472;CIRCLED NUMBER NINETEEN;No;0;ON;<circle> 0031 0039;;;19;N;;;;;
-2473;CIRCLED NUMBER TWENTY;No;0;ON;<circle> 0032 0030;;;20;N;;;;;
-2474;PARENTHESIZED DIGIT ONE;No;0;ON;<compat> 0028 0031 0029;;1;1;N;;;;;
-2475;PARENTHESIZED DIGIT TWO;No;0;ON;<compat> 0028 0032 0029;;2;2;N;;;;;
-2476;PARENTHESIZED DIGIT THREE;No;0;ON;<compat> 0028 0033 0029;;3;3;N;;;;;
-2477;PARENTHESIZED DIGIT FOUR;No;0;ON;<compat> 0028 0034 0029;;4;4;N;;;;;
-2478;PARENTHESIZED DIGIT FIVE;No;0;ON;<compat> 0028 0035 0029;;5;5;N;;;;;
-2479;PARENTHESIZED DIGIT SIX;No;0;ON;<compat> 0028 0036 0029;;6;6;N;;;;;
-247A;PARENTHESIZED DIGIT SEVEN;No;0;ON;<compat> 0028 0037 0029;;7;7;N;;;;;
-247B;PARENTHESIZED DIGIT EIGHT;No;0;ON;<compat> 0028 0038 0029;;8;8;N;;;;;
-247C;PARENTHESIZED DIGIT NINE;No;0;ON;<compat> 0028 0039 0029;;9;9;N;;;;;
-247D;PARENTHESIZED NUMBER TEN;No;0;ON;<compat> 0028 0031 0030 0029;;;10;N;;;;;
-247E;PARENTHESIZED NUMBER ELEVEN;No;0;ON;<compat> 0028 0031 0031 0029;;;11;N;;;;;
-247F;PARENTHESIZED NUMBER TWELVE;No;0;ON;<compat> 0028 0031 0032 0029;;;12;N;;;;;
-2480;PARENTHESIZED NUMBER THIRTEEN;No;0;ON;<compat> 0028 0031 0033 0029;;;13;N;;;;;
-2481;PARENTHESIZED NUMBER FOURTEEN;No;0;ON;<compat> 0028 0031 0034 0029;;;14;N;;;;;
-2482;PARENTHESIZED NUMBER FIFTEEN;No;0;ON;<compat> 0028 0031 0035 0029;;;15;N;;;;;
-2483;PARENTHESIZED NUMBER SIXTEEN;No;0;ON;<compat> 0028 0031 0036 0029;;;16;N;;;;;
-2484;PARENTHESIZED NUMBER SEVENTEEN;No;0;ON;<compat> 0028 0031 0037 0029;;;17;N;;;;;
-2485;PARENTHESIZED NUMBER EIGHTEEN;No;0;ON;<compat> 0028 0031 0038 0029;;;18;N;;;;;
-2486;PARENTHESIZED NUMBER NINETEEN;No;0;ON;<compat> 0028 0031 0039 0029;;;19;N;;;;;
-2487;PARENTHESIZED NUMBER TWENTY;No;0;ON;<compat> 0028 0032 0030 0029;;;20;N;;;;;
-2488;DIGIT ONE FULL STOP;No;0;EN;<compat> 0031 002E;;1;1;N;DIGIT ONE PERIOD;;;;
-2489;DIGIT TWO FULL STOP;No;0;EN;<compat> 0032 002E;;2;2;N;DIGIT TWO PERIOD;;;;
-248A;DIGIT THREE FULL STOP;No;0;EN;<compat> 0033 002E;;3;3;N;DIGIT THREE PERIOD;;;;
-248B;DIGIT FOUR FULL STOP;No;0;EN;<compat> 0034 002E;;4;4;N;DIGIT FOUR PERIOD;;;;
-248C;DIGIT FIVE FULL STOP;No;0;EN;<compat> 0035 002E;;5;5;N;DIGIT FIVE PERIOD;;;;
-248D;DIGIT SIX FULL STOP;No;0;EN;<compat> 0036 002E;;6;6;N;DIGIT SIX PERIOD;;;;
-248E;DIGIT SEVEN FULL STOP;No;0;EN;<compat> 0037 002E;;7;7;N;DIGIT SEVEN PERIOD;;;;
-248F;DIGIT EIGHT FULL STOP;No;0;EN;<compat> 0038 002E;;8;8;N;DIGIT EIGHT PERIOD;;;;
-2490;DIGIT NINE FULL STOP;No;0;EN;<compat> 0039 002E;;9;9;N;DIGIT NINE PERIOD;;;;
-2491;NUMBER TEN FULL STOP;No;0;EN;<compat> 0031 0030 002E;;;10;N;NUMBER TEN PERIOD;;;;
-2492;NUMBER ELEVEN FULL STOP;No;0;EN;<compat> 0031 0031 002E;;;11;N;NUMBER ELEVEN PERIOD;;;;
-2493;NUMBER TWELVE FULL STOP;No;0;EN;<compat> 0031 0032 002E;;;12;N;NUMBER TWELVE PERIOD;;;;
-2494;NUMBER THIRTEEN FULL STOP;No;0;EN;<compat> 0031 0033 002E;;;13;N;NUMBER THIRTEEN PERIOD;;;;
-2495;NUMBER FOURTEEN FULL STOP;No;0;EN;<compat> 0031 0034 002E;;;14;N;NUMBER FOURTEEN PERIOD;;;;
-2496;NUMBER FIFTEEN FULL STOP;No;0;EN;<compat> 0031 0035 002E;;;15;N;NUMBER FIFTEEN PERIOD;;;;
-2497;NUMBER SIXTEEN FULL STOP;No;0;EN;<compat> 0031 0036 002E;;;16;N;NUMBER SIXTEEN PERIOD;;;;
-2498;NUMBER SEVENTEEN FULL STOP;No;0;EN;<compat> 0031 0037 002E;;;17;N;NUMBER SEVENTEEN PERIOD;;;;
-2499;NUMBER EIGHTEEN FULL STOP;No;0;EN;<compat> 0031 0038 002E;;;18;N;NUMBER EIGHTEEN PERIOD;;;;
-249A;NUMBER NINETEEN FULL STOP;No;0;EN;<compat> 0031 0039 002E;;;19;N;NUMBER NINETEEN PERIOD;;;;
-249B;NUMBER TWENTY FULL STOP;No;0;EN;<compat> 0032 0030 002E;;;20;N;NUMBER TWENTY PERIOD;;;;
-249C;PARENTHESIZED LATIN SMALL LETTER A;So;0;L;<compat> 0028 0061 0029;;;;N;;;;;
-249D;PARENTHESIZED LATIN SMALL LETTER B;So;0;L;<compat> 0028 0062 0029;;;;N;;;;;
-249E;PARENTHESIZED LATIN SMALL LETTER C;So;0;L;<compat> 0028 0063 0029;;;;N;;;;;
-249F;PARENTHESIZED LATIN SMALL LETTER D;So;0;L;<compat> 0028 0064 0029;;;;N;;;;;
-24A0;PARENTHESIZED LATIN SMALL LETTER E;So;0;L;<compat> 0028 0065 0029;;;;N;;;;;
-24A1;PARENTHESIZED LATIN SMALL LETTER F;So;0;L;<compat> 0028 0066 0029;;;;N;;;;;
-24A2;PARENTHESIZED LATIN SMALL LETTER G;So;0;L;<compat> 0028 0067 0029;;;;N;;;;;
-24A3;PARENTHESIZED LATIN SMALL LETTER H;So;0;L;<compat> 0028 0068 0029;;;;N;;;;;
-24A4;PARENTHESIZED LATIN SMALL LETTER I;So;0;L;<compat> 0028 0069 0029;;;;N;;;;;
-24A5;PARENTHESIZED LATIN SMALL LETTER J;So;0;L;<compat> 0028 006A 0029;;;;N;;;;;
-24A6;PARENTHESIZED LATIN SMALL LETTER K;So;0;L;<compat> 0028 006B 0029;;;;N;;;;;
-24A7;PARENTHESIZED LATIN SMALL LETTER L;So;0;L;<compat> 0028 006C 0029;;;;N;;;;;
-24A8;PARENTHESIZED LATIN SMALL LETTER M;So;0;L;<compat> 0028 006D 0029;;;;N;;;;;
-24A9;PARENTHESIZED LATIN SMALL LETTER N;So;0;L;<compat> 0028 006E 0029;;;;N;;;;;
-24AA;PARENTHESIZED LATIN SMALL LETTER O;So;0;L;<compat> 0028 006F 0029;;;;N;;;;;
-24AB;PARENTHESIZED LATIN SMALL LETTER P;So;0;L;<compat> 0028 0070 0029;;;;N;;;;;
-24AC;PARENTHESIZED LATIN SMALL LETTER Q;So;0;L;<compat> 0028 0071 0029;;;;N;;;;;
-24AD;PARENTHESIZED LATIN SMALL LETTER R;So;0;L;<compat> 0028 0072 0029;;;;N;;;;;
-24AE;PARENTHESIZED LATIN SMALL LETTER S;So;0;L;<compat> 0028 0073 0029;;;;N;;;;;
-24AF;PARENTHESIZED LATIN SMALL LETTER T;So;0;L;<compat> 0028 0074 0029;;;;N;;;;;
-24B0;PARENTHESIZED LATIN SMALL LETTER U;So;0;L;<compat> 0028 0075 0029;;;;N;;;;;
-24B1;PARENTHESIZED LATIN SMALL LETTER V;So;0;L;<compat> 0028 0076 0029;;;;N;;;;;
-24B2;PARENTHESIZED LATIN SMALL LETTER W;So;0;L;<compat> 0028 0077 0029;;;;N;;;;;
-24B3;PARENTHESIZED LATIN SMALL LETTER X;So;0;L;<compat> 0028 0078 0029;;;;N;;;;;
-24B4;PARENTHESIZED LATIN SMALL LETTER Y;So;0;L;<compat> 0028 0079 0029;;;;N;;;;;
-24B5;PARENTHESIZED LATIN SMALL LETTER Z;So;0;L;<compat> 0028 007A 0029;;;;N;;;;;
-24B6;CIRCLED LATIN CAPITAL LETTER A;So;0;L;<circle> 0041;;;;N;;;;24D0;
-24B7;CIRCLED LATIN CAPITAL LETTER B;So;0;L;<circle> 0042;;;;N;;;;24D1;
-24B8;CIRCLED LATIN CAPITAL LETTER C;So;0;L;<circle> 0043;;;;N;;;;24D2;
-24B9;CIRCLED LATIN CAPITAL LETTER D;So;0;L;<circle> 0044;;;;N;;;;24D3;
-24BA;CIRCLED LATIN CAPITAL LETTER E;So;0;L;<circle> 0045;;;;N;;;;24D4;
-24BB;CIRCLED LATIN CAPITAL LETTER F;So;0;L;<circle> 0046;;;;N;;;;24D5;
-24BC;CIRCLED LATIN CAPITAL LETTER G;So;0;L;<circle> 0047;;;;N;;;;24D6;
-24BD;CIRCLED LATIN CAPITAL LETTER H;So;0;L;<circle> 0048;;;;N;;;;24D7;
-24BE;CIRCLED LATIN CAPITAL LETTER I;So;0;L;<circle> 0049;;;;N;;;;24D8;
-24BF;CIRCLED LATIN CAPITAL LETTER J;So;0;L;<circle> 004A;;;;N;;;;24D9;
-24C0;CIRCLED LATIN CAPITAL LETTER K;So;0;L;<circle> 004B;;;;N;;;;24DA;
-24C1;CIRCLED LATIN CAPITAL LETTER L;So;0;L;<circle> 004C;;;;N;;;;24DB;
-24C2;CIRCLED LATIN CAPITAL LETTER M;So;0;L;<circle> 004D;;;;N;;;;24DC;
-24C3;CIRCLED LATIN CAPITAL LETTER N;So;0;L;<circle> 004E;;;;N;;;;24DD;
-24C4;CIRCLED LATIN CAPITAL LETTER O;So;0;L;<circle> 004F;;;;N;;;;24DE;
-24C5;CIRCLED LATIN CAPITAL LETTER P;So;0;L;<circle> 0050;;;;N;;;;24DF;
-24C6;CIRCLED LATIN CAPITAL LETTER Q;So;0;L;<circle> 0051;;;;N;;;;24E0;
-24C7;CIRCLED LATIN CAPITAL LETTER R;So;0;L;<circle> 0052;;;;N;;;;24E1;
-24C8;CIRCLED LATIN CAPITAL LETTER S;So;0;L;<circle> 0053;;;;N;;;;24E2;
-24C9;CIRCLED LATIN CAPITAL LETTER T;So;0;L;<circle> 0054;;;;N;;;;24E3;
-24CA;CIRCLED LATIN CAPITAL LETTER U;So;0;L;<circle> 0055;;;;N;;;;24E4;
-24CB;CIRCLED LATIN CAPITAL LETTER V;So;0;L;<circle> 0056;;;;N;;;;24E5;
-24CC;CIRCLED LATIN CAPITAL LETTER W;So;0;L;<circle> 0057;;;;N;;;;24E6;
-24CD;CIRCLED LATIN CAPITAL LETTER X;So;0;L;<circle> 0058;;;;N;;;;24E7;
-24CE;CIRCLED LATIN CAPITAL LETTER Y;So;0;L;<circle> 0059;;;;N;;;;24E8;
-24CF;CIRCLED LATIN CAPITAL LETTER Z;So;0;L;<circle> 005A;;;;N;;;;24E9;
-24D0;CIRCLED LATIN SMALL LETTER A;So;0;L;<circle> 0061;;;;N;;;24B6;;24B6
-24D1;CIRCLED LATIN SMALL LETTER B;So;0;L;<circle> 0062;;;;N;;;24B7;;24B7
-24D2;CIRCLED LATIN SMALL LETTER C;So;0;L;<circle> 0063;;;;N;;;24B8;;24B8
-24D3;CIRCLED LATIN SMALL LETTER D;So;0;L;<circle> 0064;;;;N;;;24B9;;24B9
-24D4;CIRCLED LATIN SMALL LETTER E;So;0;L;<circle> 0065;;;;N;;;24BA;;24BA
-24D5;CIRCLED LATIN SMALL LETTER F;So;0;L;<circle> 0066;;;;N;;;24BB;;24BB
-24D6;CIRCLED LATIN SMALL LETTER G;So;0;L;<circle> 0067;;;;N;;;24BC;;24BC
-24D7;CIRCLED LATIN SMALL LETTER H;So;0;L;<circle> 0068;;;;N;;;24BD;;24BD
-24D8;CIRCLED LATIN SMALL LETTER I;So;0;L;<circle> 0069;;;;N;;;24BE;;24BE
-24D9;CIRCLED LATIN SMALL LETTER J;So;0;L;<circle> 006A;;;;N;;;24BF;;24BF
-24DA;CIRCLED LATIN SMALL LETTER K;So;0;L;<circle> 006B;;;;N;;;24C0;;24C0
-24DB;CIRCLED LATIN SMALL LETTER L;So;0;L;<circle> 006C;;;;N;;;24C1;;24C1
-24DC;CIRCLED LATIN SMALL LETTER M;So;0;L;<circle> 006D;;;;N;;;24C2;;24C2
-24DD;CIRCLED LATIN SMALL LETTER N;So;0;L;<circle> 006E;;;;N;;;24C3;;24C3
-24DE;CIRCLED LATIN SMALL LETTER O;So;0;L;<circle> 006F;;;;N;;;24C4;;24C4
-24DF;CIRCLED LATIN SMALL LETTER P;So;0;L;<circle> 0070;;;;N;;;24C5;;24C5
-24E0;CIRCLED LATIN SMALL LETTER Q;So;0;L;<circle> 0071;;;;N;;;24C6;;24C6
-24E1;CIRCLED LATIN SMALL LETTER R;So;0;L;<circle> 0072;;;;N;;;24C7;;24C7
-24E2;CIRCLED LATIN SMALL LETTER S;So;0;L;<circle> 0073;;;;N;;;24C8;;24C8
-24E3;CIRCLED LATIN SMALL LETTER T;So;0;L;<circle> 0074;;;;N;;;24C9;;24C9
-24E4;CIRCLED LATIN SMALL LETTER U;So;0;L;<circle> 0075;;;;N;;;24CA;;24CA
-24E5;CIRCLED LATIN SMALL LETTER V;So;0;L;<circle> 0076;;;;N;;;24CB;;24CB
-24E6;CIRCLED LATIN SMALL LETTER W;So;0;L;<circle> 0077;;;;N;;;24CC;;24CC
-24E7;CIRCLED LATIN SMALL LETTER X;So;0;L;<circle> 0078;;;;N;;;24CD;;24CD
-24E8;CIRCLED LATIN SMALL LETTER Y;So;0;L;<circle> 0079;;;;N;;;24CE;;24CE
-24E9;CIRCLED LATIN SMALL LETTER Z;So;0;L;<circle> 007A;;;;N;;;24CF;;24CF
-24EA;CIRCLED DIGIT ZERO;No;0;ON;<circle> 0030;;0;0;N;;;;;
-24EB;NEGATIVE CIRCLED NUMBER ELEVEN;No;0;ON;;;;11;N;;;;;
-24EC;NEGATIVE CIRCLED NUMBER TWELVE;No;0;ON;;;;12;N;;;;;
-24ED;NEGATIVE CIRCLED NUMBER THIRTEEN;No;0;ON;;;;13;N;;;;;
-24EE;NEGATIVE CIRCLED NUMBER FOURTEEN;No;0;ON;;;;14;N;;;;;
-24EF;NEGATIVE CIRCLED NUMBER FIFTEEN;No;0;ON;;;;15;N;;;;;
-24F0;NEGATIVE CIRCLED NUMBER SIXTEEN;No;0;ON;;;;16;N;;;;;
-24F1;NEGATIVE CIRCLED NUMBER SEVENTEEN;No;0;ON;;;;17;N;;;;;
-24F2;NEGATIVE CIRCLED NUMBER EIGHTEEN;No;0;ON;;;;18;N;;;;;
-24F3;NEGATIVE CIRCLED NUMBER NINETEEN;No;0;ON;;;;19;N;;;;;
-24F4;NEGATIVE CIRCLED NUMBER TWENTY;No;0;ON;;;;20;N;;;;;
-24F5;DOUBLE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;;;;;
-24F6;DOUBLE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;;;;;
-24F7;DOUBLE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;;;;;
-24F8;DOUBLE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;;;;;
-24F9;DOUBLE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;;;;;
-24FA;DOUBLE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;;;;;
-24FB;DOUBLE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;;;;;
-24FC;DOUBLE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;;;;;
-24FD;DOUBLE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;;;;;
-24FE;DOUBLE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;;;;;
-24FF;NEGATIVE CIRCLED DIGIT ZERO;No;0;ON;;;0;0;N;;;;;
-2500;BOX DRAWINGS LIGHT HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT HORIZONTAL;;;;
-2501;BOX DRAWINGS HEAVY HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY HORIZONTAL;;;;
-2502;BOX DRAWINGS LIGHT VERTICAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL;;;;
-2503;BOX DRAWINGS HEAVY VERTICAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL;;;;
-2504;BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH HORIZONTAL;;;;
-2505;BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH HORIZONTAL;;;;
-2506;BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH VERTICAL;;;;
-2507;BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH VERTICAL;;;;
-2508;BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH HORIZONTAL;;;;
-2509;BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH HORIZONTAL;;;;
-250A;BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH VERTICAL;;;;
-250B;BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH VERTICAL;;;;
-250C;BOX DRAWINGS LIGHT DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND RIGHT;;;;
-250D;BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT HEAVY;;;;
-250E;BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT LIGHT;;;;
-250F;BOX DRAWINGS HEAVY DOWN AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND RIGHT;;;;
-2510;BOX DRAWINGS LIGHT DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND LEFT;;;;
-2511;BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT HEAVY;;;;
-2512;BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT LIGHT;;;;
-2513;BOX DRAWINGS HEAVY DOWN AND LEFT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND LEFT;;;;
-2514;BOX DRAWINGS LIGHT UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT UP AND RIGHT;;;;
-2515;BOX DRAWINGS UP LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT HEAVY;;;;
-2516;BOX DRAWINGS UP HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT LIGHT;;;;
-2517;BOX DRAWINGS HEAVY UP AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY UP AND RIGHT;;;;
-2518;BOX DRAWINGS LIGHT UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT UP AND LEFT;;;;
-2519;BOX DRAWINGS UP LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT HEAVY;;;;
-251A;BOX DRAWINGS UP HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT LIGHT;;;;
-251B;BOX DRAWINGS HEAVY UP AND LEFT;So;0;ON;;;;;N;FORMS HEAVY UP AND LEFT;;;;
-251C;BOX DRAWINGS LIGHT VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND RIGHT;;;;
-251D;BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND RIGHT HEAVY;;;;
-251E;BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT DOWN LIGHT;;;;
-251F;BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT UP LIGHT;;;;
-2520;BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND RIGHT LIGHT;;;;
-2521;BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT UP HEAVY;;;;
-2522;BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT DOWN HEAVY;;;;
-2523;BOX DRAWINGS HEAVY VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND RIGHT;;;;
-2524;BOX DRAWINGS LIGHT VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND LEFT;;;;
-2525;BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND LEFT HEAVY;;;;
-2526;BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT DOWN LIGHT;;;;
-2527;BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT UP LIGHT;;;;
-2528;BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND LEFT LIGHT;;;;
-2529;BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT UP HEAVY;;;;
-252A;BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT DOWN HEAVY;;;;
-252B;BOX DRAWINGS HEAVY VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND LEFT;;;;
-252C;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOWN AND HORIZONTAL;;;;
-252D;BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT DOWN LIGHT;;;;
-252E;BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT DOWN LIGHT;;;;
-252F;BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND HORIZONTAL HEAVY;;;;
-2530;BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND HORIZONTAL LIGHT;;;;
-2531;BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT DOWN HEAVY;;;;
-2532;BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT DOWN HEAVY;;;;
-2533;BOX DRAWINGS HEAVY DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOWN AND HORIZONTAL;;;;
-2534;BOX DRAWINGS LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT UP AND HORIZONTAL;;;;
-2535;BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT UP LIGHT;;;;
-2536;BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT UP LIGHT;;;;
-2537;BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND HORIZONTAL HEAVY;;;;
-2538;BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND HORIZONTAL LIGHT;;;;
-2539;BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT UP HEAVY;;;;
-253A;BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT UP HEAVY;;;;
-253B;BOX DRAWINGS HEAVY UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY UP AND HORIZONTAL;;;;
-253C;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND HORIZONTAL;;;;
-253D;BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT VERTICAL LIGHT;;;;
-253E;BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT VERTICAL LIGHT;;;;
-253F;BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND HORIZONTAL HEAVY;;;;
-2540;BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND DOWN HORIZONTAL LIGHT;;;;
-2541;BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND UP HORIZONTAL LIGHT;;;;
-2542;BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND HORIZONTAL LIGHT;;;;
-2543;BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT UP HEAVY AND RIGHT DOWN LIGHT;;;;
-2544;BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT UP HEAVY AND LEFT DOWN LIGHT;;;;
-2545;BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT DOWN HEAVY AND RIGHT UP LIGHT;;;;
-2546;BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT DOWN HEAVY AND LEFT UP LIGHT;;;;
-2547;BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND UP HORIZONTAL HEAVY;;;;
-2548;BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND DOWN HORIZONTAL HEAVY;;;;
-2549;BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT VERTICAL HEAVY;;;;
-254A;BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT VERTICAL HEAVY;;;;
-254B;BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND HORIZONTAL;;;;
-254C;BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH HORIZONTAL;;;;
-254D;BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH HORIZONTAL;;;;
-254E;BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH VERTICAL;;;;
-254F;BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH VERTICAL;;;;
-2550;BOX DRAWINGS DOUBLE HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE HORIZONTAL;;;;
-2551;BOX DRAWINGS DOUBLE VERTICAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL;;;;
-2552;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND RIGHT DOUBLE;;;;
-2553;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND RIGHT SINGLE;;;;
-2554;BOX DRAWINGS DOUBLE DOWN AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND RIGHT;;;;
-2555;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND LEFT DOUBLE;;;;
-2556;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND LEFT SINGLE;;;;
-2557;BOX DRAWINGS DOUBLE DOWN AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND LEFT;;;;
-2558;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND RIGHT DOUBLE;;;;
-2559;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND RIGHT SINGLE;;;;
-255A;BOX DRAWINGS DOUBLE UP AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE UP AND RIGHT;;;;
-255B;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND LEFT DOUBLE;;;;
-255C;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND LEFT SINGLE;;;;
-255D;BOX DRAWINGS DOUBLE UP AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE UP AND LEFT;;;;
-255E;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND RIGHT DOUBLE;;;;
-255F;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND RIGHT SINGLE;;;;
-2560;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND RIGHT;;;;
-2561;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND LEFT DOUBLE;;;;
-2562;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND LEFT SINGLE;;;;
-2563;BOX DRAWINGS DOUBLE VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND LEFT;;;;
-2564;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND HORIZONTAL DOUBLE;;;;
-2565;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND HORIZONTAL SINGLE;;;;
-2566;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND HORIZONTAL;;;;
-2567;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND HORIZONTAL DOUBLE;;;;
-2568;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND HORIZONTAL SINGLE;;;;
-2569;BOX DRAWINGS DOUBLE UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE UP AND HORIZONTAL;;;;
-256A;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND HORIZONTAL DOUBLE;;;;
-256B;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND HORIZONTAL SINGLE;;;;
-256C;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND HORIZONTAL;;;;
-256D;BOX DRAWINGS LIGHT ARC DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND RIGHT;;;;
-256E;BOX DRAWINGS LIGHT ARC DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND LEFT;;;;
-256F;BOX DRAWINGS LIGHT ARC UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND LEFT;;;;
-2570;BOX DRAWINGS LIGHT ARC UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND RIGHT;;;;
-2571;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;;;;
-2572;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;;;;
-2573;BOX DRAWINGS LIGHT DIAGONAL CROSS;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL CROSS;;;;
-2574;BOX DRAWINGS LIGHT LEFT;So;0;ON;;;;;N;FORMS LIGHT LEFT;;;;
-2575;BOX DRAWINGS LIGHT UP;So;0;ON;;;;;N;FORMS LIGHT UP;;;;
-2576;BOX DRAWINGS LIGHT RIGHT;So;0;ON;;;;;N;FORMS LIGHT RIGHT;;;;
-2577;BOX DRAWINGS LIGHT DOWN;So;0;ON;;;;;N;FORMS LIGHT DOWN;;;;
-2578;BOX DRAWINGS HEAVY LEFT;So;0;ON;;;;;N;FORMS HEAVY LEFT;;;;
-2579;BOX DRAWINGS HEAVY UP;So;0;ON;;;;;N;FORMS HEAVY UP;;;;
-257A;BOX DRAWINGS HEAVY RIGHT;So;0;ON;;;;;N;FORMS HEAVY RIGHT;;;;
-257B;BOX DRAWINGS HEAVY DOWN;So;0;ON;;;;;N;FORMS HEAVY DOWN;;;;
-257C;BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT;So;0;ON;;;;;N;FORMS LIGHT LEFT AND HEAVY RIGHT;;;;
-257D;BOX DRAWINGS LIGHT UP AND HEAVY DOWN;So;0;ON;;;;;N;FORMS LIGHT UP AND HEAVY DOWN;;;;
-257E;BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT;So;0;ON;;;;;N;FORMS HEAVY LEFT AND LIGHT RIGHT;;;;
-257F;BOX DRAWINGS HEAVY UP AND LIGHT DOWN;So;0;ON;;;;;N;FORMS HEAVY UP AND LIGHT DOWN;;;;
-2580;UPPER HALF BLOCK;So;0;ON;;;;;N;;;;;
-2581;LOWER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
-2582;LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
-2583;LOWER THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
-2584;LOWER HALF BLOCK;So;0;ON;;;;;N;;;;;
-2585;LOWER FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
-2586;LOWER THREE QUARTERS BLOCK;So;0;ON;;;;;N;LOWER THREE QUARTER BLOCK;;;;
-2587;LOWER SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
-2588;FULL BLOCK;So;0;ON;;;;;N;;;;;
-2589;LEFT SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
-258A;LEFT THREE QUARTERS BLOCK;So;0;ON;;;;;N;LEFT THREE QUARTER BLOCK;;;;
-258B;LEFT FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
-258C;LEFT HALF BLOCK;So;0;ON;;;;;N;;;;;
-258D;LEFT THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;;
-258E;LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;;
-258F;LEFT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
-2590;RIGHT HALF BLOCK;So;0;ON;;;;;N;;;;;
-2591;LIGHT SHADE;So;0;ON;;;;;N;;;;;
-2592;MEDIUM SHADE;So;0;ON;;;;;N;;;;;
-2593;DARK SHADE;So;0;ON;;;;;N;;;;;
-2594;UPPER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
-2595;RIGHT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;;
-2596;QUADRANT LOWER LEFT;So;0;ON;;;;;N;;;;;
-2597;QUADRANT LOWER RIGHT;So;0;ON;;;;;N;;;;;
-2598;QUADRANT UPPER LEFT;So;0;ON;;;;;N;;;;;
-2599;QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
-259A;QUADRANT UPPER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
-259B;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;;
-259C;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
-259D;QUADRANT UPPER RIGHT;So;0;ON;;;;;N;;;;;
-259E;QUADRANT UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;;
-259F;QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;;
-25A0;BLACK SQUARE;So;0;ON;;;;;N;;;;;
-25A1;WHITE SQUARE;So;0;ON;;;;;N;;;;;
-25A2;WHITE SQUARE WITH ROUNDED CORNERS;So;0;ON;;;;;N;;;;;
-25A3;WHITE SQUARE CONTAINING BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;;
-25A4;SQUARE WITH HORIZONTAL FILL;So;0;ON;;;;;N;;;;;
-25A5;SQUARE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;;
-25A6;SQUARE WITH ORTHOGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;;
-25A7;SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL;So;0;ON;;;;;N;;;;;
-25A8;SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL;So;0;ON;;;;;N;;;;;
-25A9;SQUARE WITH DIAGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;;
-25AA;BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;;
-25AB;WHITE SMALL SQUARE;So;0;ON;;;;;N;;;;;
-25AC;BLACK RECTANGLE;So;0;ON;;;;;N;;;;;
-25AD;WHITE RECTANGLE;So;0;ON;;;;;N;;;;;
-25AE;BLACK VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;;
-25AF;WHITE VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;;
-25B0;BLACK PARALLELOGRAM;So;0;ON;;;;;N;;;;;
-25B1;WHITE PARALLELOGRAM;So;0;ON;;;;;N;;;;;
-25B2;BLACK UP-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING TRIANGLE;;;;
-25B3;WHITE UP-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE;;;;
-25B4;BLACK UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING SMALL TRIANGLE;;;;
-25B5;WHITE UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING SMALL TRIANGLE;;;;
-25B6;BLACK RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING TRIANGLE;;;;
-25B7;WHITE RIGHT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE RIGHT POINTING TRIANGLE;;;;
-25B8;BLACK RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING SMALL TRIANGLE;;;;
-25B9;WHITE RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE RIGHT POINTING SMALL TRIANGLE;;;;
-25BA;BLACK RIGHT-POINTING POINTER;So;0;ON;;;;;N;BLACK RIGHT POINTING POINTER;;;;
-25BB;WHITE RIGHT-POINTING POINTER;So;0;ON;;;;;N;WHITE RIGHT POINTING POINTER;;;;
-25BC;BLACK DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING TRIANGLE;;;;
-25BD;WHITE DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING TRIANGLE;;;;
-25BE;BLACK DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING SMALL TRIANGLE;;;;
-25BF;WHITE DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING SMALL TRIANGLE;;;;
-25C0;BLACK LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING TRIANGLE;;;;
-25C1;WHITE LEFT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE LEFT POINTING TRIANGLE;;;;
-25C2;BLACK LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING SMALL TRIANGLE;;;;
-25C3;WHITE LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE LEFT POINTING SMALL TRIANGLE;;;;
-25C4;BLACK LEFT-POINTING POINTER;So;0;ON;;;;;N;BLACK LEFT POINTING POINTER;;;;
-25C5;WHITE LEFT-POINTING POINTER;So;0;ON;;;;;N;WHITE LEFT POINTING POINTER;;;;
-25C6;BLACK DIAMOND;So;0;ON;;;;;N;;;;;
-25C7;WHITE DIAMOND;So;0;ON;;;;;N;;;;;
-25C8;WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND;So;0;ON;;;;;N;;;;;
-25C9;FISHEYE;So;0;ON;;;;;N;;;;;
-25CA;LOZENGE;So;0;ON;;;;;N;;;;;
-25CB;WHITE CIRCLE;So;0;ON;;;;;N;;;;;
-25CC;DOTTED CIRCLE;So;0;ON;;;;;N;;;;;
-25CD;CIRCLE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;;
-25CE;BULLSEYE;So;0;ON;;;;;N;;;;;
-25CF;BLACK CIRCLE;So;0;ON;;;;;N;;;;;
-25D0;CIRCLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
-25D1;CIRCLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
-25D2;CIRCLE WITH LOWER HALF BLACK;So;0;ON;;;;;N;;;;;
-25D3;CIRCLE WITH UPPER HALF BLACK;So;0;ON;;;;;N;;;;;
-25D4;CIRCLE WITH UPPER RIGHT QUADRANT BLACK;So;0;ON;;;;;N;;;;;
-25D5;CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK;So;0;ON;;;;;N;;;;;
-25D6;LEFT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
-25D7;RIGHT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;;
-25D8;INVERSE BULLET;So;0;ON;;;;;N;;;;;
-25D9;INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
-25DA;UPPER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
-25DB;LOWER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;;
-25DC;UPPER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
-25DD;UPPER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
-25DE;LOWER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
-25DF;LOWER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;;
-25E0;UPPER HALF CIRCLE;So;0;ON;;;;;N;;;;;
-25E1;LOWER HALF CIRCLE;So;0;ON;;;;;N;;;;;
-25E2;BLACK LOWER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
-25E3;BLACK LOWER LEFT TRIANGLE;So;0;ON;;;;;N;;;;;
-25E4;BLACK UPPER LEFT TRIANGLE;So;0;ON;;;;;N;;;;;
-25E5;BLACK UPPER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
-25E6;WHITE BULLET;So;0;ON;;;;;N;;;;;
-25E7;SQUARE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
-25E8;SQUARE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
-25E9;SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
-25EA;SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
-25EB;WHITE SQUARE WITH VERTICAL BISECTING LINE;So;0;ON;;;;;N;;;;;
-25EC;WHITE UP-POINTING TRIANGLE WITH DOT;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE WITH DOT;;;;
-25ED;UP-POINTING TRIANGLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH LEFT HALF BLACK;;;;
-25EE;UP-POINTING TRIANGLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH RIGHT HALF BLACK;;;;
-25EF;LARGE CIRCLE;So;0;ON;;;;;N;;;;;
-25F0;WHITE SQUARE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
-25F1;WHITE SQUARE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
-25F2;WHITE SQUARE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
-25F3;WHITE SQUARE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
-25F4;WHITE CIRCLE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
-25F5;WHITE CIRCLE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;;
-25F6;WHITE CIRCLE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
-25F7;WHITE CIRCLE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;;
-25F8;UPPER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;;
-25F9;UPPER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;;
-25FA;LOWER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;;
-25FB;WHITE MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;;
-25FC;BLACK MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;;
-25FD;WHITE MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;;
-25FE;BLACK MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;;
-25FF;LOWER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;;
-2600;BLACK SUN WITH RAYS;So;0;ON;;;;;N;;;;;
-2601;CLOUD;So;0;ON;;;;;N;;;;;
-2602;UMBRELLA;So;0;ON;;;;;N;;;;;
-2603;SNOWMAN;So;0;ON;;;;;N;;;;;
-2604;COMET;So;0;ON;;;;;N;;;;;
-2605;BLACK STAR;So;0;ON;;;;;N;;;;;
-2606;WHITE STAR;So;0;ON;;;;;N;;;;;
-2607;LIGHTNING;So;0;ON;;;;;N;;;;;
-2608;THUNDERSTORM;So;0;ON;;;;;N;;;;;
-2609;SUN;So;0;ON;;;;;N;;;;;
-260A;ASCENDING NODE;So;0;ON;;;;;N;;;;;
-260B;DESCENDING NODE;So;0;ON;;;;;N;;;;;
-260C;CONJUNCTION;So;0;ON;;;;;N;;;;;
-260D;OPPOSITION;So;0;ON;;;;;N;;;;;
-260E;BLACK TELEPHONE;So;0;ON;;;;;N;;;;;
-260F;WHITE TELEPHONE;So;0;ON;;;;;N;;;;;
-2610;BALLOT BOX;So;0;ON;;;;;N;;;;;
-2611;BALLOT BOX WITH CHECK;So;0;ON;;;;;N;;;;;
-2612;BALLOT BOX WITH X;So;0;ON;;;;;N;;;;;
-2613;SALTIRE;So;0;ON;;;;;N;;;;;
-2614;UMBRELLA WITH RAIN DROPS;So;0;ON;;;;;N;;;;;
-2615;HOT BEVERAGE;So;0;ON;;;;;N;;;;;
-2616;WHITE SHOGI PIECE;So;0;ON;;;;;N;;;;;
-2617;BLACK SHOGI PIECE;So;0;ON;;;;;N;;;;;
-2618;SHAMROCK;So;0;ON;;;;;N;;;;;
-2619;REVERSED ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;;
-261A;BLACK LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
-261B;BLACK RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
-261C;WHITE LEFT POINTING INDEX;So;0;ON;;;;;N;;;;;
-261D;WHITE UP POINTING INDEX;So;0;ON;;;;;N;;;;;
-261E;WHITE RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;;
-261F;WHITE DOWN POINTING INDEX;So;0;ON;;;;;N;;;;;
-2620;SKULL AND CROSSBONES;So;0;ON;;;;;N;;;;;
-2621;CAUTION SIGN;So;0;ON;;;;;N;;;;;
-2622;RADIOACTIVE SIGN;So;0;ON;;;;;N;;;;;
-2623;BIOHAZARD SIGN;So;0;ON;;;;;N;;;;;
-2624;CADUCEUS;So;0;ON;;;;;N;;;;;
-2625;ANKH;So;0;ON;;;;;N;;;;;
-2626;ORTHODOX CROSS;So;0;ON;;;;;N;;;;;
-2627;CHI RHO;So;0;ON;;;;;N;;;;;
-2628;CROSS OF LORRAINE;So;0;ON;;;;;N;;;;;
-2629;CROSS OF JERUSALEM;So;0;ON;;;;;N;;;;;
-262A;STAR AND CRESCENT;So;0;ON;;;;;N;;;;;
-262B;FARSI SYMBOL;So;0;ON;;;;;N;SYMBOL OF IRAN;;;;
-262C;ADI SHAKTI;So;0;ON;;;;;N;;;;;
-262D;HAMMER AND SICKLE;So;0;ON;;;;;N;;;;;
-262E;PEACE SYMBOL;So;0;ON;;;;;N;;;;;
-262F;YIN YANG;So;0;ON;;;;;N;;;;;
-2630;TRIGRAM FOR HEAVEN;So;0;ON;;;;;N;;;;;
-2631;TRIGRAM FOR LAKE;So;0;ON;;;;;N;;;;;
-2632;TRIGRAM FOR FIRE;So;0;ON;;;;;N;;;;;
-2633;TRIGRAM FOR THUNDER;So;0;ON;;;;;N;;;;;
-2634;TRIGRAM FOR WIND;So;0;ON;;;;;N;;;;;
-2635;TRIGRAM FOR WATER;So;0;ON;;;;;N;;;;;
-2636;TRIGRAM FOR MOUNTAIN;So;0;ON;;;;;N;;;;;
-2637;TRIGRAM FOR EARTH;So;0;ON;;;;;N;;;;;
-2638;WHEEL OF DHARMA;So;0;ON;;;;;N;;;;;
-2639;WHITE FROWNING FACE;So;0;ON;;;;;N;;;;;
-263A;WHITE SMILING FACE;So;0;ON;;;;;N;;;;;
-263B;BLACK SMILING FACE;So;0;ON;;;;;N;;;;;
-263C;WHITE SUN WITH RAYS;So;0;ON;;;;;N;;;;;
-263D;FIRST QUARTER MOON;So;0;ON;;;;;N;;;;;
-263E;LAST QUARTER MOON;So;0;ON;;;;;N;;;;;
-263F;MERCURY;So;0;ON;;;;;N;;;;;
-2640;FEMALE SIGN;So;0;ON;;;;;N;;;;;
-2641;EARTH;So;0;ON;;;;;N;;;;;
-2642;MALE SIGN;So;0;ON;;;;;N;;;;;
-2643;JUPITER;So;0;ON;;;;;N;;;;;
-2644;SATURN;So;0;ON;;;;;N;;;;;
-2645;URANUS;So;0;ON;;;;;N;;;;;
-2646;NEPTUNE;So;0;ON;;;;;N;;;;;
-2647;PLUTO;So;0;ON;;;;;N;;;;;
-2648;ARIES;So;0;ON;;;;;N;;;;;
-2649;TAURUS;So;0;ON;;;;;N;;;;;
-264A;GEMINI;So;0;ON;;;;;N;;;;;
-264B;CANCER;So;0;ON;;;;;N;;;;;
-264C;LEO;So;0;ON;;;;;N;;;;;
-264D;VIRGO;So;0;ON;;;;;N;;;;;
-264E;LIBRA;So;0;ON;;;;;N;;;;;
-264F;SCORPIUS;So;0;ON;;;;;N;;;;;
-2650;SAGITTARIUS;So;0;ON;;;;;N;;;;;
-2651;CAPRICORN;So;0;ON;;;;;N;;;;;
-2652;AQUARIUS;So;0;ON;;;;;N;;;;;
-2653;PISCES;So;0;ON;;;;;N;;;;;
-2654;WHITE CHESS KING;So;0;ON;;;;;N;;;;;
-2655;WHITE CHESS QUEEN;So;0;ON;;;;;N;;;;;
-2656;WHITE CHESS ROOK;So;0;ON;;;;;N;;;;;
-2657;WHITE CHESS BISHOP;So;0;ON;;;;;N;;;;;
-2658;WHITE CHESS KNIGHT;So;0;ON;;;;;N;;;;;
-2659;WHITE CHESS PAWN;So;0;ON;;;;;N;;;;;
-265A;BLACK CHESS KING;So;0;ON;;;;;N;;;;;
-265B;BLACK CHESS QUEEN;So;0;ON;;;;;N;;;;;
-265C;BLACK CHESS ROOK;So;0;ON;;;;;N;;;;;
-265D;BLACK CHESS BISHOP;So;0;ON;;;;;N;;;;;
-265E;BLACK CHESS KNIGHT;So;0;ON;;;;;N;;;;;
-265F;BLACK CHESS PAWN;So;0;ON;;;;;N;;;;;
-2660;BLACK SPADE SUIT;So;0;ON;;;;;N;;;;;
-2661;WHITE HEART SUIT;So;0;ON;;;;;N;;;;;
-2662;WHITE DIAMOND SUIT;So;0;ON;;;;;N;;;;;
-2663;BLACK CLUB SUIT;So;0;ON;;;;;N;;;;;
-2664;WHITE SPADE SUIT;So;0;ON;;;;;N;;;;;
-2665;BLACK HEART SUIT;So;0;ON;;;;;N;;;;;
-2666;BLACK DIAMOND SUIT;So;0;ON;;;;;N;;;;;
-2667;WHITE CLUB SUIT;So;0;ON;;;;;N;;;;;
-2668;HOT SPRINGS;So;0;ON;;;;;N;;;;;
-2669;QUARTER NOTE;So;0;ON;;;;;N;;;;;
-266A;EIGHTH NOTE;So;0;ON;;;;;N;;;;;
-266B;BEAMED EIGHTH NOTES;So;0;ON;;;;;N;BARRED EIGHTH NOTES;;;;
-266C;BEAMED SIXTEENTH NOTES;So;0;ON;;;;;N;BARRED SIXTEENTH NOTES;;;;
-266D;MUSIC FLAT SIGN;So;0;ON;;;;;N;FLAT;;;;
-266E;MUSIC NATURAL SIGN;So;0;ON;;;;;N;NATURAL;;;;
-266F;MUSIC SHARP SIGN;Sm;0;ON;;;;;N;SHARP;;;;
-2670;WEST SYRIAC CROSS;So;0;ON;;;;;N;;;;;
-2671;EAST SYRIAC CROSS;So;0;ON;;;;;N;;;;;
-2672;UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;;
-2673;RECYCLING SYMBOL FOR TYPE-1 PLASTICS;So;0;ON;;;;;N;;;;;
-2674;RECYCLING SYMBOL FOR TYPE-2 PLASTICS;So;0;ON;;;;;N;;;;;
-2675;RECYCLING SYMBOL FOR TYPE-3 PLASTICS;So;0;ON;;;;;N;;;;;
-2676;RECYCLING SYMBOL FOR TYPE-4 PLASTICS;So;0;ON;;;;;N;;;;;
-2677;RECYCLING SYMBOL FOR TYPE-5 PLASTICS;So;0;ON;;;;;N;;;;;
-2678;RECYCLING SYMBOL FOR TYPE-6 PLASTICS;So;0;ON;;;;;N;;;;;
-2679;RECYCLING SYMBOL FOR TYPE-7 PLASTICS;So;0;ON;;;;;N;;;;;
-267A;RECYCLING SYMBOL FOR GENERIC MATERIALS;So;0;ON;;;;;N;;;;;
-267B;BLACK UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;;
-267C;RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;;
-267D;PARTIALLY-RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;;
-267E;PERMANENT PAPER SIGN;So;0;ON;;;;;N;;;;;
-267F;WHEELCHAIR SYMBOL;So;0;ON;;;;;N;;;;;
-2680;DIE FACE-1;So;0;ON;;;;;N;;;;;
-2681;DIE FACE-2;So;0;ON;;;;;N;;;;;
-2682;DIE FACE-3;So;0;ON;;;;;N;;;;;
-2683;DIE FACE-4;So;0;ON;;;;;N;;;;;
-2684;DIE FACE-5;So;0;ON;;;;;N;;;;;
-2685;DIE FACE-6;So;0;ON;;;;;N;;;;;
-2686;WHITE CIRCLE WITH DOT RIGHT;So;0;ON;;;;;N;;;;;
-2687;WHITE CIRCLE WITH TWO DOTS;So;0;ON;;;;;N;;;;;
-2688;BLACK CIRCLE WITH WHITE DOT RIGHT;So;0;ON;;;;;N;;;;;
-2689;BLACK CIRCLE WITH TWO WHITE DOTS;So;0;ON;;;;;N;;;;;
-268A;MONOGRAM FOR YANG;So;0;ON;;;;;N;;;;;
-268B;MONOGRAM FOR YIN;So;0;ON;;;;;N;;;;;
-268C;DIGRAM FOR GREATER YANG;So;0;ON;;;;;N;;;;;
-268D;DIGRAM FOR LESSER YIN;So;0;ON;;;;;N;;;;;
-268E;DIGRAM FOR LESSER YANG;So;0;ON;;;;;N;;;;;
-268F;DIGRAM FOR GREATER YIN;So;0;ON;;;;;N;;;;;
-2690;WHITE FLAG;So;0;ON;;;;;N;;;;;
-2691;BLACK FLAG;So;0;ON;;;;;N;;;;;
-2692;HAMMER AND PICK;So;0;ON;;;;;N;;;;;
-2693;ANCHOR;So;0;ON;;;;;N;;;;;
-2694;CROSSED SWORDS;So;0;ON;;;;;N;;;;;
-2695;STAFF OF AESCULAPIUS;So;0;ON;;;;;N;;;;;
-2696;SCALES;So;0;ON;;;;;N;;;;;
-2697;ALEMBIC;So;0;ON;;;;;N;;;;;
-2698;FLOWER;So;0;ON;;;;;N;;;;;
-2699;GEAR;So;0;ON;;;;;N;;;;;
-269A;STAFF OF HERMES;So;0;ON;;;;;N;;;;;
-269B;ATOM SYMBOL;So;0;ON;;;;;N;;;;;
-269C;FLEUR-DE-LIS;So;0;ON;;;;;N;;;;;
-269D;OUTLINED WHITE STAR;So;0;ON;;;;;N;;;;;
-269E;THREE LINES CONVERGING RIGHT;So;0;ON;;;;;N;;;;;
-269F;THREE LINES CONVERGING LEFT;So;0;ON;;;;;N;;;;;
-26A0;WARNING SIGN;So;0;ON;;;;;N;;;;;
-26A1;HIGH VOLTAGE SIGN;So;0;ON;;;;;N;;;;;
-26A2;DOUBLED FEMALE SIGN;So;0;ON;;;;;N;;;;;
-26A3;DOUBLED MALE SIGN;So;0;ON;;;;;N;;;;;
-26A4;INTERLOCKED FEMALE AND MALE SIGN;So;0;ON;;;;;N;;;;;
-26A5;MALE AND FEMALE SIGN;So;0;ON;;;;;N;;;;;
-26A6;MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;;
-26A7;MALE WITH STROKE AND MALE AND FEMALE SIGN;So;0;ON;;;;;N;;;;;
-26A8;VERTICAL MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;;
-26A9;HORIZONTAL MALE WITH STROKE SIGN;So;0;ON;;;;;N;;;;;
-26AA;MEDIUM WHITE CIRCLE;So;0;ON;;;;;N;;;;;
-26AB;MEDIUM BLACK CIRCLE;So;0;ON;;;;;N;;;;;
-26AC;MEDIUM SMALL WHITE CIRCLE;So;0;L;;;;;N;;;;;
-26AD;MARRIAGE SYMBOL;So;0;ON;;;;;N;;;;;
-26AE;DIVORCE SYMBOL;So;0;ON;;;;;N;;;;;
-26AF;UNMARRIED PARTNERSHIP SYMBOL;So;0;ON;;;;;N;;;;;
-26B0;COFFIN;So;0;ON;;;;;N;;;;;
-26B1;FUNERAL URN;So;0;ON;;;;;N;;;;;
-26B2;NEUTER;So;0;ON;;;;;N;;;;;
-26B3;CERES;So;0;ON;;;;;N;;;;;
-26B4;PALLAS;So;0;ON;;;;;N;;;;;
-26B5;JUNO;So;0;ON;;;;;N;;;;;
-26B6;VESTA;So;0;ON;;;;;N;;;;;
-26B7;CHIRON;So;0;ON;;;;;N;;;;;
-26B8;BLACK MOON LILITH;So;0;ON;;;;;N;;;;;
-26B9;SEXTILE;So;0;ON;;;;;N;;;;;
-26BA;SEMISEXTILE;So;0;ON;;;;;N;;;;;
-26BB;QUINCUNX;So;0;ON;;;;;N;;;;;
-26BC;SESQUIQUADRATE;So;0;ON;;;;;N;;;;;
-26BD;SOCCER BALL;So;0;ON;;;;;N;;;;;
-26BE;BASEBALL;So;0;ON;;;;;N;;;;;
-26BF;SQUARED KEY;So;0;ON;;;;;N;;;;;
-26C0;WHITE DRAUGHTS MAN;So;0;ON;;;;;N;;;;;
-26C1;WHITE DRAUGHTS KING;So;0;ON;;;;;N;;;;;
-26C2;BLACK DRAUGHTS MAN;So;0;ON;;;;;N;;;;;
-26C3;BLACK DRAUGHTS KING;So;0;ON;;;;;N;;;;;
-26C4;SNOWMAN WITHOUT SNOW;So;0;ON;;;;;N;;;;;
-26C5;SUN BEHIND CLOUD;So;0;ON;;;;;N;;;;;
-26C6;RAIN;So;0;ON;;;;;N;;;;;
-26C7;BLACK SNOWMAN;So;0;ON;;;;;N;;;;;
-26C8;THUNDER CLOUD AND RAIN;So;0;ON;;;;;N;;;;;
-26C9;TURNED WHITE SHOGI PIECE;So;0;ON;;;;;N;;;;;
-26CA;TURNED BLACK SHOGI PIECE;So;0;ON;;;;;N;;;;;
-26CB;WHITE DIAMOND IN SQUARE;So;0;ON;;;;;N;;;;;
-26CC;CROSSING LANES;So;0;ON;;;;;N;;;;;
-26CD;DISABLED CAR;So;0;ON;;;;;N;;;;;
-26CE;OPHIUCHUS;So;0;ON;;;;;N;;;;;
-26CF;PICK;So;0;ON;;;;;N;;;;;
-26D0;CAR SLIDING;So;0;ON;;;;;N;;;;;
-26D1;HELMET WITH WHITE CROSS;So;0;ON;;;;;N;;;;;
-26D2;CIRCLED CROSSING LANES;So;0;ON;;;;;N;;;;;
-26D3;CHAINS;So;0;ON;;;;;N;;;;;
-26D4;NO ENTRY;So;0;ON;;;;;N;;;;;
-26D5;ALTERNATE ONE-WAY LEFT WAY TRAFFIC;So;0;ON;;;;;N;;;;;
-26D6;BLACK TWO-WAY LEFT WAY TRAFFIC;So;0;ON;;;;;N;;;;;
-26D7;WHITE TWO-WAY LEFT WAY TRAFFIC;So;0;ON;;;;;N;;;;;
-26D8;BLACK LEFT LANE MERGE;So;0;ON;;;;;N;;;;;
-26D9;WHITE LEFT LANE MERGE;So;0;ON;;;;;N;;;;;
-26DA;DRIVE SLOW SIGN;So;0;ON;;;;;N;;;;;
-26DB;HEAVY WHITE DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;;;;;
-26DC;LEFT CLOSED ENTRY;So;0;ON;;;;;N;;;;;
-26DD;SQUARED SALTIRE;So;0;ON;;;;;N;;;;;
-26DE;FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE;So;0;ON;;;;;N;;;;;
-26DF;BLACK TRUCK;So;0;ON;;;;;N;;;;;
-26E0;RESTRICTED LEFT ENTRY-1;So;0;ON;;;;;N;;;;;
-26E1;RESTRICTED LEFT ENTRY-2;So;0;ON;;;;;N;;;;;
-26E2;ASTRONOMICAL SYMBOL FOR URANUS;So;0;ON;;;;;N;;;;;
-26E3;HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE;So;0;ON;;;;;N;;;;;
-26E4;PENTAGRAM;So;0;ON;;;;;N;;;;;
-26E5;RIGHT-HANDED INTERLACED PENTAGRAM;So;0;ON;;;;;N;;;;;
-26E6;LEFT-HANDED INTERLACED PENTAGRAM;So;0;ON;;;;;N;;;;;
-26E7;INVERTED PENTAGRAM;So;0;ON;;;;;N;;;;;
-26E8;BLACK CROSS ON SHIELD;So;0;ON;;;;;N;;;;;
-26E9;SHINTO SHRINE;So;0;ON;;;;;N;;;;;
-26EA;CHURCH;So;0;ON;;;;;N;;;;;
-26EB;CASTLE;So;0;ON;;;;;N;;;;;
-26EC;HISTORIC SITE;So;0;ON;;;;;N;;;;;
-26ED;GEAR WITHOUT HUB;So;0;ON;;;;;N;;;;;
-26EE;GEAR WITH HANDLES;So;0;ON;;;;;N;;;;;
-26EF;MAP SYMBOL FOR LIGHTHOUSE;So;0;ON;;;;;N;;;;;
-26F0;MOUNTAIN;So;0;ON;;;;;N;;;;;
-26F1;UMBRELLA ON GROUND;So;0;ON;;;;;N;;;;;
-26F2;FOUNTAIN;So;0;ON;;;;;N;;;;;
-26F3;FLAG IN HOLE;So;0;ON;;;;;N;;;;;
-26F4;FERRY;So;0;ON;;;;;N;;;;;
-26F5;SAILBOAT;So;0;ON;;;;;N;;;;;
-26F6;SQUARE FOUR CORNERS;So;0;ON;;;;;N;;;;;
-26F7;SKIER;So;0;ON;;;;;N;;;;;
-26F8;ICE SKATE;So;0;ON;;;;;N;;;;;
-26F9;PERSON WITH BALL;So;0;ON;;;;;N;;;;;
-26FA;TENT;So;0;ON;;;;;N;;;;;
-26FB;JAPANESE BANK SYMBOL;So;0;ON;;;;;N;;;;;
-26FC;HEADSTONE GRAVEYARD SYMBOL;So;0;ON;;;;;N;;;;;
-26FD;FUEL PUMP;So;0;ON;;;;;N;;;;;
-26FE;CUP ON BLACK SQUARE;So;0;ON;;;;;N;;;;;
-26FF;WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE;So;0;ON;;;;;N;;;;;
-2701;UPPER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
-2702;BLACK SCISSORS;So;0;ON;;;;;N;;;;;
-2703;LOWER BLADE SCISSORS;So;0;ON;;;;;N;;;;;
-2704;WHITE SCISSORS;So;0;ON;;;;;N;;;;;
-2705;WHITE HEAVY CHECK MARK;So;0;ON;;;;;N;;;;;
-2706;TELEPHONE LOCATION SIGN;So;0;ON;;;;;N;;;;;
-2707;TAPE DRIVE;So;0;ON;;;;;N;;;;;
-2708;AIRPLANE;So;0;ON;;;;;N;;;;;
-2709;ENVELOPE;So;0;ON;;;;;N;;;;;
-270A;RAISED FIST;So;0;ON;;;;;N;;;;;
-270B;RAISED HAND;So;0;ON;;;;;N;;;;;
-270C;VICTORY HAND;So;0;ON;;;;;N;;;;;
-270D;WRITING HAND;So;0;ON;;;;;N;;;;;
-270E;LOWER RIGHT PENCIL;So;0;ON;;;;;N;;;;;
-270F;PENCIL;So;0;ON;;;;;N;;;;;
-2710;UPPER RIGHT PENCIL;So;0;ON;;;;;N;;;;;
-2711;WHITE NIB;So;0;ON;;;;;N;;;;;
-2712;BLACK NIB;So;0;ON;;;;;N;;;;;
-2713;CHECK MARK;So;0;ON;;;;;N;;;;;
-2714;HEAVY CHECK MARK;So;0;ON;;;;;N;;;;;
-2715;MULTIPLICATION X;So;0;ON;;;;;N;;;;;
-2716;HEAVY MULTIPLICATION X;So;0;ON;;;;;N;;;;;
-2717;BALLOT X;So;0;ON;;;;;N;;;;;
-2718;HEAVY BALLOT X;So;0;ON;;;;;N;;;;;
-2719;OUTLINED GREEK CROSS;So;0;ON;;;;;N;;;;;
-271A;HEAVY GREEK CROSS;So;0;ON;;;;;N;;;;;
-271B;OPEN CENTRE CROSS;So;0;ON;;;;;N;OPEN CENTER CROSS;;;;
-271C;HEAVY OPEN CENTRE CROSS;So;0;ON;;;;;N;HEAVY OPEN CENTER CROSS;;;;
-271D;LATIN CROSS;So;0;ON;;;;;N;;;;;
-271E;SHADOWED WHITE LATIN CROSS;So;0;ON;;;;;N;;;;;
-271F;OUTLINED LATIN CROSS;So;0;ON;;;;;N;;;;;
-2720;MALTESE CROSS;So;0;ON;;;;;N;;;;;
-2721;STAR OF DAVID;So;0;ON;;;;;N;;;;;
-2722;FOUR TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
-2723;FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
-2724;HEAVY FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
-2725;FOUR CLUB-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
-2726;BLACK FOUR POINTED STAR;So;0;ON;;;;;N;;;;;
-2727;WHITE FOUR POINTED STAR;So;0;ON;;;;;N;;;;;
-2728;SPARKLES;So;0;ON;;;;;N;;;;;
-2729;STRESS OUTLINED WHITE STAR;So;0;ON;;;;;N;;;;;
-272A;CIRCLED WHITE STAR;So;0;ON;;;;;N;;;;;
-272B;OPEN CENTRE BLACK STAR;So;0;ON;;;;;N;OPEN CENTER BLACK STAR;;;;
-272C;BLACK CENTRE WHITE STAR;So;0;ON;;;;;N;BLACK CENTER WHITE STAR;;;;
-272D;OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;;
-272E;HEAVY OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;;
-272F;PINWHEEL STAR;So;0;ON;;;;;N;;;;;
-2730;SHADOWED WHITE STAR;So;0;ON;;;;;N;;;;;
-2731;HEAVY ASTERISK;So;0;ON;;;;;N;;;;;
-2732;OPEN CENTRE ASTERISK;So;0;ON;;;;;N;OPEN CENTER ASTERISK;;;;
-2733;EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
-2734;EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
-2735;EIGHT POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;;
-2736;SIX POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
-2737;EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;;
-2738;HEAVY EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;;
-2739;TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;;
-273A;SIXTEEN POINTED ASTERISK;So;0;ON;;;;;N;;;;;
-273B;TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
-273C;OPEN CENTRE TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;OPEN CENTER TEARDROP-SPOKED ASTERISK;;;;
-273D;HEAVY TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
-273E;SIX PETALLED BLACK AND WHITE FLORETTE;So;0;ON;;;;;N;;;;;
-273F;BLACK FLORETTE;So;0;ON;;;;;N;;;;;
-2740;WHITE FLORETTE;So;0;ON;;;;;N;;;;;
-2741;EIGHT PETALLED OUTLINED BLACK FLORETTE;So;0;ON;;;;;N;;;;;
-2742;CIRCLED OPEN CENTRE EIGHT POINTED STAR;So;0;ON;;;;;N;CIRCLED OPEN CENTER EIGHT POINTED STAR;;;;
-2743;HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK;So;0;ON;;;;;N;;;;;
-2744;SNOWFLAKE;So;0;ON;;;;;N;;;;;
-2745;TIGHT TRIFOLIATE SNOWFLAKE;So;0;ON;;;;;N;;;;;
-2746;HEAVY CHEVRON SNOWFLAKE;So;0;ON;;;;;N;;;;;
-2747;SPARKLE;So;0;ON;;;;;N;;;;;
-2748;HEAVY SPARKLE;So;0;ON;;;;;N;;;;;
-2749;BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;;
-274A;EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;;
-274B;HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;;
-274C;CROSS MARK;So;0;ON;;;;;N;;;;;
-274D;SHADOWED WHITE CIRCLE;So;0;ON;;;;;N;;;;;
-274E;NEGATIVE SQUARED CROSS MARK;So;0;ON;;;;;N;;;;;
-274F;LOWER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
-2750;UPPER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
-2751;LOWER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
-2752;UPPER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;;
-2753;BLACK QUESTION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-2754;WHITE QUESTION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-2755;WHITE EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-2756;BLACK DIAMOND MINUS WHITE X;So;0;ON;;;;;N;;;;;
-2757;HEAVY EXCLAMATION MARK SYMBOL;So;0;ON;;;;;N;;;;;
-2758;LIGHT VERTICAL BAR;So;0;ON;;;;;N;;;;;
-2759;MEDIUM VERTICAL BAR;So;0;ON;;;;;N;;;;;
-275A;HEAVY VERTICAL BAR;So;0;ON;;;;;N;;;;;
-275B;HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-275C;HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-275D;HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-275E;HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-275F;HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-2760;HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-2761;CURVED STEM PARAGRAPH SIGN ORNAMENT;So;0;ON;;;;;N;;;;;
-2762;HEAVY EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-2763;HEAVY HEART EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;;
-2764;HEAVY BLACK HEART;So;0;ON;;;;;N;;;;;
-2765;ROTATED HEAVY BLACK HEART BULLET;So;0;ON;;;;;N;;;;;
-2766;FLORAL HEART;So;0;ON;;;;;N;;;;;
-2767;ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;;
-2768;MEDIUM LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;;
-2769;MEDIUM RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;;
-276A;MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;;
-276B;MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;;
-276C;MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
-276D;MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
-276E;HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT;Ps;0;ON;;;;;Y;;;;;
-276F;HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT;Pe;0;ON;;;;;Y;;;;;
-2770;HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
-2771;HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
-2772;LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
-2773;LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
-2774;MEDIUM LEFT CURLY BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;;
-2775;MEDIUM RIGHT CURLY BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;;
-2776;DINGBAT NEGATIVE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED DIGIT ONE;;;;
-2777;DINGBAT NEGATIVE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED DIGIT TWO;;;;
-2778;DINGBAT NEGATIVE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED DIGIT THREE;;;;
-2779;DINGBAT NEGATIVE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED DIGIT FOUR;;;;
-277A;DINGBAT NEGATIVE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED DIGIT FIVE;;;;
-277B;DINGBAT NEGATIVE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED DIGIT SIX;;;;
-277C;DINGBAT NEGATIVE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED DIGIT SEVEN;;;;
-277D;DINGBAT NEGATIVE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED DIGIT EIGHT;;;;
-277E;DINGBAT NEGATIVE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED DIGIT NINE;;;;
-277F;DINGBAT NEGATIVE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED NUMBER TEN;;;;
-2780;DINGBAT CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;CIRCLED SANS-SERIF DIGIT ONE;;;;
-2781;DINGBAT CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;CIRCLED SANS-SERIF DIGIT TWO;;;;
-2782;DINGBAT CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;CIRCLED SANS-SERIF DIGIT THREE;;;;
-2783;DINGBAT CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;CIRCLED SANS-SERIF DIGIT FOUR;;;;
-2784;DINGBAT CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;CIRCLED SANS-SERIF DIGIT FIVE;;;;
-2785;DINGBAT CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;CIRCLED SANS-SERIF DIGIT SIX;;;;
-2786;DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;CIRCLED SANS-SERIF DIGIT SEVEN;;;;
-2787;DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;CIRCLED SANS-SERIF DIGIT EIGHT;;;;
-2788;DINGBAT CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;CIRCLED SANS-SERIF DIGIT NINE;;;;
-2789;DINGBAT CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;CIRCLED SANS-SERIF NUMBER TEN;;;;
-278A;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED SANS-SERIF DIGIT ONE;;;;
-278B;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED SANS-SERIF DIGIT TWO;;;;
-278C;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED SANS-SERIF DIGIT THREE;;;;
-278D;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED SANS-SERIF DIGIT FOUR;;;;
-278E;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED SANS-SERIF DIGIT FIVE;;;;
-278F;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED SANS-SERIF DIGIT SIX;;;;
-2790;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED SANS-SERIF DIGIT SEVEN;;;;
-2791;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED SANS-SERIF DIGIT EIGHT;;;;
-2792;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED SANS-SERIF DIGIT NINE;;;;
-2793;DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED SANS-SERIF NUMBER TEN;;;;
-2794;HEAVY WIDE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WIDE-HEADED RIGHT ARROW;;;;
-2795;HEAVY PLUS SIGN;So;0;ON;;;;;N;;;;;
-2796;HEAVY MINUS SIGN;So;0;ON;;;;;N;;;;;
-2797;HEAVY DIVISION SIGN;So;0;ON;;;;;N;;;;;
-2798;HEAVY SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT ARROW;;;;
-2799;HEAVY RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY RIGHT ARROW;;;;
-279A;HEAVY NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT ARROW;;;;
-279B;DRAFTING POINT RIGHTWARDS ARROW;So;0;ON;;;;;N;DRAFTING POINT RIGHT ARROW;;;;
-279C;HEAVY ROUND-TIPPED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY ROUND-TIPPED RIGHT ARROW;;;;
-279D;TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;TRIANGLE-HEADED RIGHT ARROW;;;;
-279E;HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TRIANGLE-HEADED RIGHT ARROW;;;;
-279F;DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;DASHED TRIANGLE-HEADED RIGHT ARROW;;;;
-27A0;HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY DASHED TRIANGLE-HEADED RIGHT ARROW;;;;
-27A1;BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK RIGHT ARROW;;;;
-27A2;THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D TOP-LIGHTED RIGHT ARROWHEAD;;;;
-27A3;THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D BOTTOM-LIGHTED RIGHT ARROWHEAD;;;;
-27A4;BLACK RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;BLACK RIGHT ARROWHEAD;;;;
-27A5;HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED DOWN AND RIGHT ARROW;;;;
-27A6;HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED UP AND RIGHT ARROW;;;;
-27A7;SQUAT BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;SQUAT BLACK RIGHT ARROW;;;;
-27A8;HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY CONCAVE-POINTED BLACK RIGHT ARROW;;;;
-27A9;RIGHT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;RIGHT-SHADED WHITE RIGHT ARROW;;;;
-27AA;LEFT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT-SHADED WHITE RIGHT ARROW;;;;
-27AB;BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;BACK-TILTED SHADOWED WHITE RIGHT ARROW;;;;
-27AC;FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;FRONT-TILTED SHADOWED WHITE RIGHT ARROW;;;;
-27AD;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
-27AE;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
-27AF;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
-27B0;CURLY LOOP;So;0;ON;;;;;N;;;;;
-27B1;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;;
-27B2;CIRCLED HEAVY WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;CIRCLED HEAVY WHITE RIGHT ARROW;;;;
-27B3;WHITE-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;WHITE-FEATHERED RIGHT ARROW;;;;
-27B4;BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED LOWER RIGHT ARROW;;;;
-27B5;BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK-FEATHERED RIGHT ARROW;;;;
-27B6;BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED UPPER RIGHT ARROW;;;;
-27B7;HEAVY BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED LOWER RIGHT ARROW;;;;
-27B8;HEAVY BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED RIGHT ARROW;;;;
-27B9;HEAVY BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED UPPER RIGHT ARROW;;;;
-27BA;TEARDROP-BARBED RIGHTWARDS ARROW;So;0;ON;;;;;N;TEARDROP-BARBED RIGHT ARROW;;;;
-27BB;HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TEARDROP-SHANKED RIGHT ARROW;;;;
-27BC;WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;WEDGE-TAILED RIGHT ARROW;;;;
-27BD;HEAVY WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WEDGE-TAILED RIGHT ARROW;;;;
-27BE;OPEN-OUTLINED RIGHTWARDS ARROW;So;0;ON;;;;;N;OPEN-OUTLINED RIGHT ARROW;;;;
-27BF;DOUBLE CURLY LOOP;So;0;ON;;;;;N;;;;;
-27C0;THREE DIMENSIONAL ANGLE;Sm;0;ON;;;;;Y;;;;;
-27C1;WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE;Sm;0;ON;;;;;N;;;;;
-27C2;PERPENDICULAR;Sm;0;ON;;;;;N;;;;;
-27C3;OPEN SUBSET;Sm;0;ON;;;;;Y;;;;;
-27C4;OPEN SUPERSET;Sm;0;ON;;;;;Y;;;;;
-27C5;LEFT S-SHAPED BAG DELIMITER;Ps;0;ON;;;;;Y;;;;;
-27C6;RIGHT S-SHAPED BAG DELIMITER;Pe;0;ON;;;;;Y;;;;;
-27C7;OR WITH DOT INSIDE;Sm;0;ON;;;;;N;;;;;
-27C8;REVERSE SOLIDUS PRECEDING SUBSET;Sm;0;ON;;;;;Y;;;;;
-27C9;SUPERSET PRECEDING SOLIDUS;Sm;0;ON;;;;;Y;;;;;
-27CA;VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
-27CB;MATHEMATICAL RISING DIAGONAL;Sm;0;ON;;;;;Y;;;;;
-27CC;LONG DIVISION;Sm;0;ON;;;;;Y;;;;;
-27CD;MATHEMATICAL FALLING DIAGONAL;Sm;0;ON;;;;;Y;;;;;
-27CE;SQUARED LOGICAL AND;Sm;0;ON;;;;;N;;;;;
-27CF;SQUARED LOGICAL OR;Sm;0;ON;;;;;N;;;;;
-27D0;WHITE DIAMOND WITH CENTRED DOT;Sm;0;ON;;;;;N;;;;;
-27D1;AND WITH DOT;Sm;0;ON;;;;;N;;;;;
-27D2;ELEMENT OF OPENING UPWARDS;Sm;0;ON;;;;;N;;;;;
-27D3;LOWER RIGHT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;;
-27D4;UPPER LEFT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;;
-27D5;LEFT OUTER JOIN;Sm;0;ON;;;;;Y;;;;;
-27D6;RIGHT OUTER JOIN;Sm;0;ON;;;;;Y;;;;;
-27D7;FULL OUTER JOIN;Sm;0;ON;;;;;N;;;;;
-27D8;LARGE UP TACK;Sm;0;ON;;;;;N;;;;;
-27D9;LARGE DOWN TACK;Sm;0;ON;;;;;N;;;;;
-27DA;LEFT AND RIGHT DOUBLE TURNSTILE;Sm;0;ON;;;;;N;;;;;
-27DB;LEFT AND RIGHT TACK;Sm;0;ON;;;;;N;;;;;
-27DC;LEFT MULTIMAP;Sm;0;ON;;;;;Y;;;;;
-27DD;LONG RIGHT TACK;Sm;0;ON;;;;;Y;;;;;
-27DE;LONG LEFT TACK;Sm;0;ON;;;;;Y;;;;;
-27DF;UP TACK WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
-27E0;LOZENGE DIVIDED BY HORIZONTAL RULE;Sm;0;ON;;;;;N;;;;;
-27E1;WHITE CONCAVE-SIDED DIAMOND;Sm;0;ON;;;;;N;;;;;
-27E2;WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
-27E3;WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
-27E4;WHITE SQUARE WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
-27E5;WHITE SQUARE WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;;
-27E6;MATHEMATICAL LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;;;;;
-27E7;MATHEMATICAL RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;;;;;
-27E8;MATHEMATICAL LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;
-27E9;MATHEMATICAL RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;
-27EA;MATHEMATICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;
-27EB;MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;
-27EC;MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;;;;;
-27ED;MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;;;;;
-27EE;MATHEMATICAL LEFT FLATTENED PARENTHESIS;Ps;0;ON;;;;;Y;;;;;
-27EF;MATHEMATICAL RIGHT FLATTENED PARENTHESIS;Pe;0;ON;;;;;Y;;;;;
-27F0;UPWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;;
-27F1;DOWNWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;;
-27F2;ANTICLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
-27F3;CLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
-27F4;RIGHT ARROW WITH CIRCLED PLUS;Sm;0;ON;;;;;N;;;;;
-27F5;LONG LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
-27F6;LONG RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
-27F7;LONG LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;;
-27F8;LONG LEFTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
-27F9;LONG RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
-27FA;LONG LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;;
-27FB;LONG LEFTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
-27FC;LONG RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
-27FD;LONG LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
-27FE;LONG RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
-27FF;LONG RIGHTWARDS SQUIGGLE ARROW;Sm;0;ON;;;;;N;;;;;
-2800;BRAILLE PATTERN BLANK;So;0;L;;;;;N;;;;;
-2801;BRAILLE PATTERN DOTS-1;So;0;L;;;;;N;;;;;
-2802;BRAILLE PATTERN DOTS-2;So;0;L;;;;;N;;;;;
-2803;BRAILLE PATTERN DOTS-12;So;0;L;;;;;N;;;;;
-2804;BRAILLE PATTERN DOTS-3;So;0;L;;;;;N;;;;;
-2805;BRAILLE PATTERN DOTS-13;So;0;L;;;;;N;;;;;
-2806;BRAILLE PATTERN DOTS-23;So;0;L;;;;;N;;;;;
-2807;BRAILLE PATTERN DOTS-123;So;0;L;;;;;N;;;;;
-2808;BRAILLE PATTERN DOTS-4;So;0;L;;;;;N;;;;;
-2809;BRAILLE PATTERN DOTS-14;So;0;L;;;;;N;;;;;
-280A;BRAILLE PATTERN DOTS-24;So;0;L;;;;;N;;;;;
-280B;BRAILLE PATTERN DOTS-124;So;0;L;;;;;N;;;;;
-280C;BRAILLE PATTERN DOTS-34;So;0;L;;;;;N;;;;;
-280D;BRAILLE PATTERN DOTS-134;So;0;L;;;;;N;;;;;
-280E;BRAILLE PATTERN DOTS-234;So;0;L;;;;;N;;;;;
-280F;BRAILLE PATTERN DOTS-1234;So;0;L;;;;;N;;;;;
-2810;BRAILLE PATTERN DOTS-5;So;0;L;;;;;N;;;;;
-2811;BRAILLE PATTERN DOTS-15;So;0;L;;;;;N;;;;;
-2812;BRAILLE PATTERN DOTS-25;So;0;L;;;;;N;;;;;
-2813;BRAILLE PATTERN DOTS-125;So;0;L;;;;;N;;;;;
-2814;BRAILLE PATTERN DOTS-35;So;0;L;;;;;N;;;;;
-2815;BRAILLE PATTERN DOTS-135;So;0;L;;;;;N;;;;;
-2816;BRAILLE PATTERN DOTS-235;So;0;L;;;;;N;;;;;
-2817;BRAILLE PATTERN DOTS-1235;So;0;L;;;;;N;;;;;
-2818;BRAILLE PATTERN DOTS-45;So;0;L;;;;;N;;;;;
-2819;BRAILLE PATTERN DOTS-145;So;0;L;;;;;N;;;;;
-281A;BRAILLE PATTERN DOTS-245;So;0;L;;;;;N;;;;;
-281B;BRAILLE PATTERN DOTS-1245;So;0;L;;;;;N;;;;;
-281C;BRAILLE PATTERN DOTS-345;So;0;L;;;;;N;;;;;
-281D;BRAILLE PATTERN DOTS-1345;So;0;L;;;;;N;;;;;
-281E;BRAILLE PATTERN DOTS-2345;So;0;L;;;;;N;;;;;
-281F;BRAILLE PATTERN DOTS-12345;So;0;L;;;;;N;;;;;
-2820;BRAILLE PATTERN DOTS-6;So;0;L;;;;;N;;;;;
-2821;BRAILLE PATTERN DOTS-16;So;0;L;;;;;N;;;;;
-2822;BRAILLE PATTERN DOTS-26;So;0;L;;;;;N;;;;;
-2823;BRAILLE PATTERN DOTS-126;So;0;L;;;;;N;;;;;
-2824;BRAILLE PATTERN DOTS-36;So;0;L;;;;;N;;;;;
-2825;BRAILLE PATTERN DOTS-136;So;0;L;;;;;N;;;;;
-2826;BRAILLE PATTERN DOTS-236;So;0;L;;;;;N;;;;;
-2827;BRAILLE PATTERN DOTS-1236;So;0;L;;;;;N;;;;;
-2828;BRAILLE PATTERN DOTS-46;So;0;L;;;;;N;;;;;
-2829;BRAILLE PATTERN DOTS-146;So;0;L;;;;;N;;;;;
-282A;BRAILLE PATTERN DOTS-246;So;0;L;;;;;N;;;;;
-282B;BRAILLE PATTERN DOTS-1246;So;0;L;;;;;N;;;;;
-282C;BRAILLE PATTERN DOTS-346;So;0;L;;;;;N;;;;;
-282D;BRAILLE PATTERN DOTS-1346;So;0;L;;;;;N;;;;;
-282E;BRAILLE PATTERN DOTS-2346;So;0;L;;;;;N;;;;;
-282F;BRAILLE PATTERN DOTS-12346;So;0;L;;;;;N;;;;;
-2830;BRAILLE PATTERN DOTS-56;So;0;L;;;;;N;;;;;
-2831;BRAILLE PATTERN DOTS-156;So;0;L;;;;;N;;;;;
-2832;BRAILLE PATTERN DOTS-256;So;0;L;;;;;N;;;;;
-2833;BRAILLE PATTERN DOTS-1256;So;0;L;;;;;N;;;;;
-2834;BRAILLE PATTERN DOTS-356;So;0;L;;;;;N;;;;;
-2835;BRAILLE PATTERN DOTS-1356;So;0;L;;;;;N;;;;;
-2836;BRAILLE PATTERN DOTS-2356;So;0;L;;;;;N;;;;;
-2837;BRAILLE PATTERN DOTS-12356;So;0;L;;;;;N;;;;;
-2838;BRAILLE PATTERN DOTS-456;So;0;L;;;;;N;;;;;
-2839;BRAILLE PATTERN DOTS-1456;So;0;L;;;;;N;;;;;
-283A;BRAILLE PATTERN DOTS-2456;So;0;L;;;;;N;;;;;
-283B;BRAILLE PATTERN DOTS-12456;So;0;L;;;;;N;;;;;
-283C;BRAILLE PATTERN DOTS-3456;So;0;L;;;;;N;;;;;
-283D;BRAILLE PATTERN DOTS-13456;So;0;L;;;;;N;;;;;
-283E;BRAILLE PATTERN DOTS-23456;So;0;L;;;;;N;;;;;
-283F;BRAILLE PATTERN DOTS-123456;So;0;L;;;;;N;;;;;
-2840;BRAILLE PATTERN DOTS-7;So;0;L;;;;;N;;;;;
-2841;BRAILLE PATTERN DOTS-17;So;0;L;;;;;N;;;;;
-2842;BRAILLE PATTERN DOTS-27;So;0;L;;;;;N;;;;;
-2843;BRAILLE PATTERN DOTS-127;So;0;L;;;;;N;;;;;
-2844;BRAILLE PATTERN DOTS-37;So;0;L;;;;;N;;;;;
-2845;BRAILLE PATTERN DOTS-137;So;0;L;;;;;N;;;;;
-2846;BRAILLE PATTERN DOTS-237;So;0;L;;;;;N;;;;;
-2847;BRAILLE PATTERN DOTS-1237;So;0;L;;;;;N;;;;;
-2848;BRAILLE PATTERN DOTS-47;So;0;L;;;;;N;;;;;
-2849;BRAILLE PATTERN DOTS-147;So;0;L;;;;;N;;;;;
-284A;BRAILLE PATTERN DOTS-247;So;0;L;;;;;N;;;;;
-284B;BRAILLE PATTERN DOTS-1247;So;0;L;;;;;N;;;;;
-284C;BRAILLE PATTERN DOTS-347;So;0;L;;;;;N;;;;;
-284D;BRAILLE PATTERN DOTS-1347;So;0;L;;;;;N;;;;;
-284E;BRAILLE PATTERN DOTS-2347;So;0;L;;;;;N;;;;;
-284F;BRAILLE PATTERN DOTS-12347;So;0;L;;;;;N;;;;;
-2850;BRAILLE PATTERN DOTS-57;So;0;L;;;;;N;;;;;
-2851;BRAILLE PATTERN DOTS-157;So;0;L;;;;;N;;;;;
-2852;BRAILLE PATTERN DOTS-257;So;0;L;;;;;N;;;;;
-2853;BRAILLE PATTERN DOTS-1257;So;0;L;;;;;N;;;;;
-2854;BRAILLE PATTERN DOTS-357;So;0;L;;;;;N;;;;;
-2855;BRAILLE PATTERN DOTS-1357;So;0;L;;;;;N;;;;;
-2856;BRAILLE PATTERN DOTS-2357;So;0;L;;;;;N;;;;;
-2857;BRAILLE PATTERN DOTS-12357;So;0;L;;;;;N;;;;;
-2858;BRAILLE PATTERN DOTS-457;So;0;L;;;;;N;;;;;
-2859;BRAILLE PATTERN DOTS-1457;So;0;L;;;;;N;;;;;
-285A;BRAILLE PATTERN DOTS-2457;So;0;L;;;;;N;;;;;
-285B;BRAILLE PATTERN DOTS-12457;So;0;L;;;;;N;;;;;
-285C;BRAILLE PATTERN DOTS-3457;So;0;L;;;;;N;;;;;
-285D;BRAILLE PATTERN DOTS-13457;So;0;L;;;;;N;;;;;
-285E;BRAILLE PATTERN DOTS-23457;So;0;L;;;;;N;;;;;
-285F;BRAILLE PATTERN DOTS-123457;So;0;L;;;;;N;;;;;
-2860;BRAILLE PATTERN DOTS-67;So;0;L;;;;;N;;;;;
-2861;BRAILLE PATTERN DOTS-167;So;0;L;;;;;N;;;;;
-2862;BRAILLE PATTERN DOTS-267;So;0;L;;;;;N;;;;;
-2863;BRAILLE PATTERN DOTS-1267;So;0;L;;;;;N;;;;;
-2864;BRAILLE PATTERN DOTS-367;So;0;L;;;;;N;;;;;
-2865;BRAILLE PATTERN DOTS-1367;So;0;L;;;;;N;;;;;
-2866;BRAILLE PATTERN DOTS-2367;So;0;L;;;;;N;;;;;
-2867;BRAILLE PATTERN DOTS-12367;So;0;L;;;;;N;;;;;
-2868;BRAILLE PATTERN DOTS-467;So;0;L;;;;;N;;;;;
-2869;BRAILLE PATTERN DOTS-1467;So;0;L;;;;;N;;;;;
-286A;BRAILLE PATTERN DOTS-2467;So;0;L;;;;;N;;;;;
-286B;BRAILLE PATTERN DOTS-12467;So;0;L;;;;;N;;;;;
-286C;BRAILLE PATTERN DOTS-3467;So;0;L;;;;;N;;;;;
-286D;BRAILLE PATTERN DOTS-13467;So;0;L;;;;;N;;;;;
-286E;BRAILLE PATTERN DOTS-23467;So;0;L;;;;;N;;;;;
-286F;BRAILLE PATTERN DOTS-123467;So;0;L;;;;;N;;;;;
-2870;BRAILLE PATTERN DOTS-567;So;0;L;;;;;N;;;;;
-2871;BRAILLE PATTERN DOTS-1567;So;0;L;;;;;N;;;;;
-2872;BRAILLE PATTERN DOTS-2567;So;0;L;;;;;N;;;;;
-2873;BRAILLE PATTERN DOTS-12567;So;0;L;;;;;N;;;;;
-2874;BRAILLE PATTERN DOTS-3567;So;0;L;;;;;N;;;;;
-2875;BRAILLE PATTERN DOTS-13567;So;0;L;;;;;N;;;;;
-2876;BRAILLE PATTERN DOTS-23567;So;0;L;;;;;N;;;;;
-2877;BRAILLE PATTERN DOTS-123567;So;0;L;;;;;N;;;;;
-2878;BRAILLE PATTERN DOTS-4567;So;0;L;;;;;N;;;;;
-2879;BRAILLE PATTERN DOTS-14567;So;0;L;;;;;N;;;;;
-287A;BRAILLE PATTERN DOTS-24567;So;0;L;;;;;N;;;;;
-287B;BRAILLE PATTERN DOTS-124567;So;0;L;;;;;N;;;;;
-287C;BRAILLE PATTERN DOTS-34567;So;0;L;;;;;N;;;;;
-287D;BRAILLE PATTERN DOTS-134567;So;0;L;;;;;N;;;;;
-287E;BRAILLE PATTERN DOTS-234567;So;0;L;;;;;N;;;;;
-287F;BRAILLE PATTERN DOTS-1234567;So;0;L;;;;;N;;;;;
-2880;BRAILLE PATTERN DOTS-8;So;0;L;;;;;N;;;;;
-2881;BRAILLE PATTERN DOTS-18;So;0;L;;;;;N;;;;;
-2882;BRAILLE PATTERN DOTS-28;So;0;L;;;;;N;;;;;
-2883;BRAILLE PATTERN DOTS-128;So;0;L;;;;;N;;;;;
-2884;BRAILLE PATTERN DOTS-38;So;0;L;;;;;N;;;;;
-2885;BRAILLE PATTERN DOTS-138;So;0;L;;;;;N;;;;;
-2886;BRAILLE PATTERN DOTS-238;So;0;L;;;;;N;;;;;
-2887;BRAILLE PATTERN DOTS-1238;So;0;L;;;;;N;;;;;
-2888;BRAILLE PATTERN DOTS-48;So;0;L;;;;;N;;;;;
-2889;BRAILLE PATTERN DOTS-148;So;0;L;;;;;N;;;;;
-288A;BRAILLE PATTERN DOTS-248;So;0;L;;;;;N;;;;;
-288B;BRAILLE PATTERN DOTS-1248;So;0;L;;;;;N;;;;;
-288C;BRAILLE PATTERN DOTS-348;So;0;L;;;;;N;;;;;
-288D;BRAILLE PATTERN DOTS-1348;So;0;L;;;;;N;;;;;
-288E;BRAILLE PATTERN DOTS-2348;So;0;L;;;;;N;;;;;
-288F;BRAILLE PATTERN DOTS-12348;So;0;L;;;;;N;;;;;
-2890;BRAILLE PATTERN DOTS-58;So;0;L;;;;;N;;;;;
-2891;BRAILLE PATTERN DOTS-158;So;0;L;;;;;N;;;;;
-2892;BRAILLE PATTERN DOTS-258;So;0;L;;;;;N;;;;;
-2893;BRAILLE PATTERN DOTS-1258;So;0;L;;;;;N;;;;;
-2894;BRAILLE PATTERN DOTS-358;So;0;L;;;;;N;;;;;
-2895;BRAILLE PATTERN DOTS-1358;So;0;L;;;;;N;;;;;
-2896;BRAILLE PATTERN DOTS-2358;So;0;L;;;;;N;;;;;
-2897;BRAILLE PATTERN DOTS-12358;So;0;L;;;;;N;;;;;
-2898;BRAILLE PATTERN DOTS-458;So;0;L;;;;;N;;;;;
-2899;BRAILLE PATTERN DOTS-1458;So;0;L;;;;;N;;;;;
-289A;BRAILLE PATTERN DOTS-2458;So;0;L;;;;;N;;;;;
-289B;BRAILLE PATTERN DOTS-12458;So;0;L;;;;;N;;;;;
-289C;BRAILLE PATTERN DOTS-3458;So;0;L;;;;;N;;;;;
-289D;BRAILLE PATTERN DOTS-13458;So;0;L;;;;;N;;;;;
-289E;BRAILLE PATTERN DOTS-23458;So;0;L;;;;;N;;;;;
-289F;BRAILLE PATTERN DOTS-123458;So;0;L;;;;;N;;;;;
-28A0;BRAILLE PATTERN DOTS-68;So;0;L;;;;;N;;;;;
-28A1;BRAILLE PATTERN DOTS-168;So;0;L;;;;;N;;;;;
-28A2;BRAILLE PATTERN DOTS-268;So;0;L;;;;;N;;;;;
-28A3;BRAILLE PATTERN DOTS-1268;So;0;L;;;;;N;;;;;
-28A4;BRAILLE PATTERN DOTS-368;So;0;L;;;;;N;;;;;
-28A5;BRAILLE PATTERN DOTS-1368;So;0;L;;;;;N;;;;;
-28A6;BRAILLE PATTERN DOTS-2368;So;0;L;;;;;N;;;;;
-28A7;BRAILLE PATTERN DOTS-12368;So;0;L;;;;;N;;;;;
-28A8;BRAILLE PATTERN DOTS-468;So;0;L;;;;;N;;;;;
-28A9;BRAILLE PATTERN DOTS-1468;So;0;L;;;;;N;;;;;
-28AA;BRAILLE PATTERN DOTS-2468;So;0;L;;;;;N;;;;;
-28AB;BRAILLE PATTERN DOTS-12468;So;0;L;;;;;N;;;;;
-28AC;BRAILLE PATTERN DOTS-3468;So;0;L;;;;;N;;;;;
-28AD;BRAILLE PATTERN DOTS-13468;So;0;L;;;;;N;;;;;
-28AE;BRAILLE PATTERN DOTS-23468;So;0;L;;;;;N;;;;;
-28AF;BRAILLE PATTERN DOTS-123468;So;0;L;;;;;N;;;;;
-28B0;BRAILLE PATTERN DOTS-568;So;0;L;;;;;N;;;;;
-28B1;BRAILLE PATTERN DOTS-1568;So;0;L;;;;;N;;;;;
-28B2;BRAILLE PATTERN DOTS-2568;So;0;L;;;;;N;;;;;
-28B3;BRAILLE PATTERN DOTS-12568;So;0;L;;;;;N;;;;;
-28B4;BRAILLE PATTERN DOTS-3568;So;0;L;;;;;N;;;;;
-28B5;BRAILLE PATTERN DOTS-13568;So;0;L;;;;;N;;;;;
-28B6;BRAILLE PATTERN DOTS-23568;So;0;L;;;;;N;;;;;
-28B7;BRAILLE PATTERN DOTS-123568;So;0;L;;;;;N;;;;;
-28B8;BRAILLE PATTERN DOTS-4568;So;0;L;;;;;N;;;;;
-28B9;BRAILLE PATTERN DOTS-14568;So;0;L;;;;;N;;;;;
-28BA;BRAILLE PATTERN DOTS-24568;So;0;L;;;;;N;;;;;
-28BB;BRAILLE PATTERN DOTS-124568;So;0;L;;;;;N;;;;;
-28BC;BRAILLE PATTERN DOTS-34568;So;0;L;;;;;N;;;;;
-28BD;BRAILLE PATTERN DOTS-134568;So;0;L;;;;;N;;;;;
-28BE;BRAILLE PATTERN DOTS-234568;So;0;L;;;;;N;;;;;
-28BF;BRAILLE PATTERN DOTS-1234568;So;0;L;;;;;N;;;;;
-28C0;BRAILLE PATTERN DOTS-78;So;0;L;;;;;N;;;;;
-28C1;BRAILLE PATTERN DOTS-178;So;0;L;;;;;N;;;;;
-28C2;BRAILLE PATTERN DOTS-278;So;0;L;;;;;N;;;;;
-28C3;BRAILLE PATTERN DOTS-1278;So;0;L;;;;;N;;;;;
-28C4;BRAILLE PATTERN DOTS-378;So;0;L;;;;;N;;;;;
-28C5;BRAILLE PATTERN DOTS-1378;So;0;L;;;;;N;;;;;
-28C6;BRAILLE PATTERN DOTS-2378;So;0;L;;;;;N;;;;;
-28C7;BRAILLE PATTERN DOTS-12378;So;0;L;;;;;N;;;;;
-28C8;BRAILLE PATTERN DOTS-478;So;0;L;;;;;N;;;;;
-28C9;BRAILLE PATTERN DOTS-1478;So;0;L;;;;;N;;;;;
-28CA;BRAILLE PATTERN DOTS-2478;So;0;L;;;;;N;;;;;
-28CB;BRAILLE PATTERN DOTS-12478;So;0;L;;;;;N;;;;;
-28CC;BRAILLE PATTERN DOTS-3478;So;0;L;;;;;N;;;;;
-28CD;BRAILLE PATTERN DOTS-13478;So;0;L;;;;;N;;;;;
-28CE;BRAILLE PATTERN DOTS-23478;So;0;L;;;;;N;;;;;
-28CF;BRAILLE PATTERN DOTS-123478;So;0;L;;;;;N;;;;;
-28D0;BRAILLE PATTERN DOTS-578;So;0;L;;;;;N;;;;;
-28D1;BRAILLE PATTERN DOTS-1578;So;0;L;;;;;N;;;;;
-28D2;BRAILLE PATTERN DOTS-2578;So;0;L;;;;;N;;;;;
-28D3;BRAILLE PATTERN DOTS-12578;So;0;L;;;;;N;;;;;
-28D4;BRAILLE PATTERN DOTS-3578;So;0;L;;;;;N;;;;;
-28D5;BRAILLE PATTERN DOTS-13578;So;0;L;;;;;N;;;;;
-28D6;BRAILLE PATTERN DOTS-23578;So;0;L;;;;;N;;;;;
-28D7;BRAILLE PATTERN DOTS-123578;So;0;L;;;;;N;;;;;
-28D8;BRAILLE PATTERN DOTS-4578;So;0;L;;;;;N;;;;;
-28D9;BRAILLE PATTERN DOTS-14578;So;0;L;;;;;N;;;;;
-28DA;BRAILLE PATTERN DOTS-24578;So;0;L;;;;;N;;;;;
-28DB;BRAILLE PATTERN DOTS-124578;So;0;L;;;;;N;;;;;
-28DC;BRAILLE PATTERN DOTS-34578;So;0;L;;;;;N;;;;;
-28DD;BRAILLE PATTERN DOTS-134578;So;0;L;;;;;N;;;;;
-28DE;BRAILLE PATTERN DOTS-234578;So;0;L;;;;;N;;;;;
-28DF;BRAILLE PATTERN DOTS-1234578;So;0;L;;;;;N;;;;;
-28E0;BRAILLE PATTERN DOTS-678;So;0;L;;;;;N;;;;;
-28E1;BRAILLE PATTERN DOTS-1678;So;0;L;;;;;N;;;;;
-28E2;BRAILLE PATTERN DOTS-2678;So;0;L;;;;;N;;;;;
-28E3;BRAILLE PATTERN DOTS-12678;So;0;L;;;;;N;;;;;
-28E4;BRAILLE PATTERN DOTS-3678;So;0;L;;;;;N;;;;;
-28E5;BRAILLE PATTERN DOTS-13678;So;0;L;;;;;N;;;;;
-28E6;BRAILLE PATTERN DOTS-23678;So;0;L;;;;;N;;;;;
-28E7;BRAILLE PATTERN DOTS-123678;So;0;L;;;;;N;;;;;
-28E8;BRAILLE PATTERN DOTS-4678;So;0;L;;;;;N;;;;;
-28E9;BRAILLE PATTERN DOTS-14678;So;0;L;;;;;N;;;;;
-28EA;BRAILLE PATTERN DOTS-24678;So;0;L;;;;;N;;;;;
-28EB;BRAILLE PATTERN DOTS-124678;So;0;L;;;;;N;;;;;
-28EC;BRAILLE PATTERN DOTS-34678;So;0;L;;;;;N;;;;;
-28ED;BRAILLE PATTERN DOTS-134678;So;0;L;;;;;N;;;;;
-28EE;BRAILLE PATTERN DOTS-234678;So;0;L;;;;;N;;;;;
-28EF;BRAILLE PATTERN DOTS-1234678;So;0;L;;;;;N;;;;;
-28F0;BRAILLE PATTERN DOTS-5678;So;0;L;;;;;N;;;;;
-28F1;BRAILLE PATTERN DOTS-15678;So;0;L;;;;;N;;;;;
-28F2;BRAILLE PATTERN DOTS-25678;So;0;L;;;;;N;;;;;
-28F3;BRAILLE PATTERN DOTS-125678;So;0;L;;;;;N;;;;;
-28F4;BRAILLE PATTERN DOTS-35678;So;0;L;;;;;N;;;;;
-28F5;BRAILLE PATTERN DOTS-135678;So;0;L;;;;;N;;;;;
-28F6;BRAILLE PATTERN DOTS-235678;So;0;L;;;;;N;;;;;
-28F7;BRAILLE PATTERN DOTS-1235678;So;0;L;;;;;N;;;;;
-28F8;BRAILLE PATTERN DOTS-45678;So;0;L;;;;;N;;;;;
-28F9;BRAILLE PATTERN DOTS-145678;So;0;L;;;;;N;;;;;
-28FA;BRAILLE PATTERN DOTS-245678;So;0;L;;;;;N;;;;;
-28FB;BRAILLE PATTERN DOTS-1245678;So;0;L;;;;;N;;;;;
-28FC;BRAILLE PATTERN DOTS-345678;So;0;L;;;;;N;;;;;
-28FD;BRAILLE PATTERN DOTS-1345678;So;0;L;;;;;N;;;;;
-28FE;BRAILLE PATTERN DOTS-2345678;So;0;L;;;;;N;;;;;
-28FF;BRAILLE PATTERN DOTS-12345678;So;0;L;;;;;N;;;;;
-2900;RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2901;RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2902;LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2903;RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2904;LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2905;RIGHTWARDS TWO-HEADED ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
-2906;LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
-2907;RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
-2908;DOWNWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
-2909;UPWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
-290A;UPWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;;
-290B;DOWNWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;;
-290C;LEFTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
-290D;RIGHTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
-290E;LEFTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
-290F;RIGHTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
-2910;RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
-2911;RIGHTWARDS ARROW WITH DOTTED STEM;Sm;0;ON;;;;;N;;;;;
-2912;UPWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;;
-2913;DOWNWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;;
-2914;RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2915;RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2916;RIGHTWARDS TWO-HEADED ARROW WITH TAIL;Sm;0;ON;;;;;N;;;;;
-2917;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2918;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2919;LEFTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
-291A;RIGHTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
-291B;LEFTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
-291C;RIGHTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;;
-291D;LEFTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
-291E;RIGHTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
-291F;LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
-2920;RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
-2921;NORTH WEST AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
-2922;NORTH EAST AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
-2923;NORTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
-2924;NORTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
-2925;SOUTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
-2926;SOUTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;;
-2927;NORTH WEST ARROW AND NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
-2928;NORTH EAST ARROW AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
-2929;SOUTH EAST ARROW AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
-292A;SOUTH WEST ARROW AND NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
-292B;RISING DIAGONAL CROSSING FALLING DIAGONAL;Sm;0;ON;;;;;N;;;;;
-292C;FALLING DIAGONAL CROSSING RISING DIAGONAL;Sm;0;ON;;;;;N;;;;;
-292D;SOUTH EAST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
-292E;NORTH EAST ARROW CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
-292F;FALLING DIAGONAL CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
-2930;RISING DIAGONAL CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
-2931;NORTH EAST ARROW CROSSING NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;;
-2932;NORTH WEST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;;
-2933;WAVE ARROW POINTING DIRECTLY RIGHT;Sm;0;ON;;;;;N;;;;;
-2934;ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS;Sm;0;ON;;;;;N;;;;;
-2935;ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS;Sm;0;ON;;;;;N;;;;;
-2936;ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS;Sm;0;ON;;;;;N;;;;;
-2937;ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS;Sm;0;ON;;;;;N;;;;;
-2938;RIGHT-SIDE ARC CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
-2939;LEFT-SIDE ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
-293A;TOP ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
-293B;BOTTOM ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
-293C;TOP ARC CLOCKWISE ARROW WITH MINUS;Sm;0;ON;;;;;N;;;;;
-293D;TOP ARC ANTICLOCKWISE ARROW WITH PLUS;Sm;0;ON;;;;;N;;;;;
-293E;LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
-293F;LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;;
-2940;ANTICLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
-2941;CLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;;
-2942;RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
-2943;LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
-2944;SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
-2945;RIGHTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;;
-2946;LEFTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;;
-2947;RIGHTWARDS ARROW THROUGH X;Sm;0;ON;;;;;N;;;;;
-2948;LEFT RIGHT ARROW THROUGH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
-2949;UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
-294A;LEFT BARB UP RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;;
-294B;LEFT BARB DOWN RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;;
-294C;UP BARB RIGHT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;;
-294D;UP BARB LEFT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;;
-294E;LEFT BARB UP RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;;
-294F;UP BARB RIGHT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;;
-2950;LEFT BARB DOWN RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;;
-2951;UP BARB LEFT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;;
-2952;LEFTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;;
-2953;RIGHTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;;
-2954;UPWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;;
-2955;DOWNWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;;
-2956;LEFTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;;
-2957;RIGHTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;;
-2958;UPWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;;
-2959;DOWNWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;;
-295A;LEFTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;;
-295B;RIGHTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;;
-295C;UPWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;;
-295D;DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;;
-295E;LEFTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;;
-295F;RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;;
-2960;UPWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;;
-2961;DOWNWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;;
-2962;LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
-2963;UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
-2964;RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
-2965;DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
-2966;LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;;
-2967;LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
-2968;RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;;
-2969;RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;;
-296A;LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;;
-296B;LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;;
-296C;RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;;
-296D;RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;;
-296E;UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
-296F;DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;;
-2970;RIGHT DOUBLE ARROW WITH ROUNDED HEAD;Sm;0;ON;;;;;N;;;;;
-2971;EQUALS SIGN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
-2972;TILDE OPERATOR ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
-2973;LEFTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
-2974;RIGHTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
-2975;RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;;
-2976;LESS-THAN ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
-2977;LEFTWARDS ARROW THROUGH LESS-THAN;Sm;0;ON;;;;;N;;;;;
-2978;GREATER-THAN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
-2979;SUBSET ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
-297A;LEFTWARDS ARROW THROUGH SUBSET;Sm;0;ON;;;;;N;;;;;
-297B;SUPERSET ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
-297C;LEFT FISH TAIL;Sm;0;ON;;;;;N;;;;;
-297D;RIGHT FISH TAIL;Sm;0;ON;;;;;N;;;;;
-297E;UP FISH TAIL;Sm;0;ON;;;;;N;;;;;
-297F;DOWN FISH TAIL;Sm;0;ON;;;;;N;;;;;
-2980;TRIPLE VERTICAL BAR DELIMITER;Sm;0;ON;;;;;N;;;;;
-2981;Z NOTATION SPOT;Sm;0;ON;;;;;N;;;;;
-2982;Z NOTATION TYPE COLON;Sm;0;ON;;;;;N;;;;;
-2983;LEFT WHITE CURLY BRACKET;Ps;0;ON;;;;;Y;;;;;
-2984;RIGHT WHITE CURLY BRACKET;Pe;0;ON;;;;;Y;;;;;
-2985;LEFT WHITE PARENTHESIS;Ps;0;ON;;;;;Y;;;;;
-2986;RIGHT WHITE PARENTHESIS;Pe;0;ON;;;;;Y;;;;;
-2987;Z NOTATION LEFT IMAGE BRACKET;Ps;0;ON;;;;;Y;;;;;
-2988;Z NOTATION RIGHT IMAGE BRACKET;Pe;0;ON;;;;;Y;;;;;
-2989;Z NOTATION LEFT BINDING BRACKET;Ps;0;ON;;;;;Y;;;;;
-298A;Z NOTATION RIGHT BINDING BRACKET;Pe;0;ON;;;;;Y;;;;;
-298B;LEFT SQUARE BRACKET WITH UNDERBAR;Ps;0;ON;;;;;Y;;;;;
-298C;RIGHT SQUARE BRACKET WITH UNDERBAR;Pe;0;ON;;;;;Y;;;;;
-298D;LEFT SQUARE BRACKET WITH TICK IN TOP CORNER;Ps;0;ON;;;;;Y;;;;;
-298E;RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Pe;0;ON;;;;;Y;;;;;
-298F;LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Ps;0;ON;;;;;Y;;;;;
-2990;RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER;Pe;0;ON;;;;;Y;;;;;
-2991;LEFT ANGLE BRACKET WITH DOT;Ps;0;ON;;;;;Y;;;;;
-2992;RIGHT ANGLE BRACKET WITH DOT;Pe;0;ON;;;;;Y;;;;;
-2993;LEFT ARC LESS-THAN BRACKET;Ps;0;ON;;;;;Y;;;;;
-2994;RIGHT ARC GREATER-THAN BRACKET;Pe;0;ON;;;;;Y;;;;;
-2995;DOUBLE LEFT ARC GREATER-THAN BRACKET;Ps;0;ON;;;;;Y;;;;;
-2996;DOUBLE RIGHT ARC LESS-THAN BRACKET;Pe;0;ON;;;;;Y;;;;;
-2997;LEFT BLACK TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;;;;;
-2998;RIGHT BLACK TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;;;;;
-2999;DOTTED FENCE;Sm;0;ON;;;;;N;;;;;
-299A;VERTICAL ZIGZAG LINE;Sm;0;ON;;;;;N;;;;;
-299B;MEASURED ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;;
-299C;RIGHT ANGLE VARIANT WITH SQUARE;Sm;0;ON;;;;;Y;;;;;
-299D;MEASURED RIGHT ANGLE WITH DOT;Sm;0;ON;;;;;Y;;;;;
-299E;ANGLE WITH S INSIDE;Sm;0;ON;;;;;Y;;;;;
-299F;ACUTE ANGLE;Sm;0;ON;;;;;Y;;;;;
-29A0;SPHERICAL ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;;
-29A1;SPHERICAL ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;;
-29A2;TURNED ANGLE;Sm;0;ON;;;;;Y;;;;;
-29A3;REVERSED ANGLE;Sm;0;ON;;;;;Y;;;;;
-29A4;ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
-29A5;REVERSED ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
-29A6;OBLIQUE ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;;
-29A7;OBLIQUE ANGLE OPENING DOWN;Sm;0;ON;;;;;Y;;;;;
-29A8;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT;Sm;0;ON;;;;;Y;;;;;
-29A9;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT;Sm;0;ON;;;;;Y;;;;;
-29AA;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT;Sm;0;ON;;;;;Y;;;;;
-29AB;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT;Sm;0;ON;;;;;Y;;;;;
-29AC;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP;Sm;0;ON;;;;;Y;;;;;
-29AD;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP;Sm;0;ON;;;;;Y;;;;;
-29AE;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN;Sm;0;ON;;;;;Y;;;;;
-29AF;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN;Sm;0;ON;;;;;Y;;;;;
-29B0;REVERSED EMPTY SET;Sm;0;ON;;;;;N;;;;;
-29B1;EMPTY SET WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
-29B2;EMPTY SET WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
-29B3;EMPTY SET WITH RIGHT ARROW ABOVE;Sm;0;ON;;;;;N;;;;;
-29B4;EMPTY SET WITH LEFT ARROW ABOVE;Sm;0;ON;;;;;N;;;;;
-29B5;CIRCLE WITH HORIZONTAL BAR;Sm;0;ON;;;;;N;;;;;
-29B6;CIRCLED VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
-29B7;CIRCLED PARALLEL;Sm;0;ON;;;;;N;;;;;
-29B8;CIRCLED REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;;
-29B9;CIRCLED PERPENDICULAR;Sm;0;ON;;;;;N;;;;;
-29BA;CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
-29BB;CIRCLE WITH SUPERIMPOSED X;Sm;0;ON;;;;;N;;;;;
-29BC;CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN;Sm;0;ON;;;;;N;;;;;
-29BD;UP ARROW THROUGH CIRCLE;Sm;0;ON;;;;;N;;;;;
-29BE;CIRCLED WHITE BULLET;Sm;0;ON;;;;;N;;;;;
-29BF;CIRCLED BULLET;Sm;0;ON;;;;;N;;;;;
-29C0;CIRCLED LESS-THAN;Sm;0;ON;;;;;Y;;;;;
-29C1;CIRCLED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
-29C2;CIRCLE WITH SMALL CIRCLE TO THE RIGHT;Sm;0;ON;;;;;Y;;;;;
-29C3;CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT;Sm;0;ON;;;;;Y;;;;;
-29C4;SQUARED RISING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;;
-29C5;SQUARED FALLING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;;
-29C6;SQUARED ASTERISK;Sm;0;ON;;;;;N;;;;;
-29C7;SQUARED SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
-29C8;SQUARED SQUARE;Sm;0;ON;;;;;N;;;;;
-29C9;TWO JOINED SQUARES;Sm;0;ON;;;;;Y;;;;;
-29CA;TRIANGLE WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
-29CB;TRIANGLE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
-29CC;S IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
-29CD;TRIANGLE WITH SERIFS AT BOTTOM;Sm;0;ON;;;;;N;;;;;
-29CE;RIGHT TRIANGLE ABOVE LEFT TRIANGLE;Sm;0;ON;;;;;Y;;;;;
-29CF;LEFT TRIANGLE BESIDE VERTICAL BAR;Sm;0;ON;;;;;Y;;;;;
-29D0;VERTICAL BAR BESIDE RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;;
-29D1;BOWTIE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
-29D2;BOWTIE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
-29D3;BLACK BOWTIE;Sm;0;ON;;;;;N;;;;;
-29D4;TIMES WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
-29D5;TIMES WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
-29D6;WHITE HOURGLASS;Sm;0;ON;;;;;N;;;;;
-29D7;BLACK HOURGLASS;Sm;0;ON;;;;;N;;;;;
-29D8;LEFT WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;;
-29D9;RIGHT WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;;
-29DA;LEFT DOUBLE WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;;
-29DB;RIGHT DOUBLE WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;;
-29DC;INCOMPLETE INFINITY;Sm;0;ON;;;;;Y;;;;;
-29DD;TIE OVER INFINITY;Sm;0;ON;;;;;N;;;;;
-29DE;INFINITY NEGATED WITH VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
-29DF;DOUBLE-ENDED MULTIMAP;Sm;0;ON;;;;;N;;;;;
-29E0;SQUARE WITH CONTOURED OUTLINE;Sm;0;ON;;;;;N;;;;;
-29E1;INCREASES AS;Sm;0;ON;;;;;Y;;;;;
-29E2;SHUFFLE PRODUCT;Sm;0;ON;;;;;N;;;;;
-29E3;EQUALS SIGN AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;;
-29E4;EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;;
-29E5;IDENTICAL TO AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;;
-29E6;GLEICH STARK;Sm;0;ON;;;;;N;;;;;
-29E7;THERMODYNAMIC;Sm;0;ON;;;;;N;;;;;
-29E8;DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
-29E9;DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;;
-29EA;BLACK DIAMOND WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;
-29EB;BLACK LOZENGE;Sm;0;ON;;;;;N;;;;;
-29EC;WHITE CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;
-29ED;BLACK CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;;
-29EE;ERROR-BARRED WHITE SQUARE;Sm;0;ON;;;;;N;;;;;
-29EF;ERROR-BARRED BLACK SQUARE;Sm;0;ON;;;;;N;;;;;
-29F0;ERROR-BARRED WHITE DIAMOND;Sm;0;ON;;;;;N;;;;;
-29F1;ERROR-BARRED BLACK DIAMOND;Sm;0;ON;;;;;N;;;;;
-29F2;ERROR-BARRED WHITE CIRCLE;Sm;0;ON;;;;;N;;;;;
-29F3;ERROR-BARRED BLACK CIRCLE;Sm;0;ON;;;;;N;;;;;
-29F4;RULE-DELAYED;Sm;0;ON;;;;;Y;;;;;
-29F5;REVERSE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;;
-29F6;SOLIDUS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
-29F7;REVERSE SOLIDUS WITH HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;;
-29F8;BIG SOLIDUS;Sm;0;ON;;;;;Y;;;;;
-29F9;BIG REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;;
-29FA;DOUBLE PLUS;Sm;0;ON;;;;;N;;;;;
-29FB;TRIPLE PLUS;Sm;0;ON;;;;;N;;;;;
-29FC;LEFT-POINTING CURVED ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;;
-29FD;RIGHT-POINTING CURVED ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;;
-29FE;TINY;Sm;0;ON;;;;;N;;;;;
-29FF;MINY;Sm;0;ON;;;;;N;;;;;
-2A00;N-ARY CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;;
-2A01;N-ARY CIRCLED PLUS OPERATOR;Sm;0;ON;;;;;N;;;;;
-2A02;N-ARY CIRCLED TIMES OPERATOR;Sm;0;ON;;;;;N;;;;;
-2A03;N-ARY UNION OPERATOR WITH DOT;Sm;0;ON;;;;;N;;;;;
-2A04;N-ARY UNION OPERATOR WITH PLUS;Sm;0;ON;;;;;N;;;;;
-2A05;N-ARY SQUARE INTERSECTION OPERATOR;Sm;0;ON;;;;;N;;;;;
-2A06;N-ARY SQUARE UNION OPERATOR;Sm;0;ON;;;;;N;;;;;
-2A07;TWO LOGICAL AND OPERATOR;Sm;0;ON;;;;;N;;;;;
-2A08;TWO LOGICAL OR OPERATOR;Sm;0;ON;;;;;N;;;;;
-2A09;N-ARY TIMES OPERATOR;Sm;0;ON;;;;;N;;;;;
-2A0A;MODULO TWO SUM;Sm;0;ON;;;;;Y;;;;;
-2A0B;SUMMATION WITH INTEGRAL;Sm;0;ON;;;;;Y;;;;;
-2A0C;QUADRUPLE INTEGRAL OPERATOR;Sm;0;ON;<compat> 222B 222B 222B 222B;;;;Y;;;;;
-2A0D;FINITE PART INTEGRAL;Sm;0;ON;;;;;Y;;;;;
-2A0E;INTEGRAL WITH DOUBLE STROKE;Sm;0;ON;;;;;Y;;;;;
-2A0F;INTEGRAL AVERAGE WITH SLASH;Sm;0;ON;;;;;Y;;;;;
-2A10;CIRCULATION FUNCTION;Sm;0;ON;;;;;Y;;;;;
-2A11;ANTICLOCKWISE INTEGRATION;Sm;0;ON;;;;;Y;;;;;
-2A12;LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;;
-2A13;LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;;
-2A14;LINE INTEGRATION NOT INCLUDING THE POLE;Sm;0;ON;;;;;Y;;;;;
-2A15;INTEGRAL AROUND A POINT OPERATOR;Sm;0;ON;;;;;Y;;;;;
-2A16;QUATERNION INTEGRAL OPERATOR;Sm;0;ON;;;;;Y;;;;;
-2A17;INTEGRAL WITH LEFTWARDS ARROW WITH HOOK;Sm;0;ON;;;;;Y;;;;;
-2A18;INTEGRAL WITH TIMES SIGN;Sm;0;ON;;;;;Y;;;;;
-2A19;INTEGRAL WITH INTERSECTION;Sm;0;ON;;;;;Y;;;;;
-2A1A;INTEGRAL WITH UNION;Sm;0;ON;;;;;Y;;;;;
-2A1B;INTEGRAL WITH OVERBAR;Sm;0;ON;;;;;Y;;;;;
-2A1C;INTEGRAL WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
-2A1D;JOIN;Sm;0;ON;;;;;N;;;;;
-2A1E;LARGE LEFT TRIANGLE OPERATOR;Sm;0;ON;;;;;Y;;;;;
-2A1F;Z NOTATION SCHEMA COMPOSITION;Sm;0;ON;;;;;Y;;;;;
-2A20;Z NOTATION SCHEMA PIPING;Sm;0;ON;;;;;Y;;;;;
-2A21;Z NOTATION SCHEMA PROJECTION;Sm;0;ON;;;;;Y;;;;;
-2A22;PLUS SIGN WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
-2A23;PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE;Sm;0;ON;;;;;N;;;;;
-2A24;PLUS SIGN WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;;
-2A25;PLUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;
-2A26;PLUS SIGN WITH TILDE BELOW;Sm;0;ON;;;;;Y;;;;;
-2A27;PLUS SIGN WITH SUBSCRIPT TWO;Sm;0;ON;;;;;N;;;;;
-2A28;PLUS SIGN WITH BLACK TRIANGLE;Sm;0;ON;;;;;N;;;;;
-2A29;MINUS SIGN WITH COMMA ABOVE;Sm;0;ON;;;;;Y;;;;;
-2A2A;MINUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;
-2A2B;MINUS SIGN WITH FALLING DOTS;Sm;0;ON;;;;;Y;;;;;
-2A2C;MINUS SIGN WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;;
-2A2D;PLUS SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
-2A2E;PLUS SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
-2A2F;VECTOR OR CROSS PRODUCT;Sm;0;ON;;;;;N;;;;;
-2A30;MULTIPLICATION SIGN WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
-2A31;MULTIPLICATION SIGN WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
-2A32;SEMIDIRECT PRODUCT WITH BOTTOM CLOSED;Sm;0;ON;;;;;N;;;;;
-2A33;SMASH PRODUCT;Sm;0;ON;;;;;N;;;;;
-2A34;MULTIPLICATION SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
-2A35;MULTIPLICATION SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;;
-2A36;CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;N;;;;;
-2A37;MULTIPLICATION SIGN IN DOUBLE CIRCLE;Sm;0;ON;;;;;N;;;;;
-2A38;CIRCLED DIVISION SIGN;Sm;0;ON;;;;;N;;;;;
-2A39;PLUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
-2A3A;MINUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
-2A3B;MULTIPLICATION SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;;
-2A3C;INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;;
-2A3D;RIGHTHAND INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;;
-2A3E;Z NOTATION RELATIONAL COMPOSITION;Sm;0;ON;;;;;Y;;;;;
-2A3F;AMALGAMATION OR COPRODUCT;Sm;0;ON;;;;;N;;;;;
-2A40;INTERSECTION WITH DOT;Sm;0;ON;;;;;N;;;;;
-2A41;UNION WITH MINUS SIGN;Sm;0;ON;;;;;N;;;;;
-2A42;UNION WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
-2A43;INTERSECTION WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
-2A44;INTERSECTION WITH LOGICAL AND;Sm;0;ON;;;;;N;;;;;
-2A45;UNION WITH LOGICAL OR;Sm;0;ON;;;;;N;;;;;
-2A46;UNION ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;;
-2A47;INTERSECTION ABOVE UNION;Sm;0;ON;;;;;N;;;;;
-2A48;UNION ABOVE BAR ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;;
-2A49;INTERSECTION ABOVE BAR ABOVE UNION;Sm;0;ON;;;;;N;;;;;
-2A4A;UNION BESIDE AND JOINED WITH UNION;Sm;0;ON;;;;;N;;;;;
-2A4B;INTERSECTION BESIDE AND JOINED WITH INTERSECTION;Sm;0;ON;;;;;N;;;;;
-2A4C;CLOSED UNION WITH SERIFS;Sm;0;ON;;;;;N;;;;;
-2A4D;CLOSED INTERSECTION WITH SERIFS;Sm;0;ON;;;;;N;;;;;
-2A4E;DOUBLE SQUARE INTERSECTION;Sm;0;ON;;;;;N;;;;;
-2A4F;DOUBLE SQUARE UNION;Sm;0;ON;;;;;N;;;;;
-2A50;CLOSED UNION WITH SERIFS AND SMASH PRODUCT;Sm;0;ON;;;;;N;;;;;
-2A51;LOGICAL AND WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
-2A52;LOGICAL OR WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
-2A53;DOUBLE LOGICAL AND;Sm;0;ON;;;;;N;;;;;
-2A54;DOUBLE LOGICAL OR;Sm;0;ON;;;;;N;;;;;
-2A55;TWO INTERSECTING LOGICAL AND;Sm;0;ON;;;;;N;;;;;
-2A56;TWO INTERSECTING LOGICAL OR;Sm;0;ON;;;;;N;;;;;
-2A57;SLOPING LARGE OR;Sm;0;ON;;;;;Y;;;;;
-2A58;SLOPING LARGE AND;Sm;0;ON;;;;;Y;;;;;
-2A59;LOGICAL OR OVERLAPPING LOGICAL AND;Sm;0;ON;;;;;N;;;;;
-2A5A;LOGICAL AND WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;;
-2A5B;LOGICAL OR WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;;
-2A5C;LOGICAL AND WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;;
-2A5D;LOGICAL OR WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;;
-2A5E;LOGICAL AND WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;;
-2A5F;LOGICAL AND WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
-2A60;LOGICAL AND WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;;
-2A61;SMALL VEE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
-2A62;LOGICAL OR WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;;
-2A63;LOGICAL OR WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;;
-2A64;Z NOTATION DOMAIN ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;;
-2A65;Z NOTATION RANGE ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;;
-2A66;EQUALS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;;
-2A67;IDENTICAL WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;;
-2A68;TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2A69;TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2A6A;TILDE OPERATOR WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
-2A6B;TILDE OPERATOR WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;;
-2A6C;SIMILAR MINUS SIMILAR;Sm;0;ON;;;;;Y;;;;;
-2A6D;CONGRUENT WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
-2A6E;EQUALS WITH ASTERISK;Sm;0;ON;;;;;N;;;;;
-2A6F;ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;Y;;;;;
-2A70;APPROXIMATELY EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2A71;EQUALS SIGN ABOVE PLUS SIGN;Sm;0;ON;;;;;N;;;;;
-2A72;PLUS SIGN ABOVE EQUALS SIGN;Sm;0;ON;;;;;N;;;;;
-2A73;EQUALS SIGN ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
-2A74;DOUBLE COLON EQUAL;Sm;0;ON;<compat> 003A 003A 003D;;;;Y;;;;;
-2A75;TWO CONSECUTIVE EQUALS SIGNS;Sm;0;ON;<compat> 003D 003D;;;;N;;;;;
-2A76;THREE CONSECUTIVE EQUALS SIGNS;Sm;0;ON;<compat> 003D 003D 003D;;;;N;;;;;
-2A77;EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW;Sm;0;ON;;;;;N;;;;;
-2A78;EQUIVALENT WITH FOUR DOTS ABOVE;Sm;0;ON;;;;;N;;;;;
-2A79;LESS-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;;
-2A7A;GREATER-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;;
-2A7B;LESS-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;;
-2A7C;GREATER-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;;
-2A7D;LESS-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2A7E;GREATER-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2A7F;LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
-2A80;GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
-2A81;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
-2A82;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
-2A83;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT;Sm;0;ON;;;;;Y;;;;;
-2A84;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT;Sm;0;ON;;;;;Y;;;;;
-2A85;LESS-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
-2A86;GREATER-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
-2A87;LESS-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2A88;GREATER-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2A89;LESS-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
-2A8A;GREATER-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;;
-2A8B;LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
-2A8C;GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;;
-2A8D;LESS-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;;
-2A8E;GREATER-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;;
-2A8F;LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
-2A90;GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;;
-2A91;LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;;
-2A92;GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;;
-2A93;LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
-2A94;GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
-2A95;SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
-2A96;SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
-2A97;SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
-2A98;SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;;
-2A99;DOUBLE-LINE EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
-2A9A;DOUBLE-LINE EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
-2A9B;DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
-2A9C;DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
-2A9D;SIMILAR OR LESS-THAN;Sm;0;ON;;;;;Y;;;;;
-2A9E;SIMILAR OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
-2A9F;SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
-2AA0;SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
-2AA1;DOUBLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;;
-2AA2;DOUBLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
-2AA3;DOUBLE NESTED LESS-THAN WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;;
-2AA4;GREATER-THAN OVERLAPPING LESS-THAN;Sm;0;ON;;;;;N;;;;;
-2AA5;GREATER-THAN BESIDE LESS-THAN;Sm;0;ON;;;;;N;;;;;
-2AA6;LESS-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;;
-2AA7;GREATER-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;;
-2AA8;LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
-2AA9;GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;;
-2AAA;SMALLER THAN;Sm;0;ON;;;;;Y;;;;;
-2AAB;LARGER THAN;Sm;0;ON;;;;;Y;;;;;
-2AAC;SMALLER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2AAD;LARGER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2AAE;EQUALS SIGN WITH BUMPY ABOVE;Sm;0;ON;;;;;N;;;;;
-2AAF;PRECEDES ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
-2AB0;SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
-2AB1;PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2AB2;SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2AB3;PRECEDES ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
-2AB4;SUCCEEDS ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
-2AB5;PRECEDES ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2AB6;SUCCEEDS ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2AB7;PRECEDES ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2AB8;SUCCEEDS ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2AB9;PRECEDES ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2ABA;SUCCEEDS ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2ABB;DOUBLE PRECEDES;Sm;0;ON;;;;;Y;;;;;
-2ABC;DOUBLE SUCCEEDS;Sm;0;ON;;;;;Y;;;;;
-2ABD;SUBSET WITH DOT;Sm;0;ON;;;;;Y;;;;;
-2ABE;SUPERSET WITH DOT;Sm;0;ON;;;;;Y;;;;;
-2ABF;SUBSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
-2AC0;SUPERSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
-2AC1;SUBSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
-2AC2;SUPERSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;;
-2AC3;SUBSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
-2AC4;SUPERSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;;
-2AC5;SUBSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
-2AC6;SUPERSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;;
-2AC7;SUBSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
-2AC8;SUPERSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
-2AC9;SUBSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2ACA;SUPERSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2ACB;SUBSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2ACC;SUPERSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2ACD;SQUARE LEFT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;;
-2ACE;SQUARE RIGHT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;;
-2ACF;CLOSED SUBSET;Sm;0;ON;;;;;Y;;;;;
-2AD0;CLOSED SUPERSET;Sm;0;ON;;;;;Y;;;;;
-2AD1;CLOSED SUBSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2AD2;CLOSED SUPERSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2AD3;SUBSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;;
-2AD4;SUPERSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;;
-2AD5;SUBSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;;
-2AD6;SUPERSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;;
-2AD7;SUPERSET BESIDE SUBSET;Sm;0;ON;;;;;N;;;;;
-2AD8;SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET;Sm;0;ON;;;;;N;;;;;
-2AD9;ELEMENT OF OPENING DOWNWARDS;Sm;0;ON;;;;;N;;;;;
-2ADA;PITCHFORK WITH TEE TOP;Sm;0;ON;;;;;N;;;;;
-2ADB;TRANSVERSAL INTERSECTION;Sm;0;ON;;;;;N;;;;;
-2ADC;FORKING;Sm;0;ON;2ADD 0338;;;;Y;;;;;
-2ADD;NONFORKING;Sm;0;ON;;;;;N;;;;;
-2ADE;SHORT LEFT TACK;Sm;0;ON;;;;;Y;;;;;
-2ADF;SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;;
-2AE0;SHORT UP TACK;Sm;0;ON;;;;;N;;;;;
-2AE1;PERPENDICULAR WITH S;Sm;0;ON;;;;;N;;;;;
-2AE2;VERTICAL BAR TRIPLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
-2AE3;DOUBLE VERTICAL BAR LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
-2AE4;VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
-2AE5;DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;;
-2AE6;LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL;Sm;0;ON;;;;;Y;;;;;
-2AE7;SHORT DOWN TACK WITH OVERBAR;Sm;0;ON;;;;;N;;;;;
-2AE8;SHORT UP TACK WITH UNDERBAR;Sm;0;ON;;;;;N;;;;;
-2AE9;SHORT UP TACK ABOVE SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;;
-2AEA;DOUBLE DOWN TACK;Sm;0;ON;;;;;N;;;;;
-2AEB;DOUBLE UP TACK;Sm;0;ON;;;;;N;;;;;
-2AEC;DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;;
-2AED;REVERSED DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;;
-2AEE;DOES NOT DIVIDE WITH REVERSED NEGATION SLASH;Sm;0;ON;;;;;Y;;;;;
-2AEF;VERTICAL LINE WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;;
-2AF0;VERTICAL LINE WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;;
-2AF1;DOWN TACK WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;;
-2AF2;PARALLEL WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
-2AF3;PARALLEL WITH TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;;
-2AF4;TRIPLE VERTICAL BAR BINARY RELATION;Sm;0;ON;;;;;N;;;;;
-2AF5;TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
-2AF6;TRIPLE COLON OPERATOR;Sm;0;ON;;;;;N;;;;;
-2AF7;TRIPLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;;
-2AF8;TRIPLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;;
-2AF9;DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2AFA;DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;;
-2AFB;TRIPLE SOLIDUS BINARY RELATION;Sm;0;ON;;;;;Y;;;;;
-2AFC;LARGE TRIPLE VERTICAL BAR OPERATOR;Sm;0;ON;;;;;N;;;;;
-2AFD;DOUBLE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;;
-2AFE;WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
-2AFF;N-ARY WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;;
-2B00;NORTH EAST WHITE ARROW;So;0;ON;;;;;N;;;;;
-2B01;NORTH WEST WHITE ARROW;So;0;ON;;;;;N;;;;;
-2B02;SOUTH EAST WHITE ARROW;So;0;ON;;;;;N;;;;;
-2B03;SOUTH WEST WHITE ARROW;So;0;ON;;;;;N;;;;;
-2B04;LEFT RIGHT WHITE ARROW;So;0;ON;;;;;N;;;;;
-2B05;LEFTWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;
-2B06;UPWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;
-2B07;DOWNWARDS BLACK ARROW;So;0;ON;;;;;N;;;;;
-2B08;NORTH EAST BLACK ARROW;So;0;ON;;;;;N;;;;;
-2B09;NORTH WEST BLACK ARROW;So;0;ON;;;;;N;;;;;
-2B0A;SOUTH EAST BLACK ARROW;So;0;ON;;;;;N;;;;;
-2B0B;SOUTH WEST BLACK ARROW;So;0;ON;;;;;N;;;;;
-2B0C;LEFT RIGHT BLACK ARROW;So;0;ON;;;;;N;;;;;
-2B0D;UP DOWN BLACK ARROW;So;0;ON;;;;;N;;;;;
-2B0E;RIGHTWARDS ARROW WITH TIP DOWNWARDS;So;0;ON;;;;;N;;;;;
-2B0F;RIGHTWARDS ARROW WITH TIP UPWARDS;So;0;ON;;;;;N;;;;;
-2B10;LEFTWARDS ARROW WITH TIP DOWNWARDS;So;0;ON;;;;;N;;;;;
-2B11;LEFTWARDS ARROW WITH TIP UPWARDS;So;0;ON;;;;;N;;;;;
-2B12;SQUARE WITH TOP HALF BLACK;So;0;ON;;;;;N;;;;;
-2B13;SQUARE WITH BOTTOM HALF BLACK;So;0;ON;;;;;N;;;;;
-2B14;SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
-2B15;SQUARE WITH LOWER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;;
-2B16;DIAMOND WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;;
-2B17;DIAMOND WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;;
-2B18;DIAMOND WITH TOP HALF BLACK;So;0;ON;;;;;N;;;;;
-2B19;DIAMOND WITH BOTTOM HALF BLACK;So;0;ON;;;;;N;;;;;
-2B1A;DOTTED SQUARE;So;0;ON;;;;;N;;;;;
-2B1B;BLACK LARGE SQUARE;So;0;ON;;;;;N;;;;;
-2B1C;WHITE LARGE SQUARE;So;0;ON;;;;;N;;;;;
-2B1D;BLACK VERY SMALL SQUARE;So;0;ON;;;;;N;;;;;
-2B1E;WHITE VERY SMALL SQUARE;So;0;ON;;;;;N;;;;;
-2B1F;BLACK PENTAGON;So;0;ON;;;;;N;;;;;
-2B20;WHITE PENTAGON;So;0;ON;;;;;N;;;;;
-2B21;WHITE HEXAGON;So;0;ON;;;;;N;;;;;
-2B22;BLACK HEXAGON;So;0;ON;;;;;N;;;;;
-2B23;HORIZONTAL BLACK HEXAGON;So;0;ON;;;;;N;;;;;
-2B24;BLACK LARGE CIRCLE;So;0;ON;;;;;N;;;;;
-2B25;BLACK MEDIUM DIAMOND;So;0;ON;;;;;N;;;;;
-2B26;WHITE MEDIUM DIAMOND;So;0;ON;;;;;N;;;;;
-2B27;BLACK MEDIUM LOZENGE;So;0;ON;;;;;N;;;;;
-2B28;WHITE MEDIUM LOZENGE;So;0;ON;;;;;N;;;;;
-2B29;BLACK SMALL DIAMOND;So;0;ON;;;;;N;;;;;
-2B2A;BLACK SMALL LOZENGE;So;0;ON;;;;;N;;;;;
-2B2B;WHITE SMALL LOZENGE;So;0;ON;;;;;N;;;;;
-2B2C;BLACK HORIZONTAL ELLIPSE;So;0;ON;;;;;N;;;;;
-2B2D;WHITE HORIZONTAL ELLIPSE;So;0;ON;;;;;N;;;;;
-2B2E;BLACK VERTICAL ELLIPSE;So;0;ON;;;;;N;;;;;
-2B2F;WHITE VERTICAL ELLIPSE;So;0;ON;;;;;N;;;;;
-2B30;LEFT ARROW WITH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;;
-2B31;THREE LEFTWARDS ARROWS;Sm;0;ON;;;;;N;;;;;
-2B32;LEFT ARROW WITH CIRCLED PLUS;Sm;0;ON;;;;;N;;;;;
-2B33;LONG LEFTWARDS SQUIGGLE ARROW;Sm;0;ON;;;;;N;;;;;
-2B34;LEFTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2B35;LEFTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2B36;LEFTWARDS TWO-HEADED ARROW FROM BAR;Sm;0;ON;;;;;N;;;;;
-2B37;LEFTWARDS TWO-HEADED TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;;
-2B38;LEFTWARDS ARROW WITH DOTTED STEM;Sm;0;ON;;;;;N;;;;;
-2B39;LEFTWARDS ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2B3A;LEFTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2B3B;LEFTWARDS TWO-HEADED ARROW WITH TAIL;Sm;0;ON;;;;;N;;;;;
-2B3C;LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2B3D;LEFTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;;
-2B3E;LEFTWARDS ARROW THROUGH X;Sm;0;ON;;;;;N;;;;;
-2B3F;WAVE ARROW POINTING DIRECTLY LEFT;Sm;0;ON;;;;;N;;;;;
-2B40;EQUALS SIGN ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
-2B41;REVERSE TILDE OPERATOR ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
-2B42;LEFTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;;
-2B43;RIGHTWARDS ARROW THROUGH GREATER-THAN;Sm;0;ON;;;;;N;;;;;
-2B44;RIGHTWARDS ARROW THROUGH SUPERSET;Sm;0;ON;;;;;N;;;;;
-2B45;LEFTWARDS QUADRUPLE ARROW;So;0;ON;;;;;N;;;;;
-2B46;RIGHTWARDS QUADRUPLE ARROW;So;0;ON;;;;;N;;;;;
-2B47;REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
-2B48;RIGHTWARDS ARROW ABOVE REVERSE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;;
-2B49;TILDE OPERATOR ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;;
-2B4A;LEFTWARDS ARROW ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;;
-2B4B;LEFTWARDS ARROW ABOVE REVERSE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
-2B4C;RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;;
-2B50;WHITE MEDIUM STAR;So;0;ON;;;;;N;;;;;
-2B51;BLACK SMALL STAR;So;0;ON;;;;;N;;;;;
-2B52;WHITE SMALL STAR;So;0;ON;;;;;N;;;;;
-2B53;BLACK RIGHT-POINTING PENTAGON;So;0;ON;;;;;N;;;;;
-2B54;WHITE RIGHT-POINTING PENTAGON;So;0;ON;;;;;N;;;;;
-2B55;HEAVY LARGE CIRCLE;So;0;ON;;;;;N;;;;;
-2B56;HEAVY OVAL WITH OVAL INSIDE;So;0;ON;;;;;N;;;;;
-2B57;HEAVY CIRCLE WITH CIRCLE INSIDE;So;0;ON;;;;;N;;;;;
-2B58;HEAVY CIRCLE;So;0;ON;;;;;N;;;;;
-2B59;HEAVY CIRCLED SALTIRE;So;0;ON;;;;;N;;;;;
-2C00;GLAGOLITIC CAPITAL LETTER AZU;Lu;0;L;;;;;N;;;;2C30;
-2C01;GLAGOLITIC CAPITAL LETTER BUKY;Lu;0;L;;;;;N;;;;2C31;
-2C02;GLAGOLITIC CAPITAL LETTER VEDE;Lu;0;L;;;;;N;;;;2C32;
-2C03;GLAGOLITIC CAPITAL LETTER GLAGOLI;Lu;0;L;;;;;N;;;;2C33;
-2C04;GLAGOLITIC CAPITAL LETTER DOBRO;Lu;0;L;;;;;N;;;;2C34;
-2C05;GLAGOLITIC CAPITAL LETTER YESTU;Lu;0;L;;;;;N;;;;2C35;
-2C06;GLAGOLITIC CAPITAL LETTER ZHIVETE;Lu;0;L;;;;;N;;;;2C36;
-2C07;GLAGOLITIC CAPITAL LETTER DZELO;Lu;0;L;;;;;N;;;;2C37;
-2C08;GLAGOLITIC CAPITAL LETTER ZEMLJA;Lu;0;L;;;;;N;;;;2C38;
-2C09;GLAGOLITIC CAPITAL LETTER IZHE;Lu;0;L;;;;;N;;;;2C39;
-2C0A;GLAGOLITIC CAPITAL LETTER INITIAL IZHE;Lu;0;L;;;;;N;;;;2C3A;
-2C0B;GLAGOLITIC CAPITAL LETTER I;Lu;0;L;;;;;N;;;;2C3B;
-2C0C;GLAGOLITIC CAPITAL LETTER DJERVI;Lu;0;L;;;;;N;;;;2C3C;
-2C0D;GLAGOLITIC CAPITAL LETTER KAKO;Lu;0;L;;;;;N;;;;2C3D;
-2C0E;GLAGOLITIC CAPITAL LETTER LJUDIJE;Lu;0;L;;;;;N;;;;2C3E;
-2C0F;GLAGOLITIC CAPITAL LETTER MYSLITE;Lu;0;L;;;;;N;;;;2C3F;
-2C10;GLAGOLITIC CAPITAL LETTER NASHI;Lu;0;L;;;;;N;;;;2C40;
-2C11;GLAGOLITIC CAPITAL LETTER ONU;Lu;0;L;;;;;N;;;;2C41;
-2C12;GLAGOLITIC CAPITAL LETTER POKOJI;Lu;0;L;;;;;N;;;;2C42;
-2C13;GLAGOLITIC CAPITAL LETTER RITSI;Lu;0;L;;;;;N;;;;2C43;
-2C14;GLAGOLITIC CAPITAL LETTER SLOVO;Lu;0;L;;;;;N;;;;2C44;
-2C15;GLAGOLITIC CAPITAL LETTER TVRIDO;Lu;0;L;;;;;N;;;;2C45;
-2C16;GLAGOLITIC CAPITAL LETTER UKU;Lu;0;L;;;;;N;;;;2C46;
-2C17;GLAGOLITIC CAPITAL LETTER FRITU;Lu;0;L;;;;;N;;;;2C47;
-2C18;GLAGOLITIC CAPITAL LETTER HERU;Lu;0;L;;;;;N;;;;2C48;
-2C19;GLAGOLITIC CAPITAL LETTER OTU;Lu;0;L;;;;;N;;;;2C49;
-2C1A;GLAGOLITIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;2C4A;
-2C1B;GLAGOLITIC CAPITAL LETTER SHTA;Lu;0;L;;;;;N;;;;2C4B;
-2C1C;GLAGOLITIC CAPITAL LETTER TSI;Lu;0;L;;;;;N;;;;2C4C;
-2C1D;GLAGOLITIC CAPITAL LETTER CHRIVI;Lu;0;L;;;;;N;;;;2C4D;
-2C1E;GLAGOLITIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;2C4E;
-2C1F;GLAGOLITIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;;;;2C4F;
-2C20;GLAGOLITIC CAPITAL LETTER YERI;Lu;0;L;;;;;N;;;;2C50;
-2C21;GLAGOLITIC CAPITAL LETTER YATI;Lu;0;L;;;;;N;;;;2C51;
-2C22;GLAGOLITIC CAPITAL LETTER SPIDERY HA;Lu;0;L;;;;;N;;;;2C52;
-2C23;GLAGOLITIC CAPITAL LETTER YU;Lu;0;L;;;;;N;;;;2C53;
-2C24;GLAGOLITIC CAPITAL LETTER SMALL YUS;Lu;0;L;;;;;N;;;;2C54;
-2C25;GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL;Lu;0;L;;;;;N;;;;2C55;
-2C26;GLAGOLITIC CAPITAL LETTER YO;Lu;0;L;;;;;N;;;;2C56;
-2C27;GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS;Lu;0;L;;;;;N;;;;2C57;
-2C28;GLAGOLITIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;2C58;
-2C29;GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS;Lu;0;L;;;;;N;;;;2C59;
-2C2A;GLAGOLITIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;2C5A;
-2C2B;GLAGOLITIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;2C5B;
-2C2C;GLAGOLITIC CAPITAL LETTER SHTAPIC;Lu;0;L;;;;;N;;;;2C5C;
-2C2D;GLAGOLITIC CAPITAL LETTER TROKUTASTI A;Lu;0;L;;;;;N;;;;2C5D;
-2C2E;GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE;Lu;0;L;;;;;N;;;;2C5E;
-2C30;GLAGOLITIC SMALL LETTER AZU;Ll;0;L;;;;;N;;;2C00;;2C00
-2C31;GLAGOLITIC SMALL LETTER BUKY;Ll;0;L;;;;;N;;;2C01;;2C01
-2C32;GLAGOLITIC SMALL LETTER VEDE;Ll;0;L;;;;;N;;;2C02;;2C02
-2C33;GLAGOLITIC SMALL LETTER GLAGOLI;Ll;0;L;;;;;N;;;2C03;;2C03
-2C34;GLAGOLITIC SMALL LETTER DOBRO;Ll;0;L;;;;;N;;;2C04;;2C04
-2C35;GLAGOLITIC SMALL LETTER YESTU;Ll;0;L;;;;;N;;;2C05;;2C05
-2C36;GLAGOLITIC SMALL LETTER ZHIVETE;Ll;0;L;;;;;N;;;2C06;;2C06
-2C37;GLAGOLITIC SMALL LETTER DZELO;Ll;0;L;;;;;N;;;2C07;;2C07
-2C38;GLAGOLITIC SMALL LETTER ZEMLJA;Ll;0;L;;;;;N;;;2C08;;2C08
-2C39;GLAGOLITIC SMALL LETTER IZHE;Ll;0;L;;;;;N;;;2C09;;2C09
-2C3A;GLAGOLITIC SMALL LETTER INITIAL IZHE;Ll;0;L;;;;;N;;;2C0A;;2C0A
-2C3B;GLAGOLITIC SMALL LETTER I;Ll;0;L;;;;;N;;;2C0B;;2C0B
-2C3C;GLAGOLITIC SMALL LETTER DJERVI;Ll;0;L;;;;;N;;;2C0C;;2C0C
-2C3D;GLAGOLITIC SMALL LETTER KAKO;Ll;0;L;;;;;N;;;2C0D;;2C0D
-2C3E;GLAGOLITIC SMALL LETTER LJUDIJE;Ll;0;L;;;;;N;;;2C0E;;2C0E
-2C3F;GLAGOLITIC SMALL LETTER MYSLITE;Ll;0;L;;;;;N;;;2C0F;;2C0F
-2C40;GLAGOLITIC SMALL LETTER NASHI;Ll;0;L;;;;;N;;;2C10;;2C10
-2C41;GLAGOLITIC SMALL LETTER ONU;Ll;0;L;;;;;N;;;2C11;;2C11
-2C42;GLAGOLITIC SMALL LETTER POKOJI;Ll;0;L;;;;;N;;;2C12;;2C12
-2C43;GLAGOLITIC SMALL LETTER RITSI;Ll;0;L;;;;;N;;;2C13;;2C13
-2C44;GLAGOLITIC SMALL LETTER SLOVO;Ll;0;L;;;;;N;;;2C14;;2C14
-2C45;GLAGOLITIC SMALL LETTER TVRIDO;Ll;0;L;;;;;N;;;2C15;;2C15
-2C46;GLAGOLITIC SMALL LETTER UKU;Ll;0;L;;;;;N;;;2C16;;2C16
-2C47;GLAGOLITIC SMALL LETTER FRITU;Ll;0;L;;;;;N;;;2C17;;2C17
-2C48;GLAGOLITIC SMALL LETTER HERU;Ll;0;L;;;;;N;;;2C18;;2C18
-2C49;GLAGOLITIC SMALL LETTER OTU;Ll;0;L;;;;;N;;;2C19;;2C19
-2C4A;GLAGOLITIC SMALL LETTER PE;Ll;0;L;;;;;N;;;2C1A;;2C1A
-2C4B;GLAGOLITIC SMALL LETTER SHTA;Ll;0;L;;;;;N;;;2C1B;;2C1B
-2C4C;GLAGOLITIC SMALL LETTER TSI;Ll;0;L;;;;;N;;;2C1C;;2C1C
-2C4D;GLAGOLITIC SMALL LETTER CHRIVI;Ll;0;L;;;;;N;;;2C1D;;2C1D
-2C4E;GLAGOLITIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;2C1E;;2C1E
-2C4F;GLAGOLITIC SMALL LETTER YERU;Ll;0;L;;;;;N;;;2C1F;;2C1F
-2C50;GLAGOLITIC SMALL LETTER YERI;Ll;0;L;;;;;N;;;2C20;;2C20
-2C51;GLAGOLITIC SMALL LETTER YATI;Ll;0;L;;;;;N;;;2C21;;2C21
-2C52;GLAGOLITIC SMALL LETTER SPIDERY HA;Ll;0;L;;;;;N;;;2C22;;2C22
-2C53;GLAGOLITIC SMALL LETTER YU;Ll;0;L;;;;;N;;;2C23;;2C23
-2C54;GLAGOLITIC SMALL LETTER SMALL YUS;Ll;0;L;;;;;N;;;2C24;;2C24
-2C55;GLAGOLITIC SMALL LETTER SMALL YUS WITH TAIL;Ll;0;L;;;;;N;;;2C25;;2C25
-2C56;GLAGOLITIC SMALL LETTER YO;Ll;0;L;;;;;N;;;2C26;;2C26
-2C57;GLAGOLITIC SMALL LETTER IOTATED SMALL YUS;Ll;0;L;;;;;N;;;2C27;;2C27
-2C58;GLAGOLITIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;2C28;;2C28
-2C59;GLAGOLITIC SMALL LETTER IOTATED BIG YUS;Ll;0;L;;;;;N;;;2C29;;2C29
-2C5A;GLAGOLITIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;2C2A;;2C2A
-2C5B;GLAGOLITIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;2C2B;;2C2B
-2C5C;GLAGOLITIC SMALL LETTER SHTAPIC;Ll;0;L;;;;;N;;;2C2C;;2C2C
-2C5D;GLAGOLITIC SMALL LETTER TROKUTASTI A;Ll;0;L;;;;;N;;;2C2D;;2C2D
-2C5E;GLAGOLITIC SMALL LETTER LATINATE MYSLITE;Ll;0;L;;;;;N;;;2C2E;;2C2E
-2C60;LATIN CAPITAL LETTER L WITH DOUBLE BAR;Lu;0;L;;;;;N;;;;2C61;
-2C61;LATIN SMALL LETTER L WITH DOUBLE BAR;Ll;0;L;;;;;N;;;2C60;;2C60
-2C62;LATIN CAPITAL LETTER L WITH MIDDLE TILDE;Lu;0;L;;;;;N;;;;026B;
-2C63;LATIN CAPITAL LETTER P WITH STROKE;Lu;0;L;;;;;N;;;;1D7D;
-2C64;LATIN CAPITAL LETTER R WITH TAIL;Lu;0;L;;;;;N;;;;027D;
-2C65;LATIN SMALL LETTER A WITH STROKE;Ll;0;L;;;;;N;;;023A;;023A
-2C66;LATIN SMALL LETTER T WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;023E;;023E
-2C67;LATIN CAPITAL LETTER H WITH DESCENDER;Lu;0;L;;;;;N;;;;2C68;
-2C68;LATIN SMALL LETTER H WITH DESCENDER;Ll;0;L;;;;;N;;;2C67;;2C67
-2C69;LATIN CAPITAL LETTER K WITH DESCENDER;Lu;0;L;;;;;N;;;;2C6A;
-2C6A;LATIN SMALL LETTER K WITH DESCENDER;Ll;0;L;;;;;N;;;2C69;;2C69
-2C6B;LATIN CAPITAL LETTER Z WITH DESCENDER;Lu;0;L;;;;;N;;;;2C6C;
-2C6C;LATIN SMALL LETTER Z WITH DESCENDER;Ll;0;L;;;;;N;;;2C6B;;2C6B
-2C6D;LATIN CAPITAL LETTER ALPHA;Lu;0;L;;;;;N;;;;0251;
-2C6E;LATIN CAPITAL LETTER M WITH HOOK;Lu;0;L;;;;;N;;;;0271;
-2C6F;LATIN CAPITAL LETTER TURNED A;Lu;0;L;;;;;N;;;;0250;
-2C70;LATIN CAPITAL LETTER TURNED ALPHA;Lu;0;L;;;;;N;;;;0252;
-2C71;LATIN SMALL LETTER V WITH RIGHT HOOK;Ll;0;L;;;;;N;;;;;
-2C72;LATIN CAPITAL LETTER W WITH HOOK;Lu;0;L;;;;;N;;;;2C73;
-2C73;LATIN SMALL LETTER W WITH HOOK;Ll;0;L;;;;;N;;;2C72;;2C72
-2C74;LATIN SMALL LETTER V WITH CURL;Ll;0;L;;;;;N;;;;;
-2C75;LATIN CAPITAL LETTER HALF H;Lu;0;L;;;;;N;;;;2C76;
-2C76;LATIN SMALL LETTER HALF H;Ll;0;L;;;;;N;;;2C75;;2C75
-2C77;LATIN SMALL LETTER TAILLESS PHI;Ll;0;L;;;;;N;;;;;
-2C78;LATIN SMALL LETTER E WITH NOTCH;Ll;0;L;;;;;N;;;;;
-2C79;LATIN SMALL LETTER TURNED R WITH TAIL;Ll;0;L;;;;;N;;;;;
-2C7A;LATIN SMALL LETTER O WITH LOW RING INSIDE;Ll;0;L;;;;;N;;;;;
-2C7B;LATIN LETTER SMALL CAPITAL TURNED E;Ll;0;L;;;;;N;;;;;
-2C7C;LATIN SUBSCRIPT SMALL LETTER J;Lm;0;L;<sub> 006A;;;;N;;;;;
-2C7D;MODIFIER LETTER CAPITAL V;Lm;0;L;<super> 0056;;;;N;;;;;
-2C7E;LATIN CAPITAL LETTER S WITH SWASH TAIL;Lu;0;L;;;;;N;;;;023F;
-2C7F;LATIN CAPITAL LETTER Z WITH SWASH TAIL;Lu;0;L;;;;;N;;;;0240;
-2C80;COPTIC CAPITAL LETTER ALFA;Lu;0;L;;;;;N;;;;2C81;
-2C81;COPTIC SMALL LETTER ALFA;Ll;0;L;;;;;N;;;2C80;;2C80
-2C82;COPTIC CAPITAL LETTER VIDA;Lu;0;L;;;;;N;;;;2C83;
-2C83;COPTIC SMALL LETTER VIDA;Ll;0;L;;;;;N;;;2C82;;2C82
-2C84;COPTIC CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;2C85;
-2C85;COPTIC SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;2C84;;2C84
-2C86;COPTIC CAPITAL LETTER DALDA;Lu;0;L;;;;;N;;;;2C87;
-2C87;COPTIC SMALL LETTER DALDA;Ll;0;L;;;;;N;;;2C86;;2C86
-2C88;COPTIC CAPITAL LETTER EIE;Lu;0;L;;;;;N;;;;2C89;
-2C89;COPTIC SMALL LETTER EIE;Ll;0;L;;;;;N;;;2C88;;2C88
-2C8A;COPTIC CAPITAL LETTER SOU;Lu;0;L;;;;;N;;;;2C8B;
-2C8B;COPTIC SMALL LETTER SOU;Ll;0;L;;;;;N;;;2C8A;;2C8A
-2C8C;COPTIC CAPITAL LETTER ZATA;Lu;0;L;;;;;N;;;;2C8D;
-2C8D;COPTIC SMALL LETTER ZATA;Ll;0;L;;;;;N;;;2C8C;;2C8C
-2C8E;COPTIC CAPITAL LETTER HATE;Lu;0;L;;;;;N;;;;2C8F;
-2C8F;COPTIC SMALL LETTER HATE;Ll;0;L;;;;;N;;;2C8E;;2C8E
-2C90;COPTIC CAPITAL LETTER THETHE;Lu;0;L;;;;;N;;;;2C91;
-2C91;COPTIC SMALL LETTER THETHE;Ll;0;L;;;;;N;;;2C90;;2C90
-2C92;COPTIC CAPITAL LETTER IAUDA;Lu;0;L;;;;;N;;;;2C93;
-2C93;COPTIC SMALL LETTER IAUDA;Ll;0;L;;;;;N;;;2C92;;2C92
-2C94;COPTIC CAPITAL LETTER KAPA;Lu;0;L;;;;;N;;;;2C95;
-2C95;COPTIC SMALL LETTER KAPA;Ll;0;L;;;;;N;;;2C94;;2C94
-2C96;COPTIC CAPITAL LETTER LAULA;Lu;0;L;;;;;N;;;;2C97;
-2C97;COPTIC SMALL LETTER LAULA;Ll;0;L;;;;;N;;;2C96;;2C96
-2C98;COPTIC CAPITAL LETTER MI;Lu;0;L;;;;;N;;;;2C99;
-2C99;COPTIC SMALL LETTER MI;Ll;0;L;;;;;N;;;2C98;;2C98
-2C9A;COPTIC CAPITAL LETTER NI;Lu;0;L;;;;;N;;;;2C9B;
-2C9B;COPTIC SMALL LETTER NI;Ll;0;L;;;;;N;;;2C9A;;2C9A
-2C9C;COPTIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;2C9D;
-2C9D;COPTIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;2C9C;;2C9C
-2C9E;COPTIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;2C9F;
-2C9F;COPTIC SMALL LETTER O;Ll;0;L;;;;;N;;;2C9E;;2C9E
-2CA0;COPTIC CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;2CA1;
-2CA1;COPTIC SMALL LETTER PI;Ll;0;L;;;;;N;;;2CA0;;2CA0
-2CA2;COPTIC CAPITAL LETTER RO;Lu;0;L;;;;;N;;;;2CA3;
-2CA3;COPTIC SMALL LETTER RO;Ll;0;L;;;;;N;;;2CA2;;2CA2
-2CA4;COPTIC CAPITAL LETTER SIMA;Lu;0;L;;;;;N;;;;2CA5;
-2CA5;COPTIC SMALL LETTER SIMA;Ll;0;L;;;;;N;;;2CA4;;2CA4
-2CA6;COPTIC CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;2CA7;
-2CA7;COPTIC SMALL LETTER TAU;Ll;0;L;;;;;N;;;2CA6;;2CA6
-2CA8;COPTIC CAPITAL LETTER UA;Lu;0;L;;;;;N;;;;2CA9;
-2CA9;COPTIC SMALL LETTER UA;Ll;0;L;;;;;N;;;2CA8;;2CA8
-2CAA;COPTIC CAPITAL LETTER FI;Lu;0;L;;;;;N;;;;2CAB;
-2CAB;COPTIC SMALL LETTER FI;Ll;0;L;;;;;N;;;2CAA;;2CAA
-2CAC;COPTIC CAPITAL LETTER KHI;Lu;0;L;;;;;N;;;;2CAD;
-2CAD;COPTIC SMALL LETTER KHI;Ll;0;L;;;;;N;;;2CAC;;2CAC
-2CAE;COPTIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;2CAF;
-2CAF;COPTIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;2CAE;;2CAE
-2CB0;COPTIC CAPITAL LETTER OOU;Lu;0;L;;;;;N;;;;2CB1;
-2CB1;COPTIC SMALL LETTER OOU;Ll;0;L;;;;;N;;;2CB0;;2CB0
-2CB2;COPTIC CAPITAL LETTER DIALECT-P ALEF;Lu;0;L;;;;;N;;;;2CB3;
-2CB3;COPTIC SMALL LETTER DIALECT-P ALEF;Ll;0;L;;;;;N;;;2CB2;;2CB2
-2CB4;COPTIC CAPITAL LETTER OLD COPTIC AIN;Lu;0;L;;;;;N;;;;2CB5;
-2CB5;COPTIC SMALL LETTER OLD COPTIC AIN;Ll;0;L;;;;;N;;;2CB4;;2CB4
-2CB6;COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE;Lu;0;L;;;;;N;;;;2CB7;
-2CB7;COPTIC SMALL LETTER CRYPTOGRAMMIC EIE;Ll;0;L;;;;;N;;;2CB6;;2CB6
-2CB8;COPTIC CAPITAL LETTER DIALECT-P KAPA;Lu;0;L;;;;;N;;;;2CB9;
-2CB9;COPTIC SMALL LETTER DIALECT-P KAPA;Ll;0;L;;;;;N;;;2CB8;;2CB8
-2CBA;COPTIC CAPITAL LETTER DIALECT-P NI;Lu;0;L;;;;;N;;;;2CBB;
-2CBB;COPTIC SMALL LETTER DIALECT-P NI;Ll;0;L;;;;;N;;;2CBA;;2CBA
-2CBC;COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI;Lu;0;L;;;;;N;;;;2CBD;
-2CBD;COPTIC SMALL LETTER CRYPTOGRAMMIC NI;Ll;0;L;;;;;N;;;2CBC;;2CBC
-2CBE;COPTIC CAPITAL LETTER OLD COPTIC OOU;Lu;0;L;;;;;N;;;;2CBF;
-2CBF;COPTIC SMALL LETTER OLD COPTIC OOU;Ll;0;L;;;;;N;;;2CBE;;2CBE
-2CC0;COPTIC CAPITAL LETTER SAMPI;Lu;0;L;;;;;N;;;;2CC1;
-2CC1;COPTIC SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;2CC0;;2CC0
-2CC2;COPTIC CAPITAL LETTER CROSSED SHEI;Lu;0;L;;;;;N;;;;2CC3;
-2CC3;COPTIC SMALL LETTER CROSSED SHEI;Ll;0;L;;;;;N;;;2CC2;;2CC2
-2CC4;COPTIC CAPITAL LETTER OLD COPTIC SHEI;Lu;0;L;;;;;N;;;;2CC5;
-2CC5;COPTIC SMALL LETTER OLD COPTIC SHEI;Ll;0;L;;;;;N;;;2CC4;;2CC4
-2CC6;COPTIC CAPITAL LETTER OLD COPTIC ESH;Lu;0;L;;;;;N;;;;2CC7;
-2CC7;COPTIC SMALL LETTER OLD COPTIC ESH;Ll;0;L;;;;;N;;;2CC6;;2CC6
-2CC8;COPTIC CAPITAL LETTER AKHMIMIC KHEI;Lu;0;L;;;;;N;;;;2CC9;
-2CC9;COPTIC SMALL LETTER AKHMIMIC KHEI;Ll;0;L;;;;;N;;;2CC8;;2CC8
-2CCA;COPTIC CAPITAL LETTER DIALECT-P HORI;Lu;0;L;;;;;N;;;;2CCB;
-2CCB;COPTIC SMALL LETTER DIALECT-P HORI;Ll;0;L;;;;;N;;;2CCA;;2CCA
-2CCC;COPTIC CAPITAL LETTER OLD COPTIC HORI;Lu;0;L;;;;;N;;;;2CCD;
-2CCD;COPTIC SMALL LETTER OLD COPTIC HORI;Ll;0;L;;;;;N;;;2CCC;;2CCC
-2CCE;COPTIC CAPITAL LETTER OLD COPTIC HA;Lu;0;L;;;;;N;;;;2CCF;
-2CCF;COPTIC SMALL LETTER OLD COPTIC HA;Ll;0;L;;;;;N;;;2CCE;;2CCE
-2CD0;COPTIC CAPITAL LETTER L-SHAPED HA;Lu;0;L;;;;;N;;;;2CD1;
-2CD1;COPTIC SMALL LETTER L-SHAPED HA;Ll;0;L;;;;;N;;;2CD0;;2CD0
-2CD2;COPTIC CAPITAL LETTER OLD COPTIC HEI;Lu;0;L;;;;;N;;;;2CD3;
-2CD3;COPTIC SMALL LETTER OLD COPTIC HEI;Ll;0;L;;;;;N;;;2CD2;;2CD2
-2CD4;COPTIC CAPITAL LETTER OLD COPTIC HAT;Lu;0;L;;;;;N;;;;2CD5;
-2CD5;COPTIC SMALL LETTER OLD COPTIC HAT;Ll;0;L;;;;;N;;;2CD4;;2CD4
-2CD6;COPTIC CAPITAL LETTER OLD COPTIC GANGIA;Lu;0;L;;;;;N;;;;2CD7;
-2CD7;COPTIC SMALL LETTER OLD COPTIC GANGIA;Ll;0;L;;;;;N;;;2CD6;;2CD6
-2CD8;COPTIC CAPITAL LETTER OLD COPTIC DJA;Lu;0;L;;;;;N;;;;2CD9;
-2CD9;COPTIC SMALL LETTER OLD COPTIC DJA;Ll;0;L;;;;;N;;;2CD8;;2CD8
-2CDA;COPTIC CAPITAL LETTER OLD COPTIC SHIMA;Lu;0;L;;;;;N;;;;2CDB;
-2CDB;COPTIC SMALL LETTER OLD COPTIC SHIMA;Ll;0;L;;;;;N;;;2CDA;;2CDA
-2CDC;COPTIC CAPITAL LETTER OLD NUBIAN SHIMA;Lu;0;L;;;;;N;;;;2CDD;
-2CDD;COPTIC SMALL LETTER OLD NUBIAN SHIMA;Ll;0;L;;;;;N;;;2CDC;;2CDC
-2CDE;COPTIC CAPITAL LETTER OLD NUBIAN NGI;Lu;0;L;;;;;N;;;;2CDF;
-2CDF;COPTIC SMALL LETTER OLD NUBIAN NGI;Ll;0;L;;;;;N;;;2CDE;;2CDE
-2CE0;COPTIC CAPITAL LETTER OLD NUBIAN NYI;Lu;0;L;;;;;N;;;;2CE1;
-2CE1;COPTIC SMALL LETTER OLD NUBIAN NYI;Ll;0;L;;;;;N;;;2CE0;;2CE0
-2CE2;COPTIC CAPITAL LETTER OLD NUBIAN WAU;Lu;0;L;;;;;N;;;;2CE3;
-2CE3;COPTIC SMALL LETTER OLD NUBIAN WAU;Ll;0;L;;;;;N;;;2CE2;;2CE2
-2CE4;COPTIC SYMBOL KAI;Ll;0;L;;;;;N;;;;;
-2CE5;COPTIC SYMBOL MI RO;So;0;ON;;;;;N;;;;;
-2CE6;COPTIC SYMBOL PI RO;So;0;ON;;;;;N;;;;;
-2CE7;COPTIC SYMBOL STAUROS;So;0;ON;;;;;N;;;;;
-2CE8;COPTIC SYMBOL TAU RO;So;0;ON;;;;;N;;;;;
-2CE9;COPTIC SYMBOL KHI RO;So;0;ON;;;;;N;;;;;
-2CEA;COPTIC SYMBOL SHIMA SIMA;So;0;ON;;;;;N;;;;;
-2CEB;COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI;Lu;0;L;;;;;N;;;;2CEC;
-2CEC;COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI;Ll;0;L;;;;;N;;;2CEB;;2CEB
-2CED;COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA;Lu;0;L;;;;;N;;;;2CEE;
-2CEE;COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA;Ll;0;L;;;;;N;;;2CED;;2CED
-2CEF;COPTIC COMBINING NI ABOVE;Mn;230;NSM;;;;;N;;;;;
-2CF0;COPTIC COMBINING SPIRITUS ASPER;Mn;230;NSM;;;;;N;;;;;
-2CF1;COPTIC COMBINING SPIRITUS LENIS;Mn;230;NSM;;;;;N;;;;;
-2CF2;COPTIC CAPITAL LETTER BOHAIRIC KHEI;Lu;0;L;;;;;N;;;;2CF3;
-2CF3;COPTIC SMALL LETTER BOHAIRIC KHEI;Ll;0;L;;;;;N;;;2CF2;;2CF2
-2CF9;COPTIC OLD NUBIAN FULL STOP;Po;0;ON;;;;;N;;;;;
-2CFA;COPTIC OLD NUBIAN DIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;;
-2CFB;COPTIC OLD NUBIAN INDIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;;
-2CFC;COPTIC OLD NUBIAN VERSE DIVIDER;Po;0;ON;;;;;N;;;;;
-2CFD;COPTIC FRACTION ONE HALF;No;0;ON;;;;1/2;N;;;;;
-2CFE;COPTIC FULL STOP;Po;0;ON;;;;;N;;;;;
-2CFF;COPTIC MORPHOLOGICAL DIVIDER;Po;0;ON;;;;;N;;;;;
-2D00;GEORGIAN SMALL LETTER AN;Ll;0;L;;;;;N;;;10A0;;10A0
-2D01;GEORGIAN SMALL LETTER BAN;Ll;0;L;;;;;N;;;10A1;;10A1
-2D02;GEORGIAN SMALL LETTER GAN;Ll;0;L;;;;;N;;;10A2;;10A2
-2D03;GEORGIAN SMALL LETTER DON;Ll;0;L;;;;;N;;;10A3;;10A3
-2D04;GEORGIAN SMALL LETTER EN;Ll;0;L;;;;;N;;;10A4;;10A4
-2D05;GEORGIAN SMALL LETTER VIN;Ll;0;L;;;;;N;;;10A5;;10A5
-2D06;GEORGIAN SMALL LETTER ZEN;Ll;0;L;;;;;N;;;10A6;;10A6
-2D07;GEORGIAN SMALL LETTER TAN;Ll;0;L;;;;;N;;;10A7;;10A7
-2D08;GEORGIAN SMALL LETTER IN;Ll;0;L;;;;;N;;;10A8;;10A8
-2D09;GEORGIAN SMALL LETTER KAN;Ll;0;L;;;;;N;;;10A9;;10A9
-2D0A;GEORGIAN SMALL LETTER LAS;Ll;0;L;;;;;N;;;10AA;;10AA
-2D0B;GEORGIAN SMALL LETTER MAN;Ll;0;L;;;;;N;;;10AB;;10AB
-2D0C;GEORGIAN SMALL LETTER NAR;Ll;0;L;;;;;N;;;10AC;;10AC
-2D0D;GEORGIAN SMALL LETTER ON;Ll;0;L;;;;;N;;;10AD;;10AD
-2D0E;GEORGIAN SMALL LETTER PAR;Ll;0;L;;;;;N;;;10AE;;10AE
-2D0F;GEORGIAN SMALL LETTER ZHAR;Ll;0;L;;;;;N;;;10AF;;10AF
-2D10;GEORGIAN SMALL LETTER RAE;Ll;0;L;;;;;N;;;10B0;;10B0
-2D11;GEORGIAN SMALL LETTER SAN;Ll;0;L;;;;;N;;;10B1;;10B1
-2D12;GEORGIAN SMALL LETTER TAR;Ll;0;L;;;;;N;;;10B2;;10B2
-2D13;GEORGIAN SMALL LETTER UN;Ll;0;L;;;;;N;;;10B3;;10B3
-2D14;GEORGIAN SMALL LETTER PHAR;Ll;0;L;;;;;N;;;10B4;;10B4
-2D15;GEORGIAN SMALL LETTER KHAR;Ll;0;L;;;;;N;;;10B5;;10B5
-2D16;GEORGIAN SMALL LETTER GHAN;Ll;0;L;;;;;N;;;10B6;;10B6
-2D17;GEORGIAN SMALL LETTER QAR;Ll;0;L;;;;;N;;;10B7;;10B7
-2D18;GEORGIAN SMALL LETTER SHIN;Ll;0;L;;;;;N;;;10B8;;10B8
-2D19;GEORGIAN SMALL LETTER CHIN;Ll;0;L;;;;;N;;;10B9;;10B9
-2D1A;GEORGIAN SMALL LETTER CAN;Ll;0;L;;;;;N;;;10BA;;10BA
-2D1B;GEORGIAN SMALL LETTER JIL;Ll;0;L;;;;;N;;;10BB;;10BB
-2D1C;GEORGIAN SMALL LETTER CIL;Ll;0;L;;;;;N;;;10BC;;10BC
-2D1D;GEORGIAN SMALL LETTER CHAR;Ll;0;L;;;;;N;;;10BD;;10BD
-2D1E;GEORGIAN SMALL LETTER XAN;Ll;0;L;;;;;N;;;10BE;;10BE
-2D1F;GEORGIAN SMALL LETTER JHAN;Ll;0;L;;;;;N;;;10BF;;10BF
-2D20;GEORGIAN SMALL LETTER HAE;Ll;0;L;;;;;N;;;10C0;;10C0
-2D21;GEORGIAN SMALL LETTER HE;Ll;0;L;;;;;N;;;10C1;;10C1
-2D22;GEORGIAN SMALL LETTER HIE;Ll;0;L;;;;;N;;;10C2;;10C2
-2D23;GEORGIAN SMALL LETTER WE;Ll;0;L;;;;;N;;;10C3;;10C3
-2D24;GEORGIAN SMALL LETTER HAR;Ll;0;L;;;;;N;;;10C4;;10C4
-2D25;GEORGIAN SMALL LETTER HOE;Ll;0;L;;;;;N;;;10C5;;10C5
-2D27;GEORGIAN SMALL LETTER YN;Ll;0;L;;;;;N;;;10C7;;10C7
-2D2D;GEORGIAN SMALL LETTER AEN;Ll;0;L;;;;;N;;;10CD;;10CD
-2D30;TIFINAGH LETTER YA;Lo;0;L;;;;;N;;;;;
-2D31;TIFINAGH LETTER YAB;Lo;0;L;;;;;N;;;;;
-2D32;TIFINAGH LETTER YABH;Lo;0;L;;;;;N;;;;;
-2D33;TIFINAGH LETTER YAG;Lo;0;L;;;;;N;;;;;
-2D34;TIFINAGH LETTER YAGHH;Lo;0;L;;;;;N;;;;;
-2D35;TIFINAGH LETTER BERBER ACADEMY YAJ;Lo;0;L;;;;;N;;;;;
-2D36;TIFINAGH LETTER YAJ;Lo;0;L;;;;;N;;;;;
-2D37;TIFINAGH LETTER YAD;Lo;0;L;;;;;N;;;;;
-2D38;TIFINAGH LETTER YADH;Lo;0;L;;;;;N;;;;;
-2D39;TIFINAGH LETTER YADD;Lo;0;L;;;;;N;;;;;
-2D3A;TIFINAGH LETTER YADDH;Lo;0;L;;;;;N;;;;;
-2D3B;TIFINAGH LETTER YEY;Lo;0;L;;;;;N;;;;;
-2D3C;TIFINAGH LETTER YAF;Lo;0;L;;;;;N;;;;;
-2D3D;TIFINAGH LETTER YAK;Lo;0;L;;;;;N;;;;;
-2D3E;TIFINAGH LETTER TUAREG YAK;Lo;0;L;;;;;N;;;;;
-2D3F;TIFINAGH LETTER YAKHH;Lo;0;L;;;;;N;;;;;
-2D40;TIFINAGH LETTER YAH;Lo;0;L;;;;;N;;;;;
-2D41;TIFINAGH LETTER BERBER ACADEMY YAH;Lo;0;L;;;;;N;;;;;
-2D42;TIFINAGH LETTER TUAREG YAH;Lo;0;L;;;;;N;;;;;
-2D43;TIFINAGH LETTER YAHH;Lo;0;L;;;;;N;;;;;
-2D44;TIFINAGH LETTER YAA;Lo;0;L;;;;;N;;;;;
-2D45;TIFINAGH LETTER YAKH;Lo;0;L;;;;;N;;;;;
-2D46;TIFINAGH LETTER TUAREG YAKH;Lo;0;L;;;;;N;;;;;
-2D47;TIFINAGH LETTER YAQ;Lo;0;L;;;;;N;;;;;
-2D48;TIFINAGH LETTER TUAREG YAQ;Lo;0;L;;;;;N;;;;;
-2D49;TIFINAGH LETTER YI;Lo;0;L;;;;;N;;;;;
-2D4A;TIFINAGH LETTER YAZH;Lo;0;L;;;;;N;;;;;
-2D4B;TIFINAGH LETTER AHAGGAR YAZH;Lo;0;L;;;;;N;;;;;
-2D4C;TIFINAGH LETTER TUAREG YAZH;Lo;0;L;;;;;N;;;;;
-2D4D;TIFINAGH LETTER YAL;Lo;0;L;;;;;N;;;;;
-2D4E;TIFINAGH LETTER YAM;Lo;0;L;;;;;N;;;;;
-2D4F;TIFINAGH LETTER YAN;Lo;0;L;;;;;N;;;;;
-2D50;TIFINAGH LETTER TUAREG YAGN;Lo;0;L;;;;;N;;;;;
-2D51;TIFINAGH LETTER TUAREG YANG;Lo;0;L;;;;;N;;;;;
-2D52;TIFINAGH LETTER YAP;Lo;0;L;;;;;N;;;;;
-2D53;TIFINAGH LETTER YU;Lo;0;L;;;;;N;;;;;
-2D54;TIFINAGH LETTER YAR;Lo;0;L;;;;;N;;;;;
-2D55;TIFINAGH LETTER YARR;Lo;0;L;;;;;N;;;;;
-2D56;TIFINAGH LETTER YAGH;Lo;0;L;;;;;N;;;;;
-2D57;TIFINAGH LETTER TUAREG YAGH;Lo;0;L;;;;;N;;;;;
-2D58;TIFINAGH LETTER AYER YAGH;Lo;0;L;;;;;N;;;;;
-2D59;TIFINAGH LETTER YAS;Lo;0;L;;;;;N;;;;;
-2D5A;TIFINAGH LETTER YASS;Lo;0;L;;;;;N;;;;;
-2D5B;TIFINAGH LETTER YASH;Lo;0;L;;;;;N;;;;;
-2D5C;TIFINAGH LETTER YAT;Lo;0;L;;;;;N;;;;;
-2D5D;TIFINAGH LETTER YATH;Lo;0;L;;;;;N;;;;;
-2D5E;TIFINAGH LETTER YACH;Lo;0;L;;;;;N;;;;;
-2D5F;TIFINAGH LETTER YATT;Lo;0;L;;;;;N;;;;;
-2D60;TIFINAGH LETTER YAV;Lo;0;L;;;;;N;;;;;
-2D61;TIFINAGH LETTER YAW;Lo;0;L;;;;;N;;;;;
-2D62;TIFINAGH LETTER YAY;Lo;0;L;;;;;N;;;;;
-2D63;TIFINAGH LETTER YAZ;Lo;0;L;;;;;N;;;;;
-2D64;TIFINAGH LETTER TAWELLEMET YAZ;Lo;0;L;;;;;N;;;;;
-2D65;TIFINAGH LETTER YAZZ;Lo;0;L;;;;;N;;;;;
-2D66;TIFINAGH LETTER YE;Lo;0;L;;;;;N;;;;;
-2D67;TIFINAGH LETTER YO;Lo;0;L;;;;;N;;;;;
-2D6F;TIFINAGH MODIFIER LETTER LABIALIZATION MARK;Lm;0;L;<super> 2D61;;;;N;;;;;
-2D70;TIFINAGH SEPARATOR MARK;Po;0;L;;;;;N;;;;;
-2D7F;TIFINAGH CONSONANT JOINER;Mn;9;NSM;;;;;N;;;;;
-2D80;ETHIOPIC SYLLABLE LOA;Lo;0;L;;;;;N;;;;;
-2D81;ETHIOPIC SYLLABLE MOA;Lo;0;L;;;;;N;;;;;
-2D82;ETHIOPIC SYLLABLE ROA;Lo;0;L;;;;;N;;;;;
-2D83;ETHIOPIC SYLLABLE SOA;Lo;0;L;;;;;N;;;;;
-2D84;ETHIOPIC SYLLABLE SHOA;Lo;0;L;;;;;N;;;;;
-2D85;ETHIOPIC SYLLABLE BOA;Lo;0;L;;;;;N;;;;;
-2D86;ETHIOPIC SYLLABLE TOA;Lo;0;L;;;;;N;;;;;
-2D87;ETHIOPIC SYLLABLE COA;Lo;0;L;;;;;N;;;;;
-2D88;ETHIOPIC SYLLABLE NOA;Lo;0;L;;;;;N;;;;;
-2D89;ETHIOPIC SYLLABLE NYOA;Lo;0;L;;;;;N;;;;;
-2D8A;ETHIOPIC SYLLABLE GLOTTAL OA;Lo;0;L;;;;;N;;;;;
-2D8B;ETHIOPIC SYLLABLE ZOA;Lo;0;L;;;;;N;;;;;
-2D8C;ETHIOPIC SYLLABLE DOA;Lo;0;L;;;;;N;;;;;
-2D8D;ETHIOPIC SYLLABLE DDOA;Lo;0;L;;;;;N;;;;;
-2D8E;ETHIOPIC SYLLABLE JOA;Lo;0;L;;;;;N;;;;;
-2D8F;ETHIOPIC SYLLABLE THOA;Lo;0;L;;;;;N;;;;;
-2D90;ETHIOPIC SYLLABLE CHOA;Lo;0;L;;;;;N;;;;;
-2D91;ETHIOPIC SYLLABLE PHOA;Lo;0;L;;;;;N;;;;;
-2D92;ETHIOPIC SYLLABLE POA;Lo;0;L;;;;;N;;;;;
-2D93;ETHIOPIC SYLLABLE GGWA;Lo;0;L;;;;;N;;;;;
-2D94;ETHIOPIC SYLLABLE GGWI;Lo;0;L;;;;;N;;;;;
-2D95;ETHIOPIC SYLLABLE GGWEE;Lo;0;L;;;;;N;;;;;
-2D96;ETHIOPIC SYLLABLE GGWE;Lo;0;L;;;;;N;;;;;
-2DA0;ETHIOPIC SYLLABLE SSA;Lo;0;L;;;;;N;;;;;
-2DA1;ETHIOPIC SYLLABLE SSU;Lo;0;L;;;;;N;;;;;
-2DA2;ETHIOPIC SYLLABLE SSI;Lo;0;L;;;;;N;;;;;
-2DA3;ETHIOPIC SYLLABLE SSAA;Lo;0;L;;;;;N;;;;;
-2DA4;ETHIOPIC SYLLABLE SSEE;Lo;0;L;;;;;N;;;;;
-2DA5;ETHIOPIC SYLLABLE SSE;Lo;0;L;;;;;N;;;;;
-2DA6;ETHIOPIC SYLLABLE SSO;Lo;0;L;;;;;N;;;;;
-2DA8;ETHIOPIC SYLLABLE CCA;Lo;0;L;;;;;N;;;;;
-2DA9;ETHIOPIC SYLLABLE CCU;Lo;0;L;;;;;N;;;;;
-2DAA;ETHIOPIC SYLLABLE CCI;Lo;0;L;;;;;N;;;;;
-2DAB;ETHIOPIC SYLLABLE CCAA;Lo;0;L;;;;;N;;;;;
-2DAC;ETHIOPIC SYLLABLE CCEE;Lo;0;L;;;;;N;;;;;
-2DAD;ETHIOPIC SYLLABLE CCE;Lo;0;L;;;;;N;;;;;
-2DAE;ETHIOPIC SYLLABLE CCO;Lo;0;L;;;;;N;;;;;
-2DB0;ETHIOPIC SYLLABLE ZZA;Lo;0;L;;;;;N;;;;;
-2DB1;ETHIOPIC SYLLABLE ZZU;Lo;0;L;;;;;N;;;;;
-2DB2;ETHIOPIC SYLLABLE ZZI;Lo;0;L;;;;;N;;;;;
-2DB3;ETHIOPIC SYLLABLE ZZAA;Lo;0;L;;;;;N;;;;;
-2DB4;ETHIOPIC SYLLABLE ZZEE;Lo;0;L;;;;;N;;;;;
-2DB5;ETHIOPIC SYLLABLE ZZE;Lo;0;L;;;;;N;;;;;
-2DB6;ETHIOPIC SYLLABLE ZZO;Lo;0;L;;;;;N;;;;;
-2DB8;ETHIOPIC SYLLABLE CCHA;Lo;0;L;;;;;N;;;;;
-2DB9;ETHIOPIC SYLLABLE CCHU;Lo;0;L;;;;;N;;;;;
-2DBA;ETHIOPIC SYLLABLE CCHI;Lo;0;L;;;;;N;;;;;
-2DBB;ETHIOPIC SYLLABLE CCHAA;Lo;0;L;;;;;N;;;;;
-2DBC;ETHIOPIC SYLLABLE CCHEE;Lo;0;L;;;;;N;;;;;
-2DBD;ETHIOPIC SYLLABLE CCHE;Lo;0;L;;;;;N;;;;;
-2DBE;ETHIOPIC SYLLABLE CCHO;Lo;0;L;;;;;N;;;;;
-2DC0;ETHIOPIC SYLLABLE QYA;Lo;0;L;;;;;N;;;;;
-2DC1;ETHIOPIC SYLLABLE QYU;Lo;0;L;;;;;N;;;;;
-2DC2;ETHIOPIC SYLLABLE QYI;Lo;0;L;;;;;N;;;;;
-2DC3;ETHIOPIC SYLLABLE QYAA;Lo;0;L;;;;;N;;;;;
-2DC4;ETHIOPIC SYLLABLE QYEE;Lo;0;L;;;;;N;;;;;
-2DC5;ETHIOPIC SYLLABLE QYE;Lo;0;L;;;;;N;;;;;
-2DC6;ETHIOPIC SYLLABLE QYO;Lo;0;L;;;;;N;;;;;
-2DC8;ETHIOPIC SYLLABLE KYA;Lo;0;L;;;;;N;;;;;
-2DC9;ETHIOPIC SYLLABLE KYU;Lo;0;L;;;;;N;;;;;
-2DCA;ETHIOPIC SYLLABLE KYI;Lo;0;L;;;;;N;;;;;
-2DCB;ETHIOPIC SYLLABLE KYAA;Lo;0;L;;;;;N;;;;;
-2DCC;ETHIOPIC SYLLABLE KYEE;Lo;0;L;;;;;N;;;;;
-2DCD;ETHIOPIC SYLLABLE KYE;Lo;0;L;;;;;N;;;;;
-2DCE;ETHIOPIC SYLLABLE KYO;Lo;0;L;;;;;N;;;;;
-2DD0;ETHIOPIC SYLLABLE XYA;Lo;0;L;;;;;N;;;;;
-2DD1;ETHIOPIC SYLLABLE XYU;Lo;0;L;;;;;N;;;;;
-2DD2;ETHIOPIC SYLLABLE XYI;Lo;0;L;;;;;N;;;;;
-2DD3;ETHIOPIC SYLLABLE XYAA;Lo;0;L;;;;;N;;;;;
-2DD4;ETHIOPIC SYLLABLE XYEE;Lo;0;L;;;;;N;;;;;
-2DD5;ETHIOPIC SYLLABLE XYE;Lo;0;L;;;;;N;;;;;
-2DD6;ETHIOPIC SYLLABLE XYO;Lo;0;L;;;;;N;;;;;
-2DD8;ETHIOPIC SYLLABLE GYA;Lo;0;L;;;;;N;;;;;
-2DD9;ETHIOPIC SYLLABLE GYU;Lo;0;L;;;;;N;;;;;
-2DDA;ETHIOPIC SYLLABLE GYI;Lo;0;L;;;;;N;;;;;
-2DDB;ETHIOPIC SYLLABLE GYAA;Lo;0;L;;;;;N;;;;;
-2DDC;ETHIOPIC SYLLABLE GYEE;Lo;0;L;;;;;N;;;;;
-2DDD;ETHIOPIC SYLLABLE GYE;Lo;0;L;;;;;N;;;;;
-2DDE;ETHIOPIC SYLLABLE GYO;Lo;0;L;;;;;N;;;;;
-2DE0;COMBINING CYRILLIC LETTER BE;Mn;230;NSM;;;;;N;;;;;
-2DE1;COMBINING CYRILLIC LETTER VE;Mn;230;NSM;;;;;N;;;;;
-2DE2;COMBINING CYRILLIC LETTER GHE;Mn;230;NSM;;;;;N;;;;;
-2DE3;COMBINING CYRILLIC LETTER DE;Mn;230;NSM;;;;;N;;;;;
-2DE4;COMBINING CYRILLIC LETTER ZHE;Mn;230;NSM;;;;;N;;;;;
-2DE5;COMBINING CYRILLIC LETTER ZE;Mn;230;NSM;;;;;N;;;;;
-2DE6;COMBINING CYRILLIC LETTER KA;Mn;230;NSM;;;;;N;;;;;
-2DE7;COMBINING CYRILLIC LETTER EL;Mn;230;NSM;;;;;N;;;;;
-2DE8;COMBINING CYRILLIC LETTER EM;Mn;230;NSM;;;;;N;;;;;
-2DE9;COMBINING CYRILLIC LETTER EN;Mn;230;NSM;;;;;N;;;;;
-2DEA;COMBINING CYRILLIC LETTER O;Mn;230;NSM;;;;;N;;;;;
-2DEB;COMBINING CYRILLIC LETTER PE;Mn;230;NSM;;;;;N;;;;;
-2DEC;COMBINING CYRILLIC LETTER ER;Mn;230;NSM;;;;;N;;;;;
-2DED;COMBINING CYRILLIC LETTER ES;Mn;230;NSM;;;;;N;;;;;
-2DEE;COMBINING CYRILLIC LETTER TE;Mn;230;NSM;;;;;N;;;;;
-2DEF;COMBINING CYRILLIC LETTER HA;Mn;230;NSM;;;;;N;;;;;
-2DF0;COMBINING CYRILLIC LETTER TSE;Mn;230;NSM;;;;;N;;;;;
-2DF1;COMBINING CYRILLIC LETTER CHE;Mn;230;NSM;;;;;N;;;;;
-2DF2;COMBINING CYRILLIC LETTER SHA;Mn;230;NSM;;;;;N;;;;;
-2DF3;COMBINING CYRILLIC LETTER SHCHA;Mn;230;NSM;;;;;N;;;;;
-2DF4;COMBINING CYRILLIC LETTER FITA;Mn;230;NSM;;;;;N;;;;;
-2DF5;COMBINING CYRILLIC LETTER ES-TE;Mn;230;NSM;;;;;N;;;;;
-2DF6;COMBINING CYRILLIC LETTER A;Mn;230;NSM;;;;;N;;;;;
-2DF7;COMBINING CYRILLIC LETTER IE;Mn;230;NSM;;;;;N;;;;;
-2DF8;COMBINING CYRILLIC LETTER DJERV;Mn;230;NSM;;;;;N;;;;;
-2DF9;COMBINING CYRILLIC LETTER MONOGRAPH UK;Mn;230;NSM;;;;;N;;;;;
-2DFA;COMBINING CYRILLIC LETTER YAT;Mn;230;NSM;;;;;N;;;;;
-2DFB;COMBINING CYRILLIC LETTER YU;Mn;230;NSM;;;;;N;;;;;
-2DFC;COMBINING CYRILLIC LETTER IOTIFIED A;Mn;230;NSM;;;;;N;;;;;
-2DFD;COMBINING CYRILLIC LETTER LITTLE YUS;Mn;230;NSM;;;;;N;;;;;
-2DFE;COMBINING CYRILLIC LETTER BIG YUS;Mn;230;NSM;;;;;N;;;;;
-2DFF;COMBINING CYRILLIC LETTER IOTIFIED BIG YUS;Mn;230;NSM;;;;;N;;;;;
-2E00;RIGHT ANGLE SUBSTITUTION MARKER;Po;0;ON;;;;;N;;;;;
-2E01;RIGHT ANGLE DOTTED SUBSTITUTION MARKER;Po;0;ON;;;;;N;;;;;
-2E02;LEFT SUBSTITUTION BRACKET;Pi;0;ON;;;;;Y;;;;;
-2E03;RIGHT SUBSTITUTION BRACKET;Pf;0;ON;;;;;Y;;;;;
-2E04;LEFT DOTTED SUBSTITUTION BRACKET;Pi;0;ON;;;;;Y;;;;;
-2E05;RIGHT DOTTED SUBSTITUTION BRACKET;Pf;0;ON;;;;;Y;;;;;
-2E06;RAISED INTERPOLATION MARKER;Po;0;ON;;;;;N;;;;;
-2E07;RAISED DOTTED INTERPOLATION MARKER;Po;0;ON;;;;;N;;;;;
-2E08;DOTTED TRANSPOSITION MARKER;Po;0;ON;;;;;N;;;;;
-2E09;LEFT TRANSPOSITION BRACKET;Pi;0;ON;;;;;Y;;;;;
-2E0A;RIGHT TRANSPOSITION BRACKET;Pf;0;ON;;;;;Y;;;;;
-2E0B;RAISED SQUARE;Po;0;ON;;;;;N;;;;;
-2E0C;LEFT RAISED OMISSION BRACKET;Pi;0;ON;;;;;Y;;;;;
-2E0D;RIGHT RAISED OMISSION BRACKET;Pf;0;ON;;;;;Y;;;;;
-2E0E;EDITORIAL CORONIS;Po;0;ON;;;;;N;;;;;
-2E0F;PARAGRAPHOS;Po;0;ON;;;;;N;;;;;
-2E10;FORKED PARAGRAPHOS;Po;0;ON;;;;;N;;;;;
-2E11;REVERSED FORKED PARAGRAPHOS;Po;0;ON;;;;;N;;;;;
-2E12;HYPODIASTOLE;Po;0;ON;;;;;N;;;;;
-2E13;DOTTED OBELOS;Po;0;ON;;;;;N;;;;;
-2E14;DOWNWARDS ANCORA;Po;0;ON;;;;;N;;;;;
-2E15;UPWARDS ANCORA;Po;0;ON;;;;;N;;;;;
-2E16;DOTTED RIGHT-POINTING ANGLE;Po;0;ON;;;;;N;;;;;
-2E17;DOUBLE OBLIQUE HYPHEN;Pd;0;ON;;;;;N;;;;;
-2E18;INVERTED INTERROBANG;Po;0;ON;;;;;N;;;;;
-2E19;PALM BRANCH;Po;0;ON;;;;;N;;;;;
-2E1A;HYPHEN WITH DIAERESIS;Pd;0;ON;;;;;N;;;;;
-2E1B;TILDE WITH RING ABOVE;Po;0;ON;;;;;N;;;;;
-2E1C;LEFT LOW PARAPHRASE BRACKET;Pi;0;ON;;;;;Y;;;;;
-2E1D;RIGHT LOW PARAPHRASE BRACKET;Pf;0;ON;;;;;Y;;;;;
-2E1E;TILDE WITH DOT ABOVE;Po;0;ON;;;;;N;;;;;
-2E1F;TILDE WITH DOT BELOW;Po;0;ON;;;;;N;;;;;
-2E20;LEFT VERTICAL BAR WITH QUILL;Pi;0;ON;;;;;Y;;;;;
-2E21;RIGHT VERTICAL BAR WITH QUILL;Pf;0;ON;;;;;Y;;;;;
-2E22;TOP LEFT HALF BRACKET;Ps;0;ON;;;;;Y;;;;;
-2E23;TOP RIGHT HALF BRACKET;Pe;0;ON;;;;;Y;;;;;
-2E24;BOTTOM LEFT HALF BRACKET;Ps;0;ON;;;;;Y;;;;;
-2E25;BOTTOM RIGHT HALF BRACKET;Pe;0;ON;;;;;Y;;;;;
-2E26;LEFT SIDEWAYS U BRACKET;Ps;0;ON;;;;;Y;;;;;
-2E27;RIGHT SIDEWAYS U BRACKET;Pe;0;ON;;;;;Y;;;;;
-2E28;LEFT DOUBLE PARENTHESIS;Ps;0;ON;;;;;Y;;;;;
-2E29;RIGHT DOUBLE PARENTHESIS;Pe;0;ON;;;;;Y;;;;;
-2E2A;TWO DOTS OVER ONE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
-2E2B;ONE DOT OVER TWO DOTS PUNCTUATION;Po;0;ON;;;;;N;;;;;
-2E2C;SQUARED FOUR DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
-2E2D;FIVE DOT MARK;Po;0;ON;;;;;N;;;;;
-2E2E;REVERSED QUESTION MARK;Po;0;ON;;;;;N;;;;;
-2E2F;VERTICAL TILDE;Lm;0;ON;;;;;N;;;;;
-2E30;RING POINT;Po;0;ON;;;;;N;;;;;
-2E31;WORD SEPARATOR MIDDLE DOT;Po;0;ON;;;;;N;;;;;
-2E32;TURNED COMMA;Po;0;ON;;;;;N;;;;;
-2E33;RAISED DOT;Po;0;ON;;;;;N;;;;;
-2E34;RAISED COMMA;Po;0;ON;;;;;N;;;;;
-2E35;TURNED SEMICOLON;Po;0;ON;;;;;N;;;;;
-2E36;DAGGER WITH LEFT GUARD;Po;0;ON;;;;;N;;;;;
-2E37;DAGGER WITH RIGHT GUARD;Po;0;ON;;;;;N;;;;;
-2E38;TURNED DAGGER;Po;0;ON;;;;;N;;;;;
-2E39;TOP HALF SECTION SIGN;Po;0;ON;;;;;N;;;;;
-2E3A;TWO-EM DASH;Pd;0;ON;;;;;N;;;;;
-2E3B;THREE-EM DASH;Pd;0;ON;;;;;N;;;;;
-2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;;
-2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;;
-2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;;
-2E83;CJK RADICAL SECOND TWO;So;0;ON;;;;;N;;;;;
-2E84;CJK RADICAL SECOND THREE;So;0;ON;;;;;N;;;;;
-2E85;CJK RADICAL PERSON;So;0;ON;;;;;N;;;;;
-2E86;CJK RADICAL BOX;So;0;ON;;;;;N;;;;;
-2E87;CJK RADICAL TABLE;So;0;ON;;;;;N;;;;;
-2E88;CJK RADICAL KNIFE ONE;So;0;ON;;;;;N;;;;;
-2E89;CJK RADICAL KNIFE TWO;So;0;ON;;;;;N;;;;;
-2E8A;CJK RADICAL DIVINATION;So;0;ON;;;;;N;;;;;
-2E8B;CJK RADICAL SEAL;So;0;ON;;;;;N;;;;;
-2E8C;CJK RADICAL SMALL ONE;So;0;ON;;;;;N;;;;;
-2E8D;CJK RADICAL SMALL TWO;So;0;ON;;;;;N;;;;;
-2E8E;CJK RADICAL LAME ONE;So;0;ON;;;;;N;;;;;
-2E8F;CJK RADICAL LAME TWO;So;0;ON;;;;;N;;;;;
-2E90;CJK RADICAL LAME THREE;So;0;ON;;;;;N;;;;;
-2E91;CJK RADICAL LAME FOUR;So;0;ON;;;;;N;;;;;
-2E92;CJK RADICAL SNAKE;So;0;ON;;;;;N;;;;;
-2E93;CJK RADICAL THREAD;So;0;ON;;;;;N;;;;;
-2E94;CJK RADICAL SNOUT ONE;So;0;ON;;;;;N;;;;;
-2E95;CJK RADICAL SNOUT TWO;So;0;ON;;;;;N;;;;;
-2E96;CJK RADICAL HEART ONE;So;0;ON;;;;;N;;;;;
-2E97;CJK RADICAL HEART TWO;So;0;ON;;;;;N;;;;;
-2E98;CJK RADICAL HAND;So;0;ON;;;;;N;;;;;
-2E99;CJK RADICAL RAP;So;0;ON;;;;;N;;;;;
-2E9B;CJK RADICAL CHOKE;So;0;ON;;;;;N;;;;;
-2E9C;CJK RADICAL SUN;So;0;ON;;;;;N;;;;;
-2E9D;CJK RADICAL MOON;So;0;ON;;;;;N;;;;;
-2E9E;CJK RADICAL DEATH;So;0;ON;;;;;N;;;;;
-2E9F;CJK RADICAL MOTHER;So;0;ON;<compat> 6BCD;;;;N;;;;;
-2EA0;CJK RADICAL CIVILIAN;So;0;ON;;;;;N;;;;;
-2EA1;CJK RADICAL WATER ONE;So;0;ON;;;;;N;;;;;
-2EA2;CJK RADICAL WATER TWO;So;0;ON;;;;;N;;;;;
-2EA3;CJK RADICAL FIRE;So;0;ON;;;;;N;;;;;
-2EA4;CJK RADICAL PAW ONE;So;0;ON;;;;;N;;;;;
-2EA5;CJK RADICAL PAW TWO;So;0;ON;;;;;N;;;;;
-2EA6;CJK RADICAL SIMPLIFIED HALF TREE TRUNK;So;0;ON;;;;;N;;;;;
-2EA7;CJK RADICAL COW;So;0;ON;;;;;N;;;;;
-2EA8;CJK RADICAL DOG;So;0;ON;;;;;N;;;;;
-2EA9;CJK RADICAL JADE;So;0;ON;;;;;N;;;;;
-2EAA;CJK RADICAL BOLT OF CLOTH;So;0;ON;;;;;N;;;;;
-2EAB;CJK RADICAL EYE;So;0;ON;;;;;N;;;;;
-2EAC;CJK RADICAL SPIRIT ONE;So;0;ON;;;;;N;;;;;
-2EAD;CJK RADICAL SPIRIT TWO;So;0;ON;;;;;N;;;;;
-2EAE;CJK RADICAL BAMBOO;So;0;ON;;;;;N;;;;;
-2EAF;CJK RADICAL SILK;So;0;ON;;;;;N;;;;;
-2EB0;CJK RADICAL C-SIMPLIFIED SILK;So;0;ON;;;;;N;;;;;
-2EB1;CJK RADICAL NET ONE;So;0;ON;;;;;N;;;;;
-2EB2;CJK RADICAL NET TWO;So;0;ON;;;;;N;;;;;
-2EB3;CJK RADICAL NET THREE;So;0;ON;;;;;N;;;;;
-2EB4;CJK RADICAL NET FOUR;So;0;ON;;;;;N;;;;;
-2EB5;CJK RADICAL MESH;So;0;ON;;;;;N;;;;;
-2EB6;CJK RADICAL SHEEP;So;0;ON;;;;;N;;;;;
-2EB7;CJK RADICAL RAM;So;0;ON;;;;;N;;;;;
-2EB8;CJK RADICAL EWE;So;0;ON;;;;;N;;;;;
-2EB9;CJK RADICAL OLD;So;0;ON;;;;;N;;;;;
-2EBA;CJK RADICAL BRUSH ONE;So;0;ON;;;;;N;;;;;
-2EBB;CJK RADICAL BRUSH TWO;So;0;ON;;;;;N;;;;;
-2EBC;CJK RADICAL MEAT;So;0;ON;;;;;N;;;;;
-2EBD;CJK RADICAL MORTAR;So;0;ON;;;;;N;;;;;
-2EBE;CJK RADICAL GRASS ONE;So;0;ON;;;;;N;;;;;
-2EBF;CJK RADICAL GRASS TWO;So;0;ON;;;;;N;;;;;
-2EC0;CJK RADICAL GRASS THREE;So;0;ON;;;;;N;;;;;
-2EC1;CJK RADICAL TIGER;So;0;ON;;;;;N;;;;;
-2EC2;CJK RADICAL CLOTHES;So;0;ON;;;;;N;;;;;
-2EC3;CJK RADICAL WEST ONE;So;0;ON;;;;;N;;;;;
-2EC4;CJK RADICAL WEST TWO;So;0;ON;;;;;N;;;;;
-2EC5;CJK RADICAL C-SIMPLIFIED SEE;So;0;ON;;;;;N;;;;;
-2EC6;CJK RADICAL SIMPLIFIED HORN;So;0;ON;;;;;N;;;;;
-2EC7;CJK RADICAL HORN;So;0;ON;;;;;N;;;;;
-2EC8;CJK RADICAL C-SIMPLIFIED SPEECH;So;0;ON;;;;;N;;;;;
-2EC9;CJK RADICAL C-SIMPLIFIED SHELL;So;0;ON;;;;;N;;;;;
-2ECA;CJK RADICAL FOOT;So;0;ON;;;;;N;;;;;
-2ECB;CJK RADICAL C-SIMPLIFIED CART;So;0;ON;;;;;N;;;;;
-2ECC;CJK RADICAL SIMPLIFIED WALK;So;0;ON;;;;;N;;;;;
-2ECD;CJK RADICAL WALK ONE;So;0;ON;;;;;N;;;;;
-2ECE;CJK RADICAL WALK TWO;So;0;ON;;;;;N;;;;;
-2ECF;CJK RADICAL CITY;So;0;ON;;;;;N;;;;;
-2ED0;CJK RADICAL C-SIMPLIFIED GOLD;So;0;ON;;;;;N;;;;;
-2ED1;CJK RADICAL LONG ONE;So;0;ON;;;;;N;;;;;
-2ED2;CJK RADICAL LONG TWO;So;0;ON;;;;;N;;;;;
-2ED3;CJK RADICAL C-SIMPLIFIED LONG;So;0;ON;;;;;N;;;;;
-2ED4;CJK RADICAL C-SIMPLIFIED GATE;So;0;ON;;;;;N;;;;;
-2ED5;CJK RADICAL MOUND ONE;So;0;ON;;;;;N;;;;;
-2ED6;CJK RADICAL MOUND TWO;So;0;ON;;;;;N;;;;;
-2ED7;CJK RADICAL RAIN;So;0;ON;;;;;N;;;;;
-2ED8;CJK RADICAL BLUE;So;0;ON;;;;;N;;;;;
-2ED9;CJK RADICAL C-SIMPLIFIED TANNED LEATHER;So;0;ON;;;;;N;;;;;
-2EDA;CJK RADICAL C-SIMPLIFIED LEAF;So;0;ON;;;;;N;;;;;
-2EDB;CJK RADICAL C-SIMPLIFIED WIND;So;0;ON;;;;;N;;;;;
-2EDC;CJK RADICAL C-SIMPLIFIED FLY;So;0;ON;;;;;N;;;;;
-2EDD;CJK RADICAL EAT ONE;So;0;ON;;;;;N;;;;;
-2EDE;CJK RADICAL EAT TWO;So;0;ON;;;;;N;;;;;
-2EDF;CJK RADICAL EAT THREE;So;0;ON;;;;;N;;;;;
-2EE0;CJK RADICAL C-SIMPLIFIED EAT;So;0;ON;;;;;N;;;;;
-2EE1;CJK RADICAL HEAD;So;0;ON;;;;;N;;;;;
-2EE2;CJK RADICAL C-SIMPLIFIED HORSE;So;0;ON;;;;;N;;;;;
-2EE3;CJK RADICAL BONE;So;0;ON;;;;;N;;;;;
-2EE4;CJK RADICAL GHOST;So;0;ON;;;;;N;;;;;
-2EE5;CJK RADICAL C-SIMPLIFIED FISH;So;0;ON;;;;;N;;;;;
-2EE6;CJK RADICAL C-SIMPLIFIED BIRD;So;0;ON;;;;;N;;;;;
-2EE7;CJK RADICAL C-SIMPLIFIED SALT;So;0;ON;;;;;N;;;;;
-2EE8;CJK RADICAL SIMPLIFIED WHEAT;So;0;ON;;;;;N;;;;;
-2EE9;CJK RADICAL SIMPLIFIED YELLOW;So;0;ON;;;;;N;;;;;
-2EEA;CJK RADICAL C-SIMPLIFIED FROG;So;0;ON;;;;;N;;;;;
-2EEB;CJK RADICAL J-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;;
-2EEC;CJK RADICAL C-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;;
-2EED;CJK RADICAL J-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;;
-2EEE;CJK RADICAL C-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;;
-2EEF;CJK RADICAL J-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;;
-2EF0;CJK RADICAL C-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;;
-2EF1;CJK RADICAL TURTLE;So;0;ON;;;;;N;;;;;
-2EF2;CJK RADICAL J-SIMPLIFIED TURTLE;So;0;ON;;;;;N;;;;;
-2EF3;CJK RADICAL C-SIMPLIFIED TURTLE;So;0;ON;<compat> 9F9F;;;;N;;;;;
-2F00;KANGXI RADICAL ONE;So;0;ON;<compat> 4E00;;;;N;;;;;
-2F01;KANGXI RADICAL LINE;So;0;ON;<compat> 4E28;;;;N;;;;;
-2F02;KANGXI RADICAL DOT;So;0;ON;<compat> 4E36;;;;N;;;;;
-2F03;KANGXI RADICAL SLASH;So;0;ON;<compat> 4E3F;;;;N;;;;;
-2F04;KANGXI RADICAL SECOND;So;0;ON;<compat> 4E59;;;;N;;;;;
-2F05;KANGXI RADICAL HOOK;So;0;ON;<compat> 4E85;;;;N;;;;;
-2F06;KANGXI RADICAL TWO;So;0;ON;<compat> 4E8C;;;;N;;;;;
-2F07;KANGXI RADICAL LID;So;0;ON;<compat> 4EA0;;;;N;;;;;
-2F08;KANGXI RADICAL MAN;So;0;ON;<compat> 4EBA;;;;N;;;;;
-2F09;KANGXI RADICAL LEGS;So;0;ON;<compat> 513F;;;;N;;;;;
-2F0A;KANGXI RADICAL ENTER;So;0;ON;<compat> 5165;;;;N;;;;;
-2F0B;KANGXI RADICAL EIGHT;So;0;ON;<compat> 516B;;;;N;;;;;
-2F0C;KANGXI RADICAL DOWN BOX;So;0;ON;<compat> 5182;;;;N;;;;;
-2F0D;KANGXI RADICAL COVER;So;0;ON;<compat> 5196;;;;N;;;;;
-2F0E;KANGXI RADICAL ICE;So;0;ON;<compat> 51AB;;;;N;;;;;
-2F0F;KANGXI RADICAL TABLE;So;0;ON;<compat> 51E0;;;;N;;;;;
-2F10;KANGXI RADICAL OPEN BOX;So;0;ON;<compat> 51F5;;;;N;;;;;
-2F11;KANGXI RADICAL KNIFE;So;0;ON;<compat> 5200;;;;N;;;;;
-2F12;KANGXI RADICAL POWER;So;0;ON;<compat> 529B;;;;N;;;;;
-2F13;KANGXI RADICAL WRAP;So;0;ON;<compat> 52F9;;;;N;;;;;
-2F14;KANGXI RADICAL SPOON;So;0;ON;<compat> 5315;;;;N;;;;;
-2F15;KANGXI RADICAL RIGHT OPEN BOX;So;0;ON;<compat> 531A;;;;N;;;;;
-2F16;KANGXI RADICAL HIDING ENCLOSURE;So;0;ON;<compat> 5338;;;;N;;;;;
-2F17;KANGXI RADICAL TEN;So;0;ON;<compat> 5341;;;;N;;;;;
-2F18;KANGXI RADICAL DIVINATION;So;0;ON;<compat> 535C;;;;N;;;;;
-2F19;KANGXI RADICAL SEAL;So;0;ON;<compat> 5369;;;;N;;;;;
-2F1A;KANGXI RADICAL CLIFF;So;0;ON;<compat> 5382;;;;N;;;;;
-2F1B;KANGXI RADICAL PRIVATE;So;0;ON;<compat> 53B6;;;;N;;;;;
-2F1C;KANGXI RADICAL AGAIN;So;0;ON;<compat> 53C8;;;;N;;;;;
-2F1D;KANGXI RADICAL MOUTH;So;0;ON;<compat> 53E3;;;;N;;;;;
-2F1E;KANGXI RADICAL ENCLOSURE;So;0;ON;<compat> 56D7;;;;N;;;;;
-2F1F;KANGXI RADICAL EARTH;So;0;ON;<compat> 571F;;;;N;;;;;
-2F20;KANGXI RADICAL SCHOLAR;So;0;ON;<compat> 58EB;;;;N;;;;;
-2F21;KANGXI RADICAL GO;So;0;ON;<compat> 5902;;;;N;;;;;
-2F22;KANGXI RADICAL GO SLOWLY;So;0;ON;<compat> 590A;;;;N;;;;;
-2F23;KANGXI RADICAL EVENING;So;0;ON;<compat> 5915;;;;N;;;;;
-2F24;KANGXI RADICAL BIG;So;0;ON;<compat> 5927;;;;N;;;;;
-2F25;KANGXI RADICAL WOMAN;So;0;ON;<compat> 5973;;;;N;;;;;
-2F26;KANGXI RADICAL CHILD;So;0;ON;<compat> 5B50;;;;N;;;;;
-2F27;KANGXI RADICAL ROOF;So;0;ON;<compat> 5B80;;;;N;;;;;
-2F28;KANGXI RADICAL INCH;So;0;ON;<compat> 5BF8;;;;N;;;;;
-2F29;KANGXI RADICAL SMALL;So;0;ON;<compat> 5C0F;;;;N;;;;;
-2F2A;KANGXI RADICAL LAME;So;0;ON;<compat> 5C22;;;;N;;;;;
-2F2B;KANGXI RADICAL CORPSE;So;0;ON;<compat> 5C38;;;;N;;;;;
-2F2C;KANGXI RADICAL SPROUT;So;0;ON;<compat> 5C6E;;;;N;;;;;
-2F2D;KANGXI RADICAL MOUNTAIN;So;0;ON;<compat> 5C71;;;;N;;;;;
-2F2E;KANGXI RADICAL RIVER;So;0;ON;<compat> 5DDB;;;;N;;;;;
-2F2F;KANGXI RADICAL WORK;So;0;ON;<compat> 5DE5;;;;N;;;;;
-2F30;KANGXI RADICAL ONESELF;So;0;ON;<compat> 5DF1;;;;N;;;;;
-2F31;KANGXI RADICAL TURBAN;So;0;ON;<compat> 5DFE;;;;N;;;;;
-2F32;KANGXI RADICAL DRY;So;0;ON;<compat> 5E72;;;;N;;;;;
-2F33;KANGXI RADICAL SHORT THREAD;So;0;ON;<compat> 5E7A;;;;N;;;;;
-2F34;KANGXI RADICAL DOTTED CLIFF;So;0;ON;<compat> 5E7F;;;;N;;;;;
-2F35;KANGXI RADICAL LONG STRIDE;So;0;ON;<compat> 5EF4;;;;N;;;;;
-2F36;KANGXI RADICAL TWO HANDS;So;0;ON;<compat> 5EFE;;;;N;;;;;
-2F37;KANGXI RADICAL SHOOT;So;0;ON;<compat> 5F0B;;;;N;;;;;
-2F38;KANGXI RADICAL BOW;So;0;ON;<compat> 5F13;;;;N;;;;;
-2F39;KANGXI RADICAL SNOUT;So;0;ON;<compat> 5F50;;;;N;;;;;
-2F3A;KANGXI RADICAL BRISTLE;So;0;ON;<compat> 5F61;;;;N;;;;;
-2F3B;KANGXI RADICAL STEP;So;0;ON;<compat> 5F73;;;;N;;;;;
-2F3C;KANGXI RADICAL HEART;So;0;ON;<compat> 5FC3;;;;N;;;;;
-2F3D;KANGXI RADICAL HALBERD;So;0;ON;<compat> 6208;;;;N;;;;;
-2F3E;KANGXI RADICAL DOOR;So;0;ON;<compat> 6236;;;;N;;;;;
-2F3F;KANGXI RADICAL HAND;So;0;ON;<compat> 624B;;;;N;;;;;
-2F40;KANGXI RADICAL BRANCH;So;0;ON;<compat> 652F;;;;N;;;;;
-2F41;KANGXI RADICAL RAP;So;0;ON;<compat> 6534;;;;N;;;;;
-2F42;KANGXI RADICAL SCRIPT;So;0;ON;<compat> 6587;;;;N;;;;;
-2F43;KANGXI RADICAL DIPPER;So;0;ON;<compat> 6597;;;;N;;;;;
-2F44;KANGXI RADICAL AXE;So;0;ON;<compat> 65A4;;;;N;;;;;
-2F45;KANGXI RADICAL SQUARE;So;0;ON;<compat> 65B9;;;;N;;;;;
-2F46;KANGXI RADICAL NOT;So;0;ON;<compat> 65E0;;;;N;;;;;
-2F47;KANGXI RADICAL SUN;So;0;ON;<compat> 65E5;;;;N;;;;;
-2F48;KANGXI RADICAL SAY;So;0;ON;<compat> 66F0;;;;N;;;;;
-2F49;KANGXI RADICAL MOON;So;0;ON;<compat> 6708;;;;N;;;;;
-2F4A;KANGXI RADICAL TREE;So;0;ON;<compat> 6728;;;;N;;;;;
-2F4B;KANGXI RADICAL LACK;So;0;ON;<compat> 6B20;;;;N;;;;;
-2F4C;KANGXI RADICAL STOP;So;0;ON;<compat> 6B62;;;;N;;;;;
-2F4D;KANGXI RADICAL DEATH;So;0;ON;<compat> 6B79;;;;N;;;;;
-2F4E;KANGXI RADICAL WEAPON;So;0;ON;<compat> 6BB3;;;;N;;;;;
-2F4F;KANGXI RADICAL DO NOT;So;0;ON;<compat> 6BCB;;;;N;;;;;
-2F50;KANGXI RADICAL COMPARE;So;0;ON;<compat> 6BD4;;;;N;;;;;
-2F51;KANGXI RADICAL FUR;So;0;ON;<compat> 6BDB;;;;N;;;;;
-2F52;KANGXI RADICAL CLAN;So;0;ON;<compat> 6C0F;;;;N;;;;;
-2F53;KANGXI RADICAL STEAM;So;0;ON;<compat> 6C14;;;;N;;;;;
-2F54;KANGXI RADICAL WATER;So;0;ON;<compat> 6C34;;;;N;;;;;
-2F55;KANGXI RADICAL FIRE;So;0;ON;<compat> 706B;;;;N;;;;;
-2F56;KANGXI RADICAL CLAW;So;0;ON;<compat> 722A;;;;N;;;;;
-2F57;KANGXI RADICAL FATHER;So;0;ON;<compat> 7236;;;;N;;;;;
-2F58;KANGXI RADICAL DOUBLE X;So;0;ON;<compat> 723B;;;;N;;;;;
-2F59;KANGXI RADICAL HALF TREE TRUNK;So;0;ON;<compat> 723F;;;;N;;;;;
-2F5A;KANGXI RADICAL SLICE;So;0;ON;<compat> 7247;;;;N;;;;;
-2F5B;KANGXI RADICAL FANG;So;0;ON;<compat> 7259;;;;N;;;;;
-2F5C;KANGXI RADICAL COW;So;0;ON;<compat> 725B;;;;N;;;;;
-2F5D;KANGXI RADICAL DOG;So;0;ON;<compat> 72AC;;;;N;;;;;
-2F5E;KANGXI RADICAL PROFOUND;So;0;ON;<compat> 7384;;;;N;;;;;
-2F5F;KANGXI RADICAL JADE;So;0;ON;<compat> 7389;;;;N;;;;;
-2F60;KANGXI RADICAL MELON;So;0;ON;<compat> 74DC;;;;N;;;;;
-2F61;KANGXI RADICAL TILE;So;0;ON;<compat> 74E6;;;;N;;;;;
-2F62;KANGXI RADICAL SWEET;So;0;ON;<compat> 7518;;;;N;;;;;
-2F63;KANGXI RADICAL LIFE;So;0;ON;<compat> 751F;;;;N;;;;;
-2F64;KANGXI RADICAL USE;So;0;ON;<compat> 7528;;;;N;;;;;
-2F65;KANGXI RADICAL FIELD;So;0;ON;<compat> 7530;;;;N;;;;;
-2F66;KANGXI RADICAL BOLT OF CLOTH;So;0;ON;<compat> 758B;;;;N;;;;;
-2F67;KANGXI RADICAL SICKNESS;So;0;ON;<compat> 7592;;;;N;;;;;
-2F68;KANGXI RADICAL DOTTED TENT;So;0;ON;<compat> 7676;;;;N;;;;;
-2F69;KANGXI RADICAL WHITE;So;0;ON;<compat> 767D;;;;N;;;;;
-2F6A;KANGXI RADICAL SKIN;So;0;ON;<compat> 76AE;;;;N;;;;;
-2F6B;KANGXI RADICAL DISH;So;0;ON;<compat> 76BF;;;;N;;;;;
-2F6C;KANGXI RADICAL EYE;So;0;ON;<compat> 76EE;;;;N;;;;;
-2F6D;KANGXI RADICAL SPEAR;So;0;ON;<compat> 77DB;;;;N;;;;;
-2F6E;KANGXI RADICAL ARROW;So;0;ON;<compat> 77E2;;;;N;;;;;
-2F6F;KANGXI RADICAL STONE;So;0;ON;<compat> 77F3;;;;N;;;;;
-2F70;KANGXI RADICAL SPIRIT;So;0;ON;<compat> 793A;;;;N;;;;;
-2F71;KANGXI RADICAL TRACK;So;0;ON;<compat> 79B8;;;;N;;;;;
-2F72;KANGXI RADICAL GRAIN;So;0;ON;<compat> 79BE;;;;N;;;;;
-2F73;KANGXI RADICAL CAVE;So;0;ON;<compat> 7A74;;;;N;;;;;
-2F74;KANGXI RADICAL STAND;So;0;ON;<compat> 7ACB;;;;N;;;;;
-2F75;KANGXI RADICAL BAMBOO;So;0;ON;<compat> 7AF9;;;;N;;;;;
-2F76;KANGXI RADICAL RICE;So;0;ON;<compat> 7C73;;;;N;;;;;
-2F77;KANGXI RADICAL SILK;So;0;ON;<compat> 7CF8;;;;N;;;;;
-2F78;KANGXI RADICAL JAR;So;0;ON;<compat> 7F36;;;;N;;;;;
-2F79;KANGXI RADICAL NET;So;0;ON;<compat> 7F51;;;;N;;;;;
-2F7A;KANGXI RADICAL SHEEP;So;0;ON;<compat> 7F8A;;;;N;;;;;
-2F7B;KANGXI RADICAL FEATHER;So;0;ON;<compat> 7FBD;;;;N;;;;;
-2F7C;KANGXI RADICAL OLD;So;0;ON;<compat> 8001;;;;N;;;;;
-2F7D;KANGXI RADICAL AND;So;0;ON;<compat> 800C;;;;N;;;;;
-2F7E;KANGXI RADICAL PLOW;So;0;ON;<compat> 8012;;;;N;;;;;
-2F7F;KANGXI RADICAL EAR;So;0;ON;<compat> 8033;;;;N;;;;;
-2F80;KANGXI RADICAL BRUSH;So;0;ON;<compat> 807F;;;;N;;;;;
-2F81;KANGXI RADICAL MEAT;So;0;ON;<compat> 8089;;;;N;;;;;
-2F82;KANGXI RADICAL MINISTER;So;0;ON;<compat> 81E3;;;;N;;;;;
-2F83;KANGXI RADICAL SELF;So;0;ON;<compat> 81EA;;;;N;;;;;
-2F84;KANGXI RADICAL ARRIVE;So;0;ON;<compat> 81F3;;;;N;;;;;
-2F85;KANGXI RADICAL MORTAR;So;0;ON;<compat> 81FC;;;;N;;;;;
-2F86;KANGXI RADICAL TONGUE;So;0;ON;<compat> 820C;;;;N;;;;;
-2F87;KANGXI RADICAL OPPOSE;So;0;ON;<compat> 821B;;;;N;;;;;
-2F88;KANGXI RADICAL BOAT;So;0;ON;<compat> 821F;;;;N;;;;;
-2F89;KANGXI RADICAL STOPPING;So;0;ON;<compat> 826E;;;;N;;;;;
-2F8A;KANGXI RADICAL COLOR;So;0;ON;<compat> 8272;;;;N;;;;;
-2F8B;KANGXI RADICAL GRASS;So;0;ON;<compat> 8278;;;;N;;;;;
-2F8C;KANGXI RADICAL TIGER;So;0;ON;<compat> 864D;;;;N;;;;;
-2F8D;KANGXI RADICAL INSECT;So;0;ON;<compat> 866B;;;;N;;;;;
-2F8E;KANGXI RADICAL BLOOD;So;0;ON;<compat> 8840;;;;N;;;;;
-2F8F;KANGXI RADICAL WALK ENCLOSURE;So;0;ON;<compat> 884C;;;;N;;;;;
-2F90;KANGXI RADICAL CLOTHES;So;0;ON;<compat> 8863;;;;N;;;;;
-2F91;KANGXI RADICAL WEST;So;0;ON;<compat> 897E;;;;N;;;;;
-2F92;KANGXI RADICAL SEE;So;0;ON;<compat> 898B;;;;N;;;;;
-2F93;KANGXI RADICAL HORN;So;0;ON;<compat> 89D2;;;;N;;;;;
-2F94;KANGXI RADICAL SPEECH;So;0;ON;<compat> 8A00;;;;N;;;;;
-2F95;KANGXI RADICAL VALLEY;So;0;ON;<compat> 8C37;;;;N;;;;;
-2F96;KANGXI RADICAL BEAN;So;0;ON;<compat> 8C46;;;;N;;;;;
-2F97;KANGXI RADICAL PIG;So;0;ON;<compat> 8C55;;;;N;;;;;
-2F98;KANGXI RADICAL BADGER;So;0;ON;<compat> 8C78;;;;N;;;;;
-2F99;KANGXI RADICAL SHELL;So;0;ON;<compat> 8C9D;;;;N;;;;;
-2F9A;KANGXI RADICAL RED;So;0;ON;<compat> 8D64;;;;N;;;;;
-2F9B;KANGXI RADICAL RUN;So;0;ON;<compat> 8D70;;;;N;;;;;
-2F9C;KANGXI RADICAL FOOT;So;0;ON;<compat> 8DB3;;;;N;;;;;
-2F9D;KANGXI RADICAL BODY;So;0;ON;<compat> 8EAB;;;;N;;;;;
-2F9E;KANGXI RADICAL CART;So;0;ON;<compat> 8ECA;;;;N;;;;;
-2F9F;KANGXI RADICAL BITTER;So;0;ON;<compat> 8F9B;;;;N;;;;;
-2FA0;KANGXI RADICAL MORNING;So;0;ON;<compat> 8FB0;;;;N;;;;;
-2FA1;KANGXI RADICAL WALK;So;0;ON;<compat> 8FB5;;;;N;;;;;
-2FA2;KANGXI RADICAL CITY;So;0;ON;<compat> 9091;;;;N;;;;;
-2FA3;KANGXI RADICAL WINE;So;0;ON;<compat> 9149;;;;N;;;;;
-2FA4;KANGXI RADICAL DISTINGUISH;So;0;ON;<compat> 91C6;;;;N;;;;;
-2FA5;KANGXI RADICAL VILLAGE;So;0;ON;<compat> 91CC;;;;N;;;;;
-2FA6;KANGXI RADICAL GOLD;So;0;ON;<compat> 91D1;;;;N;;;;;
-2FA7;KANGXI RADICAL LONG;So;0;ON;<compat> 9577;;;;N;;;;;
-2FA8;KANGXI RADICAL GATE;So;0;ON;<compat> 9580;;;;N;;;;;
-2FA9;KANGXI RADICAL MOUND;So;0;ON;<compat> 961C;;;;N;;;;;
-2FAA;KANGXI RADICAL SLAVE;So;0;ON;<compat> 96B6;;;;N;;;;;
-2FAB;KANGXI RADICAL SHORT TAILED BIRD;So;0;ON;<compat> 96B9;;;;N;;;;;
-2FAC;KANGXI RADICAL RAIN;So;0;ON;<compat> 96E8;;;;N;;;;;
-2FAD;KANGXI RADICAL BLUE;So;0;ON;<compat> 9751;;;;N;;;;;
-2FAE;KANGXI RADICAL WRONG;So;0;ON;<compat> 975E;;;;N;;;;;
-2FAF;KANGXI RADICAL FACE;So;0;ON;<compat> 9762;;;;N;;;;;
-2FB0;KANGXI RADICAL LEATHER;So;0;ON;<compat> 9769;;;;N;;;;;
-2FB1;KANGXI RADICAL TANNED LEATHER;So;0;ON;<compat> 97CB;;;;N;;;;;
-2FB2;KANGXI RADICAL LEEK;So;0;ON;<compat> 97ED;;;;N;;;;;
-2FB3;KANGXI RADICAL SOUND;So;0;ON;<compat> 97F3;;;;N;;;;;
-2FB4;KANGXI RADICAL LEAF;So;0;ON;<compat> 9801;;;;N;;;;;
-2FB5;KANGXI RADICAL WIND;So;0;ON;<compat> 98A8;;;;N;;;;;
-2FB6;KANGXI RADICAL FLY;So;0;ON;<compat> 98DB;;;;N;;;;;
-2FB7;KANGXI RADICAL EAT;So;0;ON;<compat> 98DF;;;;N;;;;;
-2FB8;KANGXI RADICAL HEAD;So;0;ON;<compat> 9996;;;;N;;;;;
-2FB9;KANGXI RADICAL FRAGRANT;So;0;ON;<compat> 9999;;;;N;;;;;
-2FBA;KANGXI RADICAL HORSE;So;0;ON;<compat> 99AC;;;;N;;;;;
-2FBB;KANGXI RADICAL BONE;So;0;ON;<compat> 9AA8;;;;N;;;;;
-2FBC;KANGXI RADICAL TALL;So;0;ON;<compat> 9AD8;;;;N;;;;;
-2FBD;KANGXI RADICAL HAIR;So;0;ON;<compat> 9ADF;;;;N;;;;;
-2FBE;KANGXI RADICAL FIGHT;So;0;ON;<compat> 9B25;;;;N;;;;;
-2FBF;KANGXI RADICAL SACRIFICIAL WINE;So;0;ON;<compat> 9B2F;;;;N;;;;;
-2FC0;KANGXI RADICAL CAULDRON;So;0;ON;<compat> 9B32;;;;N;;;;;
-2FC1;KANGXI RADICAL GHOST;So;0;ON;<compat> 9B3C;;;;N;;;;;
-2FC2;KANGXI RADICAL FISH;So;0;ON;<compat> 9B5A;;;;N;;;;;
-2FC3;KANGXI RADICAL BIRD;So;0;ON;<compat> 9CE5;;;;N;;;;;
-2FC4;KANGXI RADICAL SALT;So;0;ON;<compat> 9E75;;;;N;;;;;
-2FC5;KANGXI RADICAL DEER;So;0;ON;<compat> 9E7F;;;;N;;;;;
-2FC6;KANGXI RADICAL WHEAT;So;0;ON;<compat> 9EA5;;;;N;;;;;
-2FC7;KANGXI RADICAL HEMP;So;0;ON;<compat> 9EBB;;;;N;;;;;
-2FC8;KANGXI RADICAL YELLOW;So;0;ON;<compat> 9EC3;;;;N;;;;;
-2FC9;KANGXI RADICAL MILLET;So;0;ON;<compat> 9ECD;;;;N;;;;;
-2FCA;KANGXI RADICAL BLACK;So;0;ON;<compat> 9ED1;;;;N;;;;;
-2FCB;KANGXI RADICAL EMBROIDERY;So;0;ON;<compat> 9EF9;;;;N;;;;;
-2FCC;KANGXI RADICAL FROG;So;0;ON;<compat> 9EFD;;;;N;;;;;
-2FCD;KANGXI RADICAL TRIPOD;So;0;ON;<compat> 9F0E;;;;N;;;;;
-2FCE;KANGXI RADICAL DRUM;So;0;ON;<compat> 9F13;;;;N;;;;;
-2FCF;KANGXI RADICAL RAT;So;0;ON;<compat> 9F20;;;;N;;;;;
-2FD0;KANGXI RADICAL NOSE;So;0;ON;<compat> 9F3B;;;;N;;;;;
-2FD1;KANGXI RADICAL EVEN;So;0;ON;<compat> 9F4A;;;;N;;;;;
-2FD2;KANGXI RADICAL TOOTH;So;0;ON;<compat> 9F52;;;;N;;;;;
-2FD3;KANGXI RADICAL DRAGON;So;0;ON;<compat> 9F8D;;;;N;;;;;
-2FD4;KANGXI RADICAL TURTLE;So;0;ON;<compat> 9F9C;;;;N;;;;;
-2FD5;KANGXI RADICAL FLUTE;So;0;ON;<compat> 9FA0;;;;N;;;;;
-2FF0;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT;So;0;ON;;;;;N;;;;;
-2FF1;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW;So;0;ON;;;;;N;;;;;
-2FF2;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT;So;0;ON;;;;;N;;;;;
-2FF3;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW;So;0;ON;;;;;N;;;;;
-2FF4;IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND;So;0;ON;;;;;N;;;;;
-2FF5;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE;So;0;ON;;;;;N;;;;;
-2FF6;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW;So;0;ON;;;;;N;;;;;
-2FF7;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT;So;0;ON;;;;;N;;;;;
-2FF8;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT;So;0;ON;;;;;N;;;;;
-2FF9;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT;So;0;ON;;;;;N;;;;;
-2FFA;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT;So;0;ON;;;;;N;;;;;
-2FFB;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID;So;0;ON;;;;;N;;;;;
-3000;IDEOGRAPHIC SPACE;Zs;0;WS;<wide> 0020;;;;N;;;;;
-3001;IDEOGRAPHIC COMMA;Po;0;ON;;;;;N;;;;;
-3002;IDEOGRAPHIC FULL STOP;Po;0;ON;;;;;N;IDEOGRAPHIC PERIOD;;;;
-3003;DITTO MARK;Po;0;ON;;;;;N;;;;;
-3004;JAPANESE INDUSTRIAL STANDARD SYMBOL;So;0;ON;;;;;N;;;;;
-3005;IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;;
-3006;IDEOGRAPHIC CLOSING MARK;Lo;0;L;;;;;N;;;;;
-3007;IDEOGRAPHIC NUMBER ZERO;Nl;0;L;;;;0;N;;;;;
-3008;LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING ANGLE BRACKET;;;;
-3009;RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING ANGLE BRACKET;;;;
-300A;LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING DOUBLE ANGLE BRACKET;;;;
-300B;RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING DOUBLE ANGLE BRACKET;;;;
-300C;LEFT CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING CORNER BRACKET;;;;
-300D;RIGHT CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING CORNER BRACKET;;;;
-300E;LEFT WHITE CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE CORNER BRACKET;;;;
-300F;RIGHT WHITE CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE CORNER BRACKET;;;;
-3010;LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING BLACK LENTICULAR BRACKET;;;;
-3011;RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING BLACK LENTICULAR BRACKET;;;;
-3012;POSTAL MARK;So;0;ON;;;;;N;;;;;
-3013;GETA MARK;So;0;ON;;;;;N;;;;;
-3014;LEFT TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING TORTOISE SHELL BRACKET;;;;
-3015;RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING TORTOISE SHELL BRACKET;;;;
-3016;LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE LENTICULAR BRACKET;;;;
-3017;RIGHT WHITE LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE LENTICULAR BRACKET;;;;
-3018;LEFT WHITE TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE TORTOISE SHELL BRACKET;;;;
-3019;RIGHT WHITE TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE TORTOISE SHELL BRACKET;;;;
-301A;LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE SQUARE BRACKET;;;;
-301B;RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE SQUARE BRACKET;;;;
-301C;WAVE DASH;Pd;0;ON;;;;;N;;;;;
-301D;REVERSED DOUBLE PRIME QUOTATION MARK;Ps;0;ON;;;;;N;;;;;
-301E;DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;;
-301F;LOW DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;;
-3020;POSTAL MARK FACE;So;0;ON;;;;;N;;;;;
-3021;HANGZHOU NUMERAL ONE;Nl;0;L;;;;1;N;;;;;
-3022;HANGZHOU NUMERAL TWO;Nl;0;L;;;;2;N;;;;;
-3023;HANGZHOU NUMERAL THREE;Nl;0;L;;;;3;N;;;;;
-3024;HANGZHOU NUMERAL FOUR;Nl;0;L;;;;4;N;;;;;
-3025;HANGZHOU NUMERAL FIVE;Nl;0;L;;;;5;N;;;;;
-3026;HANGZHOU NUMERAL SIX;Nl;0;L;;;;6;N;;;;;
-3027;HANGZHOU NUMERAL SEVEN;Nl;0;L;;;;7;N;;;;;
-3028;HANGZHOU NUMERAL EIGHT;Nl;0;L;;;;8;N;;;;;
-3029;HANGZHOU NUMERAL NINE;Nl;0;L;;;;9;N;;;;;
-302A;IDEOGRAPHIC LEVEL TONE MARK;Mn;218;NSM;;;;;N;;;;;
-302B;IDEOGRAPHIC RISING TONE MARK;Mn;228;NSM;;;;;N;;;;;
-302C;IDEOGRAPHIC DEPARTING TONE MARK;Mn;232;NSM;;;;;N;;;;;
-302D;IDEOGRAPHIC ENTERING TONE MARK;Mn;222;NSM;;;;;N;;;;;
-302E;HANGUL SINGLE DOT TONE MARK;Mc;224;L;;;;;N;;;;;
-302F;HANGUL DOUBLE DOT TONE MARK;Mc;224;L;;;;;N;;;;;
-3030;WAVY DASH;Pd;0;ON;;;;;N;;;;;
-3031;VERTICAL KANA REPEAT MARK;Lm;0;L;;;;;N;;;;;
-3032;VERTICAL KANA REPEAT WITH VOICED SOUND MARK;Lm;0;L;;;;;N;;;;;
-3033;VERTICAL KANA REPEAT MARK UPPER HALF;Lm;0;L;;;;;N;;;;;
-3034;VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF;Lm;0;L;;;;;N;;;;;
-3035;VERTICAL KANA REPEAT MARK LOWER HALF;Lm;0;L;;;;;N;;;;;
-3036;CIRCLED POSTAL MARK;So;0;ON;<compat> 3012;;;;N;;;;;
-3037;IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL;So;0;ON;;;;;N;;;;;
-3038;HANGZHOU NUMERAL TEN;Nl;0;L;<compat> 5341;;;10;N;;;;;
-3039;HANGZHOU NUMERAL TWENTY;Nl;0;L;<compat> 5344;;;20;N;;;;;
-303A;HANGZHOU NUMERAL THIRTY;Nl;0;L;<compat> 5345;;;30;N;;;;;
-303B;VERTICAL IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;;
-303C;MASU MARK;Lo;0;L;;;;;N;;;;;
-303D;PART ALTERNATION MARK;Po;0;ON;;;;;N;;;;;
-303E;IDEOGRAPHIC VARIATION INDICATOR;So;0;ON;;;;;N;;;;;
-303F;IDEOGRAPHIC HALF FILL SPACE;So;0;ON;;;;;N;;;;;
-3041;HIRAGANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
-3042;HIRAGANA LETTER A;Lo;0;L;;;;;N;;;;;
-3043;HIRAGANA LETTER SMALL I;Lo;0;L;;;;;N;;;;;
-3044;HIRAGANA LETTER I;Lo;0;L;;;;;N;;;;;
-3045;HIRAGANA LETTER SMALL U;Lo;0;L;;;;;N;;;;;
-3046;HIRAGANA LETTER U;Lo;0;L;;;;;N;;;;;
-3047;HIRAGANA LETTER SMALL E;Lo;0;L;;;;;N;;;;;
-3048;HIRAGANA LETTER E;Lo;0;L;;;;;N;;;;;
-3049;HIRAGANA LETTER SMALL O;Lo;0;L;;;;;N;;;;;
-304A;HIRAGANA LETTER O;Lo;0;L;;;;;N;;;;;
-304B;HIRAGANA LETTER KA;Lo;0;L;;;;;N;;;;;
-304C;HIRAGANA LETTER GA;Lo;0;L;304B 3099;;;;N;;;;;
-304D;HIRAGANA LETTER KI;Lo;0;L;;;;;N;;;;;
-304E;HIRAGANA LETTER GI;Lo;0;L;304D 3099;;;;N;;;;;
-304F;HIRAGANA LETTER KU;Lo;0;L;;;;;N;;;;;
-3050;HIRAGANA LETTER GU;Lo;0;L;304F 3099;;;;N;;;;;
-3051;HIRAGANA LETTER KE;Lo;0;L;;;;;N;;;;;
-3052;HIRAGANA LETTER GE;Lo;0;L;3051 3099;;;;N;;;;;
-3053;HIRAGANA LETTER KO;Lo;0;L;;;;;N;;;;;
-3054;HIRAGANA LETTER GO;Lo;0;L;3053 3099;;;;N;;;;;
-3055;HIRAGANA LETTER SA;Lo;0;L;;;;;N;;;;;
-3056;HIRAGANA LETTER ZA;Lo;0;L;3055 3099;;;;N;;;;;
-3057;HIRAGANA LETTER SI;Lo;0;L;;;;;N;;;;;
-3058;HIRAGANA LETTER ZI;Lo;0;L;3057 3099;;;;N;;;;;
-3059;HIRAGANA LETTER SU;Lo;0;L;;;;;N;;;;;
-305A;HIRAGANA LETTER ZU;Lo;0;L;3059 3099;;;;N;;;;;
-305B;HIRAGANA LETTER SE;Lo;0;L;;;;;N;;;;;
-305C;HIRAGANA LETTER ZE;Lo;0;L;305B 3099;;;;N;;;;;
-305D;HIRAGANA LETTER SO;Lo;0;L;;;;;N;;;;;
-305E;HIRAGANA LETTER ZO;Lo;0;L;305D 3099;;;;N;;;;;
-305F;HIRAGANA LETTER TA;Lo;0;L;;;;;N;;;;;
-3060;HIRAGANA LETTER DA;Lo;0;L;305F 3099;;;;N;;;;;
-3061;HIRAGANA LETTER TI;Lo;0;L;;;;;N;;;;;
-3062;HIRAGANA LETTER DI;Lo;0;L;3061 3099;;;;N;;;;;
-3063;HIRAGANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;;
-3064;HIRAGANA LETTER TU;Lo;0;L;;;;;N;;;;;
-3065;HIRAGANA LETTER DU;Lo;0;L;3064 3099;;;;N;;;;;
-3066;HIRAGANA LETTER TE;Lo;0;L;;;;;N;;;;;
-3067;HIRAGANA LETTER DE;Lo;0;L;3066 3099;;;;N;;;;;
-3068;HIRAGANA LETTER TO;Lo;0;L;;;;;N;;;;;
-3069;HIRAGANA LETTER DO;Lo;0;L;3068 3099;;;;N;;;;;
-306A;HIRAGANA LETTER NA;Lo;0;L;;;;;N;;;;;
-306B;HIRAGANA LETTER NI;Lo;0;L;;;;;N;;;;;
-306C;HIRAGANA LETTER NU;Lo;0;L;;;;;N;;;;;
-306D;HIRAGANA LETTER NE;Lo;0;L;;;;;N;;;;;
-306E;HIRAGANA LETTER NO;Lo;0;L;;;;;N;;;;;
-306F;HIRAGANA LETTER HA;Lo;0;L;;;;;N;;;;;
-3070;HIRAGANA LETTER BA;Lo;0;L;306F 3099;;;;N;;;;;
-3071;HIRAGANA LETTER PA;Lo;0;L;306F 309A;;;;N;;;;;
-3072;HIRAGANA LETTER HI;Lo;0;L;;;;;N;;;;;
-3073;HIRAGANA LETTER BI;Lo;0;L;3072 3099;;;;N;;;;;
-3074;HIRAGANA LETTER PI;Lo;0;L;3072 309A;;;;N;;;;;
-3075;HIRAGANA LETTER HU;Lo;0;L;;;;;N;;;;;
-3076;HIRAGANA LETTER BU;Lo;0;L;3075 3099;;;;N;;;;;
-3077;HIRAGANA LETTER PU;Lo;0;L;3075 309A;;;;N;;;;;
-3078;HIRAGANA LETTER HE;Lo;0;L;;;;;N;;;;;
-3079;HIRAGANA LETTER BE;Lo;0;L;3078 3099;;;;N;;;;;
-307A;HIRAGANA LETTER PE;Lo;0;L;3078 309A;;;;N;;;;;
-307B;HIRAGANA LETTER HO;Lo;0;L;;;;;N;;;;;
-307C;HIRAGANA LETTER BO;Lo;0;L;307B 3099;;;;N;;;;;
-307D;HIRAGANA LETTER PO;Lo;0;L;307B 309A;;;;N;;;;;
-307E;HIRAGANA LETTER MA;Lo;0;L;;;;;N;;;;;
-307F;HIRAGANA LETTER MI;Lo;0;L;;;;;N;;;;;
-3080;HIRAGANA LETTER MU;Lo;0;L;;;;;N;;;;;
-3081;HIRAGANA LETTER ME;Lo;0;L;;;;;N;;;;;
-3082;HIRAGANA LETTER MO;Lo;0;L;;;;;N;;;;;
-3083;HIRAGANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;;
-3084;HIRAGANA LETTER YA;Lo;0;L;;;;;N;;;;;
-3085;HIRAGANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;;
-3086;HIRAGANA LETTER YU;Lo;0;L;;;;;N;;;;;
-3087;HIRAGANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;;
-3088;HIRAGANA LETTER YO;Lo;0;L;;;;;N;;;;;
-3089;HIRAGANA LETTER RA;Lo;0;L;;;;;N;;;;;
-308A;HIRAGANA LETTER RI;Lo;0;L;;;;;N;;;;;
-308B;HIRAGANA LETTER RU;Lo;0;L;;;;;N;;;;;
-308C;HIRAGANA LETTER RE;Lo;0;L;;;;;N;;;;;
-308D;HIRAGANA LETTER RO;Lo;0;L;;;;;N;;;;;
-308E;HIRAGANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;;
-308F;HIRAGANA LETTER WA;Lo;0;L;;;;;N;;;;;
-3090;HIRAGANA LETTER WI;Lo;0;L;;;;;N;;;;;
-3091;HIRAGANA LETTER WE;Lo;0;L;;;;;N;;;;;
-3092;HIRAGANA LETTER WO;Lo;0;L;;;;;N;;;;;
-3093;HIRAGANA LETTER N;Lo;0;L;;;;;N;;;;;
-3094;HIRAGANA LETTER VU;Lo;0;L;3046 3099;;;;N;;;;;
-3095;HIRAGANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;;
-3096;HIRAGANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;;
-3099;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA VOICED SOUND MARK;;;;
-309A;COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;;;;
-309B;KATAKANA-HIRAGANA VOICED SOUND MARK;Sk;0;ON;<compat> 0020 3099;;;;N;;;;;
-309C;KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Sk;0;ON;<compat> 0020 309A;;;;N;;;;;
-309D;HIRAGANA ITERATION MARK;Lm;0;L;;;;;N;;;;;
-309E;HIRAGANA VOICED ITERATION MARK;Lm;0;L;309D 3099;;;;N;;;;;
-309F;HIRAGANA DIGRAPH YORI;Lo;0;L;<vertical> 3088 308A;;;;N;;;;;
-30A0;KATAKANA-HIRAGANA DOUBLE HYPHEN;Pd;0;ON;;;;;N;;;;;
-30A1;KATAKANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
-30A2;KATAKANA LETTER A;Lo;0;L;;;;;N;;;;;
-30A3;KATAKANA LETTER SMALL I;Lo;0;L;;;;;N;;;;;
-30A4;KATAKANA LETTER I;Lo;0;L;;;;;N;;;;;
-30A5;KATAKANA LETTER SMALL U;Lo;0;L;;;;;N;;;;;
-30A6;KATAKANA LETTER U;Lo;0;L;;;;;N;;;;;
-30A7;KATAKANA LETTER SMALL E;Lo;0;L;;;;;N;;;;;
-30A8;KATAKANA LETTER E;Lo;0;L;;;;;N;;;;;
-30A9;KATAKANA LETTER SMALL O;Lo;0;L;;;;;N;;;;;
-30AA;KATAKANA LETTER O;Lo;0;L;;;;;N;;;;;
-30AB;KATAKANA LETTER KA;Lo;0;L;;;;;N;;;;;
-30AC;KATAKANA LETTER GA;Lo;0;L;30AB 3099;;;;N;;;;;
-30AD;KATAKANA LETTER KI;Lo;0;L;;;;;N;;;;;
-30AE;KATAKANA LETTER GI;Lo;0;L;30AD 3099;;;;N;;;;;
-30AF;KATAKANA LETTER KU;Lo;0;L;;;;;N;;;;;
-30B0;KATAKANA LETTER GU;Lo;0;L;30AF 3099;;;;N;;;;;
-30B1;KATAKANA LETTER KE;Lo;0;L;;;;;N;;;;;
-30B2;KATAKANA LETTER GE;Lo;0;L;30B1 3099;;;;N;;;;;
-30B3;KATAKANA LETTER KO;Lo;0;L;;;;;N;;;;;
-30B4;KATAKANA LETTER GO;Lo;0;L;30B3 3099;;;;N;;;;;
-30B5;KATAKANA LETTER SA;Lo;0;L;;;;;N;;;;;
-30B6;KATAKANA LETTER ZA;Lo;0;L;30B5 3099;;;;N;;;;;
-30B7;KATAKANA LETTER SI;Lo;0;L;;;;;N;;;;;
-30B8;KATAKANA LETTER ZI;Lo;0;L;30B7 3099;;;;N;;;;;
-30B9;KATAKANA LETTER SU;Lo;0;L;;;;;N;;;;;
-30BA;KATAKANA LETTER ZU;Lo;0;L;30B9 3099;;;;N;;;;;
-30BB;KATAKANA LETTER SE;Lo;0;L;;;;;N;;;;;
-30BC;KATAKANA LETTER ZE;Lo;0;L;30BB 3099;;;;N;;;;;
-30BD;KATAKANA LETTER SO;Lo;0;L;;;;;N;;;;;
-30BE;KATAKANA LETTER ZO;Lo;0;L;30BD 3099;;;;N;;;;;
-30BF;KATAKANA LETTER TA;Lo;0;L;;;;;N;;;;;
-30C0;KATAKANA LETTER DA;Lo;0;L;30BF 3099;;;;N;;;;;
-30C1;KATAKANA LETTER TI;Lo;0;L;;;;;N;;;;;
-30C2;KATAKANA LETTER DI;Lo;0;L;30C1 3099;;;;N;;;;;
-30C3;KATAKANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;;
-30C4;KATAKANA LETTER TU;Lo;0;L;;;;;N;;;;;
-30C5;KATAKANA LETTER DU;Lo;0;L;30C4 3099;;;;N;;;;;
-30C6;KATAKANA LETTER TE;Lo;0;L;;;;;N;;;;;
-30C7;KATAKANA LETTER DE;Lo;0;L;30C6 3099;;;;N;;;;;
-30C8;KATAKANA LETTER TO;Lo;0;L;;;;;N;;;;;
-30C9;KATAKANA LETTER DO;Lo;0;L;30C8 3099;;;;N;;;;;
-30CA;KATAKANA LETTER NA;Lo;0;L;;;;;N;;;;;
-30CB;KATAKANA LETTER NI;Lo;0;L;;;;;N;;;;;
-30CC;KATAKANA LETTER NU;Lo;0;L;;;;;N;;;;;
-30CD;KATAKANA LETTER NE;Lo;0;L;;;;;N;;;;;
-30CE;KATAKANA LETTER NO;Lo;0;L;;;;;N;;;;;
-30CF;KATAKANA LETTER HA;Lo;0;L;;;;;N;;;;;
-30D0;KATAKANA LETTER BA;Lo;0;L;30CF 3099;;;;N;;;;;
-30D1;KATAKANA LETTER PA;Lo;0;L;30CF 309A;;;;N;;;;;
-30D2;KATAKANA LETTER HI;Lo;0;L;;;;;N;;;;;
-30D3;KATAKANA LETTER BI;Lo;0;L;30D2 3099;;;;N;;;;;
-30D4;KATAKANA LETTER PI;Lo;0;L;30D2 309A;;;;N;;;;;
-30D5;KATAKANA LETTER HU;Lo;0;L;;;;;N;;;;;
-30D6;KATAKANA LETTER BU;Lo;0;L;30D5 3099;;;;N;;;;;
-30D7;KATAKANA LETTER PU;Lo;0;L;30D5 309A;;;;N;;;;;
-30D8;KATAKANA LETTER HE;Lo;0;L;;;;;N;;;;;
-30D9;KATAKANA LETTER BE;Lo;0;L;30D8 3099;;;;N;;;;;
-30DA;KATAKANA LETTER PE;Lo;0;L;30D8 309A;;;;N;;;;;
-30DB;KATAKANA LETTER HO;Lo;0;L;;;;;N;;;;;
-30DC;KATAKANA LETTER BO;Lo;0;L;30DB 3099;;;;N;;;;;
-30DD;KATAKANA LETTER PO;Lo;0;L;30DB 309A;;;;N;;;;;
-30DE;KATAKANA LETTER MA;Lo;0;L;;;;;N;;;;;
-30DF;KATAKANA LETTER MI;Lo;0;L;;;;;N;;;;;
-30E0;KATAKANA LETTER MU;Lo;0;L;;;;;N;;;;;
-30E1;KATAKANA LETTER ME;Lo;0;L;;;;;N;;;;;
-30E2;KATAKANA LETTER MO;Lo;0;L;;;;;N;;;;;
-30E3;KATAKANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;;
-30E4;KATAKANA LETTER YA;Lo;0;L;;;;;N;;;;;
-30E5;KATAKANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;;
-30E6;KATAKANA LETTER YU;Lo;0;L;;;;;N;;;;;
-30E7;KATAKANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;;
-30E8;KATAKANA LETTER YO;Lo;0;L;;;;;N;;;;;
-30E9;KATAKANA LETTER RA;Lo;0;L;;;;;N;;;;;
-30EA;KATAKANA LETTER RI;Lo;0;L;;;;;N;;;;;
-30EB;KATAKANA LETTER RU;Lo;0;L;;;;;N;;;;;
-30EC;KATAKANA LETTER RE;Lo;0;L;;;;;N;;;;;
-30ED;KATAKANA LETTER RO;Lo;0;L;;;;;N;;;;;
-30EE;KATAKANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;;
-30EF;KATAKANA LETTER WA;Lo;0;L;;;;;N;;;;;
-30F0;KATAKANA LETTER WI;Lo;0;L;;;;;N;;;;;
-30F1;KATAKANA LETTER WE;Lo;0;L;;;;;N;;;;;
-30F2;KATAKANA LETTER WO;Lo;0;L;;;;;N;;;;;
-30F3;KATAKANA LETTER N;Lo;0;L;;;;;N;;;;;
-30F4;KATAKANA LETTER VU;Lo;0;L;30A6 3099;;;;N;;;;;
-30F5;KATAKANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;;
-30F6;KATAKANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;;
-30F7;KATAKANA LETTER VA;Lo;0;L;30EF 3099;;;;N;;;;;
-30F8;KATAKANA LETTER VI;Lo;0;L;30F0 3099;;;;N;;;;;
-30F9;KATAKANA LETTER VE;Lo;0;L;30F1 3099;;;;N;;;;;
-30FA;KATAKANA LETTER VO;Lo;0;L;30F2 3099;;;;N;;;;;
-30FB;KATAKANA MIDDLE DOT;Po;0;ON;;;;;N;;;;;
-30FC;KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;;;;;N;;;;;
-30FD;KATAKANA ITERATION MARK;Lm;0;L;;;;;N;;;;;
-30FE;KATAKANA VOICED ITERATION MARK;Lm;0;L;30FD 3099;;;;N;;;;;
-30FF;KATAKANA DIGRAPH KOTO;Lo;0;L;<vertical> 30B3 30C8;;;;N;;;;;
-3105;BOPOMOFO LETTER B;Lo;0;L;;;;;N;;;;;
-3106;BOPOMOFO LETTER P;Lo;0;L;;;;;N;;;;;
-3107;BOPOMOFO LETTER M;Lo;0;L;;;;;N;;;;;
-3108;BOPOMOFO LETTER F;Lo;0;L;;;;;N;;;;;
-3109;BOPOMOFO LETTER D;Lo;0;L;;;;;N;;;;;
-310A;BOPOMOFO LETTER T;Lo;0;L;;;;;N;;;;;
-310B;BOPOMOFO LETTER N;Lo;0;L;;;;;N;;;;;
-310C;BOPOMOFO LETTER L;Lo;0;L;;;;;N;;;;;
-310D;BOPOMOFO LETTER G;Lo;0;L;;;;;N;;;;;
-310E;BOPOMOFO LETTER K;Lo;0;L;;;;;N;;;;;
-310F;BOPOMOFO LETTER H;Lo;0;L;;;;;N;;;;;
-3110;BOPOMOFO LETTER J;Lo;0;L;;;;;N;;;;;
-3111;BOPOMOFO LETTER Q;Lo;0;L;;;;;N;;;;;
-3112;BOPOMOFO LETTER X;Lo;0;L;;;;;N;;;;;
-3113;BOPOMOFO LETTER ZH;Lo;0;L;;;;;N;;;;;
-3114;BOPOMOFO LETTER CH;Lo;0;L;;;;;N;;;;;
-3115;BOPOMOFO LETTER SH;Lo;0;L;;;;;N;;;;;
-3116;BOPOMOFO LETTER R;Lo;0;L;;;;;N;;;;;
-3117;BOPOMOFO LETTER Z;Lo;0;L;;;;;N;;;;;
-3118;BOPOMOFO LETTER C;Lo;0;L;;;;;N;;;;;
-3119;BOPOMOFO LETTER S;Lo;0;L;;;;;N;;;;;
-311A;BOPOMOFO LETTER A;Lo;0;L;;;;;N;;;;;
-311B;BOPOMOFO LETTER O;Lo;0;L;;;;;N;;;;;
-311C;BOPOMOFO LETTER E;Lo;0;L;;;;;N;;;;;
-311D;BOPOMOFO LETTER EH;Lo;0;L;;;;;N;;;;;
-311E;BOPOMOFO LETTER AI;Lo;0;L;;;;;N;;;;;
-311F;BOPOMOFO LETTER EI;Lo;0;L;;;;;N;;;;;
-3120;BOPOMOFO LETTER AU;Lo;0;L;;;;;N;;;;;
-3121;BOPOMOFO LETTER OU;Lo;0;L;;;;;N;;;;;
-3122;BOPOMOFO LETTER AN;Lo;0;L;;;;;N;;;;;
-3123;BOPOMOFO LETTER EN;Lo;0;L;;;;;N;;;;;
-3124;BOPOMOFO LETTER ANG;Lo;0;L;;;;;N;;;;;
-3125;BOPOMOFO LETTER ENG;Lo;0;L;;;;;N;;;;;
-3126;BOPOMOFO LETTER ER;Lo;0;L;;;;;N;;;;;
-3127;BOPOMOFO LETTER I;Lo;0;L;;;;;N;;;;;
-3128;BOPOMOFO LETTER U;Lo;0;L;;;;;N;;;;;
-3129;BOPOMOFO LETTER IU;Lo;0;L;;;;;N;;;;;
-312A;BOPOMOFO LETTER V;Lo;0;L;;;;;N;;;;;
-312B;BOPOMOFO LETTER NG;Lo;0;L;;;;;N;;;;;
-312C;BOPOMOFO LETTER GN;Lo;0;L;;;;;N;;;;;
-312D;BOPOMOFO LETTER IH;Lo;0;L;;;;;N;;;;;
-3131;HANGUL LETTER KIYEOK;Lo;0;L;<compat> 1100;;;;N;HANGUL LETTER GIYEOG;;;;
-3132;HANGUL LETTER SSANGKIYEOK;Lo;0;L;<compat> 1101;;;;N;HANGUL LETTER SSANG GIYEOG;;;;
-3133;HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<compat> 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;;
-3134;HANGUL LETTER NIEUN;Lo;0;L;<compat> 1102;;;;N;;;;;
-3135;HANGUL LETTER NIEUN-CIEUC;Lo;0;L;<compat> 11AC;;;;N;HANGUL LETTER NIEUN JIEUJ;;;;
-3136;HANGUL LETTER NIEUN-HIEUH;Lo;0;L;<compat> 11AD;;;;N;HANGUL LETTER NIEUN HIEUH;;;;
-3137;HANGUL LETTER TIKEUT;Lo;0;L;<compat> 1103;;;;N;HANGUL LETTER DIGEUD;;;;
-3138;HANGUL LETTER SSANGTIKEUT;Lo;0;L;<compat> 1104;;;;N;HANGUL LETTER SSANG DIGEUD;;;;
-3139;HANGUL LETTER RIEUL;Lo;0;L;<compat> 1105;;;;N;HANGUL LETTER LIEUL;;;;
-313A;HANGUL LETTER RIEUL-KIYEOK;Lo;0;L;<compat> 11B0;;;;N;HANGUL LETTER LIEUL GIYEOG;;;;
-313B;HANGUL LETTER RIEUL-MIEUM;Lo;0;L;<compat> 11B1;;;;N;HANGUL LETTER LIEUL MIEUM;;;;
-313C;HANGUL LETTER RIEUL-PIEUP;Lo;0;L;<compat> 11B2;;;;N;HANGUL LETTER LIEUL BIEUB;;;;
-313D;HANGUL LETTER RIEUL-SIOS;Lo;0;L;<compat> 11B3;;;;N;HANGUL LETTER LIEUL SIOS;;;;
-313E;HANGUL LETTER RIEUL-THIEUTH;Lo;0;L;<compat> 11B4;;;;N;HANGUL LETTER LIEUL TIEUT;;;;
-313F;HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L;<compat> 11B5;;;;N;HANGUL LETTER LIEUL PIEUP;;;;
-3140;HANGUL LETTER RIEUL-HIEUH;Lo;0;L;<compat> 111A;;;;N;HANGUL LETTER LIEUL HIEUH;;;;
-3141;HANGUL LETTER MIEUM;Lo;0;L;<compat> 1106;;;;N;;;;;
-3142;HANGUL LETTER PIEUP;Lo;0;L;<compat> 1107;;;;N;HANGUL LETTER BIEUB;;;;
-3143;HANGUL LETTER SSANGPIEUP;Lo;0;L;<compat> 1108;;;;N;HANGUL LETTER SSANG BIEUB;;;;
-3144;HANGUL LETTER PIEUP-SIOS;Lo;0;L;<compat> 1121;;;;N;HANGUL LETTER BIEUB SIOS;;;;
-3145;HANGUL LETTER SIOS;Lo;0;L;<compat> 1109;;;;N;;;;;
-3146;HANGUL LETTER SSANGSIOS;Lo;0;L;<compat> 110A;;;;N;HANGUL LETTER SSANG SIOS;;;;
-3147;HANGUL LETTER IEUNG;Lo;0;L;<compat> 110B;;;;N;;;;;
-3148;HANGUL LETTER CIEUC;Lo;0;L;<compat> 110C;;;;N;HANGUL LETTER JIEUJ;;;;
-3149;HANGUL LETTER SSANGCIEUC;Lo;0;L;<compat> 110D;;;;N;HANGUL LETTER SSANG JIEUJ;;;;
-314A;HANGUL LETTER CHIEUCH;Lo;0;L;<compat> 110E;;;;N;HANGUL LETTER CIEUC;;;;
-314B;HANGUL LETTER KHIEUKH;Lo;0;L;<compat> 110F;;;;N;HANGUL LETTER KIYEOK;;;;
-314C;HANGUL LETTER THIEUTH;Lo;0;L;<compat> 1110;;;;N;HANGUL LETTER TIEUT;;;;
-314D;HANGUL LETTER PHIEUPH;Lo;0;L;<compat> 1111;;;;N;HANGUL LETTER PIEUP;;;;
-314E;HANGUL LETTER HIEUH;Lo;0;L;<compat> 1112;;;;N;;;;;
-314F;HANGUL LETTER A;Lo;0;L;<compat> 1161;;;;N;;;;;
-3150;HANGUL LETTER AE;Lo;0;L;<compat> 1162;;;;N;;;;;
-3151;HANGUL LETTER YA;Lo;0;L;<compat> 1163;;;;N;;;;;
-3152;HANGUL LETTER YAE;Lo;0;L;<compat> 1164;;;;N;;;;;
-3153;HANGUL LETTER EO;Lo;0;L;<compat> 1165;;;;N;;;;;
-3154;HANGUL LETTER E;Lo;0;L;<compat> 1166;;;;N;;;;;
-3155;HANGUL LETTER YEO;Lo;0;L;<compat> 1167;;;;N;;;;;
-3156;HANGUL LETTER YE;Lo;0;L;<compat> 1168;;;;N;;;;;
-3157;HANGUL LETTER O;Lo;0;L;<compat> 1169;;;;N;;;;;
-3158;HANGUL LETTER WA;Lo;0;L;<compat> 116A;;;;N;;;;;
-3159;HANGUL LETTER WAE;Lo;0;L;<compat> 116B;;;;N;;;;;
-315A;HANGUL LETTER OE;Lo;0;L;<compat> 116C;;;;N;;;;;
-315B;HANGUL LETTER YO;Lo;0;L;<compat> 116D;;;;N;;;;;
-315C;HANGUL LETTER U;Lo;0;L;<compat> 116E;;;;N;;;;;
-315D;HANGUL LETTER WEO;Lo;0;L;<compat> 116F;;;;N;;;;;
-315E;HANGUL LETTER WE;Lo;0;L;<compat> 1170;;;;N;;;;;
-315F;HANGUL LETTER WI;Lo;0;L;<compat> 1171;;;;N;;;;;
-3160;HANGUL LETTER YU;Lo;0;L;<compat> 1172;;;;N;;;;;
-3161;HANGUL LETTER EU;Lo;0;L;<compat> 1173;;;;N;;;;;
-3162;HANGUL LETTER YI;Lo;0;L;<compat> 1174;;;;N;;;;;
-3163;HANGUL LETTER I;Lo;0;L;<compat> 1175;;;;N;;;;;
-3164;HANGUL FILLER;Lo;0;L;<compat> 1160;;;;N;HANGUL CAE OM;;;;
-3165;HANGUL LETTER SSANGNIEUN;Lo;0;L;<compat> 1114;;;;N;HANGUL LETTER SSANG NIEUN;;;;
-3166;HANGUL LETTER NIEUN-TIKEUT;Lo;0;L;<compat> 1115;;;;N;HANGUL LETTER NIEUN DIGEUD;;;;
-3167;HANGUL LETTER NIEUN-SIOS;Lo;0;L;<compat> 11C7;;;;N;HANGUL LETTER NIEUN SIOS;;;;
-3168;HANGUL LETTER NIEUN-PANSIOS;Lo;0;L;<compat> 11C8;;;;N;HANGUL LETTER NIEUN BAN CHI EUM;;;;
-3169;HANGUL LETTER RIEUL-KIYEOK-SIOS;Lo;0;L;<compat> 11CC;;;;N;HANGUL LETTER LIEUL GIYEOG SIOS;;;;
-316A;HANGUL LETTER RIEUL-TIKEUT;Lo;0;L;<compat> 11CE;;;;N;HANGUL LETTER LIEUL DIGEUD;;;;
-316B;HANGUL LETTER RIEUL-PIEUP-SIOS;Lo;0;L;<compat> 11D3;;;;N;HANGUL LETTER LIEUL BIEUB SIOS;;;;
-316C;HANGUL LETTER RIEUL-PANSIOS;Lo;0;L;<compat> 11D7;;;;N;HANGUL LETTER LIEUL BAN CHI EUM;;;;
-316D;HANGUL LETTER RIEUL-YEORINHIEUH;Lo;0;L;<compat> 11D9;;;;N;HANGUL LETTER LIEUL YEOLIN HIEUH;;;;
-316E;HANGUL LETTER MIEUM-PIEUP;Lo;0;L;<compat> 111C;;;;N;HANGUL LETTER MIEUM BIEUB;;;;
-316F;HANGUL LETTER MIEUM-SIOS;Lo;0;L;<compat> 11DD;;;;N;HANGUL LETTER MIEUM SIOS;;;;
-3170;HANGUL LETTER MIEUM-PANSIOS;Lo;0;L;<compat> 11DF;;;;N;HANGUL LETTER BIEUB BAN CHI EUM;;;;
-3171;HANGUL LETTER KAPYEOUNMIEUM;Lo;0;L;<compat> 111D;;;;N;HANGUL LETTER MIEUM SUN GYEONG EUM;;;;
-3172;HANGUL LETTER PIEUP-KIYEOK;Lo;0;L;<compat> 111E;;;;N;HANGUL LETTER BIEUB GIYEOG;;;;
-3173;HANGUL LETTER PIEUP-TIKEUT;Lo;0;L;<compat> 1120;;;;N;HANGUL LETTER BIEUB DIGEUD;;;;
-3174;HANGUL LETTER PIEUP-SIOS-KIYEOK;Lo;0;L;<compat> 1122;;;;N;HANGUL LETTER BIEUB SIOS GIYEOG;;;;
-3175;HANGUL LETTER PIEUP-SIOS-TIKEUT;Lo;0;L;<compat> 1123;;;;N;HANGUL LETTER BIEUB SIOS DIGEUD;;;;
-3176;HANGUL LETTER PIEUP-CIEUC;Lo;0;L;<compat> 1127;;;;N;HANGUL LETTER BIEUB JIEUJ;;;;
-3177;HANGUL LETTER PIEUP-THIEUTH;Lo;0;L;<compat> 1129;;;;N;HANGUL LETTER BIEUB TIEUT;;;;
-3178;HANGUL LETTER KAPYEOUNPIEUP;Lo;0;L;<compat> 112B;;;;N;HANGUL LETTER BIEUB SUN GYEONG EUM;;;;
-3179;HANGUL LETTER KAPYEOUNSSANGPIEUP;Lo;0;L;<compat> 112C;;;;N;HANGUL LETTER SSANG BIEUB SUN GYEONG EUM;;;;
-317A;HANGUL LETTER SIOS-KIYEOK;Lo;0;L;<compat> 112D;;;;N;HANGUL LETTER SIOS GIYEOG;;;;
-317B;HANGUL LETTER SIOS-NIEUN;Lo;0;L;<compat> 112E;;;;N;HANGUL LETTER SIOS NIEUN;;;;
-317C;HANGUL LETTER SIOS-TIKEUT;Lo;0;L;<compat> 112F;;;;N;HANGUL LETTER SIOS DIGEUD;;;;
-317D;HANGUL LETTER SIOS-PIEUP;Lo;0;L;<compat> 1132;;;;N;HANGUL LETTER SIOS BIEUB;;;;
-317E;HANGUL LETTER SIOS-CIEUC;Lo;0;L;<compat> 1136;;;;N;HANGUL LETTER SIOS JIEUJ;;;;
-317F;HANGUL LETTER PANSIOS;Lo;0;L;<compat> 1140;;;;N;HANGUL LETTER BAN CHI EUM;;;;
-3180;HANGUL LETTER SSANGIEUNG;Lo;0;L;<compat> 1147;;;;N;HANGUL LETTER SSANG IEUNG;;;;
-3181;HANGUL LETTER YESIEUNG;Lo;0;L;<compat> 114C;;;;N;HANGUL LETTER NGIEUNG;;;;
-3182;HANGUL LETTER YESIEUNG-SIOS;Lo;0;L;<compat> 11F1;;;;N;HANGUL LETTER NGIEUNG SIOS;;;;
-3183;HANGUL LETTER YESIEUNG-PANSIOS;Lo;0;L;<compat> 11F2;;;;N;HANGUL LETTER NGIEUNG BAN CHI EUM;;;;
-3184;HANGUL LETTER KAPYEOUNPHIEUPH;Lo;0;L;<compat> 1157;;;;N;HANGUL LETTER PIEUP SUN GYEONG EUM;;;;
-3185;HANGUL LETTER SSANGHIEUH;Lo;0;L;<compat> 1158;;;;N;HANGUL LETTER SSANG HIEUH;;;;
-3186;HANGUL LETTER YEORINHIEUH;Lo;0;L;<compat> 1159;;;;N;HANGUL LETTER YEOLIN HIEUH;;;;
-3187;HANGUL LETTER YO-YA;Lo;0;L;<compat> 1184;;;;N;HANGUL LETTER YOYA;;;;
-3188;HANGUL LETTER YO-YAE;Lo;0;L;<compat> 1185;;;;N;HANGUL LETTER YOYAE;;;;
-3189;HANGUL LETTER YO-I;Lo;0;L;<compat> 1188;;;;N;HANGUL LETTER YOI;;;;
-318A;HANGUL LETTER YU-YEO;Lo;0;L;<compat> 1191;;;;N;HANGUL LETTER YUYEO;;;;
-318B;HANGUL LETTER YU-YE;Lo;0;L;<compat> 1192;;;;N;HANGUL LETTER YUYE;;;;
-318C;HANGUL LETTER YU-I;Lo;0;L;<compat> 1194;;;;N;HANGUL LETTER YUI;;;;
-318D;HANGUL LETTER ARAEA;Lo;0;L;<compat> 119E;;;;N;HANGUL LETTER ALAE A;;;;
-318E;HANGUL LETTER ARAEAE;Lo;0;L;<compat> 11A1;;;;N;HANGUL LETTER ALAE AE;;;;
-3190;IDEOGRAPHIC ANNOTATION LINKING MARK;So;0;L;;;;;N;KANBUN TATETEN;;;;
-3191;IDEOGRAPHIC ANNOTATION REVERSE MARK;So;0;L;;;;;N;KAERITEN RE;;;;
-3192;IDEOGRAPHIC ANNOTATION ONE MARK;No;0;L;<super> 4E00;;;1;N;KAERITEN ITI;;;;
-3193;IDEOGRAPHIC ANNOTATION TWO MARK;No;0;L;<super> 4E8C;;;2;N;KAERITEN NI;;;;
-3194;IDEOGRAPHIC ANNOTATION THREE MARK;No;0;L;<super> 4E09;;;3;N;KAERITEN SAN;;;;
-3195;IDEOGRAPHIC ANNOTATION FOUR MARK;No;0;L;<super> 56DB;;;4;N;KAERITEN SI;;;;
-3196;IDEOGRAPHIC ANNOTATION TOP MARK;So;0;L;<super> 4E0A;;;;N;KAERITEN ZYOU;;;;
-3197;IDEOGRAPHIC ANNOTATION MIDDLE MARK;So;0;L;<super> 4E2D;;;;N;KAERITEN TYUU;;;;
-3198;IDEOGRAPHIC ANNOTATION BOTTOM MARK;So;0;L;<super> 4E0B;;;;N;KAERITEN GE;;;;
-3199;IDEOGRAPHIC ANNOTATION FIRST MARK;So;0;L;<super> 7532;;;;N;KAERITEN KOU;;;;
-319A;IDEOGRAPHIC ANNOTATION SECOND MARK;So;0;L;<super> 4E59;;;;N;KAERITEN OTU;;;;
-319B;IDEOGRAPHIC ANNOTATION THIRD MARK;So;0;L;<super> 4E19;;;;N;KAERITEN HEI;;;;
-319C;IDEOGRAPHIC ANNOTATION FOURTH MARK;So;0;L;<super> 4E01;;;;N;KAERITEN TEI;;;;
-319D;IDEOGRAPHIC ANNOTATION HEAVEN MARK;So;0;L;<super> 5929;;;;N;KAERITEN TEN;;;;
-319E;IDEOGRAPHIC ANNOTATION EARTH MARK;So;0;L;<super> 5730;;;;N;KAERITEN TI;;;;
-319F;IDEOGRAPHIC ANNOTATION MAN MARK;So;0;L;<super> 4EBA;;;;N;KAERITEN ZIN;;;;
-31A0;BOPOMOFO LETTER BU;Lo;0;L;;;;;N;;;;;
-31A1;BOPOMOFO LETTER ZI;Lo;0;L;;;;;N;;;;;
-31A2;BOPOMOFO LETTER JI;Lo;0;L;;;;;N;;;;;
-31A3;BOPOMOFO LETTER GU;Lo;0;L;;;;;N;;;;;
-31A4;BOPOMOFO LETTER EE;Lo;0;L;;;;;N;;;;;
-31A5;BOPOMOFO LETTER ENN;Lo;0;L;;;;;N;;;;;
-31A6;BOPOMOFO LETTER OO;Lo;0;L;;;;;N;;;;;
-31A7;BOPOMOFO LETTER ONN;Lo;0;L;;;;;N;;;;;
-31A8;BOPOMOFO LETTER IR;Lo;0;L;;;;;N;;;;;
-31A9;BOPOMOFO LETTER ANN;Lo;0;L;;;;;N;;;;;
-31AA;BOPOMOFO LETTER INN;Lo;0;L;;;;;N;;;;;
-31AB;BOPOMOFO LETTER UNN;Lo;0;L;;;;;N;;;;;
-31AC;BOPOMOFO LETTER IM;Lo;0;L;;;;;N;;;;;
-31AD;BOPOMOFO LETTER NGG;Lo;0;L;;;;;N;;;;;
-31AE;BOPOMOFO LETTER AINN;Lo;0;L;;;;;N;;;;;
-31AF;BOPOMOFO LETTER AUNN;Lo;0;L;;;;;N;;;;;
-31B0;BOPOMOFO LETTER AM;Lo;0;L;;;;;N;;;;;
-31B1;BOPOMOFO LETTER OM;Lo;0;L;;;;;N;;;;;
-31B2;BOPOMOFO LETTER ONG;Lo;0;L;;;;;N;;;;;
-31B3;BOPOMOFO LETTER INNN;Lo;0;L;;;;;N;;;;;
-31B4;BOPOMOFO FINAL LETTER P;Lo;0;L;;;;;N;;;;;
-31B5;BOPOMOFO FINAL LETTER T;Lo;0;L;;;;;N;;;;;
-31B6;BOPOMOFO FINAL LETTER K;Lo;0;L;;;;;N;;;;;
-31B7;BOPOMOFO FINAL LETTER H;Lo;0;L;;;;;N;;;;;
-31B8;BOPOMOFO LETTER GH;Lo;0;L;;;;;N;;;;;
-31B9;BOPOMOFO LETTER LH;Lo;0;L;;;;;N;;;;;
-31BA;BOPOMOFO LETTER ZY;Lo;0;L;;;;;N;;;;;
-31C0;CJK STROKE T;So;0;ON;;;;;N;;;;;
-31C1;CJK STROKE WG;So;0;ON;;;;;N;;;;;
-31C2;CJK STROKE XG;So;0;ON;;;;;N;;;;;
-31C3;CJK STROKE BXG;So;0;ON;;;;;N;;;;;
-31C4;CJK STROKE SW;So;0;ON;;;;;N;;;;;
-31C5;CJK STROKE HZZ;So;0;ON;;;;;N;;;;;
-31C6;CJK STROKE HZG;So;0;ON;;;;;N;;;;;
-31C7;CJK STROKE HP;So;0;ON;;;;;N;;;;;
-31C8;CJK STROKE HZWG;So;0;ON;;;;;N;;;;;
-31C9;CJK STROKE SZWG;So;0;ON;;;;;N;;;;;
-31CA;CJK STROKE HZT;So;0;ON;;;;;N;;;;;
-31CB;CJK STROKE HZZP;So;0;ON;;;;;N;;;;;
-31CC;CJK STROKE HPWG;So;0;ON;;;;;N;;;;;
-31CD;CJK STROKE HZW;So;0;ON;;;;;N;;;;;
-31CE;CJK STROKE HZZZ;So;0;ON;;;;;N;;;;;
-31CF;CJK STROKE N;So;0;ON;;;;;N;;;;;
-31D0;CJK STROKE H;So;0;ON;;;;;N;;;;;
-31D1;CJK STROKE S;So;0;ON;;;;;N;;;;;
-31D2;CJK STROKE P;So;0;ON;;;;;N;;;;;
-31D3;CJK STROKE SP;So;0;ON;;;;;N;;;;;
-31D4;CJK STROKE D;So;0;ON;;;;;N;;;;;
-31D5;CJK STROKE HZ;So;0;ON;;;;;N;;;;;
-31D6;CJK STROKE HG;So;0;ON;;;;;N;;;;;
-31D7;CJK STROKE SZ;So;0;ON;;;;;N;;;;;
-31D8;CJK STROKE SWZ;So;0;ON;;;;;N;;;;;
-31D9;CJK STROKE ST;So;0;ON;;;;;N;;;;;
-31DA;CJK STROKE SG;So;0;ON;;;;;N;;;;;
-31DB;CJK STROKE PD;So;0;ON;;;;;N;;;;;
-31DC;CJK STROKE PZ;So;0;ON;;;;;N;;;;;
-31DD;CJK STROKE TN;So;0;ON;;;;;N;;;;;
-31DE;CJK STROKE SZZ;So;0;ON;;;;;N;;;;;
-31DF;CJK STROKE SWG;So;0;ON;;;;;N;;;;;
-31E0;CJK STROKE HXWG;So;0;ON;;;;;N;;;;;
-31E1;CJK STROKE HZZZG;So;0;ON;;;;;N;;;;;
-31E2;CJK STROKE PG;So;0;ON;;;;;N;;;;;
-31E3;CJK STROKE Q;So;0;ON;;;;;N;;;;;
-31F0;KATAKANA LETTER SMALL KU;Lo;0;L;;;;;N;;;;;
-31F1;KATAKANA LETTER SMALL SI;Lo;0;L;;;;;N;;;;;
-31F2;KATAKANA LETTER SMALL SU;Lo;0;L;;;;;N;;;;;
-31F3;KATAKANA LETTER SMALL TO;Lo;0;L;;;;;N;;;;;
-31F4;KATAKANA LETTER SMALL NU;Lo;0;L;;;;;N;;;;;
-31F5;KATAKANA LETTER SMALL HA;Lo;0;L;;;;;N;;;;;
-31F6;KATAKANA LETTER SMALL HI;Lo;0;L;;;;;N;;;;;
-31F7;KATAKANA LETTER SMALL HU;Lo;0;L;;;;;N;;;;;
-31F8;KATAKANA LETTER SMALL HE;Lo;0;L;;;;;N;;;;;
-31F9;KATAKANA LETTER SMALL HO;Lo;0;L;;;;;N;;;;;
-31FA;KATAKANA LETTER SMALL MU;Lo;0;L;;;;;N;;;;;
-31FB;KATAKANA LETTER SMALL RA;Lo;0;L;;;;;N;;;;;
-31FC;KATAKANA LETTER SMALL RI;Lo;0;L;;;;;N;;;;;
-31FD;KATAKANA LETTER SMALL RU;Lo;0;L;;;;;N;;;;;
-31FE;KATAKANA LETTER SMALL RE;Lo;0;L;;;;;N;;;;;
-31FF;KATAKANA LETTER SMALL RO;Lo;0;L;;;;;N;;;;;
-3200;PARENTHESIZED HANGUL KIYEOK;So;0;L;<compat> 0028 1100 0029;;;;N;PARENTHESIZED HANGUL GIYEOG;;;;
-3201;PARENTHESIZED HANGUL NIEUN;So;0;L;<compat> 0028 1102 0029;;;;N;;;;;
-3202;PARENTHESIZED HANGUL TIKEUT;So;0;L;<compat> 0028 1103 0029;;;;N;PARENTHESIZED HANGUL DIGEUD;;;;
-3203;PARENTHESIZED HANGUL RIEUL;So;0;L;<compat> 0028 1105 0029;;;;N;PARENTHESIZED HANGUL LIEUL;;;;
-3204;PARENTHESIZED HANGUL MIEUM;So;0;L;<compat> 0028 1106 0029;;;;N;;;;;
-3205;PARENTHESIZED HANGUL PIEUP;So;0;L;<compat> 0028 1107 0029;;;;N;PARENTHESIZED HANGUL BIEUB;;;;
-3206;PARENTHESIZED HANGUL SIOS;So;0;L;<compat> 0028 1109 0029;;;;N;;;;;
-3207;PARENTHESIZED HANGUL IEUNG;So;0;L;<compat> 0028 110B 0029;;;;N;;;;;
-3208;PARENTHESIZED HANGUL CIEUC;So;0;L;<compat> 0028 110C 0029;;;;N;PARENTHESIZED HANGUL JIEUJ;;;;
-3209;PARENTHESIZED HANGUL CHIEUCH;So;0;L;<compat> 0028 110E 0029;;;;N;PARENTHESIZED HANGUL CIEUC;;;;
-320A;PARENTHESIZED HANGUL KHIEUKH;So;0;L;<compat> 0028 110F 0029;;;;N;PARENTHESIZED HANGUL KIYEOK;;;;
-320B;PARENTHESIZED HANGUL THIEUTH;So;0;L;<compat> 0028 1110 0029;;;;N;PARENTHESIZED HANGUL TIEUT;;;;
-320C;PARENTHESIZED HANGUL PHIEUPH;So;0;L;<compat> 0028 1111 0029;;;;N;PARENTHESIZED HANGUL PIEUP;;;;
-320D;PARENTHESIZED HANGUL HIEUH;So;0;L;<compat> 0028 1112 0029;;;;N;;;;;
-320E;PARENTHESIZED HANGUL KIYEOK A;So;0;L;<compat> 0028 1100 1161 0029;;;;N;PARENTHESIZED HANGUL GA;;;;
-320F;PARENTHESIZED HANGUL NIEUN A;So;0;L;<compat> 0028 1102 1161 0029;;;;N;PARENTHESIZED HANGUL NA;;;;
-3210;PARENTHESIZED HANGUL TIKEUT A;So;0;L;<compat> 0028 1103 1161 0029;;;;N;PARENTHESIZED HANGUL DA;;;;
-3211;PARENTHESIZED HANGUL RIEUL A;So;0;L;<compat> 0028 1105 1161 0029;;;;N;PARENTHESIZED HANGUL LA;;;;
-3212;PARENTHESIZED HANGUL MIEUM A;So;0;L;<compat> 0028 1106 1161 0029;;;;N;PARENTHESIZED HANGUL MA;;;;
-3213;PARENTHESIZED HANGUL PIEUP A;So;0;L;<compat> 0028 1107 1161 0029;;;;N;PARENTHESIZED HANGUL BA;;;;
-3214;PARENTHESIZED HANGUL SIOS A;So;0;L;<compat> 0028 1109 1161 0029;;;;N;PARENTHESIZED HANGUL SA;;;;
-3215;PARENTHESIZED HANGUL IEUNG A;So;0;L;<compat> 0028 110B 1161 0029;;;;N;PARENTHESIZED HANGUL A;;;;
-3216;PARENTHESIZED HANGUL CIEUC A;So;0;L;<compat> 0028 110C 1161 0029;;;;N;PARENTHESIZED HANGUL JA;;;;
-3217;PARENTHESIZED HANGUL CHIEUCH A;So;0;L;<compat> 0028 110E 1161 0029;;;;N;PARENTHESIZED HANGUL CA;;;;
-3218;PARENTHESIZED HANGUL KHIEUKH A;So;0;L;<compat> 0028 110F 1161 0029;;;;N;PARENTHESIZED HANGUL KA;;;;
-3219;PARENTHESIZED HANGUL THIEUTH A;So;0;L;<compat> 0028 1110 1161 0029;;;;N;PARENTHESIZED HANGUL TA;;;;
-321A;PARENTHESIZED HANGUL PHIEUPH A;So;0;L;<compat> 0028 1111 1161 0029;;;;N;PARENTHESIZED HANGUL PA;;;;
-321B;PARENTHESIZED HANGUL HIEUH A;So;0;L;<compat> 0028 1112 1161 0029;;;;N;PARENTHESIZED HANGUL HA;;;;
-321C;PARENTHESIZED HANGUL CIEUC U;So;0;L;<compat> 0028 110C 116E 0029;;;;N;PARENTHESIZED HANGUL JU;;;;
-321D;PARENTHESIZED KOREAN CHARACTER OJEON;So;0;ON;<compat> 0028 110B 1169 110C 1165 11AB 0029;;;;N;;;;;
-321E;PARENTHESIZED KOREAN CHARACTER O HU;So;0;ON;<compat> 0028 110B 1169 1112 116E 0029;;;;N;;;;;
-3220;PARENTHESIZED IDEOGRAPH ONE;No;0;L;<compat> 0028 4E00 0029;;;1;N;;;;;
-3221;PARENTHESIZED IDEOGRAPH TWO;No;0;L;<compat> 0028 4E8C 0029;;;2;N;;;;;
-3222;PARENTHESIZED IDEOGRAPH THREE;No;0;L;<compat> 0028 4E09 0029;;;3;N;;;;;
-3223;PARENTHESIZED IDEOGRAPH FOUR;No;0;L;<compat> 0028 56DB 0029;;;4;N;;;;;
-3224;PARENTHESIZED IDEOGRAPH FIVE;No;0;L;<compat> 0028 4E94 0029;;;5;N;;;;;
-3225;PARENTHESIZED IDEOGRAPH SIX;No;0;L;<compat> 0028 516D 0029;;;6;N;;;;;
-3226;PARENTHESIZED IDEOGRAPH SEVEN;No;0;L;<compat> 0028 4E03 0029;;;7;N;;;;;
-3227;PARENTHESIZED IDEOGRAPH EIGHT;No;0;L;<compat> 0028 516B 0029;;;8;N;;;;;
-3228;PARENTHESIZED IDEOGRAPH NINE;No;0;L;<compat> 0028 4E5D 0029;;;9;N;;;;;
-3229;PARENTHESIZED IDEOGRAPH TEN;No;0;L;<compat> 0028 5341 0029;;;10;N;;;;;
-322A;PARENTHESIZED IDEOGRAPH MOON;So;0;L;<compat> 0028 6708 0029;;;;N;;;;;
-322B;PARENTHESIZED IDEOGRAPH FIRE;So;0;L;<compat> 0028 706B 0029;;;;N;;;;;
-322C;PARENTHESIZED IDEOGRAPH WATER;So;0;L;<compat> 0028 6C34 0029;;;;N;;;;;
-322D;PARENTHESIZED IDEOGRAPH WOOD;So;0;L;<compat> 0028 6728 0029;;;;N;;;;;
-322E;PARENTHESIZED IDEOGRAPH METAL;So;0;L;<compat> 0028 91D1 0029;;;;N;;;;;
-322F;PARENTHESIZED IDEOGRAPH EARTH;So;0;L;<compat> 0028 571F 0029;;;;N;;;;;
-3230;PARENTHESIZED IDEOGRAPH SUN;So;0;L;<compat> 0028 65E5 0029;;;;N;;;;;
-3231;PARENTHESIZED IDEOGRAPH STOCK;So;0;L;<compat> 0028 682A 0029;;;;N;;;;;
-3232;PARENTHESIZED IDEOGRAPH HAVE;So;0;L;<compat> 0028 6709 0029;;;;N;;;;;
-3233;PARENTHESIZED IDEOGRAPH SOCIETY;So;0;L;<compat> 0028 793E 0029;;;;N;;;;;
-3234;PARENTHESIZED IDEOGRAPH NAME;So;0;L;<compat> 0028 540D 0029;;;;N;;;;;
-3235;PARENTHESIZED IDEOGRAPH SPECIAL;So;0;L;<compat> 0028 7279 0029;;;;N;;;;;
-3236;PARENTHESIZED IDEOGRAPH FINANCIAL;So;0;L;<compat> 0028 8CA1 0029;;;;N;;;;;
-3237;PARENTHESIZED IDEOGRAPH CONGRATULATION;So;0;L;<compat> 0028 795D 0029;;;;N;;;;;
-3238;PARENTHESIZED IDEOGRAPH LABOR;So;0;L;<compat> 0028 52B4 0029;;;;N;;;;;
-3239;PARENTHESIZED IDEOGRAPH REPRESENT;So;0;L;<compat> 0028 4EE3 0029;;;;N;;;;;
-323A;PARENTHESIZED IDEOGRAPH CALL;So;0;L;<compat> 0028 547C 0029;;;;N;;;;;
-323B;PARENTHESIZED IDEOGRAPH STUDY;So;0;L;<compat> 0028 5B66 0029;;;;N;;;;;
-323C;PARENTHESIZED IDEOGRAPH SUPERVISE;So;0;L;<compat> 0028 76E3 0029;;;;N;;;;;
-323D;PARENTHESIZED IDEOGRAPH ENTERPRISE;So;0;L;<compat> 0028 4F01 0029;;;;N;;;;;
-323E;PARENTHESIZED IDEOGRAPH RESOURCE;So;0;L;<compat> 0028 8CC7 0029;;;;N;;;;;
-323F;PARENTHESIZED IDEOGRAPH ALLIANCE;So;0;L;<compat> 0028 5354 0029;;;;N;;;;;
-3240;PARENTHESIZED IDEOGRAPH FESTIVAL;So;0;L;<compat> 0028 796D 0029;;;;N;;;;;
-3241;PARENTHESIZED IDEOGRAPH REST;So;0;L;<compat> 0028 4F11 0029;;;;N;;;;;
-3242;PARENTHESIZED IDEOGRAPH SELF;So;0;L;<compat> 0028 81EA 0029;;;;N;;;;;
-3243;PARENTHESIZED IDEOGRAPH REACH;So;0;L;<compat> 0028 81F3 0029;;;;N;;;;;
-3244;CIRCLED IDEOGRAPH QUESTION;So;0;L;<circle> 554F;;;;N;;;;;
-3245;CIRCLED IDEOGRAPH KINDERGARTEN;So;0;L;<circle> 5E7C;;;;N;;;;;
-3246;CIRCLED IDEOGRAPH SCHOOL;So;0;L;<circle> 6587;;;;N;;;;;
-3247;CIRCLED IDEOGRAPH KOTO;So;0;L;<circle> 7B8F;;;;N;;;;;
-3248;CIRCLED NUMBER TEN ON BLACK SQUARE;No;0;L;;;;10;N;;;;;
-3249;CIRCLED NUMBER TWENTY ON BLACK SQUARE;No;0;L;;;;20;N;;;;;
-324A;CIRCLED NUMBER THIRTY ON BLACK SQUARE;No;0;L;;;;30;N;;;;;
-324B;CIRCLED NUMBER FORTY ON BLACK SQUARE;No;0;L;;;;40;N;;;;;
-324C;CIRCLED NUMBER FIFTY ON BLACK SQUARE;No;0;L;;;;50;N;;;;;
-324D;CIRCLED NUMBER SIXTY ON BLACK SQUARE;No;0;L;;;;60;N;;;;;
-324E;CIRCLED NUMBER SEVENTY ON BLACK SQUARE;No;0;L;;;;70;N;;;;;
-324F;CIRCLED NUMBER EIGHTY ON BLACK SQUARE;No;0;L;;;;80;N;;;;;
-3250;PARTNERSHIP SIGN;So;0;ON;<square> 0050 0054 0045;;;;N;;;;;
-3251;CIRCLED NUMBER TWENTY ONE;No;0;ON;<circle> 0032 0031;;;21;N;;;;;
-3252;CIRCLED NUMBER TWENTY TWO;No;0;ON;<circle> 0032 0032;;;22;N;;;;;
-3253;CIRCLED NUMBER TWENTY THREE;No;0;ON;<circle> 0032 0033;;;23;N;;;;;
-3254;CIRCLED NUMBER TWENTY FOUR;No;0;ON;<circle> 0032 0034;;;24;N;;;;;
-3255;CIRCLED NUMBER TWENTY FIVE;No;0;ON;<circle> 0032 0035;;;25;N;;;;;
-3256;CIRCLED NUMBER TWENTY SIX;No;0;ON;<circle> 0032 0036;;;26;N;;;;;
-3257;CIRCLED NUMBER TWENTY SEVEN;No;0;ON;<circle> 0032 0037;;;27;N;;;;;
-3258;CIRCLED NUMBER TWENTY EIGHT;No;0;ON;<circle> 0032 0038;;;28;N;;;;;
-3259;CIRCLED NUMBER TWENTY NINE;No;0;ON;<circle> 0032 0039;;;29;N;;;;;
-325A;CIRCLED NUMBER THIRTY;No;0;ON;<circle> 0033 0030;;;30;N;;;;;
-325B;CIRCLED NUMBER THIRTY ONE;No;0;ON;<circle> 0033 0031;;;31;N;;;;;
-325C;CIRCLED NUMBER THIRTY TWO;No;0;ON;<circle> 0033 0032;;;32;N;;;;;
-325D;CIRCLED NUMBER THIRTY THREE;No;0;ON;<circle> 0033 0033;;;33;N;;;;;
-325E;CIRCLED NUMBER THIRTY FOUR;No;0;ON;<circle> 0033 0034;;;34;N;;;;;
-325F;CIRCLED NUMBER THIRTY FIVE;No;0;ON;<circle> 0033 0035;;;35;N;;;;;
-3260;CIRCLED HANGUL KIYEOK;So;0;L;<circle> 1100;;;;N;CIRCLED HANGUL GIYEOG;;;;
-3261;CIRCLED HANGUL NIEUN;So;0;L;<circle> 1102;;;;N;;;;;
-3262;CIRCLED HANGUL TIKEUT;So;0;L;<circle> 1103;;;;N;CIRCLED HANGUL DIGEUD;;;;
-3263;CIRCLED HANGUL RIEUL;So;0;L;<circle> 1105;;;;N;CIRCLED HANGUL LIEUL;;;;
-3264;CIRCLED HANGUL MIEUM;So;0;L;<circle> 1106;;;;N;;;;;
-3265;CIRCLED HANGUL PIEUP;So;0;L;<circle> 1107;;;;N;CIRCLED HANGUL BIEUB;;;;
-3266;CIRCLED HANGUL SIOS;So;0;L;<circle> 1109;;;;N;;;;;
-3267;CIRCLED HANGUL IEUNG;So;0;L;<circle> 110B;;;;N;;;;;
-3268;CIRCLED HANGUL CIEUC;So;0;L;<circle> 110C;;;;N;CIRCLED HANGUL JIEUJ;;;;
-3269;CIRCLED HANGUL CHIEUCH;So;0;L;<circle> 110E;;;;N;CIRCLED HANGUL CIEUC;;;;
-326A;CIRCLED HANGUL KHIEUKH;So;0;L;<circle> 110F;;;;N;CIRCLED HANGUL KIYEOK;;;;
-326B;CIRCLED HANGUL THIEUTH;So;0;L;<circle> 1110;;;;N;CIRCLED HANGUL TIEUT;;;;
-326C;CIRCLED HANGUL PHIEUPH;So;0;L;<circle> 1111;;;;N;CIRCLED HANGUL PIEUP;;;;
-326D;CIRCLED HANGUL HIEUH;So;0;L;<circle> 1112;;;;N;;;;;
-326E;CIRCLED HANGUL KIYEOK A;So;0;L;<circle> 1100 1161;;;;N;CIRCLED HANGUL GA;;;;
-326F;CIRCLED HANGUL NIEUN A;So;0;L;<circle> 1102 1161;;;;N;CIRCLED HANGUL NA;;;;
-3270;CIRCLED HANGUL TIKEUT A;So;0;L;<circle> 1103 1161;;;;N;CIRCLED HANGUL DA;;;;
-3271;CIRCLED HANGUL RIEUL A;So;0;L;<circle> 1105 1161;;;;N;CIRCLED HANGUL LA;;;;
-3272;CIRCLED HANGUL MIEUM A;So;0;L;<circle> 1106 1161;;;;N;CIRCLED HANGUL MA;;;;
-3273;CIRCLED HANGUL PIEUP A;So;0;L;<circle> 1107 1161;;;;N;CIRCLED HANGUL BA;;;;
-3274;CIRCLED HANGUL SIOS A;So;0;L;<circle> 1109 1161;;;;N;CIRCLED HANGUL SA;;;;
-3275;CIRCLED HANGUL IEUNG A;So;0;L;<circle> 110B 1161;;;;N;CIRCLED HANGUL A;;;;
-3276;CIRCLED HANGUL CIEUC A;So;0;L;<circle> 110C 1161;;;;N;CIRCLED HANGUL JA;;;;
-3277;CIRCLED HANGUL CHIEUCH A;So;0;L;<circle> 110E 1161;;;;N;CIRCLED HANGUL CA;;;;
-3278;CIRCLED HANGUL KHIEUKH A;So;0;L;<circle> 110F 1161;;;;N;CIRCLED HANGUL KA;;;;
-3279;CIRCLED HANGUL THIEUTH A;So;0;L;<circle> 1110 1161;;;;N;CIRCLED HANGUL TA;;;;
-327A;CIRCLED HANGUL PHIEUPH A;So;0;L;<circle> 1111 1161;;;;N;CIRCLED HANGUL PA;;;;
-327B;CIRCLED HANGUL HIEUH A;So;0;L;<circle> 1112 1161;;;;N;CIRCLED HANGUL HA;;;;
-327C;CIRCLED KOREAN CHARACTER CHAMKO;So;0;ON;<circle> 110E 1161 11B7 1100 1169;;;;N;;;;;
-327D;CIRCLED KOREAN CHARACTER JUEUI;So;0;ON;<circle> 110C 116E 110B 1174;;;;N;;;;;
-327E;CIRCLED HANGUL IEUNG U;So;0;ON;<circle> 110B 116E;;;;N;;;;;
-327F;KOREAN STANDARD SYMBOL;So;0;L;;;;;N;;;;;
-3280;CIRCLED IDEOGRAPH ONE;No;0;L;<circle> 4E00;;;1;N;;;;;
-3281;CIRCLED IDEOGRAPH TWO;No;0;L;<circle> 4E8C;;;2;N;;;;;
-3282;CIRCLED IDEOGRAPH THREE;No;0;L;<circle> 4E09;;;3;N;;;;;
-3283;CIRCLED IDEOGRAPH FOUR;No;0;L;<circle> 56DB;;;4;N;;;;;
-3284;CIRCLED IDEOGRAPH FIVE;No;0;L;<circle> 4E94;;;5;N;;;;;
-3285;CIRCLED IDEOGRAPH SIX;No;0;L;<circle> 516D;;;6;N;;;;;
-3286;CIRCLED IDEOGRAPH SEVEN;No;0;L;<circle> 4E03;;;7;N;;;;;
-3287;CIRCLED IDEOGRAPH EIGHT;No;0;L;<circle> 516B;;;8;N;;;;;
-3288;CIRCLED IDEOGRAPH NINE;No;0;L;<circle> 4E5D;;;9;N;;;;;
-3289;CIRCLED IDEOGRAPH TEN;No;0;L;<circle> 5341;;;10;N;;;;;
-328A;CIRCLED IDEOGRAPH MOON;So;0;L;<circle> 6708;;;;N;;;;;
-328B;CIRCLED IDEOGRAPH FIRE;So;0;L;<circle> 706B;;;;N;;;;;
-328C;CIRCLED IDEOGRAPH WATER;So;0;L;<circle> 6C34;;;;N;;;;;
-328D;CIRCLED IDEOGRAPH WOOD;So;0;L;<circle> 6728;;;;N;;;;;
-328E;CIRCLED IDEOGRAPH METAL;So;0;L;<circle> 91D1;;;;N;;;;;
-328F;CIRCLED IDEOGRAPH EARTH;So;0;L;<circle> 571F;;;;N;;;;;
-3290;CIRCLED IDEOGRAPH SUN;So;0;L;<circle> 65E5;;;;N;;;;;
-3291;CIRCLED IDEOGRAPH STOCK;So;0;L;<circle> 682A;;;;N;;;;;
-3292;CIRCLED IDEOGRAPH HAVE;So;0;L;<circle> 6709;;;;N;;;;;
-3293;CIRCLED IDEOGRAPH SOCIETY;So;0;L;<circle> 793E;;;;N;;;;;
-3294;CIRCLED IDEOGRAPH NAME;So;0;L;<circle> 540D;;;;N;;;;;
-3295;CIRCLED IDEOGRAPH SPECIAL;So;0;L;<circle> 7279;;;;N;;;;;
-3296;CIRCLED IDEOGRAPH FINANCIAL;So;0;L;<circle> 8CA1;;;;N;;;;;
-3297;CIRCLED IDEOGRAPH CONGRATULATION;So;0;L;<circle> 795D;;;;N;;;;;
-3298;CIRCLED IDEOGRAPH LABOR;So;0;L;<circle> 52B4;;;;N;;;;;
-3299;CIRCLED IDEOGRAPH SECRET;So;0;L;<circle> 79D8;;;;N;;;;;
-329A;CIRCLED IDEOGRAPH MALE;So;0;L;<circle> 7537;;;;N;;;;;
-329B;CIRCLED IDEOGRAPH FEMALE;So;0;L;<circle> 5973;;;;N;;;;;
-329C;CIRCLED IDEOGRAPH SUITABLE;So;0;L;<circle> 9069;;;;N;;;;;
-329D;CIRCLED IDEOGRAPH EXCELLENT;So;0;L;<circle> 512A;;;;N;;;;;
-329E;CIRCLED IDEOGRAPH PRINT;So;0;L;<circle> 5370;;;;N;;;;;
-329F;CIRCLED IDEOGRAPH ATTENTION;So;0;L;<circle> 6CE8;;;;N;;;;;
-32A0;CIRCLED IDEOGRAPH ITEM;So;0;L;<circle> 9805;;;;N;;;;;
-32A1;CIRCLED IDEOGRAPH REST;So;0;L;<circle> 4F11;;;;N;;;;;
-32A2;CIRCLED IDEOGRAPH COPY;So;0;L;<circle> 5199;;;;N;;;;;
-32A3;CIRCLED IDEOGRAPH CORRECT;So;0;L;<circle> 6B63;;;;N;;;;;
-32A4;CIRCLED IDEOGRAPH HIGH;So;0;L;<circle> 4E0A;;;;N;;;;;
-32A5;CIRCLED IDEOGRAPH CENTRE;So;0;L;<circle> 4E2D;;;;N;CIRCLED IDEOGRAPH CENTER;;;;
-32A6;CIRCLED IDEOGRAPH LOW;So;0;L;<circle> 4E0B;;;;N;;;;;
-32A7;CIRCLED IDEOGRAPH LEFT;So;0;L;<circle> 5DE6;;;;N;;;;;
-32A8;CIRCLED IDEOGRAPH RIGHT;So;0;L;<circle> 53F3;;;;N;;;;;
-32A9;CIRCLED IDEOGRAPH MEDICINE;So;0;L;<circle> 533B;;;;N;;;;;
-32AA;CIRCLED IDEOGRAPH RELIGION;So;0;L;<circle> 5B97;;;;N;;;;;
-32AB;CIRCLED IDEOGRAPH STUDY;So;0;L;<circle> 5B66;;;;N;;;;;
-32AC;CIRCLED IDEOGRAPH SUPERVISE;So;0;L;<circle> 76E3;;;;N;;;;;
-32AD;CIRCLED IDEOGRAPH ENTERPRISE;So;0;L;<circle> 4F01;;;;N;;;;;
-32AE;CIRCLED IDEOGRAPH RESOURCE;So;0;L;<circle> 8CC7;;;;N;;;;;
-32AF;CIRCLED IDEOGRAPH ALLIANCE;So;0;L;<circle> 5354;;;;N;;;;;
-32B0;CIRCLED IDEOGRAPH NIGHT;So;0;L;<circle> 591C;;;;N;;;;;
-32B1;CIRCLED NUMBER THIRTY SIX;No;0;ON;<circle> 0033 0036;;;36;N;;;;;
-32B2;CIRCLED NUMBER THIRTY SEVEN;No;0;ON;<circle> 0033 0037;;;37;N;;;;;
-32B3;CIRCLED NUMBER THIRTY EIGHT;No;0;ON;<circle> 0033 0038;;;38;N;;;;;
-32B4;CIRCLED NUMBER THIRTY NINE;No;0;ON;<circle> 0033 0039;;;39;N;;;;;
-32B5;CIRCLED NUMBER FORTY;No;0;ON;<circle> 0034 0030;;;40;N;;;;;
-32B6;CIRCLED NUMBER FORTY ONE;No;0;ON;<circle> 0034 0031;;;41;N;;;;;
-32B7;CIRCLED NUMBER FORTY TWO;No;0;ON;<circle> 0034 0032;;;42;N;;;;;
-32B8;CIRCLED NUMBER FORTY THREE;No;0;ON;<circle> 0034 0033;;;43;N;;;;;
-32B9;CIRCLED NUMBER FORTY FOUR;No;0;ON;<circle> 0034 0034;;;44;N;;;;;
-32BA;CIRCLED NUMBER FORTY FIVE;No;0;ON;<circle> 0034 0035;;;45;N;;;;;
-32BB;CIRCLED NUMBER FORTY SIX;No;0;ON;<circle> 0034 0036;;;46;N;;;;;
-32BC;CIRCLED NUMBER FORTY SEVEN;No;0;ON;<circle> 0034 0037;;;47;N;;;;;
-32BD;CIRCLED NUMBER FORTY EIGHT;No;0;ON;<circle> 0034 0038;;;48;N;;;;;
-32BE;CIRCLED NUMBER FORTY NINE;No;0;ON;<circle> 0034 0039;;;49;N;;;;;
-32BF;CIRCLED NUMBER FIFTY;No;0;ON;<circle> 0035 0030;;;50;N;;;;;
-32C0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY;So;0;L;<compat> 0031 6708;;;;N;;;;;
-32C1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY;So;0;L;<compat> 0032 6708;;;;N;;;;;
-32C2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH;So;0;L;<compat> 0033 6708;;;;N;;;;;
-32C3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL;So;0;L;<compat> 0034 6708;;;;N;;;;;
-32C4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY;So;0;L;<compat> 0035 6708;;;;N;;;;;
-32C5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE;So;0;L;<compat> 0036 6708;;;;N;;;;;
-32C6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY;So;0;L;<compat> 0037 6708;;;;N;;;;;
-32C7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST;So;0;L;<compat> 0038 6708;;;;N;;;;;
-32C8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER;So;0;L;<compat> 0039 6708;;;;N;;;;;
-32C9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER;So;0;L;<compat> 0031 0030 6708;;;;N;;;;;
-32CA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER;So;0;L;<compat> 0031 0031 6708;;;;N;;;;;
-32CB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER;So;0;L;<compat> 0031 0032 6708;;;;N;;;;;
-32CC;SQUARE HG;So;0;ON;<square> 0048 0067;;;;N;;;;;
-32CD;SQUARE ERG;So;0;ON;<square> 0065 0072 0067;;;;N;;;;;
-32CE;SQUARE EV;So;0;ON;<square> 0065 0056;;;;N;;;;;
-32CF;LIMITED LIABILITY SIGN;So;0;ON;<square> 004C 0054 0044;;;;N;;;;;
-32D0;CIRCLED KATAKANA A;So;0;L;<circle> 30A2;;;;N;;;;;
-32D1;CIRCLED KATAKANA I;So;0;L;<circle> 30A4;;;;N;;;;;
-32D2;CIRCLED KATAKANA U;So;0;L;<circle> 30A6;;;;N;;;;;
-32D3;CIRCLED KATAKANA E;So;0;L;<circle> 30A8;;;;N;;;;;
-32D4;CIRCLED KATAKANA O;So;0;L;<circle> 30AA;;;;N;;;;;
-32D5;CIRCLED KATAKANA KA;So;0;L;<circle> 30AB;;;;N;;;;;
-32D6;CIRCLED KATAKANA KI;So;0;L;<circle> 30AD;;;;N;;;;;
-32D7;CIRCLED KATAKANA KU;So;0;L;<circle> 30AF;;;;N;;;;;
-32D8;CIRCLED KATAKANA KE;So;0;L;<circle> 30B1;;;;N;;;;;
-32D9;CIRCLED KATAKANA KO;So;0;L;<circle> 30B3;;;;N;;;;;
-32DA;CIRCLED KATAKANA SA;So;0;L;<circle> 30B5;;;;N;;;;;
-32DB;CIRCLED KATAKANA SI;So;0;L;<circle> 30B7;;;;N;;;;;
-32DC;CIRCLED KATAKANA SU;So;0;L;<circle> 30B9;;;;N;;;;;
-32DD;CIRCLED KATAKANA SE;So;0;L;<circle> 30BB;;;;N;;;;;
-32DE;CIRCLED KATAKANA SO;So;0;L;<circle> 30BD;;;;N;;;;;
-32DF;CIRCLED KATAKANA TA;So;0;L;<circle> 30BF;;;;N;;;;;
-32E0;CIRCLED KATAKANA TI;So;0;L;<circle> 30C1;;;;N;;;;;
-32E1;CIRCLED KATAKANA TU;So;0;L;<circle> 30C4;;;;N;;;;;
-32E2;CIRCLED KATAKANA TE;So;0;L;<circle> 30C6;;;;N;;;;;
-32E3;CIRCLED KATAKANA TO;So;0;L;<circle> 30C8;;;;N;;;;;
-32E4;CIRCLED KATAKANA NA;So;0;L;<circle> 30CA;;;;N;;;;;
-32E5;CIRCLED KATAKANA NI;So;0;L;<circle> 30CB;;;;N;;;;;
-32E6;CIRCLED KATAKANA NU;So;0;L;<circle> 30CC;;;;N;;;;;
-32E7;CIRCLED KATAKANA NE;So;0;L;<circle> 30CD;;;;N;;;;;
-32E8;CIRCLED KATAKANA NO;So;0;L;<circle> 30CE;;;;N;;;;;
-32E9;CIRCLED KATAKANA HA;So;0;L;<circle> 30CF;;;;N;;;;;
-32EA;CIRCLED KATAKANA HI;So;0;L;<circle> 30D2;;;;N;;;;;
-32EB;CIRCLED KATAKANA HU;So;0;L;<circle> 30D5;;;;N;;;;;
-32EC;CIRCLED KATAKANA HE;So;0;L;<circle> 30D8;;;;N;;;;;
-32ED;CIRCLED KATAKANA HO;So;0;L;<circle> 30DB;;;;N;;;;;
-32EE;CIRCLED KATAKANA MA;So;0;L;<circle> 30DE;;;;N;;;;;
-32EF;CIRCLED KATAKANA MI;So;0;L;<circle> 30DF;;;;N;;;;;
-32F0;CIRCLED KATAKANA MU;So;0;L;<circle> 30E0;;;;N;;;;;
-32F1;CIRCLED KATAKANA ME;So;0;L;<circle> 30E1;;;;N;;;;;
-32F2;CIRCLED KATAKANA MO;So;0;L;<circle> 30E2;;;;N;;;;;
-32F3;CIRCLED KATAKANA YA;So;0;L;<circle> 30E4;;;;N;;;;;
-32F4;CIRCLED KATAKANA YU;So;0;L;<circle> 30E6;;;;N;;;;;
-32F5;CIRCLED KATAKANA YO;So;0;L;<circle> 30E8;;;;N;;;;;
-32F6;CIRCLED KATAKANA RA;So;0;L;<circle> 30E9;;;;N;;;;;
-32F7;CIRCLED KATAKANA RI;So;0;L;<circle> 30EA;;;;N;;;;;
-32F8;CIRCLED KATAKANA RU;So;0;L;<circle> 30EB;;;;N;;;;;
-32F9;CIRCLED KATAKANA RE;So;0;L;<circle> 30EC;;;;N;;;;;
-32FA;CIRCLED KATAKANA RO;So;0;L;<circle> 30ED;;;;N;;;;;
-32FB;CIRCLED KATAKANA WA;So;0;L;<circle> 30EF;;;;N;;;;;
-32FC;CIRCLED KATAKANA WI;So;0;L;<circle> 30F0;;;;N;;;;;
-32FD;CIRCLED KATAKANA WE;So;0;L;<circle> 30F1;;;;N;;;;;
-32FE;CIRCLED KATAKANA WO;So;0;L;<circle> 30F2;;;;N;;;;;
-3300;SQUARE APAATO;So;0;L;<square> 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;;
-3301;SQUARE ARUHUA;So;0;L;<square> 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;;
-3302;SQUARE ANPEA;So;0;L;<square> 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;;
-3303;SQUARE AARU;So;0;L;<square> 30A2 30FC 30EB;;;;N;SQUARED AARU;;;;
-3304;SQUARE ININGU;So;0;L;<square> 30A4 30CB 30F3 30B0;;;;N;SQUARED ININGU;;;;
-3305;SQUARE INTI;So;0;L;<square> 30A4 30F3 30C1;;;;N;SQUARED INTI;;;;
-3306;SQUARE UON;So;0;L;<square> 30A6 30A9 30F3;;;;N;SQUARED UON;;;;
-3307;SQUARE ESUKUUDO;So;0;L;<square> 30A8 30B9 30AF 30FC 30C9;;;;N;SQUARED ESUKUUDO;;;;
-3308;SQUARE EEKAA;So;0;L;<square> 30A8 30FC 30AB 30FC;;;;N;SQUARED EEKAA;;;;
-3309;SQUARE ONSU;So;0;L;<square> 30AA 30F3 30B9;;;;N;SQUARED ONSU;;;;
-330A;SQUARE OOMU;So;0;L;<square> 30AA 30FC 30E0;;;;N;SQUARED OOMU;;;;
-330B;SQUARE KAIRI;So;0;L;<square> 30AB 30A4 30EA;;;;N;SQUARED KAIRI;;;;
-330C;SQUARE KARATTO;So;0;L;<square> 30AB 30E9 30C3 30C8;;;;N;SQUARED KARATTO;;;;
-330D;SQUARE KARORII;So;0;L;<square> 30AB 30ED 30EA 30FC;;;;N;SQUARED KARORII;;;;
-330E;SQUARE GARON;So;0;L;<square> 30AC 30ED 30F3;;;;N;SQUARED GARON;;;;
-330F;SQUARE GANMA;So;0;L;<square> 30AC 30F3 30DE;;;;N;SQUARED GANMA;;;;
-3310;SQUARE GIGA;So;0;L;<square> 30AE 30AC;;;;N;SQUARED GIGA;;;;
-3311;SQUARE GINII;So;0;L;<square> 30AE 30CB 30FC;;;;N;SQUARED GINII;;;;
-3312;SQUARE KYURII;So;0;L;<square> 30AD 30E5 30EA 30FC;;;;N;SQUARED KYURII;;;;
-3313;SQUARE GIRUDAA;So;0;L;<square> 30AE 30EB 30C0 30FC;;;;N;SQUARED GIRUDAA;;;;
-3314;SQUARE KIRO;So;0;L;<square> 30AD 30ED;;;;N;SQUARED KIRO;;;;
-3315;SQUARE KIROGURAMU;So;0;L;<square> 30AD 30ED 30B0 30E9 30E0;;;;N;SQUARED KIROGURAMU;;;;
-3316;SQUARE KIROMEETORU;So;0;L;<square> 30AD 30ED 30E1 30FC 30C8 30EB;;;;N;SQUARED KIROMEETORU;;;;
-3317;SQUARE KIROWATTO;So;0;L;<square> 30AD 30ED 30EF 30C3 30C8;;;;N;SQUARED KIROWATTO;;;;
-3318;SQUARE GURAMU;So;0;L;<square> 30B0 30E9 30E0;;;;N;SQUARED GURAMU;;;;
-3319;SQUARE GURAMUTON;So;0;L;<square> 30B0 30E9 30E0 30C8 30F3;;;;N;SQUARED GURAMUTON;;;;
-331A;SQUARE KURUZEIRO;So;0;L;<square> 30AF 30EB 30BC 30A4 30ED;;;;N;SQUARED KURUZEIRO;;;;
-331B;SQUARE KUROONE;So;0;L;<square> 30AF 30ED 30FC 30CD;;;;N;SQUARED KUROONE;;;;
-331C;SQUARE KEESU;So;0;L;<square> 30B1 30FC 30B9;;;;N;SQUARED KEESU;;;;
-331D;SQUARE KORUNA;So;0;L;<square> 30B3 30EB 30CA;;;;N;SQUARED KORUNA;;;;
-331E;SQUARE KOOPO;So;0;L;<square> 30B3 30FC 30DD;;;;N;SQUARED KOOPO;;;;
-331F;SQUARE SAIKURU;So;0;L;<square> 30B5 30A4 30AF 30EB;;;;N;SQUARED SAIKURU;;;;
-3320;SQUARE SANTIIMU;So;0;L;<square> 30B5 30F3 30C1 30FC 30E0;;;;N;SQUARED SANTIIMU;;;;
-3321;SQUARE SIRINGU;So;0;L;<square> 30B7 30EA 30F3 30B0;;;;N;SQUARED SIRINGU;;;;
-3322;SQUARE SENTI;So;0;L;<square> 30BB 30F3 30C1;;;;N;SQUARED SENTI;;;;
-3323;SQUARE SENTO;So;0;L;<square> 30BB 30F3 30C8;;;;N;SQUARED SENTO;;;;
-3324;SQUARE DAASU;So;0;L;<square> 30C0 30FC 30B9;;;;N;SQUARED DAASU;;;;
-3325;SQUARE DESI;So;0;L;<square> 30C7 30B7;;;;N;SQUARED DESI;;;;
-3326;SQUARE DORU;So;0;L;<square> 30C9 30EB;;;;N;SQUARED DORU;;;;
-3327;SQUARE TON;So;0;L;<square> 30C8 30F3;;;;N;SQUARED TON;;;;
-3328;SQUARE NANO;So;0;L;<square> 30CA 30CE;;;;N;SQUARED NANO;;;;
-3329;SQUARE NOTTO;So;0;L;<square> 30CE 30C3 30C8;;;;N;SQUARED NOTTO;;;;
-332A;SQUARE HAITU;So;0;L;<square> 30CF 30A4 30C4;;;;N;SQUARED HAITU;;;;
-332B;SQUARE PAASENTO;So;0;L;<square> 30D1 30FC 30BB 30F3 30C8;;;;N;SQUARED PAASENTO;;;;
-332C;SQUARE PAATU;So;0;L;<square> 30D1 30FC 30C4;;;;N;SQUARED PAATU;;;;
-332D;SQUARE BAARERU;So;0;L;<square> 30D0 30FC 30EC 30EB;;;;N;SQUARED BAARERU;;;;
-332E;SQUARE PIASUTORU;So;0;L;<square> 30D4 30A2 30B9 30C8 30EB;;;;N;SQUARED PIASUTORU;;;;
-332F;SQUARE PIKURU;So;0;L;<square> 30D4 30AF 30EB;;;;N;SQUARED PIKURU;;;;
-3330;SQUARE PIKO;So;0;L;<square> 30D4 30B3;;;;N;SQUARED PIKO;;;;
-3331;SQUARE BIRU;So;0;L;<square> 30D3 30EB;;;;N;SQUARED BIRU;;;;
-3332;SQUARE HUARADDO;So;0;L;<square> 30D5 30A1 30E9 30C3 30C9;;;;N;SQUARED HUARADDO;;;;
-3333;SQUARE HUIITO;So;0;L;<square> 30D5 30A3 30FC 30C8;;;;N;SQUARED HUIITO;;;;
-3334;SQUARE BUSSYERU;So;0;L;<square> 30D6 30C3 30B7 30A7 30EB;;;;N;SQUARED BUSSYERU;;;;
-3335;SQUARE HURAN;So;0;L;<square> 30D5 30E9 30F3;;;;N;SQUARED HURAN;;;;
-3336;SQUARE HEKUTAARU;So;0;L;<square> 30D8 30AF 30BF 30FC 30EB;;;;N;SQUARED HEKUTAARU;;;;
-3337;SQUARE PESO;So;0;L;<square> 30DA 30BD;;;;N;SQUARED PESO;;;;
-3338;SQUARE PENIHI;So;0;L;<square> 30DA 30CB 30D2;;;;N;SQUARED PENIHI;;;;
-3339;SQUARE HERUTU;So;0;L;<square> 30D8 30EB 30C4;;;;N;SQUARED HERUTU;;;;
-333A;SQUARE PENSU;So;0;L;<square> 30DA 30F3 30B9;;;;N;SQUARED PENSU;;;;
-333B;SQUARE PEEZI;So;0;L;<square> 30DA 30FC 30B8;;;;N;SQUARED PEEZI;;;;
-333C;SQUARE BEETA;So;0;L;<square> 30D9 30FC 30BF;;;;N;SQUARED BEETA;;;;
-333D;SQUARE POINTO;So;0;L;<square> 30DD 30A4 30F3 30C8;;;;N;SQUARED POINTO;;;;
-333E;SQUARE BORUTO;So;0;L;<square> 30DC 30EB 30C8;;;;N;SQUARED BORUTO;;;;
-333F;SQUARE HON;So;0;L;<square> 30DB 30F3;;;;N;SQUARED HON;;;;
-3340;SQUARE PONDO;So;0;L;<square> 30DD 30F3 30C9;;;;N;SQUARED PONDO;;;;
-3341;SQUARE HOORU;So;0;L;<square> 30DB 30FC 30EB;;;;N;SQUARED HOORU;;;;
-3342;SQUARE HOON;So;0;L;<square> 30DB 30FC 30F3;;;;N;SQUARED HOON;;;;
-3343;SQUARE MAIKURO;So;0;L;<square> 30DE 30A4 30AF 30ED;;;;N;SQUARED MAIKURO;;;;
-3344;SQUARE MAIRU;So;0;L;<square> 30DE 30A4 30EB;;;;N;SQUARED MAIRU;;;;
-3345;SQUARE MAHHA;So;0;L;<square> 30DE 30C3 30CF;;;;N;SQUARED MAHHA;;;;
-3346;SQUARE MARUKU;So;0;L;<square> 30DE 30EB 30AF;;;;N;SQUARED MARUKU;;;;
-3347;SQUARE MANSYON;So;0;L;<square> 30DE 30F3 30B7 30E7 30F3;;;;N;SQUARED MANSYON;;;;
-3348;SQUARE MIKURON;So;0;L;<square> 30DF 30AF 30ED 30F3;;;;N;SQUARED MIKURON;;;;
-3349;SQUARE MIRI;So;0;L;<square> 30DF 30EA;;;;N;SQUARED MIRI;;;;
-334A;SQUARE MIRIBAARU;So;0;L;<square> 30DF 30EA 30D0 30FC 30EB;;;;N;SQUARED MIRIBAARU;;;;
-334B;SQUARE MEGA;So;0;L;<square> 30E1 30AC;;;;N;SQUARED MEGA;;;;
-334C;SQUARE MEGATON;So;0;L;<square> 30E1 30AC 30C8 30F3;;;;N;SQUARED MEGATON;;;;
-334D;SQUARE MEETORU;So;0;L;<square> 30E1 30FC 30C8 30EB;;;;N;SQUARED MEETORU;;;;
-334E;SQUARE YAADO;So;0;L;<square> 30E4 30FC 30C9;;;;N;SQUARED YAADO;;;;
-334F;SQUARE YAARU;So;0;L;<square> 30E4 30FC 30EB;;;;N;SQUARED YAARU;;;;
-3350;SQUARE YUAN;So;0;L;<square> 30E6 30A2 30F3;;;;N;SQUARED YUAN;;;;
-3351;SQUARE RITTORU;So;0;L;<square> 30EA 30C3 30C8 30EB;;;;N;SQUARED RITTORU;;;;
-3352;SQUARE RIRA;So;0;L;<square> 30EA 30E9;;;;N;SQUARED RIRA;;;;
-3353;SQUARE RUPII;So;0;L;<square> 30EB 30D4 30FC;;;;N;SQUARED RUPII;;;;
-3354;SQUARE RUUBURU;So;0;L;<square> 30EB 30FC 30D6 30EB;;;;N;SQUARED RUUBURU;;;;
-3355;SQUARE REMU;So;0;L;<square> 30EC 30E0;;;;N;SQUARED REMU;;;;
-3356;SQUARE RENTOGEN;So;0;L;<square> 30EC 30F3 30C8 30B2 30F3;;;;N;SQUARED RENTOGEN;;;;
-3357;SQUARE WATTO;So;0;L;<square> 30EF 30C3 30C8;;;;N;SQUARED WATTO;;;;
-3358;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO;So;0;L;<compat> 0030 70B9;;;;N;;;;;
-3359;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE;So;0;L;<compat> 0031 70B9;;;;N;;;;;
-335A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO;So;0;L;<compat> 0032 70B9;;;;N;;;;;
-335B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE;So;0;L;<compat> 0033 70B9;;;;N;;;;;
-335C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR;So;0;L;<compat> 0034 70B9;;;;N;;;;;
-335D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE;So;0;L;<compat> 0035 70B9;;;;N;;;;;
-335E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX;So;0;L;<compat> 0036 70B9;;;;N;;;;;
-335F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN;So;0;L;<compat> 0037 70B9;;;;N;;;;;
-3360;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT;So;0;L;<compat> 0038 70B9;;;;N;;;;;
-3361;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE;So;0;L;<compat> 0039 70B9;;;;N;;;;;
-3362;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN;So;0;L;<compat> 0031 0030 70B9;;;;N;;;;;
-3363;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN;So;0;L;<compat> 0031 0031 70B9;;;;N;;;;;
-3364;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE;So;0;L;<compat> 0031 0032 70B9;;;;N;;;;;
-3365;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN;So;0;L;<compat> 0031 0033 70B9;;;;N;;;;;
-3366;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN;So;0;L;<compat> 0031 0034 70B9;;;;N;;;;;
-3367;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN;So;0;L;<compat> 0031 0035 70B9;;;;N;;;;;
-3368;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN;So;0;L;<compat> 0031 0036 70B9;;;;N;;;;;
-3369;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN;So;0;L;<compat> 0031 0037 70B9;;;;N;;;;;
-336A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN;So;0;L;<compat> 0031 0038 70B9;;;;N;;;;;
-336B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN;So;0;L;<compat> 0031 0039 70B9;;;;N;;;;;
-336C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY;So;0;L;<compat> 0032 0030 70B9;;;;N;;;;;
-336D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE;So;0;L;<compat> 0032 0031 70B9;;;;N;;;;;
-336E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO;So;0;L;<compat> 0032 0032 70B9;;;;N;;;;;
-336F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE;So;0;L;<compat> 0032 0033 70B9;;;;N;;;;;
-3370;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR;So;0;L;<compat> 0032 0034 70B9;;;;N;;;;;
-3371;SQUARE HPA;So;0;L;<square> 0068 0050 0061;;;;N;;;;;
-3372;SQUARE DA;So;0;L;<square> 0064 0061;;;;N;;;;;
-3373;SQUARE AU;So;0;L;<square> 0041 0055;;;;N;;;;;
-3374;SQUARE BAR;So;0;L;<square> 0062 0061 0072;;;;N;;;;;
-3375;SQUARE OV;So;0;L;<square> 006F 0056;;;;N;;;;;
-3376;SQUARE PC;So;0;L;<square> 0070 0063;;;;N;;;;;
-3377;SQUARE DM;So;0;ON;<square> 0064 006D;;;;N;;;;;
-3378;SQUARE DM SQUARED;So;0;ON;<square> 0064 006D 00B2;;;;N;;;;;
-3379;SQUARE DM CUBED;So;0;ON;<square> 0064 006D 00B3;;;;N;;;;;
-337A;SQUARE IU;So;0;ON;<square> 0049 0055;;;;N;;;;;
-337B;SQUARE ERA NAME HEISEI;So;0;L;<square> 5E73 6210;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME HEISEI;;;;
-337C;SQUARE ERA NAME SYOUWA;So;0;L;<square> 662D 548C;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME SYOUWA;;;;
-337D;SQUARE ERA NAME TAISYOU;So;0;L;<square> 5927 6B63;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME TAISYOU;;;;
-337E;SQUARE ERA NAME MEIZI;So;0;L;<square> 660E 6CBB;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME MEIZI;;;;
-337F;SQUARE CORPORATION;So;0;L;<square> 682A 5F0F 4F1A 793E;;;;N;SQUARED FOUR IDEOGRAPHS CORPORATION;;;;
-3380;SQUARE PA AMPS;So;0;L;<square> 0070 0041;;;;N;SQUARED PA AMPS;;;;
-3381;SQUARE NA;So;0;L;<square> 006E 0041;;;;N;SQUARED NA;;;;
-3382;SQUARE MU A;So;0;L;<square> 03BC 0041;;;;N;SQUARED MU A;;;;
-3383;SQUARE MA;So;0;L;<square> 006D 0041;;;;N;SQUARED MA;;;;
-3384;SQUARE KA;So;0;L;<square> 006B 0041;;;;N;SQUARED KA;;;;
-3385;SQUARE KB;So;0;L;<square> 004B 0042;;;;N;SQUARED KB;;;;
-3386;SQUARE MB;So;0;L;<square> 004D 0042;;;;N;SQUARED MB;;;;
-3387;SQUARE GB;So;0;L;<square> 0047 0042;;;;N;SQUARED GB;;;;
-3388;SQUARE CAL;So;0;L;<square> 0063 0061 006C;;;;N;SQUARED CAL;;;;
-3389;SQUARE KCAL;So;0;L;<square> 006B 0063 0061 006C;;;;N;SQUARED KCAL;;;;
-338A;SQUARE PF;So;0;L;<square> 0070 0046;;;;N;SQUARED PF;;;;
-338B;SQUARE NF;So;0;L;<square> 006E 0046;;;;N;SQUARED NF;;;;
-338C;SQUARE MU F;So;0;L;<square> 03BC 0046;;;;N;SQUARED MU F;;;;
-338D;SQUARE MU G;So;0;L;<square> 03BC 0067;;;;N;SQUARED MU G;;;;
-338E;SQUARE MG;So;0;L;<square> 006D 0067;;;;N;SQUARED MG;;;;
-338F;SQUARE KG;So;0;L;<square> 006B 0067;;;;N;SQUARED KG;;;;
-3390;SQUARE HZ;So;0;L;<square> 0048 007A;;;;N;SQUARED HZ;;;;
-3391;SQUARE KHZ;So;0;L;<square> 006B 0048 007A;;;;N;SQUARED KHZ;;;;
-3392;SQUARE MHZ;So;0;L;<square> 004D 0048 007A;;;;N;SQUARED MHZ;;;;
-3393;SQUARE GHZ;So;0;L;<square> 0047 0048 007A;;;;N;SQUARED GHZ;;;;
-3394;SQUARE THZ;So;0;L;<square> 0054 0048 007A;;;;N;SQUARED THZ;;;;
-3395;SQUARE MU L;So;0;L;<square> 03BC 2113;;;;N;SQUARED MU L;;;;
-3396;SQUARE ML;So;0;L;<square> 006D 2113;;;;N;SQUARED ML;;;;
-3397;SQUARE DL;So;0;L;<square> 0064 2113;;;;N;SQUARED DL;;;;
-3398;SQUARE KL;So;0;L;<square> 006B 2113;;;;N;SQUARED KL;;;;
-3399;SQUARE FM;So;0;L;<square> 0066 006D;;;;N;SQUARED FM;;;;
-339A;SQUARE NM;So;0;L;<square> 006E 006D;;;;N;SQUARED NM;;;;
-339B;SQUARE MU M;So;0;L;<square> 03BC 006D;;;;N;SQUARED MU M;;;;
-339C;SQUARE MM;So;0;L;<square> 006D 006D;;;;N;SQUARED MM;;;;
-339D;SQUARE CM;So;0;L;<square> 0063 006D;;;;N;SQUARED CM;;;;
-339E;SQUARE KM;So;0;L;<square> 006B 006D;;;;N;SQUARED KM;;;;
-339F;SQUARE MM SQUARED;So;0;L;<square> 006D 006D 00B2;;;;N;SQUARED MM SQUARED;;;;
-33A0;SQUARE CM SQUARED;So;0;L;<square> 0063 006D 00B2;;;;N;SQUARED CM SQUARED;;;;
-33A1;SQUARE M SQUARED;So;0;L;<square> 006D 00B2;;;;N;SQUARED M SQUARED;;;;
-33A2;SQUARE KM SQUARED;So;0;L;<square> 006B 006D 00B2;;;;N;SQUARED KM SQUARED;;;;
-33A3;SQUARE MM CUBED;So;0;L;<square> 006D 006D 00B3;;;;N;SQUARED MM CUBED;;;;
-33A4;SQUARE CM CUBED;So;0;L;<square> 0063 006D 00B3;;;;N;SQUARED CM CUBED;;;;
-33A5;SQUARE M CUBED;So;0;L;<square> 006D 00B3;;;;N;SQUARED M CUBED;;;;
-33A6;SQUARE KM CUBED;So;0;L;<square> 006B 006D 00B3;;;;N;SQUARED KM CUBED;;;;
-33A7;SQUARE M OVER S;So;0;L;<square> 006D 2215 0073;;;;N;SQUARED M OVER S;;;;
-33A8;SQUARE M OVER S SQUARED;So;0;L;<square> 006D 2215 0073 00B2;;;;N;SQUARED M OVER S SQUARED;;;;
-33A9;SQUARE PA;So;0;L;<square> 0050 0061;;;;N;SQUARED PA;;;;
-33AA;SQUARE KPA;So;0;L;<square> 006B 0050 0061;;;;N;SQUARED KPA;;;;
-33AB;SQUARE MPA;So;0;L;<square> 004D 0050 0061;;;;N;SQUARED MPA;;;;
-33AC;SQUARE GPA;So;0;L;<square> 0047 0050 0061;;;;N;SQUARED GPA;;;;
-33AD;SQUARE RAD;So;0;L;<square> 0072 0061 0064;;;;N;SQUARED RAD;;;;
-33AE;SQUARE RAD OVER S;So;0;L;<square> 0072 0061 0064 2215 0073;;;;N;SQUARED RAD OVER S;;;;
-33AF;SQUARE RAD OVER S SQUARED;So;0;L;<square> 0072 0061 0064 2215 0073 00B2;;;;N;SQUARED RAD OVER S SQUARED;;;;
-33B0;SQUARE PS;So;0;L;<square> 0070 0073;;;;N;SQUARED PS;;;;
-33B1;SQUARE NS;So;0;L;<square> 006E 0073;;;;N;SQUARED NS;;;;
-33B2;SQUARE MU S;So;0;L;<square> 03BC 0073;;;;N;SQUARED MU S;;;;
-33B3;SQUARE MS;So;0;L;<square> 006D 0073;;;;N;SQUARED MS;;;;
-33B4;SQUARE PV;So;0;L;<square> 0070 0056;;;;N;SQUARED PV;;;;
-33B5;SQUARE NV;So;0;L;<square> 006E 0056;;;;N;SQUARED NV;;;;
-33B6;SQUARE MU V;So;0;L;<square> 03BC 0056;;;;N;SQUARED MU V;;;;
-33B7;SQUARE MV;So;0;L;<square> 006D 0056;;;;N;SQUARED MV;;;;
-33B8;SQUARE KV;So;0;L;<square> 006B 0056;;;;N;SQUARED KV;;;;
-33B9;SQUARE MV MEGA;So;0;L;<square> 004D 0056;;;;N;SQUARED MV MEGA;;;;
-33BA;SQUARE PW;So;0;L;<square> 0070 0057;;;;N;SQUARED PW;;;;
-33BB;SQUARE NW;So;0;L;<square> 006E 0057;;;;N;SQUARED NW;;;;
-33BC;SQUARE MU W;So;0;L;<square> 03BC 0057;;;;N;SQUARED MU W;;;;
-33BD;SQUARE MW;So;0;L;<square> 006D 0057;;;;N;SQUARED MW;;;;
-33BE;SQUARE KW;So;0;L;<square> 006B 0057;;;;N;SQUARED KW;;;;
-33BF;SQUARE MW MEGA;So;0;L;<square> 004D 0057;;;;N;SQUARED MW MEGA;;;;
-33C0;SQUARE K OHM;So;0;L;<square> 006B 03A9;;;;N;SQUARED K OHM;;;;
-33C1;SQUARE M OHM;So;0;L;<square> 004D 03A9;;;;N;SQUARED M OHM;;;;
-33C2;SQUARE AM;So;0;L;<square> 0061 002E 006D 002E;;;;N;SQUARED AM;;;;
-33C3;SQUARE BQ;So;0;L;<square> 0042 0071;;;;N;SQUARED BQ;;;;
-33C4;SQUARE CC;So;0;L;<square> 0063 0063;;;;N;SQUARED CC;;;;
-33C5;SQUARE CD;So;0;L;<square> 0063 0064;;;;N;SQUARED CD;;;;
-33C6;SQUARE C OVER KG;So;0;L;<square> 0043 2215 006B 0067;;;;N;SQUARED C OVER KG;;;;
-33C7;SQUARE CO;So;0;L;<square> 0043 006F 002E;;;;N;SQUARED CO;;;;
-33C8;SQUARE DB;So;0;L;<square> 0064 0042;;;;N;SQUARED DB;;;;
-33C9;SQUARE GY;So;0;L;<square> 0047 0079;;;;N;SQUARED GY;;;;
-33CA;SQUARE HA;So;0;L;<square> 0068 0061;;;;N;SQUARED HA;;;;
-33CB;SQUARE HP;So;0;L;<square> 0048 0050;;;;N;SQUARED HP;;;;
-33CC;SQUARE IN;So;0;L;<square> 0069 006E;;;;N;SQUARED IN;;;;
-33CD;SQUARE KK;So;0;L;<square> 004B 004B;;;;N;SQUARED KK;;;;
-33CE;SQUARE KM CAPITAL;So;0;L;<square> 004B 004D;;;;N;SQUARED KM CAPITAL;;;;
-33CF;SQUARE KT;So;0;L;<square> 006B 0074;;;;N;SQUARED KT;;;;
-33D0;SQUARE LM;So;0;L;<square> 006C 006D;;;;N;SQUARED LM;;;;
-33D1;SQUARE LN;So;0;L;<square> 006C 006E;;;;N;SQUARED LN;;;;
-33D2;SQUARE LOG;So;0;L;<square> 006C 006F 0067;;;;N;SQUARED LOG;;;;
-33D3;SQUARE LX;So;0;L;<square> 006C 0078;;;;N;SQUARED LX;;;;
-33D4;SQUARE MB SMALL;So;0;L;<square> 006D 0062;;;;N;SQUARED MB SMALL;;;;
-33D5;SQUARE MIL;So;0;L;<square> 006D 0069 006C;;;;N;SQUARED MIL;;;;
-33D6;SQUARE MOL;So;0;L;<square> 006D 006F 006C;;;;N;SQUARED MOL;;;;
-33D7;SQUARE PH;So;0;L;<square> 0050 0048;;;;N;SQUARED PH;;;;
-33D8;SQUARE PM;So;0;L;<square> 0070 002E 006D 002E;;;;N;SQUARED PM;;;;
-33D9;SQUARE PPM;So;0;L;<square> 0050 0050 004D;;;;N;SQUARED PPM;;;;
-33DA;SQUARE PR;So;0;L;<square> 0050 0052;;;;N;SQUARED PR;;;;
-33DB;SQUARE SR;So;0;L;<square> 0073 0072;;;;N;SQUARED SR;;;;
-33DC;SQUARE SV;So;0;L;<square> 0053 0076;;;;N;SQUARED SV;;;;
-33DD;SQUARE WB;So;0;L;<square> 0057 0062;;;;N;SQUARED WB;;;;
-33DE;SQUARE V OVER M;So;0;ON;<square> 0056 2215 006D;;;;N;;;;;
-33DF;SQUARE A OVER M;So;0;ON;<square> 0041 2215 006D;;;;N;;;;;
-33E0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE;So;0;L;<compat> 0031 65E5;;;;N;;;;;
-33E1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO;So;0;L;<compat> 0032 65E5;;;;N;;;;;
-33E2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE;So;0;L;<compat> 0033 65E5;;;;N;;;;;
-33E3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR;So;0;L;<compat> 0034 65E5;;;;N;;;;;
-33E4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE;So;0;L;<compat> 0035 65E5;;;;N;;;;;
-33E5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX;So;0;L;<compat> 0036 65E5;;;;N;;;;;
-33E6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN;So;0;L;<compat> 0037 65E5;;;;N;;;;;
-33E7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT;So;0;L;<compat> 0038 65E5;;;;N;;;;;
-33E8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE;So;0;L;<compat> 0039 65E5;;;;N;;;;;
-33E9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN;So;0;L;<compat> 0031 0030 65E5;;;;N;;;;;
-33EA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN;So;0;L;<compat> 0031 0031 65E5;;;;N;;;;;
-33EB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE;So;0;L;<compat> 0031 0032 65E5;;;;N;;;;;
-33EC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN;So;0;L;<compat> 0031 0033 65E5;;;;N;;;;;
-33ED;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN;So;0;L;<compat> 0031 0034 65E5;;;;N;;;;;
-33EE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN;So;0;L;<compat> 0031 0035 65E5;;;;N;;;;;
-33EF;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN;So;0;L;<compat> 0031 0036 65E5;;;;N;;;;;
-33F0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN;So;0;L;<compat> 0031 0037 65E5;;;;N;;;;;
-33F1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN;So;0;L;<compat> 0031 0038 65E5;;;;N;;;;;
-33F2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN;So;0;L;<compat> 0031 0039 65E5;;;;N;;;;;
-33F3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY;So;0;L;<compat> 0032 0030 65E5;;;;N;;;;;
-33F4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE;So;0;L;<compat> 0032 0031 65E5;;;;N;;;;;
-33F5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO;So;0;L;<compat> 0032 0032 65E5;;;;N;;;;;
-33F6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE;So;0;L;<compat> 0032 0033 65E5;;;;N;;;;;
-33F7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR;So;0;L;<compat> 0032 0034 65E5;;;;N;;;;;
-33F8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE;So;0;L;<compat> 0032 0035 65E5;;;;N;;;;;
-33F9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX;So;0;L;<compat> 0032 0036 65E5;;;;N;;;;;
-33FA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN;So;0;L;<compat> 0032 0037 65E5;;;;N;;;;;
-33FB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT;So;0;L;<compat> 0032 0038 65E5;;;;N;;;;;
-33FC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE;So;0;L;<compat> 0032 0039 65E5;;;;N;;;;;
-33FD;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY;So;0;L;<compat> 0033 0030 65E5;;;;N;;;;;
-33FE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE;So;0;L;<compat> 0033 0031 65E5;;;;N;;;;;
-33FF;SQUARE GAL;So;0;ON;<square> 0067 0061 006C;;;;N;;;;;
-3400;<CJK Ideograph Extension A, First>;Lo;0;L;;;;;N;;;;;
-4DB5;<CJK Ideograph Extension A, Last>;Lo;0;L;;;;;N;;;;;
-4DC0;HEXAGRAM FOR THE CREATIVE HEAVEN;So;0;ON;;;;;N;;;;;
-4DC1;HEXAGRAM FOR THE RECEPTIVE EARTH;So;0;ON;;;;;N;;;;;
-4DC2;HEXAGRAM FOR DIFFICULTY AT THE BEGINNING;So;0;ON;;;;;N;;;;;
-4DC3;HEXAGRAM FOR YOUTHFUL FOLLY;So;0;ON;;;;;N;;;;;
-4DC4;HEXAGRAM FOR WAITING;So;0;ON;;;;;N;;;;;
-4DC5;HEXAGRAM FOR CONFLICT;So;0;ON;;;;;N;;;;;
-4DC6;HEXAGRAM FOR THE ARMY;So;0;ON;;;;;N;;;;;
-4DC7;HEXAGRAM FOR HOLDING TOGETHER;So;0;ON;;;;;N;;;;;
-4DC8;HEXAGRAM FOR SMALL TAMING;So;0;ON;;;;;N;;;;;
-4DC9;HEXAGRAM FOR TREADING;So;0;ON;;;;;N;;;;;
-4DCA;HEXAGRAM FOR PEACE;So;0;ON;;;;;N;;;;;
-4DCB;HEXAGRAM FOR STANDSTILL;So;0;ON;;;;;N;;;;;
-4DCC;HEXAGRAM FOR FELLOWSHIP;So;0;ON;;;;;N;;;;;
-4DCD;HEXAGRAM FOR GREAT POSSESSION;So;0;ON;;;;;N;;;;;
-4DCE;HEXAGRAM FOR MODESTY;So;0;ON;;;;;N;;;;;
-4DCF;HEXAGRAM FOR ENTHUSIASM;So;0;ON;;;;;N;;;;;
-4DD0;HEXAGRAM FOR FOLLOWING;So;0;ON;;;;;N;;;;;
-4DD1;HEXAGRAM FOR WORK ON THE DECAYED;So;0;ON;;;;;N;;;;;
-4DD2;HEXAGRAM FOR APPROACH;So;0;ON;;;;;N;;;;;
-4DD3;HEXAGRAM FOR CONTEMPLATION;So;0;ON;;;;;N;;;;;
-4DD4;HEXAGRAM FOR BITING THROUGH;So;0;ON;;;;;N;;;;;
-4DD5;HEXAGRAM FOR GRACE;So;0;ON;;;;;N;;;;;
-4DD6;HEXAGRAM FOR SPLITTING APART;So;0;ON;;;;;N;;;;;
-4DD7;HEXAGRAM FOR RETURN;So;0;ON;;;;;N;;;;;
-4DD8;HEXAGRAM FOR INNOCENCE;So;0;ON;;;;;N;;;;;
-4DD9;HEXAGRAM FOR GREAT TAMING;So;0;ON;;;;;N;;;;;
-4DDA;HEXAGRAM FOR MOUTH CORNERS;So;0;ON;;;;;N;;;;;
-4DDB;HEXAGRAM FOR GREAT PREPONDERANCE;So;0;ON;;;;;N;;;;;
-4DDC;HEXAGRAM FOR THE ABYSMAL WATER;So;0;ON;;;;;N;;;;;
-4DDD;HEXAGRAM FOR THE CLINGING FIRE;So;0;ON;;;;;N;;;;;
-4DDE;HEXAGRAM FOR INFLUENCE;So;0;ON;;;;;N;;;;;
-4DDF;HEXAGRAM FOR DURATION;So;0;ON;;;;;N;;;;;
-4DE0;HEXAGRAM FOR RETREAT;So;0;ON;;;;;N;;;;;
-4DE1;HEXAGRAM FOR GREAT POWER;So;0;ON;;;;;N;;;;;
-4DE2;HEXAGRAM FOR PROGRESS;So;0;ON;;;;;N;;;;;
-4DE3;HEXAGRAM FOR DARKENING OF THE LIGHT;So;0;ON;;;;;N;;;;;
-4DE4;HEXAGRAM FOR THE FAMILY;So;0;ON;;;;;N;;;;;
-4DE5;HEXAGRAM FOR OPPOSITION;So;0;ON;;;;;N;;;;;
-4DE6;HEXAGRAM FOR OBSTRUCTION;So;0;ON;;;;;N;;;;;
-4DE7;HEXAGRAM FOR DELIVERANCE;So;0;ON;;;;;N;;;;;
-4DE8;HEXAGRAM FOR DECREASE;So;0;ON;;;;;N;;;;;
-4DE9;HEXAGRAM FOR INCREASE;So;0;ON;;;;;N;;;;;
-4DEA;HEXAGRAM FOR BREAKTHROUGH;So;0;ON;;;;;N;;;;;
-4DEB;HEXAGRAM FOR COMING TO MEET;So;0;ON;;;;;N;;;;;
-4DEC;HEXAGRAM FOR GATHERING TOGETHER;So;0;ON;;;;;N;;;;;
-4DED;HEXAGRAM FOR PUSHING UPWARD;So;0;ON;;;;;N;;;;;
-4DEE;HEXAGRAM FOR OPPRESSION;So;0;ON;;;;;N;;;;;
-4DEF;HEXAGRAM FOR THE WELL;So;0;ON;;;;;N;;;;;
-4DF0;HEXAGRAM FOR REVOLUTION;So;0;ON;;;;;N;;;;;
-4DF1;HEXAGRAM FOR THE CAULDRON;So;0;ON;;;;;N;;;;;
-4DF2;HEXAGRAM FOR THE AROUSING THUNDER;So;0;ON;;;;;N;;;;;
-4DF3;HEXAGRAM FOR THE KEEPING STILL MOUNTAIN;So;0;ON;;;;;N;;;;;
-4DF4;HEXAGRAM FOR DEVELOPMENT;So;0;ON;;;;;N;;;;;
-4DF5;HEXAGRAM FOR THE MARRYING MAIDEN;So;0;ON;;;;;N;;;;;
-4DF6;HEXAGRAM FOR ABUNDANCE;So;0;ON;;;;;N;;;;;
-4DF7;HEXAGRAM FOR THE WANDERER;So;0;ON;;;;;N;;;;;
-4DF8;HEXAGRAM FOR THE GENTLE WIND;So;0;ON;;;;;N;;;;;
-4DF9;HEXAGRAM FOR THE JOYOUS LAKE;So;0;ON;;;;;N;;;;;
-4DFA;HEXAGRAM FOR DISPERSION;So;0;ON;;;;;N;;;;;
-4DFB;HEXAGRAM FOR LIMITATION;So;0;ON;;;;;N;;;;;
-4DFC;HEXAGRAM FOR INNER TRUTH;So;0;ON;;;;;N;;;;;
-4DFD;HEXAGRAM FOR SMALL PREPONDERANCE;So;0;ON;;;;;N;;;;;
-4DFE;HEXAGRAM FOR AFTER COMPLETION;So;0;ON;;;;;N;;;;;
-4DFF;HEXAGRAM FOR BEFORE COMPLETION;So;0;ON;;;;;N;;;;;
-4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;;
-9FCC;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
-A000;YI SYLLABLE IT;Lo;0;L;;;;;N;;;;;
-A001;YI SYLLABLE IX;Lo;0;L;;;;;N;;;;;
-A002;YI SYLLABLE I;Lo;0;L;;;;;N;;;;;
-A003;YI SYLLABLE IP;Lo;0;L;;;;;N;;;;;
-A004;YI SYLLABLE IET;Lo;0;L;;;;;N;;;;;
-A005;YI SYLLABLE IEX;Lo;0;L;;;;;N;;;;;
-A006;YI SYLLABLE IE;Lo;0;L;;;;;N;;;;;
-A007;YI SYLLABLE IEP;Lo;0;L;;;;;N;;;;;
-A008;YI SYLLABLE AT;Lo;0;L;;;;;N;;;;;
-A009;YI SYLLABLE AX;Lo;0;L;;;;;N;;;;;
-A00A;YI SYLLABLE A;Lo;0;L;;;;;N;;;;;
-A00B;YI SYLLABLE AP;Lo;0;L;;;;;N;;;;;
-A00C;YI SYLLABLE UOX;Lo;0;L;;;;;N;;;;;
-A00D;YI SYLLABLE UO;Lo;0;L;;;;;N;;;;;
-A00E;YI SYLLABLE UOP;Lo;0;L;;;;;N;;;;;
-A00F;YI SYLLABLE OT;Lo;0;L;;;;;N;;;;;
-A010;YI SYLLABLE OX;Lo;0;L;;;;;N;;;;;
-A011;YI SYLLABLE O;Lo;0;L;;;;;N;;;;;
-A012;YI SYLLABLE OP;Lo;0;L;;;;;N;;;;;
-A013;YI SYLLABLE EX;Lo;0;L;;;;;N;;;;;
-A014;YI SYLLABLE E;Lo;0;L;;;;;N;;;;;
-A015;YI SYLLABLE WU;Lm;0;L;;;;;N;;;;;
-A016;YI SYLLABLE BIT;Lo;0;L;;;;;N;;;;;
-A017;YI SYLLABLE BIX;Lo;0;L;;;;;N;;;;;
-A018;YI SYLLABLE BI;Lo;0;L;;;;;N;;;;;
-A019;YI SYLLABLE BIP;Lo;0;L;;;;;N;;;;;
-A01A;YI SYLLABLE BIET;Lo;0;L;;;;;N;;;;;
-A01B;YI SYLLABLE BIEX;Lo;0;L;;;;;N;;;;;
-A01C;YI SYLLABLE BIE;Lo;0;L;;;;;N;;;;;
-A01D;YI SYLLABLE BIEP;Lo;0;L;;;;;N;;;;;
-A01E;YI SYLLABLE BAT;Lo;0;L;;;;;N;;;;;
-A01F;YI SYLLABLE BAX;Lo;0;L;;;;;N;;;;;
-A020;YI SYLLABLE BA;Lo;0;L;;;;;N;;;;;
-A021;YI SYLLABLE BAP;Lo;0;L;;;;;N;;;;;
-A022;YI SYLLABLE BUOX;Lo;0;L;;;;;N;;;;;
-A023;YI SYLLABLE BUO;Lo;0;L;;;;;N;;;;;
-A024;YI SYLLABLE BUOP;Lo;0;L;;;;;N;;;;;
-A025;YI SYLLABLE BOT;Lo;0;L;;;;;N;;;;;
-A026;YI SYLLABLE BOX;Lo;0;L;;;;;N;;;;;
-A027;YI SYLLABLE BO;Lo;0;L;;;;;N;;;;;
-A028;YI SYLLABLE BOP;Lo;0;L;;;;;N;;;;;
-A029;YI SYLLABLE BEX;Lo;0;L;;;;;N;;;;;
-A02A;YI SYLLABLE BE;Lo;0;L;;;;;N;;;;;
-A02B;YI SYLLABLE BEP;Lo;0;L;;;;;N;;;;;
-A02C;YI SYLLABLE BUT;Lo;0;L;;;;;N;;;;;
-A02D;YI SYLLABLE BUX;Lo;0;L;;;;;N;;;;;
-A02E;YI SYLLABLE BU;Lo;0;L;;;;;N;;;;;
-A02F;YI SYLLABLE BUP;Lo;0;L;;;;;N;;;;;
-A030;YI SYLLABLE BURX;Lo;0;L;;;;;N;;;;;
-A031;YI SYLLABLE BUR;Lo;0;L;;;;;N;;;;;
-A032;YI SYLLABLE BYT;Lo;0;L;;;;;N;;;;;
-A033;YI SYLLABLE BYX;Lo;0;L;;;;;N;;;;;
-A034;YI SYLLABLE BY;Lo;0;L;;;;;N;;;;;
-A035;YI SYLLABLE BYP;Lo;0;L;;;;;N;;;;;
-A036;YI SYLLABLE BYRX;Lo;0;L;;;;;N;;;;;
-A037;YI SYLLABLE BYR;Lo;0;L;;;;;N;;;;;
-A038;YI SYLLABLE PIT;Lo;0;L;;;;;N;;;;;
-A039;YI SYLLABLE PIX;Lo;0;L;;;;;N;;;;;
-A03A;YI SYLLABLE PI;Lo;0;L;;;;;N;;;;;
-A03B;YI SYLLABLE PIP;Lo;0;L;;;;;N;;;;;
-A03C;YI SYLLABLE PIEX;Lo;0;L;;;;;N;;;;;
-A03D;YI SYLLABLE PIE;Lo;0;L;;;;;N;;;;;
-A03E;YI SYLLABLE PIEP;Lo;0;L;;;;;N;;;;;
-A03F;YI SYLLABLE PAT;Lo;0;L;;;;;N;;;;;
-A040;YI SYLLABLE PAX;Lo;0;L;;;;;N;;;;;
-A041;YI SYLLABLE PA;Lo;0;L;;;;;N;;;;;
-A042;YI SYLLABLE PAP;Lo;0;L;;;;;N;;;;;
-A043;YI SYLLABLE PUOX;Lo;0;L;;;;;N;;;;;
-A044;YI SYLLABLE PUO;Lo;0;L;;;;;N;;;;;
-A045;YI SYLLABLE PUOP;Lo;0;L;;;;;N;;;;;
-A046;YI SYLLABLE POT;Lo;0;L;;;;;N;;;;;
-A047;YI SYLLABLE POX;Lo;0;L;;;;;N;;;;;
-A048;YI SYLLABLE PO;Lo;0;L;;;;;N;;;;;
-A049;YI SYLLABLE POP;Lo;0;L;;;;;N;;;;;
-A04A;YI SYLLABLE PUT;Lo;0;L;;;;;N;;;;;
-A04B;YI SYLLABLE PUX;Lo;0;L;;;;;N;;;;;
-A04C;YI SYLLABLE PU;Lo;0;L;;;;;N;;;;;
-A04D;YI SYLLABLE PUP;Lo;0;L;;;;;N;;;;;
-A04E;YI SYLLABLE PURX;Lo;0;L;;;;;N;;;;;
-A04F;YI SYLLABLE PUR;Lo;0;L;;;;;N;;;;;
-A050;YI SYLLABLE PYT;Lo;0;L;;;;;N;;;;;
-A051;YI SYLLABLE PYX;Lo;0;L;;;;;N;;;;;
-A052;YI SYLLABLE PY;Lo;0;L;;;;;N;;;;;
-A053;YI SYLLABLE PYP;Lo;0;L;;;;;N;;;;;
-A054;YI SYLLABLE PYRX;Lo;0;L;;;;;N;;;;;
-A055;YI SYLLABLE PYR;Lo;0;L;;;;;N;;;;;
-A056;YI SYLLABLE BBIT;Lo;0;L;;;;;N;;;;;
-A057;YI SYLLABLE BBIX;Lo;0;L;;;;;N;;;;;
-A058;YI SYLLABLE BBI;Lo;0;L;;;;;N;;;;;
-A059;YI SYLLABLE BBIP;Lo;0;L;;;;;N;;;;;
-A05A;YI SYLLABLE BBIET;Lo;0;L;;;;;N;;;;;
-A05B;YI SYLLABLE BBIEX;Lo;0;L;;;;;N;;;;;
-A05C;YI SYLLABLE BBIE;Lo;0;L;;;;;N;;;;;
-A05D;YI SYLLABLE BBIEP;Lo;0;L;;;;;N;;;;;
-A05E;YI SYLLABLE BBAT;Lo;0;L;;;;;N;;;;;
-A05F;YI SYLLABLE BBAX;Lo;0;L;;;;;N;;;;;
-A060;YI SYLLABLE BBA;Lo;0;L;;;;;N;;;;;
-A061;YI SYLLABLE BBAP;Lo;0;L;;;;;N;;;;;
-A062;YI SYLLABLE BBUOX;Lo;0;L;;;;;N;;;;;
-A063;YI SYLLABLE BBUO;Lo;0;L;;;;;N;;;;;
-A064;YI SYLLABLE BBUOP;Lo;0;L;;;;;N;;;;;
-A065;YI SYLLABLE BBOT;Lo;0;L;;;;;N;;;;;
-A066;YI SYLLABLE BBOX;Lo;0;L;;;;;N;;;;;
-A067;YI SYLLABLE BBO;Lo;0;L;;;;;N;;;;;
-A068;YI SYLLABLE BBOP;Lo;0;L;;;;;N;;;;;
-A069;YI SYLLABLE BBEX;Lo;0;L;;;;;N;;;;;
-A06A;YI SYLLABLE BBE;Lo;0;L;;;;;N;;;;;
-A06B;YI SYLLABLE BBEP;Lo;0;L;;;;;N;;;;;
-A06C;YI SYLLABLE BBUT;Lo;0;L;;;;;N;;;;;
-A06D;YI SYLLABLE BBUX;Lo;0;L;;;;;N;;;;;
-A06E;YI SYLLABLE BBU;Lo;0;L;;;;;N;;;;;
-A06F;YI SYLLABLE BBUP;Lo;0;L;;;;;N;;;;;
-A070;YI SYLLABLE BBURX;Lo;0;L;;;;;N;;;;;
-A071;YI SYLLABLE BBUR;Lo;0;L;;;;;N;;;;;
-A072;YI SYLLABLE BBYT;Lo;0;L;;;;;N;;;;;
-A073;YI SYLLABLE BBYX;Lo;0;L;;;;;N;;;;;
-A074;YI SYLLABLE BBY;Lo;0;L;;;;;N;;;;;
-A075;YI SYLLABLE BBYP;Lo;0;L;;;;;N;;;;;
-A076;YI SYLLABLE NBIT;Lo;0;L;;;;;N;;;;;
-A077;YI SYLLABLE NBIX;Lo;0;L;;;;;N;;;;;
-A078;YI SYLLABLE NBI;Lo;0;L;;;;;N;;;;;
-A079;YI SYLLABLE NBIP;Lo;0;L;;;;;N;;;;;
-A07A;YI SYLLABLE NBIEX;Lo;0;L;;;;;N;;;;;
-A07B;YI SYLLABLE NBIE;Lo;0;L;;;;;N;;;;;
-A07C;YI SYLLABLE NBIEP;Lo;0;L;;;;;N;;;;;
-A07D;YI SYLLABLE NBAT;Lo;0;L;;;;;N;;;;;
-A07E;YI SYLLABLE NBAX;Lo;0;L;;;;;N;;;;;
-A07F;YI SYLLABLE NBA;Lo;0;L;;;;;N;;;;;
-A080;YI SYLLABLE NBAP;Lo;0;L;;;;;N;;;;;
-A081;YI SYLLABLE NBOT;Lo;0;L;;;;;N;;;;;
-A082;YI SYLLABLE NBOX;Lo;0;L;;;;;N;;;;;
-A083;YI SYLLABLE NBO;Lo;0;L;;;;;N;;;;;
-A084;YI SYLLABLE NBOP;Lo;0;L;;;;;N;;;;;
-A085;YI SYLLABLE NBUT;Lo;0;L;;;;;N;;;;;
-A086;YI SYLLABLE NBUX;Lo;0;L;;;;;N;;;;;
-A087;YI SYLLABLE NBU;Lo;0;L;;;;;N;;;;;
-A088;YI SYLLABLE NBUP;Lo;0;L;;;;;N;;;;;
-A089;YI SYLLABLE NBURX;Lo;0;L;;;;;N;;;;;
-A08A;YI SYLLABLE NBUR;Lo;0;L;;;;;N;;;;;
-A08B;YI SYLLABLE NBYT;Lo;0;L;;;;;N;;;;;
-A08C;YI SYLLABLE NBYX;Lo;0;L;;;;;N;;;;;
-A08D;YI SYLLABLE NBY;Lo;0;L;;;;;N;;;;;
-A08E;YI SYLLABLE NBYP;Lo;0;L;;;;;N;;;;;
-A08F;YI SYLLABLE NBYRX;Lo;0;L;;;;;N;;;;;
-A090;YI SYLLABLE NBYR;Lo;0;L;;;;;N;;;;;
-A091;YI SYLLABLE HMIT;Lo;0;L;;;;;N;;;;;
-A092;YI SYLLABLE HMIX;Lo;0;L;;;;;N;;;;;
-A093;YI SYLLABLE HMI;Lo;0;L;;;;;N;;;;;
-A094;YI SYLLABLE HMIP;Lo;0;L;;;;;N;;;;;
-A095;YI SYLLABLE HMIEX;Lo;0;L;;;;;N;;;;;
-A096;YI SYLLABLE HMIE;Lo;0;L;;;;;N;;;;;
-A097;YI SYLLABLE HMIEP;Lo;0;L;;;;;N;;;;;
-A098;YI SYLLABLE HMAT;Lo;0;L;;;;;N;;;;;
-A099;YI SYLLABLE HMAX;Lo;0;L;;;;;N;;;;;
-A09A;YI SYLLABLE HMA;Lo;0;L;;;;;N;;;;;
-A09B;YI SYLLABLE HMAP;Lo;0;L;;;;;N;;;;;
-A09C;YI SYLLABLE HMUOX;Lo;0;L;;;;;N;;;;;
-A09D;YI SYLLABLE HMUO;Lo;0;L;;;;;N;;;;;
-A09E;YI SYLLABLE HMUOP;Lo;0;L;;;;;N;;;;;
-A09F;YI SYLLABLE HMOT;Lo;0;L;;;;;N;;;;;
-A0A0;YI SYLLABLE HMOX;Lo;0;L;;;;;N;;;;;
-A0A1;YI SYLLABLE HMO;Lo;0;L;;;;;N;;;;;
-A0A2;YI SYLLABLE HMOP;Lo;0;L;;;;;N;;;;;
-A0A3;YI SYLLABLE HMUT;Lo;0;L;;;;;N;;;;;
-A0A4;YI SYLLABLE HMUX;Lo;0;L;;;;;N;;;;;
-A0A5;YI SYLLABLE HMU;Lo;0;L;;;;;N;;;;;
-A0A6;YI SYLLABLE HMUP;Lo;0;L;;;;;N;;;;;
-A0A7;YI SYLLABLE HMURX;Lo;0;L;;;;;N;;;;;
-A0A8;YI SYLLABLE HMUR;Lo;0;L;;;;;N;;;;;
-A0A9;YI SYLLABLE HMYX;Lo;0;L;;;;;N;;;;;
-A0AA;YI SYLLABLE HMY;Lo;0;L;;;;;N;;;;;
-A0AB;YI SYLLABLE HMYP;Lo;0;L;;;;;N;;;;;
-A0AC;YI SYLLABLE HMYRX;Lo;0;L;;;;;N;;;;;
-A0AD;YI SYLLABLE HMYR;Lo;0;L;;;;;N;;;;;
-A0AE;YI SYLLABLE MIT;Lo;0;L;;;;;N;;;;;
-A0AF;YI SYLLABLE MIX;Lo;0;L;;;;;N;;;;;
-A0B0;YI SYLLABLE MI;Lo;0;L;;;;;N;;;;;
-A0B1;YI SYLLABLE MIP;Lo;0;L;;;;;N;;;;;
-A0B2;YI SYLLABLE MIEX;Lo;0;L;;;;;N;;;;;
-A0B3;YI SYLLABLE MIE;Lo;0;L;;;;;N;;;;;
-A0B4;YI SYLLABLE MIEP;Lo;0;L;;;;;N;;;;;
-A0B5;YI SYLLABLE MAT;Lo;0;L;;;;;N;;;;;
-A0B6;YI SYLLABLE MAX;Lo;0;L;;;;;N;;;;;
-A0B7;YI SYLLABLE MA;Lo;0;L;;;;;N;;;;;
-A0B8;YI SYLLABLE MAP;Lo;0;L;;;;;N;;;;;
-A0B9;YI SYLLABLE MUOT;Lo;0;L;;;;;N;;;;;
-A0BA;YI SYLLABLE MUOX;Lo;0;L;;;;;N;;;;;
-A0BB;YI SYLLABLE MUO;Lo;0;L;;;;;N;;;;;
-A0BC;YI SYLLABLE MUOP;Lo;0;L;;;;;N;;;;;
-A0BD;YI SYLLABLE MOT;Lo;0;L;;;;;N;;;;;
-A0BE;YI SYLLABLE MOX;Lo;0;L;;;;;N;;;;;
-A0BF;YI SYLLABLE MO;Lo;0;L;;;;;N;;;;;
-A0C0;YI SYLLABLE MOP;Lo;0;L;;;;;N;;;;;
-A0C1;YI SYLLABLE MEX;Lo;0;L;;;;;N;;;;;
-A0C2;YI SYLLABLE ME;Lo;0;L;;;;;N;;;;;
-A0C3;YI SYLLABLE MUT;Lo;0;L;;;;;N;;;;;
-A0C4;YI SYLLABLE MUX;Lo;0;L;;;;;N;;;;;
-A0C5;YI SYLLABLE MU;Lo;0;L;;;;;N;;;;;
-A0C6;YI SYLLABLE MUP;Lo;0;L;;;;;N;;;;;
-A0C7;YI SYLLABLE MURX;Lo;0;L;;;;;N;;;;;
-A0C8;YI SYLLABLE MUR;Lo;0;L;;;;;N;;;;;
-A0C9;YI SYLLABLE MYT;Lo;0;L;;;;;N;;;;;
-A0CA;YI SYLLABLE MYX;Lo;0;L;;;;;N;;;;;
-A0CB;YI SYLLABLE MY;Lo;0;L;;;;;N;;;;;
-A0CC;YI SYLLABLE MYP;Lo;0;L;;;;;N;;;;;
-A0CD;YI SYLLABLE FIT;Lo;0;L;;;;;N;;;;;
-A0CE;YI SYLLABLE FIX;Lo;0;L;;;;;N;;;;;
-A0CF;YI SYLLABLE FI;Lo;0;L;;;;;N;;;;;
-A0D0;YI SYLLABLE FIP;Lo;0;L;;;;;N;;;;;
-A0D1;YI SYLLABLE FAT;Lo;0;L;;;;;N;;;;;
-A0D2;YI SYLLABLE FAX;Lo;0;L;;;;;N;;;;;
-A0D3;YI SYLLABLE FA;Lo;0;L;;;;;N;;;;;
-A0D4;YI SYLLABLE FAP;Lo;0;L;;;;;N;;;;;
-A0D5;YI SYLLABLE FOX;Lo;0;L;;;;;N;;;;;
-A0D6;YI SYLLABLE FO;Lo;0;L;;;;;N;;;;;
-A0D7;YI SYLLABLE FOP;Lo;0;L;;;;;N;;;;;
-A0D8;YI SYLLABLE FUT;Lo;0;L;;;;;N;;;;;
-A0D9;YI SYLLABLE FUX;Lo;0;L;;;;;N;;;;;
-A0DA;YI SYLLABLE FU;Lo;0;L;;;;;N;;;;;
-A0DB;YI SYLLABLE FUP;Lo;0;L;;;;;N;;;;;
-A0DC;YI SYLLABLE FURX;Lo;0;L;;;;;N;;;;;
-A0DD;YI SYLLABLE FUR;Lo;0;L;;;;;N;;;;;
-A0DE;YI SYLLABLE FYT;Lo;0;L;;;;;N;;;;;
-A0DF;YI SYLLABLE FYX;Lo;0;L;;;;;N;;;;;
-A0E0;YI SYLLABLE FY;Lo;0;L;;;;;N;;;;;
-A0E1;YI SYLLABLE FYP;Lo;0;L;;;;;N;;;;;
-A0E2;YI SYLLABLE VIT;Lo;0;L;;;;;N;;;;;
-A0E3;YI SYLLABLE VIX;Lo;0;L;;;;;N;;;;;
-A0E4;YI SYLLABLE VI;Lo;0;L;;;;;N;;;;;
-A0E5;YI SYLLABLE VIP;Lo;0;L;;;;;N;;;;;
-A0E6;YI SYLLABLE VIET;Lo;0;L;;;;;N;;;;;
-A0E7;YI SYLLABLE VIEX;Lo;0;L;;;;;N;;;;;
-A0E8;YI SYLLABLE VIE;Lo;0;L;;;;;N;;;;;
-A0E9;YI SYLLABLE VIEP;Lo;0;L;;;;;N;;;;;
-A0EA;YI SYLLABLE VAT;Lo;0;L;;;;;N;;;;;
-A0EB;YI SYLLABLE VAX;Lo;0;L;;;;;N;;;;;
-A0EC;YI SYLLABLE VA;Lo;0;L;;;;;N;;;;;
-A0ED;YI SYLLABLE VAP;Lo;0;L;;;;;N;;;;;
-A0EE;YI SYLLABLE VOT;Lo;0;L;;;;;N;;;;;
-A0EF;YI SYLLABLE VOX;Lo;0;L;;;;;N;;;;;
-A0F0;YI SYLLABLE VO;Lo;0;L;;;;;N;;;;;
-A0F1;YI SYLLABLE VOP;Lo;0;L;;;;;N;;;;;
-A0F2;YI SYLLABLE VEX;Lo;0;L;;;;;N;;;;;
-A0F3;YI SYLLABLE VEP;Lo;0;L;;;;;N;;;;;
-A0F4;YI SYLLABLE VUT;Lo;0;L;;;;;N;;;;;
-A0F5;YI SYLLABLE VUX;Lo;0;L;;;;;N;;;;;
-A0F6;YI SYLLABLE VU;Lo;0;L;;;;;N;;;;;
-A0F7;YI SYLLABLE VUP;Lo;0;L;;;;;N;;;;;
-A0F8;YI SYLLABLE VURX;Lo;0;L;;;;;N;;;;;
-A0F9;YI SYLLABLE VUR;Lo;0;L;;;;;N;;;;;
-A0FA;YI SYLLABLE VYT;Lo;0;L;;;;;N;;;;;
-A0FB;YI SYLLABLE VYX;Lo;0;L;;;;;N;;;;;
-A0FC;YI SYLLABLE VY;Lo;0;L;;;;;N;;;;;
-A0FD;YI SYLLABLE VYP;Lo;0;L;;;;;N;;;;;
-A0FE;YI SYLLABLE VYRX;Lo;0;L;;;;;N;;;;;
-A0FF;YI SYLLABLE VYR;Lo;0;L;;;;;N;;;;;
-A100;YI SYLLABLE DIT;Lo;0;L;;;;;N;;;;;
-A101;YI SYLLABLE DIX;Lo;0;L;;;;;N;;;;;
-A102;YI SYLLABLE DI;Lo;0;L;;;;;N;;;;;
-A103;YI SYLLABLE DIP;Lo;0;L;;;;;N;;;;;
-A104;YI SYLLABLE DIEX;Lo;0;L;;;;;N;;;;;
-A105;YI SYLLABLE DIE;Lo;0;L;;;;;N;;;;;
-A106;YI SYLLABLE DIEP;Lo;0;L;;;;;N;;;;;
-A107;YI SYLLABLE DAT;Lo;0;L;;;;;N;;;;;
-A108;YI SYLLABLE DAX;Lo;0;L;;;;;N;;;;;
-A109;YI SYLLABLE DA;Lo;0;L;;;;;N;;;;;
-A10A;YI SYLLABLE DAP;Lo;0;L;;;;;N;;;;;
-A10B;YI SYLLABLE DUOX;Lo;0;L;;;;;N;;;;;
-A10C;YI SYLLABLE DUO;Lo;0;L;;;;;N;;;;;
-A10D;YI SYLLABLE DOT;Lo;0;L;;;;;N;;;;;
-A10E;YI SYLLABLE DOX;Lo;0;L;;;;;N;;;;;
-A10F;YI SYLLABLE DO;Lo;0;L;;;;;N;;;;;
-A110;YI SYLLABLE DOP;Lo;0;L;;;;;N;;;;;
-A111;YI SYLLABLE DEX;Lo;0;L;;;;;N;;;;;
-A112;YI SYLLABLE DE;Lo;0;L;;;;;N;;;;;
-A113;YI SYLLABLE DEP;Lo;0;L;;;;;N;;;;;
-A114;YI SYLLABLE DUT;Lo;0;L;;;;;N;;;;;
-A115;YI SYLLABLE DUX;Lo;0;L;;;;;N;;;;;
-A116;YI SYLLABLE DU;Lo;0;L;;;;;N;;;;;
-A117;YI SYLLABLE DUP;Lo;0;L;;;;;N;;;;;
-A118;YI SYLLABLE DURX;Lo;0;L;;;;;N;;;;;
-A119;YI SYLLABLE DUR;Lo;0;L;;;;;N;;;;;
-A11A;YI SYLLABLE TIT;Lo;0;L;;;;;N;;;;;
-A11B;YI SYLLABLE TIX;Lo;0;L;;;;;N;;;;;
-A11C;YI SYLLABLE TI;Lo;0;L;;;;;N;;;;;
-A11D;YI SYLLABLE TIP;Lo;0;L;;;;;N;;;;;
-A11E;YI SYLLABLE TIEX;Lo;0;L;;;;;N;;;;;
-A11F;YI SYLLABLE TIE;Lo;0;L;;;;;N;;;;;
-A120;YI SYLLABLE TIEP;Lo;0;L;;;;;N;;;;;
-A121;YI SYLLABLE TAT;Lo;0;L;;;;;N;;;;;
-A122;YI SYLLABLE TAX;Lo;0;L;;;;;N;;;;;
-A123;YI SYLLABLE TA;Lo;0;L;;;;;N;;;;;
-A124;YI SYLLABLE TAP;Lo;0;L;;;;;N;;;;;
-A125;YI SYLLABLE TUOT;Lo;0;L;;;;;N;;;;;
-A126;YI SYLLABLE TUOX;Lo;0;L;;;;;N;;;;;
-A127;YI SYLLABLE TUO;Lo;0;L;;;;;N;;;;;
-A128;YI SYLLABLE TUOP;Lo;0;L;;;;;N;;;;;
-A129;YI SYLLABLE TOT;Lo;0;L;;;;;N;;;;;
-A12A;YI SYLLABLE TOX;Lo;0;L;;;;;N;;;;;
-A12B;YI SYLLABLE TO;Lo;0;L;;;;;N;;;;;
-A12C;YI SYLLABLE TOP;Lo;0;L;;;;;N;;;;;
-A12D;YI SYLLABLE TEX;Lo;0;L;;;;;N;;;;;
-A12E;YI SYLLABLE TE;Lo;0;L;;;;;N;;;;;
-A12F;YI SYLLABLE TEP;Lo;0;L;;;;;N;;;;;
-A130;YI SYLLABLE TUT;Lo;0;L;;;;;N;;;;;
-A131;YI SYLLABLE TUX;Lo;0;L;;;;;N;;;;;
-A132;YI SYLLABLE TU;Lo;0;L;;;;;N;;;;;
-A133;YI SYLLABLE TUP;Lo;0;L;;;;;N;;;;;
-A134;YI SYLLABLE TURX;Lo;0;L;;;;;N;;;;;
-A135;YI SYLLABLE TUR;Lo;0;L;;;;;N;;;;;
-A136;YI SYLLABLE DDIT;Lo;0;L;;;;;N;;;;;
-A137;YI SYLLABLE DDIX;Lo;0;L;;;;;N;;;;;
-A138;YI SYLLABLE DDI;Lo;0;L;;;;;N;;;;;
-A139;YI SYLLABLE DDIP;Lo;0;L;;;;;N;;;;;
-A13A;YI SYLLABLE DDIEX;Lo;0;L;;;;;N;;;;;
-A13B;YI SYLLABLE DDIE;Lo;0;L;;;;;N;;;;;
-A13C;YI SYLLABLE DDIEP;Lo;0;L;;;;;N;;;;;
-A13D;YI SYLLABLE DDAT;Lo;0;L;;;;;N;;;;;
-A13E;YI SYLLABLE DDAX;Lo;0;L;;;;;N;;;;;
-A13F;YI SYLLABLE DDA;Lo;0;L;;;;;N;;;;;
-A140;YI SYLLABLE DDAP;Lo;0;L;;;;;N;;;;;
-A141;YI SYLLABLE DDUOX;Lo;0;L;;;;;N;;;;;
-A142;YI SYLLABLE DDUO;Lo;0;L;;;;;N;;;;;
-A143;YI SYLLABLE DDUOP;Lo;0;L;;;;;N;;;;;
-A144;YI SYLLABLE DDOT;Lo;0;L;;;;;N;;;;;
-A145;YI SYLLABLE DDOX;Lo;0;L;;;;;N;;;;;
-A146;YI SYLLABLE DDO;Lo;0;L;;;;;N;;;;;
-A147;YI SYLLABLE DDOP;Lo;0;L;;;;;N;;;;;
-A148;YI SYLLABLE DDEX;Lo;0;L;;;;;N;;;;;
-A149;YI SYLLABLE DDE;Lo;0;L;;;;;N;;;;;
-A14A;YI SYLLABLE DDEP;Lo;0;L;;;;;N;;;;;
-A14B;YI SYLLABLE DDUT;Lo;0;L;;;;;N;;;;;
-A14C;YI SYLLABLE DDUX;Lo;0;L;;;;;N;;;;;
-A14D;YI SYLLABLE DDU;Lo;0;L;;;;;N;;;;;
-A14E;YI SYLLABLE DDUP;Lo;0;L;;;;;N;;;;;
-A14F;YI SYLLABLE DDURX;Lo;0;L;;;;;N;;;;;
-A150;YI SYLLABLE DDUR;Lo;0;L;;;;;N;;;;;
-A151;YI SYLLABLE NDIT;Lo;0;L;;;;;N;;;;;
-A152;YI SYLLABLE NDIX;Lo;0;L;;;;;N;;;;;
-A153;YI SYLLABLE NDI;Lo;0;L;;;;;N;;;;;
-A154;YI SYLLABLE NDIP;Lo;0;L;;;;;N;;;;;
-A155;YI SYLLABLE NDIEX;Lo;0;L;;;;;N;;;;;
-A156;YI SYLLABLE NDIE;Lo;0;L;;;;;N;;;;;
-A157;YI SYLLABLE NDAT;Lo;0;L;;;;;N;;;;;
-A158;YI SYLLABLE NDAX;Lo;0;L;;;;;N;;;;;
-A159;YI SYLLABLE NDA;Lo;0;L;;;;;N;;;;;
-A15A;YI SYLLABLE NDAP;Lo;0;L;;;;;N;;;;;
-A15B;YI SYLLABLE NDOT;Lo;0;L;;;;;N;;;;;
-A15C;YI SYLLABLE NDOX;Lo;0;L;;;;;N;;;;;
-A15D;YI SYLLABLE NDO;Lo;0;L;;;;;N;;;;;
-A15E;YI SYLLABLE NDOP;Lo;0;L;;;;;N;;;;;
-A15F;YI SYLLABLE NDEX;Lo;0;L;;;;;N;;;;;
-A160;YI SYLLABLE NDE;Lo;0;L;;;;;N;;;;;
-A161;YI SYLLABLE NDEP;Lo;0;L;;;;;N;;;;;
-A162;YI SYLLABLE NDUT;Lo;0;L;;;;;N;;;;;
-A163;YI SYLLABLE NDUX;Lo;0;L;;;;;N;;;;;
-A164;YI SYLLABLE NDU;Lo;0;L;;;;;N;;;;;
-A165;YI SYLLABLE NDUP;Lo;0;L;;;;;N;;;;;
-A166;YI SYLLABLE NDURX;Lo;0;L;;;;;N;;;;;
-A167;YI SYLLABLE NDUR;Lo;0;L;;;;;N;;;;;
-A168;YI SYLLABLE HNIT;Lo;0;L;;;;;N;;;;;
-A169;YI SYLLABLE HNIX;Lo;0;L;;;;;N;;;;;
-A16A;YI SYLLABLE HNI;Lo;0;L;;;;;N;;;;;
-A16B;YI SYLLABLE HNIP;Lo;0;L;;;;;N;;;;;
-A16C;YI SYLLABLE HNIET;Lo;0;L;;;;;N;;;;;
-A16D;YI SYLLABLE HNIEX;Lo;0;L;;;;;N;;;;;
-A16E;YI SYLLABLE HNIE;Lo;0;L;;;;;N;;;;;
-A16F;YI SYLLABLE HNIEP;Lo;0;L;;;;;N;;;;;
-A170;YI SYLLABLE HNAT;Lo;0;L;;;;;N;;;;;
-A171;YI SYLLABLE HNAX;Lo;0;L;;;;;N;;;;;
-A172;YI SYLLABLE HNA;Lo;0;L;;;;;N;;;;;
-A173;YI SYLLABLE HNAP;Lo;0;L;;;;;N;;;;;
-A174;YI SYLLABLE HNUOX;Lo;0;L;;;;;N;;;;;
-A175;YI SYLLABLE HNUO;Lo;0;L;;;;;N;;;;;
-A176;YI SYLLABLE HNOT;Lo;0;L;;;;;N;;;;;
-A177;YI SYLLABLE HNOX;Lo;0;L;;;;;N;;;;;
-A178;YI SYLLABLE HNOP;Lo;0;L;;;;;N;;;;;
-A179;YI SYLLABLE HNEX;Lo;0;L;;;;;N;;;;;
-A17A;YI SYLLABLE HNE;Lo;0;L;;;;;N;;;;;
-A17B;YI SYLLABLE HNEP;Lo;0;L;;;;;N;;;;;
-A17C;YI SYLLABLE HNUT;Lo;0;L;;;;;N;;;;;
-A17D;YI SYLLABLE NIT;Lo;0;L;;;;;N;;;;;
-A17E;YI SYLLABLE NIX;Lo;0;L;;;;;N;;;;;
-A17F;YI SYLLABLE NI;Lo;0;L;;;;;N;;;;;
-A180;YI SYLLABLE NIP;Lo;0;L;;;;;N;;;;;
-A181;YI SYLLABLE NIEX;Lo;0;L;;;;;N;;;;;
-A182;YI SYLLABLE NIE;Lo;0;L;;;;;N;;;;;
-A183;YI SYLLABLE NIEP;Lo;0;L;;;;;N;;;;;
-A184;YI SYLLABLE NAX;Lo;0;L;;;;;N;;;;;
-A185;YI SYLLABLE NA;Lo;0;L;;;;;N;;;;;
-A186;YI SYLLABLE NAP;Lo;0;L;;;;;N;;;;;
-A187;YI SYLLABLE NUOX;Lo;0;L;;;;;N;;;;;
-A188;YI SYLLABLE NUO;Lo;0;L;;;;;N;;;;;
-A189;YI SYLLABLE NUOP;Lo;0;L;;;;;N;;;;;
-A18A;YI SYLLABLE NOT;Lo;0;L;;;;;N;;;;;
-A18B;YI SYLLABLE NOX;Lo;0;L;;;;;N;;;;;
-A18C;YI SYLLABLE NO;Lo;0;L;;;;;N;;;;;
-A18D;YI SYLLABLE NOP;Lo;0;L;;;;;N;;;;;
-A18E;YI SYLLABLE NEX;Lo;0;L;;;;;N;;;;;
-A18F;YI SYLLABLE NE;Lo;0;L;;;;;N;;;;;
-A190;YI SYLLABLE NEP;Lo;0;L;;;;;N;;;;;
-A191;YI SYLLABLE NUT;Lo;0;L;;;;;N;;;;;
-A192;YI SYLLABLE NUX;Lo;0;L;;;;;N;;;;;
-A193;YI SYLLABLE NU;Lo;0;L;;;;;N;;;;;
-A194;YI SYLLABLE NUP;Lo;0;L;;;;;N;;;;;
-A195;YI SYLLABLE NURX;Lo;0;L;;;;;N;;;;;
-A196;YI SYLLABLE NUR;Lo;0;L;;;;;N;;;;;
-A197;YI SYLLABLE HLIT;Lo;0;L;;;;;N;;;;;
-A198;YI SYLLABLE HLIX;Lo;0;L;;;;;N;;;;;
-A199;YI SYLLABLE HLI;Lo;0;L;;;;;N;;;;;
-A19A;YI SYLLABLE HLIP;Lo;0;L;;;;;N;;;;;
-A19B;YI SYLLABLE HLIEX;Lo;0;L;;;;;N;;;;;
-A19C;YI SYLLABLE HLIE;Lo;0;L;;;;;N;;;;;
-A19D;YI SYLLABLE HLIEP;Lo;0;L;;;;;N;;;;;
-A19E;YI SYLLABLE HLAT;Lo;0;L;;;;;N;;;;;
-A19F;YI SYLLABLE HLAX;Lo;0;L;;;;;N;;;;;
-A1A0;YI SYLLABLE HLA;Lo;0;L;;;;;N;;;;;
-A1A1;YI SYLLABLE HLAP;Lo;0;L;;;;;N;;;;;
-A1A2;YI SYLLABLE HLUOX;Lo;0;L;;;;;N;;;;;
-A1A3;YI SYLLABLE HLUO;Lo;0;L;;;;;N;;;;;
-A1A4;YI SYLLABLE HLUOP;Lo;0;L;;;;;N;;;;;
-A1A5;YI SYLLABLE HLOX;Lo;0;L;;;;;N;;;;;
-A1A6;YI SYLLABLE HLO;Lo;0;L;;;;;N;;;;;
-A1A7;YI SYLLABLE HLOP;Lo;0;L;;;;;N;;;;;
-A1A8;YI SYLLABLE HLEX;Lo;0;L;;;;;N;;;;;
-A1A9;YI SYLLABLE HLE;Lo;0;L;;;;;N;;;;;
-A1AA;YI SYLLABLE HLEP;Lo;0;L;;;;;N;;;;;
-A1AB;YI SYLLABLE HLUT;Lo;0;L;;;;;N;;;;;
-A1AC;YI SYLLABLE HLUX;Lo;0;L;;;;;N;;;;;
-A1AD;YI SYLLABLE HLU;Lo;0;L;;;;;N;;;;;
-A1AE;YI SYLLABLE HLUP;Lo;0;L;;;;;N;;;;;
-A1AF;YI SYLLABLE HLURX;Lo;0;L;;;;;N;;;;;
-A1B0;YI SYLLABLE HLUR;Lo;0;L;;;;;N;;;;;
-A1B1;YI SYLLABLE HLYT;Lo;0;L;;;;;N;;;;;
-A1B2;YI SYLLABLE HLYX;Lo;0;L;;;;;N;;;;;
-A1B3;YI SYLLABLE HLY;Lo;0;L;;;;;N;;;;;
-A1B4;YI SYLLABLE HLYP;Lo;0;L;;;;;N;;;;;
-A1B5;YI SYLLABLE HLYRX;Lo;0;L;;;;;N;;;;;
-A1B6;YI SYLLABLE HLYR;Lo;0;L;;;;;N;;;;;
-A1B7;YI SYLLABLE LIT;Lo;0;L;;;;;N;;;;;
-A1B8;YI SYLLABLE LIX;Lo;0;L;;;;;N;;;;;
-A1B9;YI SYLLABLE LI;Lo;0;L;;;;;N;;;;;
-A1BA;YI SYLLABLE LIP;Lo;0;L;;;;;N;;;;;
-A1BB;YI SYLLABLE LIET;Lo;0;L;;;;;N;;;;;
-A1BC;YI SYLLABLE LIEX;Lo;0;L;;;;;N;;;;;
-A1BD;YI SYLLABLE LIE;Lo;0;L;;;;;N;;;;;
-A1BE;YI SYLLABLE LIEP;Lo;0;L;;;;;N;;;;;
-A1BF;YI SYLLABLE LAT;Lo;0;L;;;;;N;;;;;
-A1C0;YI SYLLABLE LAX;Lo;0;L;;;;;N;;;;;
-A1C1;YI SYLLABLE LA;Lo;0;L;;;;;N;;;;;
-A1C2;YI SYLLABLE LAP;Lo;0;L;;;;;N;;;;;
-A1C3;YI SYLLABLE LUOT;Lo;0;L;;;;;N;;;;;
-A1C4;YI SYLLABLE LUOX;Lo;0;L;;;;;N;;;;;
-A1C5;YI SYLLABLE LUO;Lo;0;L;;;;;N;;;;;
-A1C6;YI SYLLABLE LUOP;Lo;0;L;;;;;N;;;;;
-A1C7;YI SYLLABLE LOT;Lo;0;L;;;;;N;;;;;
-A1C8;YI SYLLABLE LOX;Lo;0;L;;;;;N;;;;;
-A1C9;YI SYLLABLE LO;Lo;0;L;;;;;N;;;;;
-A1CA;YI SYLLABLE LOP;Lo;0;L;;;;;N;;;;;
-A1CB;YI SYLLABLE LEX;Lo;0;L;;;;;N;;;;;
-A1CC;YI SYLLABLE LE;Lo;0;L;;;;;N;;;;;
-A1CD;YI SYLLABLE LEP;Lo;0;L;;;;;N;;;;;
-A1CE;YI SYLLABLE LUT;Lo;0;L;;;;;N;;;;;
-A1CF;YI SYLLABLE LUX;Lo;0;L;;;;;N;;;;;
-A1D0;YI SYLLABLE LU;Lo;0;L;;;;;N;;;;;
-A1D1;YI SYLLABLE LUP;Lo;0;L;;;;;N;;;;;
-A1D2;YI SYLLABLE LURX;Lo;0;L;;;;;N;;;;;
-A1D3;YI SYLLABLE LUR;Lo;0;L;;;;;N;;;;;
-A1D4;YI SYLLABLE LYT;Lo;0;L;;;;;N;;;;;
-A1D5;YI SYLLABLE LYX;Lo;0;L;;;;;N;;;;;
-A1D6;YI SYLLABLE LY;Lo;0;L;;;;;N;;;;;
-A1D7;YI SYLLABLE LYP;Lo;0;L;;;;;N;;;;;
-A1D8;YI SYLLABLE LYRX;Lo;0;L;;;;;N;;;;;
-A1D9;YI SYLLABLE LYR;Lo;0;L;;;;;N;;;;;
-A1DA;YI SYLLABLE GIT;Lo;0;L;;;;;N;;;;;
-A1DB;YI SYLLABLE GIX;Lo;0;L;;;;;N;;;;;
-A1DC;YI SYLLABLE GI;Lo;0;L;;;;;N;;;;;
-A1DD;YI SYLLABLE GIP;Lo;0;L;;;;;N;;;;;
-A1DE;YI SYLLABLE GIET;Lo;0;L;;;;;N;;;;;
-A1DF;YI SYLLABLE GIEX;Lo;0;L;;;;;N;;;;;
-A1E0;YI SYLLABLE GIE;Lo;0;L;;;;;N;;;;;
-A1E1;YI SYLLABLE GIEP;Lo;0;L;;;;;N;;;;;
-A1E2;YI SYLLABLE GAT;Lo;0;L;;;;;N;;;;;
-A1E3;YI SYLLABLE GAX;Lo;0;L;;;;;N;;;;;
-A1E4;YI SYLLABLE GA;Lo;0;L;;;;;N;;;;;
-A1E5;YI SYLLABLE GAP;Lo;0;L;;;;;N;;;;;
-A1E6;YI SYLLABLE GUOT;Lo;0;L;;;;;N;;;;;
-A1E7;YI SYLLABLE GUOX;Lo;0;L;;;;;N;;;;;
-A1E8;YI SYLLABLE GUO;Lo;0;L;;;;;N;;;;;
-A1E9;YI SYLLABLE GUOP;Lo;0;L;;;;;N;;;;;
-A1EA;YI SYLLABLE GOT;Lo;0;L;;;;;N;;;;;
-A1EB;YI SYLLABLE GOX;Lo;0;L;;;;;N;;;;;
-A1EC;YI SYLLABLE GO;Lo;0;L;;;;;N;;;;;
-A1ED;YI SYLLABLE GOP;Lo;0;L;;;;;N;;;;;
-A1EE;YI SYLLABLE GET;Lo;0;L;;;;;N;;;;;
-A1EF;YI SYLLABLE GEX;Lo;0;L;;;;;N;;;;;
-A1F0;YI SYLLABLE GE;Lo;0;L;;;;;N;;;;;
-A1F1;YI SYLLABLE GEP;Lo;0;L;;;;;N;;;;;
-A1F2;YI SYLLABLE GUT;Lo;0;L;;;;;N;;;;;
-A1F3;YI SYLLABLE GUX;Lo;0;L;;;;;N;;;;;
-A1F4;YI SYLLABLE GU;Lo;0;L;;;;;N;;;;;
-A1F5;YI SYLLABLE GUP;Lo;0;L;;;;;N;;;;;
-A1F6;YI SYLLABLE GURX;Lo;0;L;;;;;N;;;;;
-A1F7;YI SYLLABLE GUR;Lo;0;L;;;;;N;;;;;
-A1F8;YI SYLLABLE KIT;Lo;0;L;;;;;N;;;;;
-A1F9;YI SYLLABLE KIX;Lo;0;L;;;;;N;;;;;
-A1FA;YI SYLLABLE KI;Lo;0;L;;;;;N;;;;;
-A1FB;YI SYLLABLE KIP;Lo;0;L;;;;;N;;;;;
-A1FC;YI SYLLABLE KIEX;Lo;0;L;;;;;N;;;;;
-A1FD;YI SYLLABLE KIE;Lo;0;L;;;;;N;;;;;
-A1FE;YI SYLLABLE KIEP;Lo;0;L;;;;;N;;;;;
-A1FF;YI SYLLABLE KAT;Lo;0;L;;;;;N;;;;;
-A200;YI SYLLABLE KAX;Lo;0;L;;;;;N;;;;;
-A201;YI SYLLABLE KA;Lo;0;L;;;;;N;;;;;
-A202;YI SYLLABLE KAP;Lo;0;L;;;;;N;;;;;
-A203;YI SYLLABLE KUOX;Lo;0;L;;;;;N;;;;;
-A204;YI SYLLABLE KUO;Lo;0;L;;;;;N;;;;;
-A205;YI SYLLABLE KUOP;Lo;0;L;;;;;N;;;;;
-A206;YI SYLLABLE KOT;Lo;0;L;;;;;N;;;;;
-A207;YI SYLLABLE KOX;Lo;0;L;;;;;N;;;;;
-A208;YI SYLLABLE KO;Lo;0;L;;;;;N;;;;;
-A209;YI SYLLABLE KOP;Lo;0;L;;;;;N;;;;;
-A20A;YI SYLLABLE KET;Lo;0;L;;;;;N;;;;;
-A20B;YI SYLLABLE KEX;Lo;0;L;;;;;N;;;;;
-A20C;YI SYLLABLE KE;Lo;0;L;;;;;N;;;;;
-A20D;YI SYLLABLE KEP;Lo;0;L;;;;;N;;;;;
-A20E;YI SYLLABLE KUT;Lo;0;L;;;;;N;;;;;
-A20F;YI SYLLABLE KUX;Lo;0;L;;;;;N;;;;;
-A210;YI SYLLABLE KU;Lo;0;L;;;;;N;;;;;
-A211;YI SYLLABLE KUP;Lo;0;L;;;;;N;;;;;
-A212;YI SYLLABLE KURX;Lo;0;L;;;;;N;;;;;
-A213;YI SYLLABLE KUR;Lo;0;L;;;;;N;;;;;
-A214;YI SYLLABLE GGIT;Lo;0;L;;;;;N;;;;;
-A215;YI SYLLABLE GGIX;Lo;0;L;;;;;N;;;;;
-A216;YI SYLLABLE GGI;Lo;0;L;;;;;N;;;;;
-A217;YI SYLLABLE GGIEX;Lo;0;L;;;;;N;;;;;
-A218;YI SYLLABLE GGIE;Lo;0;L;;;;;N;;;;;
-A219;YI SYLLABLE GGIEP;Lo;0;L;;;;;N;;;;;
-A21A;YI SYLLABLE GGAT;Lo;0;L;;;;;N;;;;;
-A21B;YI SYLLABLE GGAX;Lo;0;L;;;;;N;;;;;
-A21C;YI SYLLABLE GGA;Lo;0;L;;;;;N;;;;;
-A21D;YI SYLLABLE GGAP;Lo;0;L;;;;;N;;;;;
-A21E;YI SYLLABLE GGUOT;Lo;0;L;;;;;N;;;;;
-A21F;YI SYLLABLE GGUOX;Lo;0;L;;;;;N;;;;;
-A220;YI SYLLABLE GGUO;Lo;0;L;;;;;N;;;;;
-A221;YI SYLLABLE GGUOP;Lo;0;L;;;;;N;;;;;
-A222;YI SYLLABLE GGOT;Lo;0;L;;;;;N;;;;;
-A223;YI SYLLABLE GGOX;Lo;0;L;;;;;N;;;;;
-A224;YI SYLLABLE GGO;Lo;0;L;;;;;N;;;;;
-A225;YI SYLLABLE GGOP;Lo;0;L;;;;;N;;;;;
-A226;YI SYLLABLE GGET;Lo;0;L;;;;;N;;;;;
-A227;YI SYLLABLE GGEX;Lo;0;L;;;;;N;;;;;
-A228;YI SYLLABLE GGE;Lo;0;L;;;;;N;;;;;
-A229;YI SYLLABLE GGEP;Lo;0;L;;;;;N;;;;;
-A22A;YI SYLLABLE GGUT;Lo;0;L;;;;;N;;;;;
-A22B;YI SYLLABLE GGUX;Lo;0;L;;;;;N;;;;;
-A22C;YI SYLLABLE GGU;Lo;0;L;;;;;N;;;;;
-A22D;YI SYLLABLE GGUP;Lo;0;L;;;;;N;;;;;
-A22E;YI SYLLABLE GGURX;Lo;0;L;;;;;N;;;;;
-A22F;YI SYLLABLE GGUR;Lo;0;L;;;;;N;;;;;
-A230;YI SYLLABLE MGIEX;Lo;0;L;;;;;N;;;;;
-A231;YI SYLLABLE MGIE;Lo;0;L;;;;;N;;;;;
-A232;YI SYLLABLE MGAT;Lo;0;L;;;;;N;;;;;
-A233;YI SYLLABLE MGAX;Lo;0;L;;;;;N;;;;;
-A234;YI SYLLABLE MGA;Lo;0;L;;;;;N;;;;;
-A235;YI SYLLABLE MGAP;Lo;0;L;;;;;N;;;;;
-A236;YI SYLLABLE MGUOX;Lo;0;L;;;;;N;;;;;
-A237;YI SYLLABLE MGUO;Lo;0;L;;;;;N;;;;;
-A238;YI SYLLABLE MGUOP;Lo;0;L;;;;;N;;;;;
-A239;YI SYLLABLE MGOT;Lo;0;L;;;;;N;;;;;
-A23A;YI SYLLABLE MGOX;Lo;0;L;;;;;N;;;;;
-A23B;YI SYLLABLE MGO;Lo;0;L;;;;;N;;;;;
-A23C;YI SYLLABLE MGOP;Lo;0;L;;;;;N;;;;;
-A23D;YI SYLLABLE MGEX;Lo;0;L;;;;;N;;;;;
-A23E;YI SYLLABLE MGE;Lo;0;L;;;;;N;;;;;
-A23F;YI SYLLABLE MGEP;Lo;0;L;;;;;N;;;;;
-A240;YI SYLLABLE MGUT;Lo;0;L;;;;;N;;;;;
-A241;YI SYLLABLE MGUX;Lo;0;L;;;;;N;;;;;
-A242;YI SYLLABLE MGU;Lo;0;L;;;;;N;;;;;
-A243;YI SYLLABLE MGUP;Lo;0;L;;;;;N;;;;;
-A244;YI SYLLABLE MGURX;Lo;0;L;;;;;N;;;;;
-A245;YI SYLLABLE MGUR;Lo;0;L;;;;;N;;;;;
-A246;YI SYLLABLE HXIT;Lo;0;L;;;;;N;;;;;
-A247;YI SYLLABLE HXIX;Lo;0;L;;;;;N;;;;;
-A248;YI SYLLABLE HXI;Lo;0;L;;;;;N;;;;;
-A249;YI SYLLABLE HXIP;Lo;0;L;;;;;N;;;;;
-A24A;YI SYLLABLE HXIET;Lo;0;L;;;;;N;;;;;
-A24B;YI SYLLABLE HXIEX;Lo;0;L;;;;;N;;;;;
-A24C;YI SYLLABLE HXIE;Lo;0;L;;;;;N;;;;;
-A24D;YI SYLLABLE HXIEP;Lo;0;L;;;;;N;;;;;
-A24E;YI SYLLABLE HXAT;Lo;0;L;;;;;N;;;;;
-A24F;YI SYLLABLE HXAX;Lo;0;L;;;;;N;;;;;
-A250;YI SYLLABLE HXA;Lo;0;L;;;;;N;;;;;
-A251;YI SYLLABLE HXAP;Lo;0;L;;;;;N;;;;;
-A252;YI SYLLABLE HXUOT;Lo;0;L;;;;;N;;;;;
-A253;YI SYLLABLE HXUOX;Lo;0;L;;;;;N;;;;;
-A254;YI SYLLABLE HXUO;Lo;0;L;;;;;N;;;;;
-A255;YI SYLLABLE HXUOP;Lo;0;L;;;;;N;;;;;
-A256;YI SYLLABLE HXOT;Lo;0;L;;;;;N;;;;;
-A257;YI SYLLABLE HXOX;Lo;0;L;;;;;N;;;;;
-A258;YI SYLLABLE HXO;Lo;0;L;;;;;N;;;;;
-A259;YI SYLLABLE HXOP;Lo;0;L;;;;;N;;;;;
-A25A;YI SYLLABLE HXEX;Lo;0;L;;;;;N;;;;;
-A25B;YI SYLLABLE HXE;Lo;0;L;;;;;N;;;;;
-A25C;YI SYLLABLE HXEP;Lo;0;L;;;;;N;;;;;
-A25D;YI SYLLABLE NGIEX;Lo;0;L;;;;;N;;;;;
-A25E;YI SYLLABLE NGIE;Lo;0;L;;;;;N;;;;;
-A25F;YI SYLLABLE NGIEP;Lo;0;L;;;;;N;;;;;
-A260;YI SYLLABLE NGAT;Lo;0;L;;;;;N;;;;;
-A261;YI SYLLABLE NGAX;Lo;0;L;;;;;N;;;;;
-A262;YI SYLLABLE NGA;Lo;0;L;;;;;N;;;;;
-A263;YI SYLLABLE NGAP;Lo;0;L;;;;;N;;;;;
-A264;YI SYLLABLE NGUOT;Lo;0;L;;;;;N;;;;;
-A265;YI SYLLABLE NGUOX;Lo;0;L;;;;;N;;;;;
-A266;YI SYLLABLE NGUO;Lo;0;L;;;;;N;;;;;
-A267;YI SYLLABLE NGOT;Lo;0;L;;;;;N;;;;;
-A268;YI SYLLABLE NGOX;Lo;0;L;;;;;N;;;;;
-A269;YI SYLLABLE NGO;Lo;0;L;;;;;N;;;;;
-A26A;YI SYLLABLE NGOP;Lo;0;L;;;;;N;;;;;
-A26B;YI SYLLABLE NGEX;Lo;0;L;;;;;N;;;;;
-A26C;YI SYLLABLE NGE;Lo;0;L;;;;;N;;;;;
-A26D;YI SYLLABLE NGEP;Lo;0;L;;;;;N;;;;;
-A26E;YI SYLLABLE HIT;Lo;0;L;;;;;N;;;;;
-A26F;YI SYLLABLE HIEX;Lo;0;L;;;;;N;;;;;
-A270;YI SYLLABLE HIE;Lo;0;L;;;;;N;;;;;
-A271;YI SYLLABLE HAT;Lo;0;L;;;;;N;;;;;
-A272;YI SYLLABLE HAX;Lo;0;L;;;;;N;;;;;
-A273;YI SYLLABLE HA;Lo;0;L;;;;;N;;;;;
-A274;YI SYLLABLE HAP;Lo;0;L;;;;;N;;;;;
-A275;YI SYLLABLE HUOT;Lo;0;L;;;;;N;;;;;
-A276;YI SYLLABLE HUOX;Lo;0;L;;;;;N;;;;;
-A277;YI SYLLABLE HUO;Lo;0;L;;;;;N;;;;;
-A278;YI SYLLABLE HUOP;Lo;0;L;;;;;N;;;;;
-A279;YI SYLLABLE HOT;Lo;0;L;;;;;N;;;;;
-A27A;YI SYLLABLE HOX;Lo;0;L;;;;;N;;;;;
-A27B;YI SYLLABLE HO;Lo;0;L;;;;;N;;;;;
-A27C;YI SYLLABLE HOP;Lo;0;L;;;;;N;;;;;
-A27D;YI SYLLABLE HEX;Lo;0;L;;;;;N;;;;;
-A27E;YI SYLLABLE HE;Lo;0;L;;;;;N;;;;;
-A27F;YI SYLLABLE HEP;Lo;0;L;;;;;N;;;;;
-A280;YI SYLLABLE WAT;Lo;0;L;;;;;N;;;;;
-A281;YI SYLLABLE WAX;Lo;0;L;;;;;N;;;;;
-A282;YI SYLLABLE WA;Lo;0;L;;;;;N;;;;;
-A283;YI SYLLABLE WAP;Lo;0;L;;;;;N;;;;;
-A284;YI SYLLABLE WUOX;Lo;0;L;;;;;N;;;;;
-A285;YI SYLLABLE WUO;Lo;0;L;;;;;N;;;;;
-A286;YI SYLLABLE WUOP;Lo;0;L;;;;;N;;;;;
-A287;YI SYLLABLE WOX;Lo;0;L;;;;;N;;;;;
-A288;YI SYLLABLE WO;Lo;0;L;;;;;N;;;;;
-A289;YI SYLLABLE WOP;Lo;0;L;;;;;N;;;;;
-A28A;YI SYLLABLE WEX;Lo;0;L;;;;;N;;;;;
-A28B;YI SYLLABLE WE;Lo;0;L;;;;;N;;;;;
-A28C;YI SYLLABLE WEP;Lo;0;L;;;;;N;;;;;
-A28D;YI SYLLABLE ZIT;Lo;0;L;;;;;N;;;;;
-A28E;YI SYLLABLE ZIX;Lo;0;L;;;;;N;;;;;
-A28F;YI SYLLABLE ZI;Lo;0;L;;;;;N;;;;;
-A290;YI SYLLABLE ZIP;Lo;0;L;;;;;N;;;;;
-A291;YI SYLLABLE ZIEX;Lo;0;L;;;;;N;;;;;
-A292;YI SYLLABLE ZIE;Lo;0;L;;;;;N;;;;;
-A293;YI SYLLABLE ZIEP;Lo;0;L;;;;;N;;;;;
-A294;YI SYLLABLE ZAT;Lo;0;L;;;;;N;;;;;
-A295;YI SYLLABLE ZAX;Lo;0;L;;;;;N;;;;;
-A296;YI SYLLABLE ZA;Lo;0;L;;;;;N;;;;;
-A297;YI SYLLABLE ZAP;Lo;0;L;;;;;N;;;;;
-A298;YI SYLLABLE ZUOX;Lo;0;L;;;;;N;;;;;
-A299;YI SYLLABLE ZUO;Lo;0;L;;;;;N;;;;;
-A29A;YI SYLLABLE ZUOP;Lo;0;L;;;;;N;;;;;
-A29B;YI SYLLABLE ZOT;Lo;0;L;;;;;N;;;;;
-A29C;YI SYLLABLE ZOX;Lo;0;L;;;;;N;;;;;
-A29D;YI SYLLABLE ZO;Lo;0;L;;;;;N;;;;;
-A29E;YI SYLLABLE ZOP;Lo;0;L;;;;;N;;;;;
-A29F;YI SYLLABLE ZEX;Lo;0;L;;;;;N;;;;;
-A2A0;YI SYLLABLE ZE;Lo;0;L;;;;;N;;;;;
-A2A1;YI SYLLABLE ZEP;Lo;0;L;;;;;N;;;;;
-A2A2;YI SYLLABLE ZUT;Lo;0;L;;;;;N;;;;;
-A2A3;YI SYLLABLE ZUX;Lo;0;L;;;;;N;;;;;
-A2A4;YI SYLLABLE ZU;Lo;0;L;;;;;N;;;;;
-A2A5;YI SYLLABLE ZUP;Lo;0;L;;;;;N;;;;;
-A2A6;YI SYLLABLE ZURX;Lo;0;L;;;;;N;;;;;
-A2A7;YI SYLLABLE ZUR;Lo;0;L;;;;;N;;;;;
-A2A8;YI SYLLABLE ZYT;Lo;0;L;;;;;N;;;;;
-A2A9;YI SYLLABLE ZYX;Lo;0;L;;;;;N;;;;;
-A2AA;YI SYLLABLE ZY;Lo;0;L;;;;;N;;;;;
-A2AB;YI SYLLABLE ZYP;Lo;0;L;;;;;N;;;;;
-A2AC;YI SYLLABLE ZYRX;Lo;0;L;;;;;N;;;;;
-A2AD;YI SYLLABLE ZYR;Lo;0;L;;;;;N;;;;;
-A2AE;YI SYLLABLE CIT;Lo;0;L;;;;;N;;;;;
-A2AF;YI SYLLABLE CIX;Lo;0;L;;;;;N;;;;;
-A2B0;YI SYLLABLE CI;Lo;0;L;;;;;N;;;;;
-A2B1;YI SYLLABLE CIP;Lo;0;L;;;;;N;;;;;
-A2B2;YI SYLLABLE CIET;Lo;0;L;;;;;N;;;;;
-A2B3;YI SYLLABLE CIEX;Lo;0;L;;;;;N;;;;;
-A2B4;YI SYLLABLE CIE;Lo;0;L;;;;;N;;;;;
-A2B5;YI SYLLABLE CIEP;Lo;0;L;;;;;N;;;;;
-A2B6;YI SYLLABLE CAT;Lo;0;L;;;;;N;;;;;
-A2B7;YI SYLLABLE CAX;Lo;0;L;;;;;N;;;;;
-A2B8;YI SYLLABLE CA;Lo;0;L;;;;;N;;;;;
-A2B9;YI SYLLABLE CAP;Lo;0;L;;;;;N;;;;;
-A2BA;YI SYLLABLE CUOX;Lo;0;L;;;;;N;;;;;
-A2BB;YI SYLLABLE CUO;Lo;0;L;;;;;N;;;;;
-A2BC;YI SYLLABLE CUOP;Lo;0;L;;;;;N;;;;;
-A2BD;YI SYLLABLE COT;Lo;0;L;;;;;N;;;;;
-A2BE;YI SYLLABLE COX;Lo;0;L;;;;;N;;;;;
-A2BF;YI SYLLABLE CO;Lo;0;L;;;;;N;;;;;
-A2C0;YI SYLLABLE COP;Lo;0;L;;;;;N;;;;;
-A2C1;YI SYLLABLE CEX;Lo;0;L;;;;;N;;;;;
-A2C2;YI SYLLABLE CE;Lo;0;L;;;;;N;;;;;
-A2C3;YI SYLLABLE CEP;Lo;0;L;;;;;N;;;;;
-A2C4;YI SYLLABLE CUT;Lo;0;L;;;;;N;;;;;
-A2C5;YI SYLLABLE CUX;Lo;0;L;;;;;N;;;;;
-A2C6;YI SYLLABLE CU;Lo;0;L;;;;;N;;;;;
-A2C7;YI SYLLABLE CUP;Lo;0;L;;;;;N;;;;;
-A2C8;YI SYLLABLE CURX;Lo;0;L;;;;;N;;;;;
-A2C9;YI SYLLABLE CUR;Lo;0;L;;;;;N;;;;;
-A2CA;YI SYLLABLE CYT;Lo;0;L;;;;;N;;;;;
-A2CB;YI SYLLABLE CYX;Lo;0;L;;;;;N;;;;;
-A2CC;YI SYLLABLE CY;Lo;0;L;;;;;N;;;;;
-A2CD;YI SYLLABLE CYP;Lo;0;L;;;;;N;;;;;
-A2CE;YI SYLLABLE CYRX;Lo;0;L;;;;;N;;;;;
-A2CF;YI SYLLABLE CYR;Lo;0;L;;;;;N;;;;;
-A2D0;YI SYLLABLE ZZIT;Lo;0;L;;;;;N;;;;;
-A2D1;YI SYLLABLE ZZIX;Lo;0;L;;;;;N;;;;;
-A2D2;YI SYLLABLE ZZI;Lo;0;L;;;;;N;;;;;
-A2D3;YI SYLLABLE ZZIP;Lo;0;L;;;;;N;;;;;
-A2D4;YI SYLLABLE ZZIET;Lo;0;L;;;;;N;;;;;
-A2D5;YI SYLLABLE ZZIEX;Lo;0;L;;;;;N;;;;;
-A2D6;YI SYLLABLE ZZIE;Lo;0;L;;;;;N;;;;;
-A2D7;YI SYLLABLE ZZIEP;Lo;0;L;;;;;N;;;;;
-A2D8;YI SYLLABLE ZZAT;Lo;0;L;;;;;N;;;;;
-A2D9;YI SYLLABLE ZZAX;Lo;0;L;;;;;N;;;;;
-A2DA;YI SYLLABLE ZZA;Lo;0;L;;;;;N;;;;;
-A2DB;YI SYLLABLE ZZAP;Lo;0;L;;;;;N;;;;;
-A2DC;YI SYLLABLE ZZOX;Lo;0;L;;;;;N;;;;;
-A2DD;YI SYLLABLE ZZO;Lo;0;L;;;;;N;;;;;
-A2DE;YI SYLLABLE ZZOP;Lo;0;L;;;;;N;;;;;
-A2DF;YI SYLLABLE ZZEX;Lo;0;L;;;;;N;;;;;
-A2E0;YI SYLLABLE ZZE;Lo;0;L;;;;;N;;;;;
-A2E1;YI SYLLABLE ZZEP;Lo;0;L;;;;;N;;;;;
-A2E2;YI SYLLABLE ZZUX;Lo;0;L;;;;;N;;;;;
-A2E3;YI SYLLABLE ZZU;Lo;0;L;;;;;N;;;;;
-A2E4;YI SYLLABLE ZZUP;Lo;0;L;;;;;N;;;;;
-A2E5;YI SYLLABLE ZZURX;Lo;0;L;;;;;N;;;;;
-A2E6;YI SYLLABLE ZZUR;Lo;0;L;;;;;N;;;;;
-A2E7;YI SYLLABLE ZZYT;Lo;0;L;;;;;N;;;;;
-A2E8;YI SYLLABLE ZZYX;Lo;0;L;;;;;N;;;;;
-A2E9;YI SYLLABLE ZZY;Lo;0;L;;;;;N;;;;;
-A2EA;YI SYLLABLE ZZYP;Lo;0;L;;;;;N;;;;;
-A2EB;YI SYLLABLE ZZYRX;Lo;0;L;;;;;N;;;;;
-A2EC;YI SYLLABLE ZZYR;Lo;0;L;;;;;N;;;;;
-A2ED;YI SYLLABLE NZIT;Lo;0;L;;;;;N;;;;;
-A2EE;YI SYLLABLE NZIX;Lo;0;L;;;;;N;;;;;
-A2EF;YI SYLLABLE NZI;Lo;0;L;;;;;N;;;;;
-A2F0;YI SYLLABLE NZIP;Lo;0;L;;;;;N;;;;;
-A2F1;YI SYLLABLE NZIEX;Lo;0;L;;;;;N;;;;;
-A2F2;YI SYLLABLE NZIE;Lo;0;L;;;;;N;;;;;
-A2F3;YI SYLLABLE NZIEP;Lo;0;L;;;;;N;;;;;
-A2F4;YI SYLLABLE NZAT;Lo;0;L;;;;;N;;;;;
-A2F5;YI SYLLABLE NZAX;Lo;0;L;;;;;N;;;;;
-A2F6;YI SYLLABLE NZA;Lo;0;L;;;;;N;;;;;
-A2F7;YI SYLLABLE NZAP;Lo;0;L;;;;;N;;;;;
-A2F8;YI SYLLABLE NZUOX;Lo;0;L;;;;;N;;;;;
-A2F9;YI SYLLABLE NZUO;Lo;0;L;;;;;N;;;;;
-A2FA;YI SYLLABLE NZOX;Lo;0;L;;;;;N;;;;;
-A2FB;YI SYLLABLE NZOP;Lo;0;L;;;;;N;;;;;
-A2FC;YI SYLLABLE NZEX;Lo;0;L;;;;;N;;;;;
-A2FD;YI SYLLABLE NZE;Lo;0;L;;;;;N;;;;;
-A2FE;YI SYLLABLE NZUX;Lo;0;L;;;;;N;;;;;
-A2FF;YI SYLLABLE NZU;Lo;0;L;;;;;N;;;;;
-A300;YI SYLLABLE NZUP;Lo;0;L;;;;;N;;;;;
-A301;YI SYLLABLE NZURX;Lo;0;L;;;;;N;;;;;
-A302;YI SYLLABLE NZUR;Lo;0;L;;;;;N;;;;;
-A303;YI SYLLABLE NZYT;Lo;0;L;;;;;N;;;;;
-A304;YI SYLLABLE NZYX;Lo;0;L;;;;;N;;;;;
-A305;YI SYLLABLE NZY;Lo;0;L;;;;;N;;;;;
-A306;YI SYLLABLE NZYP;Lo;0;L;;;;;N;;;;;
-A307;YI SYLLABLE NZYRX;Lo;0;L;;;;;N;;;;;
-A308;YI SYLLABLE NZYR;Lo;0;L;;;;;N;;;;;
-A309;YI SYLLABLE SIT;Lo;0;L;;;;;N;;;;;
-A30A;YI SYLLABLE SIX;Lo;0;L;;;;;N;;;;;
-A30B;YI SYLLABLE SI;Lo;0;L;;;;;N;;;;;
-A30C;YI SYLLABLE SIP;Lo;0;L;;;;;N;;;;;
-A30D;YI SYLLABLE SIEX;Lo;0;L;;;;;N;;;;;
-A30E;YI SYLLABLE SIE;Lo;0;L;;;;;N;;;;;
-A30F;YI SYLLABLE SIEP;Lo;0;L;;;;;N;;;;;
-A310;YI SYLLABLE SAT;Lo;0;L;;;;;N;;;;;
-A311;YI SYLLABLE SAX;Lo;0;L;;;;;N;;;;;
-A312;YI SYLLABLE SA;Lo;0;L;;;;;N;;;;;
-A313;YI SYLLABLE SAP;Lo;0;L;;;;;N;;;;;
-A314;YI SYLLABLE SUOX;Lo;0;L;;;;;N;;;;;
-A315;YI SYLLABLE SUO;Lo;0;L;;;;;N;;;;;
-A316;YI SYLLABLE SUOP;Lo;0;L;;;;;N;;;;;
-A317;YI SYLLABLE SOT;Lo;0;L;;;;;N;;;;;
-A318;YI SYLLABLE SOX;Lo;0;L;;;;;N;;;;;
-A319;YI SYLLABLE SO;Lo;0;L;;;;;N;;;;;
-A31A;YI SYLLABLE SOP;Lo;0;L;;;;;N;;;;;
-A31B;YI SYLLABLE SEX;Lo;0;L;;;;;N;;;;;
-A31C;YI SYLLABLE SE;Lo;0;L;;;;;N;;;;;
-A31D;YI SYLLABLE SEP;Lo;0;L;;;;;N;;;;;
-A31E;YI SYLLABLE SUT;Lo;0;L;;;;;N;;;;;
-A31F;YI SYLLABLE SUX;Lo;0;L;;;;;N;;;;;
-A320;YI SYLLABLE SU;Lo;0;L;;;;;N;;;;;
-A321;YI SYLLABLE SUP;Lo;0;L;;;;;N;;;;;
-A322;YI SYLLABLE SURX;Lo;0;L;;;;;N;;;;;
-A323;YI SYLLABLE SUR;Lo;0;L;;;;;N;;;;;
-A324;YI SYLLABLE SYT;Lo;0;L;;;;;N;;;;;
-A325;YI SYLLABLE SYX;Lo;0;L;;;;;N;;;;;
-A326;YI SYLLABLE SY;Lo;0;L;;;;;N;;;;;
-A327;YI SYLLABLE SYP;Lo;0;L;;;;;N;;;;;
-A328;YI SYLLABLE SYRX;Lo;0;L;;;;;N;;;;;
-A329;YI SYLLABLE SYR;Lo;0;L;;;;;N;;;;;
-A32A;YI SYLLABLE SSIT;Lo;0;L;;;;;N;;;;;
-A32B;YI SYLLABLE SSIX;Lo;0;L;;;;;N;;;;;
-A32C;YI SYLLABLE SSI;Lo;0;L;;;;;N;;;;;
-A32D;YI SYLLABLE SSIP;Lo;0;L;;;;;N;;;;;
-A32E;YI SYLLABLE SSIEX;Lo;0;L;;;;;N;;;;;
-A32F;YI SYLLABLE SSIE;Lo;0;L;;;;;N;;;;;
-A330;YI SYLLABLE SSIEP;Lo;0;L;;;;;N;;;;;
-A331;YI SYLLABLE SSAT;Lo;0;L;;;;;N;;;;;
-A332;YI SYLLABLE SSAX;Lo;0;L;;;;;N;;;;;
-A333;YI SYLLABLE SSA;Lo;0;L;;;;;N;;;;;
-A334;YI SYLLABLE SSAP;Lo;0;L;;;;;N;;;;;
-A335;YI SYLLABLE SSOT;Lo;0;L;;;;;N;;;;;
-A336;YI SYLLABLE SSOX;Lo;0;L;;;;;N;;;;;
-A337;YI SYLLABLE SSO;Lo;0;L;;;;;N;;;;;
-A338;YI SYLLABLE SSOP;Lo;0;L;;;;;N;;;;;
-A339;YI SYLLABLE SSEX;Lo;0;L;;;;;N;;;;;
-A33A;YI SYLLABLE SSE;Lo;0;L;;;;;N;;;;;
-A33B;YI SYLLABLE SSEP;Lo;0;L;;;;;N;;;;;
-A33C;YI SYLLABLE SSUT;Lo;0;L;;;;;N;;;;;
-A33D;YI SYLLABLE SSUX;Lo;0;L;;;;;N;;;;;
-A33E;YI SYLLABLE SSU;Lo;0;L;;;;;N;;;;;
-A33F;YI SYLLABLE SSUP;Lo;0;L;;;;;N;;;;;
-A340;YI SYLLABLE SSYT;Lo;0;L;;;;;N;;;;;
-A341;YI SYLLABLE SSYX;Lo;0;L;;;;;N;;;;;
-A342;YI SYLLABLE SSY;Lo;0;L;;;;;N;;;;;
-A343;YI SYLLABLE SSYP;Lo;0;L;;;;;N;;;;;
-A344;YI SYLLABLE SSYRX;Lo;0;L;;;;;N;;;;;
-A345;YI SYLLABLE SSYR;Lo;0;L;;;;;N;;;;;
-A346;YI SYLLABLE ZHAT;Lo;0;L;;;;;N;;;;;
-A347;YI SYLLABLE ZHAX;Lo;0;L;;;;;N;;;;;
-A348;YI SYLLABLE ZHA;Lo;0;L;;;;;N;;;;;
-A349;YI SYLLABLE ZHAP;Lo;0;L;;;;;N;;;;;
-A34A;YI SYLLABLE ZHUOX;Lo;0;L;;;;;N;;;;;
-A34B;YI SYLLABLE ZHUO;Lo;0;L;;;;;N;;;;;
-A34C;YI SYLLABLE ZHUOP;Lo;0;L;;;;;N;;;;;
-A34D;YI SYLLABLE ZHOT;Lo;0;L;;;;;N;;;;;
-A34E;YI SYLLABLE ZHOX;Lo;0;L;;;;;N;;;;;
-A34F;YI SYLLABLE ZHO;Lo;0;L;;;;;N;;;;;
-A350;YI SYLLABLE ZHOP;Lo;0;L;;;;;N;;;;;
-A351;YI SYLLABLE ZHET;Lo;0;L;;;;;N;;;;;
-A352;YI SYLLABLE ZHEX;Lo;0;L;;;;;N;;;;;
-A353;YI SYLLABLE ZHE;Lo;0;L;;;;;N;;;;;
-A354;YI SYLLABLE ZHEP;Lo;0;L;;;;;N;;;;;
-A355;YI SYLLABLE ZHUT;Lo;0;L;;;;;N;;;;;
-A356;YI SYLLABLE ZHUX;Lo;0;L;;;;;N;;;;;
-A357;YI SYLLABLE ZHU;Lo;0;L;;;;;N;;;;;
-A358;YI SYLLABLE ZHUP;Lo;0;L;;;;;N;;;;;
-A359;YI SYLLABLE ZHURX;Lo;0;L;;;;;N;;;;;
-A35A;YI SYLLABLE ZHUR;Lo;0;L;;;;;N;;;;;
-A35B;YI SYLLABLE ZHYT;Lo;0;L;;;;;N;;;;;
-A35C;YI SYLLABLE ZHYX;Lo;0;L;;;;;N;;;;;
-A35D;YI SYLLABLE ZHY;Lo;0;L;;;;;N;;;;;
-A35E;YI SYLLABLE ZHYP;Lo;0;L;;;;;N;;;;;
-A35F;YI SYLLABLE ZHYRX;Lo;0;L;;;;;N;;;;;
-A360;YI SYLLABLE ZHYR;Lo;0;L;;;;;N;;;;;
-A361;YI SYLLABLE CHAT;Lo;0;L;;;;;N;;;;;
-A362;YI SYLLABLE CHAX;Lo;0;L;;;;;N;;;;;
-A363;YI SYLLABLE CHA;Lo;0;L;;;;;N;;;;;
-A364;YI SYLLABLE CHAP;Lo;0;L;;;;;N;;;;;
-A365;YI SYLLABLE CHUOT;Lo;0;L;;;;;N;;;;;
-A366;YI SYLLABLE CHUOX;Lo;0;L;;;;;N;;;;;
-A367;YI SYLLABLE CHUO;Lo;0;L;;;;;N;;;;;
-A368;YI SYLLABLE CHUOP;Lo;0;L;;;;;N;;;;;
-A369;YI SYLLABLE CHOT;Lo;0;L;;;;;N;;;;;
-A36A;YI SYLLABLE CHOX;Lo;0;L;;;;;N;;;;;
-A36B;YI SYLLABLE CHO;Lo;0;L;;;;;N;;;;;
-A36C;YI SYLLABLE CHOP;Lo;0;L;;;;;N;;;;;
-A36D;YI SYLLABLE CHET;Lo;0;L;;;;;N;;;;;
-A36E;YI SYLLABLE CHEX;Lo;0;L;;;;;N;;;;;
-A36F;YI SYLLABLE CHE;Lo;0;L;;;;;N;;;;;
-A370;YI SYLLABLE CHEP;Lo;0;L;;;;;N;;;;;
-A371;YI SYLLABLE CHUX;Lo;0;L;;;;;N;;;;;
-A372;YI SYLLABLE CHU;Lo;0;L;;;;;N;;;;;
-A373;YI SYLLABLE CHUP;Lo;0;L;;;;;N;;;;;
-A374;YI SYLLABLE CHURX;Lo;0;L;;;;;N;;;;;
-A375;YI SYLLABLE CHUR;Lo;0;L;;;;;N;;;;;
-A376;YI SYLLABLE CHYT;Lo;0;L;;;;;N;;;;;
-A377;YI SYLLABLE CHYX;Lo;0;L;;;;;N;;;;;
-A378;YI SYLLABLE CHY;Lo;0;L;;;;;N;;;;;
-A379;YI SYLLABLE CHYP;Lo;0;L;;;;;N;;;;;
-A37A;YI SYLLABLE CHYRX;Lo;0;L;;;;;N;;;;;
-A37B;YI SYLLABLE CHYR;Lo;0;L;;;;;N;;;;;
-A37C;YI SYLLABLE RRAX;Lo;0;L;;;;;N;;;;;
-A37D;YI SYLLABLE RRA;Lo;0;L;;;;;N;;;;;
-A37E;YI SYLLABLE RRUOX;Lo;0;L;;;;;N;;;;;
-A37F;YI SYLLABLE RRUO;Lo;0;L;;;;;N;;;;;
-A380;YI SYLLABLE RROT;Lo;0;L;;;;;N;;;;;
-A381;YI SYLLABLE RROX;Lo;0;L;;;;;N;;;;;
-A382;YI SYLLABLE RRO;Lo;0;L;;;;;N;;;;;
-A383;YI SYLLABLE RROP;Lo;0;L;;;;;N;;;;;
-A384;YI SYLLABLE RRET;Lo;0;L;;;;;N;;;;;
-A385;YI SYLLABLE RREX;Lo;0;L;;;;;N;;;;;
-A386;YI SYLLABLE RRE;Lo;0;L;;;;;N;;;;;
-A387;YI SYLLABLE RREP;Lo;0;L;;;;;N;;;;;
-A388;YI SYLLABLE RRUT;Lo;0;L;;;;;N;;;;;
-A389;YI SYLLABLE RRUX;Lo;0;L;;;;;N;;;;;
-A38A;YI SYLLABLE RRU;Lo;0;L;;;;;N;;;;;
-A38B;YI SYLLABLE RRUP;Lo;0;L;;;;;N;;;;;
-A38C;YI SYLLABLE RRURX;Lo;0;L;;;;;N;;;;;
-A38D;YI SYLLABLE RRUR;Lo;0;L;;;;;N;;;;;
-A38E;YI SYLLABLE RRYT;Lo;0;L;;;;;N;;;;;
-A38F;YI SYLLABLE RRYX;Lo;0;L;;;;;N;;;;;
-A390;YI SYLLABLE RRY;Lo;0;L;;;;;N;;;;;
-A391;YI SYLLABLE RRYP;Lo;0;L;;;;;N;;;;;
-A392;YI SYLLABLE RRYRX;Lo;0;L;;;;;N;;;;;
-A393;YI SYLLABLE RRYR;Lo;0;L;;;;;N;;;;;
-A394;YI SYLLABLE NRAT;Lo;0;L;;;;;N;;;;;
-A395;YI SYLLABLE NRAX;Lo;0;L;;;;;N;;;;;
-A396;YI SYLLABLE NRA;Lo;0;L;;;;;N;;;;;
-A397;YI SYLLABLE NRAP;Lo;0;L;;;;;N;;;;;
-A398;YI SYLLABLE NROX;Lo;0;L;;;;;N;;;;;
-A399;YI SYLLABLE NRO;Lo;0;L;;;;;N;;;;;
-A39A;YI SYLLABLE NROP;Lo;0;L;;;;;N;;;;;
-A39B;YI SYLLABLE NRET;Lo;0;L;;;;;N;;;;;
-A39C;YI SYLLABLE NREX;Lo;0;L;;;;;N;;;;;
-A39D;YI SYLLABLE NRE;Lo;0;L;;;;;N;;;;;
-A39E;YI SYLLABLE NREP;Lo;0;L;;;;;N;;;;;
-A39F;YI SYLLABLE NRUT;Lo;0;L;;;;;N;;;;;
-A3A0;YI SYLLABLE NRUX;Lo;0;L;;;;;N;;;;;
-A3A1;YI SYLLABLE NRU;Lo;0;L;;;;;N;;;;;
-A3A2;YI SYLLABLE NRUP;Lo;0;L;;;;;N;;;;;
-A3A3;YI SYLLABLE NRURX;Lo;0;L;;;;;N;;;;;
-A3A4;YI SYLLABLE NRUR;Lo;0;L;;;;;N;;;;;
-A3A5;YI SYLLABLE NRYT;Lo;0;L;;;;;N;;;;;
-A3A6;YI SYLLABLE NRYX;Lo;0;L;;;;;N;;;;;
-A3A7;YI SYLLABLE NRY;Lo;0;L;;;;;N;;;;;
-A3A8;YI SYLLABLE NRYP;Lo;0;L;;;;;N;;;;;
-A3A9;YI SYLLABLE NRYRX;Lo;0;L;;;;;N;;;;;
-A3AA;YI SYLLABLE NRYR;Lo;0;L;;;;;N;;;;;
-A3AB;YI SYLLABLE SHAT;Lo;0;L;;;;;N;;;;;
-A3AC;YI SYLLABLE SHAX;Lo;0;L;;;;;N;;;;;
-A3AD;YI SYLLABLE SHA;Lo;0;L;;;;;N;;;;;
-A3AE;YI SYLLABLE SHAP;Lo;0;L;;;;;N;;;;;
-A3AF;YI SYLLABLE SHUOX;Lo;0;L;;;;;N;;;;;
-A3B0;YI SYLLABLE SHUO;Lo;0;L;;;;;N;;;;;
-A3B1;YI SYLLABLE SHUOP;Lo;0;L;;;;;N;;;;;
-A3B2;YI SYLLABLE SHOT;Lo;0;L;;;;;N;;;;;
-A3B3;YI SYLLABLE SHOX;Lo;0;L;;;;;N;;;;;
-A3B4;YI SYLLABLE SHO;Lo;0;L;;;;;N;;;;;
-A3B5;YI SYLLABLE SHOP;Lo;0;L;;;;;N;;;;;
-A3B6;YI SYLLABLE SHET;Lo;0;L;;;;;N;;;;;
-A3B7;YI SYLLABLE SHEX;Lo;0;L;;;;;N;;;;;
-A3B8;YI SYLLABLE SHE;Lo;0;L;;;;;N;;;;;
-A3B9;YI SYLLABLE SHEP;Lo;0;L;;;;;N;;;;;
-A3BA;YI SYLLABLE SHUT;Lo;0;L;;;;;N;;;;;
-A3BB;YI SYLLABLE SHUX;Lo;0;L;;;;;N;;;;;
-A3BC;YI SYLLABLE SHU;Lo;0;L;;;;;N;;;;;
-A3BD;YI SYLLABLE SHUP;Lo;0;L;;;;;N;;;;;
-A3BE;YI SYLLABLE SHURX;Lo;0;L;;;;;N;;;;;
-A3BF;YI SYLLABLE SHUR;Lo;0;L;;;;;N;;;;;
-A3C0;YI SYLLABLE SHYT;Lo;0;L;;;;;N;;;;;
-A3C1;YI SYLLABLE SHYX;Lo;0;L;;;;;N;;;;;
-A3C2;YI SYLLABLE SHY;Lo;0;L;;;;;N;;;;;
-A3C3;YI SYLLABLE SHYP;Lo;0;L;;;;;N;;;;;
-A3C4;YI SYLLABLE SHYRX;Lo;0;L;;;;;N;;;;;
-A3C5;YI SYLLABLE SHYR;Lo;0;L;;;;;N;;;;;
-A3C6;YI SYLLABLE RAT;Lo;0;L;;;;;N;;;;;
-A3C7;YI SYLLABLE RAX;Lo;0;L;;;;;N;;;;;
-A3C8;YI SYLLABLE RA;Lo;0;L;;;;;N;;;;;
-A3C9;YI SYLLABLE RAP;Lo;0;L;;;;;N;;;;;
-A3CA;YI SYLLABLE RUOX;Lo;0;L;;;;;N;;;;;
-A3CB;YI SYLLABLE RUO;Lo;0;L;;;;;N;;;;;
-A3CC;YI SYLLABLE RUOP;Lo;0;L;;;;;N;;;;;
-A3CD;YI SYLLABLE ROT;Lo;0;L;;;;;N;;;;;
-A3CE;YI SYLLABLE ROX;Lo;0;L;;;;;N;;;;;
-A3CF;YI SYLLABLE RO;Lo;0;L;;;;;N;;;;;
-A3D0;YI SYLLABLE ROP;Lo;0;L;;;;;N;;;;;
-A3D1;YI SYLLABLE REX;Lo;0;L;;;;;N;;;;;
-A3D2;YI SYLLABLE RE;Lo;0;L;;;;;N;;;;;
-A3D3;YI SYLLABLE REP;Lo;0;L;;;;;N;;;;;
-A3D4;YI SYLLABLE RUT;Lo;0;L;;;;;N;;;;;
-A3D5;YI SYLLABLE RUX;Lo;0;L;;;;;N;;;;;
-A3D6;YI SYLLABLE RU;Lo;0;L;;;;;N;;;;;
-A3D7;YI SYLLABLE RUP;Lo;0;L;;;;;N;;;;;
-A3D8;YI SYLLABLE RURX;Lo;0;L;;;;;N;;;;;
-A3D9;YI SYLLABLE RUR;Lo;0;L;;;;;N;;;;;
-A3DA;YI SYLLABLE RYT;Lo;0;L;;;;;N;;;;;
-A3DB;YI SYLLABLE RYX;Lo;0;L;;;;;N;;;;;
-A3DC;YI SYLLABLE RY;Lo;0;L;;;;;N;;;;;
-A3DD;YI SYLLABLE RYP;Lo;0;L;;;;;N;;;;;
-A3DE;YI SYLLABLE RYRX;Lo;0;L;;;;;N;;;;;
-A3DF;YI SYLLABLE RYR;Lo;0;L;;;;;N;;;;;
-A3E0;YI SYLLABLE JIT;Lo;0;L;;;;;N;;;;;
-A3E1;YI SYLLABLE JIX;Lo;0;L;;;;;N;;;;;
-A3E2;YI SYLLABLE JI;Lo;0;L;;;;;N;;;;;
-A3E3;YI SYLLABLE JIP;Lo;0;L;;;;;N;;;;;
-A3E4;YI SYLLABLE JIET;Lo;0;L;;;;;N;;;;;
-A3E5;YI SYLLABLE JIEX;Lo;0;L;;;;;N;;;;;
-A3E6;YI SYLLABLE JIE;Lo;0;L;;;;;N;;;;;
-A3E7;YI SYLLABLE JIEP;Lo;0;L;;;;;N;;;;;
-A3E8;YI SYLLABLE JUOT;Lo;0;L;;;;;N;;;;;
-A3E9;YI SYLLABLE JUOX;Lo;0;L;;;;;N;;;;;
-A3EA;YI SYLLABLE JUO;Lo;0;L;;;;;N;;;;;
-A3EB;YI SYLLABLE JUOP;Lo;0;L;;;;;N;;;;;
-A3EC;YI SYLLABLE JOT;Lo;0;L;;;;;N;;;;;
-A3ED;YI SYLLABLE JOX;Lo;0;L;;;;;N;;;;;
-A3EE;YI SYLLABLE JO;Lo;0;L;;;;;N;;;;;
-A3EF;YI SYLLABLE JOP;Lo;0;L;;;;;N;;;;;
-A3F0;YI SYLLABLE JUT;Lo;0;L;;;;;N;;;;;
-A3F1;YI SYLLABLE JUX;Lo;0;L;;;;;N;;;;;
-A3F2;YI SYLLABLE JU;Lo;0;L;;;;;N;;;;;
-A3F3;YI SYLLABLE JUP;Lo;0;L;;;;;N;;;;;
-A3F4;YI SYLLABLE JURX;Lo;0;L;;;;;N;;;;;
-A3F5;YI SYLLABLE JUR;Lo;0;L;;;;;N;;;;;
-A3F6;YI SYLLABLE JYT;Lo;0;L;;;;;N;;;;;
-A3F7;YI SYLLABLE JYX;Lo;0;L;;;;;N;;;;;
-A3F8;YI SYLLABLE JY;Lo;0;L;;;;;N;;;;;
-A3F9;YI SYLLABLE JYP;Lo;0;L;;;;;N;;;;;
-A3FA;YI SYLLABLE JYRX;Lo;0;L;;;;;N;;;;;
-A3FB;YI SYLLABLE JYR;Lo;0;L;;;;;N;;;;;
-A3FC;YI SYLLABLE QIT;Lo;0;L;;;;;N;;;;;
-A3FD;YI SYLLABLE QIX;Lo;0;L;;;;;N;;;;;
-A3FE;YI SYLLABLE QI;Lo;0;L;;;;;N;;;;;
-A3FF;YI SYLLABLE QIP;Lo;0;L;;;;;N;;;;;
-A400;YI SYLLABLE QIET;Lo;0;L;;;;;N;;;;;
-A401;YI SYLLABLE QIEX;Lo;0;L;;;;;N;;;;;
-A402;YI SYLLABLE QIE;Lo;0;L;;;;;N;;;;;
-A403;YI SYLLABLE QIEP;Lo;0;L;;;;;N;;;;;
-A404;YI SYLLABLE QUOT;Lo;0;L;;;;;N;;;;;
-A405;YI SYLLABLE QUOX;Lo;0;L;;;;;N;;;;;
-A406;YI SYLLABLE QUO;Lo;0;L;;;;;N;;;;;
-A407;YI SYLLABLE QUOP;Lo;0;L;;;;;N;;;;;
-A408;YI SYLLABLE QOT;Lo;0;L;;;;;N;;;;;
-A409;YI SYLLABLE QOX;Lo;0;L;;;;;N;;;;;
-A40A;YI SYLLABLE QO;Lo;0;L;;;;;N;;;;;
-A40B;YI SYLLABLE QOP;Lo;0;L;;;;;N;;;;;
-A40C;YI SYLLABLE QUT;Lo;0;L;;;;;N;;;;;
-A40D;YI SYLLABLE QUX;Lo;0;L;;;;;N;;;;;
-A40E;YI SYLLABLE QU;Lo;0;L;;;;;N;;;;;
-A40F;YI SYLLABLE QUP;Lo;0;L;;;;;N;;;;;
-A410;YI SYLLABLE QURX;Lo;0;L;;;;;N;;;;;
-A411;YI SYLLABLE QUR;Lo;0;L;;;;;N;;;;;
-A412;YI SYLLABLE QYT;Lo;0;L;;;;;N;;;;;
-A413;YI SYLLABLE QYX;Lo;0;L;;;;;N;;;;;
-A414;YI SYLLABLE QY;Lo;0;L;;;;;N;;;;;
-A415;YI SYLLABLE QYP;Lo;0;L;;;;;N;;;;;
-A416;YI SYLLABLE QYRX;Lo;0;L;;;;;N;;;;;
-A417;YI SYLLABLE QYR;Lo;0;L;;;;;N;;;;;
-A418;YI SYLLABLE JJIT;Lo;0;L;;;;;N;;;;;
-A419;YI SYLLABLE JJIX;Lo;0;L;;;;;N;;;;;
-A41A;YI SYLLABLE JJI;Lo;0;L;;;;;N;;;;;
-A41B;YI SYLLABLE JJIP;Lo;0;L;;;;;N;;;;;
-A41C;YI SYLLABLE JJIET;Lo;0;L;;;;;N;;;;;
-A41D;YI SYLLABLE JJIEX;Lo;0;L;;;;;N;;;;;
-A41E;YI SYLLABLE JJIE;Lo;0;L;;;;;N;;;;;
-A41F;YI SYLLABLE JJIEP;Lo;0;L;;;;;N;;;;;
-A420;YI SYLLABLE JJUOX;Lo;0;L;;;;;N;;;;;
-A421;YI SYLLABLE JJUO;Lo;0;L;;;;;N;;;;;
-A422;YI SYLLABLE JJUOP;Lo;0;L;;;;;N;;;;;
-A423;YI SYLLABLE JJOT;Lo;0;L;;;;;N;;;;;
-A424;YI SYLLABLE JJOX;Lo;0;L;;;;;N;;;;;
-A425;YI SYLLABLE JJO;Lo;0;L;;;;;N;;;;;
-A426;YI SYLLABLE JJOP;Lo;0;L;;;;;N;;;;;
-A427;YI SYLLABLE JJUT;Lo;0;L;;;;;N;;;;;
-A428;YI SYLLABLE JJUX;Lo;0;L;;;;;N;;;;;
-A429;YI SYLLABLE JJU;Lo;0;L;;;;;N;;;;;
-A42A;YI SYLLABLE JJUP;Lo;0;L;;;;;N;;;;;
-A42B;YI SYLLABLE JJURX;Lo;0;L;;;;;N;;;;;
-A42C;YI SYLLABLE JJUR;Lo;0;L;;;;;N;;;;;
-A42D;YI SYLLABLE JJYT;Lo;0;L;;;;;N;;;;;
-A42E;YI SYLLABLE JJYX;Lo;0;L;;;;;N;;;;;
-A42F;YI SYLLABLE JJY;Lo;0;L;;;;;N;;;;;
-A430;YI SYLLABLE JJYP;Lo;0;L;;;;;N;;;;;
-A431;YI SYLLABLE NJIT;Lo;0;L;;;;;N;;;;;
-A432;YI SYLLABLE NJIX;Lo;0;L;;;;;N;;;;;
-A433;YI SYLLABLE NJI;Lo;0;L;;;;;N;;;;;
-A434;YI SYLLABLE NJIP;Lo;0;L;;;;;N;;;;;
-A435;YI SYLLABLE NJIET;Lo;0;L;;;;;N;;;;;
-A436;YI SYLLABLE NJIEX;Lo;0;L;;;;;N;;;;;
-A437;YI SYLLABLE NJIE;Lo;0;L;;;;;N;;;;;
-A438;YI SYLLABLE NJIEP;Lo;0;L;;;;;N;;;;;
-A439;YI SYLLABLE NJUOX;Lo;0;L;;;;;N;;;;;
-A43A;YI SYLLABLE NJUO;Lo;0;L;;;;;N;;;;;
-A43B;YI SYLLABLE NJOT;Lo;0;L;;;;;N;;;;;
-A43C;YI SYLLABLE NJOX;Lo;0;L;;;;;N;;;;;
-A43D;YI SYLLABLE NJO;Lo;0;L;;;;;N;;;;;
-A43E;YI SYLLABLE NJOP;Lo;0;L;;;;;N;;;;;
-A43F;YI SYLLABLE NJUX;Lo;0;L;;;;;N;;;;;
-A440;YI SYLLABLE NJU;Lo;0;L;;;;;N;;;;;
-A441;YI SYLLABLE NJUP;Lo;0;L;;;;;N;;;;;
-A442;YI SYLLABLE NJURX;Lo;0;L;;;;;N;;;;;
-A443;YI SYLLABLE NJUR;Lo;0;L;;;;;N;;;;;
-A444;YI SYLLABLE NJYT;Lo;0;L;;;;;N;;;;;
-A445;YI SYLLABLE NJYX;Lo;0;L;;;;;N;;;;;
-A446;YI SYLLABLE NJY;Lo;0;L;;;;;N;;;;;
-A447;YI SYLLABLE NJYP;Lo;0;L;;;;;N;;;;;
-A448;YI SYLLABLE NJYRX;Lo;0;L;;;;;N;;;;;
-A449;YI SYLLABLE NJYR;Lo;0;L;;;;;N;;;;;
-A44A;YI SYLLABLE NYIT;Lo;0;L;;;;;N;;;;;
-A44B;YI SYLLABLE NYIX;Lo;0;L;;;;;N;;;;;
-A44C;YI SYLLABLE NYI;Lo;0;L;;;;;N;;;;;
-A44D;YI SYLLABLE NYIP;Lo;0;L;;;;;N;;;;;
-A44E;YI SYLLABLE NYIET;Lo;0;L;;;;;N;;;;;
-A44F;YI SYLLABLE NYIEX;Lo;0;L;;;;;N;;;;;
-A450;YI SYLLABLE NYIE;Lo;0;L;;;;;N;;;;;
-A451;YI SYLLABLE NYIEP;Lo;0;L;;;;;N;;;;;
-A452;YI SYLLABLE NYUOX;Lo;0;L;;;;;N;;;;;
-A453;YI SYLLABLE NYUO;Lo;0;L;;;;;N;;;;;
-A454;YI SYLLABLE NYUOP;Lo;0;L;;;;;N;;;;;
-A455;YI SYLLABLE NYOT;Lo;0;L;;;;;N;;;;;
-A456;YI SYLLABLE NYOX;Lo;0;L;;;;;N;;;;;
-A457;YI SYLLABLE NYO;Lo;0;L;;;;;N;;;;;
-A458;YI SYLLABLE NYOP;Lo;0;L;;;;;N;;;;;
-A459;YI SYLLABLE NYUT;Lo;0;L;;;;;N;;;;;
-A45A;YI SYLLABLE NYUX;Lo;0;L;;;;;N;;;;;
-A45B;YI SYLLABLE NYU;Lo;0;L;;;;;N;;;;;
-A45C;YI SYLLABLE NYUP;Lo;0;L;;;;;N;;;;;
-A45D;YI SYLLABLE XIT;Lo;0;L;;;;;N;;;;;
-A45E;YI SYLLABLE XIX;Lo;0;L;;;;;N;;;;;
-A45F;YI SYLLABLE XI;Lo;0;L;;;;;N;;;;;
-A460;YI SYLLABLE XIP;Lo;0;L;;;;;N;;;;;
-A461;YI SYLLABLE XIET;Lo;0;L;;;;;N;;;;;
-A462;YI SYLLABLE XIEX;Lo;0;L;;;;;N;;;;;
-A463;YI SYLLABLE XIE;Lo;0;L;;;;;N;;;;;
-A464;YI SYLLABLE XIEP;Lo;0;L;;;;;N;;;;;
-A465;YI SYLLABLE XUOX;Lo;0;L;;;;;N;;;;;
-A466;YI SYLLABLE XUO;Lo;0;L;;;;;N;;;;;
-A467;YI SYLLABLE XOT;Lo;0;L;;;;;N;;;;;
-A468;YI SYLLABLE XOX;Lo;0;L;;;;;N;;;;;
-A469;YI SYLLABLE XO;Lo;0;L;;;;;N;;;;;
-A46A;YI SYLLABLE XOP;Lo;0;L;;;;;N;;;;;
-A46B;YI SYLLABLE XYT;Lo;0;L;;;;;N;;;;;
-A46C;YI SYLLABLE XYX;Lo;0;L;;;;;N;;;;;
-A46D;YI SYLLABLE XY;Lo;0;L;;;;;N;;;;;
-A46E;YI SYLLABLE XYP;Lo;0;L;;;;;N;;;;;
-A46F;YI SYLLABLE XYRX;Lo;0;L;;;;;N;;;;;
-A470;YI SYLLABLE XYR;Lo;0;L;;;;;N;;;;;
-A471;YI SYLLABLE YIT;Lo;0;L;;;;;N;;;;;
-A472;YI SYLLABLE YIX;Lo;0;L;;;;;N;;;;;
-A473;YI SYLLABLE YI;Lo;0;L;;;;;N;;;;;
-A474;YI SYLLABLE YIP;Lo;0;L;;;;;N;;;;;
-A475;YI SYLLABLE YIET;Lo;0;L;;;;;N;;;;;
-A476;YI SYLLABLE YIEX;Lo;0;L;;;;;N;;;;;
-A477;YI SYLLABLE YIE;Lo;0;L;;;;;N;;;;;
-A478;YI SYLLABLE YIEP;Lo;0;L;;;;;N;;;;;
-A479;YI SYLLABLE YUOT;Lo;0;L;;;;;N;;;;;
-A47A;YI SYLLABLE YUOX;Lo;0;L;;;;;N;;;;;
-A47B;YI SYLLABLE YUO;Lo;0;L;;;;;N;;;;;
-A47C;YI SYLLABLE YUOP;Lo;0;L;;;;;N;;;;;
-A47D;YI SYLLABLE YOT;Lo;0;L;;;;;N;;;;;
-A47E;YI SYLLABLE YOX;Lo;0;L;;;;;N;;;;;
-A47F;YI SYLLABLE YO;Lo;0;L;;;;;N;;;;;
-A480;YI SYLLABLE YOP;Lo;0;L;;;;;N;;;;;
-A481;YI SYLLABLE YUT;Lo;0;L;;;;;N;;;;;
-A482;YI SYLLABLE YUX;Lo;0;L;;;;;N;;;;;
-A483;YI SYLLABLE YU;Lo;0;L;;;;;N;;;;;
-A484;YI SYLLABLE YUP;Lo;0;L;;;;;N;;;;;
-A485;YI SYLLABLE YURX;Lo;0;L;;;;;N;;;;;
-A486;YI SYLLABLE YUR;Lo;0;L;;;;;N;;;;;
-A487;YI SYLLABLE YYT;Lo;0;L;;;;;N;;;;;
-A488;YI SYLLABLE YYX;Lo;0;L;;;;;N;;;;;
-A489;YI SYLLABLE YY;Lo;0;L;;;;;N;;;;;
-A48A;YI SYLLABLE YYP;Lo;0;L;;;;;N;;;;;
-A48B;YI SYLLABLE YYRX;Lo;0;L;;;;;N;;;;;
-A48C;YI SYLLABLE YYR;Lo;0;L;;;;;N;;;;;
-A490;YI RADICAL QOT;So;0;ON;;;;;N;;;;;
-A491;YI RADICAL LI;So;0;ON;;;;;N;;;;;
-A492;YI RADICAL KIT;So;0;ON;;;;;N;;;;;
-A493;YI RADICAL NYIP;So;0;ON;;;;;N;;;;;
-A494;YI RADICAL CYP;So;0;ON;;;;;N;;;;;
-A495;YI RADICAL SSI;So;0;ON;;;;;N;;;;;
-A496;YI RADICAL GGOP;So;0;ON;;;;;N;;;;;
-A497;YI RADICAL GEP;So;0;ON;;;;;N;;;;;
-A498;YI RADICAL MI;So;0;ON;;;;;N;;;;;
-A499;YI RADICAL HXIT;So;0;ON;;;;;N;;;;;
-A49A;YI RADICAL LYR;So;0;ON;;;;;N;;;;;
-A49B;YI RADICAL BBUT;So;0;ON;;;;;N;;;;;
-A49C;YI RADICAL MOP;So;0;ON;;;;;N;;;;;
-A49D;YI RADICAL YO;So;0;ON;;;;;N;;;;;
-A49E;YI RADICAL PUT;So;0;ON;;;;;N;;;;;
-A49F;YI RADICAL HXUO;So;0;ON;;;;;N;;;;;
-A4A0;YI RADICAL TAT;So;0;ON;;;;;N;;;;;
-A4A1;YI RADICAL GA;So;0;ON;;;;;N;;;;;
-A4A2;YI RADICAL ZUP;So;0;ON;;;;;N;;;;;
-A4A3;YI RADICAL CYT;So;0;ON;;;;;N;;;;;
-A4A4;YI RADICAL DDUR;So;0;ON;;;;;N;;;;;
-A4A5;YI RADICAL BUR;So;0;ON;;;;;N;;;;;
-A4A6;YI RADICAL GGUO;So;0;ON;;;;;N;;;;;
-A4A7;YI RADICAL NYOP;So;0;ON;;;;;N;;;;;
-A4A8;YI RADICAL TU;So;0;ON;;;;;N;;;;;
-A4A9;YI RADICAL OP;So;0;ON;;;;;N;;;;;
-A4AA;YI RADICAL JJUT;So;0;ON;;;;;N;;;;;
-A4AB;YI RADICAL ZOT;So;0;ON;;;;;N;;;;;
-A4AC;YI RADICAL PYT;So;0;ON;;;;;N;;;;;
-A4AD;YI RADICAL HMO;So;0;ON;;;;;N;;;;;
-A4AE;YI RADICAL YIT;So;0;ON;;;;;N;;;;;
-A4AF;YI RADICAL VUR;So;0;ON;;;;;N;;;;;
-A4B0;YI RADICAL SHY;So;0;ON;;;;;N;;;;;
-A4B1;YI RADICAL VEP;So;0;ON;;;;;N;;;;;
-A4B2;YI RADICAL ZA;So;0;ON;;;;;N;;;;;
-A4B3;YI RADICAL JO;So;0;ON;;;;;N;;;;;
-A4B4;YI RADICAL NZUP;So;0;ON;;;;;N;;;;;
-A4B5;YI RADICAL JJY;So;0;ON;;;;;N;;;;;
-A4B6;YI RADICAL GOT;So;0;ON;;;;;N;;;;;
-A4B7;YI RADICAL JJIE;So;0;ON;;;;;N;;;;;
-A4B8;YI RADICAL WO;So;0;ON;;;;;N;;;;;
-A4B9;YI RADICAL DU;So;0;ON;;;;;N;;;;;
-A4BA;YI RADICAL SHUR;So;0;ON;;;;;N;;;;;
-A4BB;YI RADICAL LIE;So;0;ON;;;;;N;;;;;
-A4BC;YI RADICAL CY;So;0;ON;;;;;N;;;;;
-A4BD;YI RADICAL CUOP;So;0;ON;;;;;N;;;;;
-A4BE;YI RADICAL CIP;So;0;ON;;;;;N;;;;;
-A4BF;YI RADICAL HXOP;So;0;ON;;;;;N;;;;;
-A4C0;YI RADICAL SHAT;So;0;ON;;;;;N;;;;;
-A4C1;YI RADICAL ZUR;So;0;ON;;;;;N;;;;;
-A4C2;YI RADICAL SHOP;So;0;ON;;;;;N;;;;;
-A4C3;YI RADICAL CHE;So;0;ON;;;;;N;;;;;
-A4C4;YI RADICAL ZZIET;So;0;ON;;;;;N;;;;;
-A4C5;YI RADICAL NBIE;So;0;ON;;;;;N;;;;;
-A4C6;YI RADICAL KE;So;0;ON;;;;;N;;;;;
-A4D0;LISU LETTER BA;Lo;0;L;;;;;N;;;;;
-A4D1;LISU LETTER PA;Lo;0;L;;;;;N;;;;;
-A4D2;LISU LETTER PHA;Lo;0;L;;;;;N;;;;;
-A4D3;LISU LETTER DA;Lo;0;L;;;;;N;;;;;
-A4D4;LISU LETTER TA;Lo;0;L;;;;;N;;;;;
-A4D5;LISU LETTER THA;Lo;0;L;;;;;N;;;;;
-A4D6;LISU LETTER GA;Lo;0;L;;;;;N;;;;;
-A4D7;LISU LETTER KA;Lo;0;L;;;;;N;;;;;
-A4D8;LISU LETTER KHA;Lo;0;L;;;;;N;;;;;
-A4D9;LISU LETTER JA;Lo;0;L;;;;;N;;;;;
-A4DA;LISU LETTER CA;Lo;0;L;;;;;N;;;;;
-A4DB;LISU LETTER CHA;Lo;0;L;;;;;N;;;;;
-A4DC;LISU LETTER DZA;Lo;0;L;;;;;N;;;;;
-A4DD;LISU LETTER TSA;Lo;0;L;;;;;N;;;;;
-A4DE;LISU LETTER TSHA;Lo;0;L;;;;;N;;;;;
-A4DF;LISU LETTER MA;Lo;0;L;;;;;N;;;;;
-A4E0;LISU LETTER NA;Lo;0;L;;;;;N;;;;;
-A4E1;LISU LETTER LA;Lo;0;L;;;;;N;;;;;
-A4E2;LISU LETTER SA;Lo;0;L;;;;;N;;;;;
-A4E3;LISU LETTER ZHA;Lo;0;L;;;;;N;;;;;
-A4E4;LISU LETTER ZA;Lo;0;L;;;;;N;;;;;
-A4E5;LISU LETTER NGA;Lo;0;L;;;;;N;;;;;
-A4E6;LISU LETTER HA;Lo;0;L;;;;;N;;;;;
-A4E7;LISU LETTER XA;Lo;0;L;;;;;N;;;;;
-A4E8;LISU LETTER HHA;Lo;0;L;;;;;N;;;;;
-A4E9;LISU LETTER FA;Lo;0;L;;;;;N;;;;;
-A4EA;LISU LETTER WA;Lo;0;L;;;;;N;;;;;
-A4EB;LISU LETTER SHA;Lo;0;L;;;;;N;;;;;
-A4EC;LISU LETTER YA;Lo;0;L;;;;;N;;;;;
-A4ED;LISU LETTER GHA;Lo;0;L;;;;;N;;;;;
-A4EE;LISU LETTER A;Lo;0;L;;;;;N;;;;;
-A4EF;LISU LETTER AE;Lo;0;L;;;;;N;;;;;
-A4F0;LISU LETTER E;Lo;0;L;;;;;N;;;;;
-A4F1;LISU LETTER EU;Lo;0;L;;;;;N;;;;;
-A4F2;LISU LETTER I;Lo;0;L;;;;;N;;;;;
-A4F3;LISU LETTER O;Lo;0;L;;;;;N;;;;;
-A4F4;LISU LETTER U;Lo;0;L;;;;;N;;;;;
-A4F5;LISU LETTER UE;Lo;0;L;;;;;N;;;;;
-A4F6;LISU LETTER UH;Lo;0;L;;;;;N;;;;;
-A4F7;LISU LETTER OE;Lo;0;L;;;;;N;;;;;
-A4F8;LISU LETTER TONE MYA TI;Lm;0;L;;;;;N;;;;;
-A4F9;LISU LETTER TONE NA PO;Lm;0;L;;;;;N;;;;;
-A4FA;LISU LETTER TONE MYA CYA;Lm;0;L;;;;;N;;;;;
-A4FB;LISU LETTER TONE MYA BO;Lm;0;L;;;;;N;;;;;
-A4FC;LISU LETTER TONE MYA NA;Lm;0;L;;;;;N;;;;;
-A4FD;LISU LETTER TONE MYA JEU;Lm;0;L;;;;;N;;;;;
-A4FE;LISU PUNCTUATION COMMA;Po;0;L;;;;;N;;;;;
-A4FF;LISU PUNCTUATION FULL STOP;Po;0;L;;;;;N;;;;;
-A500;VAI SYLLABLE EE;Lo;0;L;;;;;N;;;;;
-A501;VAI SYLLABLE EEN;Lo;0;L;;;;;N;;;;;
-A502;VAI SYLLABLE HEE;Lo;0;L;;;;;N;;;;;
-A503;VAI SYLLABLE WEE;Lo;0;L;;;;;N;;;;;
-A504;VAI SYLLABLE WEEN;Lo;0;L;;;;;N;;;;;
-A505;VAI SYLLABLE PEE;Lo;0;L;;;;;N;;;;;
-A506;VAI SYLLABLE BHEE;Lo;0;L;;;;;N;;;;;
-A507;VAI SYLLABLE BEE;Lo;0;L;;;;;N;;;;;
-A508;VAI SYLLABLE MBEE;Lo;0;L;;;;;N;;;;;
-A509;VAI SYLLABLE KPEE;Lo;0;L;;;;;N;;;;;
-A50A;VAI SYLLABLE MGBEE;Lo;0;L;;;;;N;;;;;
-A50B;VAI SYLLABLE GBEE;Lo;0;L;;;;;N;;;;;
-A50C;VAI SYLLABLE FEE;Lo;0;L;;;;;N;;;;;
-A50D;VAI SYLLABLE VEE;Lo;0;L;;;;;N;;;;;
-A50E;VAI SYLLABLE TEE;Lo;0;L;;;;;N;;;;;
-A50F;VAI SYLLABLE THEE;Lo;0;L;;;;;N;;;;;
-A510;VAI SYLLABLE DHEE;Lo;0;L;;;;;N;;;;;
-A511;VAI SYLLABLE DHHEE;Lo;0;L;;;;;N;;;;;
-A512;VAI SYLLABLE LEE;Lo;0;L;;;;;N;;;;;
-A513;VAI SYLLABLE REE;Lo;0;L;;;;;N;;;;;
-A514;VAI SYLLABLE DEE;Lo;0;L;;;;;N;;;;;
-A515;VAI SYLLABLE NDEE;Lo;0;L;;;;;N;;;;;
-A516;VAI SYLLABLE SEE;Lo;0;L;;;;;N;;;;;
-A517;VAI SYLLABLE SHEE;Lo;0;L;;;;;N;;;;;
-A518;VAI SYLLABLE ZEE;Lo;0;L;;;;;N;;;;;
-A519;VAI SYLLABLE ZHEE;Lo;0;L;;;;;N;;;;;
-A51A;VAI SYLLABLE CEE;Lo;0;L;;;;;N;;;;;
-A51B;VAI SYLLABLE JEE;Lo;0;L;;;;;N;;;;;
-A51C;VAI SYLLABLE NJEE;Lo;0;L;;;;;N;;;;;
-A51D;VAI SYLLABLE YEE;Lo;0;L;;;;;N;;;;;
-A51E;VAI SYLLABLE KEE;Lo;0;L;;;;;N;;;;;
-A51F;VAI SYLLABLE NGGEE;Lo;0;L;;;;;N;;;;;
-A520;VAI SYLLABLE GEE;Lo;0;L;;;;;N;;;;;
-A521;VAI SYLLABLE MEE;Lo;0;L;;;;;N;;;;;
-A522;VAI SYLLABLE NEE;Lo;0;L;;;;;N;;;;;
-A523;VAI SYLLABLE NYEE;Lo;0;L;;;;;N;;;;;
-A524;VAI SYLLABLE I;Lo;0;L;;;;;N;;;;;
-A525;VAI SYLLABLE IN;Lo;0;L;;;;;N;;;;;
-A526;VAI SYLLABLE HI;Lo;0;L;;;;;N;;;;;
-A527;VAI SYLLABLE HIN;Lo;0;L;;;;;N;;;;;
-A528;VAI SYLLABLE WI;Lo;0;L;;;;;N;;;;;
-A529;VAI SYLLABLE WIN;Lo;0;L;;;;;N;;;;;
-A52A;VAI SYLLABLE PI;Lo;0;L;;;;;N;;;;;
-A52B;VAI SYLLABLE BHI;Lo;0;L;;;;;N;;;;;
-A52C;VAI SYLLABLE BI;Lo;0;L;;;;;N;;;;;
-A52D;VAI SYLLABLE MBI;Lo;0;L;;;;;N;;;;;
-A52E;VAI SYLLABLE KPI;Lo;0;L;;;;;N;;;;;
-A52F;VAI SYLLABLE MGBI;Lo;0;L;;;;;N;;;;;
-A530;VAI SYLLABLE GBI;Lo;0;L;;;;;N;;;;;
-A531;VAI SYLLABLE FI;Lo;0;L;;;;;N;;;;;
-A532;VAI SYLLABLE VI;Lo;0;L;;;;;N;;;;;
-A533;VAI SYLLABLE TI;Lo;0;L;;;;;N;;;;;
-A534;VAI SYLLABLE THI;Lo;0;L;;;;;N;;;;;
-A535;VAI SYLLABLE DHI;Lo;0;L;;;;;N;;;;;
-A536;VAI SYLLABLE DHHI;Lo;0;L;;;;;N;;;;;
-A537;VAI SYLLABLE LI;Lo;0;L;;;;;N;;;;;
-A538;VAI SYLLABLE RI;Lo;0;L;;;;;N;;;;;
-A539;VAI SYLLABLE DI;Lo;0;L;;;;;N;;;;;
-A53A;VAI SYLLABLE NDI;Lo;0;L;;;;;N;;;;;
-A53B;VAI SYLLABLE SI;Lo;0;L;;;;;N;;;;;
-A53C;VAI SYLLABLE SHI;Lo;0;L;;;;;N;;;;;
-A53D;VAI SYLLABLE ZI;Lo;0;L;;;;;N;;;;;
-A53E;VAI SYLLABLE ZHI;Lo;0;L;;;;;N;;;;;
-A53F;VAI SYLLABLE CI;Lo;0;L;;;;;N;;;;;
-A540;VAI SYLLABLE JI;Lo;0;L;;;;;N;;;;;
-A541;VAI SYLLABLE NJI;Lo;0;L;;;;;N;;;;;
-A542;VAI SYLLABLE YI;Lo;0;L;;;;;N;;;;;
-A543;VAI SYLLABLE KI;Lo;0;L;;;;;N;;;;;
-A544;VAI SYLLABLE NGGI;Lo;0;L;;;;;N;;;;;
-A545;VAI SYLLABLE GI;Lo;0;L;;;;;N;;;;;
-A546;VAI SYLLABLE MI;Lo;0;L;;;;;N;;;;;
-A547;VAI SYLLABLE NI;Lo;0;L;;;;;N;;;;;
-A548;VAI SYLLABLE NYI;Lo;0;L;;;;;N;;;;;
-A549;VAI SYLLABLE A;Lo;0;L;;;;;N;;;;;
-A54A;VAI SYLLABLE AN;Lo;0;L;;;;;N;;;;;
-A54B;VAI SYLLABLE NGAN;Lo;0;L;;;;;N;;;;;
-A54C;VAI SYLLABLE HA;Lo;0;L;;;;;N;;;;;
-A54D;VAI SYLLABLE HAN;Lo;0;L;;;;;N;;;;;
-A54E;VAI SYLLABLE WA;Lo;0;L;;;;;N;;;;;
-A54F;VAI SYLLABLE WAN;Lo;0;L;;;;;N;;;;;
-A550;VAI SYLLABLE PA;Lo;0;L;;;;;N;;;;;
-A551;VAI SYLLABLE BHA;Lo;0;L;;;;;N;;;;;
-A552;VAI SYLLABLE BA;Lo;0;L;;;;;N;;;;;
-A553;VAI SYLLABLE MBA;Lo;0;L;;;;;N;;;;;
-A554;VAI SYLLABLE KPA;Lo;0;L;;;;;N;;;;;
-A555;VAI SYLLABLE KPAN;Lo;0;L;;;;;N;;;;;
-A556;VAI SYLLABLE MGBA;Lo;0;L;;;;;N;;;;;
-A557;VAI SYLLABLE GBA;Lo;0;L;;;;;N;;;;;
-A558;VAI SYLLABLE FA;Lo;0;L;;;;;N;;;;;
-A559;VAI SYLLABLE VA;Lo;0;L;;;;;N;;;;;
-A55A;VAI SYLLABLE TA;Lo;0;L;;;;;N;;;;;
-A55B;VAI SYLLABLE THA;Lo;0;L;;;;;N;;;;;
-A55C;VAI SYLLABLE DHA;Lo;0;L;;;;;N;;;;;
-A55D;VAI SYLLABLE DHHA;Lo;0;L;;;;;N;;;;;
-A55E;VAI SYLLABLE LA;Lo;0;L;;;;;N;;;;;
-A55F;VAI SYLLABLE RA;Lo;0;L;;;;;N;;;;;
-A560;VAI SYLLABLE DA;Lo;0;L;;;;;N;;;;;
-A561;VAI SYLLABLE NDA;Lo;0;L;;;;;N;;;;;
-A562;VAI SYLLABLE SA;Lo;0;L;;;;;N;;;;;
-A563;VAI SYLLABLE SHA;Lo;0;L;;;;;N;;;;;
-A564;VAI SYLLABLE ZA;Lo;0;L;;;;;N;;;;;
-A565;VAI SYLLABLE ZHA;Lo;0;L;;;;;N;;;;;
-A566;VAI SYLLABLE CA;Lo;0;L;;;;;N;;;;;
-A567;VAI SYLLABLE JA;Lo;0;L;;;;;N;;;;;
-A568;VAI SYLLABLE NJA;Lo;0;L;;;;;N;;;;;
-A569;VAI SYLLABLE YA;Lo;0;L;;;;;N;;;;;
-A56A;VAI SYLLABLE KA;Lo;0;L;;;;;N;;;;;
-A56B;VAI SYLLABLE KAN;Lo;0;L;;;;;N;;;;;
-A56C;VAI SYLLABLE NGGA;Lo;0;L;;;;;N;;;;;
-A56D;VAI SYLLABLE GA;Lo;0;L;;;;;N;;;;;
-A56E;VAI SYLLABLE MA;Lo;0;L;;;;;N;;;;;
-A56F;VAI SYLLABLE NA;Lo;0;L;;;;;N;;;;;
-A570;VAI SYLLABLE NYA;Lo;0;L;;;;;N;;;;;
-A571;VAI SYLLABLE OO;Lo;0;L;;;;;N;;;;;
-A572;VAI SYLLABLE OON;Lo;0;L;;;;;N;;;;;
-A573;VAI SYLLABLE HOO;Lo;0;L;;;;;N;;;;;
-A574;VAI SYLLABLE WOO;Lo;0;L;;;;;N;;;;;
-A575;VAI SYLLABLE WOON;Lo;0;L;;;;;N;;;;;
-A576;VAI SYLLABLE POO;Lo;0;L;;;;;N;;;;;
-A577;VAI SYLLABLE BHOO;Lo;0;L;;;;;N;;;;;
-A578;VAI SYLLABLE BOO;Lo;0;L;;;;;N;;;;;
-A579;VAI SYLLABLE MBOO;Lo;0;L;;;;;N;;;;;
-A57A;VAI SYLLABLE KPOO;Lo;0;L;;;;;N;;;;;
-A57B;VAI SYLLABLE MGBOO;Lo;0;L;;;;;N;;;;;
-A57C;VAI SYLLABLE GBOO;Lo;0;L;;;;;N;;;;;
-A57D;VAI SYLLABLE FOO;Lo;0;L;;;;;N;;;;;
-A57E;VAI SYLLABLE VOO;Lo;0;L;;;;;N;;;;;
-A57F;VAI SYLLABLE TOO;Lo;0;L;;;;;N;;;;;
-A580;VAI SYLLABLE THOO;Lo;0;L;;;;;N;;;;;
-A581;VAI SYLLABLE DHOO;Lo;0;L;;;;;N;;;;;
-A582;VAI SYLLABLE DHHOO;Lo;0;L;;;;;N;;;;;
-A583;VAI SYLLABLE LOO;Lo;0;L;;;;;N;;;;;
-A584;VAI SYLLABLE ROO;Lo;0;L;;;;;N;;;;;
-A585;VAI SYLLABLE DOO;Lo;0;L;;;;;N;;;;;
-A586;VAI SYLLABLE NDOO;Lo;0;L;;;;;N;;;;;
-A587;VAI SYLLABLE SOO;Lo;0;L;;;;;N;;;;;
-A588;VAI SYLLABLE SHOO;Lo;0;L;;;;;N;;;;;
-A589;VAI SYLLABLE ZOO;Lo;0;L;;;;;N;;;;;
-A58A;VAI SYLLABLE ZHOO;Lo;0;L;;;;;N;;;;;
-A58B;VAI SYLLABLE COO;Lo;0;L;;;;;N;;;;;
-A58C;VAI SYLLABLE JOO;Lo;0;L;;;;;N;;;;;
-A58D;VAI SYLLABLE NJOO;Lo;0;L;;;;;N;;;;;
-A58E;VAI SYLLABLE YOO;Lo;0;L;;;;;N;;;;;
-A58F;VAI SYLLABLE KOO;Lo;0;L;;;;;N;;;;;
-A590;VAI SYLLABLE NGGOO;Lo;0;L;;;;;N;;;;;
-A591;VAI SYLLABLE GOO;Lo;0;L;;;;;N;;;;;
-A592;VAI SYLLABLE MOO;Lo;0;L;;;;;N;;;;;
-A593;VAI SYLLABLE NOO;Lo;0;L;;;;;N;;;;;
-A594;VAI SYLLABLE NYOO;Lo;0;L;;;;;N;;;;;
-A595;VAI SYLLABLE U;Lo;0;L;;;;;N;;;;;
-A596;VAI SYLLABLE UN;Lo;0;L;;;;;N;;;;;
-A597;VAI SYLLABLE HU;Lo;0;L;;;;;N;;;;;
-A598;VAI SYLLABLE HUN;Lo;0;L;;;;;N;;;;;
-A599;VAI SYLLABLE WU;Lo;0;L;;;;;N;;;;;
-A59A;VAI SYLLABLE WUN;Lo;0;L;;;;;N;;;;;
-A59B;VAI SYLLABLE PU;Lo;0;L;;;;;N;;;;;
-A59C;VAI SYLLABLE BHU;Lo;0;L;;;;;N;;;;;
-A59D;VAI SYLLABLE BU;Lo;0;L;;;;;N;;;;;
-A59E;VAI SYLLABLE MBU;Lo;0;L;;;;;N;;;;;
-A59F;VAI SYLLABLE KPU;Lo;0;L;;;;;N;;;;;
-A5A0;VAI SYLLABLE MGBU;Lo;0;L;;;;;N;;;;;
-A5A1;VAI SYLLABLE GBU;Lo;0;L;;;;;N;;;;;
-A5A2;VAI SYLLABLE FU;Lo;0;L;;;;;N;;;;;
-A5A3;VAI SYLLABLE VU;Lo;0;L;;;;;N;;;;;
-A5A4;VAI SYLLABLE TU;Lo;0;L;;;;;N;;;;;
-A5A5;VAI SYLLABLE THU;Lo;0;L;;;;;N;;;;;
-A5A6;VAI SYLLABLE DHU;Lo;0;L;;;;;N;;;;;
-A5A7;VAI SYLLABLE DHHU;Lo;0;L;;;;;N;;;;;
-A5A8;VAI SYLLABLE LU;Lo;0;L;;;;;N;;;;;
-A5A9;VAI SYLLABLE RU;Lo;0;L;;;;;N;;;;;
-A5AA;VAI SYLLABLE DU;Lo;0;L;;;;;N;;;;;
-A5AB;VAI SYLLABLE NDU;Lo;0;L;;;;;N;;;;;
-A5AC;VAI SYLLABLE SU;Lo;0;L;;;;;N;;;;;
-A5AD;VAI SYLLABLE SHU;Lo;0;L;;;;;N;;;;;
-A5AE;VAI SYLLABLE ZU;Lo;0;L;;;;;N;;;;;
-A5AF;VAI SYLLABLE ZHU;Lo;0;L;;;;;N;;;;;
-A5B0;VAI SYLLABLE CU;Lo;0;L;;;;;N;;;;;
-A5B1;VAI SYLLABLE JU;Lo;0;L;;;;;N;;;;;
-A5B2;VAI SYLLABLE NJU;Lo;0;L;;;;;N;;;;;
-A5B3;VAI SYLLABLE YU;Lo;0;L;;;;;N;;;;;
-A5B4;VAI SYLLABLE KU;Lo;0;L;;;;;N;;;;;
-A5B5;VAI SYLLABLE NGGU;Lo;0;L;;;;;N;;;;;
-A5B6;VAI SYLLABLE GU;Lo;0;L;;;;;N;;;;;
-A5B7;VAI SYLLABLE MU;Lo;0;L;;;;;N;;;;;
-A5B8;VAI SYLLABLE NU;Lo;0;L;;;;;N;;;;;
-A5B9;VAI SYLLABLE NYU;Lo;0;L;;;;;N;;;;;
-A5BA;VAI SYLLABLE O;Lo;0;L;;;;;N;;;;;
-A5BB;VAI SYLLABLE ON;Lo;0;L;;;;;N;;;;;
-A5BC;VAI SYLLABLE NGON;Lo;0;L;;;;;N;;;;;
-A5BD;VAI SYLLABLE HO;Lo;0;L;;;;;N;;;;;
-A5BE;VAI SYLLABLE HON;Lo;0;L;;;;;N;;;;;
-A5BF;VAI SYLLABLE WO;Lo;0;L;;;;;N;;;;;
-A5C0;VAI SYLLABLE WON;Lo;0;L;;;;;N;;;;;
-A5C1;VAI SYLLABLE PO;Lo;0;L;;;;;N;;;;;
-A5C2;VAI SYLLABLE BHO;Lo;0;L;;;;;N;;;;;
-A5C3;VAI SYLLABLE BO;Lo;0;L;;;;;N;;;;;
-A5C4;VAI SYLLABLE MBO;Lo;0;L;;;;;N;;;;;
-A5C5;VAI SYLLABLE KPO;Lo;0;L;;;;;N;;;;;
-A5C6;VAI SYLLABLE MGBO;Lo;0;L;;;;;N;;;;;
-A5C7;VAI SYLLABLE GBO;Lo;0;L;;;;;N;;;;;
-A5C8;VAI SYLLABLE GBON;Lo;0;L;;;;;N;;;;;
-A5C9;VAI SYLLABLE FO;Lo;0;L;;;;;N;;;;;
-A5CA;VAI SYLLABLE VO;Lo;0;L;;;;;N;;;;;
-A5CB;VAI SYLLABLE TO;Lo;0;L;;;;;N;;;;;
-A5CC;VAI SYLLABLE THO;Lo;0;L;;;;;N;;;;;
-A5CD;VAI SYLLABLE DHO;Lo;0;L;;;;;N;;;;;
-A5CE;VAI SYLLABLE DHHO;Lo;0;L;;;;;N;;;;;
-A5CF;VAI SYLLABLE LO;Lo;0;L;;;;;N;;;;;
-A5D0;VAI SYLLABLE RO;Lo;0;L;;;;;N;;;;;
-A5D1;VAI SYLLABLE DO;Lo;0;L;;;;;N;;;;;
-A5D2;VAI SYLLABLE NDO;Lo;0;L;;;;;N;;;;;
-A5D3;VAI SYLLABLE SO;Lo;0;L;;;;;N;;;;;
-A5D4;VAI SYLLABLE SHO;Lo;0;L;;;;;N;;;;;
-A5D5;VAI SYLLABLE ZO;Lo;0;L;;;;;N;;;;;
-A5D6;VAI SYLLABLE ZHO;Lo;0;L;;;;;N;;;;;
-A5D7;VAI SYLLABLE CO;Lo;0;L;;;;;N;;;;;
-A5D8;VAI SYLLABLE JO;Lo;0;L;;;;;N;;;;;
-A5D9;VAI SYLLABLE NJO;Lo;0;L;;;;;N;;;;;
-A5DA;VAI SYLLABLE YO;Lo;0;L;;;;;N;;;;;
-A5DB;VAI SYLLABLE KO;Lo;0;L;;;;;N;;;;;
-A5DC;VAI SYLLABLE NGGO;Lo;0;L;;;;;N;;;;;
-A5DD;VAI SYLLABLE GO;Lo;0;L;;;;;N;;;;;
-A5DE;VAI SYLLABLE MO;Lo;0;L;;;;;N;;;;;
-A5DF;VAI SYLLABLE NO;Lo;0;L;;;;;N;;;;;
-A5E0;VAI SYLLABLE NYO;Lo;0;L;;;;;N;;;;;
-A5E1;VAI SYLLABLE E;Lo;0;L;;;;;N;;;;;
-A5E2;VAI SYLLABLE EN;Lo;0;L;;;;;N;;;;;
-A5E3;VAI SYLLABLE NGEN;Lo;0;L;;;;;N;;;;;
-A5E4;VAI SYLLABLE HE;Lo;0;L;;;;;N;;;;;
-A5E5;VAI SYLLABLE HEN;Lo;0;L;;;;;N;;;;;
-A5E6;VAI SYLLABLE WE;Lo;0;L;;;;;N;;;;;
-A5E7;VAI SYLLABLE WEN;Lo;0;L;;;;;N;;;;;
-A5E8;VAI SYLLABLE PE;Lo;0;L;;;;;N;;;;;
-A5E9;VAI SYLLABLE BHE;Lo;0;L;;;;;N;;;;;
-A5EA;VAI SYLLABLE BE;Lo;0;L;;;;;N;;;;;
-A5EB;VAI SYLLABLE MBE;Lo;0;L;;;;;N;;;;;
-A5EC;VAI SYLLABLE KPE;Lo;0;L;;;;;N;;;;;
-A5ED;VAI SYLLABLE KPEN;Lo;0;L;;;;;N;;;;;
-A5EE;VAI SYLLABLE MGBE;Lo;0;L;;;;;N;;;;;
-A5EF;VAI SYLLABLE GBE;Lo;0;L;;;;;N;;;;;
-A5F0;VAI SYLLABLE GBEN;Lo;0;L;;;;;N;;;;;
-A5F1;VAI SYLLABLE FE;Lo;0;L;;;;;N;;;;;
-A5F2;VAI SYLLABLE VE;Lo;0;L;;;;;N;;;;;
-A5F3;VAI SYLLABLE TE;Lo;0;L;;;;;N;;;;;
-A5F4;VAI SYLLABLE THE;Lo;0;L;;;;;N;;;;;
-A5F5;VAI SYLLABLE DHE;Lo;0;L;;;;;N;;;;;
-A5F6;VAI SYLLABLE DHHE;Lo;0;L;;;;;N;;;;;
-A5F7;VAI SYLLABLE LE;Lo;0;L;;;;;N;;;;;
-A5F8;VAI SYLLABLE RE;Lo;0;L;;;;;N;;;;;
-A5F9;VAI SYLLABLE DE;Lo;0;L;;;;;N;;;;;
-A5FA;VAI SYLLABLE NDE;Lo;0;L;;;;;N;;;;;
-A5FB;VAI SYLLABLE SE;Lo;0;L;;;;;N;;;;;
-A5FC;VAI SYLLABLE SHE;Lo;0;L;;;;;N;;;;;
-A5FD;VAI SYLLABLE ZE;Lo;0;L;;;;;N;;;;;
-A5FE;VAI SYLLABLE ZHE;Lo;0;L;;;;;N;;;;;
-A5FF;VAI SYLLABLE CE;Lo;0;L;;;;;N;;;;;
-A600;VAI SYLLABLE JE;Lo;0;L;;;;;N;;;;;
-A601;VAI SYLLABLE NJE;Lo;0;L;;;;;N;;;;;
-A602;VAI SYLLABLE YE;Lo;0;L;;;;;N;;;;;
-A603;VAI SYLLABLE KE;Lo;0;L;;;;;N;;;;;
-A604;VAI SYLLABLE NGGE;Lo;0;L;;;;;N;;;;;
-A605;VAI SYLLABLE NGGEN;Lo;0;L;;;;;N;;;;;
-A606;VAI SYLLABLE GE;Lo;0;L;;;;;N;;;;;
-A607;VAI SYLLABLE GEN;Lo;0;L;;;;;N;;;;;
-A608;VAI SYLLABLE ME;Lo;0;L;;;;;N;;;;;
-A609;VAI SYLLABLE NE;Lo;0;L;;;;;N;;;;;
-A60A;VAI SYLLABLE NYE;Lo;0;L;;;;;N;;;;;
-A60B;VAI SYLLABLE NG;Lo;0;L;;;;;N;;;;;
-A60C;VAI SYLLABLE LENGTHENER;Lm;0;L;;;;;N;;;;;
-A60D;VAI COMMA;Po;0;ON;;;;;N;;;;;
-A60E;VAI FULL STOP;Po;0;ON;;;;;N;;;;;
-A60F;VAI QUESTION MARK;Po;0;ON;;;;;N;;;;;
-A610;VAI SYLLABLE NDOLE FA;Lo;0;L;;;;;N;;;;;
-A611;VAI SYLLABLE NDOLE KA;Lo;0;L;;;;;N;;;;;
-A612;VAI SYLLABLE NDOLE SOO;Lo;0;L;;;;;N;;;;;
-A613;VAI SYMBOL FEENG;Lo;0;L;;;;;N;;;;;
-A614;VAI SYMBOL KEENG;Lo;0;L;;;;;N;;;;;
-A615;VAI SYMBOL TING;Lo;0;L;;;;;N;;;;;
-A616;VAI SYMBOL NII;Lo;0;L;;;;;N;;;;;
-A617;VAI SYMBOL BANG;Lo;0;L;;;;;N;;;;;
-A618;VAI SYMBOL FAA;Lo;0;L;;;;;N;;;;;
-A619;VAI SYMBOL TAA;Lo;0;L;;;;;N;;;;;
-A61A;VAI SYMBOL DANG;Lo;0;L;;;;;N;;;;;
-A61B;VAI SYMBOL DOONG;Lo;0;L;;;;;N;;;;;
-A61C;VAI SYMBOL KUNG;Lo;0;L;;;;;N;;;;;
-A61D;VAI SYMBOL TONG;Lo;0;L;;;;;N;;;;;
-A61E;VAI SYMBOL DO-O;Lo;0;L;;;;;N;;;;;
-A61F;VAI SYMBOL JONG;Lo;0;L;;;;;N;;;;;
-A620;VAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-A621;VAI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-A622;VAI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-A623;VAI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-A624;VAI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-A625;VAI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-A626;VAI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-A627;VAI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-A628;VAI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-A629;VAI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-A62A;VAI SYLLABLE NDOLE MA;Lo;0;L;;;;;N;;;;;
-A62B;VAI SYLLABLE NDOLE DO;Lo;0;L;;;;;N;;;;;
-A640;CYRILLIC CAPITAL LETTER ZEMLYA;Lu;0;L;;;;;N;;;;A641;
-A641;CYRILLIC SMALL LETTER ZEMLYA;Ll;0;L;;;;;N;;;A640;;A640
-A642;CYRILLIC CAPITAL LETTER DZELO;Lu;0;L;;;;;N;;;;A643;
-A643;CYRILLIC SMALL LETTER DZELO;Ll;0;L;;;;;N;;;A642;;A642
-A644;CYRILLIC CAPITAL LETTER REVERSED DZE;Lu;0;L;;;;;N;;;;A645;
-A645;CYRILLIC SMALL LETTER REVERSED DZE;Ll;0;L;;;;;N;;;A644;;A644
-A646;CYRILLIC CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;A647;
-A647;CYRILLIC SMALL LETTER IOTA;Ll;0;L;;;;;N;;;A646;;A646
-A648;CYRILLIC CAPITAL LETTER DJERV;Lu;0;L;;;;;N;;;;A649;
-A649;CYRILLIC SMALL LETTER DJERV;Ll;0;L;;;;;N;;;A648;;A648
-A64A;CYRILLIC CAPITAL LETTER MONOGRAPH UK;Lu;0;L;;;;;N;;;;A64B;
-A64B;CYRILLIC SMALL LETTER MONOGRAPH UK;Ll;0;L;;;;;N;;;A64A;;A64A
-A64C;CYRILLIC CAPITAL LETTER BROAD OMEGA;Lu;0;L;;;;;N;;;;A64D;
-A64D;CYRILLIC SMALL LETTER BROAD OMEGA;Ll;0;L;;;;;N;;;A64C;;A64C
-A64E;CYRILLIC CAPITAL LETTER NEUTRAL YER;Lu;0;L;;;;;N;;;;A64F;
-A64F;CYRILLIC SMALL LETTER NEUTRAL YER;Ll;0;L;;;;;N;;;A64E;;A64E
-A650;CYRILLIC CAPITAL LETTER YERU WITH BACK YER;Lu;0;L;;;;;N;;;;A651;
-A651;CYRILLIC SMALL LETTER YERU WITH BACK YER;Ll;0;L;;;;;N;;;A650;;A650
-A652;CYRILLIC CAPITAL LETTER IOTIFIED YAT;Lu;0;L;;;;;N;;;;A653;
-A653;CYRILLIC SMALL LETTER IOTIFIED YAT;Ll;0;L;;;;;N;;;A652;;A652
-A654;CYRILLIC CAPITAL LETTER REVERSED YU;Lu;0;L;;;;;N;;;;A655;
-A655;CYRILLIC SMALL LETTER REVERSED YU;Ll;0;L;;;;;N;;;A654;;A654
-A656;CYRILLIC CAPITAL LETTER IOTIFIED A;Lu;0;L;;;;;N;;;;A657;
-A657;CYRILLIC SMALL LETTER IOTIFIED A;Ll;0;L;;;;;N;;;A656;;A656
-A658;CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS;Lu;0;L;;;;;N;;;;A659;
-A659;CYRILLIC SMALL LETTER CLOSED LITTLE YUS;Ll;0;L;;;;;N;;;A658;;A658
-A65A;CYRILLIC CAPITAL LETTER BLENDED YUS;Lu;0;L;;;;;N;;;;A65B;
-A65B;CYRILLIC SMALL LETTER BLENDED YUS;Ll;0;L;;;;;N;;;A65A;;A65A
-A65C;CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS;Lu;0;L;;;;;N;;;;A65D;
-A65D;CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS;Ll;0;L;;;;;N;;;A65C;;A65C
-A65E;CYRILLIC CAPITAL LETTER YN;Lu;0;L;;;;;N;;;;A65F;
-A65F;CYRILLIC SMALL LETTER YN;Ll;0;L;;;;;N;;;A65E;;A65E
-A660;CYRILLIC CAPITAL LETTER REVERSED TSE;Lu;0;L;;;;;N;;;;A661;
-A661;CYRILLIC SMALL LETTER REVERSED TSE;Ll;0;L;;;;;N;;;A660;;A660
-A662;CYRILLIC CAPITAL LETTER SOFT DE;Lu;0;L;;;;;N;;;;A663;
-A663;CYRILLIC SMALL LETTER SOFT DE;Ll;0;L;;;;;N;;;A662;;A662
-A664;CYRILLIC CAPITAL LETTER SOFT EL;Lu;0;L;;;;;N;;;;A665;
-A665;CYRILLIC SMALL LETTER SOFT EL;Ll;0;L;;;;;N;;;A664;;A664
-A666;CYRILLIC CAPITAL LETTER SOFT EM;Lu;0;L;;;;;N;;;;A667;
-A667;CYRILLIC SMALL LETTER SOFT EM;Ll;0;L;;;;;N;;;A666;;A666
-A668;CYRILLIC CAPITAL LETTER MONOCULAR O;Lu;0;L;;;;;N;;;;A669;
-A669;CYRILLIC SMALL LETTER MONOCULAR O;Ll;0;L;;;;;N;;;A668;;A668
-A66A;CYRILLIC CAPITAL LETTER BINOCULAR O;Lu;0;L;;;;;N;;;;A66B;
-A66B;CYRILLIC SMALL LETTER BINOCULAR O;Ll;0;L;;;;;N;;;A66A;;A66A
-A66C;CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O;Lu;0;L;;;;;N;;;;A66D;
-A66D;CYRILLIC SMALL LETTER DOUBLE MONOCULAR O;Ll;0;L;;;;;N;;;A66C;;A66C
-A66E;CYRILLIC LETTER MULTIOCULAR O;Lo;0;L;;;;;N;;;;;
-A66F;COMBINING CYRILLIC VZMET;Mn;230;NSM;;;;;N;;;;;
-A670;COMBINING CYRILLIC TEN MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
-A671;COMBINING CYRILLIC HUNDRED MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
-A672;COMBINING CYRILLIC THOUSAND MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
-A673;SLAVONIC ASTERISK;Po;0;ON;;;;;N;;;;;
-A674;COMBINING CYRILLIC LETTER UKRAINIAN IE;Mn;230;NSM;;;;;N;;;;;
-A675;COMBINING CYRILLIC LETTER I;Mn;230;NSM;;;;;N;;;;;
-A676;COMBINING CYRILLIC LETTER YI;Mn;230;NSM;;;;;N;;;;;
-A677;COMBINING CYRILLIC LETTER U;Mn;230;NSM;;;;;N;;;;;
-A678;COMBINING CYRILLIC LETTER HARD SIGN;Mn;230;NSM;;;;;N;;;;;
-A679;COMBINING CYRILLIC LETTER YERU;Mn;230;NSM;;;;;N;;;;;
-A67A;COMBINING CYRILLIC LETTER SOFT SIGN;Mn;230;NSM;;;;;N;;;;;
-A67B;COMBINING CYRILLIC LETTER OMEGA;Mn;230;NSM;;;;;N;;;;;
-A67C;COMBINING CYRILLIC KAVYKA;Mn;230;NSM;;;;;N;;;;;
-A67D;COMBINING CYRILLIC PAYEROK;Mn;230;NSM;;;;;N;;;;;
-A67E;CYRILLIC KAVYKA;Po;0;ON;;;;;N;;;;;
-A67F;CYRILLIC PAYEROK;Lm;0;ON;;;;;N;;;;;
-A680;CYRILLIC CAPITAL LETTER DWE;Lu;0;L;;;;;N;;;;A681;
-A681;CYRILLIC SMALL LETTER DWE;Ll;0;L;;;;;N;;;A680;;A680
-A682;CYRILLIC CAPITAL LETTER DZWE;Lu;0;L;;;;;N;;;;A683;
-A683;CYRILLIC SMALL LETTER DZWE;Ll;0;L;;;;;N;;;A682;;A682
-A684;CYRILLIC CAPITAL LETTER ZHWE;Lu;0;L;;;;;N;;;;A685;
-A685;CYRILLIC SMALL LETTER ZHWE;Ll;0;L;;;;;N;;;A684;;A684
-A686;CYRILLIC CAPITAL LETTER CCHE;Lu;0;L;;;;;N;;;;A687;
-A687;CYRILLIC SMALL LETTER CCHE;Ll;0;L;;;;;N;;;A686;;A686
-A688;CYRILLIC CAPITAL LETTER DZZE;Lu;0;L;;;;;N;;;;A689;
-A689;CYRILLIC SMALL LETTER DZZE;Ll;0;L;;;;;N;;;A688;;A688
-A68A;CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK;Lu;0;L;;;;;N;;;;A68B;
-A68B;CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK;Ll;0;L;;;;;N;;;A68A;;A68A
-A68C;CYRILLIC CAPITAL LETTER TWE;Lu;0;L;;;;;N;;;;A68D;
-A68D;CYRILLIC SMALL LETTER TWE;Ll;0;L;;;;;N;;;A68C;;A68C
-A68E;CYRILLIC CAPITAL LETTER TSWE;Lu;0;L;;;;;N;;;;A68F;
-A68F;CYRILLIC SMALL LETTER TSWE;Ll;0;L;;;;;N;;;A68E;;A68E
-A690;CYRILLIC CAPITAL LETTER TSSE;Lu;0;L;;;;;N;;;;A691;
-A691;CYRILLIC SMALL LETTER TSSE;Ll;0;L;;;;;N;;;A690;;A690
-A692;CYRILLIC CAPITAL LETTER TCHE;Lu;0;L;;;;;N;;;;A693;
-A693;CYRILLIC SMALL LETTER TCHE;Ll;0;L;;;;;N;;;A692;;A692
-A694;CYRILLIC CAPITAL LETTER HWE;Lu;0;L;;;;;N;;;;A695;
-A695;CYRILLIC SMALL LETTER HWE;Ll;0;L;;;;;N;;;A694;;A694
-A696;CYRILLIC CAPITAL LETTER SHWE;Lu;0;L;;;;;N;;;;A697;
-A697;CYRILLIC SMALL LETTER SHWE;Ll;0;L;;;;;N;;;A696;;A696
-A69F;COMBINING CYRILLIC LETTER IOTIFIED E;Mn;230;NSM;;;;;N;;;;;
-A6A0;BAMUM LETTER A;Lo;0;L;;;;;N;;;;;
-A6A1;BAMUM LETTER KA;Lo;0;L;;;;;N;;;;;
-A6A2;BAMUM LETTER U;Lo;0;L;;;;;N;;;;;
-A6A3;BAMUM LETTER KU;Lo;0;L;;;;;N;;;;;
-A6A4;BAMUM LETTER EE;Lo;0;L;;;;;N;;;;;
-A6A5;BAMUM LETTER REE;Lo;0;L;;;;;N;;;;;
-A6A6;BAMUM LETTER TAE;Lo;0;L;;;;;N;;;;;
-A6A7;BAMUM LETTER O;Lo;0;L;;;;;N;;;;;
-A6A8;BAMUM LETTER NYI;Lo;0;L;;;;;N;;;;;
-A6A9;BAMUM LETTER I;Lo;0;L;;;;;N;;;;;
-A6AA;BAMUM LETTER LA;Lo;0;L;;;;;N;;;;;
-A6AB;BAMUM LETTER PA;Lo;0;L;;;;;N;;;;;
-A6AC;BAMUM LETTER RII;Lo;0;L;;;;;N;;;;;
-A6AD;BAMUM LETTER RIEE;Lo;0;L;;;;;N;;;;;
-A6AE;BAMUM LETTER LEEEE;Lo;0;L;;;;;N;;;;;
-A6AF;BAMUM LETTER MEEEE;Lo;0;L;;;;;N;;;;;
-A6B0;BAMUM LETTER TAA;Lo;0;L;;;;;N;;;;;
-A6B1;BAMUM LETTER NDAA;Lo;0;L;;;;;N;;;;;
-A6B2;BAMUM LETTER NJAEM;Lo;0;L;;;;;N;;;;;
-A6B3;BAMUM LETTER M;Lo;0;L;;;;;N;;;;;
-A6B4;BAMUM LETTER SUU;Lo;0;L;;;;;N;;;;;
-A6B5;BAMUM LETTER MU;Lo;0;L;;;;;N;;;;;
-A6B6;BAMUM LETTER SHII;Lo;0;L;;;;;N;;;;;
-A6B7;BAMUM LETTER SI;Lo;0;L;;;;;N;;;;;
-A6B8;BAMUM LETTER SHEUX;Lo;0;L;;;;;N;;;;;
-A6B9;BAMUM LETTER SEUX;Lo;0;L;;;;;N;;;;;
-A6BA;BAMUM LETTER KYEE;Lo;0;L;;;;;N;;;;;
-A6BB;BAMUM LETTER KET;Lo;0;L;;;;;N;;;;;
-A6BC;BAMUM LETTER NUAE;Lo;0;L;;;;;N;;;;;
-A6BD;BAMUM LETTER NU;Lo;0;L;;;;;N;;;;;
-A6BE;BAMUM LETTER NJUAE;Lo;0;L;;;;;N;;;;;
-A6BF;BAMUM LETTER YOQ;Lo;0;L;;;;;N;;;;;
-A6C0;BAMUM LETTER SHU;Lo;0;L;;;;;N;;;;;
-A6C1;BAMUM LETTER YUQ;Lo;0;L;;;;;N;;;;;
-A6C2;BAMUM LETTER YA;Lo;0;L;;;;;N;;;;;
-A6C3;BAMUM LETTER NSHA;Lo;0;L;;;;;N;;;;;
-A6C4;BAMUM LETTER KEUX;Lo;0;L;;;;;N;;;;;
-A6C5;BAMUM LETTER PEUX;Lo;0;L;;;;;N;;;;;
-A6C6;BAMUM LETTER NJEE;Lo;0;L;;;;;N;;;;;
-A6C7;BAMUM LETTER NTEE;Lo;0;L;;;;;N;;;;;
-A6C8;BAMUM LETTER PUE;Lo;0;L;;;;;N;;;;;
-A6C9;BAMUM LETTER WUE;Lo;0;L;;;;;N;;;;;
-A6CA;BAMUM LETTER PEE;Lo;0;L;;;;;N;;;;;
-A6CB;BAMUM LETTER FEE;Lo;0;L;;;;;N;;;;;
-A6CC;BAMUM LETTER RU;Lo;0;L;;;;;N;;;;;
-A6CD;BAMUM LETTER LU;Lo;0;L;;;;;N;;;;;
-A6CE;BAMUM LETTER MI;Lo;0;L;;;;;N;;;;;
-A6CF;BAMUM LETTER NI;Lo;0;L;;;;;N;;;;;
-A6D0;BAMUM LETTER REUX;Lo;0;L;;;;;N;;;;;
-A6D1;BAMUM LETTER RAE;Lo;0;L;;;;;N;;;;;
-A6D2;BAMUM LETTER KEN;Lo;0;L;;;;;N;;;;;
-A6D3;BAMUM LETTER NGKWAEN;Lo;0;L;;;;;N;;;;;
-A6D4;BAMUM LETTER NGGA;Lo;0;L;;;;;N;;;;;
-A6D5;BAMUM LETTER NGA;Lo;0;L;;;;;N;;;;;
-A6D6;BAMUM LETTER SHO;Lo;0;L;;;;;N;;;;;
-A6D7;BAMUM LETTER PUAE;Lo;0;L;;;;;N;;;;;
-A6D8;BAMUM LETTER FU;Lo;0;L;;;;;N;;;;;
-A6D9;BAMUM LETTER FOM;Lo;0;L;;;;;N;;;;;
-A6DA;BAMUM LETTER WA;Lo;0;L;;;;;N;;;;;
-A6DB;BAMUM LETTER NA;Lo;0;L;;;;;N;;;;;
-A6DC;BAMUM LETTER LI;Lo;0;L;;;;;N;;;;;
-A6DD;BAMUM LETTER PI;Lo;0;L;;;;;N;;;;;
-A6DE;BAMUM LETTER LOQ;Lo;0;L;;;;;N;;;;;
-A6DF;BAMUM LETTER KO;Lo;0;L;;;;;N;;;;;
-A6E0;BAMUM LETTER MBEN;Lo;0;L;;;;;N;;;;;
-A6E1;BAMUM LETTER REN;Lo;0;L;;;;;N;;;;;
-A6E2;BAMUM LETTER MEN;Lo;0;L;;;;;N;;;;;
-A6E3;BAMUM LETTER MA;Lo;0;L;;;;;N;;;;;
-A6E4;BAMUM LETTER TI;Lo;0;L;;;;;N;;;;;
-A6E5;BAMUM LETTER KI;Lo;0;L;;;;;N;;;;;
-A6E6;BAMUM LETTER MO;Nl;0;L;;;;1;N;;;;;
-A6E7;BAMUM LETTER MBAA;Nl;0;L;;;;2;N;;;;;
-A6E8;BAMUM LETTER TET;Nl;0;L;;;;3;N;;;;;
-A6E9;BAMUM LETTER KPA;Nl;0;L;;;;4;N;;;;;
-A6EA;BAMUM LETTER TEN;Nl;0;L;;;;5;N;;;;;
-A6EB;BAMUM LETTER NTUU;Nl;0;L;;;;6;N;;;;;
-A6EC;BAMUM LETTER SAMBA;Nl;0;L;;;;7;N;;;;;
-A6ED;BAMUM LETTER FAAMAE;Nl;0;L;;;;8;N;;;;;
-A6EE;BAMUM LETTER KOVUU;Nl;0;L;;;;9;N;;;;;
-A6EF;BAMUM LETTER KOGHOM;Nl;0;L;;;;0;N;;;;;
-A6F0;BAMUM COMBINING MARK KOQNDON;Mn;230;NSM;;;;;N;;;;;
-A6F1;BAMUM COMBINING MARK TUKWENTIS;Mn;230;NSM;;;;;N;;;;;
-A6F2;BAMUM NJAEMLI;Po;0;L;;;;;N;;;;;
-A6F3;BAMUM FULL STOP;Po;0;L;;;;;N;;;;;
-A6F4;BAMUM COLON;Po;0;L;;;;;N;;;;;
-A6F5;BAMUM COMMA;Po;0;L;;;;;N;;;;;
-A6F6;BAMUM SEMICOLON;Po;0;L;;;;;N;;;;;
-A6F7;BAMUM QUESTION MARK;Po;0;L;;;;;N;;;;;
-A700;MODIFIER LETTER CHINESE TONE YIN PING;Sk;0;ON;;;;;N;;;;;
-A701;MODIFIER LETTER CHINESE TONE YANG PING;Sk;0;ON;;;;;N;;;;;
-A702;MODIFIER LETTER CHINESE TONE YIN SHANG;Sk;0;ON;;;;;N;;;;;
-A703;MODIFIER LETTER CHINESE TONE YANG SHANG;Sk;0;ON;;;;;N;;;;;
-A704;MODIFIER LETTER CHINESE TONE YIN QU;Sk;0;ON;;;;;N;;;;;
-A705;MODIFIER LETTER CHINESE TONE YANG QU;Sk;0;ON;;;;;N;;;;;
-A706;MODIFIER LETTER CHINESE TONE YIN RU;Sk;0;ON;;;;;N;;;;;
-A707;MODIFIER LETTER CHINESE TONE YANG RU;Sk;0;ON;;;;;N;;;;;
-A708;MODIFIER LETTER EXTRA-HIGH DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
-A709;MODIFIER LETTER HIGH DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
-A70A;MODIFIER LETTER MID DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
-A70B;MODIFIER LETTER LOW DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
-A70C;MODIFIER LETTER EXTRA-LOW DOTTED TONE BAR;Sk;0;ON;;;;;N;;;;;
-A70D;MODIFIER LETTER EXTRA-HIGH DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
-A70E;MODIFIER LETTER HIGH DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
-A70F;MODIFIER LETTER MID DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
-A710;MODIFIER LETTER LOW DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
-A711;MODIFIER LETTER EXTRA-LOW DOTTED LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
-A712;MODIFIER LETTER EXTRA-HIGH LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
-A713;MODIFIER LETTER HIGH LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
-A714;MODIFIER LETTER MID LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
-A715;MODIFIER LETTER LOW LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
-A716;MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR;Sk;0;ON;;;;;N;;;;;
-A717;MODIFIER LETTER DOT VERTICAL BAR;Lm;0;ON;;;;;N;;;;;
-A718;MODIFIER LETTER DOT SLASH;Lm;0;ON;;;;;N;;;;;
-A719;MODIFIER LETTER DOT HORIZONTAL BAR;Lm;0;ON;;;;;N;;;;;
-A71A;MODIFIER LETTER LOWER RIGHT CORNER ANGLE;Lm;0;ON;;;;;N;;;;;
-A71B;MODIFIER LETTER RAISED UP ARROW;Lm;0;ON;;;;;N;;;;;
-A71C;MODIFIER LETTER RAISED DOWN ARROW;Lm;0;ON;;;;;N;;;;;
-A71D;MODIFIER LETTER RAISED EXCLAMATION MARK;Lm;0;ON;;;;;N;;;;;
-A71E;MODIFIER LETTER RAISED INVERTED EXCLAMATION MARK;Lm;0;ON;;;;;N;;;;;
-A71F;MODIFIER LETTER LOW INVERTED EXCLAMATION MARK;Lm;0;ON;;;;;N;;;;;
-A720;MODIFIER LETTER STRESS AND HIGH TONE;Sk;0;ON;;;;;N;;;;;
-A721;MODIFIER LETTER STRESS AND LOW TONE;Sk;0;ON;;;;;N;;;;;
-A722;LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF;Lu;0;L;;;;;N;;;;A723;
-A723;LATIN SMALL LETTER EGYPTOLOGICAL ALEF;Ll;0;L;;;;;N;;;A722;;A722
-A724;LATIN CAPITAL LETTER EGYPTOLOGICAL AIN;Lu;0;L;;;;;N;;;;A725;
-A725;LATIN SMALL LETTER EGYPTOLOGICAL AIN;Ll;0;L;;;;;N;;;A724;;A724
-A726;LATIN CAPITAL LETTER HENG;Lu;0;L;;;;;N;;;;A727;
-A727;LATIN SMALL LETTER HENG;Ll;0;L;;;;;N;;;A726;;A726
-A728;LATIN CAPITAL LETTER TZ;Lu;0;L;;;;;N;;;;A729;
-A729;LATIN SMALL LETTER TZ;Ll;0;L;;;;;N;;;A728;;A728
-A72A;LATIN CAPITAL LETTER TRESILLO;Lu;0;L;;;;;N;;;;A72B;
-A72B;LATIN SMALL LETTER TRESILLO;Ll;0;L;;;;;N;;;A72A;;A72A
-A72C;LATIN CAPITAL LETTER CUATRILLO;Lu;0;L;;;;;N;;;;A72D;
-A72D;LATIN SMALL LETTER CUATRILLO;Ll;0;L;;;;;N;;;A72C;;A72C
-A72E;LATIN CAPITAL LETTER CUATRILLO WITH COMMA;Lu;0;L;;;;;N;;;;A72F;
-A72F;LATIN SMALL LETTER CUATRILLO WITH COMMA;Ll;0;L;;;;;N;;;A72E;;A72E
-A730;LATIN LETTER SMALL CAPITAL F;Ll;0;L;;;;;N;;;;;
-A731;LATIN LETTER SMALL CAPITAL S;Ll;0;L;;;;;N;;;;;
-A732;LATIN CAPITAL LETTER AA;Lu;0;L;;;;;N;;;;A733;
-A733;LATIN SMALL LETTER AA;Ll;0;L;;;;;N;;;A732;;A732
-A734;LATIN CAPITAL LETTER AO;Lu;0;L;;;;;N;;;;A735;
-A735;LATIN SMALL LETTER AO;Ll;0;L;;;;;N;;;A734;;A734
-A736;LATIN CAPITAL LETTER AU;Lu;0;L;;;;;N;;;;A737;
-A737;LATIN SMALL LETTER AU;Ll;0;L;;;;;N;;;A736;;A736
-A738;LATIN CAPITAL LETTER AV;Lu;0;L;;;;;N;;;;A739;
-A739;LATIN SMALL LETTER AV;Ll;0;L;;;;;N;;;A738;;A738
-A73A;LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR;Lu;0;L;;;;;N;;;;A73B;
-A73B;LATIN SMALL LETTER AV WITH HORIZONTAL BAR;Ll;0;L;;;;;N;;;A73A;;A73A
-A73C;LATIN CAPITAL LETTER AY;Lu;0;L;;;;;N;;;;A73D;
-A73D;LATIN SMALL LETTER AY;Ll;0;L;;;;;N;;;A73C;;A73C
-A73E;LATIN CAPITAL LETTER REVERSED C WITH DOT;Lu;0;L;;;;;N;;;;A73F;
-A73F;LATIN SMALL LETTER REVERSED C WITH DOT;Ll;0;L;;;;;N;;;A73E;;A73E
-A740;LATIN CAPITAL LETTER K WITH STROKE;Lu;0;L;;;;;N;;;;A741;
-A741;LATIN SMALL LETTER K WITH STROKE;Ll;0;L;;;;;N;;;A740;;A740
-A742;LATIN CAPITAL LETTER K WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A743;
-A743;LATIN SMALL LETTER K WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;A742;;A742
-A744;LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A745;
-A745;LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE;Ll;0;L;;;;;N;;;A744;;A744
-A746;LATIN CAPITAL LETTER BROKEN L;Lu;0;L;;;;;N;;;;A747;
-A747;LATIN SMALL LETTER BROKEN L;Ll;0;L;;;;;N;;;A746;;A746
-A748;LATIN CAPITAL LETTER L WITH HIGH STROKE;Lu;0;L;;;;;N;;;;A749;
-A749;LATIN SMALL LETTER L WITH HIGH STROKE;Ll;0;L;;;;;N;;;A748;;A748
-A74A;LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY;Lu;0;L;;;;;N;;;;A74B;
-A74B;LATIN SMALL LETTER O WITH LONG STROKE OVERLAY;Ll;0;L;;;;;N;;;A74A;;A74A
-A74C;LATIN CAPITAL LETTER O WITH LOOP;Lu;0;L;;;;;N;;;;A74D;
-A74D;LATIN SMALL LETTER O WITH LOOP;Ll;0;L;;;;;N;;;A74C;;A74C
-A74E;LATIN CAPITAL LETTER OO;Lu;0;L;;;;;N;;;;A74F;
-A74F;LATIN SMALL LETTER OO;Ll;0;L;;;;;N;;;A74E;;A74E
-A750;LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER;Lu;0;L;;;;;N;;;;A751;
-A751;LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER;Ll;0;L;;;;;N;;;A750;;A750
-A752;LATIN CAPITAL LETTER P WITH FLOURISH;Lu;0;L;;;;;N;;;;A753;
-A753;LATIN SMALL LETTER P WITH FLOURISH;Ll;0;L;;;;;N;;;A752;;A752
-A754;LATIN CAPITAL LETTER P WITH SQUIRREL TAIL;Lu;0;L;;;;;N;;;;A755;
-A755;LATIN SMALL LETTER P WITH SQUIRREL TAIL;Ll;0;L;;;;;N;;;A754;;A754
-A756;LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER;Lu;0;L;;;;;N;;;;A757;
-A757;LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER;Ll;0;L;;;;;N;;;A756;;A756
-A758;LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A759;
-A759;LATIN SMALL LETTER Q WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;A758;;A758
-A75A;LATIN CAPITAL LETTER R ROTUNDA;Lu;0;L;;;;;N;;;;A75B;
-A75B;LATIN SMALL LETTER R ROTUNDA;Ll;0;L;;;;;N;;;A75A;;A75A
-A75C;LATIN CAPITAL LETTER RUM ROTUNDA;Lu;0;L;;;;;N;;;;A75D;
-A75D;LATIN SMALL LETTER RUM ROTUNDA;Ll;0;L;;;;;N;;;A75C;;A75C
-A75E;LATIN CAPITAL LETTER V WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A75F;
-A75F;LATIN SMALL LETTER V WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;A75E;;A75E
-A760;LATIN CAPITAL LETTER VY;Lu;0;L;;;;;N;;;;A761;
-A761;LATIN SMALL LETTER VY;Ll;0;L;;;;;N;;;A760;;A760
-A762;LATIN CAPITAL LETTER VISIGOTHIC Z;Lu;0;L;;;;;N;;;;A763;
-A763;LATIN SMALL LETTER VISIGOTHIC Z;Ll;0;L;;;;;N;;;A762;;A762
-A764;LATIN CAPITAL LETTER THORN WITH STROKE;Lu;0;L;;;;;N;;;;A765;
-A765;LATIN SMALL LETTER THORN WITH STROKE;Ll;0;L;;;;;N;;;A764;;A764
-A766;LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER;Lu;0;L;;;;;N;;;;A767;
-A767;LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER;Ll;0;L;;;;;N;;;A766;;A766
-A768;LATIN CAPITAL LETTER VEND;Lu;0;L;;;;;N;;;;A769;
-A769;LATIN SMALL LETTER VEND;Ll;0;L;;;;;N;;;A768;;A768
-A76A;LATIN CAPITAL LETTER ET;Lu;0;L;;;;;N;;;;A76B;
-A76B;LATIN SMALL LETTER ET;Ll;0;L;;;;;N;;;A76A;;A76A
-A76C;LATIN CAPITAL LETTER IS;Lu;0;L;;;;;N;;;;A76D;
-A76D;LATIN SMALL LETTER IS;Ll;0;L;;;;;N;;;A76C;;A76C
-A76E;LATIN CAPITAL LETTER CON;Lu;0;L;;;;;N;;;;A76F;
-A76F;LATIN SMALL LETTER CON;Ll;0;L;;;;;N;;;A76E;;A76E
-A770;MODIFIER LETTER US;Lm;0;L;<super> A76F;;;;N;;;;;
-A771;LATIN SMALL LETTER DUM;Ll;0;L;;;;;N;;;;;
-A772;LATIN SMALL LETTER LUM;Ll;0;L;;;;;N;;;;;
-A773;LATIN SMALL LETTER MUM;Ll;0;L;;;;;N;;;;;
-A774;LATIN SMALL LETTER NUM;Ll;0;L;;;;;N;;;;;
-A775;LATIN SMALL LETTER RUM;Ll;0;L;;;;;N;;;;;
-A776;LATIN LETTER SMALL CAPITAL RUM;Ll;0;L;;;;;N;;;;;
-A777;LATIN SMALL LETTER TUM;Ll;0;L;;;;;N;;;;;
-A778;LATIN SMALL LETTER UM;Ll;0;L;;;;;N;;;;;
-A779;LATIN CAPITAL LETTER INSULAR D;Lu;0;L;;;;;N;;;;A77A;
-A77A;LATIN SMALL LETTER INSULAR D;Ll;0;L;;;;;N;;;A779;;A779
-A77B;LATIN CAPITAL LETTER INSULAR F;Lu;0;L;;;;;N;;;;A77C;
-A77C;LATIN SMALL LETTER INSULAR F;Ll;0;L;;;;;N;;;A77B;;A77B
-A77D;LATIN CAPITAL LETTER INSULAR G;Lu;0;L;;;;;N;;;;1D79;
-A77E;LATIN CAPITAL LETTER TURNED INSULAR G;Lu;0;L;;;;;N;;;;A77F;
-A77F;LATIN SMALL LETTER TURNED INSULAR G;Ll;0;L;;;;;N;;;A77E;;A77E
-A780;LATIN CAPITAL LETTER TURNED L;Lu;0;L;;;;;N;;;;A781;
-A781;LATIN SMALL LETTER TURNED L;Ll;0;L;;;;;N;;;A780;;A780
-A782;LATIN CAPITAL LETTER INSULAR R;Lu;0;L;;;;;N;;;;A783;
-A783;LATIN SMALL LETTER INSULAR R;Ll;0;L;;;;;N;;;A782;;A782
-A784;LATIN CAPITAL LETTER INSULAR S;Lu;0;L;;;;;N;;;;A785;
-A785;LATIN SMALL LETTER INSULAR S;Ll;0;L;;;;;N;;;A784;;A784
-A786;LATIN CAPITAL LETTER INSULAR T;Lu;0;L;;;;;N;;;;A787;
-A787;LATIN SMALL LETTER INSULAR T;Ll;0;L;;;;;N;;;A786;;A786
-A788;MODIFIER LETTER LOW CIRCUMFLEX ACCENT;Lm;0;ON;;;;;N;;;;;
-A789;MODIFIER LETTER COLON;Sk;0;L;;;;;N;;;;;
-A78A;MODIFIER LETTER SHORT EQUALS SIGN;Sk;0;L;;;;;N;;;;;
-A78B;LATIN CAPITAL LETTER SALTILLO;Lu;0;L;;;;;N;;;;A78C;
-A78C;LATIN SMALL LETTER SALTILLO;Ll;0;L;;;;;N;;;A78B;;A78B
-A78D;LATIN CAPITAL LETTER TURNED H;Lu;0;L;;;;;N;;;;0265;
-A78E;LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT;Ll;0;L;;;;;N;;;;;
-A790;LATIN CAPITAL LETTER N WITH DESCENDER;Lu;0;L;;;;;N;;;;A791;
-A791;LATIN SMALL LETTER N WITH DESCENDER;Ll;0;L;;;;;N;;;A790;;A790
-A792;LATIN CAPITAL LETTER C WITH BAR;Lu;0;L;;;;;N;;;;A793;
-A793;LATIN SMALL LETTER C WITH BAR;Ll;0;L;;;;;N;;;A792;;A792
-A7A0;LATIN CAPITAL LETTER G WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A1;
-A7A1;LATIN SMALL LETTER G WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A0;;A7A0
-A7A2;LATIN CAPITAL LETTER K WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A3;
-A7A3;LATIN SMALL LETTER K WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A2;;A7A2
-A7A4;LATIN CAPITAL LETTER N WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A5;
-A7A5;LATIN SMALL LETTER N WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A4;;A7A4
-A7A6;LATIN CAPITAL LETTER R WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A7;
-A7A7;LATIN SMALL LETTER R WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A6;;A7A6
-A7A8;LATIN CAPITAL LETTER S WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A9;
-A7A9;LATIN SMALL LETTER S WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A8;;A7A8
-A7AA;LATIN CAPITAL LETTER H WITH HOOK;Lu;0;L;;;;;N;;;;0266;
-A7F8;MODIFIER LETTER CAPITAL H WITH STROKE;Lm;0;L;<super> 0126;;;;N;;;;;
-A7F9;MODIFIER LETTER SMALL LIGATURE OE;Lm;0;L;<super> 0153;;;;N;;;;;
-A7FA;LATIN LETTER SMALL CAPITAL TURNED M;Ll;0;L;;;;;N;;;;;
-A7FB;LATIN EPIGRAPHIC LETTER REVERSED F;Lo;0;L;;;;;N;;;;;
-A7FC;LATIN EPIGRAPHIC LETTER REVERSED P;Lo;0;L;;;;;N;;;;;
-A7FD;LATIN EPIGRAPHIC LETTER INVERTED M;Lo;0;L;;;;;N;;;;;
-A7FE;LATIN EPIGRAPHIC LETTER I LONGA;Lo;0;L;;;;;N;;;;;
-A7FF;LATIN EPIGRAPHIC LETTER ARCHAIC M;Lo;0;L;;;;;N;;;;;
-A800;SYLOTI NAGRI LETTER A;Lo;0;L;;;;;N;;;;;
-A801;SYLOTI NAGRI LETTER I;Lo;0;L;;;;;N;;;;;
-A802;SYLOTI NAGRI SIGN DVISVARA;Mn;0;NSM;;;;;N;;;;;
-A803;SYLOTI NAGRI LETTER U;Lo;0;L;;;;;N;;;;;
-A804;SYLOTI NAGRI LETTER E;Lo;0;L;;;;;N;;;;;
-A805;SYLOTI NAGRI LETTER O;Lo;0;L;;;;;N;;;;;
-A806;SYLOTI NAGRI SIGN HASANTA;Mn;9;NSM;;;;;N;;;;;
-A807;SYLOTI NAGRI LETTER KO;Lo;0;L;;;;;N;;;;;
-A808;SYLOTI NAGRI LETTER KHO;Lo;0;L;;;;;N;;;;;
-A809;SYLOTI NAGRI LETTER GO;Lo;0;L;;;;;N;;;;;
-A80A;SYLOTI NAGRI LETTER GHO;Lo;0;L;;;;;N;;;;;
-A80B;SYLOTI NAGRI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
-A80C;SYLOTI NAGRI LETTER CO;Lo;0;L;;;;;N;;;;;
-A80D;SYLOTI NAGRI LETTER CHO;Lo;0;L;;;;;N;;;;;
-A80E;SYLOTI NAGRI LETTER JO;Lo;0;L;;;;;N;;;;;
-A80F;SYLOTI NAGRI LETTER JHO;Lo;0;L;;;;;N;;;;;
-A810;SYLOTI NAGRI LETTER TTO;Lo;0;L;;;;;N;;;;;
-A811;SYLOTI NAGRI LETTER TTHO;Lo;0;L;;;;;N;;;;;
-A812;SYLOTI NAGRI LETTER DDO;Lo;0;L;;;;;N;;;;;
-A813;SYLOTI NAGRI LETTER DDHO;Lo;0;L;;;;;N;;;;;
-A814;SYLOTI NAGRI LETTER TO;Lo;0;L;;;;;N;;;;;
-A815;SYLOTI NAGRI LETTER THO;Lo;0;L;;;;;N;;;;;
-A816;SYLOTI NAGRI LETTER DO;Lo;0;L;;;;;N;;;;;
-A817;SYLOTI NAGRI LETTER DHO;Lo;0;L;;;;;N;;;;;
-A818;SYLOTI NAGRI LETTER NO;Lo;0;L;;;;;N;;;;;
-A819;SYLOTI NAGRI LETTER PO;Lo;0;L;;;;;N;;;;;
-A81A;SYLOTI NAGRI LETTER PHO;Lo;0;L;;;;;N;;;;;
-A81B;SYLOTI NAGRI LETTER BO;Lo;0;L;;;;;N;;;;;
-A81C;SYLOTI NAGRI LETTER BHO;Lo;0;L;;;;;N;;;;;
-A81D;SYLOTI NAGRI LETTER MO;Lo;0;L;;;;;N;;;;;
-A81E;SYLOTI NAGRI LETTER RO;Lo;0;L;;;;;N;;;;;
-A81F;SYLOTI NAGRI LETTER LO;Lo;0;L;;;;;N;;;;;
-A820;SYLOTI NAGRI LETTER RRO;Lo;0;L;;;;;N;;;;;
-A821;SYLOTI NAGRI LETTER SO;Lo;0;L;;;;;N;;;;;
-A822;SYLOTI NAGRI LETTER HO;Lo;0;L;;;;;N;;;;;
-A823;SYLOTI NAGRI VOWEL SIGN A;Mc;0;L;;;;;N;;;;;
-A824;SYLOTI NAGRI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
-A825;SYLOTI NAGRI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-A826;SYLOTI NAGRI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
-A827;SYLOTI NAGRI VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
-A828;SYLOTI NAGRI POETRY MARK-1;So;0;ON;;;;;N;;;;;
-A829;SYLOTI NAGRI POETRY MARK-2;So;0;ON;;;;;N;;;;;
-A82A;SYLOTI NAGRI POETRY MARK-3;So;0;ON;;;;;N;;;;;
-A82B;SYLOTI NAGRI POETRY MARK-4;So;0;ON;;;;;N;;;;;
-A830;NORTH INDIC FRACTION ONE QUARTER;No;0;L;;;;1/4;N;;;;;
-A831;NORTH INDIC FRACTION ONE HALF;No;0;L;;;;1/2;N;;;;;
-A832;NORTH INDIC FRACTION THREE QUARTERS;No;0;L;;;;3/4;N;;;;;
-A833;NORTH INDIC FRACTION ONE SIXTEENTH;No;0;L;;;;1/16;N;;;;;
-A834;NORTH INDIC FRACTION ONE EIGHTH;No;0;L;;;;1/8;N;;;;;
-A835;NORTH INDIC FRACTION THREE SIXTEENTHS;No;0;L;;;;3/16;N;;;;;
-A836;NORTH INDIC QUARTER MARK;So;0;L;;;;;N;;;;;
-A837;NORTH INDIC PLACEHOLDER MARK;So;0;L;;;;;N;;;;;
-A838;NORTH INDIC RUPEE MARK;Sc;0;ET;;;;;N;;;;;
-A839;NORTH INDIC QUANTITY MARK;So;0;ET;;;;;N;;;;;
-A840;PHAGS-PA LETTER KA;Lo;0;L;;;;;N;;;;;
-A841;PHAGS-PA LETTER KHA;Lo;0;L;;;;;N;;;;;
-A842;PHAGS-PA LETTER GA;Lo;0;L;;;;;N;;;;;
-A843;PHAGS-PA LETTER NGA;Lo;0;L;;;;;N;;;;;
-A844;PHAGS-PA LETTER CA;Lo;0;L;;;;;N;;;;;
-A845;PHAGS-PA LETTER CHA;Lo;0;L;;;;;N;;;;;
-A846;PHAGS-PA LETTER JA;Lo;0;L;;;;;N;;;;;
-A847;PHAGS-PA LETTER NYA;Lo;0;L;;;;;N;;;;;
-A848;PHAGS-PA LETTER TA;Lo;0;L;;;;;N;;;;;
-A849;PHAGS-PA LETTER THA;Lo;0;L;;;;;N;;;;;
-A84A;PHAGS-PA LETTER DA;Lo;0;L;;;;;N;;;;;
-A84B;PHAGS-PA LETTER NA;Lo;0;L;;;;;N;;;;;
-A84C;PHAGS-PA LETTER PA;Lo;0;L;;;;;N;;;;;
-A84D;PHAGS-PA LETTER PHA;Lo;0;L;;;;;N;;;;;
-A84E;PHAGS-PA LETTER BA;Lo;0;L;;;;;N;;;;;
-A84F;PHAGS-PA LETTER MA;Lo;0;L;;;;;N;;;;;
-A850;PHAGS-PA LETTER TSA;Lo;0;L;;;;;N;;;;;
-A851;PHAGS-PA LETTER TSHA;Lo;0;L;;;;;N;;;;;
-A852;PHAGS-PA LETTER DZA;Lo;0;L;;;;;N;;;;;
-A853;PHAGS-PA LETTER WA;Lo;0;L;;;;;N;;;;;
-A854;PHAGS-PA LETTER ZHA;Lo;0;L;;;;;N;;;;;
-A855;PHAGS-PA LETTER ZA;Lo;0;L;;;;;N;;;;;
-A856;PHAGS-PA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
-A857;PHAGS-PA LETTER YA;Lo;0;L;;;;;N;;;;;
-A858;PHAGS-PA LETTER RA;Lo;0;L;;;;;N;;;;;
-A859;PHAGS-PA LETTER LA;Lo;0;L;;;;;N;;;;;
-A85A;PHAGS-PA LETTER SHA;Lo;0;L;;;;;N;;;;;
-A85B;PHAGS-PA LETTER SA;Lo;0;L;;;;;N;;;;;
-A85C;PHAGS-PA LETTER HA;Lo;0;L;;;;;N;;;;;
-A85D;PHAGS-PA LETTER A;Lo;0;L;;;;;N;;;;;
-A85E;PHAGS-PA LETTER I;Lo;0;L;;;;;N;;;;;
-A85F;PHAGS-PA LETTER U;Lo;0;L;;;;;N;;;;;
-A860;PHAGS-PA LETTER E;Lo;0;L;;;;;N;;;;;
-A861;PHAGS-PA LETTER O;Lo;0;L;;;;;N;;;;;
-A862;PHAGS-PA LETTER QA;Lo;0;L;;;;;N;;;;;
-A863;PHAGS-PA LETTER XA;Lo;0;L;;;;;N;;;;;
-A864;PHAGS-PA LETTER FA;Lo;0;L;;;;;N;;;;;
-A865;PHAGS-PA LETTER GGA;Lo;0;L;;;;;N;;;;;
-A866;PHAGS-PA LETTER EE;Lo;0;L;;;;;N;;;;;
-A867;PHAGS-PA SUBJOINED LETTER WA;Lo;0;L;;;;;N;;;;;
-A868;PHAGS-PA SUBJOINED LETTER YA;Lo;0;L;;;;;N;;;;;
-A869;PHAGS-PA LETTER TTA;Lo;0;L;;;;;N;;;;;
-A86A;PHAGS-PA LETTER TTHA;Lo;0;L;;;;;N;;;;;
-A86B;PHAGS-PA LETTER DDA;Lo;0;L;;;;;N;;;;;
-A86C;PHAGS-PA LETTER NNA;Lo;0;L;;;;;N;;;;;
-A86D;PHAGS-PA LETTER ALTERNATE YA;Lo;0;L;;;;;N;;;;;
-A86E;PHAGS-PA LETTER VOICELESS SHA;Lo;0;L;;;;;N;;;;;
-A86F;PHAGS-PA LETTER VOICED HA;Lo;0;L;;;;;N;;;;;
-A870;PHAGS-PA LETTER ASPIRATED FA;Lo;0;L;;;;;N;;;;;
-A871;PHAGS-PA SUBJOINED LETTER RA;Lo;0;L;;;;;N;;;;;
-A872;PHAGS-PA SUPERFIXED LETTER RA;Lo;0;L;;;;;N;;;;;
-A873;PHAGS-PA LETTER CANDRABINDU;Lo;0;L;;;;;N;;;;;
-A874;PHAGS-PA SINGLE HEAD MARK;Po;0;ON;;;;;N;;;;;
-A875;PHAGS-PA DOUBLE HEAD MARK;Po;0;ON;;;;;N;;;;;
-A876;PHAGS-PA MARK SHAD;Po;0;ON;;;;;N;;;;;
-A877;PHAGS-PA MARK DOUBLE SHAD;Po;0;ON;;;;;N;;;;;
-A880;SAURASHTRA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
-A881;SAURASHTRA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
-A882;SAURASHTRA LETTER A;Lo;0;L;;;;;N;;;;;
-A883;SAURASHTRA LETTER AA;Lo;0;L;;;;;N;;;;;
-A884;SAURASHTRA LETTER I;Lo;0;L;;;;;N;;;;;
-A885;SAURASHTRA LETTER II;Lo;0;L;;;;;N;;;;;
-A886;SAURASHTRA LETTER U;Lo;0;L;;;;;N;;;;;
-A887;SAURASHTRA LETTER UU;Lo;0;L;;;;;N;;;;;
-A888;SAURASHTRA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
-A889;SAURASHTRA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
-A88A;SAURASHTRA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
-A88B;SAURASHTRA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
-A88C;SAURASHTRA LETTER E;Lo;0;L;;;;;N;;;;;
-A88D;SAURASHTRA LETTER EE;Lo;0;L;;;;;N;;;;;
-A88E;SAURASHTRA LETTER AI;Lo;0;L;;;;;N;;;;;
-A88F;SAURASHTRA LETTER O;Lo;0;L;;;;;N;;;;;
-A890;SAURASHTRA LETTER OO;Lo;0;L;;;;;N;;;;;
-A891;SAURASHTRA LETTER AU;Lo;0;L;;;;;N;;;;;
-A892;SAURASHTRA LETTER KA;Lo;0;L;;;;;N;;;;;
-A893;SAURASHTRA LETTER KHA;Lo;0;L;;;;;N;;;;;
-A894;SAURASHTRA LETTER GA;Lo;0;L;;;;;N;;;;;
-A895;SAURASHTRA LETTER GHA;Lo;0;L;;;;;N;;;;;
-A896;SAURASHTRA LETTER NGA;Lo;0;L;;;;;N;;;;;
-A897;SAURASHTRA LETTER CA;Lo;0;L;;;;;N;;;;;
-A898;SAURASHTRA LETTER CHA;Lo;0;L;;;;;N;;;;;
-A899;SAURASHTRA LETTER JA;Lo;0;L;;;;;N;;;;;
-A89A;SAURASHTRA LETTER JHA;Lo;0;L;;;;;N;;;;;
-A89B;SAURASHTRA LETTER NYA;Lo;0;L;;;;;N;;;;;
-A89C;SAURASHTRA LETTER TTA;Lo;0;L;;;;;N;;;;;
-A89D;SAURASHTRA LETTER TTHA;Lo;0;L;;;;;N;;;;;
-A89E;SAURASHTRA LETTER DDA;Lo;0;L;;;;;N;;;;;
-A89F;SAURASHTRA LETTER DDHA;Lo;0;L;;;;;N;;;;;
-A8A0;SAURASHTRA LETTER NNA;Lo;0;L;;;;;N;;;;;
-A8A1;SAURASHTRA LETTER TA;Lo;0;L;;;;;N;;;;;
-A8A2;SAURASHTRA LETTER THA;Lo;0;L;;;;;N;;;;;
-A8A3;SAURASHTRA LETTER DA;Lo;0;L;;;;;N;;;;;
-A8A4;SAURASHTRA LETTER DHA;Lo;0;L;;;;;N;;;;;
-A8A5;SAURASHTRA LETTER NA;Lo;0;L;;;;;N;;;;;
-A8A6;SAURASHTRA LETTER PA;Lo;0;L;;;;;N;;;;;
-A8A7;SAURASHTRA LETTER PHA;Lo;0;L;;;;;N;;;;;
-A8A8;SAURASHTRA LETTER BA;Lo;0;L;;;;;N;;;;;
-A8A9;SAURASHTRA LETTER BHA;Lo;0;L;;;;;N;;;;;
-A8AA;SAURASHTRA LETTER MA;Lo;0;L;;;;;N;;;;;
-A8AB;SAURASHTRA LETTER YA;Lo;0;L;;;;;N;;;;;
-A8AC;SAURASHTRA LETTER RA;Lo;0;L;;;;;N;;;;;
-A8AD;SAURASHTRA LETTER LA;Lo;0;L;;;;;N;;;;;
-A8AE;SAURASHTRA LETTER VA;Lo;0;L;;;;;N;;;;;
-A8AF;SAURASHTRA LETTER SHA;Lo;0;L;;;;;N;;;;;
-A8B0;SAURASHTRA LETTER SSA;Lo;0;L;;;;;N;;;;;
-A8B1;SAURASHTRA LETTER SA;Lo;0;L;;;;;N;;;;;
-A8B2;SAURASHTRA LETTER HA;Lo;0;L;;;;;N;;;;;
-A8B3;SAURASHTRA LETTER LLA;Lo;0;L;;;;;N;;;;;
-A8B4;SAURASHTRA CONSONANT SIGN HAARU;Mc;0;L;;;;;N;;;;;
-A8B5;SAURASHTRA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-A8B6;SAURASHTRA VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
-A8B7;SAURASHTRA VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
-A8B8;SAURASHTRA VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
-A8B9;SAURASHTRA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
-A8BA;SAURASHTRA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;;
-A8BB;SAURASHTRA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;;
-A8BC;SAURASHTRA VOWEL SIGN VOCALIC L;Mc;0;L;;;;;N;;;;;
-A8BD;SAURASHTRA VOWEL SIGN VOCALIC LL;Mc;0;L;;;;;N;;;;;
-A8BE;SAURASHTRA VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
-A8BF;SAURASHTRA VOWEL SIGN EE;Mc;0;L;;;;;N;;;;;
-A8C0;SAURASHTRA VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
-A8C1;SAURASHTRA VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
-A8C2;SAURASHTRA VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
-A8C3;SAURASHTRA VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
-A8C4;SAURASHTRA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
-A8CE;SAURASHTRA DANDA;Po;0;L;;;;;N;;;;;
-A8CF;SAURASHTRA DOUBLE DANDA;Po;0;L;;;;;N;;;;;
-A8D0;SAURASHTRA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-A8D1;SAURASHTRA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-A8D2;SAURASHTRA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-A8D3;SAURASHTRA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-A8D4;SAURASHTRA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-A8D5;SAURASHTRA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-A8D6;SAURASHTRA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-A8D7;SAURASHTRA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-A8D8;SAURASHTRA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-A8D9;SAURASHTRA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-A8E0;COMBINING DEVANAGARI DIGIT ZERO;Mn;230;NSM;;;;;N;;;;;
-A8E1;COMBINING DEVANAGARI DIGIT ONE;Mn;230;NSM;;;;;N;;;;;
-A8E2;COMBINING DEVANAGARI DIGIT TWO;Mn;230;NSM;;;;;N;;;;;
-A8E3;COMBINING DEVANAGARI DIGIT THREE;Mn;230;NSM;;;;;N;;;;;
-A8E4;COMBINING DEVANAGARI DIGIT FOUR;Mn;230;NSM;;;;;N;;;;;
-A8E5;COMBINING DEVANAGARI DIGIT FIVE;Mn;230;NSM;;;;;N;;;;;
-A8E6;COMBINING DEVANAGARI DIGIT SIX;Mn;230;NSM;;;;;N;;;;;
-A8E7;COMBINING DEVANAGARI DIGIT SEVEN;Mn;230;NSM;;;;;N;;;;;
-A8E8;COMBINING DEVANAGARI DIGIT EIGHT;Mn;230;NSM;;;;;N;;;;;
-A8E9;COMBINING DEVANAGARI DIGIT NINE;Mn;230;NSM;;;;;N;;;;;
-A8EA;COMBINING DEVANAGARI LETTER A;Mn;230;NSM;;;;;N;;;;;
-A8EB;COMBINING DEVANAGARI LETTER U;Mn;230;NSM;;;;;N;;;;;
-A8EC;COMBINING DEVANAGARI LETTER KA;Mn;230;NSM;;;;;N;;;;;
-A8ED;COMBINING DEVANAGARI LETTER NA;Mn;230;NSM;;;;;N;;;;;
-A8EE;COMBINING DEVANAGARI LETTER PA;Mn;230;NSM;;;;;N;;;;;
-A8EF;COMBINING DEVANAGARI LETTER RA;Mn;230;NSM;;;;;N;;;;;
-A8F0;COMBINING DEVANAGARI LETTER VI;Mn;230;NSM;;;;;N;;;;;
-A8F1;COMBINING DEVANAGARI SIGN AVAGRAHA;Mn;230;NSM;;;;;N;;;;;
-A8F2;DEVANAGARI SIGN SPACING CANDRABINDU;Lo;0;L;;;;;N;;;;;
-A8F3;DEVANAGARI SIGN CANDRABINDU VIRAMA;Lo;0;L;;;;;N;;;;;
-A8F4;DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA;Lo;0;L;;;;;N;;;;;
-A8F5;DEVANAGARI SIGN CANDRABINDU TWO;Lo;0;L;;;;;N;;;;;
-A8F6;DEVANAGARI SIGN CANDRABINDU THREE;Lo;0;L;;;;;N;;;;;
-A8F7;DEVANAGARI SIGN CANDRABINDU AVAGRAHA;Lo;0;L;;;;;N;;;;;
-A8F8;DEVANAGARI SIGN PUSHPIKA;Po;0;L;;;;;N;;;;;
-A8F9;DEVANAGARI GAP FILLER;Po;0;L;;;;;N;;;;;
-A8FA;DEVANAGARI CARET;Po;0;L;;;;;N;;;;;
-A8FB;DEVANAGARI HEADSTROKE;Lo;0;L;;;;;N;;;;;
-A900;KAYAH LI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-A901;KAYAH LI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-A902;KAYAH LI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-A903;KAYAH LI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-A904;KAYAH LI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-A905;KAYAH LI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-A906;KAYAH LI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-A907;KAYAH LI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-A908;KAYAH LI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-A909;KAYAH LI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-A90A;KAYAH LI LETTER KA;Lo;0;L;;;;;N;;;;;
-A90B;KAYAH LI LETTER KHA;Lo;0;L;;;;;N;;;;;
-A90C;KAYAH LI LETTER GA;Lo;0;L;;;;;N;;;;;
-A90D;KAYAH LI LETTER NGA;Lo;0;L;;;;;N;;;;;
-A90E;KAYAH LI LETTER SA;Lo;0;L;;;;;N;;;;;
-A90F;KAYAH LI LETTER SHA;Lo;0;L;;;;;N;;;;;
-A910;KAYAH LI LETTER ZA;Lo;0;L;;;;;N;;;;;
-A911;KAYAH LI LETTER NYA;Lo;0;L;;;;;N;;;;;
-A912;KAYAH LI LETTER TA;Lo;0;L;;;;;N;;;;;
-A913;KAYAH LI LETTER HTA;Lo;0;L;;;;;N;;;;;
-A914;KAYAH LI LETTER NA;Lo;0;L;;;;;N;;;;;
-A915;KAYAH LI LETTER PA;Lo;0;L;;;;;N;;;;;
-A916;KAYAH LI LETTER PHA;Lo;0;L;;;;;N;;;;;
-A917;KAYAH LI LETTER MA;Lo;0;L;;;;;N;;;;;
-A918;KAYAH LI LETTER DA;Lo;0;L;;;;;N;;;;;
-A919;KAYAH LI LETTER BA;Lo;0;L;;;;;N;;;;;
-A91A;KAYAH LI LETTER RA;Lo;0;L;;;;;N;;;;;
-A91B;KAYAH LI LETTER YA;Lo;0;L;;;;;N;;;;;
-A91C;KAYAH LI LETTER LA;Lo;0;L;;;;;N;;;;;
-A91D;KAYAH LI LETTER WA;Lo;0;L;;;;;N;;;;;
-A91E;KAYAH LI LETTER THA;Lo;0;L;;;;;N;;;;;
-A91F;KAYAH LI LETTER HA;Lo;0;L;;;;;N;;;;;
-A920;KAYAH LI LETTER VA;Lo;0;L;;;;;N;;;;;
-A921;KAYAH LI LETTER CA;Lo;0;L;;;;;N;;;;;
-A922;KAYAH LI LETTER A;Lo;0;L;;;;;N;;;;;
-A923;KAYAH LI LETTER OE;Lo;0;L;;;;;N;;;;;
-A924;KAYAH LI LETTER I;Lo;0;L;;;;;N;;;;;
-A925;KAYAH LI LETTER OO;Lo;0;L;;;;;N;;;;;
-A926;KAYAH LI VOWEL UE;Mn;0;NSM;;;;;N;;;;;
-A927;KAYAH LI VOWEL E;Mn;0;NSM;;;;;N;;;;;
-A928;KAYAH LI VOWEL U;Mn;0;NSM;;;;;N;;;;;
-A929;KAYAH LI VOWEL EE;Mn;0;NSM;;;;;N;;;;;
-A92A;KAYAH LI VOWEL O;Mn;0;NSM;;;;;N;;;;;
-A92B;KAYAH LI TONE PLOPHU;Mn;220;NSM;;;;;N;;;;;
-A92C;KAYAH LI TONE CALYA;Mn;220;NSM;;;;;N;;;;;
-A92D;KAYAH LI TONE CALYA PLOPHU;Mn;220;NSM;;;;;N;;;;;
-A92E;KAYAH LI SIGN CWI;Po;0;L;;;;;N;;;;;
-A92F;KAYAH LI SIGN SHYA;Po;0;L;;;;;N;;;;;
-A930;REJANG LETTER KA;Lo;0;L;;;;;N;;;;;
-A931;REJANG LETTER GA;Lo;0;L;;;;;N;;;;;
-A932;REJANG LETTER NGA;Lo;0;L;;;;;N;;;;;
-A933;REJANG LETTER TA;Lo;0;L;;;;;N;;;;;
-A934;REJANG LETTER DA;Lo;0;L;;;;;N;;;;;
-A935;REJANG LETTER NA;Lo;0;L;;;;;N;;;;;
-A936;REJANG LETTER PA;Lo;0;L;;;;;N;;;;;
-A937;REJANG LETTER BA;Lo;0;L;;;;;N;;;;;
-A938;REJANG LETTER MA;Lo;0;L;;;;;N;;;;;
-A939;REJANG LETTER CA;Lo;0;L;;;;;N;;;;;
-A93A;REJANG LETTER JA;Lo;0;L;;;;;N;;;;;
-A93B;REJANG LETTER NYA;Lo;0;L;;;;;N;;;;;
-A93C;REJANG LETTER SA;Lo;0;L;;;;;N;;;;;
-A93D;REJANG LETTER RA;Lo;0;L;;;;;N;;;;;
-A93E;REJANG LETTER LA;Lo;0;L;;;;;N;;;;;
-A93F;REJANG LETTER YA;Lo;0;L;;;;;N;;;;;
-A940;REJANG LETTER WA;Lo;0;L;;;;;N;;;;;
-A941;REJANG LETTER HA;Lo;0;L;;;;;N;;;;;
-A942;REJANG LETTER MBA;Lo;0;L;;;;;N;;;;;
-A943;REJANG LETTER NGGA;Lo;0;L;;;;;N;;;;;
-A944;REJANG LETTER NDA;Lo;0;L;;;;;N;;;;;
-A945;REJANG LETTER NYJA;Lo;0;L;;;;;N;;;;;
-A946;REJANG LETTER A;Lo;0;L;;;;;N;;;;;
-A947;REJANG VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
-A948;REJANG VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-A949;REJANG VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
-A94A;REJANG VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
-A94B;REJANG VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
-A94C;REJANG VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
-A94D;REJANG VOWEL SIGN EU;Mn;0;NSM;;;;;N;;;;;
-A94E;REJANG VOWEL SIGN EA;Mn;0;NSM;;;;;N;;;;;
-A94F;REJANG CONSONANT SIGN NG;Mn;0;NSM;;;;;N;;;;;
-A950;REJANG CONSONANT SIGN N;Mn;0;NSM;;;;;N;;;;;
-A951;REJANG CONSONANT SIGN R;Mn;0;NSM;;;;;N;;;;;
-A952;REJANG CONSONANT SIGN H;Mc;0;L;;;;;N;;;;;
-A953;REJANG VIRAMA;Mc;9;L;;;;;N;;;;;
-A95F;REJANG SECTION MARK;Po;0;L;;;;;N;;;;;
-A960;HANGUL CHOSEONG TIKEUT-MIEUM;Lo;0;L;;;;;N;;;;;
-A961;HANGUL CHOSEONG TIKEUT-PIEUP;Lo;0;L;;;;;N;;;;;
-A962;HANGUL CHOSEONG TIKEUT-SIOS;Lo;0;L;;;;;N;;;;;
-A963;HANGUL CHOSEONG TIKEUT-CIEUC;Lo;0;L;;;;;N;;;;;
-A964;HANGUL CHOSEONG RIEUL-KIYEOK;Lo;0;L;;;;;N;;;;;
-A965;HANGUL CHOSEONG RIEUL-SSANGKIYEOK;Lo;0;L;;;;;N;;;;;
-A966;HANGUL CHOSEONG RIEUL-TIKEUT;Lo;0;L;;;;;N;;;;;
-A967;HANGUL CHOSEONG RIEUL-SSANGTIKEUT;Lo;0;L;;;;;N;;;;;
-A968;HANGUL CHOSEONG RIEUL-MIEUM;Lo;0;L;;;;;N;;;;;
-A969;HANGUL CHOSEONG RIEUL-PIEUP;Lo;0;L;;;;;N;;;;;
-A96A;HANGUL CHOSEONG RIEUL-SSANGPIEUP;Lo;0;L;;;;;N;;;;;
-A96B;HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
-A96C;HANGUL CHOSEONG RIEUL-SIOS;Lo;0;L;;;;;N;;;;;
-A96D;HANGUL CHOSEONG RIEUL-CIEUC;Lo;0;L;;;;;N;;;;;
-A96E;HANGUL CHOSEONG RIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;;
-A96F;HANGUL CHOSEONG MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;;
-A970;HANGUL CHOSEONG MIEUM-TIKEUT;Lo;0;L;;;;;N;;;;;
-A971;HANGUL CHOSEONG MIEUM-SIOS;Lo;0;L;;;;;N;;;;;
-A972;HANGUL CHOSEONG PIEUP-SIOS-THIEUTH;Lo;0;L;;;;;N;;;;;
-A973;HANGUL CHOSEONG PIEUP-KHIEUKH;Lo;0;L;;;;;N;;;;;
-A974;HANGUL CHOSEONG PIEUP-HIEUH;Lo;0;L;;;;;N;;;;;
-A975;HANGUL CHOSEONG SSANGSIOS-PIEUP;Lo;0;L;;;;;N;;;;;
-A976;HANGUL CHOSEONG IEUNG-RIEUL;Lo;0;L;;;;;N;;;;;
-A977;HANGUL CHOSEONG IEUNG-HIEUH;Lo;0;L;;;;;N;;;;;
-A978;HANGUL CHOSEONG SSANGCIEUC-HIEUH;Lo;0;L;;;;;N;;;;;
-A979;HANGUL CHOSEONG SSANGTHIEUTH;Lo;0;L;;;;;N;;;;;
-A97A;HANGUL CHOSEONG PHIEUPH-HIEUH;Lo;0;L;;;;;N;;;;;
-A97B;HANGUL CHOSEONG HIEUH-SIOS;Lo;0;L;;;;;N;;;;;
-A97C;HANGUL CHOSEONG SSANGYEORINHIEUH;Lo;0;L;;;;;N;;;;;
-A980;JAVANESE SIGN PANYANGGA;Mn;0;NSM;;;;;N;;;;;
-A981;JAVANESE SIGN CECAK;Mn;0;NSM;;;;;N;;;;;
-A982;JAVANESE SIGN LAYAR;Mn;0;NSM;;;;;N;;;;;
-A983;JAVANESE SIGN WIGNYAN;Mc;0;L;;;;;N;;;;;
-A984;JAVANESE LETTER A;Lo;0;L;;;;;N;;;;;
-A985;JAVANESE LETTER I KAWI;Lo;0;L;;;;;N;;;;;
-A986;JAVANESE LETTER I;Lo;0;L;;;;;N;;;;;
-A987;JAVANESE LETTER II;Lo;0;L;;;;;N;;;;;
-A988;JAVANESE LETTER U;Lo;0;L;;;;;N;;;;;
-A989;JAVANESE LETTER PA CEREK;Lo;0;L;;;;;N;;;;;
-A98A;JAVANESE LETTER NGA LELET;Lo;0;L;;;;;N;;;;;
-A98B;JAVANESE LETTER NGA LELET RASWADI;Lo;0;L;;;;;N;;;;;
-A98C;JAVANESE LETTER E;Lo;0;L;;;;;N;;;;;
-A98D;JAVANESE LETTER AI;Lo;0;L;;;;;N;;;;;
-A98E;JAVANESE LETTER O;Lo;0;L;;;;;N;;;;;
-A98F;JAVANESE LETTER KA;Lo;0;L;;;;;N;;;;;
-A990;JAVANESE LETTER KA SASAK;Lo;0;L;;;;;N;;;;;
-A991;JAVANESE LETTER KA MURDA;Lo;0;L;;;;;N;;;;;
-A992;JAVANESE LETTER GA;Lo;0;L;;;;;N;;;;;
-A993;JAVANESE LETTER GA MURDA;Lo;0;L;;;;;N;;;;;
-A994;JAVANESE LETTER NGA;Lo;0;L;;;;;N;;;;;
-A995;JAVANESE LETTER CA;Lo;0;L;;;;;N;;;;;
-A996;JAVANESE LETTER CA MURDA;Lo;0;L;;;;;N;;;;;
-A997;JAVANESE LETTER JA;Lo;0;L;;;;;N;;;;;
-A998;JAVANESE LETTER NYA MURDA;Lo;0;L;;;;;N;;;;;
-A999;JAVANESE LETTER JA MAHAPRANA;Lo;0;L;;;;;N;;;;;
-A99A;JAVANESE LETTER NYA;Lo;0;L;;;;;N;;;;;
-A99B;JAVANESE LETTER TTA;Lo;0;L;;;;;N;;;;;
-A99C;JAVANESE LETTER TTA MAHAPRANA;Lo;0;L;;;;;N;;;;;
-A99D;JAVANESE LETTER DDA;Lo;0;L;;;;;N;;;;;
-A99E;JAVANESE LETTER DDA MAHAPRANA;Lo;0;L;;;;;N;;;;;
-A99F;JAVANESE LETTER NA MURDA;Lo;0;L;;;;;N;;;;;
-A9A0;JAVANESE LETTER TA;Lo;0;L;;;;;N;;;;;
-A9A1;JAVANESE LETTER TA MURDA;Lo;0;L;;;;;N;;;;;
-A9A2;JAVANESE LETTER DA;Lo;0;L;;;;;N;;;;;
-A9A3;JAVANESE LETTER DA MAHAPRANA;Lo;0;L;;;;;N;;;;;
-A9A4;JAVANESE LETTER NA;Lo;0;L;;;;;N;;;;;
-A9A5;JAVANESE LETTER PA;Lo;0;L;;;;;N;;;;;
-A9A6;JAVANESE LETTER PA MURDA;Lo;0;L;;;;;N;;;;;
-A9A7;JAVANESE LETTER BA;Lo;0;L;;;;;N;;;;;
-A9A8;JAVANESE LETTER BA MURDA;Lo;0;L;;;;;N;;;;;
-A9A9;JAVANESE LETTER MA;Lo;0;L;;;;;N;;;;;
-A9AA;JAVANESE LETTER YA;Lo;0;L;;;;;N;;;;;
-A9AB;JAVANESE LETTER RA;Lo;0;L;;;;;N;;;;;
-A9AC;JAVANESE LETTER RA AGUNG;Lo;0;L;;;;;N;;;;;
-A9AD;JAVANESE LETTER LA;Lo;0;L;;;;;N;;;;;
-A9AE;JAVANESE LETTER WA;Lo;0;L;;;;;N;;;;;
-A9AF;JAVANESE LETTER SA MURDA;Lo;0;L;;;;;N;;;;;
-A9B0;JAVANESE LETTER SA MAHAPRANA;Lo;0;L;;;;;N;;;;;
-A9B1;JAVANESE LETTER SA;Lo;0;L;;;;;N;;;;;
-A9B2;JAVANESE LETTER HA;Lo;0;L;;;;;N;;;;;
-A9B3;JAVANESE SIGN CECAK TELU;Mn;7;NSM;;;;;N;;;;;
-A9B4;JAVANESE VOWEL SIGN TARUNG;Mc;0;L;;;;;N;;;;;
-A9B5;JAVANESE VOWEL SIGN TOLONG;Mc;0;L;;;;;N;;;;;
-A9B6;JAVANESE VOWEL SIGN WULU;Mn;0;NSM;;;;;N;;;;;
-A9B7;JAVANESE VOWEL SIGN WULU MELIK;Mn;0;NSM;;;;;N;;;;;
-A9B8;JAVANESE VOWEL SIGN SUKU;Mn;0;NSM;;;;;N;;;;;
-A9B9;JAVANESE VOWEL SIGN SUKU MENDUT;Mn;0;NSM;;;;;N;;;;;
-A9BA;JAVANESE VOWEL SIGN TALING;Mc;0;L;;;;;N;;;;;
-A9BB;JAVANESE VOWEL SIGN DIRGA MURE;Mc;0;L;;;;;N;;;;;
-A9BC;JAVANESE VOWEL SIGN PEPET;Mn;0;NSM;;;;;N;;;;;
-A9BD;JAVANESE CONSONANT SIGN KERET;Mc;0;L;;;;;N;;;;;
-A9BE;JAVANESE CONSONANT SIGN PENGKAL;Mc;0;L;;;;;N;;;;;
-A9BF;JAVANESE CONSONANT SIGN CAKRA;Mc;0;L;;;;;N;;;;;
-A9C0;JAVANESE PANGKON;Mc;9;L;;;;;N;;;;;
-A9C1;JAVANESE LEFT RERENGGAN;Po;0;L;;;;;N;;;;;
-A9C2;JAVANESE RIGHT RERENGGAN;Po;0;L;;;;;N;;;;;
-A9C3;JAVANESE PADA ANDAP;Po;0;L;;;;;N;;;;;
-A9C4;JAVANESE PADA MADYA;Po;0;L;;;;;N;;;;;
-A9C5;JAVANESE PADA LUHUR;Po;0;L;;;;;N;;;;;
-A9C6;JAVANESE PADA WINDU;Po;0;L;;;;;N;;;;;
-A9C7;JAVANESE PADA PANGKAT;Po;0;L;;;;;N;;;;;
-A9C8;JAVANESE PADA LINGSA;Po;0;L;;;;;N;;;;;
-A9C9;JAVANESE PADA LUNGSI;Po;0;L;;;;;N;;;;;
-A9CA;JAVANESE PADA ADEG;Po;0;L;;;;;N;;;;;
-A9CB;JAVANESE PADA ADEG ADEG;Po;0;L;;;;;N;;;;;
-A9CC;JAVANESE PADA PISELEH;Po;0;L;;;;;N;;;;;
-A9CD;JAVANESE TURNED PADA PISELEH;Po;0;L;;;;;N;;;;;
-A9CF;JAVANESE PANGRANGKEP;Lm;0;L;;;;;N;;;;;
-A9D0;JAVANESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-A9D1;JAVANESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-A9D2;JAVANESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-A9D3;JAVANESE DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-A9D4;JAVANESE DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-A9D5;JAVANESE DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-A9D6;JAVANESE DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-A9D7;JAVANESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-A9D8;JAVANESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-A9D9;JAVANESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-A9DE;JAVANESE PADA TIRTA TUMETES;Po;0;L;;;;;N;;;;;
-A9DF;JAVANESE PADA ISEN-ISEN;Po;0;L;;;;;N;;;;;
-AA00;CHAM LETTER A;Lo;0;L;;;;;N;;;;;
-AA01;CHAM LETTER I;Lo;0;L;;;;;N;;;;;
-AA02;CHAM LETTER U;Lo;0;L;;;;;N;;;;;
-AA03;CHAM LETTER E;Lo;0;L;;;;;N;;;;;
-AA04;CHAM LETTER AI;Lo;0;L;;;;;N;;;;;
-AA05;CHAM LETTER O;Lo;0;L;;;;;N;;;;;
-AA06;CHAM LETTER KA;Lo;0;L;;;;;N;;;;;
-AA07;CHAM LETTER KHA;Lo;0;L;;;;;N;;;;;
-AA08;CHAM LETTER GA;Lo;0;L;;;;;N;;;;;
-AA09;CHAM LETTER GHA;Lo;0;L;;;;;N;;;;;
-AA0A;CHAM LETTER NGUE;Lo;0;L;;;;;N;;;;;
-AA0B;CHAM LETTER NGA;Lo;0;L;;;;;N;;;;;
-AA0C;CHAM LETTER CHA;Lo;0;L;;;;;N;;;;;
-AA0D;CHAM LETTER CHHA;Lo;0;L;;;;;N;;;;;
-AA0E;CHAM LETTER JA;Lo;0;L;;;;;N;;;;;
-AA0F;CHAM LETTER JHA;Lo;0;L;;;;;N;;;;;
-AA10;CHAM LETTER NHUE;Lo;0;L;;;;;N;;;;;
-AA11;CHAM LETTER NHA;Lo;0;L;;;;;N;;;;;
-AA12;CHAM LETTER NHJA;Lo;0;L;;;;;N;;;;;
-AA13;CHAM LETTER TA;Lo;0;L;;;;;N;;;;;
-AA14;CHAM LETTER THA;Lo;0;L;;;;;N;;;;;
-AA15;CHAM LETTER DA;Lo;0;L;;;;;N;;;;;
-AA16;CHAM LETTER DHA;Lo;0;L;;;;;N;;;;;
-AA17;CHAM LETTER NUE;Lo;0;L;;;;;N;;;;;
-AA18;CHAM LETTER NA;Lo;0;L;;;;;N;;;;;
-AA19;CHAM LETTER DDA;Lo;0;L;;;;;N;;;;;
-AA1A;CHAM LETTER PA;Lo;0;L;;;;;N;;;;;
-AA1B;CHAM LETTER PPA;Lo;0;L;;;;;N;;;;;
-AA1C;CHAM LETTER PHA;Lo;0;L;;;;;N;;;;;
-AA1D;CHAM LETTER BA;Lo;0;L;;;;;N;;;;;
-AA1E;CHAM LETTER BHA;Lo;0;L;;;;;N;;;;;
-AA1F;CHAM LETTER MUE;Lo;0;L;;;;;N;;;;;
-AA20;CHAM LETTER MA;Lo;0;L;;;;;N;;;;;
-AA21;CHAM LETTER BBA;Lo;0;L;;;;;N;;;;;
-AA22;CHAM LETTER YA;Lo;0;L;;;;;N;;;;;
-AA23;CHAM LETTER RA;Lo;0;L;;;;;N;;;;;
-AA24;CHAM LETTER LA;Lo;0;L;;;;;N;;;;;
-AA25;CHAM LETTER VA;Lo;0;L;;;;;N;;;;;
-AA26;CHAM LETTER SSA;Lo;0;L;;;;;N;;;;;
-AA27;CHAM LETTER SA;Lo;0;L;;;;;N;;;;;
-AA28;CHAM LETTER HA;Lo;0;L;;;;;N;;;;;
-AA29;CHAM VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;;
-AA2A;CHAM VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
-AA2B;CHAM VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
-AA2C;CHAM VOWEL SIGN EI;Mn;0;NSM;;;;;N;;;;;
-AA2D;CHAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-AA2E;CHAM VOWEL SIGN OE;Mn;0;NSM;;;;;N;;;;;
-AA2F;CHAM VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
-AA30;CHAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
-AA31;CHAM VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
-AA32;CHAM VOWEL SIGN UE;Mn;0;NSM;;;;;N;;;;;
-AA33;CHAM CONSONANT SIGN YA;Mc;0;L;;;;;N;;;;;
-AA34;CHAM CONSONANT SIGN RA;Mc;0;L;;;;;N;;;;;
-AA35;CHAM CONSONANT SIGN LA;Mn;0;NSM;;;;;N;;;;;
-AA36;CHAM CONSONANT SIGN WA;Mn;0;NSM;;;;;N;;;;;
-AA40;CHAM LETTER FINAL K;Lo;0;L;;;;;N;;;;;
-AA41;CHAM LETTER FINAL G;Lo;0;L;;;;;N;;;;;
-AA42;CHAM LETTER FINAL NG;Lo;0;L;;;;;N;;;;;
-AA43;CHAM CONSONANT SIGN FINAL NG;Mn;0;NSM;;;;;N;;;;;
-AA44;CHAM LETTER FINAL CH;Lo;0;L;;;;;N;;;;;
-AA45;CHAM LETTER FINAL T;Lo;0;L;;;;;N;;;;;
-AA46;CHAM LETTER FINAL N;Lo;0;L;;;;;N;;;;;
-AA47;CHAM LETTER FINAL P;Lo;0;L;;;;;N;;;;;
-AA48;CHAM LETTER FINAL Y;Lo;0;L;;;;;N;;;;;
-AA49;CHAM LETTER FINAL R;Lo;0;L;;;;;N;;;;;
-AA4A;CHAM LETTER FINAL L;Lo;0;L;;;;;N;;;;;
-AA4B;CHAM LETTER FINAL SS;Lo;0;L;;;;;N;;;;;
-AA4C;CHAM CONSONANT SIGN FINAL M;Mn;0;NSM;;;;;N;;;;;
-AA4D;CHAM CONSONANT SIGN FINAL H;Mc;0;L;;;;;N;;;;;
-AA50;CHAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-AA51;CHAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-AA52;CHAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-AA53;CHAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-AA54;CHAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-AA55;CHAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-AA56;CHAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-AA57;CHAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-AA58;CHAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-AA59;CHAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-AA5C;CHAM PUNCTUATION SPIRAL;Po;0;L;;;;;N;;;;;
-AA5D;CHAM PUNCTUATION DANDA;Po;0;L;;;;;N;;;;;
-AA5E;CHAM PUNCTUATION DOUBLE DANDA;Po;0;L;;;;;N;;;;;
-AA5F;CHAM PUNCTUATION TRIPLE DANDA;Po;0;L;;;;;N;;;;;
-AA60;MYANMAR LETTER KHAMTI GA;Lo;0;L;;;;;N;;;;;
-AA61;MYANMAR LETTER KHAMTI CA;Lo;0;L;;;;;N;;;;;
-AA62;MYANMAR LETTER KHAMTI CHA;Lo;0;L;;;;;N;;;;;
-AA63;MYANMAR LETTER KHAMTI JA;Lo;0;L;;;;;N;;;;;
-AA64;MYANMAR LETTER KHAMTI JHA;Lo;0;L;;;;;N;;;;;
-AA65;MYANMAR LETTER KHAMTI NYA;Lo;0;L;;;;;N;;;;;
-AA66;MYANMAR LETTER KHAMTI TTA;Lo;0;L;;;;;N;;;;;
-AA67;MYANMAR LETTER KHAMTI TTHA;Lo;0;L;;;;;N;;;;;
-AA68;MYANMAR LETTER KHAMTI DDA;Lo;0;L;;;;;N;;;;;
-AA69;MYANMAR LETTER KHAMTI DDHA;Lo;0;L;;;;;N;;;;;
-AA6A;MYANMAR LETTER KHAMTI DHA;Lo;0;L;;;;;N;;;;;
-AA6B;MYANMAR LETTER KHAMTI NA;Lo;0;L;;;;;N;;;;;
-AA6C;MYANMAR LETTER KHAMTI SA;Lo;0;L;;;;;N;;;;;
-AA6D;MYANMAR LETTER KHAMTI HA;Lo;0;L;;;;;N;;;;;
-AA6E;MYANMAR LETTER KHAMTI HHA;Lo;0;L;;;;;N;;;;;
-AA6F;MYANMAR LETTER KHAMTI FA;Lo;0;L;;;;;N;;;;;
-AA70;MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION;Lm;0;L;;;;;N;;;;;
-AA71;MYANMAR LETTER KHAMTI XA;Lo;0;L;;;;;N;;;;;
-AA72;MYANMAR LETTER KHAMTI ZA;Lo;0;L;;;;;N;;;;;
-AA73;MYANMAR LETTER KHAMTI RA;Lo;0;L;;;;;N;;;;;
-AA74;MYANMAR LOGOGRAM KHAMTI OAY;Lo;0;L;;;;;N;;;;;
-AA75;MYANMAR LOGOGRAM KHAMTI QN;Lo;0;L;;;;;N;;;;;
-AA76;MYANMAR LOGOGRAM KHAMTI HM;Lo;0;L;;;;;N;;;;;
-AA77;MYANMAR SYMBOL AITON EXCLAMATION;So;0;L;;;;;N;;;;;
-AA78;MYANMAR SYMBOL AITON ONE;So;0;L;;;;;N;;;;;
-AA79;MYANMAR SYMBOL AITON TWO;So;0;L;;;;;N;;;;;
-AA7A;MYANMAR LETTER AITON RA;Lo;0;L;;;;;N;;;;;
-AA7B;MYANMAR SIGN PAO KAREN TONE;Mc;0;L;;;;;N;;;;;
-AA80;TAI VIET LETTER LOW KO;Lo;0;L;;;;;N;;;;;
-AA81;TAI VIET LETTER HIGH KO;Lo;0;L;;;;;N;;;;;
-AA82;TAI VIET LETTER LOW KHO;Lo;0;L;;;;;N;;;;;
-AA83;TAI VIET LETTER HIGH KHO;Lo;0;L;;;;;N;;;;;
-AA84;TAI VIET LETTER LOW KHHO;Lo;0;L;;;;;N;;;;;
-AA85;TAI VIET LETTER HIGH KHHO;Lo;0;L;;;;;N;;;;;
-AA86;TAI VIET LETTER LOW GO;Lo;0;L;;;;;N;;;;;
-AA87;TAI VIET LETTER HIGH GO;Lo;0;L;;;;;N;;;;;
-AA88;TAI VIET LETTER LOW NGO;Lo;0;L;;;;;N;;;;;
-AA89;TAI VIET LETTER HIGH NGO;Lo;0;L;;;;;N;;;;;
-AA8A;TAI VIET LETTER LOW CO;Lo;0;L;;;;;N;;;;;
-AA8B;TAI VIET LETTER HIGH CO;Lo;0;L;;;;;N;;;;;
-AA8C;TAI VIET LETTER LOW CHO;Lo;0;L;;;;;N;;;;;
-AA8D;TAI VIET LETTER HIGH CHO;Lo;0;L;;;;;N;;;;;
-AA8E;TAI VIET LETTER LOW SO;Lo;0;L;;;;;N;;;;;
-AA8F;TAI VIET LETTER HIGH SO;Lo;0;L;;;;;N;;;;;
-AA90;TAI VIET LETTER LOW NYO;Lo;0;L;;;;;N;;;;;
-AA91;TAI VIET LETTER HIGH NYO;Lo;0;L;;;;;N;;;;;
-AA92;TAI VIET LETTER LOW DO;Lo;0;L;;;;;N;;;;;
-AA93;TAI VIET LETTER HIGH DO;Lo;0;L;;;;;N;;;;;
-AA94;TAI VIET LETTER LOW TO;Lo;0;L;;;;;N;;;;;
-AA95;TAI VIET LETTER HIGH TO;Lo;0;L;;;;;N;;;;;
-AA96;TAI VIET LETTER LOW THO;Lo;0;L;;;;;N;;;;;
-AA97;TAI VIET LETTER HIGH THO;Lo;0;L;;;;;N;;;;;
-AA98;TAI VIET LETTER LOW NO;Lo;0;L;;;;;N;;;;;
-AA99;TAI VIET LETTER HIGH NO;Lo;0;L;;;;;N;;;;;
-AA9A;TAI VIET LETTER LOW BO;Lo;0;L;;;;;N;;;;;
-AA9B;TAI VIET LETTER HIGH BO;Lo;0;L;;;;;N;;;;;
-AA9C;TAI VIET LETTER LOW PO;Lo;0;L;;;;;N;;;;;
-AA9D;TAI VIET LETTER HIGH PO;Lo;0;L;;;;;N;;;;;
-AA9E;TAI VIET LETTER LOW PHO;Lo;0;L;;;;;N;;;;;
-AA9F;TAI VIET LETTER HIGH PHO;Lo;0;L;;;;;N;;;;;
-AAA0;TAI VIET LETTER LOW FO;Lo;0;L;;;;;N;;;;;
-AAA1;TAI VIET LETTER HIGH FO;Lo;0;L;;;;;N;;;;;
-AAA2;TAI VIET LETTER LOW MO;Lo;0;L;;;;;N;;;;;
-AAA3;TAI VIET LETTER HIGH MO;Lo;0;L;;;;;N;;;;;
-AAA4;TAI VIET LETTER LOW YO;Lo;0;L;;;;;N;;;;;
-AAA5;TAI VIET LETTER HIGH YO;Lo;0;L;;;;;N;;;;;
-AAA6;TAI VIET LETTER LOW RO;Lo;0;L;;;;;N;;;;;
-AAA7;TAI VIET LETTER HIGH RO;Lo;0;L;;;;;N;;;;;
-AAA8;TAI VIET LETTER LOW LO;Lo;0;L;;;;;N;;;;;
-AAA9;TAI VIET LETTER HIGH LO;Lo;0;L;;;;;N;;;;;
-AAAA;TAI VIET LETTER LOW VO;Lo;0;L;;;;;N;;;;;
-AAAB;TAI VIET LETTER HIGH VO;Lo;0;L;;;;;N;;;;;
-AAAC;TAI VIET LETTER LOW HO;Lo;0;L;;;;;N;;;;;
-AAAD;TAI VIET LETTER HIGH HO;Lo;0;L;;;;;N;;;;;
-AAAE;TAI VIET LETTER LOW O;Lo;0;L;;;;;N;;;;;
-AAAF;TAI VIET LETTER HIGH O;Lo;0;L;;;;;N;;;;;
-AAB0;TAI VIET MAI KANG;Mn;230;NSM;;;;;N;;;;;
-AAB1;TAI VIET VOWEL AA;Lo;0;L;;;;;N;;;;;
-AAB2;TAI VIET VOWEL I;Mn;230;NSM;;;;;N;;;;;
-AAB3;TAI VIET VOWEL UE;Mn;230;NSM;;;;;N;;;;;
-AAB4;TAI VIET VOWEL U;Mn;220;NSM;;;;;N;;;;;
-AAB5;TAI VIET VOWEL E;Lo;0;L;;;;;N;;;;;
-AAB6;TAI VIET VOWEL O;Lo;0;L;;;;;N;;;;;
-AAB7;TAI VIET MAI KHIT;Mn;230;NSM;;;;;N;;;;;
-AAB8;TAI VIET VOWEL IA;Mn;230;NSM;;;;;N;;;;;
-AAB9;TAI VIET VOWEL UEA;Lo;0;L;;;;;N;;;;;
-AABA;TAI VIET VOWEL UA;Lo;0;L;;;;;N;;;;;
-AABB;TAI VIET VOWEL AUE;Lo;0;L;;;;;N;;;;;
-AABC;TAI VIET VOWEL AY;Lo;0;L;;;;;N;;;;;
-AABD;TAI VIET VOWEL AN;Lo;0;L;;;;;N;;;;;
-AABE;TAI VIET VOWEL AM;Mn;230;NSM;;;;;N;;;;;
-AABF;TAI VIET TONE MAI EK;Mn;230;NSM;;;;;N;;;;;
-AAC0;TAI VIET TONE MAI NUENG;Lo;0;L;;;;;N;;;;;
-AAC1;TAI VIET TONE MAI THO;Mn;230;NSM;;;;;N;;;;;
-AAC2;TAI VIET TONE MAI SONG;Lo;0;L;;;;;N;;;;;
-AADB;TAI VIET SYMBOL KON;Lo;0;L;;;;;N;;;;;
-AADC;TAI VIET SYMBOL NUENG;Lo;0;L;;;;;N;;;;;
-AADD;TAI VIET SYMBOL SAM;Lm;0;L;;;;;N;;;;;
-AADE;TAI VIET SYMBOL HO HOI;Po;0;L;;;;;N;;;;;
-AADF;TAI VIET SYMBOL KOI KOI;Po;0;L;;;;;N;;;;;
-AAE0;MEETEI MAYEK LETTER E;Lo;0;L;;;;;N;;;;;
-AAE1;MEETEI MAYEK LETTER O;Lo;0;L;;;;;N;;;;;
-AAE2;MEETEI MAYEK LETTER CHA;Lo;0;L;;;;;N;;;;;
-AAE3;MEETEI MAYEK LETTER NYA;Lo;0;L;;;;;N;;;;;
-AAE4;MEETEI MAYEK LETTER TTA;Lo;0;L;;;;;N;;;;;
-AAE5;MEETEI MAYEK LETTER TTHA;Lo;0;L;;;;;N;;;;;
-AAE6;MEETEI MAYEK LETTER DDA;Lo;0;L;;;;;N;;;;;
-AAE7;MEETEI MAYEK LETTER DDHA;Lo;0;L;;;;;N;;;;;
-AAE8;MEETEI MAYEK LETTER NNA;Lo;0;L;;;;;N;;;;;
-AAE9;MEETEI MAYEK LETTER SHA;Lo;0;L;;;;;N;;;;;
-AAEA;MEETEI MAYEK LETTER SSA;Lo;0;L;;;;;N;;;;;
-AAEB;MEETEI MAYEK VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
-AAEC;MEETEI MAYEK VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
-AAED;MEETEI MAYEK VOWEL SIGN AAI;Mn;0;NSM;;;;;N;;;;;
-AAEE;MEETEI MAYEK VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
-AAEF;MEETEI MAYEK VOWEL SIGN AAU;Mc;0;L;;;;;N;;;;;
-AAF0;MEETEI MAYEK CHEIKHAN;Po;0;L;;;;;N;;;;;
-AAF1;MEETEI MAYEK AHANG KHUDAM;Po;0;L;;;;;N;;;;;
-AAF2;MEETEI MAYEK ANJI;Lo;0;L;;;;;N;;;;;
-AAF3;MEETEI MAYEK SYLLABLE REPETITION MARK;Lm;0;L;;;;;N;;;;;
-AAF4;MEETEI MAYEK WORD REPETITION MARK;Lm;0;L;;;;;N;;;;;
-AAF5;MEETEI MAYEK VOWEL SIGN VISARGA;Mc;0;L;;;;;N;;;;;
-AAF6;MEETEI MAYEK VIRAMA;Mn;9;NSM;;;;;N;;;;;
-AB01;ETHIOPIC SYLLABLE TTHU;Lo;0;L;;;;;N;;;;;
-AB02;ETHIOPIC SYLLABLE TTHI;Lo;0;L;;;;;N;;;;;
-AB03;ETHIOPIC SYLLABLE TTHAA;Lo;0;L;;;;;N;;;;;
-AB04;ETHIOPIC SYLLABLE TTHEE;Lo;0;L;;;;;N;;;;;
-AB05;ETHIOPIC SYLLABLE TTHE;Lo;0;L;;;;;N;;;;;
-AB06;ETHIOPIC SYLLABLE TTHO;Lo;0;L;;;;;N;;;;;
-AB09;ETHIOPIC SYLLABLE DDHU;Lo;0;L;;;;;N;;;;;
-AB0A;ETHIOPIC SYLLABLE DDHI;Lo;0;L;;;;;N;;;;;
-AB0B;ETHIOPIC SYLLABLE DDHAA;Lo;0;L;;;;;N;;;;;
-AB0C;ETHIOPIC SYLLABLE DDHEE;Lo;0;L;;;;;N;;;;;
-AB0D;ETHIOPIC SYLLABLE DDHE;Lo;0;L;;;;;N;;;;;
-AB0E;ETHIOPIC SYLLABLE DDHO;Lo;0;L;;;;;N;;;;;
-AB11;ETHIOPIC SYLLABLE DZU;Lo;0;L;;;;;N;;;;;
-AB12;ETHIOPIC SYLLABLE DZI;Lo;0;L;;;;;N;;;;;
-AB13;ETHIOPIC SYLLABLE DZAA;Lo;0;L;;;;;N;;;;;
-AB14;ETHIOPIC SYLLABLE DZEE;Lo;0;L;;;;;N;;;;;
-AB15;ETHIOPIC SYLLABLE DZE;Lo;0;L;;;;;N;;;;;
-AB16;ETHIOPIC SYLLABLE DZO;Lo;0;L;;;;;N;;;;;
-AB20;ETHIOPIC SYLLABLE CCHHA;Lo;0;L;;;;;N;;;;;
-AB21;ETHIOPIC SYLLABLE CCHHU;Lo;0;L;;;;;N;;;;;
-AB22;ETHIOPIC SYLLABLE CCHHI;Lo;0;L;;;;;N;;;;;
-AB23;ETHIOPIC SYLLABLE CCHHAA;Lo;0;L;;;;;N;;;;;
-AB24;ETHIOPIC SYLLABLE CCHHEE;Lo;0;L;;;;;N;;;;;
-AB25;ETHIOPIC SYLLABLE CCHHE;Lo;0;L;;;;;N;;;;;
-AB26;ETHIOPIC SYLLABLE CCHHO;Lo;0;L;;;;;N;;;;;
-AB28;ETHIOPIC SYLLABLE BBA;Lo;0;L;;;;;N;;;;;
-AB29;ETHIOPIC SYLLABLE BBU;Lo;0;L;;;;;N;;;;;
-AB2A;ETHIOPIC SYLLABLE BBI;Lo;0;L;;;;;N;;;;;
-AB2B;ETHIOPIC SYLLABLE BBAA;Lo;0;L;;;;;N;;;;;
-AB2C;ETHIOPIC SYLLABLE BBEE;Lo;0;L;;;;;N;;;;;
-AB2D;ETHIOPIC SYLLABLE BBE;Lo;0;L;;;;;N;;;;;
-AB2E;ETHIOPIC SYLLABLE BBO;Lo;0;L;;;;;N;;;;;
-ABC0;MEETEI MAYEK LETTER KOK;Lo;0;L;;;;;N;;;;;
-ABC1;MEETEI MAYEK LETTER SAM;Lo;0;L;;;;;N;;;;;
-ABC2;MEETEI MAYEK LETTER LAI;Lo;0;L;;;;;N;;;;;
-ABC3;MEETEI MAYEK LETTER MIT;Lo;0;L;;;;;N;;;;;
-ABC4;MEETEI MAYEK LETTER PA;Lo;0;L;;;;;N;;;;;
-ABC5;MEETEI MAYEK LETTER NA;Lo;0;L;;;;;N;;;;;
-ABC6;MEETEI MAYEK LETTER CHIL;Lo;0;L;;;;;N;;;;;
-ABC7;MEETEI MAYEK LETTER TIL;Lo;0;L;;;;;N;;;;;
-ABC8;MEETEI MAYEK LETTER KHOU;Lo;0;L;;;;;N;;;;;
-ABC9;MEETEI MAYEK LETTER NGOU;Lo;0;L;;;;;N;;;;;
-ABCA;MEETEI MAYEK LETTER THOU;Lo;0;L;;;;;N;;;;;
-ABCB;MEETEI MAYEK LETTER WAI;Lo;0;L;;;;;N;;;;;
-ABCC;MEETEI MAYEK LETTER YANG;Lo;0;L;;;;;N;;;;;
-ABCD;MEETEI MAYEK LETTER HUK;Lo;0;L;;;;;N;;;;;
-ABCE;MEETEI MAYEK LETTER UN;Lo;0;L;;;;;N;;;;;
-ABCF;MEETEI MAYEK LETTER I;Lo;0;L;;;;;N;;;;;
-ABD0;MEETEI MAYEK LETTER PHAM;Lo;0;L;;;;;N;;;;;
-ABD1;MEETEI MAYEK LETTER ATIYA;Lo;0;L;;;;;N;;;;;
-ABD2;MEETEI MAYEK LETTER GOK;Lo;0;L;;;;;N;;;;;
-ABD3;MEETEI MAYEK LETTER JHAM;Lo;0;L;;;;;N;;;;;
-ABD4;MEETEI MAYEK LETTER RAI;Lo;0;L;;;;;N;;;;;
-ABD5;MEETEI MAYEK LETTER BA;Lo;0;L;;;;;N;;;;;
-ABD6;MEETEI MAYEK LETTER JIL;Lo;0;L;;;;;N;;;;;
-ABD7;MEETEI MAYEK LETTER DIL;Lo;0;L;;;;;N;;;;;
-ABD8;MEETEI MAYEK LETTER GHOU;Lo;0;L;;;;;N;;;;;
-ABD9;MEETEI MAYEK LETTER DHOU;Lo;0;L;;;;;N;;;;;
-ABDA;MEETEI MAYEK LETTER BHAM;Lo;0;L;;;;;N;;;;;
-ABDB;MEETEI MAYEK LETTER KOK LONSUM;Lo;0;L;;;;;N;;;;;
-ABDC;MEETEI MAYEK LETTER LAI LONSUM;Lo;0;L;;;;;N;;;;;
-ABDD;MEETEI MAYEK LETTER MIT LONSUM;Lo;0;L;;;;;N;;;;;
-ABDE;MEETEI MAYEK LETTER PA LONSUM;Lo;0;L;;;;;N;;;;;
-ABDF;MEETEI MAYEK LETTER NA LONSUM;Lo;0;L;;;;;N;;;;;
-ABE0;MEETEI MAYEK LETTER TIL LONSUM;Lo;0;L;;;;;N;;;;;
-ABE1;MEETEI MAYEK LETTER NGOU LONSUM;Lo;0;L;;;;;N;;;;;
-ABE2;MEETEI MAYEK LETTER I LONSUM;Lo;0;L;;;;;N;;;;;
-ABE3;MEETEI MAYEK VOWEL SIGN ONAP;Mc;0;L;;;;;N;;;;;
-ABE4;MEETEI MAYEK VOWEL SIGN INAP;Mc;0;L;;;;;N;;;;;
-ABE5;MEETEI MAYEK VOWEL SIGN ANAP;Mn;0;NSM;;;;;N;;;;;
-ABE6;MEETEI MAYEK VOWEL SIGN YENAP;Mc;0;L;;;;;N;;;;;
-ABE7;MEETEI MAYEK VOWEL SIGN SOUNAP;Mc;0;L;;;;;N;;;;;
-ABE8;MEETEI MAYEK VOWEL SIGN UNAP;Mn;0;NSM;;;;;N;;;;;
-ABE9;MEETEI MAYEK VOWEL SIGN CHEINAP;Mc;0;L;;;;;N;;;;;
-ABEA;MEETEI MAYEK VOWEL SIGN NUNG;Mc;0;L;;;;;N;;;;;
-ABEB;MEETEI MAYEK CHEIKHEI;Po;0;L;;;;;N;;;;;
-ABEC;MEETEI MAYEK LUM IYEK;Mc;0;L;;;;;N;;;;;
-ABED;MEETEI MAYEK APUN IYEK;Mn;9;NSM;;;;;N;;;;;
-ABF0;MEETEI MAYEK DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-ABF1;MEETEI MAYEK DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-ABF2;MEETEI MAYEK DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-ABF3;MEETEI MAYEK DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-ABF4;MEETEI MAYEK DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-ABF5;MEETEI MAYEK DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-ABF6;MEETEI MAYEK DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-ABF7;MEETEI MAYEK DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-ABF8;MEETEI MAYEK DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-ABF9;MEETEI MAYEK DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-AC00;<Hangul Syllable, First>;Lo;0;L;;;;;N;;;;;
-D7A3;<Hangul Syllable, Last>;Lo;0;L;;;;;N;;;;;
-D7B0;HANGUL JUNGSEONG O-YEO;Lo;0;L;;;;;N;;;;;
-D7B1;HANGUL JUNGSEONG O-O-I;Lo;0;L;;;;;N;;;;;
-D7B2;HANGUL JUNGSEONG YO-A;Lo;0;L;;;;;N;;;;;
-D7B3;HANGUL JUNGSEONG YO-AE;Lo;0;L;;;;;N;;;;;
-D7B4;HANGUL JUNGSEONG YO-EO;Lo;0;L;;;;;N;;;;;
-D7B5;HANGUL JUNGSEONG U-YEO;Lo;0;L;;;;;N;;;;;
-D7B6;HANGUL JUNGSEONG U-I-I;Lo;0;L;;;;;N;;;;;
-D7B7;HANGUL JUNGSEONG YU-AE;Lo;0;L;;;;;N;;;;;
-D7B8;HANGUL JUNGSEONG YU-O;Lo;0;L;;;;;N;;;;;
-D7B9;HANGUL JUNGSEONG EU-A;Lo;0;L;;;;;N;;;;;
-D7BA;HANGUL JUNGSEONG EU-EO;Lo;0;L;;;;;N;;;;;
-D7BB;HANGUL JUNGSEONG EU-E;Lo;0;L;;;;;N;;;;;
-D7BC;HANGUL JUNGSEONG EU-O;Lo;0;L;;;;;N;;;;;
-D7BD;HANGUL JUNGSEONG I-YA-O;Lo;0;L;;;;;N;;;;;
-D7BE;HANGUL JUNGSEONG I-YAE;Lo;0;L;;;;;N;;;;;
-D7BF;HANGUL JUNGSEONG I-YEO;Lo;0;L;;;;;N;;;;;
-D7C0;HANGUL JUNGSEONG I-YE;Lo;0;L;;;;;N;;;;;
-D7C1;HANGUL JUNGSEONG I-O-I;Lo;0;L;;;;;N;;;;;
-D7C2;HANGUL JUNGSEONG I-YO;Lo;0;L;;;;;N;;;;;
-D7C3;HANGUL JUNGSEONG I-YU;Lo;0;L;;;;;N;;;;;
-D7C4;HANGUL JUNGSEONG I-I;Lo;0;L;;;;;N;;;;;
-D7C5;HANGUL JUNGSEONG ARAEA-A;Lo;0;L;;;;;N;;;;;
-D7C6;HANGUL JUNGSEONG ARAEA-E;Lo;0;L;;;;;N;;;;;
-D7CB;HANGUL JONGSEONG NIEUN-RIEUL;Lo;0;L;;;;;N;;;;;
-D7CC;HANGUL JONGSEONG NIEUN-CHIEUCH;Lo;0;L;;;;;N;;;;;
-D7CD;HANGUL JONGSEONG SSANGTIKEUT;Lo;0;L;;;;;N;;;;;
-D7CE;HANGUL JONGSEONG SSANGTIKEUT-PIEUP;Lo;0;L;;;;;N;;;;;
-D7CF;HANGUL JONGSEONG TIKEUT-PIEUP;Lo;0;L;;;;;N;;;;;
-D7D0;HANGUL JONGSEONG TIKEUT-SIOS;Lo;0;L;;;;;N;;;;;
-D7D1;HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
-D7D2;HANGUL JONGSEONG TIKEUT-CIEUC;Lo;0;L;;;;;N;;;;;
-D7D3;HANGUL JONGSEONG TIKEUT-CHIEUCH;Lo;0;L;;;;;N;;;;;
-D7D4;HANGUL JONGSEONG TIKEUT-THIEUTH;Lo;0;L;;;;;N;;;;;
-D7D5;HANGUL JONGSEONG RIEUL-SSANGKIYEOK;Lo;0;L;;;;;N;;;;;
-D7D6;HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH;Lo;0;L;;;;;N;;;;;
-D7D7;HANGUL JONGSEONG SSANGRIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;;
-D7D8;HANGUL JONGSEONG RIEUL-MIEUM-HIEUH;Lo;0;L;;;;;N;;;;;
-D7D9;HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;;
-D7DA;HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;;
-D7DB;HANGUL JONGSEONG RIEUL-YESIEUNG;Lo;0;L;;;;;N;;;;;
-D7DC;HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH;Lo;0;L;;;;;N;;;;;
-D7DD;HANGUL JONGSEONG KAPYEOUNRIEUL;Lo;0;L;;;;;N;;;;;
-D7DE;HANGUL JONGSEONG MIEUM-NIEUN;Lo;0;L;;;;;N;;;;;
-D7DF;HANGUL JONGSEONG MIEUM-SSANGNIEUN;Lo;0;L;;;;;N;;;;;
-D7E0;HANGUL JONGSEONG SSANGMIEUM;Lo;0;L;;;;;N;;;;;
-D7E1;HANGUL JONGSEONG MIEUM-PIEUP-SIOS;Lo;0;L;;;;;N;;;;;
-D7E2;HANGUL JONGSEONG MIEUM-CIEUC;Lo;0;L;;;;;N;;;;;
-D7E3;HANGUL JONGSEONG PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;;
-D7E4;HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH;Lo;0;L;;;;;N;;;;;
-D7E5;HANGUL JONGSEONG PIEUP-MIEUM;Lo;0;L;;;;;N;;;;;
-D7E6;HANGUL JONGSEONG SSANGPIEUP;Lo;0;L;;;;;N;;;;;
-D7E7;HANGUL JONGSEONG PIEUP-SIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
-D7E8;HANGUL JONGSEONG PIEUP-CIEUC;Lo;0;L;;;;;N;;;;;
-D7E9;HANGUL JONGSEONG PIEUP-CHIEUCH;Lo;0;L;;;;;N;;;;;
-D7EA;HANGUL JONGSEONG SIOS-MIEUM;Lo;0;L;;;;;N;;;;;
-D7EB;HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
-D7EC;HANGUL JONGSEONG SSANGSIOS-KIYEOK;Lo;0;L;;;;;N;;;;;
-D7ED;HANGUL JONGSEONG SSANGSIOS-TIKEUT;Lo;0;L;;;;;N;;;;;
-D7EE;HANGUL JONGSEONG SIOS-PANSIOS;Lo;0;L;;;;;N;;;;;
-D7EF;HANGUL JONGSEONG SIOS-CIEUC;Lo;0;L;;;;;N;;;;;
-D7F0;HANGUL JONGSEONG SIOS-CHIEUCH;Lo;0;L;;;;;N;;;;;
-D7F1;HANGUL JONGSEONG SIOS-THIEUTH;Lo;0;L;;;;;N;;;;;
-D7F2;HANGUL JONGSEONG SIOS-HIEUH;Lo;0;L;;;;;N;;;;;
-D7F3;HANGUL JONGSEONG PANSIOS-PIEUP;Lo;0;L;;;;;N;;;;;
-D7F4;HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;;
-D7F5;HANGUL JONGSEONG YESIEUNG-MIEUM;Lo;0;L;;;;;N;;;;;
-D7F6;HANGUL JONGSEONG YESIEUNG-HIEUH;Lo;0;L;;;;;N;;;;;
-D7F7;HANGUL JONGSEONG CIEUC-PIEUP;Lo;0;L;;;;;N;;;;;
-D7F8;HANGUL JONGSEONG CIEUC-SSANGPIEUP;Lo;0;L;;;;;N;;;;;
-D7F9;HANGUL JONGSEONG SSANGCIEUC;Lo;0;L;;;;;N;;;;;
-D7FA;HANGUL JONGSEONG PHIEUPH-SIOS;Lo;0;L;;;;;N;;;;;
-D7FB;HANGUL JONGSEONG PHIEUPH-THIEUTH;Lo;0;L;;;;;N;;;;;
-D800;<Non Private Use High Surrogate, First>;Cs;0;L;;;;;N;;;;;
-DB7F;<Non Private Use High Surrogate, Last>;Cs;0;L;;;;;N;;;;;
-DB80;<Private Use High Surrogate, First>;Cs;0;L;;;;;N;;;;;
-DBFF;<Private Use High Surrogate, Last>;Cs;0;L;;;;;N;;;;;
-DC00;<Low Surrogate, First>;Cs;0;L;;;;;N;;;;;
-DFFF;<Low Surrogate, Last>;Cs;0;L;;;;;N;;;;;
-E000;<Private Use, First>;Co;0;L;;;;;N;;;;;
-F8FF;<Private Use, Last>;Co;0;L;;;;;N;;;;;
-F900;CJK COMPATIBILITY IDEOGRAPH-F900;Lo;0;L;8C48;;;;N;;;;;
-F901;CJK COMPATIBILITY IDEOGRAPH-F901;Lo;0;L;66F4;;;;N;;;;;
-F902;CJK COMPATIBILITY IDEOGRAPH-F902;Lo;0;L;8ECA;;;;N;;;;;
-F903;CJK COMPATIBILITY IDEOGRAPH-F903;Lo;0;L;8CC8;;;;N;;;;;
-F904;CJK COMPATIBILITY IDEOGRAPH-F904;Lo;0;L;6ED1;;;;N;;;;;
-F905;CJK COMPATIBILITY IDEOGRAPH-F905;Lo;0;L;4E32;;;;N;;;;;
-F906;CJK COMPATIBILITY IDEOGRAPH-F906;Lo;0;L;53E5;;;;N;;;;;
-F907;CJK COMPATIBILITY IDEOGRAPH-F907;Lo;0;L;9F9C;;;;N;;;;;
-F908;CJK COMPATIBILITY IDEOGRAPH-F908;Lo;0;L;9F9C;;;;N;;;;;
-F909;CJK COMPATIBILITY IDEOGRAPH-F909;Lo;0;L;5951;;;;N;;;;;
-F90A;CJK COMPATIBILITY IDEOGRAPH-F90A;Lo;0;L;91D1;;;;N;;;;;
-F90B;CJK COMPATIBILITY IDEOGRAPH-F90B;Lo;0;L;5587;;;;N;;;;;
-F90C;CJK COMPATIBILITY IDEOGRAPH-F90C;Lo;0;L;5948;;;;N;;;;;
-F90D;CJK COMPATIBILITY IDEOGRAPH-F90D;Lo;0;L;61F6;;;;N;;;;;
-F90E;CJK COMPATIBILITY IDEOGRAPH-F90E;Lo;0;L;7669;;;;N;;;;;
-F90F;CJK COMPATIBILITY IDEOGRAPH-F90F;Lo;0;L;7F85;;;;N;;;;;
-F910;CJK COMPATIBILITY IDEOGRAPH-F910;Lo;0;L;863F;;;;N;;;;;
-F911;CJK COMPATIBILITY IDEOGRAPH-F911;Lo;0;L;87BA;;;;N;;;;;
-F912;CJK COMPATIBILITY IDEOGRAPH-F912;Lo;0;L;88F8;;;;N;;;;;
-F913;CJK COMPATIBILITY IDEOGRAPH-F913;Lo;0;L;908F;;;;N;;;;;
-F914;CJK COMPATIBILITY IDEOGRAPH-F914;Lo;0;L;6A02;;;;N;;;;;
-F915;CJK COMPATIBILITY IDEOGRAPH-F915;Lo;0;L;6D1B;;;;N;;;;;
-F916;CJK COMPATIBILITY IDEOGRAPH-F916;Lo;0;L;70D9;;;;N;;;;;
-F917;CJK COMPATIBILITY IDEOGRAPH-F917;Lo;0;L;73DE;;;;N;;;;;
-F918;CJK COMPATIBILITY IDEOGRAPH-F918;Lo;0;L;843D;;;;N;;;;;
-F919;CJK COMPATIBILITY IDEOGRAPH-F919;Lo;0;L;916A;;;;N;;;;;
-F91A;CJK COMPATIBILITY IDEOGRAPH-F91A;Lo;0;L;99F1;;;;N;;;;;
-F91B;CJK COMPATIBILITY IDEOGRAPH-F91B;Lo;0;L;4E82;;;;N;;;;;
-F91C;CJK COMPATIBILITY IDEOGRAPH-F91C;Lo;0;L;5375;;;;N;;;;;
-F91D;CJK COMPATIBILITY IDEOGRAPH-F91D;Lo;0;L;6B04;;;;N;;;;;
-F91E;CJK COMPATIBILITY IDEOGRAPH-F91E;Lo;0;L;721B;;;;N;;;;;
-F91F;CJK COMPATIBILITY IDEOGRAPH-F91F;Lo;0;L;862D;;;;N;;;;;
-F920;CJK COMPATIBILITY IDEOGRAPH-F920;Lo;0;L;9E1E;;;;N;;;;;
-F921;CJK COMPATIBILITY IDEOGRAPH-F921;Lo;0;L;5D50;;;;N;;;;;
-F922;CJK COMPATIBILITY IDEOGRAPH-F922;Lo;0;L;6FEB;;;;N;;;;;
-F923;CJK COMPATIBILITY IDEOGRAPH-F923;Lo;0;L;85CD;;;;N;;;;;
-F924;CJK COMPATIBILITY IDEOGRAPH-F924;Lo;0;L;8964;;;;N;;;;;
-F925;CJK COMPATIBILITY IDEOGRAPH-F925;Lo;0;L;62C9;;;;N;;;;;
-F926;CJK COMPATIBILITY IDEOGRAPH-F926;Lo;0;L;81D8;;;;N;;;;;
-F927;CJK COMPATIBILITY IDEOGRAPH-F927;Lo;0;L;881F;;;;N;;;;;
-F928;CJK COMPATIBILITY IDEOGRAPH-F928;Lo;0;L;5ECA;;;;N;;;;;
-F929;CJK COMPATIBILITY IDEOGRAPH-F929;Lo;0;L;6717;;;;N;;;;;
-F92A;CJK COMPATIBILITY IDEOGRAPH-F92A;Lo;0;L;6D6A;;;;N;;;;;
-F92B;CJK COMPATIBILITY IDEOGRAPH-F92B;Lo;0;L;72FC;;;;N;;;;;
-F92C;CJK COMPATIBILITY IDEOGRAPH-F92C;Lo;0;L;90CE;;;;N;;;;;
-F92D;CJK COMPATIBILITY IDEOGRAPH-F92D;Lo;0;L;4F86;;;;N;;;;;
-F92E;CJK COMPATIBILITY IDEOGRAPH-F92E;Lo;0;L;51B7;;;;N;;;;;
-F92F;CJK COMPATIBILITY IDEOGRAPH-F92F;Lo;0;L;52DE;;;;N;;;;;
-F930;CJK COMPATIBILITY IDEOGRAPH-F930;Lo;0;L;64C4;;;;N;;;;;
-F931;CJK COMPATIBILITY IDEOGRAPH-F931;Lo;0;L;6AD3;;;;N;;;;;
-F932;CJK COMPATIBILITY IDEOGRAPH-F932;Lo;0;L;7210;;;;N;;;;;
-F933;CJK COMPATIBILITY IDEOGRAPH-F933;Lo;0;L;76E7;;;;N;;;;;
-F934;CJK COMPATIBILITY IDEOGRAPH-F934;Lo;0;L;8001;;;;N;;;;;
-F935;CJK COMPATIBILITY IDEOGRAPH-F935;Lo;0;L;8606;;;;N;;;;;
-F936;CJK COMPATIBILITY IDEOGRAPH-F936;Lo;0;L;865C;;;;N;;;;;
-F937;CJK COMPATIBILITY IDEOGRAPH-F937;Lo;0;L;8DEF;;;;N;;;;;
-F938;CJK COMPATIBILITY IDEOGRAPH-F938;Lo;0;L;9732;;;;N;;;;;
-F939;CJK COMPATIBILITY IDEOGRAPH-F939;Lo;0;L;9B6F;;;;N;;;;;
-F93A;CJK COMPATIBILITY IDEOGRAPH-F93A;Lo;0;L;9DFA;;;;N;;;;;
-F93B;CJK COMPATIBILITY IDEOGRAPH-F93B;Lo;0;L;788C;;;;N;;;;;
-F93C;CJK COMPATIBILITY IDEOGRAPH-F93C;Lo;0;L;797F;;;;N;;;;;
-F93D;CJK COMPATIBILITY IDEOGRAPH-F93D;Lo;0;L;7DA0;;;;N;;;;;
-F93E;CJK COMPATIBILITY IDEOGRAPH-F93E;Lo;0;L;83C9;;;;N;;;;;
-F93F;CJK COMPATIBILITY IDEOGRAPH-F93F;Lo;0;L;9304;;;;N;;;;;
-F940;CJK COMPATIBILITY IDEOGRAPH-F940;Lo;0;L;9E7F;;;;N;;;;;
-F941;CJK COMPATIBILITY IDEOGRAPH-F941;Lo;0;L;8AD6;;;;N;;;;;
-F942;CJK COMPATIBILITY IDEOGRAPH-F942;Lo;0;L;58DF;;;;N;;;;;
-F943;CJK COMPATIBILITY IDEOGRAPH-F943;Lo;0;L;5F04;;;;N;;;;;
-F944;CJK COMPATIBILITY IDEOGRAPH-F944;Lo;0;L;7C60;;;;N;;;;;
-F945;CJK COMPATIBILITY IDEOGRAPH-F945;Lo;0;L;807E;;;;N;;;;;
-F946;CJK COMPATIBILITY IDEOGRAPH-F946;Lo;0;L;7262;;;;N;;;;;
-F947;CJK COMPATIBILITY IDEOGRAPH-F947;Lo;0;L;78CA;;;;N;;;;;
-F948;CJK COMPATIBILITY IDEOGRAPH-F948;Lo;0;L;8CC2;;;;N;;;;;
-F949;CJK COMPATIBILITY IDEOGRAPH-F949;Lo;0;L;96F7;;;;N;;;;;
-F94A;CJK COMPATIBILITY IDEOGRAPH-F94A;Lo;0;L;58D8;;;;N;;;;;
-F94B;CJK COMPATIBILITY IDEOGRAPH-F94B;Lo;0;L;5C62;;;;N;;;;;
-F94C;CJK COMPATIBILITY IDEOGRAPH-F94C;Lo;0;L;6A13;;;;N;;;;;
-F94D;CJK COMPATIBILITY IDEOGRAPH-F94D;Lo;0;L;6DDA;;;;N;;;;;
-F94E;CJK COMPATIBILITY IDEOGRAPH-F94E;Lo;0;L;6F0F;;;;N;;;;;
-F94F;CJK COMPATIBILITY IDEOGRAPH-F94F;Lo;0;L;7D2F;;;;N;;;;;
-F950;CJK COMPATIBILITY IDEOGRAPH-F950;Lo;0;L;7E37;;;;N;;;;;
-F951;CJK COMPATIBILITY IDEOGRAPH-F951;Lo;0;L;964B;;;;N;;;;;
-F952;CJK COMPATIBILITY IDEOGRAPH-F952;Lo;0;L;52D2;;;;N;;;;;
-F953;CJK COMPATIBILITY IDEOGRAPH-F953;Lo;0;L;808B;;;;N;;;;;
-F954;CJK COMPATIBILITY IDEOGRAPH-F954;Lo;0;L;51DC;;;;N;;;;;
-F955;CJK COMPATIBILITY IDEOGRAPH-F955;Lo;0;L;51CC;;;;N;;;;;
-F956;CJK COMPATIBILITY IDEOGRAPH-F956;Lo;0;L;7A1C;;;;N;;;;;
-F957;CJK COMPATIBILITY IDEOGRAPH-F957;Lo;0;L;7DBE;;;;N;;;;;
-F958;CJK COMPATIBILITY IDEOGRAPH-F958;Lo;0;L;83F1;;;;N;;;;;
-F959;CJK COMPATIBILITY IDEOGRAPH-F959;Lo;0;L;9675;;;;N;;;;;
-F95A;CJK COMPATIBILITY IDEOGRAPH-F95A;Lo;0;L;8B80;;;;N;;;;;
-F95B;CJK COMPATIBILITY IDEOGRAPH-F95B;Lo;0;L;62CF;;;;N;;;;;
-F95C;CJK COMPATIBILITY IDEOGRAPH-F95C;Lo;0;L;6A02;;;;N;;;;;
-F95D;CJK COMPATIBILITY IDEOGRAPH-F95D;Lo;0;L;8AFE;;;;N;;;;;
-F95E;CJK COMPATIBILITY IDEOGRAPH-F95E;Lo;0;L;4E39;;;;N;;;;;
-F95F;CJK COMPATIBILITY IDEOGRAPH-F95F;Lo;0;L;5BE7;;;;N;;;;;
-F960;CJK COMPATIBILITY IDEOGRAPH-F960;Lo;0;L;6012;;;;N;;;;;
-F961;CJK COMPATIBILITY IDEOGRAPH-F961;Lo;0;L;7387;;;;N;;;;;
-F962;CJK COMPATIBILITY IDEOGRAPH-F962;Lo;0;L;7570;;;;N;;;;;
-F963;CJK COMPATIBILITY IDEOGRAPH-F963;Lo;0;L;5317;;;;N;;;;;
-F964;CJK COMPATIBILITY IDEOGRAPH-F964;Lo;0;L;78FB;;;;N;;;;;
-F965;CJK COMPATIBILITY IDEOGRAPH-F965;Lo;0;L;4FBF;;;;N;;;;;
-F966;CJK COMPATIBILITY IDEOGRAPH-F966;Lo;0;L;5FA9;;;;N;;;;;
-F967;CJK COMPATIBILITY IDEOGRAPH-F967;Lo;0;L;4E0D;;;;N;;;;;
-F968;CJK COMPATIBILITY IDEOGRAPH-F968;Lo;0;L;6CCC;;;;N;;;;;
-F969;CJK COMPATIBILITY IDEOGRAPH-F969;Lo;0;L;6578;;;;N;;;;;
-F96A;CJK COMPATIBILITY IDEOGRAPH-F96A;Lo;0;L;7D22;;;;N;;;;;
-F96B;CJK COMPATIBILITY IDEOGRAPH-F96B;Lo;0;L;53C3;;;3;N;;;;;
-F96C;CJK COMPATIBILITY IDEOGRAPH-F96C;Lo;0;L;585E;;;;N;;;;;
-F96D;CJK COMPATIBILITY IDEOGRAPH-F96D;Lo;0;L;7701;;;;N;;;;;
-F96E;CJK COMPATIBILITY IDEOGRAPH-F96E;Lo;0;L;8449;;;;N;;;;;
-F96F;CJK COMPATIBILITY IDEOGRAPH-F96F;Lo;0;L;8AAA;;;;N;;;;;
-F970;CJK COMPATIBILITY IDEOGRAPH-F970;Lo;0;L;6BBA;;;;N;;;;;
-F971;CJK COMPATIBILITY IDEOGRAPH-F971;Lo;0;L;8FB0;;;;N;;;;;
-F972;CJK COMPATIBILITY IDEOGRAPH-F972;Lo;0;L;6C88;;;;N;;;;;
-F973;CJK COMPATIBILITY IDEOGRAPH-F973;Lo;0;L;62FE;;;10;N;;;;;
-F974;CJK COMPATIBILITY IDEOGRAPH-F974;Lo;0;L;82E5;;;;N;;;;;
-F975;CJK COMPATIBILITY IDEOGRAPH-F975;Lo;0;L;63A0;;;;N;;;;;
-F976;CJK COMPATIBILITY IDEOGRAPH-F976;Lo;0;L;7565;;;;N;;;;;
-F977;CJK COMPATIBILITY IDEOGRAPH-F977;Lo;0;L;4EAE;;;;N;;;;;
-F978;CJK COMPATIBILITY IDEOGRAPH-F978;Lo;0;L;5169;;;2;N;;;;;
-F979;CJK COMPATIBILITY IDEOGRAPH-F979;Lo;0;L;51C9;;;;N;;;;;
-F97A;CJK COMPATIBILITY IDEOGRAPH-F97A;Lo;0;L;6881;;;;N;;;;;
-F97B;CJK COMPATIBILITY IDEOGRAPH-F97B;Lo;0;L;7CE7;;;;N;;;;;
-F97C;CJK COMPATIBILITY IDEOGRAPH-F97C;Lo;0;L;826F;;;;N;;;;;
-F97D;CJK COMPATIBILITY IDEOGRAPH-F97D;Lo;0;L;8AD2;;;;N;;;;;
-F97E;CJK COMPATIBILITY IDEOGRAPH-F97E;Lo;0;L;91CF;;;;N;;;;;
-F97F;CJK COMPATIBILITY IDEOGRAPH-F97F;Lo;0;L;52F5;;;;N;;;;;
-F980;CJK COMPATIBILITY IDEOGRAPH-F980;Lo;0;L;5442;;;;N;;;;;
-F981;CJK COMPATIBILITY IDEOGRAPH-F981;Lo;0;L;5973;;;;N;;;;;
-F982;CJK COMPATIBILITY IDEOGRAPH-F982;Lo;0;L;5EEC;;;;N;;;;;
-F983;CJK COMPATIBILITY IDEOGRAPH-F983;Lo;0;L;65C5;;;;N;;;;;
-F984;CJK COMPATIBILITY IDEOGRAPH-F984;Lo;0;L;6FFE;;;;N;;;;;
-F985;CJK COMPATIBILITY IDEOGRAPH-F985;Lo;0;L;792A;;;;N;;;;;
-F986;CJK COMPATIBILITY IDEOGRAPH-F986;Lo;0;L;95AD;;;;N;;;;;
-F987;CJK COMPATIBILITY IDEOGRAPH-F987;Lo;0;L;9A6A;;;;N;;;;;
-F988;CJK COMPATIBILITY IDEOGRAPH-F988;Lo;0;L;9E97;;;;N;;;;;
-F989;CJK COMPATIBILITY IDEOGRAPH-F989;Lo;0;L;9ECE;;;;N;;;;;
-F98A;CJK COMPATIBILITY IDEOGRAPH-F98A;Lo;0;L;529B;;;;N;;;;;
-F98B;CJK COMPATIBILITY IDEOGRAPH-F98B;Lo;0;L;66C6;;;;N;;;;;
-F98C;CJK COMPATIBILITY IDEOGRAPH-F98C;Lo;0;L;6B77;;;;N;;;;;
-F98D;CJK COMPATIBILITY IDEOGRAPH-F98D;Lo;0;L;8F62;;;;N;;;;;
-F98E;CJK COMPATIBILITY IDEOGRAPH-F98E;Lo;0;L;5E74;;;;N;;;;;
-F98F;CJK COMPATIBILITY IDEOGRAPH-F98F;Lo;0;L;6190;;;;N;;;;;
-F990;CJK COMPATIBILITY IDEOGRAPH-F990;Lo;0;L;6200;;;;N;;;;;
-F991;CJK COMPATIBILITY IDEOGRAPH-F991;Lo;0;L;649A;;;;N;;;;;
-F992;CJK COMPATIBILITY IDEOGRAPH-F992;Lo;0;L;6F23;;;;N;;;;;
-F993;CJK COMPATIBILITY IDEOGRAPH-F993;Lo;0;L;7149;;;;N;;;;;
-F994;CJK COMPATIBILITY IDEOGRAPH-F994;Lo;0;L;7489;;;;N;;;;;
-F995;CJK COMPATIBILITY IDEOGRAPH-F995;Lo;0;L;79CA;;;;N;;;;;
-F996;CJK COMPATIBILITY IDEOGRAPH-F996;Lo;0;L;7DF4;;;;N;;;;;
-F997;CJK COMPATIBILITY IDEOGRAPH-F997;Lo;0;L;806F;;;;N;;;;;
-F998;CJK COMPATIBILITY IDEOGRAPH-F998;Lo;0;L;8F26;;;;N;;;;;
-F999;CJK COMPATIBILITY IDEOGRAPH-F999;Lo;0;L;84EE;;;;N;;;;;
-F99A;CJK COMPATIBILITY IDEOGRAPH-F99A;Lo;0;L;9023;;;;N;;;;;
-F99B;CJK COMPATIBILITY IDEOGRAPH-F99B;Lo;0;L;934A;;;;N;;;;;
-F99C;CJK COMPATIBILITY IDEOGRAPH-F99C;Lo;0;L;5217;;;;N;;;;;
-F99D;CJK COMPATIBILITY IDEOGRAPH-F99D;Lo;0;L;52A3;;;;N;;;;;
-F99E;CJK COMPATIBILITY IDEOGRAPH-F99E;Lo;0;L;54BD;;;;N;;;;;
-F99F;CJK COMPATIBILITY IDEOGRAPH-F99F;Lo;0;L;70C8;;;;N;;;;;
-F9A0;CJK COMPATIBILITY IDEOGRAPH-F9A0;Lo;0;L;88C2;;;;N;;;;;
-F9A1;CJK COMPATIBILITY IDEOGRAPH-F9A1;Lo;0;L;8AAA;;;;N;;;;;
-F9A2;CJK COMPATIBILITY IDEOGRAPH-F9A2;Lo;0;L;5EC9;;;;N;;;;;
-F9A3;CJK COMPATIBILITY IDEOGRAPH-F9A3;Lo;0;L;5FF5;;;;N;;;;;
-F9A4;CJK COMPATIBILITY IDEOGRAPH-F9A4;Lo;0;L;637B;;;;N;;;;;
-F9A5;CJK COMPATIBILITY IDEOGRAPH-F9A5;Lo;0;L;6BAE;;;;N;;;;;
-F9A6;CJK COMPATIBILITY IDEOGRAPH-F9A6;Lo;0;L;7C3E;;;;N;;;;;
-F9A7;CJK COMPATIBILITY IDEOGRAPH-F9A7;Lo;0;L;7375;;;;N;;;;;
-F9A8;CJK COMPATIBILITY IDEOGRAPH-F9A8;Lo;0;L;4EE4;;;;N;;;;;
-F9A9;CJK COMPATIBILITY IDEOGRAPH-F9A9;Lo;0;L;56F9;;;;N;;;;;
-F9AA;CJK COMPATIBILITY IDEOGRAPH-F9AA;Lo;0;L;5BE7;;;;N;;;;;
-F9AB;CJK COMPATIBILITY IDEOGRAPH-F9AB;Lo;0;L;5DBA;;;;N;;;;;
-F9AC;CJK COMPATIBILITY IDEOGRAPH-F9AC;Lo;0;L;601C;;;;N;;;;;
-F9AD;CJK COMPATIBILITY IDEOGRAPH-F9AD;Lo;0;L;73B2;;;;N;;;;;
-F9AE;CJK COMPATIBILITY IDEOGRAPH-F9AE;Lo;0;L;7469;;;;N;;;;;
-F9AF;CJK COMPATIBILITY IDEOGRAPH-F9AF;Lo;0;L;7F9A;;;;N;;;;;
-F9B0;CJK COMPATIBILITY IDEOGRAPH-F9B0;Lo;0;L;8046;;;;N;;;;;
-F9B1;CJK COMPATIBILITY IDEOGRAPH-F9B1;Lo;0;L;9234;;;;N;;;;;
-F9B2;CJK COMPATIBILITY IDEOGRAPH-F9B2;Lo;0;L;96F6;;;0;N;;;;;
-F9B3;CJK COMPATIBILITY IDEOGRAPH-F9B3;Lo;0;L;9748;;;;N;;;;;
-F9B4;CJK COMPATIBILITY IDEOGRAPH-F9B4;Lo;0;L;9818;;;;N;;;;;
-F9B5;CJK COMPATIBILITY IDEOGRAPH-F9B5;Lo;0;L;4F8B;;;;N;;;;;
-F9B6;CJK COMPATIBILITY IDEOGRAPH-F9B6;Lo;0;L;79AE;;;;N;;;;;
-F9B7;CJK COMPATIBILITY IDEOGRAPH-F9B7;Lo;0;L;91B4;;;;N;;;;;
-F9B8;CJK COMPATIBILITY IDEOGRAPH-F9B8;Lo;0;L;96B8;;;;N;;;;;
-F9B9;CJK COMPATIBILITY IDEOGRAPH-F9B9;Lo;0;L;60E1;;;;N;;;;;
-F9BA;CJK COMPATIBILITY IDEOGRAPH-F9BA;Lo;0;L;4E86;;;;N;;;;;
-F9BB;CJK COMPATIBILITY IDEOGRAPH-F9BB;Lo;0;L;50DA;;;;N;;;;;
-F9BC;CJK COMPATIBILITY IDEOGRAPH-F9BC;Lo;0;L;5BEE;;;;N;;;;;
-F9BD;CJK COMPATIBILITY IDEOGRAPH-F9BD;Lo;0;L;5C3F;;;;N;;;;;
-F9BE;CJK COMPATIBILITY IDEOGRAPH-F9BE;Lo;0;L;6599;;;;N;;;;;
-F9BF;CJK COMPATIBILITY IDEOGRAPH-F9BF;Lo;0;L;6A02;;;;N;;;;;
-F9C0;CJK COMPATIBILITY IDEOGRAPH-F9C0;Lo;0;L;71CE;;;;N;;;;;
-F9C1;CJK COMPATIBILITY IDEOGRAPH-F9C1;Lo;0;L;7642;;;;N;;;;;
-F9C2;CJK COMPATIBILITY IDEOGRAPH-F9C2;Lo;0;L;84FC;;;;N;;;;;
-F9C3;CJK COMPATIBILITY IDEOGRAPH-F9C3;Lo;0;L;907C;;;;N;;;;;
-F9C4;CJK COMPATIBILITY IDEOGRAPH-F9C4;Lo;0;L;9F8D;;;;N;;;;;
-F9C5;CJK COMPATIBILITY IDEOGRAPH-F9C5;Lo;0;L;6688;;;;N;;;;;
-F9C6;CJK COMPATIBILITY IDEOGRAPH-F9C6;Lo;0;L;962E;;;;N;;;;;
-F9C7;CJK COMPATIBILITY IDEOGRAPH-F9C7;Lo;0;L;5289;;;;N;;;;;
-F9C8;CJK COMPATIBILITY IDEOGRAPH-F9C8;Lo;0;L;677B;;;;N;;;;;
-F9C9;CJK COMPATIBILITY IDEOGRAPH-F9C9;Lo;0;L;67F3;;;;N;;;;;
-F9CA;CJK COMPATIBILITY IDEOGRAPH-F9CA;Lo;0;L;6D41;;;;N;;;;;
-F9CB;CJK COMPATIBILITY IDEOGRAPH-F9CB;Lo;0;L;6E9C;;;;N;;;;;
-F9CC;CJK COMPATIBILITY IDEOGRAPH-F9CC;Lo;0;L;7409;;;;N;;;;;
-F9CD;CJK COMPATIBILITY IDEOGRAPH-F9CD;Lo;0;L;7559;;;;N;;;;;
-F9CE;CJK COMPATIBILITY IDEOGRAPH-F9CE;Lo;0;L;786B;;;;N;;;;;
-F9CF;CJK COMPATIBILITY IDEOGRAPH-F9CF;Lo;0;L;7D10;;;;N;;;;;
-F9D0;CJK COMPATIBILITY IDEOGRAPH-F9D0;Lo;0;L;985E;;;;N;;;;;
-F9D1;CJK COMPATIBILITY IDEOGRAPH-F9D1;Lo;0;L;516D;;;6;N;;;;;
-F9D2;CJK COMPATIBILITY IDEOGRAPH-F9D2;Lo;0;L;622E;;;;N;;;;;
-F9D3;CJK COMPATIBILITY IDEOGRAPH-F9D3;Lo;0;L;9678;;;6;N;;;;;
-F9D4;CJK COMPATIBILITY IDEOGRAPH-F9D4;Lo;0;L;502B;;;;N;;;;;
-F9D5;CJK COMPATIBILITY IDEOGRAPH-F9D5;Lo;0;L;5D19;;;;N;;;;;
-F9D6;CJK COMPATIBILITY IDEOGRAPH-F9D6;Lo;0;L;6DEA;;;;N;;;;;
-F9D7;CJK COMPATIBILITY IDEOGRAPH-F9D7;Lo;0;L;8F2A;;;;N;;;;;
-F9D8;CJK COMPATIBILITY IDEOGRAPH-F9D8;Lo;0;L;5F8B;;;;N;;;;;
-F9D9;CJK COMPATIBILITY IDEOGRAPH-F9D9;Lo;0;L;6144;;;;N;;;;;
-F9DA;CJK COMPATIBILITY IDEOGRAPH-F9DA;Lo;0;L;6817;;;;N;;;;;
-F9DB;CJK COMPATIBILITY IDEOGRAPH-F9DB;Lo;0;L;7387;;;;N;;;;;
-F9DC;CJK COMPATIBILITY IDEOGRAPH-F9DC;Lo;0;L;9686;;;;N;;;;;
-F9DD;CJK COMPATIBILITY IDEOGRAPH-F9DD;Lo;0;L;5229;;;;N;;;;;
-F9DE;CJK COMPATIBILITY IDEOGRAPH-F9DE;Lo;0;L;540F;;;;N;;;;;
-F9DF;CJK COMPATIBILITY IDEOGRAPH-F9DF;Lo;0;L;5C65;;;;N;;;;;
-F9E0;CJK COMPATIBILITY IDEOGRAPH-F9E0;Lo;0;L;6613;;;;N;;;;;
-F9E1;CJK COMPATIBILITY IDEOGRAPH-F9E1;Lo;0;L;674E;;;;N;;;;;
-F9E2;CJK COMPATIBILITY IDEOGRAPH-F9E2;Lo;0;L;68A8;;;;N;;;;;
-F9E3;CJK COMPATIBILITY IDEOGRAPH-F9E3;Lo;0;L;6CE5;;;;N;;;;;
-F9E4;CJK COMPATIBILITY IDEOGRAPH-F9E4;Lo;0;L;7406;;;;N;;;;;
-F9E5;CJK COMPATIBILITY IDEOGRAPH-F9E5;Lo;0;L;75E2;;;;N;;;;;
-F9E6;CJK COMPATIBILITY IDEOGRAPH-F9E6;Lo;0;L;7F79;;;;N;;;;;
-F9E7;CJK COMPATIBILITY IDEOGRAPH-F9E7;Lo;0;L;88CF;;;;N;;;;;
-F9E8;CJK COMPATIBILITY IDEOGRAPH-F9E8;Lo;0;L;88E1;;;;N;;;;;
-F9E9;CJK COMPATIBILITY IDEOGRAPH-F9E9;Lo;0;L;91CC;;;;N;;;;;
-F9EA;CJK COMPATIBILITY IDEOGRAPH-F9EA;Lo;0;L;96E2;;;;N;;;;;
-F9EB;CJK COMPATIBILITY IDEOGRAPH-F9EB;Lo;0;L;533F;;;;N;;;;;
-F9EC;CJK COMPATIBILITY IDEOGRAPH-F9EC;Lo;0;L;6EBA;;;;N;;;;;
-F9ED;CJK COMPATIBILITY IDEOGRAPH-F9ED;Lo;0;L;541D;;;;N;;;;;
-F9EE;CJK COMPATIBILITY IDEOGRAPH-F9EE;Lo;0;L;71D0;;;;N;;;;;
-F9EF;CJK COMPATIBILITY IDEOGRAPH-F9EF;Lo;0;L;7498;;;;N;;;;;
-F9F0;CJK COMPATIBILITY IDEOGRAPH-F9F0;Lo;0;L;85FA;;;;N;;;;;
-F9F1;CJK COMPATIBILITY IDEOGRAPH-F9F1;Lo;0;L;96A3;;;;N;;;;;
-F9F2;CJK COMPATIBILITY IDEOGRAPH-F9F2;Lo;0;L;9C57;;;;N;;;;;
-F9F3;CJK COMPATIBILITY IDEOGRAPH-F9F3;Lo;0;L;9E9F;;;;N;;;;;
-F9F4;CJK COMPATIBILITY IDEOGRAPH-F9F4;Lo;0;L;6797;;;;N;;;;;
-F9F5;CJK COMPATIBILITY IDEOGRAPH-F9F5;Lo;0;L;6DCB;;;;N;;;;;
-F9F6;CJK COMPATIBILITY IDEOGRAPH-F9F6;Lo;0;L;81E8;;;;N;;;;;
-F9F7;CJK COMPATIBILITY IDEOGRAPH-F9F7;Lo;0;L;7ACB;;;;N;;;;;
-F9F8;CJK COMPATIBILITY IDEOGRAPH-F9F8;Lo;0;L;7B20;;;;N;;;;;
-F9F9;CJK COMPATIBILITY IDEOGRAPH-F9F9;Lo;0;L;7C92;;;;N;;;;;
-F9FA;CJK COMPATIBILITY IDEOGRAPH-F9FA;Lo;0;L;72C0;;;;N;;;;;
-F9FB;CJK COMPATIBILITY IDEOGRAPH-F9FB;Lo;0;L;7099;;;;N;;;;;
-F9FC;CJK COMPATIBILITY IDEOGRAPH-F9FC;Lo;0;L;8B58;;;;N;;;;;
-F9FD;CJK COMPATIBILITY IDEOGRAPH-F9FD;Lo;0;L;4EC0;;;10;N;;;;;
-F9FE;CJK COMPATIBILITY IDEOGRAPH-F9FE;Lo;0;L;8336;;;;N;;;;;
-F9FF;CJK COMPATIBILITY IDEOGRAPH-F9FF;Lo;0;L;523A;;;;N;;;;;
-FA00;CJK COMPATIBILITY IDEOGRAPH-FA00;Lo;0;L;5207;;;;N;;;;;
-FA01;CJK COMPATIBILITY IDEOGRAPH-FA01;Lo;0;L;5EA6;;;;N;;;;;
-FA02;CJK COMPATIBILITY IDEOGRAPH-FA02;Lo;0;L;62D3;;;;N;;;;;
-FA03;CJK COMPATIBILITY IDEOGRAPH-FA03;Lo;0;L;7CD6;;;;N;;;;;
-FA04;CJK COMPATIBILITY IDEOGRAPH-FA04;Lo;0;L;5B85;;;;N;;;;;
-FA05;CJK COMPATIBILITY IDEOGRAPH-FA05;Lo;0;L;6D1E;;;;N;;;;;
-FA06;CJK COMPATIBILITY IDEOGRAPH-FA06;Lo;0;L;66B4;;;;N;;;;;
-FA07;CJK COMPATIBILITY IDEOGRAPH-FA07;Lo;0;L;8F3B;;;;N;;;;;
-FA08;CJK COMPATIBILITY IDEOGRAPH-FA08;Lo;0;L;884C;;;;N;;;;;
-FA09;CJK COMPATIBILITY IDEOGRAPH-FA09;Lo;0;L;964D;;;;N;;;;;
-FA0A;CJK COMPATIBILITY IDEOGRAPH-FA0A;Lo;0;L;898B;;;;N;;;;;
-FA0B;CJK COMPATIBILITY IDEOGRAPH-FA0B;Lo;0;L;5ED3;;;;N;;;;;
-FA0C;CJK COMPATIBILITY IDEOGRAPH-FA0C;Lo;0;L;5140;;;;N;;;;;
-FA0D;CJK COMPATIBILITY IDEOGRAPH-FA0D;Lo;0;L;55C0;;;;N;;;;;
-FA0E;CJK COMPATIBILITY IDEOGRAPH-FA0E;Lo;0;L;;;;;N;;;;;
-FA0F;CJK COMPATIBILITY IDEOGRAPH-FA0F;Lo;0;L;;;;;N;;;;;
-FA10;CJK COMPATIBILITY IDEOGRAPH-FA10;Lo;0;L;585A;;;;N;;;;;
-FA11;CJK COMPATIBILITY IDEOGRAPH-FA11;Lo;0;L;;;;;N;;;;;
-FA12;CJK COMPATIBILITY IDEOGRAPH-FA12;Lo;0;L;6674;;;;N;;;;;
-FA13;CJK COMPATIBILITY IDEOGRAPH-FA13;Lo;0;L;;;;;N;;;;;
-FA14;CJK COMPATIBILITY IDEOGRAPH-FA14;Lo;0;L;;;;;N;;;;;
-FA15;CJK COMPATIBILITY IDEOGRAPH-FA15;Lo;0;L;51DE;;;;N;;;;;
-FA16;CJK COMPATIBILITY IDEOGRAPH-FA16;Lo;0;L;732A;;;;N;;;;;
-FA17;CJK COMPATIBILITY IDEOGRAPH-FA17;Lo;0;L;76CA;;;;N;;;;;
-FA18;CJK COMPATIBILITY IDEOGRAPH-FA18;Lo;0;L;793C;;;;N;;;;;
-FA19;CJK COMPATIBILITY IDEOGRAPH-FA19;Lo;0;L;795E;;;;N;;;;;
-FA1A;CJK COMPATIBILITY IDEOGRAPH-FA1A;Lo;0;L;7965;;;;N;;;;;
-FA1B;CJK COMPATIBILITY IDEOGRAPH-FA1B;Lo;0;L;798F;;;;N;;;;;
-FA1C;CJK COMPATIBILITY IDEOGRAPH-FA1C;Lo;0;L;9756;;;;N;;;;;
-FA1D;CJK COMPATIBILITY IDEOGRAPH-FA1D;Lo;0;L;7CBE;;;;N;;;;;
-FA1E;CJK COMPATIBILITY IDEOGRAPH-FA1E;Lo;0;L;7FBD;;;;N;;;;;
-FA1F;CJK COMPATIBILITY IDEOGRAPH-FA1F;Lo;0;L;;;;;N;;;;;
-FA20;CJK COMPATIBILITY IDEOGRAPH-FA20;Lo;0;L;8612;;;;N;;;;;
-FA21;CJK COMPATIBILITY IDEOGRAPH-FA21;Lo;0;L;;;;;N;;;;;
-FA22;CJK COMPATIBILITY IDEOGRAPH-FA22;Lo;0;L;8AF8;;;;N;;;;;
-FA23;CJK COMPATIBILITY IDEOGRAPH-FA23;Lo;0;L;;;;;N;;;;;
-FA24;CJK COMPATIBILITY IDEOGRAPH-FA24;Lo;0;L;;;;;N;;;;;
-FA25;CJK COMPATIBILITY IDEOGRAPH-FA25;Lo;0;L;9038;;;;N;;;;;
-FA26;CJK COMPATIBILITY IDEOGRAPH-FA26;Lo;0;L;90FD;;;;N;;;;;
-FA27;CJK COMPATIBILITY IDEOGRAPH-FA27;Lo;0;L;;;;;N;;;;;
-FA28;CJK COMPATIBILITY IDEOGRAPH-FA28;Lo;0;L;;;;;N;;;;;
-FA29;CJK COMPATIBILITY IDEOGRAPH-FA29;Lo;0;L;;;;;N;;;;;
-FA2A;CJK COMPATIBILITY IDEOGRAPH-FA2A;Lo;0;L;98EF;;;;N;;;;;
-FA2B;CJK COMPATIBILITY IDEOGRAPH-FA2B;Lo;0;L;98FC;;;;N;;;;;
-FA2C;CJK COMPATIBILITY IDEOGRAPH-FA2C;Lo;0;L;9928;;;;N;;;;;
-FA2D;CJK COMPATIBILITY IDEOGRAPH-FA2D;Lo;0;L;9DB4;;;;N;;;;;
-FA2E;CJK COMPATIBILITY IDEOGRAPH-FA2E;Lo;0;L;90DE;;;;N;;;;;
-FA2F;CJK COMPATIBILITY IDEOGRAPH-FA2F;Lo;0;L;96B7;;;;N;;;;;
-FA30;CJK COMPATIBILITY IDEOGRAPH-FA30;Lo;0;L;4FAE;;;;N;;;;;
-FA31;CJK COMPATIBILITY IDEOGRAPH-FA31;Lo;0;L;50E7;;;;N;;;;;
-FA32;CJK COMPATIBILITY IDEOGRAPH-FA32;Lo;0;L;514D;;;;N;;;;;
-FA33;CJK COMPATIBILITY IDEOGRAPH-FA33;Lo;0;L;52C9;;;;N;;;;;
-FA34;CJK COMPATIBILITY IDEOGRAPH-FA34;Lo;0;L;52E4;;;;N;;;;;
-FA35;CJK COMPATIBILITY IDEOGRAPH-FA35;Lo;0;L;5351;;;;N;;;;;
-FA36;CJK COMPATIBILITY IDEOGRAPH-FA36;Lo;0;L;559D;;;;N;;;;;
-FA37;CJK COMPATIBILITY IDEOGRAPH-FA37;Lo;0;L;5606;;;;N;;;;;
-FA38;CJK COMPATIBILITY IDEOGRAPH-FA38;Lo;0;L;5668;;;;N;;;;;
-FA39;CJK COMPATIBILITY IDEOGRAPH-FA39;Lo;0;L;5840;;;;N;;;;;
-FA3A;CJK COMPATIBILITY IDEOGRAPH-FA3A;Lo;0;L;58A8;;;;N;;;;;
-FA3B;CJK COMPATIBILITY IDEOGRAPH-FA3B;Lo;0;L;5C64;;;;N;;;;;
-FA3C;CJK COMPATIBILITY IDEOGRAPH-FA3C;Lo;0;L;5C6E;;;;N;;;;;
-FA3D;CJK COMPATIBILITY IDEOGRAPH-FA3D;Lo;0;L;6094;;;;N;;;;;
-FA3E;CJK COMPATIBILITY IDEOGRAPH-FA3E;Lo;0;L;6168;;;;N;;;;;
-FA3F;CJK COMPATIBILITY IDEOGRAPH-FA3F;Lo;0;L;618E;;;;N;;;;;
-FA40;CJK COMPATIBILITY IDEOGRAPH-FA40;Lo;0;L;61F2;;;;N;;;;;
-FA41;CJK COMPATIBILITY IDEOGRAPH-FA41;Lo;0;L;654F;;;;N;;;;;
-FA42;CJK COMPATIBILITY IDEOGRAPH-FA42;Lo;0;L;65E2;;;;N;;;;;
-FA43;CJK COMPATIBILITY IDEOGRAPH-FA43;Lo;0;L;6691;;;;N;;;;;
-FA44;CJK COMPATIBILITY IDEOGRAPH-FA44;Lo;0;L;6885;;;;N;;;;;
-FA45;CJK COMPATIBILITY IDEOGRAPH-FA45;Lo;0;L;6D77;;;;N;;;;;
-FA46;CJK COMPATIBILITY IDEOGRAPH-FA46;Lo;0;L;6E1A;;;;N;;;;;
-FA47;CJK COMPATIBILITY IDEOGRAPH-FA47;Lo;0;L;6F22;;;;N;;;;;
-FA48;CJK COMPATIBILITY IDEOGRAPH-FA48;Lo;0;L;716E;;;;N;;;;;
-FA49;CJK COMPATIBILITY IDEOGRAPH-FA49;Lo;0;L;722B;;;;N;;;;;
-FA4A;CJK COMPATIBILITY IDEOGRAPH-FA4A;Lo;0;L;7422;;;;N;;;;;
-FA4B;CJK COMPATIBILITY IDEOGRAPH-FA4B;Lo;0;L;7891;;;;N;;;;;
-FA4C;CJK COMPATIBILITY IDEOGRAPH-FA4C;Lo;0;L;793E;;;;N;;;;;
-FA4D;CJK COMPATIBILITY IDEOGRAPH-FA4D;Lo;0;L;7949;;;;N;;;;;
-FA4E;CJK COMPATIBILITY IDEOGRAPH-FA4E;Lo;0;L;7948;;;;N;;;;;
-FA4F;CJK COMPATIBILITY IDEOGRAPH-FA4F;Lo;0;L;7950;;;;N;;;;;
-FA50;CJK COMPATIBILITY IDEOGRAPH-FA50;Lo;0;L;7956;;;;N;;;;;
-FA51;CJK COMPATIBILITY IDEOGRAPH-FA51;Lo;0;L;795D;;;;N;;;;;
-FA52;CJK COMPATIBILITY IDEOGRAPH-FA52;Lo;0;L;798D;;;;N;;;;;
-FA53;CJK COMPATIBILITY IDEOGRAPH-FA53;Lo;0;L;798E;;;;N;;;;;
-FA54;CJK COMPATIBILITY IDEOGRAPH-FA54;Lo;0;L;7A40;;;;N;;;;;
-FA55;CJK COMPATIBILITY IDEOGRAPH-FA55;Lo;0;L;7A81;;;;N;;;;;
-FA56;CJK COMPATIBILITY IDEOGRAPH-FA56;Lo;0;L;7BC0;;;;N;;;;;
-FA57;CJK COMPATIBILITY IDEOGRAPH-FA57;Lo;0;L;7DF4;;;;N;;;;;
-FA58;CJK COMPATIBILITY IDEOGRAPH-FA58;Lo;0;L;7E09;;;;N;;;;;
-FA59;CJK COMPATIBILITY IDEOGRAPH-FA59;Lo;0;L;7E41;;;;N;;;;;
-FA5A;CJK COMPATIBILITY IDEOGRAPH-FA5A;Lo;0;L;7F72;;;;N;;;;;
-FA5B;CJK COMPATIBILITY IDEOGRAPH-FA5B;Lo;0;L;8005;;;;N;;;;;
-FA5C;CJK COMPATIBILITY IDEOGRAPH-FA5C;Lo;0;L;81ED;;;;N;;;;;
-FA5D;CJK COMPATIBILITY IDEOGRAPH-FA5D;Lo;0;L;8279;;;;N;;;;;
-FA5E;CJK COMPATIBILITY IDEOGRAPH-FA5E;Lo;0;L;8279;;;;N;;;;;
-FA5F;CJK COMPATIBILITY IDEOGRAPH-FA5F;Lo;0;L;8457;;;;N;;;;;
-FA60;CJK COMPATIBILITY IDEOGRAPH-FA60;Lo;0;L;8910;;;;N;;;;;
-FA61;CJK COMPATIBILITY IDEOGRAPH-FA61;Lo;0;L;8996;;;;N;;;;;
-FA62;CJK COMPATIBILITY IDEOGRAPH-FA62;Lo;0;L;8B01;;;;N;;;;;
-FA63;CJK COMPATIBILITY IDEOGRAPH-FA63;Lo;0;L;8B39;;;;N;;;;;
-FA64;CJK COMPATIBILITY IDEOGRAPH-FA64;Lo;0;L;8CD3;;;;N;;;;;
-FA65;CJK COMPATIBILITY IDEOGRAPH-FA65;Lo;0;L;8D08;;;;N;;;;;
-FA66;CJK COMPATIBILITY IDEOGRAPH-FA66;Lo;0;L;8FB6;;;;N;;;;;
-FA67;CJK COMPATIBILITY IDEOGRAPH-FA67;Lo;0;L;9038;;;;N;;;;;
-FA68;CJK COMPATIBILITY IDEOGRAPH-FA68;Lo;0;L;96E3;;;;N;;;;;
-FA69;CJK COMPATIBILITY IDEOGRAPH-FA69;Lo;0;L;97FF;;;;N;;;;;
-FA6A;CJK COMPATIBILITY IDEOGRAPH-FA6A;Lo;0;L;983B;;;;N;;;;;
-FA6B;CJK COMPATIBILITY IDEOGRAPH-FA6B;Lo;0;L;6075;;;;N;;;;;
-FA6C;CJK COMPATIBILITY IDEOGRAPH-FA6C;Lo;0;L;242EE;;;;N;;;;;
-FA6D;CJK COMPATIBILITY IDEOGRAPH-FA6D;Lo;0;L;8218;;;;N;;;;;
-FA70;CJK COMPATIBILITY IDEOGRAPH-FA70;Lo;0;L;4E26;;;;N;;;;;
-FA71;CJK COMPATIBILITY IDEOGRAPH-FA71;Lo;0;L;51B5;;;;N;;;;;
-FA72;CJK COMPATIBILITY IDEOGRAPH-FA72;Lo;0;L;5168;;;;N;;;;;
-FA73;CJK COMPATIBILITY IDEOGRAPH-FA73;Lo;0;L;4F80;;;;N;;;;;
-FA74;CJK COMPATIBILITY IDEOGRAPH-FA74;Lo;0;L;5145;;;;N;;;;;
-FA75;CJK COMPATIBILITY IDEOGRAPH-FA75;Lo;0;L;5180;;;;N;;;;;
-FA76;CJK COMPATIBILITY IDEOGRAPH-FA76;Lo;0;L;52C7;;;;N;;;;;
-FA77;CJK COMPATIBILITY IDEOGRAPH-FA77;Lo;0;L;52FA;;;;N;;;;;
-FA78;CJK COMPATIBILITY IDEOGRAPH-FA78;Lo;0;L;559D;;;;N;;;;;
-FA79;CJK COMPATIBILITY IDEOGRAPH-FA79;Lo;0;L;5555;;;;N;;;;;
-FA7A;CJK COMPATIBILITY IDEOGRAPH-FA7A;Lo;0;L;5599;;;;N;;;;;
-FA7B;CJK COMPATIBILITY IDEOGRAPH-FA7B;Lo;0;L;55E2;;;;N;;;;;
-FA7C;CJK COMPATIBILITY IDEOGRAPH-FA7C;Lo;0;L;585A;;;;N;;;;;
-FA7D;CJK COMPATIBILITY IDEOGRAPH-FA7D;Lo;0;L;58B3;;;;N;;;;;
-FA7E;CJK COMPATIBILITY IDEOGRAPH-FA7E;Lo;0;L;5944;;;;N;;;;;
-FA7F;CJK COMPATIBILITY IDEOGRAPH-FA7F;Lo;0;L;5954;;;;N;;;;;
-FA80;CJK COMPATIBILITY IDEOGRAPH-FA80;Lo;0;L;5A62;;;;N;;;;;
-FA81;CJK COMPATIBILITY IDEOGRAPH-FA81;Lo;0;L;5B28;;;;N;;;;;
-FA82;CJK COMPATIBILITY IDEOGRAPH-FA82;Lo;0;L;5ED2;;;;N;;;;;
-FA83;CJK COMPATIBILITY IDEOGRAPH-FA83;Lo;0;L;5ED9;;;;N;;;;;
-FA84;CJK COMPATIBILITY IDEOGRAPH-FA84;Lo;0;L;5F69;;;;N;;;;;
-FA85;CJK COMPATIBILITY IDEOGRAPH-FA85;Lo;0;L;5FAD;;;;N;;;;;
-FA86;CJK COMPATIBILITY IDEOGRAPH-FA86;Lo;0;L;60D8;;;;N;;;;;
-FA87;CJK COMPATIBILITY IDEOGRAPH-FA87;Lo;0;L;614E;;;;N;;;;;
-FA88;CJK COMPATIBILITY IDEOGRAPH-FA88;Lo;0;L;6108;;;;N;;;;;
-FA89;CJK COMPATIBILITY IDEOGRAPH-FA89;Lo;0;L;618E;;;;N;;;;;
-FA8A;CJK COMPATIBILITY IDEOGRAPH-FA8A;Lo;0;L;6160;;;;N;;;;;
-FA8B;CJK COMPATIBILITY IDEOGRAPH-FA8B;Lo;0;L;61F2;;;;N;;;;;
-FA8C;CJK COMPATIBILITY IDEOGRAPH-FA8C;Lo;0;L;6234;;;;N;;;;;
-FA8D;CJK COMPATIBILITY IDEOGRAPH-FA8D;Lo;0;L;63C4;;;;N;;;;;
-FA8E;CJK COMPATIBILITY IDEOGRAPH-FA8E;Lo;0;L;641C;;;;N;;;;;
-FA8F;CJK COMPATIBILITY IDEOGRAPH-FA8F;Lo;0;L;6452;;;;N;;;;;
-FA90;CJK COMPATIBILITY IDEOGRAPH-FA90;Lo;0;L;6556;;;;N;;;;;
-FA91;CJK COMPATIBILITY IDEOGRAPH-FA91;Lo;0;L;6674;;;;N;;;;;
-FA92;CJK COMPATIBILITY IDEOGRAPH-FA92;Lo;0;L;6717;;;;N;;;;;
-FA93;CJK COMPATIBILITY IDEOGRAPH-FA93;Lo;0;L;671B;;;;N;;;;;
-FA94;CJK COMPATIBILITY IDEOGRAPH-FA94;Lo;0;L;6756;;;;N;;;;;
-FA95;CJK COMPATIBILITY IDEOGRAPH-FA95;Lo;0;L;6B79;;;;N;;;;;
-FA96;CJK COMPATIBILITY IDEOGRAPH-FA96;Lo;0;L;6BBA;;;;N;;;;;
-FA97;CJK COMPATIBILITY IDEOGRAPH-FA97;Lo;0;L;6D41;;;;N;;;;;
-FA98;CJK COMPATIBILITY IDEOGRAPH-FA98;Lo;0;L;6EDB;;;;N;;;;;
-FA99;CJK COMPATIBILITY IDEOGRAPH-FA99;Lo;0;L;6ECB;;;;N;;;;;
-FA9A;CJK COMPATIBILITY IDEOGRAPH-FA9A;Lo;0;L;6F22;;;;N;;;;;
-FA9B;CJK COMPATIBILITY IDEOGRAPH-FA9B;Lo;0;L;701E;;;;N;;;;;
-FA9C;CJK COMPATIBILITY IDEOGRAPH-FA9C;Lo;0;L;716E;;;;N;;;;;
-FA9D;CJK COMPATIBILITY IDEOGRAPH-FA9D;Lo;0;L;77A7;;;;N;;;;;
-FA9E;CJK COMPATIBILITY IDEOGRAPH-FA9E;Lo;0;L;7235;;;;N;;;;;
-FA9F;CJK COMPATIBILITY IDEOGRAPH-FA9F;Lo;0;L;72AF;;;;N;;;;;
-FAA0;CJK COMPATIBILITY IDEOGRAPH-FAA0;Lo;0;L;732A;;;;N;;;;;
-FAA1;CJK COMPATIBILITY IDEOGRAPH-FAA1;Lo;0;L;7471;;;;N;;;;;
-FAA2;CJK COMPATIBILITY IDEOGRAPH-FAA2;Lo;0;L;7506;;;;N;;;;;
-FAA3;CJK COMPATIBILITY IDEOGRAPH-FAA3;Lo;0;L;753B;;;;N;;;;;
-FAA4;CJK COMPATIBILITY IDEOGRAPH-FAA4;Lo;0;L;761D;;;;N;;;;;
-FAA5;CJK COMPATIBILITY IDEOGRAPH-FAA5;Lo;0;L;761F;;;;N;;;;;
-FAA6;CJK COMPATIBILITY IDEOGRAPH-FAA6;Lo;0;L;76CA;;;;N;;;;;
-FAA7;CJK COMPATIBILITY IDEOGRAPH-FAA7;Lo;0;L;76DB;;;;N;;;;;
-FAA8;CJK COMPATIBILITY IDEOGRAPH-FAA8;Lo;0;L;76F4;;;;N;;;;;
-FAA9;CJK COMPATIBILITY IDEOGRAPH-FAA9;Lo;0;L;774A;;;;N;;;;;
-FAAA;CJK COMPATIBILITY IDEOGRAPH-FAAA;Lo;0;L;7740;;;;N;;;;;
-FAAB;CJK COMPATIBILITY IDEOGRAPH-FAAB;Lo;0;L;78CC;;;;N;;;;;
-FAAC;CJK COMPATIBILITY IDEOGRAPH-FAAC;Lo;0;L;7AB1;;;;N;;;;;
-FAAD;CJK COMPATIBILITY IDEOGRAPH-FAAD;Lo;0;L;7BC0;;;;N;;;;;
-FAAE;CJK COMPATIBILITY IDEOGRAPH-FAAE;Lo;0;L;7C7B;;;;N;;;;;
-FAAF;CJK COMPATIBILITY IDEOGRAPH-FAAF;Lo;0;L;7D5B;;;;N;;;;;
-FAB0;CJK COMPATIBILITY IDEOGRAPH-FAB0;Lo;0;L;7DF4;;;;N;;;;;
-FAB1;CJK COMPATIBILITY IDEOGRAPH-FAB1;Lo;0;L;7F3E;;;;N;;;;;
-FAB2;CJK COMPATIBILITY IDEOGRAPH-FAB2;Lo;0;L;8005;;;;N;;;;;
-FAB3;CJK COMPATIBILITY IDEOGRAPH-FAB3;Lo;0;L;8352;;;;N;;;;;
-FAB4;CJK COMPATIBILITY IDEOGRAPH-FAB4;Lo;0;L;83EF;;;;N;;;;;
-FAB5;CJK COMPATIBILITY IDEOGRAPH-FAB5;Lo;0;L;8779;;;;N;;;;;
-FAB6;CJK COMPATIBILITY IDEOGRAPH-FAB6;Lo;0;L;8941;;;;N;;;;;
-FAB7;CJK COMPATIBILITY IDEOGRAPH-FAB7;Lo;0;L;8986;;;;N;;;;;
-FAB8;CJK COMPATIBILITY IDEOGRAPH-FAB8;Lo;0;L;8996;;;;N;;;;;
-FAB9;CJK COMPATIBILITY IDEOGRAPH-FAB9;Lo;0;L;8ABF;;;;N;;;;;
-FABA;CJK COMPATIBILITY IDEOGRAPH-FABA;Lo;0;L;8AF8;;;;N;;;;;
-FABB;CJK COMPATIBILITY IDEOGRAPH-FABB;Lo;0;L;8ACB;;;;N;;;;;
-FABC;CJK COMPATIBILITY IDEOGRAPH-FABC;Lo;0;L;8B01;;;;N;;;;;
-FABD;CJK COMPATIBILITY IDEOGRAPH-FABD;Lo;0;L;8AFE;;;;N;;;;;
-FABE;CJK COMPATIBILITY IDEOGRAPH-FABE;Lo;0;L;8AED;;;;N;;;;;
-FABF;CJK COMPATIBILITY IDEOGRAPH-FABF;Lo;0;L;8B39;;;;N;;;;;
-FAC0;CJK COMPATIBILITY IDEOGRAPH-FAC0;Lo;0;L;8B8A;;;;N;;;;;
-FAC1;CJK COMPATIBILITY IDEOGRAPH-FAC1;Lo;0;L;8D08;;;;N;;;;;
-FAC2;CJK COMPATIBILITY IDEOGRAPH-FAC2;Lo;0;L;8F38;;;;N;;;;;
-FAC3;CJK COMPATIBILITY IDEOGRAPH-FAC3;Lo;0;L;9072;;;;N;;;;;
-FAC4;CJK COMPATIBILITY IDEOGRAPH-FAC4;Lo;0;L;9199;;;;N;;;;;
-FAC5;CJK COMPATIBILITY IDEOGRAPH-FAC5;Lo;0;L;9276;;;;N;;;;;
-FAC6;CJK COMPATIBILITY IDEOGRAPH-FAC6;Lo;0;L;967C;;;;N;;;;;
-FAC7;CJK COMPATIBILITY IDEOGRAPH-FAC7;Lo;0;L;96E3;;;;N;;;;;
-FAC8;CJK COMPATIBILITY IDEOGRAPH-FAC8;Lo;0;L;9756;;;;N;;;;;
-FAC9;CJK COMPATIBILITY IDEOGRAPH-FAC9;Lo;0;L;97DB;;;;N;;;;;
-FACA;CJK COMPATIBILITY IDEOGRAPH-FACA;Lo;0;L;97FF;;;;N;;;;;
-FACB;CJK COMPATIBILITY IDEOGRAPH-FACB;Lo;0;L;980B;;;;N;;;;;
-FACC;CJK COMPATIBILITY IDEOGRAPH-FACC;Lo;0;L;983B;;;;N;;;;;
-FACD;CJK COMPATIBILITY IDEOGRAPH-FACD;Lo;0;L;9B12;;;;N;;;;;
-FACE;CJK COMPATIBILITY IDEOGRAPH-FACE;Lo;0;L;9F9C;;;;N;;;;;
-FACF;CJK COMPATIBILITY IDEOGRAPH-FACF;Lo;0;L;2284A;;;;N;;;;;
-FAD0;CJK COMPATIBILITY IDEOGRAPH-FAD0;Lo;0;L;22844;;;;N;;;;;
-FAD1;CJK COMPATIBILITY IDEOGRAPH-FAD1;Lo;0;L;233D5;;;;N;;;;;
-FAD2;CJK COMPATIBILITY IDEOGRAPH-FAD2;Lo;0;L;3B9D;;;;N;;;;;
-FAD3;CJK COMPATIBILITY IDEOGRAPH-FAD3;Lo;0;L;4018;;;;N;;;;;
-FAD4;CJK COMPATIBILITY IDEOGRAPH-FAD4;Lo;0;L;4039;;;;N;;;;;
-FAD5;CJK COMPATIBILITY IDEOGRAPH-FAD5;Lo;0;L;25249;;;;N;;;;;
-FAD6;CJK COMPATIBILITY IDEOGRAPH-FAD6;Lo;0;L;25CD0;;;;N;;;;;
-FAD7;CJK COMPATIBILITY IDEOGRAPH-FAD7;Lo;0;L;27ED3;;;;N;;;;;
-FAD8;CJK COMPATIBILITY IDEOGRAPH-FAD8;Lo;0;L;9F43;;;;N;;;;;
-FAD9;CJK COMPATIBILITY IDEOGRAPH-FAD9;Lo;0;L;9F8E;;;;N;;;;;
-FB00;LATIN SMALL LIGATURE FF;Ll;0;L;<compat> 0066 0066;;;;N;;;;;
-FB01;LATIN SMALL LIGATURE FI;Ll;0;L;<compat> 0066 0069;;;;N;;;;;
-FB02;LATIN SMALL LIGATURE FL;Ll;0;L;<compat> 0066 006C;;;;N;;;;;
-FB03;LATIN SMALL LIGATURE FFI;Ll;0;L;<compat> 0066 0066 0069;;;;N;;;;;
-FB04;LATIN SMALL LIGATURE FFL;Ll;0;L;<compat> 0066 0066 006C;;;;N;;;;;
-FB05;LATIN SMALL LIGATURE LONG S T;Ll;0;L;<compat> 017F 0074;;;;N;;;;;
-FB06;LATIN SMALL LIGATURE ST;Ll;0;L;<compat> 0073 0074;;;;N;;;;;
-FB13;ARMENIAN SMALL LIGATURE MEN NOW;Ll;0;L;<compat> 0574 0576;;;;N;;;;;
-FB14;ARMENIAN SMALL LIGATURE MEN ECH;Ll;0;L;<compat> 0574 0565;;;;N;;;;;
-FB15;ARMENIAN SMALL LIGATURE MEN INI;Ll;0;L;<compat> 0574 056B;;;;N;;;;;
-FB16;ARMENIAN SMALL LIGATURE VEW NOW;Ll;0;L;<compat> 057E 0576;;;;N;;;;;
-FB17;ARMENIAN SMALL LIGATURE MEN XEH;Ll;0;L;<compat> 0574 056D;;;;N;;;;;
-FB1D;HEBREW LETTER YOD WITH HIRIQ;Lo;0;R;05D9 05B4;;;;N;;;;;
-FB1E;HEBREW POINT JUDEO-SPANISH VARIKA;Mn;26;NSM;;;;;N;HEBREW POINT VARIKA;;;;
-FB1F;HEBREW LIGATURE YIDDISH YOD YOD PATAH;Lo;0;R;05F2 05B7;;;;N;;;;;
-FB20;HEBREW LETTER ALTERNATIVE AYIN;Lo;0;R;<font> 05E2;;;;N;;;;;
-FB21;HEBREW LETTER WIDE ALEF;Lo;0;R;<font> 05D0;;;;N;;;;;
-FB22;HEBREW LETTER WIDE DALET;Lo;0;R;<font> 05D3;;;;N;;;;;
-FB23;HEBREW LETTER WIDE HE;Lo;0;R;<font> 05D4;;;;N;;;;;
-FB24;HEBREW LETTER WIDE KAF;Lo;0;R;<font> 05DB;;;;N;;;;;
-FB25;HEBREW LETTER WIDE LAMED;Lo;0;R;<font> 05DC;;;;N;;;;;
-FB26;HEBREW LETTER WIDE FINAL MEM;Lo;0;R;<font> 05DD;;;;N;;;;;
-FB27;HEBREW LETTER WIDE RESH;Lo;0;R;<font> 05E8;;;;N;;;;;
-FB28;HEBREW LETTER WIDE TAV;Lo;0;R;<font> 05EA;;;;N;;;;;
-FB29;HEBREW LETTER ALTERNATIVE PLUS SIGN;Sm;0;ES;<font> 002B;;;;N;;;;;
-FB2A;HEBREW LETTER SHIN WITH SHIN DOT;Lo;0;R;05E9 05C1;;;;N;;;;;
-FB2B;HEBREW LETTER SHIN WITH SIN DOT;Lo;0;R;05E9 05C2;;;;N;;;;;
-FB2C;HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT;Lo;0;R;FB49 05C1;;;;N;;;;;
-FB2D;HEBREW LETTER SHIN WITH DAGESH AND SIN DOT;Lo;0;R;FB49 05C2;;;;N;;;;;
-FB2E;HEBREW LETTER ALEF WITH PATAH;Lo;0;R;05D0 05B7;;;;N;;;;;
-FB2F;HEBREW LETTER ALEF WITH QAMATS;Lo;0;R;05D0 05B8;;;;N;;;;;
-FB30;HEBREW LETTER ALEF WITH MAPIQ;Lo;0;R;05D0 05BC;;;;N;;;;;
-FB31;HEBREW LETTER BET WITH DAGESH;Lo;0;R;05D1 05BC;;;;N;;;;;
-FB32;HEBREW LETTER GIMEL WITH DAGESH;Lo;0;R;05D2 05BC;;;;N;;;;;
-FB33;HEBREW LETTER DALET WITH DAGESH;Lo;0;R;05D3 05BC;;;;N;;;;;
-FB34;HEBREW LETTER HE WITH MAPIQ;Lo;0;R;05D4 05BC;;;;N;;;;;
-FB35;HEBREW LETTER VAV WITH DAGESH;Lo;0;R;05D5 05BC;;;;N;;;;;
-FB36;HEBREW LETTER ZAYIN WITH DAGESH;Lo;0;R;05D6 05BC;;;;N;;;;;
-FB38;HEBREW LETTER TET WITH DAGESH;Lo;0;R;05D8 05BC;;;;N;;;;;
-FB39;HEBREW LETTER YOD WITH DAGESH;Lo;0;R;05D9 05BC;;;;N;;;;;
-FB3A;HEBREW LETTER FINAL KAF WITH DAGESH;Lo;0;R;05DA 05BC;;;;N;;;;;
-FB3B;HEBREW LETTER KAF WITH DAGESH;Lo;0;R;05DB 05BC;;;;N;;;;;
-FB3C;HEBREW LETTER LAMED WITH DAGESH;Lo;0;R;05DC 05BC;;;;N;;;;;
-FB3E;HEBREW LETTER MEM WITH DAGESH;Lo;0;R;05DE 05BC;;;;N;;;;;
-FB40;HEBREW LETTER NUN WITH DAGESH;Lo;0;R;05E0 05BC;;;;N;;;;;
-FB41;HEBREW LETTER SAMEKH WITH DAGESH;Lo;0;R;05E1 05BC;;;;N;;;;;
-FB43;HEBREW LETTER FINAL PE WITH DAGESH;Lo;0;R;05E3 05BC;;;;N;;;;;
-FB44;HEBREW LETTER PE WITH DAGESH;Lo;0;R;05E4 05BC;;;;N;;;;;
-FB46;HEBREW LETTER TSADI WITH DAGESH;Lo;0;R;05E6 05BC;;;;N;;;;;
-FB47;HEBREW LETTER QOF WITH DAGESH;Lo;0;R;05E7 05BC;;;;N;;;;;
-FB48;HEBREW LETTER RESH WITH DAGESH;Lo;0;R;05E8 05BC;;;;N;;;;;
-FB49;HEBREW LETTER SHIN WITH DAGESH;Lo;0;R;05E9 05BC;;;;N;;;;;
-FB4A;HEBREW LETTER TAV WITH DAGESH;Lo;0;R;05EA 05BC;;;;N;;;;;
-FB4B;HEBREW LETTER VAV WITH HOLAM;Lo;0;R;05D5 05B9;;;;N;;;;;
-FB4C;HEBREW LETTER BET WITH RAFE;Lo;0;R;05D1 05BF;;;;N;;;;;
-FB4D;HEBREW LETTER KAF WITH RAFE;Lo;0;R;05DB 05BF;;;;N;;;;;
-FB4E;HEBREW LETTER PE WITH RAFE;Lo;0;R;05E4 05BF;;;;N;;;;;
-FB4F;HEBREW LIGATURE ALEF LAMED;Lo;0;R;<compat> 05D0 05DC;;;;N;;;;;
-FB50;ARABIC LETTER ALEF WASLA ISOLATED FORM;Lo;0;AL;<isolated> 0671;;;;N;;;;;
-FB51;ARABIC LETTER ALEF WASLA FINAL FORM;Lo;0;AL;<final> 0671;;;;N;;;;;
-FB52;ARABIC LETTER BEEH ISOLATED FORM;Lo;0;AL;<isolated> 067B;;;;N;;;;;
-FB53;ARABIC LETTER BEEH FINAL FORM;Lo;0;AL;<final> 067B;;;;N;;;;;
-FB54;ARABIC LETTER BEEH INITIAL FORM;Lo;0;AL;<initial> 067B;;;;N;;;;;
-FB55;ARABIC LETTER BEEH MEDIAL FORM;Lo;0;AL;<medial> 067B;;;;N;;;;;
-FB56;ARABIC LETTER PEH ISOLATED FORM;Lo;0;AL;<isolated> 067E;;;;N;;;;;
-FB57;ARABIC LETTER PEH FINAL FORM;Lo;0;AL;<final> 067E;;;;N;;;;;
-FB58;ARABIC LETTER PEH INITIAL FORM;Lo;0;AL;<initial> 067E;;;;N;;;;;
-FB59;ARABIC LETTER PEH MEDIAL FORM;Lo;0;AL;<medial> 067E;;;;N;;;;;
-FB5A;ARABIC LETTER BEHEH ISOLATED FORM;Lo;0;AL;<isolated> 0680;;;;N;;;;;
-FB5B;ARABIC LETTER BEHEH FINAL FORM;Lo;0;AL;<final> 0680;;;;N;;;;;
-FB5C;ARABIC LETTER BEHEH INITIAL FORM;Lo;0;AL;<initial> 0680;;;;N;;;;;
-FB5D;ARABIC LETTER BEHEH MEDIAL FORM;Lo;0;AL;<medial> 0680;;;;N;;;;;
-FB5E;ARABIC LETTER TTEHEH ISOLATED FORM;Lo;0;AL;<isolated> 067A;;;;N;;;;;
-FB5F;ARABIC LETTER TTEHEH FINAL FORM;Lo;0;AL;<final> 067A;;;;N;;;;;
-FB60;ARABIC LETTER TTEHEH INITIAL FORM;Lo;0;AL;<initial> 067A;;;;N;;;;;
-FB61;ARABIC LETTER TTEHEH MEDIAL FORM;Lo;0;AL;<medial> 067A;;;;N;;;;;
-FB62;ARABIC LETTER TEHEH ISOLATED FORM;Lo;0;AL;<isolated> 067F;;;;N;;;;;
-FB63;ARABIC LETTER TEHEH FINAL FORM;Lo;0;AL;<final> 067F;;;;N;;;;;
-FB64;ARABIC LETTER TEHEH INITIAL FORM;Lo;0;AL;<initial> 067F;;;;N;;;;;
-FB65;ARABIC LETTER TEHEH MEDIAL FORM;Lo;0;AL;<medial> 067F;;;;N;;;;;
-FB66;ARABIC LETTER TTEH ISOLATED FORM;Lo;0;AL;<isolated> 0679;;;;N;;;;;
-FB67;ARABIC LETTER TTEH FINAL FORM;Lo;0;AL;<final> 0679;;;;N;;;;;
-FB68;ARABIC LETTER TTEH INITIAL FORM;Lo;0;AL;<initial> 0679;;;;N;;;;;
-FB69;ARABIC LETTER TTEH MEDIAL FORM;Lo;0;AL;<medial> 0679;;;;N;;;;;
-FB6A;ARABIC LETTER VEH ISOLATED FORM;Lo;0;AL;<isolated> 06A4;;;;N;;;;;
-FB6B;ARABIC LETTER VEH FINAL FORM;Lo;0;AL;<final> 06A4;;;;N;;;;;
-FB6C;ARABIC LETTER VEH INITIAL FORM;Lo;0;AL;<initial> 06A4;;;;N;;;;;
-FB6D;ARABIC LETTER VEH MEDIAL FORM;Lo;0;AL;<medial> 06A4;;;;N;;;;;
-FB6E;ARABIC LETTER PEHEH ISOLATED FORM;Lo;0;AL;<isolated> 06A6;;;;N;;;;;
-FB6F;ARABIC LETTER PEHEH FINAL FORM;Lo;0;AL;<final> 06A6;;;;N;;;;;
-FB70;ARABIC LETTER PEHEH INITIAL FORM;Lo;0;AL;<initial> 06A6;;;;N;;;;;
-FB71;ARABIC LETTER PEHEH MEDIAL FORM;Lo;0;AL;<medial> 06A6;;;;N;;;;;
-FB72;ARABIC LETTER DYEH ISOLATED FORM;Lo;0;AL;<isolated> 0684;;;;N;;;;;
-FB73;ARABIC LETTER DYEH FINAL FORM;Lo;0;AL;<final> 0684;;;;N;;;;;
-FB74;ARABIC LETTER DYEH INITIAL FORM;Lo;0;AL;<initial> 0684;;;;N;;;;;
-FB75;ARABIC LETTER DYEH MEDIAL FORM;Lo;0;AL;<medial> 0684;;;;N;;;;;
-FB76;ARABIC LETTER NYEH ISOLATED FORM;Lo;0;AL;<isolated> 0683;;;;N;;;;;
-FB77;ARABIC LETTER NYEH FINAL FORM;Lo;0;AL;<final> 0683;;;;N;;;;;
-FB78;ARABIC LETTER NYEH INITIAL FORM;Lo;0;AL;<initial> 0683;;;;N;;;;;
-FB79;ARABIC LETTER NYEH MEDIAL FORM;Lo;0;AL;<medial> 0683;;;;N;;;;;
-FB7A;ARABIC LETTER TCHEH ISOLATED FORM;Lo;0;AL;<isolated> 0686;;;;N;;;;;
-FB7B;ARABIC LETTER TCHEH FINAL FORM;Lo;0;AL;<final> 0686;;;;N;;;;;
-FB7C;ARABIC LETTER TCHEH INITIAL FORM;Lo;0;AL;<initial> 0686;;;;N;;;;;
-FB7D;ARABIC LETTER TCHEH MEDIAL FORM;Lo;0;AL;<medial> 0686;;;;N;;;;;
-FB7E;ARABIC LETTER TCHEHEH ISOLATED FORM;Lo;0;AL;<isolated> 0687;;;;N;;;;;
-FB7F;ARABIC LETTER TCHEHEH FINAL FORM;Lo;0;AL;<final> 0687;;;;N;;;;;
-FB80;ARABIC LETTER TCHEHEH INITIAL FORM;Lo;0;AL;<initial> 0687;;;;N;;;;;
-FB81;ARABIC LETTER TCHEHEH MEDIAL FORM;Lo;0;AL;<medial> 0687;;;;N;;;;;
-FB82;ARABIC LETTER DDAHAL ISOLATED FORM;Lo;0;AL;<isolated> 068D;;;;N;;;;;
-FB83;ARABIC LETTER DDAHAL FINAL FORM;Lo;0;AL;<final> 068D;;;;N;;;;;
-FB84;ARABIC LETTER DAHAL ISOLATED FORM;Lo;0;AL;<isolated> 068C;;;;N;;;;;
-FB85;ARABIC LETTER DAHAL FINAL FORM;Lo;0;AL;<final> 068C;;;;N;;;;;
-FB86;ARABIC LETTER DUL ISOLATED FORM;Lo;0;AL;<isolated> 068E;;;;N;;;;;
-FB87;ARABIC LETTER DUL FINAL FORM;Lo;0;AL;<final> 068E;;;;N;;;;;
-FB88;ARABIC LETTER DDAL ISOLATED FORM;Lo;0;AL;<isolated> 0688;;;;N;;;;;
-FB89;ARABIC LETTER DDAL FINAL FORM;Lo;0;AL;<final> 0688;;;;N;;;;;
-FB8A;ARABIC LETTER JEH ISOLATED FORM;Lo;0;AL;<isolated> 0698;;;;N;;;;;
-FB8B;ARABIC LETTER JEH FINAL FORM;Lo;0;AL;<final> 0698;;;;N;;;;;
-FB8C;ARABIC LETTER RREH ISOLATED FORM;Lo;0;AL;<isolated> 0691;;;;N;;;;;
-FB8D;ARABIC LETTER RREH FINAL FORM;Lo;0;AL;<final> 0691;;;;N;;;;;
-FB8E;ARABIC LETTER KEHEH ISOLATED FORM;Lo;0;AL;<isolated> 06A9;;;;N;;;;;
-FB8F;ARABIC LETTER KEHEH FINAL FORM;Lo;0;AL;<final> 06A9;;;;N;;;;;
-FB90;ARABIC LETTER KEHEH INITIAL FORM;Lo;0;AL;<initial> 06A9;;;;N;;;;;
-FB91;ARABIC LETTER KEHEH MEDIAL FORM;Lo;0;AL;<medial> 06A9;;;;N;;;;;
-FB92;ARABIC LETTER GAF ISOLATED FORM;Lo;0;AL;<isolated> 06AF;;;;N;;;;;
-FB93;ARABIC LETTER GAF FINAL FORM;Lo;0;AL;<final> 06AF;;;;N;;;;;
-FB94;ARABIC LETTER GAF INITIAL FORM;Lo;0;AL;<initial> 06AF;;;;N;;;;;
-FB95;ARABIC LETTER GAF MEDIAL FORM;Lo;0;AL;<medial> 06AF;;;;N;;;;;
-FB96;ARABIC LETTER GUEH ISOLATED FORM;Lo;0;AL;<isolated> 06B3;;;;N;;;;;
-FB97;ARABIC LETTER GUEH FINAL FORM;Lo;0;AL;<final> 06B3;;;;N;;;;;
-FB98;ARABIC LETTER GUEH INITIAL FORM;Lo;0;AL;<initial> 06B3;;;;N;;;;;
-FB99;ARABIC LETTER GUEH MEDIAL FORM;Lo;0;AL;<medial> 06B3;;;;N;;;;;
-FB9A;ARABIC LETTER NGOEH ISOLATED FORM;Lo;0;AL;<isolated> 06B1;;;;N;;;;;
-FB9B;ARABIC LETTER NGOEH FINAL FORM;Lo;0;AL;<final> 06B1;;;;N;;;;;
-FB9C;ARABIC LETTER NGOEH INITIAL FORM;Lo;0;AL;<initial> 06B1;;;;N;;;;;
-FB9D;ARABIC LETTER NGOEH MEDIAL FORM;Lo;0;AL;<medial> 06B1;;;;N;;;;;
-FB9E;ARABIC LETTER NOON GHUNNA ISOLATED FORM;Lo;0;AL;<isolated> 06BA;;;;N;;;;;
-FB9F;ARABIC LETTER NOON GHUNNA FINAL FORM;Lo;0;AL;<final> 06BA;;;;N;;;;;
-FBA0;ARABIC LETTER RNOON ISOLATED FORM;Lo;0;AL;<isolated> 06BB;;;;N;;;;;
-FBA1;ARABIC LETTER RNOON FINAL FORM;Lo;0;AL;<final> 06BB;;;;N;;;;;
-FBA2;ARABIC LETTER RNOON INITIAL FORM;Lo;0;AL;<initial> 06BB;;;;N;;;;;
-FBA3;ARABIC LETTER RNOON MEDIAL FORM;Lo;0;AL;<medial> 06BB;;;;N;;;;;
-FBA4;ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 06C0;;;;N;;;;;
-FBA5;ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM;Lo;0;AL;<final> 06C0;;;;N;;;;;
-FBA6;ARABIC LETTER HEH GOAL ISOLATED FORM;Lo;0;AL;<isolated> 06C1;;;;N;;;;;
-FBA7;ARABIC LETTER HEH GOAL FINAL FORM;Lo;0;AL;<final> 06C1;;;;N;;;;;
-FBA8;ARABIC LETTER HEH GOAL INITIAL FORM;Lo;0;AL;<initial> 06C1;;;;N;;;;;
-FBA9;ARABIC LETTER HEH GOAL MEDIAL FORM;Lo;0;AL;<medial> 06C1;;;;N;;;;;
-FBAA;ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM;Lo;0;AL;<isolated> 06BE;;;;N;;;;;
-FBAB;ARABIC LETTER HEH DOACHASHMEE FINAL FORM;Lo;0;AL;<final> 06BE;;;;N;;;;;
-FBAC;ARABIC LETTER HEH DOACHASHMEE INITIAL FORM;Lo;0;AL;<initial> 06BE;;;;N;;;;;
-FBAD;ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM;Lo;0;AL;<medial> 06BE;;;;N;;;;;
-FBAE;ARABIC LETTER YEH BARREE ISOLATED FORM;Lo;0;AL;<isolated> 06D2;;;;N;;;;;
-FBAF;ARABIC LETTER YEH BARREE FINAL FORM;Lo;0;AL;<final> 06D2;;;;N;;;;;
-FBB0;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 06D3;;;;N;;;;;
-FBB1;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 06D3;;;;N;;;;;
-FBB2;ARABIC SYMBOL DOT ABOVE;Sk;0;AL;;;;;N;;;;;
-FBB3;ARABIC SYMBOL DOT BELOW;Sk;0;AL;;;;;N;;;;;
-FBB4;ARABIC SYMBOL TWO DOTS ABOVE;Sk;0;AL;;;;;N;;;;;
-FBB5;ARABIC SYMBOL TWO DOTS BELOW;Sk;0;AL;;;;;N;;;;;
-FBB6;ARABIC SYMBOL THREE DOTS ABOVE;Sk;0;AL;;;;;N;;;;;
-FBB7;ARABIC SYMBOL THREE DOTS BELOW;Sk;0;AL;;;;;N;;;;;
-FBB8;ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE;Sk;0;AL;;;;;N;;;;;
-FBB9;ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW;Sk;0;AL;;;;;N;;;;;
-FBBA;ARABIC SYMBOL FOUR DOTS ABOVE;Sk;0;AL;;;;;N;;;;;
-FBBB;ARABIC SYMBOL FOUR DOTS BELOW;Sk;0;AL;;;;;N;;;;;
-FBBC;ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW;Sk;0;AL;;;;;N;;;;;
-FBBD;ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE;Sk;0;AL;;;;;N;;;;;
-FBBE;ARABIC SYMBOL TWO DOTS VERTICALLY BELOW;Sk;0;AL;;;;;N;;;;;
-FBBF;ARABIC SYMBOL RING;Sk;0;AL;;;;;N;;;;;
-FBC0;ARABIC SYMBOL SMALL TAH ABOVE;Sk;0;AL;;;;;N;;;;;
-FBC1;ARABIC SYMBOL SMALL TAH BELOW;Sk;0;AL;;;;;N;;;;;
-FBD3;ARABIC LETTER NG ISOLATED FORM;Lo;0;AL;<isolated> 06AD;;;;N;;;;;
-FBD4;ARABIC LETTER NG FINAL FORM;Lo;0;AL;<final> 06AD;;;;N;;;;;
-FBD5;ARABIC LETTER NG INITIAL FORM;Lo;0;AL;<initial> 06AD;;;;N;;;;;
-FBD6;ARABIC LETTER NG MEDIAL FORM;Lo;0;AL;<medial> 06AD;;;;N;;;;;
-FBD7;ARABIC LETTER U ISOLATED FORM;Lo;0;AL;<isolated> 06C7;;;;N;;;;;
-FBD8;ARABIC LETTER U FINAL FORM;Lo;0;AL;<final> 06C7;;;;N;;;;;
-FBD9;ARABIC LETTER OE ISOLATED FORM;Lo;0;AL;<isolated> 06C6;;;;N;;;;;
-FBDA;ARABIC LETTER OE FINAL FORM;Lo;0;AL;<final> 06C6;;;;N;;;;;
-FBDB;ARABIC LETTER YU ISOLATED FORM;Lo;0;AL;<isolated> 06C8;;;;N;;;;;
-FBDC;ARABIC LETTER YU FINAL FORM;Lo;0;AL;<final> 06C8;;;;N;;;;;
-FBDD;ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0677;;;;N;;;;;
-FBDE;ARABIC LETTER VE ISOLATED FORM;Lo;0;AL;<isolated> 06CB;;;;N;;;;;
-FBDF;ARABIC LETTER VE FINAL FORM;Lo;0;AL;<final> 06CB;;;;N;;;;;
-FBE0;ARABIC LETTER KIRGHIZ OE ISOLATED FORM;Lo;0;AL;<isolated> 06C5;;;;N;;;;;
-FBE1;ARABIC LETTER KIRGHIZ OE FINAL FORM;Lo;0;AL;<final> 06C5;;;;N;;;;;
-FBE2;ARABIC LETTER KIRGHIZ YU ISOLATED FORM;Lo;0;AL;<isolated> 06C9;;;;N;;;;;
-FBE3;ARABIC LETTER KIRGHIZ YU FINAL FORM;Lo;0;AL;<final> 06C9;;;;N;;;;;
-FBE4;ARABIC LETTER E ISOLATED FORM;Lo;0;AL;<isolated> 06D0;;;;N;;;;;
-FBE5;ARABIC LETTER E FINAL FORM;Lo;0;AL;<final> 06D0;;;;N;;;;;
-FBE6;ARABIC LETTER E INITIAL FORM;Lo;0;AL;<initial> 06D0;;;;N;;;;;
-FBE7;ARABIC LETTER E MEDIAL FORM;Lo;0;AL;<medial> 06D0;;;;N;;;;;
-FBE8;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM;Lo;0;AL;<initial> 0649;;;;N;;;;;
-FBE9;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM;Lo;0;AL;<medial> 0649;;;;N;;;;;
-FBEA;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0626 0627;;;;N;;;;;
-FBEB;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM;Lo;0;AL;<final> 0626 0627;;;;N;;;;;
-FBEC;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM;Lo;0;AL;<isolated> 0626 06D5;;;;N;;;;;
-FBED;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM;Lo;0;AL;<final> 0626 06D5;;;;N;;;;;
-FBEE;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM;Lo;0;AL;<isolated> 0626 0648;;;;N;;;;;
-FBEF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM;Lo;0;AL;<final> 0626 0648;;;;N;;;;;
-FBF0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C7;;;;N;;;;;
-FBF1;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM;Lo;0;AL;<final> 0626 06C7;;;;N;;;;;
-FBF2;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C6;;;;N;;;;;
-FBF3;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM;Lo;0;AL;<final> 0626 06C6;;;;N;;;;;
-FBF4;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM;Lo;0;AL;<isolated> 0626 06C8;;;;N;;;;;
-FBF5;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM;Lo;0;AL;<final> 0626 06C8;;;;N;;;;;
-FBF6;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM;Lo;0;AL;<isolated> 0626 06D0;;;;N;;;;;
-FBF7;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM;Lo;0;AL;<final> 0626 06D0;;;;N;;;;;
-FBF8;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM;Lo;0;AL;<initial> 0626 06D0;;;;N;;;;;
-FBF9;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0626 0649;;;;N;;;;;
-FBFA;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0626 0649;;;;N;;;;;
-FBFB;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM;Lo;0;AL;<initial> 0626 0649;;;;N;;;;;
-FBFC;ARABIC LETTER FARSI YEH ISOLATED FORM;Lo;0;AL;<isolated> 06CC;;;;N;;;;;
-FBFD;ARABIC LETTER FARSI YEH FINAL FORM;Lo;0;AL;<final> 06CC;;;;N;;;;;
-FBFE;ARABIC LETTER FARSI YEH INITIAL FORM;Lo;0;AL;<initial> 06CC;;;;N;;;;;
-FBFF;ARABIC LETTER FARSI YEH MEDIAL FORM;Lo;0;AL;<medial> 06CC;;;;N;;;;;
-FC00;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0626 062C;;;;N;;;;;
-FC01;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0626 062D;;;;N;;;;;
-FC02;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0626 0645;;;;N;;;;;
-FC03;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0626 0649;;;;N;;;;;
-FC04;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0626 064A;;;;N;;;;;
-FC05;ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0628 062C;;;;N;;;;;
-FC06;ARABIC LIGATURE BEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0628 062D;;;;N;;;;;
-FC07;ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0628 062E;;;;N;;;;;
-FC08;ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0628 0645;;;;N;;;;;
-FC09;ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0628 0649;;;;N;;;;;
-FC0A;ARABIC LIGATURE BEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0628 064A;;;;N;;;;;
-FC0B;ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062A 062C;;;;N;;;;;
-FC0C;ARABIC LIGATURE TEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062A 062D;;;;N;;;;;
-FC0D;ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 062A 062E;;;;N;;;;;
-FC0E;ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062A 0645;;;;N;;;;;
-FC0F;ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062A 0649;;;;N;;;;;
-FC10;ARABIC LIGATURE TEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062A 064A;;;;N;;;;;
-FC11;ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062B 062C;;;;N;;;;;
-FC12;ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062B 0645;;;;N;;;;;
-FC13;ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062B 0649;;;;N;;;;;
-FC14;ARABIC LIGATURE THEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062B 064A;;;;N;;;;;
-FC15;ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062C 062D;;;;N;;;;;
-FC16;ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062C 0645;;;;N;;;;;
-FC17;ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062D 062C;;;;N;;;;;
-FC18;ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062D 0645;;;;N;;;;;
-FC19;ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062E 062C;;;;N;;;;;
-FC1A;ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 062E 062D;;;;N;;;;;
-FC1B;ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 062E 0645;;;;N;;;;;
-FC1C;ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0633 062C;;;;N;;;;;
-FC1D;ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0633 062D;;;;N;;;;;
-FC1E;ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0633 062E;;;;N;;;;;
-FC1F;ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0633 0645;;;;N;;;;;
-FC20;ARABIC LIGATURE SAD WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0635 062D;;;;N;;;;;
-FC21;ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0635 0645;;;;N;;;;;
-FC22;ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0636 062C;;;;N;;;;;
-FC23;ARABIC LIGATURE DAD WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0636 062D;;;;N;;;;;
-FC24;ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0636 062E;;;;N;;;;;
-FC25;ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0636 0645;;;;N;;;;;
-FC26;ARABIC LIGATURE TAH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0637 062D;;;;N;;;;;
-FC27;ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0637 0645;;;;N;;;;;
-FC28;ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0638 0645;;;;N;;;;;
-FC29;ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0639 062C;;;;N;;;;;
-FC2A;ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0639 0645;;;;N;;;;;
-FC2B;ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 063A 062C;;;;N;;;;;
-FC2C;ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 063A 0645;;;;N;;;;;
-FC2D;ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0641 062C;;;;N;;;;;
-FC2E;ARABIC LIGATURE FEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0641 062D;;;;N;;;;;
-FC2F;ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0641 062E;;;;N;;;;;
-FC30;ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0641 0645;;;;N;;;;;
-FC31;ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0641 0649;;;;N;;;;;
-FC32;ARABIC LIGATURE FEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0641 064A;;;;N;;;;;
-FC33;ARABIC LIGATURE QAF WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0642 062D;;;;N;;;;;
-FC34;ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0642 0645;;;;N;;;;;
-FC35;ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0642 0649;;;;N;;;;;
-FC36;ARABIC LIGATURE QAF WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0642 064A;;;;N;;;;;
-FC37;ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0643 0627;;;;N;;;;;
-FC38;ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0643 062C;;;;N;;;;;
-FC39;ARABIC LIGATURE KAF WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0643 062D;;;;N;;;;;
-FC3A;ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0643 062E;;;;N;;;;;
-FC3B;ARABIC LIGATURE KAF WITH LAM ISOLATED FORM;Lo;0;AL;<isolated> 0643 0644;;;;N;;;;;
-FC3C;ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0643 0645;;;;N;;;;;
-FC3D;ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0643 0649;;;;N;;;;;
-FC3E;ARABIC LIGATURE KAF WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0643 064A;;;;N;;;;;
-FC3F;ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0644 062C;;;;N;;;;;
-FC40;ARABIC LIGATURE LAM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0644 062D;;;;N;;;;;
-FC41;ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0644 062E;;;;N;;;;;
-FC42;ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0644 0645;;;;N;;;;;
-FC43;ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0644 0649;;;;N;;;;;
-FC44;ARABIC LIGATURE LAM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0644 064A;;;;N;;;;;
-FC45;ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645 062C;;;;N;;;;;
-FC46;ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0645 062D;;;;N;;;;;
-FC47;ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0645 062E;;;;N;;;;;
-FC48;ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645 0645;;;;N;;;;;
-FC49;ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0645 0649;;;;N;;;;;
-FC4A;ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0645 064A;;;;N;;;;;
-FC4B;ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0646 062C;;;;N;;;;;
-FC4C;ARABIC LIGATURE NOON WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0646 062D;;;;N;;;;;
-FC4D;ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0646 062E;;;;N;;;;;
-FC4E;ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0646 0645;;;;N;;;;;
-FC4F;ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0646 0649;;;;N;;;;;
-FC50;ARABIC LIGATURE NOON WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0646 064A;;;;N;;;;;
-FC51;ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0647 062C;;;;N;;;;;
-FC52;ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0647 0645;;;;N;;;;;
-FC53;ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0647 0649;;;;N;;;;;
-FC54;ARABIC LIGATURE HEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0647 064A;;;;N;;;;;
-FC55;ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 064A 062C;;;;N;;;;;
-FC56;ARABIC LIGATURE YEH WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 064A 062D;;;;N;;;;;
-FC57;ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 064A 062E;;;;N;;;;;
-FC58;ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 064A 0645;;;;N;;;;;
-FC59;ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 064A 0649;;;;N;;;;;
-FC5A;ARABIC LIGATURE YEH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 064A 064A;;;;N;;;;;
-FC5B;ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0630 0670;;;;N;;;;;
-FC5C;ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0631 0670;;;;N;;;;;
-FC5D;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0649 0670;;;;N;;;;;
-FC5E;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C 0651;;;;N;;;;;
-FC5F;ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D 0651;;;;N;;;;;
-FC60;ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E 0651;;;;N;;;;;
-FC61;ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064F 0651;;;;N;;;;;
-FC62;ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0650 0651;;;;N;;;;;
-FC63;ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0020 0651 0670;;;;N;;;;;
-FC64;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM;Lo;0;AL;<final> 0626 0631;;;;N;;;;;
-FC65;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0626 0632;;;;N;;;;;
-FC66;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM;Lo;0;AL;<final> 0626 0645;;;;N;;;;;
-FC67;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM;Lo;0;AL;<final> 0626 0646;;;;N;;;;;
-FC68;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0626 0649;;;;N;;;;;
-FC69;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM;Lo;0;AL;<final> 0626 064A;;;;N;;;;;
-FC6A;ARABIC LIGATURE BEH WITH REH FINAL FORM;Lo;0;AL;<final> 0628 0631;;;;N;;;;;
-FC6B;ARABIC LIGATURE BEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0628 0632;;;;N;;;;;
-FC6C;ARABIC LIGATURE BEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0628 0645;;;;N;;;;;
-FC6D;ARABIC LIGATURE BEH WITH NOON FINAL FORM;Lo;0;AL;<final> 0628 0646;;;;N;;;;;
-FC6E;ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0628 0649;;;;N;;;;;
-FC6F;ARABIC LIGATURE BEH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 064A;;;;N;;;;;
-FC70;ARABIC LIGATURE TEH WITH REH FINAL FORM;Lo;0;AL;<final> 062A 0631;;;;N;;;;;
-FC71;ARABIC LIGATURE TEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 062A 0632;;;;N;;;;;
-FC72;ARABIC LIGATURE TEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 062A 0645;;;;N;;;;;
-FC73;ARABIC LIGATURE TEH WITH NOON FINAL FORM;Lo;0;AL;<final> 062A 0646;;;;N;;;;;
-FC74;ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 0649;;;;N;;;;;
-FC75;ARABIC LIGATURE TEH WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 064A;;;;N;;;;;
-FC76;ARABIC LIGATURE THEH WITH REH FINAL FORM;Lo;0;AL;<final> 062B 0631;;;;N;;;;;
-FC77;ARABIC LIGATURE THEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 062B 0632;;;;N;;;;;
-FC78;ARABIC LIGATURE THEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 062B 0645;;;;N;;;;;
-FC79;ARABIC LIGATURE THEH WITH NOON FINAL FORM;Lo;0;AL;<final> 062B 0646;;;;N;;;;;
-FC7A;ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062B 0649;;;;N;;;;;
-FC7B;ARABIC LIGATURE THEH WITH YEH FINAL FORM;Lo;0;AL;<final> 062B 064A;;;;N;;;;;
-FC7C;ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0641 0649;;;;N;;;;;
-FC7D;ARABIC LIGATURE FEH WITH YEH FINAL FORM;Lo;0;AL;<final> 0641 064A;;;;N;;;;;
-FC7E;ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0642 0649;;;;N;;;;;
-FC7F;ARABIC LIGATURE QAF WITH YEH FINAL FORM;Lo;0;AL;<final> 0642 064A;;;;N;;;;;
-FC80;ARABIC LIGATURE KAF WITH ALEF FINAL FORM;Lo;0;AL;<final> 0643 0627;;;;N;;;;;
-FC81;ARABIC LIGATURE KAF WITH LAM FINAL FORM;Lo;0;AL;<final> 0643 0644;;;;N;;;;;
-FC82;ARABIC LIGATURE KAF WITH MEEM FINAL FORM;Lo;0;AL;<final> 0643 0645;;;;N;;;;;
-FC83;ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0643 0649;;;;N;;;;;
-FC84;ARABIC LIGATURE KAF WITH YEH FINAL FORM;Lo;0;AL;<final> 0643 064A;;;;N;;;;;
-FC85;ARABIC LIGATURE LAM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 0645;;;;N;;;;;
-FC86;ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0644 0649;;;;N;;;;;
-FC87;ARABIC LIGATURE LAM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 064A;;;;N;;;;;
-FC88;ARABIC LIGATURE MEEM WITH ALEF FINAL FORM;Lo;0;AL;<final> 0645 0627;;;;N;;;;;
-FC89;ARABIC LIGATURE MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0645 0645;;;;N;;;;;
-FC8A;ARABIC LIGATURE NOON WITH REH FINAL FORM;Lo;0;AL;<final> 0646 0631;;;;N;;;;;
-FC8B;ARABIC LIGATURE NOON WITH ZAIN FINAL FORM;Lo;0;AL;<final> 0646 0632;;;;N;;;;;
-FC8C;ARABIC LIGATURE NOON WITH MEEM FINAL FORM;Lo;0;AL;<final> 0646 0645;;;;N;;;;;
-FC8D;ARABIC LIGATURE NOON WITH NOON FINAL FORM;Lo;0;AL;<final> 0646 0646;;;;N;;;;;
-FC8E;ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 0649;;;;N;;;;;
-FC8F;ARABIC LIGATURE NOON WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 064A;;;;N;;;;;
-FC90;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM;Lo;0;AL;<final> 0649 0670;;;;N;;;;;
-FC91;ARABIC LIGATURE YEH WITH REH FINAL FORM;Lo;0;AL;<final> 064A 0631;;;;N;;;;;
-FC92;ARABIC LIGATURE YEH WITH ZAIN FINAL FORM;Lo;0;AL;<final> 064A 0632;;;;N;;;;;
-FC93;ARABIC LIGATURE YEH WITH MEEM FINAL FORM;Lo;0;AL;<final> 064A 0645;;;;N;;;;;
-FC94;ARABIC LIGATURE YEH WITH NOON FINAL FORM;Lo;0;AL;<final> 064A 0646;;;;N;;;;;
-FC95;ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 064A 0649;;;;N;;;;;
-FC96;ARABIC LIGATURE YEH WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 064A;;;;N;;;;;
-FC97;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0626 062C;;;;N;;;;;
-FC98;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0626 062D;;;;N;;;;;
-FC99;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0626 062E;;;;N;;;;;
-FC9A;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0626 0645;;;;N;;;;;
-FC9B;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0626 0647;;;;N;;;;;
-FC9C;ARABIC LIGATURE BEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0628 062C;;;;N;;;;;
-FC9D;ARABIC LIGATURE BEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0628 062D;;;;N;;;;;
-FC9E;ARABIC LIGATURE BEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0628 062E;;;;N;;;;;
-FC9F;ARABIC LIGATURE BEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0628 0645;;;;N;;;;;
-FCA0;ARABIC LIGATURE BEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0628 0647;;;;N;;;;;
-FCA1;ARABIC LIGATURE TEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C;;;;N;;;;;
-FCA2;ARABIC LIGATURE TEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062A 062D;;;;N;;;;;
-FCA3;ARABIC LIGATURE TEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 062A 062E;;;;N;;;;;
-FCA4;ARABIC LIGATURE TEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 0645;;;;N;;;;;
-FCA5;ARABIC LIGATURE TEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 062A 0647;;;;N;;;;;
-FCA6;ARABIC LIGATURE THEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062B 0645;;;;N;;;;;
-FCA7;ARABIC LIGATURE JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062C 062D;;;;N;;;;;
-FCA8;ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062C 0645;;;;N;;;;;
-FCA9;ARABIC LIGATURE HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062D 062C;;;;N;;;;;
-FCAA;ARABIC LIGATURE HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062D 0645;;;;N;;;;;
-FCAB;ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062E 062C;;;;N;;;;;
-FCAC;ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062E 0645;;;;N;;;;;
-FCAD;ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 062C;;;;N;;;;;
-FCAE;ARABIC LIGATURE SEEN WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 062D;;;;N;;;;;
-FCAF;ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0633 062E;;;;N;;;;;
-FCB0;ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645;;;;N;;;;;
-FCB1;ARABIC LIGATURE SAD WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0635 062D;;;;N;;;;;
-FCB2;ARABIC LIGATURE SAD WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0635 062E;;;;N;;;;;
-FCB3;ARABIC LIGATURE SAD WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645;;;;N;;;;;
-FCB4;ARABIC LIGATURE DAD WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0636 062C;;;;N;;;;;
-FCB5;ARABIC LIGATURE DAD WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0636 062D;;;;N;;;;;
-FCB6;ARABIC LIGATURE DAD WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0636 062E;;;;N;;;;;
-FCB7;ARABIC LIGATURE DAD WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0636 0645;;;;N;;;;;
-FCB8;ARABIC LIGATURE TAH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0637 062D;;;;N;;;;;
-FCB9;ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0638 0645;;;;N;;;;;
-FCBA;ARABIC LIGATURE AIN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0639 062C;;;;N;;;;;
-FCBB;ARABIC LIGATURE AIN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 0645;;;;N;;;;;
-FCBC;ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 063A 062C;;;;N;;;;;
-FCBD;ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 063A 0645;;;;N;;;;;
-FCBE;ARABIC LIGATURE FEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0641 062C;;;;N;;;;;
-FCBF;ARABIC LIGATURE FEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0641 062D;;;;N;;;;;
-FCC0;ARABIC LIGATURE FEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0641 062E;;;;N;;;;;
-FCC1;ARABIC LIGATURE FEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0641 0645;;;;N;;;;;
-FCC2;ARABIC LIGATURE QAF WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0642 062D;;;;N;;;;;
-FCC3;ARABIC LIGATURE QAF WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0642 0645;;;;N;;;;;
-FCC4;ARABIC LIGATURE KAF WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0643 062C;;;;N;;;;;
-FCC5;ARABIC LIGATURE KAF WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0643 062D;;;;N;;;;;
-FCC6;ARABIC LIGATURE KAF WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0643 062E;;;;N;;;;;
-FCC7;ARABIC LIGATURE KAF WITH LAM INITIAL FORM;Lo;0;AL;<initial> 0643 0644;;;;N;;;;;
-FCC8;ARABIC LIGATURE KAF WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0643 0645;;;;N;;;;;
-FCC9;ARABIC LIGATURE LAM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C;;;;N;;;;;
-FCCA;ARABIC LIGATURE LAM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0644 062D;;;;N;;;;;
-FCCB;ARABIC LIGATURE LAM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0644 062E;;;;N;;;;;
-FCCC;ARABIC LIGATURE LAM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 0645;;;;N;;;;;
-FCCD;ARABIC LIGATURE LAM WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0644 0647;;;;N;;;;;
-FCCE;ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C;;;;N;;;;;
-FCCF;ARABIC LIGATURE MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0645 062D;;;;N;;;;;
-FCD0;ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062E;;;;N;;;;;
-FCD1;ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 0645;;;;N;;;;;
-FCD2;ARABIC LIGATURE NOON WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062C;;;;N;;;;;
-FCD3;ARABIC LIGATURE NOON WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0646 062D;;;;N;;;;;
-FCD4;ARABIC LIGATURE NOON WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0646 062E;;;;N;;;;;
-FCD5;ARABIC LIGATURE NOON WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 0645;;;;N;;;;;
-FCD6;ARABIC LIGATURE NOON WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0646 0647;;;;N;;;;;
-FCD7;ARABIC LIGATURE HEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 062C;;;;N;;;;;
-FCD8;ARABIC LIGATURE HEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645;;;;N;;;;;
-FCD9;ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM;Lo;0;AL;<initial> 0647 0670;;;;N;;;;;
-FCDA;ARABIC LIGATURE YEH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 064A 062C;;;;N;;;;;
-FCDB;ARABIC LIGATURE YEH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 064A 062D;;;;N;;;;;
-FCDC;ARABIC LIGATURE YEH WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 064A 062E;;;;N;;;;;
-FCDD;ARABIC LIGATURE YEH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 064A 0645;;;;N;;;;;
-FCDE;ARABIC LIGATURE YEH WITH HEH INITIAL FORM;Lo;0;AL;<initial> 064A 0647;;;;N;;;;;
-FCDF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0626 0645;;;;N;;;;;
-FCE0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0626 0647;;;;N;;;;;
-FCE1;ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0628 0645;;;;N;;;;;
-FCE2;ARABIC LIGATURE BEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0628 0647;;;;N;;;;;
-FCE3;ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 062A 0645;;;;N;;;;;
-FCE4;ARABIC LIGATURE TEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 062A 0647;;;;N;;;;;
-FCE5;ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 062B 0645;;;;N;;;;;
-FCE6;ARABIC LIGATURE THEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 062B 0647;;;;N;;;;;
-FCE7;ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0633 0645;;;;N;;;;;
-FCE8;ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0633 0647;;;;N;;;;;
-FCE9;ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0634 0645;;;;N;;;;;
-FCEA;ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0634 0647;;;;N;;;;;
-FCEB;ARABIC LIGATURE KAF WITH LAM MEDIAL FORM;Lo;0;AL;<medial> 0643 0644;;;;N;;;;;
-FCEC;ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0643 0645;;;;N;;;;;
-FCED;ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0644 0645;;;;N;;;;;
-FCEE;ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0646 0645;;;;N;;;;;
-FCEF;ARABIC LIGATURE NOON WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 0646 0647;;;;N;;;;;
-FCF0;ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 064A 0645;;;;N;;;;;
-FCF1;ARABIC LIGATURE YEH WITH HEH MEDIAL FORM;Lo;0;AL;<medial> 064A 0647;;;;N;;;;;
-FCF2;ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E 0651;;;;N;;;;;
-FCF3;ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM;Lo;0;AL;<medial> 0640 064F 0651;;;;N;;;;;
-FCF4;ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM;Lo;0;AL;<medial> 0640 0650 0651;;;;N;;;;;
-FCF5;ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0637 0649;;;;N;;;;;
-FCF6;ARABIC LIGATURE TAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0637 064A;;;;N;;;;;
-FCF7;ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0639 0649;;;;N;;;;;
-FCF8;ARABIC LIGATURE AIN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0639 064A;;;;N;;;;;
-FCF9;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 063A 0649;;;;N;;;;;
-FCFA;ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 063A 064A;;;;N;;;;;
-FCFB;ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0633 0649;;;;N;;;;;
-FCFC;ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0633 064A;;;;N;;;;;
-FCFD;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0634 0649;;;;N;;;;;
-FCFE;ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0634 064A;;;;N;;;;;
-FCFF;ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062D 0649;;;;N;;;;;
-FD00;ARABIC LIGATURE HAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062D 064A;;;;N;;;;;
-FD01;ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062C 0649;;;;N;;;;;
-FD02;ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062C 064A;;;;N;;;;;
-FD03;ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 062E 0649;;;;N;;;;;
-FD04;ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 062E 064A;;;;N;;;;;
-FD05;ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0649;;;;N;;;;;
-FD06;ARABIC LIGATURE SAD WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0635 064A;;;;N;;;;;
-FD07;ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0636 0649;;;;N;;;;;
-FD08;ARABIC LIGATURE DAD WITH YEH ISOLATED FORM;Lo;0;AL;<isolated> 0636 064A;;;;N;;;;;
-FD09;ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM;Lo;0;AL;<isolated> 0634 062C;;;;N;;;;;
-FD0A;ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM;Lo;0;AL;<isolated> 0634 062D;;;;N;;;;;
-FD0B;ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM;Lo;0;AL;<isolated> 0634 062E;;;;N;;;;;
-FD0C;ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0634 0645;;;;N;;;;;
-FD0D;ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0634 0631;;;;N;;;;;
-FD0E;ARABIC LIGATURE SEEN WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0633 0631;;;;N;;;;;
-FD0F;ARABIC LIGATURE SAD WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0635 0631;;;;N;;;;;
-FD10;ARABIC LIGATURE DAD WITH REH ISOLATED FORM;Lo;0;AL;<isolated> 0636 0631;;;;N;;;;;
-FD11;ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0637 0649;;;;N;;;;;
-FD12;ARABIC LIGATURE TAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0637 064A;;;;N;;;;;
-FD13;ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0639 0649;;;;N;;;;;
-FD14;ARABIC LIGATURE AIN WITH YEH FINAL FORM;Lo;0;AL;<final> 0639 064A;;;;N;;;;;
-FD15;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 063A 0649;;;;N;;;;;
-FD16;ARABIC LIGATURE GHAIN WITH YEH FINAL FORM;Lo;0;AL;<final> 063A 064A;;;;N;;;;;
-FD17;ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 0649;;;;N;;;;;
-FD18;ARABIC LIGATURE SEEN WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 064A;;;;N;;;;;
-FD19;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0634 0649;;;;N;;;;;
-FD1A;ARABIC LIGATURE SHEEN WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 064A;;;;N;;;;;
-FD1B;ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062D 0649;;;;N;;;;;
-FD1C;ARABIC LIGATURE HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 064A;;;;N;;;;;
-FD1D;ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 0649;;;;N;;;;;
-FD1E;ARABIC LIGATURE JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 064A;;;;N;;;;;
-FD1F;ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062E 0649;;;;N;;;;;
-FD20;ARABIC LIGATURE KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062E 064A;;;;N;;;;;
-FD21;ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0635 0649;;;;N;;;;;
-FD22;ARABIC LIGATURE SAD WITH YEH FINAL FORM;Lo;0;AL;<final> 0635 064A;;;;N;;;;;
-FD23;ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0636 0649;;;;N;;;;;
-FD24;ARABIC LIGATURE DAD WITH YEH FINAL FORM;Lo;0;AL;<final> 0636 064A;;;;N;;;;;
-FD25;ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM;Lo;0;AL;<final> 0634 062C;;;;N;;;;;
-FD26;ARABIC LIGATURE SHEEN WITH HAH FINAL FORM;Lo;0;AL;<final> 0634 062D;;;;N;;;;;
-FD27;ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM;Lo;0;AL;<final> 0634 062E;;;;N;;;;;
-FD28;ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 0645;;;;N;;;;;
-FD29;ARABIC LIGATURE SHEEN WITH REH FINAL FORM;Lo;0;AL;<final> 0634 0631;;;;N;;;;;
-FD2A;ARABIC LIGATURE SEEN WITH REH FINAL FORM;Lo;0;AL;<final> 0633 0631;;;;N;;;;;
-FD2B;ARABIC LIGATURE SAD WITH REH FINAL FORM;Lo;0;AL;<final> 0635 0631;;;;N;;;;;
-FD2C;ARABIC LIGATURE DAD WITH REH FINAL FORM;Lo;0;AL;<final> 0636 0631;;;;N;;;;;
-FD2D;ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0634 062C;;;;N;;;;;
-FD2E;ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0634 062D;;;;N;;;;;
-FD2F;ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0634 062E;;;;N;;;;;
-FD30;ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 0645;;;;N;;;;;
-FD31;ARABIC LIGATURE SEEN WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0633 0647;;;;N;;;;;
-FD32;ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM;Lo;0;AL;<initial> 0634 0647;;;;N;;;;;
-FD33;ARABIC LIGATURE TAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0637 0645;;;;N;;;;;
-FD34;ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM;Lo;0;AL;<medial> 0633 062C;;;;N;;;;;
-FD35;ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM;Lo;0;AL;<medial> 0633 062D;;;;N;;;;;
-FD36;ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM;Lo;0;AL;<medial> 0633 062E;;;;N;;;;;
-FD37;ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM;Lo;0;AL;<medial> 0634 062C;;;;N;;;;;
-FD38;ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM;Lo;0;AL;<medial> 0634 062D;;;;N;;;;;
-FD39;ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM;Lo;0;AL;<medial> 0634 062E;;;;N;;;;;
-FD3A;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0637 0645;;;;N;;;;;
-FD3B;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM;Lo;0;AL;<medial> 0638 0645;;;;N;;;;;
-FD3C;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM;Lo;0;AL;<final> 0627 064B;;;;N;;;;;
-FD3D;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0627 064B;;;;N;;;;;
-FD3E;ORNATE LEFT PARENTHESIS;Ps;0;ON;;;;;N;;;;;
-FD3F;ORNATE RIGHT PARENTHESIS;Pe;0;ON;;;;;N;;;;;
-FD50;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C 0645;;;;N;;;;;
-FD51;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM;Lo;0;AL;<final> 062A 062D 062C;;;;N;;;;;
-FD52;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 062C;;;;N;;;;;
-FD53;ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 0645;;;;N;;;;;
-FD54;ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062E 0645;;;;N;;;;;
-FD55;ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062C;;;;N;;;;;
-FD56;ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062D;;;;N;;;;;
-FD57;ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 062A 0645 062E;;;;N;;;;;
-FD58;ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 062C 0645 062D;;;;N;;;;;
-FD59;ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 062C 0645 062D;;;;N;;;;;
-FD5A;ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 0645 064A;;;;N;;;;;
-FD5B;ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062D 0645 0649;;;;N;;;;;
-FD5C;ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 062D 062C;;;;N;;;;;
-FD5D;ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 062C 062D;;;;N;;;;;
-FD5E;ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 062C 0649;;;;N;;;;;
-FD5F;ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0633 0645 062D;;;;N;;;;;
-FD60;ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0633 0645 062D;;;;N;;;;;
-FD61;ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645 062C;;;;N;;;;;
-FD62;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0633 0645 0645;;;;N;;;;;
-FD63;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0633 0645 0645;;;;N;;;;;
-FD64;ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM;Lo;0;AL;<final> 0635 062D 062D;;;;N;;;;;
-FD65;ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0635 062D 062D;;;;N;;;;;
-FD66;ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0635 0645 0645;;;;N;;;;;
-FD67;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 062D 0645;;;;N;;;;;
-FD68;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 062D 0645;;;;N;;;;;
-FD69;ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 062C 064A;;;;N;;;;;
-FD6A;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM;Lo;0;AL;<final> 0634 0645 062E;;;;N;;;;;
-FD6B;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0634 0645 062E;;;;N;;;;;
-FD6C;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0634 0645 0645;;;;N;;;;;
-FD6D;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0634 0645 0645;;;;N;;;;;
-FD6E;ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0636 062D 0649;;;;N;;;;;
-FD6F;ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0636 062E 0645;;;;N;;;;;
-FD70;ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0636 062E 0645;;;;N;;;;;
-FD71;ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0637 0645 062D;;;;N;;;;;
-FD72;ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0637 0645 062D;;;;N;;;;;
-FD73;ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0637 0645 0645;;;;N;;;;;
-FD74;ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0637 0645 064A;;;;N;;;;;
-FD75;ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0639 062C 0645;;;;N;;;;;
-FD76;ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0639 0645 0645;;;;N;;;;;
-FD77;ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 0645 0645;;;;N;;;;;
-FD78;ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0639 0645 0649;;;;N;;;;;
-FD79;ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 063A 0645 0645;;;;N;;;;;
-FD7A;ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 063A 0645 064A;;;;N;;;;;
-FD7B;ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 063A 0645 0649;;;;N;;;;;
-FD7C;ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0641 062E 0645;;;;N;;;;;
-FD7D;ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0641 062E 0645;;;;N;;;;;
-FD7E;ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0642 0645 062D;;;;N;;;;;
-FD7F;ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0642 0645 0645;;;;N;;;;;
-FD80;ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062D 0645;;;;N;;;;;
-FD81;ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 062D 064A;;;;N;;;;;
-FD82;ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0644 062D 0649;;;;N;;;;;
-FD83;ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C 062C;;;;N;;;;;
-FD84;ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM;Lo;0;AL;<final> 0644 062C 062C;;;;N;;;;;
-FD85;ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062E 0645;;;;N;;;;;
-FD86;ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062E 0645;;;;N;;;;;
-FD87;ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0644 0645 062D;;;;N;;;;;
-FD88;ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0644 0645 062D;;;;N;;;;;
-FD89;ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062D 062C;;;;N;;;;;
-FD8A;ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062D 0645;;;;N;;;;;
-FD8B;ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062D 064A;;;;N;;;;;
-FD8C;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062D;;;;N;;;;;
-FD8D;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062C 0645;;;;N;;;;;
-FD8E;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 062C;;;;N;;;;;
-FD8F;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0645 062E 0645;;;;N;;;;;
-FD92;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM;Lo;0;AL;<initial> 0645 062C 062E;;;;N;;;;;
-FD93;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 062C;;;;N;;;;;
-FD94;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0647 0645 0645;;;;N;;;;;
-FD95;ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062D 0645;;;;N;;;;;
-FD96;ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 062D 0649;;;;N;;;;;
-FD97;ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0646 062C 0645;;;;N;;;;;
-FD98;ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0646 062C 0645;;;;N;;;;;
-FD99;ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 062C 0649;;;;N;;;;;
-FD9A;ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 0645 064A;;;;N;;;;;
-FD9B;ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0646 0645 0649;;;;N;;;;;
-FD9C;ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 064A 0645 0645;;;;N;;;;;
-FD9D;ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 064A 0645 0645;;;;N;;;;;
-FD9E;ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 062E 064A;;;;N;;;;;
-FD9F;ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 062C 064A;;;;N;;;;;
-FDA0;ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 062C 0649;;;;N;;;;;
-FDA1;ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 062E 064A;;;;N;;;;;
-FDA2;ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 062E 0649;;;;N;;;;;
-FDA3;ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062A 0645 064A;;;;N;;;;;
-FDA4;ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062A 0645 0649;;;;N;;;;;
-FDA5;ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 0645 064A;;;;N;;;;;
-FDA6;ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 062D 0649;;;;N;;;;;
-FDA7;ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 062C 0645 0649;;;;N;;;;;
-FDA8;ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0633 062E 0649;;;;N;;;;;
-FDA9;ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0635 062D 064A;;;;N;;;;;
-FDAA;ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0634 062D 064A;;;;N;;;;;
-FDAB;ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0636 062D 064A;;;;N;;;;;
-FDAC;ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 062C 064A;;;;N;;;;;
-FDAD;ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0644 0645 064A;;;;N;;;;;
-FDAE;ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 062D 064A;;;;N;;;;;
-FDAF;ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 062C 064A;;;;N;;;;;
-FDB0;ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 064A 0645 064A;;;;N;;;;;
-FDB1;ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 0645 064A;;;;N;;;;;
-FDB2;ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0642 0645 064A;;;;N;;;;;
-FDB3;ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062D 064A;;;;N;;;;;
-FDB4;ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0642 0645 062D;;;;N;;;;;
-FDB5;ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062D 0645;;;;N;;;;;
-FDB6;ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0639 0645 064A;;;;N;;;;;
-FDB7;ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0643 0645 064A;;;;N;;;;;
-FDB8;ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL;<initial> 0646 062C 062D;;;;N;;;;;
-FDB9;ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062E 064A;;;;N;;;;;
-FDBA;ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0644 062C 0645;;;;N;;;;;
-FDBB;ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0643 0645 0645;;;;N;;;;;
-FDBC;ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL;<final> 0644 062C 0645;;;;N;;;;;
-FDBD;ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM;Lo;0;AL;<final> 0646 062C 062D;;;;N;;;;;
-FDBE;ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 062C 062D 064A;;;;N;;;;;
-FDBF;ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 062D 062C 064A;;;;N;;;;;
-FDC0;ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0645 062C 064A;;;;N;;;;;
-FDC1;ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0641 0645 064A;;;;N;;;;;
-FDC2;ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0628 062D 064A;;;;N;;;;;
-FDC3;ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0643 0645 0645;;;;N;;;;;
-FDC4;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639 062C 0645;;;;N;;;;;
-FDC5;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645 0645;;;;N;;;;;
-FDC6;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 062E 064A;;;;N;;;;;
-FDC7;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062C 064A;;;;N;;;;;
-FDF0;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 06D2;;;;N;;;;;
-FDF1;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0642 0644 06D2;;;;N;;;;;
-FDF2;ARABIC LIGATURE ALLAH ISOLATED FORM;Lo;0;AL;<isolated> 0627 0644 0644 0647;;;;N;;;;;
-FDF3;ARABIC LIGATURE AKBAR ISOLATED FORM;Lo;0;AL;<isolated> 0627 0643 0628 0631;;;;N;;;;;
-FDF4;ARABIC LIGATURE MOHAMMAD ISOLATED FORM;Lo;0;AL;<isolated> 0645 062D 0645 062F;;;;N;;;;;
-FDF5;ARABIC LIGATURE SALAM ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0639 0645;;;;N;;;;;
-FDF6;ARABIC LIGATURE RASOUL ISOLATED FORM;Lo;0;AL;<isolated> 0631 0633 0648 0644;;;;N;;;;;
-FDF7;ARABIC LIGATURE ALAYHE ISOLATED FORM;Lo;0;AL;<isolated> 0639 0644 064A 0647;;;;N;;;;;
-FDF8;ARABIC LIGATURE WASALLAM ISOLATED FORM;Lo;0;AL;<isolated> 0648 0633 0644 0645;;;;N;;;;;
-FDF9;ARABIC LIGATURE SALLA ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 0649;;;;N;;;;;
-FDFA;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM;Lo;0;AL;<isolated> 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;;;;N;ARABIC LETTER SALLALLAHOU ALAYHE WASALLAM;;;;
-FDFB;ARABIC LIGATURE JALLAJALALOUHOU;Lo;0;AL;<isolated> 062C 0644 0020 062C 0644 0627 0644 0647;;;;N;ARABIC LETTER JALLAJALALOUHOU;;;;
-FDFC;RIAL SIGN;Sc;0;AL;<isolated> 0631 06CC 0627 0644;;;;N;;;;;
-FDFD;ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM;So;0;ON;;;;;N;;;;;
-FE00;VARIATION SELECTOR-1;Mn;0;NSM;;;;;N;;;;;
-FE01;VARIATION SELECTOR-2;Mn;0;NSM;;;;;N;;;;;
-FE02;VARIATION SELECTOR-3;Mn;0;NSM;;;;;N;;;;;
-FE03;VARIATION SELECTOR-4;Mn;0;NSM;;;;;N;;;;;
-FE04;VARIATION SELECTOR-5;Mn;0;NSM;;;;;N;;;;;
-FE05;VARIATION SELECTOR-6;Mn;0;NSM;;;;;N;;;;;
-FE06;VARIATION SELECTOR-7;Mn;0;NSM;;;;;N;;;;;
-FE07;VARIATION SELECTOR-8;Mn;0;NSM;;;;;N;;;;;
-FE08;VARIATION SELECTOR-9;Mn;0;NSM;;;;;N;;;;;
-FE09;VARIATION SELECTOR-10;Mn;0;NSM;;;;;N;;;;;
-FE0A;VARIATION SELECTOR-11;Mn;0;NSM;;;;;N;;;;;
-FE0B;VARIATION SELECTOR-12;Mn;0;NSM;;;;;N;;;;;
-FE0C;VARIATION SELECTOR-13;Mn;0;NSM;;;;;N;;;;;
-FE0D;VARIATION SELECTOR-14;Mn;0;NSM;;;;;N;;;;;
-FE0E;VARIATION SELECTOR-15;Mn;0;NSM;;;;;N;;;;;
-FE0F;VARIATION SELECTOR-16;Mn;0;NSM;;;;;N;;;;;
-FE10;PRESENTATION FORM FOR VERTICAL COMMA;Po;0;ON;<vertical> 002C;;;;N;;;;;
-FE11;PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA;Po;0;ON;<vertical> 3001;;;;N;;;;;
-FE12;PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP;Po;0;ON;<vertical> 3002;;;;N;;;;;
-FE13;PRESENTATION FORM FOR VERTICAL COLON;Po;0;ON;<vertical> 003A;;;;N;;;;;
-FE14;PRESENTATION FORM FOR VERTICAL SEMICOLON;Po;0;ON;<vertical> 003B;;;;N;;;;;
-FE15;PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK;Po;0;ON;<vertical> 0021;;;;N;;;;;
-FE16;PRESENTATION FORM FOR VERTICAL QUESTION MARK;Po;0;ON;<vertical> 003F;;;;N;;;;;
-FE17;PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;<vertical> 3016;;;;N;;;;;
-FE18;PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET;Pe;0;ON;<vertical> 3017;;;;N;;;;;
-FE19;PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS;Po;0;ON;<vertical> 2026;;;;N;;;;;
-FE20;COMBINING LIGATURE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
-FE21;COMBINING LIGATURE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
-FE22;COMBINING DOUBLE TILDE LEFT HALF;Mn;230;NSM;;;;;N;;;;;
-FE23;COMBINING DOUBLE TILDE RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
-FE24;COMBINING MACRON LEFT HALF;Mn;230;NSM;;;;;N;;;;;
-FE25;COMBINING MACRON RIGHT HALF;Mn;230;NSM;;;;;N;;;;;
-FE26;COMBINING CONJOINING MACRON;Mn;230;NSM;;;;;N;;;;;
-FE30;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER;Po;0;ON;<vertical> 2025;;;;N;GLYPH FOR VERTICAL TWO DOT LEADER;;;;
-FE31;PRESENTATION FORM FOR VERTICAL EM DASH;Pd;0;ON;<vertical> 2014;;;;N;GLYPH FOR VERTICAL EM DASH;;;;
-FE32;PRESENTATION FORM FOR VERTICAL EN DASH;Pd;0;ON;<vertical> 2013;;;;N;GLYPH FOR VERTICAL EN DASH;;;;
-FE33;PRESENTATION FORM FOR VERTICAL LOW LINE;Pc;0;ON;<vertical> 005F;;;;N;GLYPH FOR VERTICAL SPACING UNDERSCORE;;;;
-FE34;PRESENTATION FORM FOR VERTICAL WAVY LOW LINE;Pc;0;ON;<vertical> 005F;;;;N;GLYPH FOR VERTICAL SPACING WAVY UNDERSCORE;;;;
-FE35;PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS;Ps;0;ON;<vertical> 0028;;;;N;GLYPH FOR VERTICAL OPENING PARENTHESIS;;;;
-FE36;PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS;Pe;0;ON;<vertical> 0029;;;;N;GLYPH FOR VERTICAL CLOSING PARENTHESIS;;;;
-FE37;PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET;Ps;0;ON;<vertical> 007B;;;;N;GLYPH FOR VERTICAL OPENING CURLY BRACKET;;;;
-FE38;PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET;Pe;0;ON;<vertical> 007D;;;;N;GLYPH FOR VERTICAL CLOSING CURLY BRACKET;;;;
-FE39;PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<vertical> 3014;;;;N;GLYPH FOR VERTICAL OPENING TORTOISE SHELL BRACKET;;;;
-FE3A;PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<vertical> 3015;;;;N;GLYPH FOR VERTICAL CLOSING TORTOISE SHELL BRACKET;;;;
-FE3B;PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;<vertical> 3010;;;;N;GLYPH FOR VERTICAL OPENING BLACK LENTICULAR BRACKET;;;;
-FE3C;PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;<vertical> 3011;;;;N;GLYPH FOR VERTICAL CLOSING BLACK LENTICULAR BRACKET;;;;
-FE3D;PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;<vertical> 300A;;;;N;GLYPH FOR VERTICAL OPENING DOUBLE ANGLE BRACKET;;;;
-FE3E;PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;<vertical> 300B;;;;N;GLYPH FOR VERTICAL CLOSING DOUBLE ANGLE BRACKET;;;;
-FE3F;PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET;Ps;0;ON;<vertical> 3008;;;;N;GLYPH FOR VERTICAL OPENING ANGLE BRACKET;;;;
-FE40;PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET;Pe;0;ON;<vertical> 3009;;;;N;GLYPH FOR VERTICAL CLOSING ANGLE BRACKET;;;;
-FE41;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET;Ps;0;ON;<vertical> 300C;;;;N;GLYPH FOR VERTICAL OPENING CORNER BRACKET;;;;
-FE42;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET;Pe;0;ON;<vertical> 300D;;;;N;GLYPH FOR VERTICAL CLOSING CORNER BRACKET;;;;
-FE43;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET;Ps;0;ON;<vertical> 300E;;;;N;GLYPH FOR VERTICAL OPENING WHITE CORNER BRACKET;;;;
-FE44;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET;Pe;0;ON;<vertical> 300F;;;;N;GLYPH FOR VERTICAL CLOSING WHITE CORNER BRACKET;;;;
-FE45;SESAME DOT;Po;0;ON;;;;;N;;;;;
-FE46;WHITE SESAME DOT;Po;0;ON;;;;;N;;;;;
-FE47;PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET;Ps;0;ON;<vertical> 005B;;;;N;;;;;
-FE48;PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET;Pe;0;ON;<vertical> 005D;;;;N;;;;;
-FE49;DASHED OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DASHED OVERSCORE;;;;
-FE4A;CENTRELINE OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING CENTERLINE OVERSCORE;;;;
-FE4B;WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING WAVY OVERSCORE;;;;
-FE4C;DOUBLE WAVY OVERLINE;Po;0;ON;<compat> 203E;;;;N;SPACING DOUBLE WAVY OVERSCORE;;;;
-FE4D;DASHED LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING DASHED UNDERSCORE;;;;
-FE4E;CENTRELINE LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING CENTERLINE UNDERSCORE;;;;
-FE4F;WAVY LOW LINE;Pc;0;ON;<compat> 005F;;;;N;SPACING WAVY UNDERSCORE;;;;
-FE50;SMALL COMMA;Po;0;CS;<small> 002C;;;;N;;;;;
-FE51;SMALL IDEOGRAPHIC COMMA;Po;0;ON;<small> 3001;;;;N;;;;;
-FE52;SMALL FULL STOP;Po;0;CS;<small> 002E;;;;N;SMALL PERIOD;;;;
-FE54;SMALL SEMICOLON;Po;0;ON;<small> 003B;;;;N;;;;;
-FE55;SMALL COLON;Po;0;CS;<small> 003A;;;;N;;;;;
-FE56;SMALL QUESTION MARK;Po;0;ON;<small> 003F;;;;N;;;;;
-FE57;SMALL EXCLAMATION MARK;Po;0;ON;<small> 0021;;;;N;;;;;
-FE58;SMALL EM DASH;Pd;0;ON;<small> 2014;;;;N;;;;;
-FE59;SMALL LEFT PARENTHESIS;Ps;0;ON;<small> 0028;;;;Y;SMALL OPENING PARENTHESIS;;;;
-FE5A;SMALL RIGHT PARENTHESIS;Pe;0;ON;<small> 0029;;;;Y;SMALL CLOSING PARENTHESIS;;;;
-FE5B;SMALL LEFT CURLY BRACKET;Ps;0;ON;<small> 007B;;;;Y;SMALL OPENING CURLY BRACKET;;;;
-FE5C;SMALL RIGHT CURLY BRACKET;Pe;0;ON;<small> 007D;;;;Y;SMALL CLOSING CURLY BRACKET;;;;
-FE5D;SMALL LEFT TORTOISE SHELL BRACKET;Ps;0;ON;<small> 3014;;;;Y;SMALL OPENING TORTOISE SHELL BRACKET;;;;
-FE5E;SMALL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;<small> 3015;;;;Y;SMALL CLOSING TORTOISE SHELL BRACKET;;;;
-FE5F;SMALL NUMBER SIGN;Po;0;ET;<small> 0023;;;;N;;;;;
-FE60;SMALL AMPERSAND;Po;0;ON;<small> 0026;;;;N;;;;;
-FE61;SMALL ASTERISK;Po;0;ON;<small> 002A;;;;N;;;;;
-FE62;SMALL PLUS SIGN;Sm;0;ES;<small> 002B;;;;N;;;;;
-FE63;SMALL HYPHEN-MINUS;Pd;0;ES;<small> 002D;;;;N;;;;;
-FE64;SMALL LESS-THAN SIGN;Sm;0;ON;<small> 003C;;;;Y;;;;;
-FE65;SMALL GREATER-THAN SIGN;Sm;0;ON;<small> 003E;;;;Y;;;;;
-FE66;SMALL EQUALS SIGN;Sm;0;ON;<small> 003D;;;;N;;;;;
-FE68;SMALL REVERSE SOLIDUS;Po;0;ON;<small> 005C;;;;N;SMALL BACKSLASH;;;;
-FE69;SMALL DOLLAR SIGN;Sc;0;ET;<small> 0024;;;;N;;;;;
-FE6A;SMALL PERCENT SIGN;Po;0;ET;<small> 0025;;;;N;;;;;
-FE6B;SMALL COMMERCIAL AT;Po;0;ON;<small> 0040;;;;N;;;;;
-FE70;ARABIC FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064B;;;;N;ARABIC SPACING FATHATAN;;;;
-FE71;ARABIC TATWEEL WITH FATHATAN ABOVE;Lo;0;AL;<medial> 0640 064B;;;;N;ARABIC FATHATAN ON TATWEEL;;;;
-FE72;ARABIC DAMMATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064C;;;;N;ARABIC SPACING DAMMATAN;;;;
-FE73;ARABIC TAIL FRAGMENT;Lo;0;AL;;;;;N;;;;;
-FE74;ARABIC KASRATAN ISOLATED FORM;Lo;0;AL;<isolated> 0020 064D;;;;N;ARABIC SPACING KASRATAN;;;;
-FE76;ARABIC FATHA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064E;;;;N;ARABIC SPACING FATHAH;;;;
-FE77;ARABIC FATHA MEDIAL FORM;Lo;0;AL;<medial> 0640 064E;;;;N;ARABIC FATHAH ON TATWEEL;;;;
-FE78;ARABIC DAMMA ISOLATED FORM;Lo;0;AL;<isolated> 0020 064F;;;;N;ARABIC SPACING DAMMAH;;;;
-FE79;ARABIC DAMMA MEDIAL FORM;Lo;0;AL;<medial> 0640 064F;;;;N;ARABIC DAMMAH ON TATWEEL;;;;
-FE7A;ARABIC KASRA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0650;;;;N;ARABIC SPACING KASRAH;;;;
-FE7B;ARABIC KASRA MEDIAL FORM;Lo;0;AL;<medial> 0640 0650;;;;N;ARABIC KASRAH ON TATWEEL;;;;
-FE7C;ARABIC SHADDA ISOLATED FORM;Lo;0;AL;<isolated> 0020 0651;;;;N;ARABIC SPACING SHADDAH;;;;
-FE7D;ARABIC SHADDA MEDIAL FORM;Lo;0;AL;<medial> 0640 0651;;;;N;ARABIC SHADDAH ON TATWEEL;;;;
-FE7E;ARABIC SUKUN ISOLATED FORM;Lo;0;AL;<isolated> 0020 0652;;;;N;ARABIC SPACING SUKUN;;;;
-FE7F;ARABIC SUKUN MEDIAL FORM;Lo;0;AL;<medial> 0640 0652;;;;N;ARABIC SUKUN ON TATWEEL;;;;
-FE80;ARABIC LETTER HAMZA ISOLATED FORM;Lo;0;AL;<isolated> 0621;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH;;;;
-FE81;ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON ALEF;;;;
-FE82;ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;<final> 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON ALEF;;;;
-FE83;ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON ALEF;;;;
-FE84;ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON ALEF;;;;
-FE85;ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0624;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON WAW;;;;
-FE86;ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0624;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON WAW;;;;
-FE87;ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;<isolated> 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER ALEF;;;;
-FE88;ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;<final> 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER ALEF;;;;
-FE89;ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0626;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON YA;;;;
-FE8A;ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0626;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON YA;;;;
-FE8B;ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM;Lo;0;AL;<initial> 0626;;;;N;GLYPH FOR INITIAL ARABIC HAMZAH ON YA;;;;
-FE8C;ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM;Lo;0;AL;<medial> 0626;;;;N;GLYPH FOR MEDIAL ARABIC HAMZAH ON YA;;;;
-FE8D;ARABIC LETTER ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0627;;;;N;GLYPH FOR ISOLATE ARABIC ALEF;;;;
-FE8E;ARABIC LETTER ALEF FINAL FORM;Lo;0;AL;<final> 0627;;;;N;GLYPH FOR FINAL ARABIC ALEF;;;;
-FE8F;ARABIC LETTER BEH ISOLATED FORM;Lo;0;AL;<isolated> 0628;;;;N;GLYPH FOR ISOLATE ARABIC BAA;;;;
-FE90;ARABIC LETTER BEH FINAL FORM;Lo;0;AL;<final> 0628;;;;N;GLYPH FOR FINAL ARABIC BAA;;;;
-FE91;ARABIC LETTER BEH INITIAL FORM;Lo;0;AL;<initial> 0628;;;;N;GLYPH FOR INITIAL ARABIC BAA;;;;
-FE92;ARABIC LETTER BEH MEDIAL FORM;Lo;0;AL;<medial> 0628;;;;N;GLYPH FOR MEDIAL ARABIC BAA;;;;
-FE93;ARABIC LETTER TEH MARBUTA ISOLATED FORM;Lo;0;AL;<isolated> 0629;;;;N;GLYPH FOR ISOLATE ARABIC TAA MARBUTAH;;;;
-FE94;ARABIC LETTER TEH MARBUTA FINAL FORM;Lo;0;AL;<final> 0629;;;;N;GLYPH FOR FINAL ARABIC TAA MARBUTAH;;;;
-FE95;ARABIC LETTER TEH ISOLATED FORM;Lo;0;AL;<isolated> 062A;;;;N;GLYPH FOR ISOLATE ARABIC TAA;;;;
-FE96;ARABIC LETTER TEH FINAL FORM;Lo;0;AL;<final> 062A;;;;N;GLYPH FOR FINAL ARABIC TAA;;;;
-FE97;ARABIC LETTER TEH INITIAL FORM;Lo;0;AL;<initial> 062A;;;;N;GLYPH FOR INITIAL ARABIC TAA;;;;
-FE98;ARABIC LETTER TEH MEDIAL FORM;Lo;0;AL;<medial> 062A;;;;N;GLYPH FOR MEDIAL ARABIC TAA;;;;
-FE99;ARABIC LETTER THEH ISOLATED FORM;Lo;0;AL;<isolated> 062B;;;;N;GLYPH FOR ISOLATE ARABIC THAA;;;;
-FE9A;ARABIC LETTER THEH FINAL FORM;Lo;0;AL;<final> 062B;;;;N;GLYPH FOR FINAL ARABIC THAA;;;;
-FE9B;ARABIC LETTER THEH INITIAL FORM;Lo;0;AL;<initial> 062B;;;;N;GLYPH FOR INITIAL ARABIC THAA;;;;
-FE9C;ARABIC LETTER THEH MEDIAL FORM;Lo;0;AL;<medial> 062B;;;;N;GLYPH FOR MEDIAL ARABIC THAA;;;;
-FE9D;ARABIC LETTER JEEM ISOLATED FORM;Lo;0;AL;<isolated> 062C;;;;N;GLYPH FOR ISOLATE ARABIC JEEM;;;;
-FE9E;ARABIC LETTER JEEM FINAL FORM;Lo;0;AL;<final> 062C;;;;N;GLYPH FOR FINAL ARABIC JEEM;;;;
-FE9F;ARABIC LETTER JEEM INITIAL FORM;Lo;0;AL;<initial> 062C;;;;N;GLYPH FOR INITIAL ARABIC JEEM;;;;
-FEA0;ARABIC LETTER JEEM MEDIAL FORM;Lo;0;AL;<medial> 062C;;;;N;GLYPH FOR MEDIAL ARABIC JEEM;;;;
-FEA1;ARABIC LETTER HAH ISOLATED FORM;Lo;0;AL;<isolated> 062D;;;;N;GLYPH FOR ISOLATE ARABIC HAA;;;;
-FEA2;ARABIC LETTER HAH FINAL FORM;Lo;0;AL;<final> 062D;;;;N;GLYPH FOR FINAL ARABIC HAA;;;;
-FEA3;ARABIC LETTER HAH INITIAL FORM;Lo;0;AL;<initial> 062D;;;;N;GLYPH FOR INITIAL ARABIC HAA;;;;
-FEA4;ARABIC LETTER HAH MEDIAL FORM;Lo;0;AL;<medial> 062D;;;;N;GLYPH FOR MEDIAL ARABIC HAA;;;;
-FEA5;ARABIC LETTER KHAH ISOLATED FORM;Lo;0;AL;<isolated> 062E;;;;N;GLYPH FOR ISOLATE ARABIC KHAA;;;;
-FEA6;ARABIC LETTER KHAH FINAL FORM;Lo;0;AL;<final> 062E;;;;N;GLYPH FOR FINAL ARABIC KHAA;;;;
-FEA7;ARABIC LETTER KHAH INITIAL FORM;Lo;0;AL;<initial> 062E;;;;N;GLYPH FOR INITIAL ARABIC KHAA;;;;
-FEA8;ARABIC LETTER KHAH MEDIAL FORM;Lo;0;AL;<medial> 062E;;;;N;GLYPH FOR MEDIAL ARABIC KHAA;;;;
-FEA9;ARABIC LETTER DAL ISOLATED FORM;Lo;0;AL;<isolated> 062F;;;;N;GLYPH FOR ISOLATE ARABIC DAL;;;;
-FEAA;ARABIC LETTER DAL FINAL FORM;Lo;0;AL;<final> 062F;;;;N;GLYPH FOR FINAL ARABIC DAL;;;;
-FEAB;ARABIC LETTER THAL ISOLATED FORM;Lo;0;AL;<isolated> 0630;;;;N;GLYPH FOR ISOLATE ARABIC THAL;;;;
-FEAC;ARABIC LETTER THAL FINAL FORM;Lo;0;AL;<final> 0630;;;;N;GLYPH FOR FINAL ARABIC THAL;;;;
-FEAD;ARABIC LETTER REH ISOLATED FORM;Lo;0;AL;<isolated> 0631;;;;N;GLYPH FOR ISOLATE ARABIC RA;;;;
-FEAE;ARABIC LETTER REH FINAL FORM;Lo;0;AL;<final> 0631;;;;N;GLYPH FOR FINAL ARABIC RA;;;;
-FEAF;ARABIC LETTER ZAIN ISOLATED FORM;Lo;0;AL;<isolated> 0632;;;;N;GLYPH FOR ISOLATE ARABIC ZAIN;;;;
-FEB0;ARABIC LETTER ZAIN FINAL FORM;Lo;0;AL;<final> 0632;;;;N;GLYPH FOR FINAL ARABIC ZAIN;;;;
-FEB1;ARABIC LETTER SEEN ISOLATED FORM;Lo;0;AL;<isolated> 0633;;;;N;GLYPH FOR ISOLATE ARABIC SEEN;;;;
-FEB2;ARABIC LETTER SEEN FINAL FORM;Lo;0;AL;<final> 0633;;;;N;GLYPH FOR FINAL ARABIC SEEN;;;;
-FEB3;ARABIC LETTER SEEN INITIAL FORM;Lo;0;AL;<initial> 0633;;;;N;GLYPH FOR INITIAL ARABIC SEEN;;;;
-FEB4;ARABIC LETTER SEEN MEDIAL FORM;Lo;0;AL;<medial> 0633;;;;N;GLYPH FOR MEDIAL ARABIC SEEN;;;;
-FEB5;ARABIC LETTER SHEEN ISOLATED FORM;Lo;0;AL;<isolated> 0634;;;;N;GLYPH FOR ISOLATE ARABIC SHEEN;;;;
-FEB6;ARABIC LETTER SHEEN FINAL FORM;Lo;0;AL;<final> 0634;;;;N;GLYPH FOR FINAL ARABIC SHEEN;;;;
-FEB7;ARABIC LETTER SHEEN INITIAL FORM;Lo;0;AL;<initial> 0634;;;;N;GLYPH FOR INITIAL ARABIC SHEEN;;;;
-FEB8;ARABIC LETTER SHEEN MEDIAL FORM;Lo;0;AL;<medial> 0634;;;;N;GLYPH FOR MEDIAL ARABIC SHEEN;;;;
-FEB9;ARABIC LETTER SAD ISOLATED FORM;Lo;0;AL;<isolated> 0635;;;;N;GLYPH FOR ISOLATE ARABIC SAD;;;;
-FEBA;ARABIC LETTER SAD FINAL FORM;Lo;0;AL;<final> 0635;;;;N;GLYPH FOR FINAL ARABIC SAD;;;;
-FEBB;ARABIC LETTER SAD INITIAL FORM;Lo;0;AL;<initial> 0635;;;;N;GLYPH FOR INITIAL ARABIC SAD;;;;
-FEBC;ARABIC LETTER SAD MEDIAL FORM;Lo;0;AL;<medial> 0635;;;;N;GLYPH FOR MEDIAL ARABIC SAD;;;;
-FEBD;ARABIC LETTER DAD ISOLATED FORM;Lo;0;AL;<isolated> 0636;;;;N;GLYPH FOR ISOLATE ARABIC DAD;;;;
-FEBE;ARABIC LETTER DAD FINAL FORM;Lo;0;AL;<final> 0636;;;;N;GLYPH FOR FINAL ARABIC DAD;;;;
-FEBF;ARABIC LETTER DAD INITIAL FORM;Lo;0;AL;<initial> 0636;;;;N;GLYPH FOR INITIAL ARABIC DAD;;;;
-FEC0;ARABIC LETTER DAD MEDIAL FORM;Lo;0;AL;<medial> 0636;;;;N;GLYPH FOR MEDIAL ARABIC DAD;;;;
-FEC1;ARABIC LETTER TAH ISOLATED FORM;Lo;0;AL;<isolated> 0637;;;;N;GLYPH FOR ISOLATE ARABIC TAH;;;;
-FEC2;ARABIC LETTER TAH FINAL FORM;Lo;0;AL;<final> 0637;;;;N;GLYPH FOR FINAL ARABIC TAH;;;;
-FEC3;ARABIC LETTER TAH INITIAL FORM;Lo;0;AL;<initial> 0637;;;;N;GLYPH FOR INITIAL ARABIC TAH;;;;
-FEC4;ARABIC LETTER TAH MEDIAL FORM;Lo;0;AL;<medial> 0637;;;;N;GLYPH FOR MEDIAL ARABIC TAH;;;;
-FEC5;ARABIC LETTER ZAH ISOLATED FORM;Lo;0;AL;<isolated> 0638;;;;N;GLYPH FOR ISOLATE ARABIC DHAH;;;;
-FEC6;ARABIC LETTER ZAH FINAL FORM;Lo;0;AL;<final> 0638;;;;N;GLYPH FOR FINAL ARABIC DHAH;;;;
-FEC7;ARABIC LETTER ZAH INITIAL FORM;Lo;0;AL;<initial> 0638;;;;N;GLYPH FOR INITIAL ARABIC DHAH;;;;
-FEC8;ARABIC LETTER ZAH MEDIAL FORM;Lo;0;AL;<medial> 0638;;;;N;GLYPH FOR MEDIAL ARABIC DHAH;;;;
-FEC9;ARABIC LETTER AIN ISOLATED FORM;Lo;0;AL;<isolated> 0639;;;;N;GLYPH FOR ISOLATE ARABIC AIN;;;;
-FECA;ARABIC LETTER AIN FINAL FORM;Lo;0;AL;<final> 0639;;;;N;GLYPH FOR FINAL ARABIC AIN;;;;
-FECB;ARABIC LETTER AIN INITIAL FORM;Lo;0;AL;<initial> 0639;;;;N;GLYPH FOR INITIAL ARABIC AIN;;;;
-FECC;ARABIC LETTER AIN MEDIAL FORM;Lo;0;AL;<medial> 0639;;;;N;GLYPH FOR MEDIAL ARABIC AIN;;;;
-FECD;ARABIC LETTER GHAIN ISOLATED FORM;Lo;0;AL;<isolated> 063A;;;;N;GLYPH FOR ISOLATE ARABIC GHAIN;;;;
-FECE;ARABIC LETTER GHAIN FINAL FORM;Lo;0;AL;<final> 063A;;;;N;GLYPH FOR FINAL ARABIC GHAIN;;;;
-FECF;ARABIC LETTER GHAIN INITIAL FORM;Lo;0;AL;<initial> 063A;;;;N;GLYPH FOR INITIAL ARABIC GHAIN;;;;
-FED0;ARABIC LETTER GHAIN MEDIAL FORM;Lo;0;AL;<medial> 063A;;;;N;GLYPH FOR MEDIAL ARABIC GHAIN;;;;
-FED1;ARABIC LETTER FEH ISOLATED FORM;Lo;0;AL;<isolated> 0641;;;;N;GLYPH FOR ISOLATE ARABIC FA;;;;
-FED2;ARABIC LETTER FEH FINAL FORM;Lo;0;AL;<final> 0641;;;;N;GLYPH FOR FINAL ARABIC FA;;;;
-FED3;ARABIC LETTER FEH INITIAL FORM;Lo;0;AL;<initial> 0641;;;;N;GLYPH FOR INITIAL ARABIC FA;;;;
-FED4;ARABIC LETTER FEH MEDIAL FORM;Lo;0;AL;<medial> 0641;;;;N;GLYPH FOR MEDIAL ARABIC FA;;;;
-FED5;ARABIC LETTER QAF ISOLATED FORM;Lo;0;AL;<isolated> 0642;;;;N;GLYPH FOR ISOLATE ARABIC QAF;;;;
-FED6;ARABIC LETTER QAF FINAL FORM;Lo;0;AL;<final> 0642;;;;N;GLYPH FOR FINAL ARABIC QAF;;;;
-FED7;ARABIC LETTER QAF INITIAL FORM;Lo;0;AL;<initial> 0642;;;;N;GLYPH FOR INITIAL ARABIC QAF;;;;
-FED8;ARABIC LETTER QAF MEDIAL FORM;Lo;0;AL;<medial> 0642;;;;N;GLYPH FOR MEDIAL ARABIC QAF;;;;
-FED9;ARABIC LETTER KAF ISOLATED FORM;Lo;0;AL;<isolated> 0643;;;;N;GLYPH FOR ISOLATE ARABIC CAF;;;;
-FEDA;ARABIC LETTER KAF FINAL FORM;Lo;0;AL;<final> 0643;;;;N;GLYPH FOR FINAL ARABIC CAF;;;;
-FEDB;ARABIC LETTER KAF INITIAL FORM;Lo;0;AL;<initial> 0643;;;;N;GLYPH FOR INITIAL ARABIC CAF;;;;
-FEDC;ARABIC LETTER KAF MEDIAL FORM;Lo;0;AL;<medial> 0643;;;;N;GLYPH FOR MEDIAL ARABIC CAF;;;;
-FEDD;ARABIC LETTER LAM ISOLATED FORM;Lo;0;AL;<isolated> 0644;;;;N;GLYPH FOR ISOLATE ARABIC LAM;;;;
-FEDE;ARABIC LETTER LAM FINAL FORM;Lo;0;AL;<final> 0644;;;;N;GLYPH FOR FINAL ARABIC LAM;;;;
-FEDF;ARABIC LETTER LAM INITIAL FORM;Lo;0;AL;<initial> 0644;;;;N;GLYPH FOR INITIAL ARABIC LAM;;;;
-FEE0;ARABIC LETTER LAM MEDIAL FORM;Lo;0;AL;<medial> 0644;;;;N;GLYPH FOR MEDIAL ARABIC LAM;;;;
-FEE1;ARABIC LETTER MEEM ISOLATED FORM;Lo;0;AL;<isolated> 0645;;;;N;GLYPH FOR ISOLATE ARABIC MEEM;;;;
-FEE2;ARABIC LETTER MEEM FINAL FORM;Lo;0;AL;<final> 0645;;;;N;GLYPH FOR FINAL ARABIC MEEM;;;;
-FEE3;ARABIC LETTER MEEM INITIAL FORM;Lo;0;AL;<initial> 0645;;;;N;GLYPH FOR INITIAL ARABIC MEEM;;;;
-FEE4;ARABIC LETTER MEEM MEDIAL FORM;Lo;0;AL;<medial> 0645;;;;N;GLYPH FOR MEDIAL ARABIC MEEM;;;;
-FEE5;ARABIC LETTER NOON ISOLATED FORM;Lo;0;AL;<isolated> 0646;;;;N;GLYPH FOR ISOLATE ARABIC NOON;;;;
-FEE6;ARABIC LETTER NOON FINAL FORM;Lo;0;AL;<final> 0646;;;;N;GLYPH FOR FINAL ARABIC NOON;;;;
-FEE7;ARABIC LETTER NOON INITIAL FORM;Lo;0;AL;<initial> 0646;;;;N;GLYPH FOR INITIAL ARABIC NOON;;;;
-FEE8;ARABIC LETTER NOON MEDIAL FORM;Lo;0;AL;<medial> 0646;;;;N;GLYPH FOR MEDIAL ARABIC NOON;;;;
-FEE9;ARABIC LETTER HEH ISOLATED FORM;Lo;0;AL;<isolated> 0647;;;;N;GLYPH FOR ISOLATE ARABIC HA;;;;
-FEEA;ARABIC LETTER HEH FINAL FORM;Lo;0;AL;<final> 0647;;;;N;GLYPH FOR FINAL ARABIC HA;;;;
-FEEB;ARABIC LETTER HEH INITIAL FORM;Lo;0;AL;<initial> 0647;;;;N;GLYPH FOR INITIAL ARABIC HA;;;;
-FEEC;ARABIC LETTER HEH MEDIAL FORM;Lo;0;AL;<medial> 0647;;;;N;GLYPH FOR MEDIAL ARABIC HA;;;;
-FEED;ARABIC LETTER WAW ISOLATED FORM;Lo;0;AL;<isolated> 0648;;;;N;GLYPH FOR ISOLATE ARABIC WAW;;;;
-FEEE;ARABIC LETTER WAW FINAL FORM;Lo;0;AL;<final> 0648;;;;N;GLYPH FOR FINAL ARABIC WAW;;;;
-FEEF;ARABIC LETTER ALEF MAKSURA ISOLATED FORM;Lo;0;AL;<isolated> 0649;;;;N;GLYPH FOR ISOLATE ARABIC ALEF MAQSURAH;;;;
-FEF0;ARABIC LETTER ALEF MAKSURA FINAL FORM;Lo;0;AL;<final> 0649;;;;N;GLYPH FOR FINAL ARABIC ALEF MAQSURAH;;;;
-FEF1;ARABIC LETTER YEH ISOLATED FORM;Lo;0;AL;<isolated> 064A;;;;N;GLYPH FOR ISOLATE ARABIC YA;;;;
-FEF2;ARABIC LETTER YEH FINAL FORM;Lo;0;AL;<final> 064A;;;;N;GLYPH FOR FINAL ARABIC YA;;;;
-FEF3;ARABIC LETTER YEH INITIAL FORM;Lo;0;AL;<initial> 064A;;;;N;GLYPH FOR INITIAL ARABIC YA;;;;
-FEF4;ARABIC LETTER YEH MEDIAL FORM;Lo;0;AL;<medial> 064A;;;;N;GLYPH FOR MEDIAL ARABIC YA;;;;
-FEF5;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0644 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON LIGATURE LAM ALEF;;;;
-FEF6;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL;<final> 0644 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON LIGATURE LAM ALEF;;;;
-FEF7;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL;<isolated> 0644 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;
-FEF8;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL;<final> 0644 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON LIGATURE LAM ALEF;;;;
-FEF9;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL;<isolated> 0644 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;
-FEFA;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL;<final> 0644 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;;
-FEFB;ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM;Lo;0;AL;<isolated> 0644 0627;;;;N;GLYPH FOR ISOLATE ARABIC LIGATURE LAM ALEF;;;;
-FEFC;ARABIC LIGATURE LAM WITH ALEF FINAL FORM;Lo;0;AL;<final> 0644 0627;;;;N;GLYPH FOR FINAL ARABIC LIGATURE LAM ALEF;;;;
-FEFF;ZERO WIDTH NO-BREAK SPACE;Cf;0;BN;;;;;N;BYTE ORDER MARK;;;;
-FF01;FULLWIDTH EXCLAMATION MARK;Po;0;ON;<wide> 0021;;;;N;;;;;
-FF02;FULLWIDTH QUOTATION MARK;Po;0;ON;<wide> 0022;;;;N;;;;;
-FF03;FULLWIDTH NUMBER SIGN;Po;0;ET;<wide> 0023;;;;N;;;;;
-FF04;FULLWIDTH DOLLAR SIGN;Sc;0;ET;<wide> 0024;;;;N;;;;;
-FF05;FULLWIDTH PERCENT SIGN;Po;0;ET;<wide> 0025;;;;N;;;;;
-FF06;FULLWIDTH AMPERSAND;Po;0;ON;<wide> 0026;;;;N;;;;;
-FF07;FULLWIDTH APOSTROPHE;Po;0;ON;<wide> 0027;;;;N;;;;;
-FF08;FULLWIDTH LEFT PARENTHESIS;Ps;0;ON;<wide> 0028;;;;Y;FULLWIDTH OPENING PARENTHESIS;;;;
-FF09;FULLWIDTH RIGHT PARENTHESIS;Pe;0;ON;<wide> 0029;;;;Y;FULLWIDTH CLOSING PARENTHESIS;;;;
-FF0A;FULLWIDTH ASTERISK;Po;0;ON;<wide> 002A;;;;N;;;;;
-FF0B;FULLWIDTH PLUS SIGN;Sm;0;ES;<wide> 002B;;;;N;;;;;
-FF0C;FULLWIDTH COMMA;Po;0;CS;<wide> 002C;;;;N;;;;;
-FF0D;FULLWIDTH HYPHEN-MINUS;Pd;0;ES;<wide> 002D;;;;N;;;;;
-FF0E;FULLWIDTH FULL STOP;Po;0;CS;<wide> 002E;;;;N;FULLWIDTH PERIOD;;;;
-FF0F;FULLWIDTH SOLIDUS;Po;0;CS;<wide> 002F;;;;N;FULLWIDTH SLASH;;;;
-FF10;FULLWIDTH DIGIT ZERO;Nd;0;EN;<wide> 0030;0;0;0;N;;;;;
-FF11;FULLWIDTH DIGIT ONE;Nd;0;EN;<wide> 0031;1;1;1;N;;;;;
-FF12;FULLWIDTH DIGIT TWO;Nd;0;EN;<wide> 0032;2;2;2;N;;;;;
-FF13;FULLWIDTH DIGIT THREE;Nd;0;EN;<wide> 0033;3;3;3;N;;;;;
-FF14;FULLWIDTH DIGIT FOUR;Nd;0;EN;<wide> 0034;4;4;4;N;;;;;
-FF15;FULLWIDTH DIGIT FIVE;Nd;0;EN;<wide> 0035;5;5;5;N;;;;;
-FF16;FULLWIDTH DIGIT SIX;Nd;0;EN;<wide> 0036;6;6;6;N;;;;;
-FF17;FULLWIDTH DIGIT SEVEN;Nd;0;EN;<wide> 0037;7;7;7;N;;;;;
-FF18;FULLWIDTH DIGIT EIGHT;Nd;0;EN;<wide> 0038;8;8;8;N;;;;;
-FF19;FULLWIDTH DIGIT NINE;Nd;0;EN;<wide> 0039;9;9;9;N;;;;;
-FF1A;FULLWIDTH COLON;Po;0;CS;<wide> 003A;;;;N;;;;;
-FF1B;FULLWIDTH SEMICOLON;Po;0;ON;<wide> 003B;;;;N;;;;;
-FF1C;FULLWIDTH LESS-THAN SIGN;Sm;0;ON;<wide> 003C;;;;Y;;;;;
-FF1D;FULLWIDTH EQUALS SIGN;Sm;0;ON;<wide> 003D;;;;N;;;;;
-FF1E;FULLWIDTH GREATER-THAN SIGN;Sm;0;ON;<wide> 003E;;;;Y;;;;;
-FF1F;FULLWIDTH QUESTION MARK;Po;0;ON;<wide> 003F;;;;N;;;;;
-FF20;FULLWIDTH COMMERCIAL AT;Po;0;ON;<wide> 0040;;;;N;;;;;
-FF21;FULLWIDTH LATIN CAPITAL LETTER A;Lu;0;L;<wide> 0041;;;;N;;;;FF41;
-FF22;FULLWIDTH LATIN CAPITAL LETTER B;Lu;0;L;<wide> 0042;;;;N;;;;FF42;
-FF23;FULLWIDTH LATIN CAPITAL LETTER C;Lu;0;L;<wide> 0043;;;;N;;;;FF43;
-FF24;FULLWIDTH LATIN CAPITAL LETTER D;Lu;0;L;<wide> 0044;;;;N;;;;FF44;
-FF25;FULLWIDTH LATIN CAPITAL LETTER E;Lu;0;L;<wide> 0045;;;;N;;;;FF45;
-FF26;FULLWIDTH LATIN CAPITAL LETTER F;Lu;0;L;<wide> 0046;;;;N;;;;FF46;
-FF27;FULLWIDTH LATIN CAPITAL LETTER G;Lu;0;L;<wide> 0047;;;;N;;;;FF47;
-FF28;FULLWIDTH LATIN CAPITAL LETTER H;Lu;0;L;<wide> 0048;;;;N;;;;FF48;
-FF29;FULLWIDTH LATIN CAPITAL LETTER I;Lu;0;L;<wide> 0049;;;;N;;;;FF49;
-FF2A;FULLWIDTH LATIN CAPITAL LETTER J;Lu;0;L;<wide> 004A;;;;N;;;;FF4A;
-FF2B;FULLWIDTH LATIN CAPITAL LETTER K;Lu;0;L;<wide> 004B;;;;N;;;;FF4B;
-FF2C;FULLWIDTH LATIN CAPITAL LETTER L;Lu;0;L;<wide> 004C;;;;N;;;;FF4C;
-FF2D;FULLWIDTH LATIN CAPITAL LETTER M;Lu;0;L;<wide> 004D;;;;N;;;;FF4D;
-FF2E;FULLWIDTH LATIN CAPITAL LETTER N;Lu;0;L;<wide> 004E;;;;N;;;;FF4E;
-FF2F;FULLWIDTH LATIN CAPITAL LETTER O;Lu;0;L;<wide> 004F;;;;N;;;;FF4F;
-FF30;FULLWIDTH LATIN CAPITAL LETTER P;Lu;0;L;<wide> 0050;;;;N;;;;FF50;
-FF31;FULLWIDTH LATIN CAPITAL LETTER Q;Lu;0;L;<wide> 0051;;;;N;;;;FF51;
-FF32;FULLWIDTH LATIN CAPITAL LETTER R;Lu;0;L;<wide> 0052;;;;N;;;;FF52;
-FF33;FULLWIDTH LATIN CAPITAL LETTER S;Lu;0;L;<wide> 0053;;;;N;;;;FF53;
-FF34;FULLWIDTH LATIN CAPITAL LETTER T;Lu;0;L;<wide> 0054;;;;N;;;;FF54;
-FF35;FULLWIDTH LATIN CAPITAL LETTER U;Lu;0;L;<wide> 0055;;;;N;;;;FF55;
-FF36;FULLWIDTH LATIN CAPITAL LETTER V;Lu;0;L;<wide> 0056;;;;N;;;;FF56;
-FF37;FULLWIDTH LATIN CAPITAL LETTER W;Lu;0;L;<wide> 0057;;;;N;;;;FF57;
-FF38;FULLWIDTH LATIN CAPITAL LETTER X;Lu;0;L;<wide> 0058;;;;N;;;;FF58;
-FF39;FULLWIDTH LATIN CAPITAL LETTER Y;Lu;0;L;<wide> 0059;;;;N;;;;FF59;
-FF3A;FULLWIDTH LATIN CAPITAL LETTER Z;Lu;0;L;<wide> 005A;;;;N;;;;FF5A;
-FF3B;FULLWIDTH LEFT SQUARE BRACKET;Ps;0;ON;<wide> 005B;;;;Y;FULLWIDTH OPENING SQUARE BRACKET;;;;
-FF3C;FULLWIDTH REVERSE SOLIDUS;Po;0;ON;<wide> 005C;;;;N;FULLWIDTH BACKSLASH;;;;
-FF3D;FULLWIDTH RIGHT SQUARE BRACKET;Pe;0;ON;<wide> 005D;;;;Y;FULLWIDTH CLOSING SQUARE BRACKET;;;;
-FF3E;FULLWIDTH CIRCUMFLEX ACCENT;Sk;0;ON;<wide> 005E;;;;N;FULLWIDTH SPACING CIRCUMFLEX;;;;
-FF3F;FULLWIDTH LOW LINE;Pc;0;ON;<wide> 005F;;;;N;FULLWIDTH SPACING UNDERSCORE;;;;
-FF40;FULLWIDTH GRAVE ACCENT;Sk;0;ON;<wide> 0060;;;;N;FULLWIDTH SPACING GRAVE;;;;
-FF41;FULLWIDTH LATIN SMALL LETTER A;Ll;0;L;<wide> 0061;;;;N;;;FF21;;FF21
-FF42;FULLWIDTH LATIN SMALL LETTER B;Ll;0;L;<wide> 0062;;;;N;;;FF22;;FF22
-FF43;FULLWIDTH LATIN SMALL LETTER C;Ll;0;L;<wide> 0063;;;;N;;;FF23;;FF23
-FF44;FULLWIDTH LATIN SMALL LETTER D;Ll;0;L;<wide> 0064;;;;N;;;FF24;;FF24
-FF45;FULLWIDTH LATIN SMALL LETTER E;Ll;0;L;<wide> 0065;;;;N;;;FF25;;FF25
-FF46;FULLWIDTH LATIN SMALL LETTER F;Ll;0;L;<wide> 0066;;;;N;;;FF26;;FF26
-FF47;FULLWIDTH LATIN SMALL LETTER G;Ll;0;L;<wide> 0067;;;;N;;;FF27;;FF27
-FF48;FULLWIDTH LATIN SMALL LETTER H;Ll;0;L;<wide> 0068;;;;N;;;FF28;;FF28
-FF49;FULLWIDTH LATIN SMALL LETTER I;Ll;0;L;<wide> 0069;;;;N;;;FF29;;FF29
-FF4A;FULLWIDTH LATIN SMALL LETTER J;Ll;0;L;<wide> 006A;;;;N;;;FF2A;;FF2A
-FF4B;FULLWIDTH LATIN SMALL LETTER K;Ll;0;L;<wide> 006B;;;;N;;;FF2B;;FF2B
-FF4C;FULLWIDTH LATIN SMALL LETTER L;Ll;0;L;<wide> 006C;;;;N;;;FF2C;;FF2C
-FF4D;FULLWIDTH LATIN SMALL LETTER M;Ll;0;L;<wide> 006D;;;;N;;;FF2D;;FF2D
-FF4E;FULLWIDTH LATIN SMALL LETTER N;Ll;0;L;<wide> 006E;;;;N;;;FF2E;;FF2E
-FF4F;FULLWIDTH LATIN SMALL LETTER O;Ll;0;L;<wide> 006F;;;;N;;;FF2F;;FF2F
-FF50;FULLWIDTH LATIN SMALL LETTER P;Ll;0;L;<wide> 0070;;;;N;;;FF30;;FF30
-FF51;FULLWIDTH LATIN SMALL LETTER Q;Ll;0;L;<wide> 0071;;;;N;;;FF31;;FF31
-FF52;FULLWIDTH LATIN SMALL LETTER R;Ll;0;L;<wide> 0072;;;;N;;;FF32;;FF32
-FF53;FULLWIDTH LATIN SMALL LETTER S;Ll;0;L;<wide> 0073;;;;N;;;FF33;;FF33
-FF54;FULLWIDTH LATIN SMALL LETTER T;Ll;0;L;<wide> 0074;;;;N;;;FF34;;FF34
-FF55;FULLWIDTH LATIN SMALL LETTER U;Ll;0;L;<wide> 0075;;;;N;;;FF35;;FF35
-FF56;FULLWIDTH LATIN SMALL LETTER V;Ll;0;L;<wide> 0076;;;;N;;;FF36;;FF36
-FF57;FULLWIDTH LATIN SMALL LETTER W;Ll;0;L;<wide> 0077;;;;N;;;FF37;;FF37
-FF58;FULLWIDTH LATIN SMALL LETTER X;Ll;0;L;<wide> 0078;;;;N;;;FF38;;FF38
-FF59;FULLWIDTH LATIN SMALL LETTER Y;Ll;0;L;<wide> 0079;;;;N;;;FF39;;FF39
-FF5A;FULLWIDTH LATIN SMALL LETTER Z;Ll;0;L;<wide> 007A;;;;N;;;FF3A;;FF3A
-FF5B;FULLWIDTH LEFT CURLY BRACKET;Ps;0;ON;<wide> 007B;;;;Y;FULLWIDTH OPENING CURLY BRACKET;;;;
-FF5C;FULLWIDTH VERTICAL LINE;Sm;0;ON;<wide> 007C;;;;N;FULLWIDTH VERTICAL BAR;;;;
-FF5D;FULLWIDTH RIGHT CURLY BRACKET;Pe;0;ON;<wide> 007D;;;;Y;FULLWIDTH CLOSING CURLY BRACKET;;;;
-FF5E;FULLWIDTH TILDE;Sm;0;ON;<wide> 007E;;;;N;FULLWIDTH SPACING TILDE;;;;
-FF5F;FULLWIDTH LEFT WHITE PARENTHESIS;Ps;0;ON;<wide> 2985;;;;Y;;;;;
-FF60;FULLWIDTH RIGHT WHITE PARENTHESIS;Pe;0;ON;<wide> 2986;;;;Y;;;;;
-FF61;HALFWIDTH IDEOGRAPHIC FULL STOP;Po;0;ON;<narrow> 3002;;;;N;HALFWIDTH IDEOGRAPHIC PERIOD;;;;
-FF62;HALFWIDTH LEFT CORNER BRACKET;Ps;0;ON;<narrow> 300C;;;;Y;HALFWIDTH OPENING CORNER BRACKET;;;;
-FF63;HALFWIDTH RIGHT CORNER BRACKET;Pe;0;ON;<narrow> 300D;;;;Y;HALFWIDTH CLOSING CORNER BRACKET;;;;
-FF64;HALFWIDTH IDEOGRAPHIC COMMA;Po;0;ON;<narrow> 3001;;;;N;;;;;
-FF65;HALFWIDTH KATAKANA MIDDLE DOT;Po;0;ON;<narrow> 30FB;;;;N;;;;;
-FF66;HALFWIDTH KATAKANA LETTER WO;Lo;0;L;<narrow> 30F2;;;;N;;;;;
-FF67;HALFWIDTH KATAKANA LETTER SMALL A;Lo;0;L;<narrow> 30A1;;;;N;;;;;
-FF68;HALFWIDTH KATAKANA LETTER SMALL I;Lo;0;L;<narrow> 30A3;;;;N;;;;;
-FF69;HALFWIDTH KATAKANA LETTER SMALL U;Lo;0;L;<narrow> 30A5;;;;N;;;;;
-FF6A;HALFWIDTH KATAKANA LETTER SMALL E;Lo;0;L;<narrow> 30A7;;;;N;;;;;
-FF6B;HALFWIDTH KATAKANA LETTER SMALL O;Lo;0;L;<narrow> 30A9;;;;N;;;;;
-FF6C;HALFWIDTH KATAKANA LETTER SMALL YA;Lo;0;L;<narrow> 30E3;;;;N;;;;;
-FF6D;HALFWIDTH KATAKANA LETTER SMALL YU;Lo;0;L;<narrow> 30E5;;;;N;;;;;
-FF6E;HALFWIDTH KATAKANA LETTER SMALL YO;Lo;0;L;<narrow> 30E7;;;;N;;;;;
-FF6F;HALFWIDTH KATAKANA LETTER SMALL TU;Lo;0;L;<narrow> 30C3;;;;N;;;;;
-FF70;HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;<narrow> 30FC;;;;N;;;;;
-FF71;HALFWIDTH KATAKANA LETTER A;Lo;0;L;<narrow> 30A2;;;;N;;;;;
-FF72;HALFWIDTH KATAKANA LETTER I;Lo;0;L;<narrow> 30A4;;;;N;;;;;
-FF73;HALFWIDTH KATAKANA LETTER U;Lo;0;L;<narrow> 30A6;;;;N;;;;;
-FF74;HALFWIDTH KATAKANA LETTER E;Lo;0;L;<narrow> 30A8;;;;N;;;;;
-FF75;HALFWIDTH KATAKANA LETTER O;Lo;0;L;<narrow> 30AA;;;;N;;;;;
-FF76;HALFWIDTH KATAKANA LETTER KA;Lo;0;L;<narrow> 30AB;;;;N;;;;;
-FF77;HALFWIDTH KATAKANA LETTER KI;Lo;0;L;<narrow> 30AD;;;;N;;;;;
-FF78;HALFWIDTH KATAKANA LETTER KU;Lo;0;L;<narrow> 30AF;;;;N;;;;;
-FF79;HALFWIDTH KATAKANA LETTER KE;Lo;0;L;<narrow> 30B1;;;;N;;;;;
-FF7A;HALFWIDTH KATAKANA LETTER KO;Lo;0;L;<narrow> 30B3;;;;N;;;;;
-FF7B;HALFWIDTH KATAKANA LETTER SA;Lo;0;L;<narrow> 30B5;;;;N;;;;;
-FF7C;HALFWIDTH KATAKANA LETTER SI;Lo;0;L;<narrow> 30B7;;;;N;;;;;
-FF7D;HALFWIDTH KATAKANA LETTER SU;Lo;0;L;<narrow> 30B9;;;;N;;;;;
-FF7E;HALFWIDTH KATAKANA LETTER SE;Lo;0;L;<narrow> 30BB;;;;N;;;;;
-FF7F;HALFWIDTH KATAKANA LETTER SO;Lo;0;L;<narrow> 30BD;;;;N;;;;;
-FF80;HALFWIDTH KATAKANA LETTER TA;Lo;0;L;<narrow> 30BF;;;;N;;;;;
-FF81;HALFWIDTH KATAKANA LETTER TI;Lo;0;L;<narrow> 30C1;;;;N;;;;;
-FF82;HALFWIDTH KATAKANA LETTER TU;Lo;0;L;<narrow> 30C4;;;;N;;;;;
-FF83;HALFWIDTH KATAKANA LETTER TE;Lo;0;L;<narrow> 30C6;;;;N;;;;;
-FF84;HALFWIDTH KATAKANA LETTER TO;Lo;0;L;<narrow> 30C8;;;;N;;;;;
-FF85;HALFWIDTH KATAKANA LETTER NA;Lo;0;L;<narrow> 30CA;;;;N;;;;;
-FF86;HALFWIDTH KATAKANA LETTER NI;Lo;0;L;<narrow> 30CB;;;;N;;;;;
-FF87;HALFWIDTH KATAKANA LETTER NU;Lo;0;L;<narrow> 30CC;;;;N;;;;;
-FF88;HALFWIDTH KATAKANA LETTER NE;Lo;0;L;<narrow> 30CD;;;;N;;;;;
-FF89;HALFWIDTH KATAKANA LETTER NO;Lo;0;L;<narrow> 30CE;;;;N;;;;;
-FF8A;HALFWIDTH KATAKANA LETTER HA;Lo;0;L;<narrow> 30CF;;;;N;;;;;
-FF8B;HALFWIDTH KATAKANA LETTER HI;Lo;0;L;<narrow> 30D2;;;;N;;;;;
-FF8C;HALFWIDTH KATAKANA LETTER HU;Lo;0;L;<narrow> 30D5;;;;N;;;;;
-FF8D;HALFWIDTH KATAKANA LETTER HE;Lo;0;L;<narrow> 30D8;;;;N;;;;;
-FF8E;HALFWIDTH KATAKANA LETTER HO;Lo;0;L;<narrow> 30DB;;;;N;;;;;
-FF8F;HALFWIDTH KATAKANA LETTER MA;Lo;0;L;<narrow> 30DE;;;;N;;;;;
-FF90;HALFWIDTH KATAKANA LETTER MI;Lo;0;L;<narrow> 30DF;;;;N;;;;;
-FF91;HALFWIDTH KATAKANA LETTER MU;Lo;0;L;<narrow> 30E0;;;;N;;;;;
-FF92;HALFWIDTH KATAKANA LETTER ME;Lo;0;L;<narrow> 30E1;;;;N;;;;;
-FF93;HALFWIDTH KATAKANA LETTER MO;Lo;0;L;<narrow> 30E2;;;;N;;;;;
-FF94;HALFWIDTH KATAKANA LETTER YA;Lo;0;L;<narrow> 30E4;;;;N;;;;;
-FF95;HALFWIDTH KATAKANA LETTER YU;Lo;0;L;<narrow> 30E6;;;;N;;;;;
-FF96;HALFWIDTH KATAKANA LETTER YO;Lo;0;L;<narrow> 30E8;;;;N;;;;;
-FF97;HALFWIDTH KATAKANA LETTER RA;Lo;0;L;<narrow> 30E9;;;;N;;;;;
-FF98;HALFWIDTH KATAKANA LETTER RI;Lo;0;L;<narrow> 30EA;;;;N;;;;;
-FF99;HALFWIDTH KATAKANA LETTER RU;Lo;0;L;<narrow> 30EB;;;;N;;;;;
-FF9A;HALFWIDTH KATAKANA LETTER RE;Lo;0;L;<narrow> 30EC;;;;N;;;;;
-FF9B;HALFWIDTH KATAKANA LETTER RO;Lo;0;L;<narrow> 30ED;;;;N;;;;;
-FF9C;HALFWIDTH KATAKANA LETTER WA;Lo;0;L;<narrow> 30EF;;;;N;;;;;
-FF9D;HALFWIDTH KATAKANA LETTER N;Lo;0;L;<narrow> 30F3;;;;N;;;;;
-FF9E;HALFWIDTH KATAKANA VOICED SOUND MARK;Lm;0;L;<narrow> 3099;;;;N;;;;;
-FF9F;HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK;Lm;0;L;<narrow> 309A;;;;N;;;;;
-FFA0;HALFWIDTH HANGUL FILLER;Lo;0;L;<narrow> 3164;;;;N;HALFWIDTH HANGUL CAE OM;;;;
-FFA1;HALFWIDTH HANGUL LETTER KIYEOK;Lo;0;L;<narrow> 3131;;;;N;HALFWIDTH HANGUL LETTER GIYEOG;;;;
-FFA2;HALFWIDTH HANGUL LETTER SSANGKIYEOK;Lo;0;L;<narrow> 3132;;;;N;HALFWIDTH HANGUL LETTER SSANG GIYEOG;;;;
-FFA3;HALFWIDTH HANGUL LETTER KIYEOK-SIOS;Lo;0;L;<narrow> 3133;;;;N;HALFWIDTH HANGUL LETTER GIYEOG SIOS;;;;
-FFA4;HALFWIDTH HANGUL LETTER NIEUN;Lo;0;L;<narrow> 3134;;;;N;;;;;
-FFA5;HALFWIDTH HANGUL LETTER NIEUN-CIEUC;Lo;0;L;<narrow> 3135;;;;N;HALFWIDTH HANGUL LETTER NIEUN JIEUJ;;;;
-FFA6;HALFWIDTH HANGUL LETTER NIEUN-HIEUH;Lo;0;L;<narrow> 3136;;;;N;HALFWIDTH HANGUL LETTER NIEUN HIEUH;;;;
-FFA7;HALFWIDTH HANGUL LETTER TIKEUT;Lo;0;L;<narrow> 3137;;;;N;HALFWIDTH HANGUL LETTER DIGEUD;;;;
-FFA8;HALFWIDTH HANGUL LETTER SSANGTIKEUT;Lo;0;L;<narrow> 3138;;;;N;HALFWIDTH HANGUL LETTER SSANG DIGEUD;;;;
-FFA9;HALFWIDTH HANGUL LETTER RIEUL;Lo;0;L;<narrow> 3139;;;;N;HALFWIDTH HANGUL LETTER LIEUL;;;;
-FFAA;HALFWIDTH HANGUL LETTER RIEUL-KIYEOK;Lo;0;L;<narrow> 313A;;;;N;HALFWIDTH HANGUL LETTER LIEUL GIYEOG;;;;
-FFAB;HALFWIDTH HANGUL LETTER RIEUL-MIEUM;Lo;0;L;<narrow> 313B;;;;N;HALFWIDTH HANGUL LETTER LIEUL MIEUM;;;;
-FFAC;HALFWIDTH HANGUL LETTER RIEUL-PIEUP;Lo;0;L;<narrow> 313C;;;;N;HALFWIDTH HANGUL LETTER LIEUL BIEUB;;;;
-FFAD;HALFWIDTH HANGUL LETTER RIEUL-SIOS;Lo;0;L;<narrow> 313D;;;;N;HALFWIDTH HANGUL LETTER LIEUL SIOS;;;;
-FFAE;HALFWIDTH HANGUL LETTER RIEUL-THIEUTH;Lo;0;L;<narrow> 313E;;;;N;HALFWIDTH HANGUL LETTER LIEUL TIEUT;;;;
-FFAF;HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L;<narrow> 313F;;;;N;HALFWIDTH HANGUL LETTER LIEUL PIEUP;;;;
-FFB0;HALFWIDTH HANGUL LETTER RIEUL-HIEUH;Lo;0;L;<narrow> 3140;;;;N;HALFWIDTH HANGUL LETTER LIEUL HIEUH;;;;
-FFB1;HALFWIDTH HANGUL LETTER MIEUM;Lo;0;L;<narrow> 3141;;;;N;;;;;
-FFB2;HALFWIDTH HANGUL LETTER PIEUP;Lo;0;L;<narrow> 3142;;;;N;HALFWIDTH HANGUL LETTER BIEUB;;;;
-FFB3;HALFWIDTH HANGUL LETTER SSANGPIEUP;Lo;0;L;<narrow> 3143;;;;N;HALFWIDTH HANGUL LETTER SSANG BIEUB;;;;
-FFB4;HALFWIDTH HANGUL LETTER PIEUP-SIOS;Lo;0;L;<narrow> 3144;;;;N;HALFWIDTH HANGUL LETTER BIEUB SIOS;;;;
-FFB5;HALFWIDTH HANGUL LETTER SIOS;Lo;0;L;<narrow> 3145;;;;N;;;;;
-FFB6;HALFWIDTH HANGUL LETTER SSANGSIOS;Lo;0;L;<narrow> 3146;;;;N;HALFWIDTH HANGUL LETTER SSANG SIOS;;;;
-FFB7;HALFWIDTH HANGUL LETTER IEUNG;Lo;0;L;<narrow> 3147;;;;N;;;;;
-FFB8;HALFWIDTH HANGUL LETTER CIEUC;Lo;0;L;<narrow> 3148;;;;N;HALFWIDTH HANGUL LETTER JIEUJ;;;;
-FFB9;HALFWIDTH HANGUL LETTER SSANGCIEUC;Lo;0;L;<narrow> 3149;;;;N;HALFWIDTH HANGUL LETTER SSANG JIEUJ;;;;
-FFBA;HALFWIDTH HANGUL LETTER CHIEUCH;Lo;0;L;<narrow> 314A;;;;N;HALFWIDTH HANGUL LETTER CIEUC;;;;
-FFBB;HALFWIDTH HANGUL LETTER KHIEUKH;Lo;0;L;<narrow> 314B;;;;N;HALFWIDTH HANGUL LETTER KIYEOK;;;;
-FFBC;HALFWIDTH HANGUL LETTER THIEUTH;Lo;0;L;<narrow> 314C;;;;N;HALFWIDTH HANGUL LETTER TIEUT;;;;
-FFBD;HALFWIDTH HANGUL LETTER PHIEUPH;Lo;0;L;<narrow> 314D;;;;N;HALFWIDTH HANGUL LETTER PIEUP;;;;
-FFBE;HALFWIDTH HANGUL LETTER HIEUH;Lo;0;L;<narrow> 314E;;;;N;;;;;
-FFC2;HALFWIDTH HANGUL LETTER A;Lo;0;L;<narrow> 314F;;;;N;;;;;
-FFC3;HALFWIDTH HANGUL LETTER AE;Lo;0;L;<narrow> 3150;;;;N;;;;;
-FFC4;HALFWIDTH HANGUL LETTER YA;Lo;0;L;<narrow> 3151;;;;N;;;;;
-FFC5;HALFWIDTH HANGUL LETTER YAE;Lo;0;L;<narrow> 3152;;;;N;;;;;
-FFC6;HALFWIDTH HANGUL LETTER EO;Lo;0;L;<narrow> 3153;;;;N;;;;;
-FFC7;HALFWIDTH HANGUL LETTER E;Lo;0;L;<narrow> 3154;;;;N;;;;;
-FFCA;HALFWIDTH HANGUL LETTER YEO;Lo;0;L;<narrow> 3155;;;;N;;;;;
-FFCB;HALFWIDTH HANGUL LETTER YE;Lo;0;L;<narrow> 3156;;;;N;;;;;
-FFCC;HALFWIDTH HANGUL LETTER O;Lo;0;L;<narrow> 3157;;;;N;;;;;
-FFCD;HALFWIDTH HANGUL LETTER WA;Lo;0;L;<narrow> 3158;;;;N;;;;;
-FFCE;HALFWIDTH HANGUL LETTER WAE;Lo;0;L;<narrow> 3159;;;;N;;;;;
-FFCF;HALFWIDTH HANGUL LETTER OE;Lo;0;L;<narrow> 315A;;;;N;;;;;
-FFD2;HALFWIDTH HANGUL LETTER YO;Lo;0;L;<narrow> 315B;;;;N;;;;;
-FFD3;HALFWIDTH HANGUL LETTER U;Lo;0;L;<narrow> 315C;;;;N;;;;;
-FFD4;HALFWIDTH HANGUL LETTER WEO;Lo;0;L;<narrow> 315D;;;;N;;;;;
-FFD5;HALFWIDTH HANGUL LETTER WE;Lo;0;L;<narrow> 315E;;;;N;;;;;
-FFD6;HALFWIDTH HANGUL LETTER WI;Lo;0;L;<narrow> 315F;;;;N;;;;;
-FFD7;HALFWIDTH HANGUL LETTER YU;Lo;0;L;<narrow> 3160;;;;N;;;;;
-FFDA;HALFWIDTH HANGUL LETTER EU;Lo;0;L;<narrow> 3161;;;;N;;;;;
-FFDB;HALFWIDTH HANGUL LETTER YI;Lo;0;L;<narrow> 3162;;;;N;;;;;
-FFDC;HALFWIDTH HANGUL LETTER I;Lo;0;L;<narrow> 3163;;;;N;;;;;
-FFE0;FULLWIDTH CENT SIGN;Sc;0;ET;<wide> 00A2;;;;N;;;;;
-FFE1;FULLWIDTH POUND SIGN;Sc;0;ET;<wide> 00A3;;;;N;;;;;
-FFE2;FULLWIDTH NOT SIGN;Sm;0;ON;<wide> 00AC;;;;N;;;;;
-FFE3;FULLWIDTH MACRON;Sk;0;ON;<wide> 00AF;;;;N;FULLWIDTH SPACING MACRON;;;;
-FFE4;FULLWIDTH BROKEN BAR;So;0;ON;<wide> 00A6;;;;N;FULLWIDTH BROKEN VERTICAL BAR;;;;
-FFE5;FULLWIDTH YEN SIGN;Sc;0;ET;<wide> 00A5;;;;N;;;;;
-FFE6;FULLWIDTH WON SIGN;Sc;0;ET;<wide> 20A9;;;;N;;;;;
-FFE8;HALFWIDTH FORMS LIGHT VERTICAL;So;0;ON;<narrow> 2502;;;;N;;;;;
-FFE9;HALFWIDTH LEFTWARDS ARROW;Sm;0;ON;<narrow> 2190;;;;N;;;;;
-FFEA;HALFWIDTH UPWARDS ARROW;Sm;0;ON;<narrow> 2191;;;;N;;;;;
-FFEB;HALFWIDTH RIGHTWARDS ARROW;Sm;0;ON;<narrow> 2192;;;;N;;;;;
-FFEC;HALFWIDTH DOWNWARDS ARROW;Sm;0;ON;<narrow> 2193;;;;N;;;;;
-FFED;HALFWIDTH BLACK SQUARE;So;0;ON;<narrow> 25A0;;;;N;;;;;
-FFEE;HALFWIDTH WHITE CIRCLE;So;0;ON;<narrow> 25CB;;;;N;;;;;
-FFF9;INTERLINEAR ANNOTATION ANCHOR;Cf;0;ON;;;;;N;;;;;
-FFFA;INTERLINEAR ANNOTATION SEPARATOR;Cf;0;ON;;;;;N;;;;;
-FFFB;INTERLINEAR ANNOTATION TERMINATOR;Cf;0;ON;;;;;N;;;;;
-FFFC;OBJECT REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
-FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
-10000;LINEAR B SYLLABLE B008 A;Lo;0;L;;;;;N;;;;;
-10001;LINEAR B SYLLABLE B038 E;Lo;0;L;;;;;N;;;;;
-10002;LINEAR B SYLLABLE B028 I;Lo;0;L;;;;;N;;;;;
-10003;LINEAR B SYLLABLE B061 O;Lo;0;L;;;;;N;;;;;
-10004;LINEAR B SYLLABLE B010 U;Lo;0;L;;;;;N;;;;;
-10005;LINEAR B SYLLABLE B001 DA;Lo;0;L;;;;;N;;;;;
-10006;LINEAR B SYLLABLE B045 DE;Lo;0;L;;;;;N;;;;;
-10007;LINEAR B SYLLABLE B007 DI;Lo;0;L;;;;;N;;;;;
-10008;LINEAR B SYLLABLE B014 DO;Lo;0;L;;;;;N;;;;;
-10009;LINEAR B SYLLABLE B051 DU;Lo;0;L;;;;;N;;;;;
-1000A;LINEAR B SYLLABLE B057 JA;Lo;0;L;;;;;N;;;;;
-1000B;LINEAR B SYLLABLE B046 JE;Lo;0;L;;;;;N;;;;;
-1000D;LINEAR B SYLLABLE B036 JO;Lo;0;L;;;;;N;;;;;
-1000E;LINEAR B SYLLABLE B065 JU;Lo;0;L;;;;;N;;;;;
-1000F;LINEAR B SYLLABLE B077 KA;Lo;0;L;;;;;N;;;;;
-10010;LINEAR B SYLLABLE B044 KE;Lo;0;L;;;;;N;;;;;
-10011;LINEAR B SYLLABLE B067 KI;Lo;0;L;;;;;N;;;;;
-10012;LINEAR B SYLLABLE B070 KO;Lo;0;L;;;;;N;;;;;
-10013;LINEAR B SYLLABLE B081 KU;Lo;0;L;;;;;N;;;;;
-10014;LINEAR B SYLLABLE B080 MA;Lo;0;L;;;;;N;;;;;
-10015;LINEAR B SYLLABLE B013 ME;Lo;0;L;;;;;N;;;;;
-10016;LINEAR B SYLLABLE B073 MI;Lo;0;L;;;;;N;;;;;
-10017;LINEAR B SYLLABLE B015 MO;Lo;0;L;;;;;N;;;;;
-10018;LINEAR B SYLLABLE B023 MU;Lo;0;L;;;;;N;;;;;
-10019;LINEAR B SYLLABLE B006 NA;Lo;0;L;;;;;N;;;;;
-1001A;LINEAR B SYLLABLE B024 NE;Lo;0;L;;;;;N;;;;;
-1001B;LINEAR B SYLLABLE B030 NI;Lo;0;L;;;;;N;;;;;
-1001C;LINEAR B SYLLABLE B052 NO;Lo;0;L;;;;;N;;;;;
-1001D;LINEAR B SYLLABLE B055 NU;Lo;0;L;;;;;N;;;;;
-1001E;LINEAR B SYLLABLE B003 PA;Lo;0;L;;;;;N;;;;;
-1001F;LINEAR B SYLLABLE B072 PE;Lo;0;L;;;;;N;;;;;
-10020;LINEAR B SYLLABLE B039 PI;Lo;0;L;;;;;N;;;;;
-10021;LINEAR B SYLLABLE B011 PO;Lo;0;L;;;;;N;;;;;
-10022;LINEAR B SYLLABLE B050 PU;Lo;0;L;;;;;N;;;;;
-10023;LINEAR B SYLLABLE B016 QA;Lo;0;L;;;;;N;;;;;
-10024;LINEAR B SYLLABLE B078 QE;Lo;0;L;;;;;N;;;;;
-10025;LINEAR B SYLLABLE B021 QI;Lo;0;L;;;;;N;;;;;
-10026;LINEAR B SYLLABLE B032 QO;Lo;0;L;;;;;N;;;;;
-10028;LINEAR B SYLLABLE B060 RA;Lo;0;L;;;;;N;;;;;
-10029;LINEAR B SYLLABLE B027 RE;Lo;0;L;;;;;N;;;;;
-1002A;LINEAR B SYLLABLE B053 RI;Lo;0;L;;;;;N;;;;;
-1002B;LINEAR B SYLLABLE B002 RO;Lo;0;L;;;;;N;;;;;
-1002C;LINEAR B SYLLABLE B026 RU;Lo;0;L;;;;;N;;;;;
-1002D;LINEAR B SYLLABLE B031 SA;Lo;0;L;;;;;N;;;;;
-1002E;LINEAR B SYLLABLE B009 SE;Lo;0;L;;;;;N;;;;;
-1002F;LINEAR B SYLLABLE B041 SI;Lo;0;L;;;;;N;;;;;
-10030;LINEAR B SYLLABLE B012 SO;Lo;0;L;;;;;N;;;;;
-10031;LINEAR B SYLLABLE B058 SU;Lo;0;L;;;;;N;;;;;
-10032;LINEAR B SYLLABLE B059 TA;Lo;0;L;;;;;N;;;;;
-10033;LINEAR B SYLLABLE B004 TE;Lo;0;L;;;;;N;;;;;
-10034;LINEAR B SYLLABLE B037 TI;Lo;0;L;;;;;N;;;;;
-10035;LINEAR B SYLLABLE B005 TO;Lo;0;L;;;;;N;;;;;
-10036;LINEAR B SYLLABLE B069 TU;Lo;0;L;;;;;N;;;;;
-10037;LINEAR B SYLLABLE B054 WA;Lo;0;L;;;;;N;;;;;
-10038;LINEAR B SYLLABLE B075 WE;Lo;0;L;;;;;N;;;;;
-10039;LINEAR B SYLLABLE B040 WI;Lo;0;L;;;;;N;;;;;
-1003A;LINEAR B SYLLABLE B042 WO;Lo;0;L;;;;;N;;;;;
-1003C;LINEAR B SYLLABLE B017 ZA;Lo;0;L;;;;;N;;;;;
-1003D;LINEAR B SYLLABLE B074 ZE;Lo;0;L;;;;;N;;;;;
-1003F;LINEAR B SYLLABLE B020 ZO;Lo;0;L;;;;;N;;;;;
-10040;LINEAR B SYLLABLE B025 A2;Lo;0;L;;;;;N;;;;;
-10041;LINEAR B SYLLABLE B043 A3;Lo;0;L;;;;;N;;;;;
-10042;LINEAR B SYLLABLE B085 AU;Lo;0;L;;;;;N;;;;;
-10043;LINEAR B SYLLABLE B071 DWE;Lo;0;L;;;;;N;;;;;
-10044;LINEAR B SYLLABLE B090 DWO;Lo;0;L;;;;;N;;;;;
-10045;LINEAR B SYLLABLE B048 NWA;Lo;0;L;;;;;N;;;;;
-10046;LINEAR B SYLLABLE B029 PU2;Lo;0;L;;;;;N;;;;;
-10047;LINEAR B SYLLABLE B062 PTE;Lo;0;L;;;;;N;;;;;
-10048;LINEAR B SYLLABLE B076 RA2;Lo;0;L;;;;;N;;;;;
-10049;LINEAR B SYLLABLE B033 RA3;Lo;0;L;;;;;N;;;;;
-1004A;LINEAR B SYLLABLE B068 RO2;Lo;0;L;;;;;N;;;;;
-1004B;LINEAR B SYLLABLE B066 TA2;Lo;0;L;;;;;N;;;;;
-1004C;LINEAR B SYLLABLE B087 TWE;Lo;0;L;;;;;N;;;;;
-1004D;LINEAR B SYLLABLE B091 TWO;Lo;0;L;;;;;N;;;;;
-10050;LINEAR B SYMBOL B018;Lo;0;L;;;;;N;;;;;
-10051;LINEAR B SYMBOL B019;Lo;0;L;;;;;N;;;;;
-10052;LINEAR B SYMBOL B022;Lo;0;L;;;;;N;;;;;
-10053;LINEAR B SYMBOL B034;Lo;0;L;;;;;N;;;;;
-10054;LINEAR B SYMBOL B047;Lo;0;L;;;;;N;;;;;
-10055;LINEAR B SYMBOL B049;Lo;0;L;;;;;N;;;;;
-10056;LINEAR B SYMBOL B056;Lo;0;L;;;;;N;;;;;
-10057;LINEAR B SYMBOL B063;Lo;0;L;;;;;N;;;;;
-10058;LINEAR B SYMBOL B064;Lo;0;L;;;;;N;;;;;
-10059;LINEAR B SYMBOL B079;Lo;0;L;;;;;N;;;;;
-1005A;LINEAR B SYMBOL B082;Lo;0;L;;;;;N;;;;;
-1005B;LINEAR B SYMBOL B083;Lo;0;L;;;;;N;;;;;
-1005C;LINEAR B SYMBOL B086;Lo;0;L;;;;;N;;;;;
-1005D;LINEAR B SYMBOL B089;Lo;0;L;;;;;N;;;;;
-10080;LINEAR B IDEOGRAM B100 MAN;Lo;0;L;;;;;N;;;;;
-10081;LINEAR B IDEOGRAM B102 WOMAN;Lo;0;L;;;;;N;;;;;
-10082;LINEAR B IDEOGRAM B104 DEER;Lo;0;L;;;;;N;;;;;
-10083;LINEAR B IDEOGRAM B105 EQUID;Lo;0;L;;;;;N;;;;;
-10084;LINEAR B IDEOGRAM B105F MARE;Lo;0;L;;;;;N;;;;;
-10085;LINEAR B IDEOGRAM B105M STALLION;Lo;0;L;;;;;N;;;;;
-10086;LINEAR B IDEOGRAM B106F EWE;Lo;0;L;;;;;N;;;;;
-10087;LINEAR B IDEOGRAM B106M RAM;Lo;0;L;;;;;N;;;;;
-10088;LINEAR B IDEOGRAM B107F SHE-GOAT;Lo;0;L;;;;;N;;;;;
-10089;LINEAR B IDEOGRAM B107M HE-GOAT;Lo;0;L;;;;;N;;;;;
-1008A;LINEAR B IDEOGRAM B108F SOW;Lo;0;L;;;;;N;;;;;
-1008B;LINEAR B IDEOGRAM B108M BOAR;Lo;0;L;;;;;N;;;;;
-1008C;LINEAR B IDEOGRAM B109F COW;Lo;0;L;;;;;N;;;;;
-1008D;LINEAR B IDEOGRAM B109M BULL;Lo;0;L;;;;;N;;;;;
-1008E;LINEAR B IDEOGRAM B120 WHEAT;Lo;0;L;;;;;N;;;;;
-1008F;LINEAR B IDEOGRAM B121 BARLEY;Lo;0;L;;;;;N;;;;;
-10090;LINEAR B IDEOGRAM B122 OLIVE;Lo;0;L;;;;;N;;;;;
-10091;LINEAR B IDEOGRAM B123 SPICE;Lo;0;L;;;;;N;;;;;
-10092;LINEAR B IDEOGRAM B125 CYPERUS;Lo;0;L;;;;;N;;;;;
-10093;LINEAR B MONOGRAM B127 KAPO;Lo;0;L;;;;;N;;;;;
-10094;LINEAR B MONOGRAM B128 KANAKO;Lo;0;L;;;;;N;;;;;
-10095;LINEAR B IDEOGRAM B130 OIL;Lo;0;L;;;;;N;;;;;
-10096;LINEAR B IDEOGRAM B131 WINE;Lo;0;L;;;;;N;;;;;
-10097;LINEAR B IDEOGRAM B132;Lo;0;L;;;;;N;;;;;
-10098;LINEAR B MONOGRAM B133 AREPA;Lo;0;L;;;;;N;;;;;
-10099;LINEAR B MONOGRAM B135 MERI;Lo;0;L;;;;;N;;;;;
-1009A;LINEAR B IDEOGRAM B140 BRONZE;Lo;0;L;;;;;N;;;;;
-1009B;LINEAR B IDEOGRAM B141 GOLD;Lo;0;L;;;;;N;;;;;
-1009C;LINEAR B IDEOGRAM B142;Lo;0;L;;;;;N;;;;;
-1009D;LINEAR B IDEOGRAM B145 WOOL;Lo;0;L;;;;;N;;;;;
-1009E;LINEAR B IDEOGRAM B146;Lo;0;L;;;;;N;;;;;
-1009F;LINEAR B IDEOGRAM B150;Lo;0;L;;;;;N;;;;;
-100A0;LINEAR B IDEOGRAM B151 HORN;Lo;0;L;;;;;N;;;;;
-100A1;LINEAR B IDEOGRAM B152;Lo;0;L;;;;;N;;;;;
-100A2;LINEAR B IDEOGRAM B153;Lo;0;L;;;;;N;;;;;
-100A3;LINEAR B IDEOGRAM B154;Lo;0;L;;;;;N;;;;;
-100A4;LINEAR B MONOGRAM B156 TURO2;Lo;0;L;;;;;N;;;;;
-100A5;LINEAR B IDEOGRAM B157;Lo;0;L;;;;;N;;;;;
-100A6;LINEAR B IDEOGRAM B158;Lo;0;L;;;;;N;;;;;
-100A7;LINEAR B IDEOGRAM B159 CLOTH;Lo;0;L;;;;;N;;;;;
-100A8;LINEAR B IDEOGRAM B160;Lo;0;L;;;;;N;;;;;
-100A9;LINEAR B IDEOGRAM B161;Lo;0;L;;;;;N;;;;;
-100AA;LINEAR B IDEOGRAM B162 GARMENT;Lo;0;L;;;;;N;;;;;
-100AB;LINEAR B IDEOGRAM B163 ARMOUR;Lo;0;L;;;;;N;;;;;
-100AC;LINEAR B IDEOGRAM B164;Lo;0;L;;;;;N;;;;;
-100AD;LINEAR B IDEOGRAM B165;Lo;0;L;;;;;N;;;;;
-100AE;LINEAR B IDEOGRAM B166;Lo;0;L;;;;;N;;;;;
-100AF;LINEAR B IDEOGRAM B167;Lo;0;L;;;;;N;;;;;
-100B0;LINEAR B IDEOGRAM B168;Lo;0;L;;;;;N;;;;;
-100B1;LINEAR B IDEOGRAM B169;Lo;0;L;;;;;N;;;;;
-100B2;LINEAR B IDEOGRAM B170;Lo;0;L;;;;;N;;;;;
-100B3;LINEAR B IDEOGRAM B171;Lo;0;L;;;;;N;;;;;
-100B4;LINEAR B IDEOGRAM B172;Lo;0;L;;;;;N;;;;;
-100B5;LINEAR B IDEOGRAM B173 MONTH;Lo;0;L;;;;;N;;;;;
-100B6;LINEAR B IDEOGRAM B174;Lo;0;L;;;;;N;;;;;
-100B7;LINEAR B IDEOGRAM B176 TREE;Lo;0;L;;;;;N;;;;;
-100B8;LINEAR B IDEOGRAM B177;Lo;0;L;;;;;N;;;;;
-100B9;LINEAR B IDEOGRAM B178;Lo;0;L;;;;;N;;;;;
-100BA;LINEAR B IDEOGRAM B179;Lo;0;L;;;;;N;;;;;
-100BB;LINEAR B IDEOGRAM B180;Lo;0;L;;;;;N;;;;;
-100BC;LINEAR B IDEOGRAM B181;Lo;0;L;;;;;N;;;;;
-100BD;LINEAR B IDEOGRAM B182;Lo;0;L;;;;;N;;;;;
-100BE;LINEAR B IDEOGRAM B183;Lo;0;L;;;;;N;;;;;
-100BF;LINEAR B IDEOGRAM B184;Lo;0;L;;;;;N;;;;;
-100C0;LINEAR B IDEOGRAM B185;Lo;0;L;;;;;N;;;;;
-100C1;LINEAR B IDEOGRAM B189;Lo;0;L;;;;;N;;;;;
-100C2;LINEAR B IDEOGRAM B190;Lo;0;L;;;;;N;;;;;
-100C3;LINEAR B IDEOGRAM B191 HELMET;Lo;0;L;;;;;N;;;;;
-100C4;LINEAR B IDEOGRAM B220 FOOTSTOOL;Lo;0;L;;;;;N;;;;;
-100C5;LINEAR B IDEOGRAM B225 BATHTUB;Lo;0;L;;;;;N;;;;;
-100C6;LINEAR B IDEOGRAM B230 SPEAR;Lo;0;L;;;;;N;;;;;
-100C7;LINEAR B IDEOGRAM B231 ARROW;Lo;0;L;;;;;N;;;;;
-100C8;LINEAR B IDEOGRAM B232;Lo;0;L;;;;;N;;;;;
-100C9;LINEAR B IDEOGRAM B233 SWORD;Lo;0;L;;;;;N;;;;;
-100CA;LINEAR B IDEOGRAM B234;Lo;0;L;;;;;N;;;;;
-100CB;LINEAR B IDEOGRAM B236;Lo;0;L;;;;;N;;;;;
-100CC;LINEAR B IDEOGRAM B240 WHEELED CHARIOT;Lo;0;L;;;;;N;;;;;
-100CD;LINEAR B IDEOGRAM B241 CHARIOT;Lo;0;L;;;;;N;;;;;
-100CE;LINEAR B IDEOGRAM B242 CHARIOT FRAME;Lo;0;L;;;;;N;;;;;
-100CF;LINEAR B IDEOGRAM B243 WHEEL;Lo;0;L;;;;;N;;;;;
-100D0;LINEAR B IDEOGRAM B245;Lo;0;L;;;;;N;;;;;
-100D1;LINEAR B IDEOGRAM B246;Lo;0;L;;;;;N;;;;;
-100D2;LINEAR B MONOGRAM B247 DIPTE;Lo;0;L;;;;;N;;;;;
-100D3;LINEAR B IDEOGRAM B248;Lo;0;L;;;;;N;;;;;
-100D4;LINEAR B IDEOGRAM B249;Lo;0;L;;;;;N;;;;;
-100D5;LINEAR B IDEOGRAM B251;Lo;0;L;;;;;N;;;;;
-100D6;LINEAR B IDEOGRAM B252;Lo;0;L;;;;;N;;;;;
-100D7;LINEAR B IDEOGRAM B253;Lo;0;L;;;;;N;;;;;
-100D8;LINEAR B IDEOGRAM B254 DART;Lo;0;L;;;;;N;;;;;
-100D9;LINEAR B IDEOGRAM B255;Lo;0;L;;;;;N;;;;;
-100DA;LINEAR B IDEOGRAM B256;Lo;0;L;;;;;N;;;;;
-100DB;LINEAR B IDEOGRAM B257;Lo;0;L;;;;;N;;;;;
-100DC;LINEAR B IDEOGRAM B258;Lo;0;L;;;;;N;;;;;
-100DD;LINEAR B IDEOGRAM B259;Lo;0;L;;;;;N;;;;;
-100DE;LINEAR B IDEOGRAM VESSEL B155;Lo;0;L;;;;;N;;;;;
-100DF;LINEAR B IDEOGRAM VESSEL B200;Lo;0;L;;;;;N;;;;;
-100E0;LINEAR B IDEOGRAM VESSEL B201;Lo;0;L;;;;;N;;;;;
-100E1;LINEAR B IDEOGRAM VESSEL B202;Lo;0;L;;;;;N;;;;;
-100E2;LINEAR B IDEOGRAM VESSEL B203;Lo;0;L;;;;;N;;;;;
-100E3;LINEAR B IDEOGRAM VESSEL B204;Lo;0;L;;;;;N;;;;;
-100E4;LINEAR B IDEOGRAM VESSEL B205;Lo;0;L;;;;;N;;;;;
-100E5;LINEAR B IDEOGRAM VESSEL B206;Lo;0;L;;;;;N;;;;;
-100E6;LINEAR B IDEOGRAM VESSEL B207;Lo;0;L;;;;;N;;;;;
-100E7;LINEAR B IDEOGRAM VESSEL B208;Lo;0;L;;;;;N;;;;;
-100E8;LINEAR B IDEOGRAM VESSEL B209;Lo;0;L;;;;;N;;;;;
-100E9;LINEAR B IDEOGRAM VESSEL B210;Lo;0;L;;;;;N;;;;;
-100EA;LINEAR B IDEOGRAM VESSEL B211;Lo;0;L;;;;;N;;;;;
-100EB;LINEAR B IDEOGRAM VESSEL B212;Lo;0;L;;;;;N;;;;;
-100EC;LINEAR B IDEOGRAM VESSEL B213;Lo;0;L;;;;;N;;;;;
-100ED;LINEAR B IDEOGRAM VESSEL B214;Lo;0;L;;;;;N;;;;;
-100EE;LINEAR B IDEOGRAM VESSEL B215;Lo;0;L;;;;;N;;;;;
-100EF;LINEAR B IDEOGRAM VESSEL B216;Lo;0;L;;;;;N;;;;;
-100F0;LINEAR B IDEOGRAM VESSEL B217;Lo;0;L;;;;;N;;;;;
-100F1;LINEAR B IDEOGRAM VESSEL B218;Lo;0;L;;;;;N;;;;;
-100F2;LINEAR B IDEOGRAM VESSEL B219;Lo;0;L;;;;;N;;;;;
-100F3;LINEAR B IDEOGRAM VESSEL B221;Lo;0;L;;;;;N;;;;;
-100F4;LINEAR B IDEOGRAM VESSEL B222;Lo;0;L;;;;;N;;;;;
-100F5;LINEAR B IDEOGRAM VESSEL B226;Lo;0;L;;;;;N;;;;;
-100F6;LINEAR B IDEOGRAM VESSEL B227;Lo;0;L;;;;;N;;;;;
-100F7;LINEAR B IDEOGRAM VESSEL B228;Lo;0;L;;;;;N;;;;;
-100F8;LINEAR B IDEOGRAM VESSEL B229;Lo;0;L;;;;;N;;;;;
-100F9;LINEAR B IDEOGRAM VESSEL B250;Lo;0;L;;;;;N;;;;;
-100FA;LINEAR B IDEOGRAM VESSEL B305;Lo;0;L;;;;;N;;;;;
-10100;AEGEAN WORD SEPARATOR LINE;Po;0;L;;;;;N;;;;;
-10101;AEGEAN WORD SEPARATOR DOT;Po;0;ON;;;;;N;;;;;
-10102;AEGEAN CHECK MARK;Po;0;L;;;;;N;;;;;
-10107;AEGEAN NUMBER ONE;No;0;L;;;;1;N;;;;;
-10108;AEGEAN NUMBER TWO;No;0;L;;;;2;N;;;;;
-10109;AEGEAN NUMBER THREE;No;0;L;;;;3;N;;;;;
-1010A;AEGEAN NUMBER FOUR;No;0;L;;;;4;N;;;;;
-1010B;AEGEAN NUMBER FIVE;No;0;L;;;;5;N;;;;;
-1010C;AEGEAN NUMBER SIX;No;0;L;;;;6;N;;;;;
-1010D;AEGEAN NUMBER SEVEN;No;0;L;;;;7;N;;;;;
-1010E;AEGEAN NUMBER EIGHT;No;0;L;;;;8;N;;;;;
-1010F;AEGEAN NUMBER NINE;No;0;L;;;;9;N;;;;;
-10110;AEGEAN NUMBER TEN;No;0;L;;;;10;N;;;;;
-10111;AEGEAN NUMBER TWENTY;No;0;L;;;;20;N;;;;;
-10112;AEGEAN NUMBER THIRTY;No;0;L;;;;30;N;;;;;
-10113;AEGEAN NUMBER FORTY;No;0;L;;;;40;N;;;;;
-10114;AEGEAN NUMBER FIFTY;No;0;L;;;;50;N;;;;;
-10115;AEGEAN NUMBER SIXTY;No;0;L;;;;60;N;;;;;
-10116;AEGEAN NUMBER SEVENTY;No;0;L;;;;70;N;;;;;
-10117;AEGEAN NUMBER EIGHTY;No;0;L;;;;80;N;;;;;
-10118;AEGEAN NUMBER NINETY;No;0;L;;;;90;N;;;;;
-10119;AEGEAN NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;;
-1011A;AEGEAN NUMBER TWO HUNDRED;No;0;L;;;;200;N;;;;;
-1011B;AEGEAN NUMBER THREE HUNDRED;No;0;L;;;;300;N;;;;;
-1011C;AEGEAN NUMBER FOUR HUNDRED;No;0;L;;;;400;N;;;;;
-1011D;AEGEAN NUMBER FIVE HUNDRED;No;0;L;;;;500;N;;;;;
-1011E;AEGEAN NUMBER SIX HUNDRED;No;0;L;;;;600;N;;;;;
-1011F;AEGEAN NUMBER SEVEN HUNDRED;No;0;L;;;;700;N;;;;;
-10120;AEGEAN NUMBER EIGHT HUNDRED;No;0;L;;;;800;N;;;;;
-10121;AEGEAN NUMBER NINE HUNDRED;No;0;L;;;;900;N;;;;;
-10122;AEGEAN NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;;
-10123;AEGEAN NUMBER TWO THOUSAND;No;0;L;;;;2000;N;;;;;
-10124;AEGEAN NUMBER THREE THOUSAND;No;0;L;;;;3000;N;;;;;
-10125;AEGEAN NUMBER FOUR THOUSAND;No;0;L;;;;4000;N;;;;;
-10126;AEGEAN NUMBER FIVE THOUSAND;No;0;L;;;;5000;N;;;;;
-10127;AEGEAN NUMBER SIX THOUSAND;No;0;L;;;;6000;N;;;;;
-10128;AEGEAN NUMBER SEVEN THOUSAND;No;0;L;;;;7000;N;;;;;
-10129;AEGEAN NUMBER EIGHT THOUSAND;No;0;L;;;;8000;N;;;;;
-1012A;AEGEAN NUMBER NINE THOUSAND;No;0;L;;;;9000;N;;;;;
-1012B;AEGEAN NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;;
-1012C;AEGEAN NUMBER TWENTY THOUSAND;No;0;L;;;;20000;N;;;;;
-1012D;AEGEAN NUMBER THIRTY THOUSAND;No;0;L;;;;30000;N;;;;;
-1012E;AEGEAN NUMBER FORTY THOUSAND;No;0;L;;;;40000;N;;;;;
-1012F;AEGEAN NUMBER FIFTY THOUSAND;No;0;L;;;;50000;N;;;;;
-10130;AEGEAN NUMBER SIXTY THOUSAND;No;0;L;;;;60000;N;;;;;
-10131;AEGEAN NUMBER SEVENTY THOUSAND;No;0;L;;;;70000;N;;;;;
-10132;AEGEAN NUMBER EIGHTY THOUSAND;No;0;L;;;;80000;N;;;;;
-10133;AEGEAN NUMBER NINETY THOUSAND;No;0;L;;;;90000;N;;;;;
-10137;AEGEAN WEIGHT BASE UNIT;So;0;L;;;;;N;;;;;
-10138;AEGEAN WEIGHT FIRST SUBUNIT;So;0;L;;;;;N;;;;;
-10139;AEGEAN WEIGHT SECOND SUBUNIT;So;0;L;;;;;N;;;;;
-1013A;AEGEAN WEIGHT THIRD SUBUNIT;So;0;L;;;;;N;;;;;
-1013B;AEGEAN WEIGHT FOURTH SUBUNIT;So;0;L;;;;;N;;;;;
-1013C;AEGEAN DRY MEASURE FIRST SUBUNIT;So;0;L;;;;;N;;;;;
-1013D;AEGEAN LIQUID MEASURE FIRST SUBUNIT;So;0;L;;;;;N;;;;;
-1013E;AEGEAN MEASURE SECOND SUBUNIT;So;0;L;;;;;N;;;;;
-1013F;AEGEAN MEASURE THIRD SUBUNIT;So;0;L;;;;;N;;;;;
-10140;GREEK ACROPHONIC ATTIC ONE QUARTER;Nl;0;ON;;;;1/4;N;;;;;
-10141;GREEK ACROPHONIC ATTIC ONE HALF;Nl;0;ON;;;;1/2;N;;;;;
-10142;GREEK ACROPHONIC ATTIC ONE DRACHMA;Nl;0;ON;;;;1;N;;;;;
-10143;GREEK ACROPHONIC ATTIC FIVE;Nl;0;ON;;;;5;N;;;;;
-10144;GREEK ACROPHONIC ATTIC FIFTY;Nl;0;ON;;;;50;N;;;;;
-10145;GREEK ACROPHONIC ATTIC FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
-10146;GREEK ACROPHONIC ATTIC FIVE THOUSAND;Nl;0;ON;;;;5000;N;;;;;
-10147;GREEK ACROPHONIC ATTIC FIFTY THOUSAND;Nl;0;ON;;;;50000;N;;;;;
-10148;GREEK ACROPHONIC ATTIC FIVE TALENTS;Nl;0;ON;;;;5;N;;;;;
-10149;GREEK ACROPHONIC ATTIC TEN TALENTS;Nl;0;ON;;;;10;N;;;;;
-1014A;GREEK ACROPHONIC ATTIC FIFTY TALENTS;Nl;0;ON;;;;50;N;;;;;
-1014B;GREEK ACROPHONIC ATTIC ONE HUNDRED TALENTS;Nl;0;ON;;;;100;N;;;;;
-1014C;GREEK ACROPHONIC ATTIC FIVE HUNDRED TALENTS;Nl;0;ON;;;;500;N;;;;;
-1014D;GREEK ACROPHONIC ATTIC ONE THOUSAND TALENTS;Nl;0;ON;;;;1000;N;;;;;
-1014E;GREEK ACROPHONIC ATTIC FIVE THOUSAND TALENTS;Nl;0;ON;;;;5000;N;;;;;
-1014F;GREEK ACROPHONIC ATTIC FIVE STATERS;Nl;0;ON;;;;5;N;;;;;
-10150;GREEK ACROPHONIC ATTIC TEN STATERS;Nl;0;ON;;;;10;N;;;;;
-10151;GREEK ACROPHONIC ATTIC FIFTY STATERS;Nl;0;ON;;;;50;N;;;;;
-10152;GREEK ACROPHONIC ATTIC ONE HUNDRED STATERS;Nl;0;ON;;;;100;N;;;;;
-10153;GREEK ACROPHONIC ATTIC FIVE HUNDRED STATERS;Nl;0;ON;;;;500;N;;;;;
-10154;GREEK ACROPHONIC ATTIC ONE THOUSAND STATERS;Nl;0;ON;;;;1000;N;;;;;
-10155;GREEK ACROPHONIC ATTIC TEN THOUSAND STATERS;Nl;0;ON;;;;10000;N;;;;;
-10156;GREEK ACROPHONIC ATTIC FIFTY THOUSAND STATERS;Nl;0;ON;;;;50000;N;;;;;
-10157;GREEK ACROPHONIC ATTIC TEN MNAS;Nl;0;ON;;;;10;N;;;;;
-10158;GREEK ACROPHONIC HERAEUM ONE PLETHRON;Nl;0;ON;;;;1;N;;;;;
-10159;GREEK ACROPHONIC THESPIAN ONE;Nl;0;ON;;;;1;N;;;;;
-1015A;GREEK ACROPHONIC HERMIONIAN ONE;Nl;0;ON;;;;1;N;;;;;
-1015B;GREEK ACROPHONIC EPIDAUREAN TWO;Nl;0;ON;;;;2;N;;;;;
-1015C;GREEK ACROPHONIC THESPIAN TWO;Nl;0;ON;;;;2;N;;;;;
-1015D;GREEK ACROPHONIC CYRENAIC TWO DRACHMAS;Nl;0;ON;;;;2;N;;;;;
-1015E;GREEK ACROPHONIC EPIDAUREAN TWO DRACHMAS;Nl;0;ON;;;;2;N;;;;;
-1015F;GREEK ACROPHONIC TROEZENIAN FIVE;Nl;0;ON;;;;5;N;;;;;
-10160;GREEK ACROPHONIC TROEZENIAN TEN;Nl;0;ON;;;;10;N;;;;;
-10161;GREEK ACROPHONIC TROEZENIAN TEN ALTERNATE FORM;Nl;0;ON;;;;10;N;;;;;
-10162;GREEK ACROPHONIC HERMIONIAN TEN;Nl;0;ON;;;;10;N;;;;;
-10163;GREEK ACROPHONIC MESSENIAN TEN;Nl;0;ON;;;;10;N;;;;;
-10164;GREEK ACROPHONIC THESPIAN TEN;Nl;0;ON;;;;10;N;;;;;
-10165;GREEK ACROPHONIC THESPIAN THIRTY;Nl;0;ON;;;;30;N;;;;;
-10166;GREEK ACROPHONIC TROEZENIAN FIFTY;Nl;0;ON;;;;50;N;;;;;
-10167;GREEK ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM;Nl;0;ON;;;;50;N;;;;;
-10168;GREEK ACROPHONIC HERMIONIAN FIFTY;Nl;0;ON;;;;50;N;;;;;
-10169;GREEK ACROPHONIC THESPIAN FIFTY;Nl;0;ON;;;;50;N;;;;;
-1016A;GREEK ACROPHONIC THESPIAN ONE HUNDRED;Nl;0;ON;;;;100;N;;;;;
-1016B;GREEK ACROPHONIC THESPIAN THREE HUNDRED;Nl;0;ON;;;;300;N;;;;;
-1016C;GREEK ACROPHONIC EPIDAUREAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
-1016D;GREEK ACROPHONIC TROEZENIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
-1016E;GREEK ACROPHONIC THESPIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
-1016F;GREEK ACROPHONIC CARYSTIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
-10170;GREEK ACROPHONIC NAXIAN FIVE HUNDRED;Nl;0;ON;;;;500;N;;;;;
-10171;GREEK ACROPHONIC THESPIAN ONE THOUSAND;Nl;0;ON;;;;1000;N;;;;;
-10172;GREEK ACROPHONIC THESPIAN FIVE THOUSAND;Nl;0;ON;;;;5000;N;;;;;
-10173;GREEK ACROPHONIC DELPHIC FIVE MNAS;Nl;0;ON;;;;5;N;;;;;
-10174;GREEK ACROPHONIC STRATIAN FIFTY MNAS;Nl;0;ON;;;;50;N;;;;;
-10175;GREEK ONE HALF SIGN;No;0;ON;;;;1/2;N;;;;;
-10176;GREEK ONE HALF SIGN ALTERNATE FORM;No;0;ON;;;;1/2;N;;;;;
-10177;GREEK TWO THIRDS SIGN;No;0;ON;;;;2/3;N;;;;;
-10178;GREEK THREE QUARTERS SIGN;No;0;ON;;;;3/4;N;;;;;
-10179;GREEK YEAR SIGN;So;0;ON;;;;;N;;;;;
-1017A;GREEK TALENT SIGN;So;0;ON;;;;;N;;;;;
-1017B;GREEK DRACHMA SIGN;So;0;ON;;;;;N;;;;;
-1017C;GREEK OBOL SIGN;So;0;ON;;;;;N;;;;;
-1017D;GREEK TWO OBOLS SIGN;So;0;ON;;;;;N;;;;;
-1017E;GREEK THREE OBOLS SIGN;So;0;ON;;;;;N;;;;;
-1017F;GREEK FOUR OBOLS SIGN;So;0;ON;;;;;N;;;;;
-10180;GREEK FIVE OBOLS SIGN;So;0;ON;;;;;N;;;;;
-10181;GREEK METRETES SIGN;So;0;ON;;;;;N;;;;;
-10182;GREEK KYATHOS BASE SIGN;So;0;ON;;;;;N;;;;;
-10183;GREEK LITRA SIGN;So;0;ON;;;;;N;;;;;
-10184;GREEK OUNKIA SIGN;So;0;ON;;;;;N;;;;;
-10185;GREEK XESTES SIGN;So;0;ON;;;;;N;;;;;
-10186;GREEK ARTABE SIGN;So;0;ON;;;;;N;;;;;
-10187;GREEK AROURA SIGN;So;0;ON;;;;;N;;;;;
-10188;GREEK GRAMMA SIGN;So;0;ON;;;;;N;;;;;
-10189;GREEK TRYBLION BASE SIGN;So;0;ON;;;;;N;;;;;
-1018A;GREEK ZERO SIGN;No;0;ON;;;;0;N;;;;;
-10190;ROMAN SEXTANS SIGN;So;0;ON;;;;;N;;;;;
-10191;ROMAN UNCIA SIGN;So;0;ON;;;;;N;;;;;
-10192;ROMAN SEMUNCIA SIGN;So;0;ON;;;;;N;;;;;
-10193;ROMAN SEXTULA SIGN;So;0;ON;;;;;N;;;;;
-10194;ROMAN DIMIDIA SEXTULA SIGN;So;0;ON;;;;;N;;;;;
-10195;ROMAN SILIQUA SIGN;So;0;ON;;;;;N;;;;;
-10196;ROMAN DENARIUS SIGN;So;0;ON;;;;;N;;;;;
-10197;ROMAN QUINARIUS SIGN;So;0;ON;;;;;N;;;;;
-10198;ROMAN SESTERTIUS SIGN;So;0;ON;;;;;N;;;;;
-10199;ROMAN DUPONDIUS SIGN;So;0;ON;;;;;N;;;;;
-1019A;ROMAN AS SIGN;So;0;ON;;;;;N;;;;;
-1019B;ROMAN CENTURIAL SIGN;So;0;ON;;;;;N;;;;;
-101D0;PHAISTOS DISC SIGN PEDESTRIAN;So;0;L;;;;;N;;;;;
-101D1;PHAISTOS DISC SIGN PLUMED HEAD;So;0;L;;;;;N;;;;;
-101D2;PHAISTOS DISC SIGN TATTOOED HEAD;So;0;L;;;;;N;;;;;
-101D3;PHAISTOS DISC SIGN CAPTIVE;So;0;L;;;;;N;;;;;
-101D4;PHAISTOS DISC SIGN CHILD;So;0;L;;;;;N;;;;;
-101D5;PHAISTOS DISC SIGN WOMAN;So;0;L;;;;;N;;;;;
-101D6;PHAISTOS DISC SIGN HELMET;So;0;L;;;;;N;;;;;
-101D7;PHAISTOS DISC SIGN GAUNTLET;So;0;L;;;;;N;;;;;
-101D8;PHAISTOS DISC SIGN TIARA;So;0;L;;;;;N;;;;;
-101D9;PHAISTOS DISC SIGN ARROW;So;0;L;;;;;N;;;;;
-101DA;PHAISTOS DISC SIGN BOW;So;0;L;;;;;N;;;;;
-101DB;PHAISTOS DISC SIGN SHIELD;So;0;L;;;;;N;;;;;
-101DC;PHAISTOS DISC SIGN CLUB;So;0;L;;;;;N;;;;;
-101DD;PHAISTOS DISC SIGN MANACLES;So;0;L;;;;;N;;;;;
-101DE;PHAISTOS DISC SIGN MATTOCK;So;0;L;;;;;N;;;;;
-101DF;PHAISTOS DISC SIGN SAW;So;0;L;;;;;N;;;;;
-101E0;PHAISTOS DISC SIGN LID;So;0;L;;;;;N;;;;;
-101E1;PHAISTOS DISC SIGN BOOMERANG;So;0;L;;;;;N;;;;;
-101E2;PHAISTOS DISC SIGN CARPENTRY PLANE;So;0;L;;;;;N;;;;;
-101E3;PHAISTOS DISC SIGN DOLIUM;So;0;L;;;;;N;;;;;
-101E4;PHAISTOS DISC SIGN COMB;So;0;L;;;;;N;;;;;
-101E5;PHAISTOS DISC SIGN SLING;So;0;L;;;;;N;;;;;
-101E6;PHAISTOS DISC SIGN COLUMN;So;0;L;;;;;N;;;;;
-101E7;PHAISTOS DISC SIGN BEEHIVE;So;0;L;;;;;N;;;;;
-101E8;PHAISTOS DISC SIGN SHIP;So;0;L;;;;;N;;;;;
-101E9;PHAISTOS DISC SIGN HORN;So;0;L;;;;;N;;;;;
-101EA;PHAISTOS DISC SIGN HIDE;So;0;L;;;;;N;;;;;
-101EB;PHAISTOS DISC SIGN BULLS LEG;So;0;L;;;;;N;;;;;
-101EC;PHAISTOS DISC SIGN CAT;So;0;L;;;;;N;;;;;
-101ED;PHAISTOS DISC SIGN RAM;So;0;L;;;;;N;;;;;
-101EE;PHAISTOS DISC SIGN EAGLE;So;0;L;;;;;N;;;;;
-101EF;PHAISTOS DISC SIGN DOVE;So;0;L;;;;;N;;;;;
-101F0;PHAISTOS DISC SIGN TUNNY;So;0;L;;;;;N;;;;;
-101F1;PHAISTOS DISC SIGN BEE;So;0;L;;;;;N;;;;;
-101F2;PHAISTOS DISC SIGN PLANE TREE;So;0;L;;;;;N;;;;;
-101F3;PHAISTOS DISC SIGN VINE;So;0;L;;;;;N;;;;;
-101F4;PHAISTOS DISC SIGN PAPYRUS;So;0;L;;;;;N;;;;;
-101F5;PHAISTOS DISC SIGN ROSETTE;So;0;L;;;;;N;;;;;
-101F6;PHAISTOS DISC SIGN LILY;So;0;L;;;;;N;;;;;
-101F7;PHAISTOS DISC SIGN OX BACK;So;0;L;;;;;N;;;;;
-101F8;PHAISTOS DISC SIGN FLUTE;So;0;L;;;;;N;;;;;
-101F9;PHAISTOS DISC SIGN GRATER;So;0;L;;;;;N;;;;;
-101FA;PHAISTOS DISC SIGN STRAINER;So;0;L;;;;;N;;;;;
-101FB;PHAISTOS DISC SIGN SMALL AXE;So;0;L;;;;;N;;;;;
-101FC;PHAISTOS DISC SIGN WAVY BAND;So;0;L;;;;;N;;;;;
-101FD;PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE;Mn;220;NSM;;;;;N;;;;;
-10280;LYCIAN LETTER A;Lo;0;L;;;;;N;;;;;
-10281;LYCIAN LETTER E;Lo;0;L;;;;;N;;;;;
-10282;LYCIAN LETTER B;Lo;0;L;;;;;N;;;;;
-10283;LYCIAN LETTER BH;Lo;0;L;;;;;N;;;;;
-10284;LYCIAN LETTER G;Lo;0;L;;;;;N;;;;;
-10285;LYCIAN LETTER D;Lo;0;L;;;;;N;;;;;
-10286;LYCIAN LETTER I;Lo;0;L;;;;;N;;;;;
-10287;LYCIAN LETTER W;Lo;0;L;;;;;N;;;;;
-10288;LYCIAN LETTER Z;Lo;0;L;;;;;N;;;;;
-10289;LYCIAN LETTER TH;Lo;0;L;;;;;N;;;;;
-1028A;LYCIAN LETTER J;Lo;0;L;;;;;N;;;;;
-1028B;LYCIAN LETTER K;Lo;0;L;;;;;N;;;;;
-1028C;LYCIAN LETTER Q;Lo;0;L;;;;;N;;;;;
-1028D;LYCIAN LETTER L;Lo;0;L;;;;;N;;;;;
-1028E;LYCIAN LETTER M;Lo;0;L;;;;;N;;;;;
-1028F;LYCIAN LETTER N;Lo;0;L;;;;;N;;;;;
-10290;LYCIAN LETTER MM;Lo;0;L;;;;;N;;;;;
-10291;LYCIAN LETTER NN;Lo;0;L;;;;;N;;;;;
-10292;LYCIAN LETTER U;Lo;0;L;;;;;N;;;;;
-10293;LYCIAN LETTER P;Lo;0;L;;;;;N;;;;;
-10294;LYCIAN LETTER KK;Lo;0;L;;;;;N;;;;;
-10295;LYCIAN LETTER R;Lo;0;L;;;;;N;;;;;
-10296;LYCIAN LETTER S;Lo;0;L;;;;;N;;;;;
-10297;LYCIAN LETTER T;Lo;0;L;;;;;N;;;;;
-10298;LYCIAN LETTER TT;Lo;0;L;;;;;N;;;;;
-10299;LYCIAN LETTER AN;Lo;0;L;;;;;N;;;;;
-1029A;LYCIAN LETTER EN;Lo;0;L;;;;;N;;;;;
-1029B;LYCIAN LETTER H;Lo;0;L;;;;;N;;;;;
-1029C;LYCIAN LETTER X;Lo;0;L;;;;;N;;;;;
-102A0;CARIAN LETTER A;Lo;0;L;;;;;N;;;;;
-102A1;CARIAN LETTER P2;Lo;0;L;;;;;N;;;;;
-102A2;CARIAN LETTER D;Lo;0;L;;;;;N;;;;;
-102A3;CARIAN LETTER L;Lo;0;L;;;;;N;;;;;
-102A4;CARIAN LETTER UUU;Lo;0;L;;;;;N;;;;;
-102A5;CARIAN LETTER R;Lo;0;L;;;;;N;;;;;
-102A6;CARIAN LETTER LD;Lo;0;L;;;;;N;;;;;
-102A7;CARIAN LETTER A2;Lo;0;L;;;;;N;;;;;
-102A8;CARIAN LETTER Q;Lo;0;L;;;;;N;;;;;
-102A9;CARIAN LETTER B;Lo;0;L;;;;;N;;;;;
-102AA;CARIAN LETTER M;Lo;0;L;;;;;N;;;;;
-102AB;CARIAN LETTER O;Lo;0;L;;;;;N;;;;;
-102AC;CARIAN LETTER D2;Lo;0;L;;;;;N;;;;;
-102AD;CARIAN LETTER T;Lo;0;L;;;;;N;;;;;
-102AE;CARIAN LETTER SH;Lo;0;L;;;;;N;;;;;
-102AF;CARIAN LETTER SH2;Lo;0;L;;;;;N;;;;;
-102B0;CARIAN LETTER S;Lo;0;L;;;;;N;;;;;
-102B1;CARIAN LETTER C-18;Lo;0;L;;;;;N;;;;;
-102B2;CARIAN LETTER U;Lo;0;L;;;;;N;;;;;
-102B3;CARIAN LETTER NN;Lo;0;L;;;;;N;;;;;
-102B4;CARIAN LETTER X;Lo;0;L;;;;;N;;;;;
-102B5;CARIAN LETTER N;Lo;0;L;;;;;N;;;;;
-102B6;CARIAN LETTER TT2;Lo;0;L;;;;;N;;;;;
-102B7;CARIAN LETTER P;Lo;0;L;;;;;N;;;;;
-102B8;CARIAN LETTER SS;Lo;0;L;;;;;N;;;;;
-102B9;CARIAN LETTER I;Lo;0;L;;;;;N;;;;;
-102BA;CARIAN LETTER E;Lo;0;L;;;;;N;;;;;
-102BB;CARIAN LETTER UUUU;Lo;0;L;;;;;N;;;;;
-102BC;CARIAN LETTER K;Lo;0;L;;;;;N;;;;;
-102BD;CARIAN LETTER K2;Lo;0;L;;;;;N;;;;;
-102BE;CARIAN LETTER ND;Lo;0;L;;;;;N;;;;;
-102BF;CARIAN LETTER UU;Lo;0;L;;;;;N;;;;;
-102C0;CARIAN LETTER G;Lo;0;L;;;;;N;;;;;
-102C1;CARIAN LETTER G2;Lo;0;L;;;;;N;;;;;
-102C2;CARIAN LETTER ST;Lo;0;L;;;;;N;;;;;
-102C3;CARIAN LETTER ST2;Lo;0;L;;;;;N;;;;;
-102C4;CARIAN LETTER NG;Lo;0;L;;;;;N;;;;;
-102C5;CARIAN LETTER II;Lo;0;L;;;;;N;;;;;
-102C6;CARIAN LETTER C-39;Lo;0;L;;;;;N;;;;;
-102C7;CARIAN LETTER TT;Lo;0;L;;;;;N;;;;;
-102C8;CARIAN LETTER UUU2;Lo;0;L;;;;;N;;;;;
-102C9;CARIAN LETTER RR;Lo;0;L;;;;;N;;;;;
-102CA;CARIAN LETTER MB;Lo;0;L;;;;;N;;;;;
-102CB;CARIAN LETTER MB2;Lo;0;L;;;;;N;;;;;
-102CC;CARIAN LETTER MB3;Lo;0;L;;;;;N;;;;;
-102CD;CARIAN LETTER MB4;Lo;0;L;;;;;N;;;;;
-102CE;CARIAN LETTER LD2;Lo;0;L;;;;;N;;;;;
-102CF;CARIAN LETTER E2;Lo;0;L;;;;;N;;;;;
-102D0;CARIAN LETTER UUU3;Lo;0;L;;;;;N;;;;;
-10300;OLD ITALIC LETTER A;Lo;0;L;;;;;N;;;;;
-10301;OLD ITALIC LETTER BE;Lo;0;L;;;;;N;;;;;
-10302;OLD ITALIC LETTER KE;Lo;0;L;;;;;N;;;;;
-10303;OLD ITALIC LETTER DE;Lo;0;L;;;;;N;;;;;
-10304;OLD ITALIC LETTER E;Lo;0;L;;;;;N;;;;;
-10305;OLD ITALIC LETTER VE;Lo;0;L;;;;;N;;;;;
-10306;OLD ITALIC LETTER ZE;Lo;0;L;;;;;N;;;;;
-10307;OLD ITALIC LETTER HE;Lo;0;L;;;;;N;;;;;
-10308;OLD ITALIC LETTER THE;Lo;0;L;;;;;N;;;;;
-10309;OLD ITALIC LETTER I;Lo;0;L;;;;;N;;;;;
-1030A;OLD ITALIC LETTER KA;Lo;0;L;;;;;N;;;;;
-1030B;OLD ITALIC LETTER EL;Lo;0;L;;;;;N;;;;;
-1030C;OLD ITALIC LETTER EM;Lo;0;L;;;;;N;;;;;
-1030D;OLD ITALIC LETTER EN;Lo;0;L;;;;;N;;;;;
-1030E;OLD ITALIC LETTER ESH;Lo;0;L;;;;;N;;;;;
-1030F;OLD ITALIC LETTER O;Lo;0;L;;;;;N;;;;;
-10310;OLD ITALIC LETTER PE;Lo;0;L;;;;;N;;;;;
-10311;OLD ITALIC LETTER SHE;Lo;0;L;;;;;N;;;;;
-10312;OLD ITALIC LETTER KU;Lo;0;L;;;;;N;;;;;
-10313;OLD ITALIC LETTER ER;Lo;0;L;;;;;N;;;;;
-10314;OLD ITALIC LETTER ES;Lo;0;L;;;;;N;;;;;
-10315;OLD ITALIC LETTER TE;Lo;0;L;;;;;N;;;;;
-10316;OLD ITALIC LETTER U;Lo;0;L;;;;;N;;;;;
-10317;OLD ITALIC LETTER EKS;Lo;0;L;;;;;N;;;;;
-10318;OLD ITALIC LETTER PHE;Lo;0;L;;;;;N;;;;;
-10319;OLD ITALIC LETTER KHE;Lo;0;L;;;;;N;;;;;
-1031A;OLD ITALIC LETTER EF;Lo;0;L;;;;;N;;;;;
-1031B;OLD ITALIC LETTER ERS;Lo;0;L;;;;;N;;;;;
-1031C;OLD ITALIC LETTER CHE;Lo;0;L;;;;;N;;;;;
-1031D;OLD ITALIC LETTER II;Lo;0;L;;;;;N;;;;;
-1031E;OLD ITALIC LETTER UU;Lo;0;L;;;;;N;;;;;
-10320;OLD ITALIC NUMERAL ONE;No;0;L;;;;1;N;;;;;
-10321;OLD ITALIC NUMERAL FIVE;No;0;L;;;;5;N;;;;;
-10322;OLD ITALIC NUMERAL TEN;No;0;L;;;;10;N;;;;;
-10323;OLD ITALIC NUMERAL FIFTY;No;0;L;;;;50;N;;;;;
-10330;GOTHIC LETTER AHSA;Lo;0;L;;;;;N;;;;;
-10331;GOTHIC LETTER BAIRKAN;Lo;0;L;;;;;N;;;;;
-10332;GOTHIC LETTER GIBA;Lo;0;L;;;;;N;;;;;
-10333;GOTHIC LETTER DAGS;Lo;0;L;;;;;N;;;;;
-10334;GOTHIC LETTER AIHVUS;Lo;0;L;;;;;N;;;;;
-10335;GOTHIC LETTER QAIRTHRA;Lo;0;L;;;;;N;;;;;
-10336;GOTHIC LETTER IUJA;Lo;0;L;;;;;N;;;;;
-10337;GOTHIC LETTER HAGL;Lo;0;L;;;;;N;;;;;
-10338;GOTHIC LETTER THIUTH;Lo;0;L;;;;;N;;;;;
-10339;GOTHIC LETTER EIS;Lo;0;L;;;;;N;;;;;
-1033A;GOTHIC LETTER KUSMA;Lo;0;L;;;;;N;;;;;
-1033B;GOTHIC LETTER LAGUS;Lo;0;L;;;;;N;;;;;
-1033C;GOTHIC LETTER MANNA;Lo;0;L;;;;;N;;;;;
-1033D;GOTHIC LETTER NAUTHS;Lo;0;L;;;;;N;;;;;
-1033E;GOTHIC LETTER JER;Lo;0;L;;;;;N;;;;;
-1033F;GOTHIC LETTER URUS;Lo;0;L;;;;;N;;;;;
-10340;GOTHIC LETTER PAIRTHRA;Lo;0;L;;;;;N;;;;;
-10341;GOTHIC LETTER NINETY;Nl;0;L;;;;90;N;;;;;
-10342;GOTHIC LETTER RAIDA;Lo;0;L;;;;;N;;;;;
-10343;GOTHIC LETTER SAUIL;Lo;0;L;;;;;N;;;;;
-10344;GOTHIC LETTER TEIWS;Lo;0;L;;;;;N;;;;;
-10345;GOTHIC LETTER WINJA;Lo;0;L;;;;;N;;;;;
-10346;GOTHIC LETTER FAIHU;Lo;0;L;;;;;N;;;;;
-10347;GOTHIC LETTER IGGWS;Lo;0;L;;;;;N;;;;;
-10348;GOTHIC LETTER HWAIR;Lo;0;L;;;;;N;;;;;
-10349;GOTHIC LETTER OTHAL;Lo;0;L;;;;;N;;;;;
-1034A;GOTHIC LETTER NINE HUNDRED;Nl;0;L;;;;900;N;;;;;
-10380;UGARITIC LETTER ALPA;Lo;0;L;;;;;N;;;;;
-10381;UGARITIC LETTER BETA;Lo;0;L;;;;;N;;;;;
-10382;UGARITIC LETTER GAMLA;Lo;0;L;;;;;N;;;;;
-10383;UGARITIC LETTER KHA;Lo;0;L;;;;;N;;;;;
-10384;UGARITIC LETTER DELTA;Lo;0;L;;;;;N;;;;;
-10385;UGARITIC LETTER HO;Lo;0;L;;;;;N;;;;;
-10386;UGARITIC LETTER WO;Lo;0;L;;;;;N;;;;;
-10387;UGARITIC LETTER ZETA;Lo;0;L;;;;;N;;;;;
-10388;UGARITIC LETTER HOTA;Lo;0;L;;;;;N;;;;;
-10389;UGARITIC LETTER TET;Lo;0;L;;;;;N;;;;;
-1038A;UGARITIC LETTER YOD;Lo;0;L;;;;;N;;;;;
-1038B;UGARITIC LETTER KAF;Lo;0;L;;;;;N;;;;;
-1038C;UGARITIC LETTER SHIN;Lo;0;L;;;;;N;;;;;
-1038D;UGARITIC LETTER LAMDA;Lo;0;L;;;;;N;;;;;
-1038E;UGARITIC LETTER MEM;Lo;0;L;;;;;N;;;;;
-1038F;UGARITIC LETTER DHAL;Lo;0;L;;;;;N;;;;;
-10390;UGARITIC LETTER NUN;Lo;0;L;;;;;N;;;;;
-10391;UGARITIC LETTER ZU;Lo;0;L;;;;;N;;;;;
-10392;UGARITIC LETTER SAMKA;Lo;0;L;;;;;N;;;;;
-10393;UGARITIC LETTER AIN;Lo;0;L;;;;;N;;;;;
-10394;UGARITIC LETTER PU;Lo;0;L;;;;;N;;;;;
-10395;UGARITIC LETTER SADE;Lo;0;L;;;;;N;;;;;
-10396;UGARITIC LETTER QOPA;Lo;0;L;;;;;N;;;;;
-10397;UGARITIC LETTER RASHA;Lo;0;L;;;;;N;;;;;
-10398;UGARITIC LETTER THANNA;Lo;0;L;;;;;N;;;;;
-10399;UGARITIC LETTER GHAIN;Lo;0;L;;;;;N;;;;;
-1039A;UGARITIC LETTER TO;Lo;0;L;;;;;N;;;;;
-1039B;UGARITIC LETTER I;Lo;0;L;;;;;N;;;;;
-1039C;UGARITIC LETTER U;Lo;0;L;;;;;N;;;;;
-1039D;UGARITIC LETTER SSU;Lo;0;L;;;;;N;;;;;
-1039F;UGARITIC WORD DIVIDER;Po;0;L;;;;;N;;;;;
-103A0;OLD PERSIAN SIGN A;Lo;0;L;;;;;N;;;;;
-103A1;OLD PERSIAN SIGN I;Lo;0;L;;;;;N;;;;;
-103A2;OLD PERSIAN SIGN U;Lo;0;L;;;;;N;;;;;
-103A3;OLD PERSIAN SIGN KA;Lo;0;L;;;;;N;;;;;
-103A4;OLD PERSIAN SIGN KU;Lo;0;L;;;;;N;;;;;
-103A5;OLD PERSIAN SIGN GA;Lo;0;L;;;;;N;;;;;
-103A6;OLD PERSIAN SIGN GU;Lo;0;L;;;;;N;;;;;
-103A7;OLD PERSIAN SIGN XA;Lo;0;L;;;;;N;;;;;
-103A8;OLD PERSIAN SIGN CA;Lo;0;L;;;;;N;;;;;
-103A9;OLD PERSIAN SIGN JA;Lo;0;L;;;;;N;;;;;
-103AA;OLD PERSIAN SIGN JI;Lo;0;L;;;;;N;;;;;
-103AB;OLD PERSIAN SIGN TA;Lo;0;L;;;;;N;;;;;
-103AC;OLD PERSIAN SIGN TU;Lo;0;L;;;;;N;;;;;
-103AD;OLD PERSIAN SIGN DA;Lo;0;L;;;;;N;;;;;
-103AE;OLD PERSIAN SIGN DI;Lo;0;L;;;;;N;;;;;
-103AF;OLD PERSIAN SIGN DU;Lo;0;L;;;;;N;;;;;
-103B0;OLD PERSIAN SIGN THA;Lo;0;L;;;;;N;;;;;
-103B1;OLD PERSIAN SIGN PA;Lo;0;L;;;;;N;;;;;
-103B2;OLD PERSIAN SIGN BA;Lo;0;L;;;;;N;;;;;
-103B3;OLD PERSIAN SIGN FA;Lo;0;L;;;;;N;;;;;
-103B4;OLD PERSIAN SIGN NA;Lo;0;L;;;;;N;;;;;
-103B5;OLD PERSIAN SIGN NU;Lo;0;L;;;;;N;;;;;
-103B6;OLD PERSIAN SIGN MA;Lo;0;L;;;;;N;;;;;
-103B7;OLD PERSIAN SIGN MI;Lo;0;L;;;;;N;;;;;
-103B8;OLD PERSIAN SIGN MU;Lo;0;L;;;;;N;;;;;
-103B9;OLD PERSIAN SIGN YA;Lo;0;L;;;;;N;;;;;
-103BA;OLD PERSIAN SIGN VA;Lo;0;L;;;;;N;;;;;
-103BB;OLD PERSIAN SIGN VI;Lo;0;L;;;;;N;;;;;
-103BC;OLD PERSIAN SIGN RA;Lo;0;L;;;;;N;;;;;
-103BD;OLD PERSIAN SIGN RU;Lo;0;L;;;;;N;;;;;
-103BE;OLD PERSIAN SIGN LA;Lo;0;L;;;;;N;;;;;
-103BF;OLD PERSIAN SIGN SA;Lo;0;L;;;;;N;;;;;
-103C0;OLD PERSIAN SIGN ZA;Lo;0;L;;;;;N;;;;;
-103C1;OLD PERSIAN SIGN SHA;Lo;0;L;;;;;N;;;;;
-103C2;OLD PERSIAN SIGN SSA;Lo;0;L;;;;;N;;;;;
-103C3;OLD PERSIAN SIGN HA;Lo;0;L;;;;;N;;;;;
-103C8;OLD PERSIAN SIGN AURAMAZDAA;Lo;0;L;;;;;N;;;;;
-103C9;OLD PERSIAN SIGN AURAMAZDAA-2;Lo;0;L;;;;;N;;;;;
-103CA;OLD PERSIAN SIGN AURAMAZDAAHA;Lo;0;L;;;;;N;;;;;
-103CB;OLD PERSIAN SIGN XSHAAYATHIYA;Lo;0;L;;;;;N;;;;;
-103CC;OLD PERSIAN SIGN DAHYAAUSH;Lo;0;L;;;;;N;;;;;
-103CD;OLD PERSIAN SIGN DAHYAAUSH-2;Lo;0;L;;;;;N;;;;;
-103CE;OLD PERSIAN SIGN BAGA;Lo;0;L;;;;;N;;;;;
-103CF;OLD PERSIAN SIGN BUUMISH;Lo;0;L;;;;;N;;;;;
-103D0;OLD PERSIAN WORD DIVIDER;Po;0;L;;;;;N;;;;;
-103D1;OLD PERSIAN NUMBER ONE;Nl;0;L;;;;1;N;;;;;
-103D2;OLD PERSIAN NUMBER TWO;Nl;0;L;;;;2;N;;;;;
-103D3;OLD PERSIAN NUMBER TEN;Nl;0;L;;;;10;N;;;;;
-103D4;OLD PERSIAN NUMBER TWENTY;Nl;0;L;;;;20;N;;;;;
-103D5;OLD PERSIAN NUMBER HUNDRED;Nl;0;L;;;;100;N;;;;;
-10400;DESERET CAPITAL LETTER LONG I;Lu;0;L;;;;;N;;;;10428;
-10401;DESERET CAPITAL LETTER LONG E;Lu;0;L;;;;;N;;;;10429;
-10402;DESERET CAPITAL LETTER LONG A;Lu;0;L;;;;;N;;;;1042A;
-10403;DESERET CAPITAL LETTER LONG AH;Lu;0;L;;;;;N;;;;1042B;
-10404;DESERET CAPITAL LETTER LONG O;Lu;0;L;;;;;N;;;;1042C;
-10405;DESERET CAPITAL LETTER LONG OO;Lu;0;L;;;;;N;;;;1042D;
-10406;DESERET CAPITAL LETTER SHORT I;Lu;0;L;;;;;N;;;;1042E;
-10407;DESERET CAPITAL LETTER SHORT E;Lu;0;L;;;;;N;;;;1042F;
-10408;DESERET CAPITAL LETTER SHORT A;Lu;0;L;;;;;N;;;;10430;
-10409;DESERET CAPITAL LETTER SHORT AH;Lu;0;L;;;;;N;;;;10431;
-1040A;DESERET CAPITAL LETTER SHORT O;Lu;0;L;;;;;N;;;;10432;
-1040B;DESERET CAPITAL LETTER SHORT OO;Lu;0;L;;;;;N;;;;10433;
-1040C;DESERET CAPITAL LETTER AY;Lu;0;L;;;;;N;;;;10434;
-1040D;DESERET CAPITAL LETTER OW;Lu;0;L;;;;;N;;;;10435;
-1040E;DESERET CAPITAL LETTER WU;Lu;0;L;;;;;N;;;;10436;
-1040F;DESERET CAPITAL LETTER YEE;Lu;0;L;;;;;N;;;;10437;
-10410;DESERET CAPITAL LETTER H;Lu;0;L;;;;;N;;;;10438;
-10411;DESERET CAPITAL LETTER PEE;Lu;0;L;;;;;N;;;;10439;
-10412;DESERET CAPITAL LETTER BEE;Lu;0;L;;;;;N;;;;1043A;
-10413;DESERET CAPITAL LETTER TEE;Lu;0;L;;;;;N;;;;1043B;
-10414;DESERET CAPITAL LETTER DEE;Lu;0;L;;;;;N;;;;1043C;
-10415;DESERET CAPITAL LETTER CHEE;Lu;0;L;;;;;N;;;;1043D;
-10416;DESERET CAPITAL LETTER JEE;Lu;0;L;;;;;N;;;;1043E;
-10417;DESERET CAPITAL LETTER KAY;Lu;0;L;;;;;N;;;;1043F;
-10418;DESERET CAPITAL LETTER GAY;Lu;0;L;;;;;N;;;;10440;
-10419;DESERET CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;10441;
-1041A;DESERET CAPITAL LETTER VEE;Lu;0;L;;;;;N;;;;10442;
-1041B;DESERET CAPITAL LETTER ETH;Lu;0;L;;;;;N;;;;10443;
-1041C;DESERET CAPITAL LETTER THEE;Lu;0;L;;;;;N;;;;10444;
-1041D;DESERET CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;10445;
-1041E;DESERET CAPITAL LETTER ZEE;Lu;0;L;;;;;N;;;;10446;
-1041F;DESERET CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;10447;
-10420;DESERET CAPITAL LETTER ZHEE;Lu;0;L;;;;;N;;;;10448;
-10421;DESERET CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;10449;
-10422;DESERET CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;1044A;
-10423;DESERET CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;1044B;
-10424;DESERET CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;1044C;
-10425;DESERET CAPITAL LETTER ENG;Lu;0;L;;;;;N;;;;1044D;
-10426;DESERET CAPITAL LETTER OI;Lu;0;L;;;;;N;;;;1044E;
-10427;DESERET CAPITAL LETTER EW;Lu;0;L;;;;;N;;;;1044F;
-10428;DESERET SMALL LETTER LONG I;Ll;0;L;;;;;N;;;10400;;10400
-10429;DESERET SMALL LETTER LONG E;Ll;0;L;;;;;N;;;10401;;10401
-1042A;DESERET SMALL LETTER LONG A;Ll;0;L;;;;;N;;;10402;;10402
-1042B;DESERET SMALL LETTER LONG AH;Ll;0;L;;;;;N;;;10403;;10403
-1042C;DESERET SMALL LETTER LONG O;Ll;0;L;;;;;N;;;10404;;10404
-1042D;DESERET SMALL LETTER LONG OO;Ll;0;L;;;;;N;;;10405;;10405
-1042E;DESERET SMALL LETTER SHORT I;Ll;0;L;;;;;N;;;10406;;10406
-1042F;DESERET SMALL LETTER SHORT E;Ll;0;L;;;;;N;;;10407;;10407
-10430;DESERET SMALL LETTER SHORT A;Ll;0;L;;;;;N;;;10408;;10408
-10431;DESERET SMALL LETTER SHORT AH;Ll;0;L;;;;;N;;;10409;;10409
-10432;DESERET SMALL LETTER SHORT O;Ll;0;L;;;;;N;;;1040A;;1040A
-10433;DESERET SMALL LETTER SHORT OO;Ll;0;L;;;;;N;;;1040B;;1040B
-10434;DESERET SMALL LETTER AY;Ll;0;L;;;;;N;;;1040C;;1040C
-10435;DESERET SMALL LETTER OW;Ll;0;L;;;;;N;;;1040D;;1040D
-10436;DESERET SMALL LETTER WU;Ll;0;L;;;;;N;;;1040E;;1040E
-10437;DESERET SMALL LETTER YEE;Ll;0;L;;;;;N;;;1040F;;1040F
-10438;DESERET SMALL LETTER H;Ll;0;L;;;;;N;;;10410;;10410
-10439;DESERET SMALL LETTER PEE;Ll;0;L;;;;;N;;;10411;;10411
-1043A;DESERET SMALL LETTER BEE;Ll;0;L;;;;;N;;;10412;;10412
-1043B;DESERET SMALL LETTER TEE;Ll;0;L;;;;;N;;;10413;;10413
-1043C;DESERET SMALL LETTER DEE;Ll;0;L;;;;;N;;;10414;;10414
-1043D;DESERET SMALL LETTER CHEE;Ll;0;L;;;;;N;;;10415;;10415
-1043E;DESERET SMALL LETTER JEE;Ll;0;L;;;;;N;;;10416;;10416
-1043F;DESERET SMALL LETTER KAY;Ll;0;L;;;;;N;;;10417;;10417
-10440;DESERET SMALL LETTER GAY;Ll;0;L;;;;;N;;;10418;;10418
-10441;DESERET SMALL LETTER EF;Ll;0;L;;;;;N;;;10419;;10419
-10442;DESERET SMALL LETTER VEE;Ll;0;L;;;;;N;;;1041A;;1041A
-10443;DESERET SMALL LETTER ETH;Ll;0;L;;;;;N;;;1041B;;1041B
-10444;DESERET SMALL LETTER THEE;Ll;0;L;;;;;N;;;1041C;;1041C
-10445;DESERET SMALL LETTER ES;Ll;0;L;;;;;N;;;1041D;;1041D
-10446;DESERET SMALL LETTER ZEE;Ll;0;L;;;;;N;;;1041E;;1041E
-10447;DESERET SMALL LETTER ESH;Ll;0;L;;;;;N;;;1041F;;1041F
-10448;DESERET SMALL LETTER ZHEE;Ll;0;L;;;;;N;;;10420;;10420
-10449;DESERET SMALL LETTER ER;Ll;0;L;;;;;N;;;10421;;10421
-1044A;DESERET SMALL LETTER EL;Ll;0;L;;;;;N;;;10422;;10422
-1044B;DESERET SMALL LETTER EM;Ll;0;L;;;;;N;;;10423;;10423
-1044C;DESERET SMALL LETTER EN;Ll;0;L;;;;;N;;;10424;;10424
-1044D;DESERET SMALL LETTER ENG;Ll;0;L;;;;;N;;;10425;;10425
-1044E;DESERET SMALL LETTER OI;Ll;0;L;;;;;N;;;10426;;10426
-1044F;DESERET SMALL LETTER EW;Ll;0;L;;;;;N;;;10427;;10427
-10450;SHAVIAN LETTER PEEP;Lo;0;L;;;;;N;;;;;
-10451;SHAVIAN LETTER TOT;Lo;0;L;;;;;N;;;;;
-10452;SHAVIAN LETTER KICK;Lo;0;L;;;;;N;;;;;
-10453;SHAVIAN LETTER FEE;Lo;0;L;;;;;N;;;;;
-10454;SHAVIAN LETTER THIGH;Lo;0;L;;;;;N;;;;;
-10455;SHAVIAN LETTER SO;Lo;0;L;;;;;N;;;;;
-10456;SHAVIAN LETTER SURE;Lo;0;L;;;;;N;;;;;
-10457;SHAVIAN LETTER CHURCH;Lo;0;L;;;;;N;;;;;
-10458;SHAVIAN LETTER YEA;Lo;0;L;;;;;N;;;;;
-10459;SHAVIAN LETTER HUNG;Lo;0;L;;;;;N;;;;;
-1045A;SHAVIAN LETTER BIB;Lo;0;L;;;;;N;;;;;
-1045B;SHAVIAN LETTER DEAD;Lo;0;L;;;;;N;;;;;
-1045C;SHAVIAN LETTER GAG;Lo;0;L;;;;;N;;;;;
-1045D;SHAVIAN LETTER VOW;Lo;0;L;;;;;N;;;;;
-1045E;SHAVIAN LETTER THEY;Lo;0;L;;;;;N;;;;;
-1045F;SHAVIAN LETTER ZOO;Lo;0;L;;;;;N;;;;;
-10460;SHAVIAN LETTER MEASURE;Lo;0;L;;;;;N;;;;;
-10461;SHAVIAN LETTER JUDGE;Lo;0;L;;;;;N;;;;;
-10462;SHAVIAN LETTER WOE;Lo;0;L;;;;;N;;;;;
-10463;SHAVIAN LETTER HA-HA;Lo;0;L;;;;;N;;;;;
-10464;SHAVIAN LETTER LOLL;Lo;0;L;;;;;N;;;;;
-10465;SHAVIAN LETTER MIME;Lo;0;L;;;;;N;;;;;
-10466;SHAVIAN LETTER IF;Lo;0;L;;;;;N;;;;;
-10467;SHAVIAN LETTER EGG;Lo;0;L;;;;;N;;;;;
-10468;SHAVIAN LETTER ASH;Lo;0;L;;;;;N;;;;;
-10469;SHAVIAN LETTER ADO;Lo;0;L;;;;;N;;;;;
-1046A;SHAVIAN LETTER ON;Lo;0;L;;;;;N;;;;;
-1046B;SHAVIAN LETTER WOOL;Lo;0;L;;;;;N;;;;;
-1046C;SHAVIAN LETTER OUT;Lo;0;L;;;;;N;;;;;
-1046D;SHAVIAN LETTER AH;Lo;0;L;;;;;N;;;;;
-1046E;SHAVIAN LETTER ROAR;Lo;0;L;;;;;N;;;;;
-1046F;SHAVIAN LETTER NUN;Lo;0;L;;;;;N;;;;;
-10470;SHAVIAN LETTER EAT;Lo;0;L;;;;;N;;;;;
-10471;SHAVIAN LETTER AGE;Lo;0;L;;;;;N;;;;;
-10472;SHAVIAN LETTER ICE;Lo;0;L;;;;;N;;;;;
-10473;SHAVIAN LETTER UP;Lo;0;L;;;;;N;;;;;
-10474;SHAVIAN LETTER OAK;Lo;0;L;;;;;N;;;;;
-10475;SHAVIAN LETTER OOZE;Lo;0;L;;;;;N;;;;;
-10476;SHAVIAN LETTER OIL;Lo;0;L;;;;;N;;;;;
-10477;SHAVIAN LETTER AWE;Lo;0;L;;;;;N;;;;;
-10478;SHAVIAN LETTER ARE;Lo;0;L;;;;;N;;;;;
-10479;SHAVIAN LETTER OR;Lo;0;L;;;;;N;;;;;
-1047A;SHAVIAN LETTER AIR;Lo;0;L;;;;;N;;;;;
-1047B;SHAVIAN LETTER ERR;Lo;0;L;;;;;N;;;;;
-1047C;SHAVIAN LETTER ARRAY;Lo;0;L;;;;;N;;;;;
-1047D;SHAVIAN LETTER EAR;Lo;0;L;;;;;N;;;;;
-1047E;SHAVIAN LETTER IAN;Lo;0;L;;;;;N;;;;;
-1047F;SHAVIAN LETTER YEW;Lo;0;L;;;;;N;;;;;
-10480;OSMANYA LETTER ALEF;Lo;0;L;;;;;N;;;;;
-10481;OSMANYA LETTER BA;Lo;0;L;;;;;N;;;;;
-10482;OSMANYA LETTER TA;Lo;0;L;;;;;N;;;;;
-10483;OSMANYA LETTER JA;Lo;0;L;;;;;N;;;;;
-10484;OSMANYA LETTER XA;Lo;0;L;;;;;N;;;;;
-10485;OSMANYA LETTER KHA;Lo;0;L;;;;;N;;;;;
-10486;OSMANYA LETTER DEEL;Lo;0;L;;;;;N;;;;;
-10487;OSMANYA LETTER RA;Lo;0;L;;;;;N;;;;;
-10488;OSMANYA LETTER SA;Lo;0;L;;;;;N;;;;;
-10489;OSMANYA LETTER SHIIN;Lo;0;L;;;;;N;;;;;
-1048A;OSMANYA LETTER DHA;Lo;0;L;;;;;N;;;;;
-1048B;OSMANYA LETTER CAYN;Lo;0;L;;;;;N;;;;;
-1048C;OSMANYA LETTER GA;Lo;0;L;;;;;N;;;;;
-1048D;OSMANYA LETTER FA;Lo;0;L;;;;;N;;;;;
-1048E;OSMANYA LETTER QAAF;Lo;0;L;;;;;N;;;;;
-1048F;OSMANYA LETTER KAAF;Lo;0;L;;;;;N;;;;;
-10490;OSMANYA LETTER LAAN;Lo;0;L;;;;;N;;;;;
-10491;OSMANYA LETTER MIIN;Lo;0;L;;;;;N;;;;;
-10492;OSMANYA LETTER NUUN;Lo;0;L;;;;;N;;;;;
-10493;OSMANYA LETTER WAW;Lo;0;L;;;;;N;;;;;
-10494;OSMANYA LETTER HA;Lo;0;L;;;;;N;;;;;
-10495;OSMANYA LETTER YA;Lo;0;L;;;;;N;;;;;
-10496;OSMANYA LETTER A;Lo;0;L;;;;;N;;;;;
-10497;OSMANYA LETTER E;Lo;0;L;;;;;N;;;;;
-10498;OSMANYA LETTER I;Lo;0;L;;;;;N;;;;;
-10499;OSMANYA LETTER O;Lo;0;L;;;;;N;;;;;
-1049A;OSMANYA LETTER U;Lo;0;L;;;;;N;;;;;
-1049B;OSMANYA LETTER AA;Lo;0;L;;;;;N;;;;;
-1049C;OSMANYA LETTER EE;Lo;0;L;;;;;N;;;;;
-1049D;OSMANYA LETTER OO;Lo;0;L;;;;;N;;;;;
-104A0;OSMANYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-104A1;OSMANYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-104A2;OSMANYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-104A3;OSMANYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-104A4;OSMANYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-104A5;OSMANYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-104A6;OSMANYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-104A7;OSMANYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-104A8;OSMANYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-104A9;OSMANYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-10800;CYPRIOT SYLLABLE A;Lo;0;R;;;;;N;;;;;
-10801;CYPRIOT SYLLABLE E;Lo;0;R;;;;;N;;;;;
-10802;CYPRIOT SYLLABLE I;Lo;0;R;;;;;N;;;;;
-10803;CYPRIOT SYLLABLE O;Lo;0;R;;;;;N;;;;;
-10804;CYPRIOT SYLLABLE U;Lo;0;R;;;;;N;;;;;
-10805;CYPRIOT SYLLABLE JA;Lo;0;R;;;;;N;;;;;
-10808;CYPRIOT SYLLABLE JO;Lo;0;R;;;;;N;;;;;
-1080A;CYPRIOT SYLLABLE KA;Lo;0;R;;;;;N;;;;;
-1080B;CYPRIOT SYLLABLE KE;Lo;0;R;;;;;N;;;;;
-1080C;CYPRIOT SYLLABLE KI;Lo;0;R;;;;;N;;;;;
-1080D;CYPRIOT SYLLABLE KO;Lo;0;R;;;;;N;;;;;
-1080E;CYPRIOT SYLLABLE KU;Lo;0;R;;;;;N;;;;;
-1080F;CYPRIOT SYLLABLE LA;Lo;0;R;;;;;N;;;;;
-10810;CYPRIOT SYLLABLE LE;Lo;0;R;;;;;N;;;;;
-10811;CYPRIOT SYLLABLE LI;Lo;0;R;;;;;N;;;;;
-10812;CYPRIOT SYLLABLE LO;Lo;0;R;;;;;N;;;;;
-10813;CYPRIOT SYLLABLE LU;Lo;0;R;;;;;N;;;;;
-10814;CYPRIOT SYLLABLE MA;Lo;0;R;;;;;N;;;;;
-10815;CYPRIOT SYLLABLE ME;Lo;0;R;;;;;N;;;;;
-10816;CYPRIOT SYLLABLE MI;Lo;0;R;;;;;N;;;;;
-10817;CYPRIOT SYLLABLE MO;Lo;0;R;;;;;N;;;;;
-10818;CYPRIOT SYLLABLE MU;Lo;0;R;;;;;N;;;;;
-10819;CYPRIOT SYLLABLE NA;Lo;0;R;;;;;N;;;;;
-1081A;CYPRIOT SYLLABLE NE;Lo;0;R;;;;;N;;;;;
-1081B;CYPRIOT SYLLABLE NI;Lo;0;R;;;;;N;;;;;
-1081C;CYPRIOT SYLLABLE NO;Lo;0;R;;;;;N;;;;;
-1081D;CYPRIOT SYLLABLE NU;Lo;0;R;;;;;N;;;;;
-1081E;CYPRIOT SYLLABLE PA;Lo;0;R;;;;;N;;;;;
-1081F;CYPRIOT SYLLABLE PE;Lo;0;R;;;;;N;;;;;
-10820;CYPRIOT SYLLABLE PI;Lo;0;R;;;;;N;;;;;
-10821;CYPRIOT SYLLABLE PO;Lo;0;R;;;;;N;;;;;
-10822;CYPRIOT SYLLABLE PU;Lo;0;R;;;;;N;;;;;
-10823;CYPRIOT SYLLABLE RA;Lo;0;R;;;;;N;;;;;
-10824;CYPRIOT SYLLABLE RE;Lo;0;R;;;;;N;;;;;
-10825;CYPRIOT SYLLABLE RI;Lo;0;R;;;;;N;;;;;
-10826;CYPRIOT SYLLABLE RO;Lo;0;R;;;;;N;;;;;
-10827;CYPRIOT SYLLABLE RU;Lo;0;R;;;;;N;;;;;
-10828;CYPRIOT SYLLABLE SA;Lo;0;R;;;;;N;;;;;
-10829;CYPRIOT SYLLABLE SE;Lo;0;R;;;;;N;;;;;
-1082A;CYPRIOT SYLLABLE SI;Lo;0;R;;;;;N;;;;;
-1082B;CYPRIOT SYLLABLE SO;Lo;0;R;;;;;N;;;;;
-1082C;CYPRIOT SYLLABLE SU;Lo;0;R;;;;;N;;;;;
-1082D;CYPRIOT SYLLABLE TA;Lo;0;R;;;;;N;;;;;
-1082E;CYPRIOT SYLLABLE TE;Lo;0;R;;;;;N;;;;;
-1082F;CYPRIOT SYLLABLE TI;Lo;0;R;;;;;N;;;;;
-10830;CYPRIOT SYLLABLE TO;Lo;0;R;;;;;N;;;;;
-10831;CYPRIOT SYLLABLE TU;Lo;0;R;;;;;N;;;;;
-10832;CYPRIOT SYLLABLE WA;Lo;0;R;;;;;N;;;;;
-10833;CYPRIOT SYLLABLE WE;Lo;0;R;;;;;N;;;;;
-10834;CYPRIOT SYLLABLE WI;Lo;0;R;;;;;N;;;;;
-10835;CYPRIOT SYLLABLE WO;Lo;0;R;;;;;N;;;;;
-10837;CYPRIOT SYLLABLE XA;Lo;0;R;;;;;N;;;;;
-10838;CYPRIOT SYLLABLE XE;Lo;0;R;;;;;N;;;;;
-1083C;CYPRIOT SYLLABLE ZA;Lo;0;R;;;;;N;;;;;
-1083F;CYPRIOT SYLLABLE ZO;Lo;0;R;;;;;N;;;;;
-10840;IMPERIAL ARAMAIC LETTER ALEPH;Lo;0;R;;;;;N;;;;;
-10841;IMPERIAL ARAMAIC LETTER BETH;Lo;0;R;;;;;N;;;;;
-10842;IMPERIAL ARAMAIC LETTER GIMEL;Lo;0;R;;;;;N;;;;;
-10843;IMPERIAL ARAMAIC LETTER DALETH;Lo;0;R;;;;;N;;;;;
-10844;IMPERIAL ARAMAIC LETTER HE;Lo;0;R;;;;;N;;;;;
-10845;IMPERIAL ARAMAIC LETTER WAW;Lo;0;R;;;;;N;;;;;
-10846;IMPERIAL ARAMAIC LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
-10847;IMPERIAL ARAMAIC LETTER HETH;Lo;0;R;;;;;N;;;;;
-10848;IMPERIAL ARAMAIC LETTER TETH;Lo;0;R;;;;;N;;;;;
-10849;IMPERIAL ARAMAIC LETTER YODH;Lo;0;R;;;;;N;;;;;
-1084A;IMPERIAL ARAMAIC LETTER KAPH;Lo;0;R;;;;;N;;;;;
-1084B;IMPERIAL ARAMAIC LETTER LAMEDH;Lo;0;R;;;;;N;;;;;
-1084C;IMPERIAL ARAMAIC LETTER MEM;Lo;0;R;;;;;N;;;;;
-1084D;IMPERIAL ARAMAIC LETTER NUN;Lo;0;R;;;;;N;;;;;
-1084E;IMPERIAL ARAMAIC LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
-1084F;IMPERIAL ARAMAIC LETTER AYIN;Lo;0;R;;;;;N;;;;;
-10850;IMPERIAL ARAMAIC LETTER PE;Lo;0;R;;;;;N;;;;;
-10851;IMPERIAL ARAMAIC LETTER SADHE;Lo;0;R;;;;;N;;;;;
-10852;IMPERIAL ARAMAIC LETTER QOPH;Lo;0;R;;;;;N;;;;;
-10853;IMPERIAL ARAMAIC LETTER RESH;Lo;0;R;;;;;N;;;;;
-10854;IMPERIAL ARAMAIC LETTER SHIN;Lo;0;R;;;;;N;;;;;
-10855;IMPERIAL ARAMAIC LETTER TAW;Lo;0;R;;;;;N;;;;;
-10857;IMPERIAL ARAMAIC SECTION SIGN;Po;0;R;;;;;N;;;;;
-10858;IMPERIAL ARAMAIC NUMBER ONE;No;0;R;;;;1;N;;;;;
-10859;IMPERIAL ARAMAIC NUMBER TWO;No;0;R;;;;2;N;;;;;
-1085A;IMPERIAL ARAMAIC NUMBER THREE;No;0;R;;;;3;N;;;;;
-1085B;IMPERIAL ARAMAIC NUMBER TEN;No;0;R;;;;10;N;;;;;
-1085C;IMPERIAL ARAMAIC NUMBER TWENTY;No;0;R;;;;20;N;;;;;
-1085D;IMPERIAL ARAMAIC NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
-1085E;IMPERIAL ARAMAIC NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;;
-1085F;IMPERIAL ARAMAIC NUMBER TEN THOUSAND;No;0;R;;;;10000;N;;;;;
-10900;PHOENICIAN LETTER ALF;Lo;0;R;;;;;N;;;;;
-10901;PHOENICIAN LETTER BET;Lo;0;R;;;;;N;;;;;
-10902;PHOENICIAN LETTER GAML;Lo;0;R;;;;;N;;;;;
-10903;PHOENICIAN LETTER DELT;Lo;0;R;;;;;N;;;;;
-10904;PHOENICIAN LETTER HE;Lo;0;R;;;;;N;;;;;
-10905;PHOENICIAN LETTER WAU;Lo;0;R;;;;;N;;;;;
-10906;PHOENICIAN LETTER ZAI;Lo;0;R;;;;;N;;;;;
-10907;PHOENICIAN LETTER HET;Lo;0;R;;;;;N;;;;;
-10908;PHOENICIAN LETTER TET;Lo;0;R;;;;;N;;;;;
-10909;PHOENICIAN LETTER YOD;Lo;0;R;;;;;N;;;;;
-1090A;PHOENICIAN LETTER KAF;Lo;0;R;;;;;N;;;;;
-1090B;PHOENICIAN LETTER LAMD;Lo;0;R;;;;;N;;;;;
-1090C;PHOENICIAN LETTER MEM;Lo;0;R;;;;;N;;;;;
-1090D;PHOENICIAN LETTER NUN;Lo;0;R;;;;;N;;;;;
-1090E;PHOENICIAN LETTER SEMK;Lo;0;R;;;;;N;;;;;
-1090F;PHOENICIAN LETTER AIN;Lo;0;R;;;;;N;;;;;
-10910;PHOENICIAN LETTER PE;Lo;0;R;;;;;N;;;;;
-10911;PHOENICIAN LETTER SADE;Lo;0;R;;;;;N;;;;;
-10912;PHOENICIAN LETTER QOF;Lo;0;R;;;;;N;;;;;
-10913;PHOENICIAN LETTER ROSH;Lo;0;R;;;;;N;;;;;
-10914;PHOENICIAN LETTER SHIN;Lo;0;R;;;;;N;;;;;
-10915;PHOENICIAN LETTER TAU;Lo;0;R;;;;;N;;;;;
-10916;PHOENICIAN NUMBER ONE;No;0;R;;;;1;N;;;;;
-10917;PHOENICIAN NUMBER TEN;No;0;R;;;;10;N;;;;;
-10918;PHOENICIAN NUMBER TWENTY;No;0;R;;;;20;N;;;;;
-10919;PHOENICIAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
-1091A;PHOENICIAN NUMBER TWO;No;0;R;;;;2;N;;;;;
-1091B;PHOENICIAN NUMBER THREE;No;0;R;;;;3;N;;;;;
-1091F;PHOENICIAN WORD SEPARATOR;Po;0;ON;;;;;N;;;;;
-10920;LYDIAN LETTER A;Lo;0;R;;;;;N;;;;;
-10921;LYDIAN LETTER B;Lo;0;R;;;;;N;;;;;
-10922;LYDIAN LETTER G;Lo;0;R;;;;;N;;;;;
-10923;LYDIAN LETTER D;Lo;0;R;;;;;N;;;;;
-10924;LYDIAN LETTER E;Lo;0;R;;;;;N;;;;;
-10925;LYDIAN LETTER V;Lo;0;R;;;;;N;;;;;
-10926;LYDIAN LETTER I;Lo;0;R;;;;;N;;;;;
-10927;LYDIAN LETTER Y;Lo;0;R;;;;;N;;;;;
-10928;LYDIAN LETTER K;Lo;0;R;;;;;N;;;;;
-10929;LYDIAN LETTER L;Lo;0;R;;;;;N;;;;;
-1092A;LYDIAN LETTER M;Lo;0;R;;;;;N;;;;;
-1092B;LYDIAN LETTER N;Lo;0;R;;;;;N;;;;;
-1092C;LYDIAN LETTER O;Lo;0;R;;;;;N;;;;;
-1092D;LYDIAN LETTER R;Lo;0;R;;;;;N;;;;;
-1092E;LYDIAN LETTER SS;Lo;0;R;;;;;N;;;;;
-1092F;LYDIAN LETTER T;Lo;0;R;;;;;N;;;;;
-10930;LYDIAN LETTER U;Lo;0;R;;;;;N;;;;;
-10931;LYDIAN LETTER F;Lo;0;R;;;;;N;;;;;
-10932;LYDIAN LETTER Q;Lo;0;R;;;;;N;;;;;
-10933;LYDIAN LETTER S;Lo;0;R;;;;;N;;;;;
-10934;LYDIAN LETTER TT;Lo;0;R;;;;;N;;;;;
-10935;LYDIAN LETTER AN;Lo;0;R;;;;;N;;;;;
-10936;LYDIAN LETTER EN;Lo;0;R;;;;;N;;;;;
-10937;LYDIAN LETTER LY;Lo;0;R;;;;;N;;;;;
-10938;LYDIAN LETTER NN;Lo;0;R;;;;;N;;;;;
-10939;LYDIAN LETTER C;Lo;0;R;;;;;N;;;;;
-1093F;LYDIAN TRIANGULAR MARK;Po;0;R;;;;;N;;;;;
-10980;MEROITIC HIEROGLYPHIC LETTER A;Lo;0;R;;;;;N;;;;;
-10981;MEROITIC HIEROGLYPHIC LETTER E;Lo;0;R;;;;;N;;;;;
-10982;MEROITIC HIEROGLYPHIC LETTER I;Lo;0;R;;;;;N;;;;;
-10983;MEROITIC HIEROGLYPHIC LETTER O;Lo;0;R;;;;;N;;;;;
-10984;MEROITIC HIEROGLYPHIC LETTER YA;Lo;0;R;;;;;N;;;;;
-10985;MEROITIC HIEROGLYPHIC LETTER WA;Lo;0;R;;;;;N;;;;;
-10986;MEROITIC HIEROGLYPHIC LETTER BA;Lo;0;R;;;;;N;;;;;
-10987;MEROITIC HIEROGLYPHIC LETTER BA-2;Lo;0;R;;;;;N;;;;;
-10988;MEROITIC HIEROGLYPHIC LETTER PA;Lo;0;R;;;;;N;;;;;
-10989;MEROITIC HIEROGLYPHIC LETTER MA;Lo;0;R;;;;;N;;;;;
-1098A;MEROITIC HIEROGLYPHIC LETTER NA;Lo;0;R;;;;;N;;;;;
-1098B;MEROITIC HIEROGLYPHIC LETTER NA-2;Lo;0;R;;;;;N;;;;;
-1098C;MEROITIC HIEROGLYPHIC LETTER NE;Lo;0;R;;;;;N;;;;;
-1098D;MEROITIC HIEROGLYPHIC LETTER NE-2;Lo;0;R;;;;;N;;;;;
-1098E;MEROITIC HIEROGLYPHIC LETTER RA;Lo;0;R;;;;;N;;;;;
-1098F;MEROITIC HIEROGLYPHIC LETTER RA-2;Lo;0;R;;;;;N;;;;;
-10990;MEROITIC HIEROGLYPHIC LETTER LA;Lo;0;R;;;;;N;;;;;
-10991;MEROITIC HIEROGLYPHIC LETTER KHA;Lo;0;R;;;;;N;;;;;
-10992;MEROITIC HIEROGLYPHIC LETTER HHA;Lo;0;R;;;;;N;;;;;
-10993;MEROITIC HIEROGLYPHIC LETTER SA;Lo;0;R;;;;;N;;;;;
-10994;MEROITIC HIEROGLYPHIC LETTER SA-2;Lo;0;R;;;;;N;;;;;
-10995;MEROITIC HIEROGLYPHIC LETTER SE;Lo;0;R;;;;;N;;;;;
-10996;MEROITIC HIEROGLYPHIC LETTER KA;Lo;0;R;;;;;N;;;;;
-10997;MEROITIC HIEROGLYPHIC LETTER QA;Lo;0;R;;;;;N;;;;;
-10998;MEROITIC HIEROGLYPHIC LETTER TA;Lo;0;R;;;;;N;;;;;
-10999;MEROITIC HIEROGLYPHIC LETTER TA-2;Lo;0;R;;;;;N;;;;;
-1099A;MEROITIC HIEROGLYPHIC LETTER TE;Lo;0;R;;;;;N;;;;;
-1099B;MEROITIC HIEROGLYPHIC LETTER TE-2;Lo;0;R;;;;;N;;;;;
-1099C;MEROITIC HIEROGLYPHIC LETTER TO;Lo;0;R;;;;;N;;;;;
-1099D;MEROITIC HIEROGLYPHIC LETTER DA;Lo;0;R;;;;;N;;;;;
-1099E;MEROITIC HIEROGLYPHIC SYMBOL VIDJ;Lo;0;R;;;;;N;;;;;
-1099F;MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2;Lo;0;R;;;;;N;;;;;
-109A0;MEROITIC CURSIVE LETTER A;Lo;0;R;;;;;N;;;;;
-109A1;MEROITIC CURSIVE LETTER E;Lo;0;R;;;;;N;;;;;
-109A2;MEROITIC CURSIVE LETTER I;Lo;0;R;;;;;N;;;;;
-109A3;MEROITIC CURSIVE LETTER O;Lo;0;R;;;;;N;;;;;
-109A4;MEROITIC CURSIVE LETTER YA;Lo;0;R;;;;;N;;;;;
-109A5;MEROITIC CURSIVE LETTER WA;Lo;0;R;;;;;N;;;;;
-109A6;MEROITIC CURSIVE LETTER BA;Lo;0;R;;;;;N;;;;;
-109A7;MEROITIC CURSIVE LETTER PA;Lo;0;R;;;;;N;;;;;
-109A8;MEROITIC CURSIVE LETTER MA;Lo;0;R;;;;;N;;;;;
-109A9;MEROITIC CURSIVE LETTER NA;Lo;0;R;;;;;N;;;;;
-109AA;MEROITIC CURSIVE LETTER NE;Lo;0;R;;;;;N;;;;;
-109AB;MEROITIC CURSIVE LETTER RA;Lo;0;R;;;;;N;;;;;
-109AC;MEROITIC CURSIVE LETTER LA;Lo;0;R;;;;;N;;;;;
-109AD;MEROITIC CURSIVE LETTER KHA;Lo;0;R;;;;;N;;;;;
-109AE;MEROITIC CURSIVE LETTER HHA;Lo;0;R;;;;;N;;;;;
-109AF;MEROITIC CURSIVE LETTER SA;Lo;0;R;;;;;N;;;;;
-109B0;MEROITIC CURSIVE LETTER ARCHAIC SA;Lo;0;R;;;;;N;;;;;
-109B1;MEROITIC CURSIVE LETTER SE;Lo;0;R;;;;;N;;;;;
-109B2;MEROITIC CURSIVE LETTER KA;Lo;0;R;;;;;N;;;;;
-109B3;MEROITIC CURSIVE LETTER QA;Lo;0;R;;;;;N;;;;;
-109B4;MEROITIC CURSIVE LETTER TA;Lo;0;R;;;;;N;;;;;
-109B5;MEROITIC CURSIVE LETTER TE;Lo;0;R;;;;;N;;;;;
-109B6;MEROITIC CURSIVE LETTER TO;Lo;0;R;;;;;N;;;;;
-109B7;MEROITIC CURSIVE LETTER DA;Lo;0;R;;;;;N;;;;;
-109BE;MEROITIC CURSIVE LOGOGRAM RMT;Lo;0;R;;;;;N;;;;;
-109BF;MEROITIC CURSIVE LOGOGRAM IMN;Lo;0;R;;;;;N;;;;;
-10A00;KHAROSHTHI LETTER A;Lo;0;R;;;;;N;;;;;
-10A01;KHAROSHTHI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
-10A02;KHAROSHTHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-10A03;KHAROSHTHI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
-10A05;KHAROSHTHI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
-10A06;KHAROSHTHI VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
-10A0C;KHAROSHTHI VOWEL LENGTH MARK;Mn;0;NSM;;;;;N;;;;;
-10A0D;KHAROSHTHI SIGN DOUBLE RING BELOW;Mn;220;NSM;;;;;N;;;;;
-10A0E;KHAROSHTHI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
-10A0F;KHAROSHTHI SIGN VISARGA;Mn;230;NSM;;;;;N;;;;;
-10A10;KHAROSHTHI LETTER KA;Lo;0;R;;;;;N;;;;;
-10A11;KHAROSHTHI LETTER KHA;Lo;0;R;;;;;N;;;;;
-10A12;KHAROSHTHI LETTER GA;Lo;0;R;;;;;N;;;;;
-10A13;KHAROSHTHI LETTER GHA;Lo;0;R;;;;;N;;;;;
-10A15;KHAROSHTHI LETTER CA;Lo;0;R;;;;;N;;;;;
-10A16;KHAROSHTHI LETTER CHA;Lo;0;R;;;;;N;;;;;
-10A17;KHAROSHTHI LETTER JA;Lo;0;R;;;;;N;;;;;
-10A19;KHAROSHTHI LETTER NYA;Lo;0;R;;;;;N;;;;;
-10A1A;KHAROSHTHI LETTER TTA;Lo;0;R;;;;;N;;;;;
-10A1B;KHAROSHTHI LETTER TTHA;Lo;0;R;;;;;N;;;;;
-10A1C;KHAROSHTHI LETTER DDA;Lo;0;R;;;;;N;;;;;
-10A1D;KHAROSHTHI LETTER DDHA;Lo;0;R;;;;;N;;;;;
-10A1E;KHAROSHTHI LETTER NNA;Lo;0;R;;;;;N;;;;;
-10A1F;KHAROSHTHI LETTER TA;Lo;0;R;;;;;N;;;;;
-10A20;KHAROSHTHI LETTER THA;Lo;0;R;;;;;N;;;;;
-10A21;KHAROSHTHI LETTER DA;Lo;0;R;;;;;N;;;;;
-10A22;KHAROSHTHI LETTER DHA;Lo;0;R;;;;;N;;;;;
-10A23;KHAROSHTHI LETTER NA;Lo;0;R;;;;;N;;;;;
-10A24;KHAROSHTHI LETTER PA;Lo;0;R;;;;;N;;;;;
-10A25;KHAROSHTHI LETTER PHA;Lo;0;R;;;;;N;;;;;
-10A26;KHAROSHTHI LETTER BA;Lo;0;R;;;;;N;;;;;
-10A27;KHAROSHTHI LETTER BHA;Lo;0;R;;;;;N;;;;;
-10A28;KHAROSHTHI LETTER MA;Lo;0;R;;;;;N;;;;;
-10A29;KHAROSHTHI LETTER YA;Lo;0;R;;;;;N;;;;;
-10A2A;KHAROSHTHI LETTER RA;Lo;0;R;;;;;N;;;;;
-10A2B;KHAROSHTHI LETTER LA;Lo;0;R;;;;;N;;;;;
-10A2C;KHAROSHTHI LETTER VA;Lo;0;R;;;;;N;;;;;
-10A2D;KHAROSHTHI LETTER SHA;Lo;0;R;;;;;N;;;;;
-10A2E;KHAROSHTHI LETTER SSA;Lo;0;R;;;;;N;;;;;
-10A2F;KHAROSHTHI LETTER SA;Lo;0;R;;;;;N;;;;;
-10A30;KHAROSHTHI LETTER ZA;Lo;0;R;;;;;N;;;;;
-10A31;KHAROSHTHI LETTER HA;Lo;0;R;;;;;N;;;;;
-10A32;KHAROSHTHI LETTER KKA;Lo;0;R;;;;;N;;;;;
-10A33;KHAROSHTHI LETTER TTTHA;Lo;0;R;;;;;N;;;;;
-10A38;KHAROSHTHI SIGN BAR ABOVE;Mn;230;NSM;;;;;N;;;;;
-10A39;KHAROSHTHI SIGN CAUDA;Mn;1;NSM;;;;;N;;;;;
-10A3A;KHAROSHTHI SIGN DOT BELOW;Mn;220;NSM;;;;;N;;;;;
-10A3F;KHAROSHTHI VIRAMA;Mn;9;NSM;;;;;N;;;;;
-10A40;KHAROSHTHI DIGIT ONE;No;0;R;;;1;1;N;;;;;
-10A41;KHAROSHTHI DIGIT TWO;No;0;R;;;2;2;N;;;;;
-10A42;KHAROSHTHI DIGIT THREE;No;0;R;;;3;3;N;;;;;
-10A43;KHAROSHTHI DIGIT FOUR;No;0;R;;;4;4;N;;;;;
-10A44;KHAROSHTHI NUMBER TEN;No;0;R;;;;10;N;;;;;
-10A45;KHAROSHTHI NUMBER TWENTY;No;0;R;;;;20;N;;;;;
-10A46;KHAROSHTHI NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
-10A47;KHAROSHTHI NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;;
-10A50;KHAROSHTHI PUNCTUATION DOT;Po;0;R;;;;;N;;;;;
-10A51;KHAROSHTHI PUNCTUATION SMALL CIRCLE;Po;0;R;;;;;N;;;;;
-10A52;KHAROSHTHI PUNCTUATION CIRCLE;Po;0;R;;;;;N;;;;;
-10A53;KHAROSHTHI PUNCTUATION CRESCENT BAR;Po;0;R;;;;;N;;;;;
-10A54;KHAROSHTHI PUNCTUATION MANGALAM;Po;0;R;;;;;N;;;;;
-10A55;KHAROSHTHI PUNCTUATION LOTUS;Po;0;R;;;;;N;;;;;
-10A56;KHAROSHTHI PUNCTUATION DANDA;Po;0;R;;;;;N;;;;;
-10A57;KHAROSHTHI PUNCTUATION DOUBLE DANDA;Po;0;R;;;;;N;;;;;
-10A58;KHAROSHTHI PUNCTUATION LINES;Po;0;R;;;;;N;;;;;
-10A60;OLD SOUTH ARABIAN LETTER HE;Lo;0;R;;;;;N;;;;;
-10A61;OLD SOUTH ARABIAN LETTER LAMEDH;Lo;0;R;;;;;N;;;;;
-10A62;OLD SOUTH ARABIAN LETTER HETH;Lo;0;R;;;;;N;;;;;
-10A63;OLD SOUTH ARABIAN LETTER MEM;Lo;0;R;;;;;N;;;;;
-10A64;OLD SOUTH ARABIAN LETTER QOPH;Lo;0;R;;;;;N;;;;;
-10A65;OLD SOUTH ARABIAN LETTER WAW;Lo;0;R;;;;;N;;;;;
-10A66;OLD SOUTH ARABIAN LETTER SHIN;Lo;0;R;;;;;N;;;;;
-10A67;OLD SOUTH ARABIAN LETTER RESH;Lo;0;R;;;;;N;;;;;
-10A68;OLD SOUTH ARABIAN LETTER BETH;Lo;0;R;;;;;N;;;;;
-10A69;OLD SOUTH ARABIAN LETTER TAW;Lo;0;R;;;;;N;;;;;
-10A6A;OLD SOUTH ARABIAN LETTER SAT;Lo;0;R;;;;;N;;;;;
-10A6B;OLD SOUTH ARABIAN LETTER KAPH;Lo;0;R;;;;;N;;;;;
-10A6C;OLD SOUTH ARABIAN LETTER NUN;Lo;0;R;;;;;N;;;;;
-10A6D;OLD SOUTH ARABIAN LETTER KHETH;Lo;0;R;;;;;N;;;;;
-10A6E;OLD SOUTH ARABIAN LETTER SADHE;Lo;0;R;;;;;N;;;;;
-10A6F;OLD SOUTH ARABIAN LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
-10A70;OLD SOUTH ARABIAN LETTER FE;Lo;0;R;;;;;N;;;;;
-10A71;OLD SOUTH ARABIAN LETTER ALEF;Lo;0;R;;;;;N;;;;;
-10A72;OLD SOUTH ARABIAN LETTER AYN;Lo;0;R;;;;;N;;;;;
-10A73;OLD SOUTH ARABIAN LETTER DHADHE;Lo;0;R;;;;;N;;;;;
-10A74;OLD SOUTH ARABIAN LETTER GIMEL;Lo;0;R;;;;;N;;;;;
-10A75;OLD SOUTH ARABIAN LETTER DALETH;Lo;0;R;;;;;N;;;;;
-10A76;OLD SOUTH ARABIAN LETTER GHAYN;Lo;0;R;;;;;N;;;;;
-10A77;OLD SOUTH ARABIAN LETTER TETH;Lo;0;R;;;;;N;;;;;
-10A78;OLD SOUTH ARABIAN LETTER ZAYN;Lo;0;R;;;;;N;;;;;
-10A79;OLD SOUTH ARABIAN LETTER DHALETH;Lo;0;R;;;;;N;;;;;
-10A7A;OLD SOUTH ARABIAN LETTER YODH;Lo;0;R;;;;;N;;;;;
-10A7B;OLD SOUTH ARABIAN LETTER THAW;Lo;0;R;;;;;N;;;;;
-10A7C;OLD SOUTH ARABIAN LETTER THETH;Lo;0;R;;;;;N;;;;;
-10A7D;OLD SOUTH ARABIAN NUMBER ONE;No;0;R;;;;1;N;;;;;
-10A7E;OLD SOUTH ARABIAN NUMBER FIFTY;No;0;R;;;;50;N;;;;;
-10A7F;OLD SOUTH ARABIAN NUMERIC INDICATOR;Po;0;R;;;;;N;;;;;
-10B00;AVESTAN LETTER A;Lo;0;R;;;;;N;;;;;
-10B01;AVESTAN LETTER AA;Lo;0;R;;;;;N;;;;;
-10B02;AVESTAN LETTER AO;Lo;0;R;;;;;N;;;;;
-10B03;AVESTAN LETTER AAO;Lo;0;R;;;;;N;;;;;
-10B04;AVESTAN LETTER AN;Lo;0;R;;;;;N;;;;;
-10B05;AVESTAN LETTER AAN;Lo;0;R;;;;;N;;;;;
-10B06;AVESTAN LETTER AE;Lo;0;R;;;;;N;;;;;
-10B07;AVESTAN LETTER AEE;Lo;0;R;;;;;N;;;;;
-10B08;AVESTAN LETTER E;Lo;0;R;;;;;N;;;;;
-10B09;AVESTAN LETTER EE;Lo;0;R;;;;;N;;;;;
-10B0A;AVESTAN LETTER O;Lo;0;R;;;;;N;;;;;
-10B0B;AVESTAN LETTER OO;Lo;0;R;;;;;N;;;;;
-10B0C;AVESTAN LETTER I;Lo;0;R;;;;;N;;;;;
-10B0D;AVESTAN LETTER II;Lo;0;R;;;;;N;;;;;
-10B0E;AVESTAN LETTER U;Lo;0;R;;;;;N;;;;;
-10B0F;AVESTAN LETTER UU;Lo;0;R;;;;;N;;;;;
-10B10;AVESTAN LETTER KE;Lo;0;R;;;;;N;;;;;
-10B11;AVESTAN LETTER XE;Lo;0;R;;;;;N;;;;;
-10B12;AVESTAN LETTER XYE;Lo;0;R;;;;;N;;;;;
-10B13;AVESTAN LETTER XVE;Lo;0;R;;;;;N;;;;;
-10B14;AVESTAN LETTER GE;Lo;0;R;;;;;N;;;;;
-10B15;AVESTAN LETTER GGE;Lo;0;R;;;;;N;;;;;
-10B16;AVESTAN LETTER GHE;Lo;0;R;;;;;N;;;;;
-10B17;AVESTAN LETTER CE;Lo;0;R;;;;;N;;;;;
-10B18;AVESTAN LETTER JE;Lo;0;R;;;;;N;;;;;
-10B19;AVESTAN LETTER TE;Lo;0;R;;;;;N;;;;;
-10B1A;AVESTAN LETTER THE;Lo;0;R;;;;;N;;;;;
-10B1B;AVESTAN LETTER DE;Lo;0;R;;;;;N;;;;;
-10B1C;AVESTAN LETTER DHE;Lo;0;R;;;;;N;;;;;
-10B1D;AVESTAN LETTER TTE;Lo;0;R;;;;;N;;;;;
-10B1E;AVESTAN LETTER PE;Lo;0;R;;;;;N;;;;;
-10B1F;AVESTAN LETTER FE;Lo;0;R;;;;;N;;;;;
-10B20;AVESTAN LETTER BE;Lo;0;R;;;;;N;;;;;
-10B21;AVESTAN LETTER BHE;Lo;0;R;;;;;N;;;;;
-10B22;AVESTAN LETTER NGE;Lo;0;R;;;;;N;;;;;
-10B23;AVESTAN LETTER NGYE;Lo;0;R;;;;;N;;;;;
-10B24;AVESTAN LETTER NGVE;Lo;0;R;;;;;N;;;;;
-10B25;AVESTAN LETTER NE;Lo;0;R;;;;;N;;;;;
-10B26;AVESTAN LETTER NYE;Lo;0;R;;;;;N;;;;;
-10B27;AVESTAN LETTER NNE;Lo;0;R;;;;;N;;;;;
-10B28;AVESTAN LETTER ME;Lo;0;R;;;;;N;;;;;
-10B29;AVESTAN LETTER HME;Lo;0;R;;;;;N;;;;;
-10B2A;AVESTAN LETTER YYE;Lo;0;R;;;;;N;;;;;
-10B2B;AVESTAN LETTER YE;Lo;0;R;;;;;N;;;;;
-10B2C;AVESTAN LETTER VE;Lo;0;R;;;;;N;;;;;
-10B2D;AVESTAN LETTER RE;Lo;0;R;;;;;N;;;;;
-10B2E;AVESTAN LETTER LE;Lo;0;R;;;;;N;;;;;
-10B2F;AVESTAN LETTER SE;Lo;0;R;;;;;N;;;;;
-10B30;AVESTAN LETTER ZE;Lo;0;R;;;;;N;;;;;
-10B31;AVESTAN LETTER SHE;Lo;0;R;;;;;N;;;;;
-10B32;AVESTAN LETTER ZHE;Lo;0;R;;;;;N;;;;;
-10B33;AVESTAN LETTER SHYE;Lo;0;R;;;;;N;;;;;
-10B34;AVESTAN LETTER SSHE;Lo;0;R;;;;;N;;;;;
-10B35;AVESTAN LETTER HE;Lo;0;R;;;;;N;;;;;
-10B39;AVESTAN ABBREVIATION MARK;Po;0;ON;;;;;N;;;;;
-10B3A;TINY TWO DOTS OVER ONE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
-10B3B;SMALL TWO DOTS OVER ONE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
-10B3C;LARGE TWO DOTS OVER ONE DOT PUNCTUATION;Po;0;ON;;;;;N;;;;;
-10B3D;LARGE ONE DOT OVER TWO DOTS PUNCTUATION;Po;0;ON;;;;;N;;;;;
-10B3E;LARGE TWO RINGS OVER ONE RING PUNCTUATION;Po;0;ON;;;;;N;;;;;
-10B3F;LARGE ONE RING OVER TWO RINGS PUNCTUATION;Po;0;ON;;;;;N;;;;;
-10B40;INSCRIPTIONAL PARTHIAN LETTER ALEPH;Lo;0;R;;;;;N;;;;;
-10B41;INSCRIPTIONAL PARTHIAN LETTER BETH;Lo;0;R;;;;;N;;;;;
-10B42;INSCRIPTIONAL PARTHIAN LETTER GIMEL;Lo;0;R;;;;;N;;;;;
-10B43;INSCRIPTIONAL PARTHIAN LETTER DALETH;Lo;0;R;;;;;N;;;;;
-10B44;INSCRIPTIONAL PARTHIAN LETTER HE;Lo;0;R;;;;;N;;;;;
-10B45;INSCRIPTIONAL PARTHIAN LETTER WAW;Lo;0;R;;;;;N;;;;;
-10B46;INSCRIPTIONAL PARTHIAN LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
-10B47;INSCRIPTIONAL PARTHIAN LETTER HETH;Lo;0;R;;;;;N;;;;;
-10B48;INSCRIPTIONAL PARTHIAN LETTER TETH;Lo;0;R;;;;;N;;;;;
-10B49;INSCRIPTIONAL PARTHIAN LETTER YODH;Lo;0;R;;;;;N;;;;;
-10B4A;INSCRIPTIONAL PARTHIAN LETTER KAPH;Lo;0;R;;;;;N;;;;;
-10B4B;INSCRIPTIONAL PARTHIAN LETTER LAMEDH;Lo;0;R;;;;;N;;;;;
-10B4C;INSCRIPTIONAL PARTHIAN LETTER MEM;Lo;0;R;;;;;N;;;;;
-10B4D;INSCRIPTIONAL PARTHIAN LETTER NUN;Lo;0;R;;;;;N;;;;;
-10B4E;INSCRIPTIONAL PARTHIAN LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
-10B4F;INSCRIPTIONAL PARTHIAN LETTER AYIN;Lo;0;R;;;;;N;;;;;
-10B50;INSCRIPTIONAL PARTHIAN LETTER PE;Lo;0;R;;;;;N;;;;;
-10B51;INSCRIPTIONAL PARTHIAN LETTER SADHE;Lo;0;R;;;;;N;;;;;
-10B52;INSCRIPTIONAL PARTHIAN LETTER QOPH;Lo;0;R;;;;;N;;;;;
-10B53;INSCRIPTIONAL PARTHIAN LETTER RESH;Lo;0;R;;;;;N;;;;;
-10B54;INSCRIPTIONAL PARTHIAN LETTER SHIN;Lo;0;R;;;;;N;;;;;
-10B55;INSCRIPTIONAL PARTHIAN LETTER TAW;Lo;0;R;;;;;N;;;;;
-10B58;INSCRIPTIONAL PARTHIAN NUMBER ONE;No;0;R;;;;1;N;;;;;
-10B59;INSCRIPTIONAL PARTHIAN NUMBER TWO;No;0;R;;;;2;N;;;;;
-10B5A;INSCRIPTIONAL PARTHIAN NUMBER THREE;No;0;R;;;;3;N;;;;;
-10B5B;INSCRIPTIONAL PARTHIAN NUMBER FOUR;No;0;R;;;;4;N;;;;;
-10B5C;INSCRIPTIONAL PARTHIAN NUMBER TEN;No;0;R;;;;10;N;;;;;
-10B5D;INSCRIPTIONAL PARTHIAN NUMBER TWENTY;No;0;R;;;;20;N;;;;;
-10B5E;INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
-10B5F;INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;;
-10B60;INSCRIPTIONAL PAHLAVI LETTER ALEPH;Lo;0;R;;;;;N;;;;;
-10B61;INSCRIPTIONAL PAHLAVI LETTER BETH;Lo;0;R;;;;;N;;;;;
-10B62;INSCRIPTIONAL PAHLAVI LETTER GIMEL;Lo;0;R;;;;;N;;;;;
-10B63;INSCRIPTIONAL PAHLAVI LETTER DALETH;Lo;0;R;;;;;N;;;;;
-10B64;INSCRIPTIONAL PAHLAVI LETTER HE;Lo;0;R;;;;;N;;;;;
-10B65;INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH;Lo;0;R;;;;;N;;;;;
-10B66;INSCRIPTIONAL PAHLAVI LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
-10B67;INSCRIPTIONAL PAHLAVI LETTER HETH;Lo;0;R;;;;;N;;;;;
-10B68;INSCRIPTIONAL PAHLAVI LETTER TETH;Lo;0;R;;;;;N;;;;;
-10B69;INSCRIPTIONAL PAHLAVI LETTER YODH;Lo;0;R;;;;;N;;;;;
-10B6A;INSCRIPTIONAL PAHLAVI LETTER KAPH;Lo;0;R;;;;;N;;;;;
-10B6B;INSCRIPTIONAL PAHLAVI LETTER LAMEDH;Lo;0;R;;;;;N;;;;;
-10B6C;INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH;Lo;0;R;;;;;N;;;;;
-10B6D;INSCRIPTIONAL PAHLAVI LETTER NUN;Lo;0;R;;;;;N;;;;;
-10B6E;INSCRIPTIONAL PAHLAVI LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
-10B6F;INSCRIPTIONAL PAHLAVI LETTER PE;Lo;0;R;;;;;N;;;;;
-10B70;INSCRIPTIONAL PAHLAVI LETTER SADHE;Lo;0;R;;;;;N;;;;;
-10B71;INSCRIPTIONAL PAHLAVI LETTER SHIN;Lo;0;R;;;;;N;;;;;
-10B72;INSCRIPTIONAL PAHLAVI LETTER TAW;Lo;0;R;;;;;N;;;;;
-10B78;INSCRIPTIONAL PAHLAVI NUMBER ONE;No;0;R;;;;1;N;;;;;
-10B79;INSCRIPTIONAL PAHLAVI NUMBER TWO;No;0;R;;;;2;N;;;;;
-10B7A;INSCRIPTIONAL PAHLAVI NUMBER THREE;No;0;R;;;;3;N;;;;;
-10B7B;INSCRIPTIONAL PAHLAVI NUMBER FOUR;No;0;R;;;;4;N;;;;;
-10B7C;INSCRIPTIONAL PAHLAVI NUMBER TEN;No;0;R;;;;10;N;;;;;
-10B7D;INSCRIPTIONAL PAHLAVI NUMBER TWENTY;No;0;R;;;;20;N;;;;;
-10B7E;INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED;No;0;R;;;;100;N;;;;;
-10B7F;INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND;No;0;R;;;;1000;N;;;;;
-10C00;OLD TURKIC LETTER ORKHON A;Lo;0;R;;;;;N;;;;;
-10C01;OLD TURKIC LETTER YENISEI A;Lo;0;R;;;;;N;;;;;
-10C02;OLD TURKIC LETTER YENISEI AE;Lo;0;R;;;;;N;;;;;
-10C03;OLD TURKIC LETTER ORKHON I;Lo;0;R;;;;;N;;;;;
-10C04;OLD TURKIC LETTER YENISEI I;Lo;0;R;;;;;N;;;;;
-10C05;OLD TURKIC LETTER YENISEI E;Lo;0;R;;;;;N;;;;;
-10C06;OLD TURKIC LETTER ORKHON O;Lo;0;R;;;;;N;;;;;
-10C07;OLD TURKIC LETTER ORKHON OE;Lo;0;R;;;;;N;;;;;
-10C08;OLD TURKIC LETTER YENISEI OE;Lo;0;R;;;;;N;;;;;
-10C09;OLD TURKIC LETTER ORKHON AB;Lo;0;R;;;;;N;;;;;
-10C0A;OLD TURKIC LETTER YENISEI AB;Lo;0;R;;;;;N;;;;;
-10C0B;OLD TURKIC LETTER ORKHON AEB;Lo;0;R;;;;;N;;;;;
-10C0C;OLD TURKIC LETTER YENISEI AEB;Lo;0;R;;;;;N;;;;;
-10C0D;OLD TURKIC LETTER ORKHON AG;Lo;0;R;;;;;N;;;;;
-10C0E;OLD TURKIC LETTER YENISEI AG;Lo;0;R;;;;;N;;;;;
-10C0F;OLD TURKIC LETTER ORKHON AEG;Lo;0;R;;;;;N;;;;;
-10C10;OLD TURKIC LETTER YENISEI AEG;Lo;0;R;;;;;N;;;;;
-10C11;OLD TURKIC LETTER ORKHON AD;Lo;0;R;;;;;N;;;;;
-10C12;OLD TURKIC LETTER YENISEI AD;Lo;0;R;;;;;N;;;;;
-10C13;OLD TURKIC LETTER ORKHON AED;Lo;0;R;;;;;N;;;;;
-10C14;OLD TURKIC LETTER ORKHON EZ;Lo;0;R;;;;;N;;;;;
-10C15;OLD TURKIC LETTER YENISEI EZ;Lo;0;R;;;;;N;;;;;
-10C16;OLD TURKIC LETTER ORKHON AY;Lo;0;R;;;;;N;;;;;
-10C17;OLD TURKIC LETTER YENISEI AY;Lo;0;R;;;;;N;;;;;
-10C18;OLD TURKIC LETTER ORKHON AEY;Lo;0;R;;;;;N;;;;;
-10C19;OLD TURKIC LETTER YENISEI AEY;Lo;0;R;;;;;N;;;;;
-10C1A;OLD TURKIC LETTER ORKHON AEK;Lo;0;R;;;;;N;;;;;
-10C1B;OLD TURKIC LETTER YENISEI AEK;Lo;0;R;;;;;N;;;;;
-10C1C;OLD TURKIC LETTER ORKHON OEK;Lo;0;R;;;;;N;;;;;
-10C1D;OLD TURKIC LETTER YENISEI OEK;Lo;0;R;;;;;N;;;;;
-10C1E;OLD TURKIC LETTER ORKHON AL;Lo;0;R;;;;;N;;;;;
-10C1F;OLD TURKIC LETTER YENISEI AL;Lo;0;R;;;;;N;;;;;
-10C20;OLD TURKIC LETTER ORKHON AEL;Lo;0;R;;;;;N;;;;;
-10C21;OLD TURKIC LETTER ORKHON ELT;Lo;0;R;;;;;N;;;;;
-10C22;OLD TURKIC LETTER ORKHON EM;Lo;0;R;;;;;N;;;;;
-10C23;OLD TURKIC LETTER ORKHON AN;Lo;0;R;;;;;N;;;;;
-10C24;OLD TURKIC LETTER ORKHON AEN;Lo;0;R;;;;;N;;;;;
-10C25;OLD TURKIC LETTER YENISEI AEN;Lo;0;R;;;;;N;;;;;
-10C26;OLD TURKIC LETTER ORKHON ENT;Lo;0;R;;;;;N;;;;;
-10C27;OLD TURKIC LETTER YENISEI ENT;Lo;0;R;;;;;N;;;;;
-10C28;OLD TURKIC LETTER ORKHON ENC;Lo;0;R;;;;;N;;;;;
-10C29;OLD TURKIC LETTER YENISEI ENC;Lo;0;R;;;;;N;;;;;
-10C2A;OLD TURKIC LETTER ORKHON ENY;Lo;0;R;;;;;N;;;;;
-10C2B;OLD TURKIC LETTER YENISEI ENY;Lo;0;R;;;;;N;;;;;
-10C2C;OLD TURKIC LETTER YENISEI ANG;Lo;0;R;;;;;N;;;;;
-10C2D;OLD TURKIC LETTER ORKHON ENG;Lo;0;R;;;;;N;;;;;
-10C2E;OLD TURKIC LETTER YENISEI AENG;Lo;0;R;;;;;N;;;;;
-10C2F;OLD TURKIC LETTER ORKHON EP;Lo;0;R;;;;;N;;;;;
-10C30;OLD TURKIC LETTER ORKHON OP;Lo;0;R;;;;;N;;;;;
-10C31;OLD TURKIC LETTER ORKHON IC;Lo;0;R;;;;;N;;;;;
-10C32;OLD TURKIC LETTER ORKHON EC;Lo;0;R;;;;;N;;;;;
-10C33;OLD TURKIC LETTER YENISEI EC;Lo;0;R;;;;;N;;;;;
-10C34;OLD TURKIC LETTER ORKHON AQ;Lo;0;R;;;;;N;;;;;
-10C35;OLD TURKIC LETTER YENISEI AQ;Lo;0;R;;;;;N;;;;;
-10C36;OLD TURKIC LETTER ORKHON IQ;Lo;0;R;;;;;N;;;;;
-10C37;OLD TURKIC LETTER YENISEI IQ;Lo;0;R;;;;;N;;;;;
-10C38;OLD TURKIC LETTER ORKHON OQ;Lo;0;R;;;;;N;;;;;
-10C39;OLD TURKIC LETTER YENISEI OQ;Lo;0;R;;;;;N;;;;;
-10C3A;OLD TURKIC LETTER ORKHON AR;Lo;0;R;;;;;N;;;;;
-10C3B;OLD TURKIC LETTER YENISEI AR;Lo;0;R;;;;;N;;;;;
-10C3C;OLD TURKIC LETTER ORKHON AER;Lo;0;R;;;;;N;;;;;
-10C3D;OLD TURKIC LETTER ORKHON AS;Lo;0;R;;;;;N;;;;;
-10C3E;OLD TURKIC LETTER ORKHON AES;Lo;0;R;;;;;N;;;;;
-10C3F;OLD TURKIC LETTER ORKHON ASH;Lo;0;R;;;;;N;;;;;
-10C40;OLD TURKIC LETTER YENISEI ASH;Lo;0;R;;;;;N;;;;;
-10C41;OLD TURKIC LETTER ORKHON ESH;Lo;0;R;;;;;N;;;;;
-10C42;OLD TURKIC LETTER YENISEI ESH;Lo;0;R;;;;;N;;;;;
-10C43;OLD TURKIC LETTER ORKHON AT;Lo;0;R;;;;;N;;;;;
-10C44;OLD TURKIC LETTER YENISEI AT;Lo;0;R;;;;;N;;;;;
-10C45;OLD TURKIC LETTER ORKHON AET;Lo;0;R;;;;;N;;;;;
-10C46;OLD TURKIC LETTER YENISEI AET;Lo;0;R;;;;;N;;;;;
-10C47;OLD TURKIC LETTER ORKHON OT;Lo;0;R;;;;;N;;;;;
-10C48;OLD TURKIC LETTER ORKHON BASH;Lo;0;R;;;;;N;;;;;
-10E60;RUMI DIGIT ONE;No;0;AN;;;1;1;N;;;;;
-10E61;RUMI DIGIT TWO;No;0;AN;;;2;2;N;;;;;
-10E62;RUMI DIGIT THREE;No;0;AN;;;3;3;N;;;;;
-10E63;RUMI DIGIT FOUR;No;0;AN;;;4;4;N;;;;;
-10E64;RUMI DIGIT FIVE;No;0;AN;;;5;5;N;;;;;
-10E65;RUMI DIGIT SIX;No;0;AN;;;6;6;N;;;;;
-10E66;RUMI DIGIT SEVEN;No;0;AN;;;7;7;N;;;;;
-10E67;RUMI DIGIT EIGHT;No;0;AN;;;8;8;N;;;;;
-10E68;RUMI DIGIT NINE;No;0;AN;;;9;9;N;;;;;
-10E69;RUMI NUMBER TEN;No;0;AN;;;;10;N;;;;;
-10E6A;RUMI NUMBER TWENTY;No;0;AN;;;;20;N;;;;;
-10E6B;RUMI NUMBER THIRTY;No;0;AN;;;;30;N;;;;;
-10E6C;RUMI NUMBER FORTY;No;0;AN;;;;40;N;;;;;
-10E6D;RUMI NUMBER FIFTY;No;0;AN;;;;50;N;;;;;
-10E6E;RUMI NUMBER SIXTY;No;0;AN;;;;60;N;;;;;
-10E6F;RUMI NUMBER SEVENTY;No;0;AN;;;;70;N;;;;;
-10E70;RUMI NUMBER EIGHTY;No;0;AN;;;;80;N;;;;;
-10E71;RUMI NUMBER NINETY;No;0;AN;;;;90;N;;;;;
-10E72;RUMI NUMBER ONE HUNDRED;No;0;AN;;;;100;N;;;;;
-10E73;RUMI NUMBER TWO HUNDRED;No;0;AN;;;;200;N;;;;;
-10E74;RUMI NUMBER THREE HUNDRED;No;0;AN;;;;300;N;;;;;
-10E75;RUMI NUMBER FOUR HUNDRED;No;0;AN;;;;400;N;;;;;
-10E76;RUMI NUMBER FIVE HUNDRED;No;0;AN;;;;500;N;;;;;
-10E77;RUMI NUMBER SIX HUNDRED;No;0;AN;;;;600;N;;;;;
-10E78;RUMI NUMBER SEVEN HUNDRED;No;0;AN;;;;700;N;;;;;
-10E79;RUMI NUMBER EIGHT HUNDRED;No;0;AN;;;;800;N;;;;;
-10E7A;RUMI NUMBER NINE HUNDRED;No;0;AN;;;;900;N;;;;;
-10E7B;RUMI FRACTION ONE HALF;No;0;AN;;;;1/2;N;;;;;
-10E7C;RUMI FRACTION ONE QUARTER;No;0;AN;;;;1/4;N;;;;;
-10E7D;RUMI FRACTION ONE THIRD;No;0;AN;;;;1/3;N;;;;;
-10E7E;RUMI FRACTION TWO THIRDS;No;0;AN;;;;2/3;N;;;;;
-11000;BRAHMI SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;;
-11001;BRAHMI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
-11002;BRAHMI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
-11003;BRAHMI SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
-11004;BRAHMI SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
-11005;BRAHMI LETTER A;Lo;0;L;;;;;N;;;;;
-11006;BRAHMI LETTER AA;Lo;0;L;;;;;N;;;;;
-11007;BRAHMI LETTER I;Lo;0;L;;;;;N;;;;;
-11008;BRAHMI LETTER II;Lo;0;L;;;;;N;;;;;
-11009;BRAHMI LETTER U;Lo;0;L;;;;;N;;;;;
-1100A;BRAHMI LETTER UU;Lo;0;L;;;;;N;;;;;
-1100B;BRAHMI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
-1100C;BRAHMI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
-1100D;BRAHMI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
-1100E;BRAHMI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
-1100F;BRAHMI LETTER E;Lo;0;L;;;;;N;;;;;
-11010;BRAHMI LETTER AI;Lo;0;L;;;;;N;;;;;
-11011;BRAHMI LETTER O;Lo;0;L;;;;;N;;;;;
-11012;BRAHMI LETTER AU;Lo;0;L;;;;;N;;;;;
-11013;BRAHMI LETTER KA;Lo;0;L;;;;;N;;;;;
-11014;BRAHMI LETTER KHA;Lo;0;L;;;;;N;;;;;
-11015;BRAHMI LETTER GA;Lo;0;L;;;;;N;;;;;
-11016;BRAHMI LETTER GHA;Lo;0;L;;;;;N;;;;;
-11017;BRAHMI LETTER NGA;Lo;0;L;;;;;N;;;;;
-11018;BRAHMI LETTER CA;Lo;0;L;;;;;N;;;;;
-11019;BRAHMI LETTER CHA;Lo;0;L;;;;;N;;;;;
-1101A;BRAHMI LETTER JA;Lo;0;L;;;;;N;;;;;
-1101B;BRAHMI LETTER JHA;Lo;0;L;;;;;N;;;;;
-1101C;BRAHMI LETTER NYA;Lo;0;L;;;;;N;;;;;
-1101D;BRAHMI LETTER TTA;Lo;0;L;;;;;N;;;;;
-1101E;BRAHMI LETTER TTHA;Lo;0;L;;;;;N;;;;;
-1101F;BRAHMI LETTER DDA;Lo;0;L;;;;;N;;;;;
-11020;BRAHMI LETTER DDHA;Lo;0;L;;;;;N;;;;;
-11021;BRAHMI LETTER NNA;Lo;0;L;;;;;N;;;;;
-11022;BRAHMI LETTER TA;Lo;0;L;;;;;N;;;;;
-11023;BRAHMI LETTER THA;Lo;0;L;;;;;N;;;;;
-11024;BRAHMI LETTER DA;Lo;0;L;;;;;N;;;;;
-11025;BRAHMI LETTER DHA;Lo;0;L;;;;;N;;;;;
-11026;BRAHMI LETTER NA;Lo;0;L;;;;;N;;;;;
-11027;BRAHMI LETTER PA;Lo;0;L;;;;;N;;;;;
-11028;BRAHMI LETTER PHA;Lo;0;L;;;;;N;;;;;
-11029;BRAHMI LETTER BA;Lo;0;L;;;;;N;;;;;
-1102A;BRAHMI LETTER BHA;Lo;0;L;;;;;N;;;;;
-1102B;BRAHMI LETTER MA;Lo;0;L;;;;;N;;;;;
-1102C;BRAHMI LETTER YA;Lo;0;L;;;;;N;;;;;
-1102D;BRAHMI LETTER RA;Lo;0;L;;;;;N;;;;;
-1102E;BRAHMI LETTER LA;Lo;0;L;;;;;N;;;;;
-1102F;BRAHMI LETTER VA;Lo;0;L;;;;;N;;;;;
-11030;BRAHMI LETTER SHA;Lo;0;L;;;;;N;;;;;
-11031;BRAHMI LETTER SSA;Lo;0;L;;;;;N;;;;;
-11032;BRAHMI LETTER SA;Lo;0;L;;;;;N;;;;;
-11033;BRAHMI LETTER HA;Lo;0;L;;;;;N;;;;;
-11034;BRAHMI LETTER LLA;Lo;0;L;;;;;N;;;;;
-11035;BRAHMI LETTER OLD TAMIL LLLA;Lo;0;L;;;;;N;;;;;
-11036;BRAHMI LETTER OLD TAMIL RRA;Lo;0;L;;;;;N;;;;;
-11037;BRAHMI LETTER OLD TAMIL NNNA;Lo;0;L;;;;;N;;;;;
-11038;BRAHMI VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;;
-11039;BRAHMI VOWEL SIGN BHATTIPROLU AA;Mn;0;NSM;;;;;N;;;;;
-1103A;BRAHMI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
-1103B;BRAHMI VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
-1103C;BRAHMI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-1103D;BRAHMI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
-1103E;BRAHMI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
-1103F;BRAHMI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
-11040;BRAHMI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
-11041;BRAHMI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
-11042;BRAHMI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
-11043;BRAHMI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
-11044;BRAHMI VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
-11045;BRAHMI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
-11046;BRAHMI VIRAMA;Mn;9;NSM;;;;;N;;;;;
-11047;BRAHMI DANDA;Po;0;L;;;;;N;;;;;
-11048;BRAHMI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
-11049;BRAHMI PUNCTUATION DOT;Po;0;L;;;;;N;;;;;
-1104A;BRAHMI PUNCTUATION DOUBLE DOT;Po;0;L;;;;;N;;;;;
-1104B;BRAHMI PUNCTUATION LINE;Po;0;L;;;;;N;;;;;
-1104C;BRAHMI PUNCTUATION CRESCENT BAR;Po;0;L;;;;;N;;;;;
-1104D;BRAHMI PUNCTUATION LOTUS;Po;0;L;;;;;N;;;;;
-11052;BRAHMI NUMBER ONE;No;0;ON;;;1;1;N;;;;;
-11053;BRAHMI NUMBER TWO;No;0;ON;;;2;2;N;;;;;
-11054;BRAHMI NUMBER THREE;No;0;ON;;;3;3;N;;;;;
-11055;BRAHMI NUMBER FOUR;No;0;ON;;;4;4;N;;;;;
-11056;BRAHMI NUMBER FIVE;No;0;ON;;;5;5;N;;;;;
-11057;BRAHMI NUMBER SIX;No;0;ON;;;6;6;N;;;;;
-11058;BRAHMI NUMBER SEVEN;No;0;ON;;;7;7;N;;;;;
-11059;BRAHMI NUMBER EIGHT;No;0;ON;;;8;8;N;;;;;
-1105A;BRAHMI NUMBER NINE;No;0;ON;;;9;9;N;;;;;
-1105B;BRAHMI NUMBER TEN;No;0;ON;;;;10;N;;;;;
-1105C;BRAHMI NUMBER TWENTY;No;0;ON;;;;20;N;;;;;
-1105D;BRAHMI NUMBER THIRTY;No;0;ON;;;;30;N;;;;;
-1105E;BRAHMI NUMBER FORTY;No;0;ON;;;;40;N;;;;;
-1105F;BRAHMI NUMBER FIFTY;No;0;ON;;;;50;N;;;;;
-11060;BRAHMI NUMBER SIXTY;No;0;ON;;;;60;N;;;;;
-11061;BRAHMI NUMBER SEVENTY;No;0;ON;;;;70;N;;;;;
-11062;BRAHMI NUMBER EIGHTY;No;0;ON;;;;80;N;;;;;
-11063;BRAHMI NUMBER NINETY;No;0;ON;;;;90;N;;;;;
-11064;BRAHMI NUMBER ONE HUNDRED;No;0;ON;;;;100;N;;;;;
-11065;BRAHMI NUMBER ONE THOUSAND;No;0;ON;;;;1000;N;;;;;
-11066;BRAHMI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-11067;BRAHMI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-11068;BRAHMI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-11069;BRAHMI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-1106A;BRAHMI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-1106B;BRAHMI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-1106C;BRAHMI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-1106D;BRAHMI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-1106E;BRAHMI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-1106F;BRAHMI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-11080;KAITHI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
-11081;KAITHI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
-11082;KAITHI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
-11083;KAITHI LETTER A;Lo;0;L;;;;;N;;;;;
-11084;KAITHI LETTER AA;Lo;0;L;;;;;N;;;;;
-11085;KAITHI LETTER I;Lo;0;L;;;;;N;;;;;
-11086;KAITHI LETTER II;Lo;0;L;;;;;N;;;;;
-11087;KAITHI LETTER U;Lo;0;L;;;;;N;;;;;
-11088;KAITHI LETTER UU;Lo;0;L;;;;;N;;;;;
-11089;KAITHI LETTER E;Lo;0;L;;;;;N;;;;;
-1108A;KAITHI LETTER AI;Lo;0;L;;;;;N;;;;;
-1108B;KAITHI LETTER O;Lo;0;L;;;;;N;;;;;
-1108C;KAITHI LETTER AU;Lo;0;L;;;;;N;;;;;
-1108D;KAITHI LETTER KA;Lo;0;L;;;;;N;;;;;
-1108E;KAITHI LETTER KHA;Lo;0;L;;;;;N;;;;;
-1108F;KAITHI LETTER GA;Lo;0;L;;;;;N;;;;;
-11090;KAITHI LETTER GHA;Lo;0;L;;;;;N;;;;;
-11091;KAITHI LETTER NGA;Lo;0;L;;;;;N;;;;;
-11092;KAITHI LETTER CA;Lo;0;L;;;;;N;;;;;
-11093;KAITHI LETTER CHA;Lo;0;L;;;;;N;;;;;
-11094;KAITHI LETTER JA;Lo;0;L;;;;;N;;;;;
-11095;KAITHI LETTER JHA;Lo;0;L;;;;;N;;;;;
-11096;KAITHI LETTER NYA;Lo;0;L;;;;;N;;;;;
-11097;KAITHI LETTER TTA;Lo;0;L;;;;;N;;;;;
-11098;KAITHI LETTER TTHA;Lo;0;L;;;;;N;;;;;
-11099;KAITHI LETTER DDA;Lo;0;L;;;;;N;;;;;
-1109A;KAITHI LETTER DDDHA;Lo;0;L;11099 110BA;;;;N;;;;;
-1109B;KAITHI LETTER DDHA;Lo;0;L;;;;;N;;;;;
-1109C;KAITHI LETTER RHA;Lo;0;L;1109B 110BA;;;;N;;;;;
-1109D;KAITHI LETTER NNA;Lo;0;L;;;;;N;;;;;
-1109E;KAITHI LETTER TA;Lo;0;L;;;;;N;;;;;
-1109F;KAITHI LETTER THA;Lo;0;L;;;;;N;;;;;
-110A0;KAITHI LETTER DA;Lo;0;L;;;;;N;;;;;
-110A1;KAITHI LETTER DHA;Lo;0;L;;;;;N;;;;;
-110A2;KAITHI LETTER NA;Lo;0;L;;;;;N;;;;;
-110A3;KAITHI LETTER PA;Lo;0;L;;;;;N;;;;;
-110A4;KAITHI LETTER PHA;Lo;0;L;;;;;N;;;;;
-110A5;KAITHI LETTER BA;Lo;0;L;;;;;N;;;;;
-110A6;KAITHI LETTER BHA;Lo;0;L;;;;;N;;;;;
-110A7;KAITHI LETTER MA;Lo;0;L;;;;;N;;;;;
-110A8;KAITHI LETTER YA;Lo;0;L;;;;;N;;;;;
-110A9;KAITHI LETTER RA;Lo;0;L;;;;;N;;;;;
-110AA;KAITHI LETTER LA;Lo;0;L;;;;;N;;;;;
-110AB;KAITHI LETTER VA;Lo;0;L;110A5 110BA;;;;N;;;;;
-110AC;KAITHI LETTER SHA;Lo;0;L;;;;;N;;;;;
-110AD;KAITHI LETTER SSA;Lo;0;L;;;;;N;;;;;
-110AE;KAITHI LETTER SA;Lo;0;L;;;;;N;;;;;
-110AF;KAITHI LETTER HA;Lo;0;L;;;;;N;;;;;
-110B0;KAITHI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-110B1;KAITHI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
-110B2;KAITHI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
-110B3;KAITHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-110B4;KAITHI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
-110B5;KAITHI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
-110B6;KAITHI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
-110B7;KAITHI VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
-110B8;KAITHI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
-110B9;KAITHI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
-110BA;KAITHI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
-110BB;KAITHI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
-110BC;KAITHI ENUMERATION SIGN;Po;0;L;;;;;N;;;;;
-110BD;KAITHI NUMBER SIGN;Cf;0;L;;;;;N;;;;;
-110BE;KAITHI SECTION MARK;Po;0;L;;;;;N;;;;;
-110BF;KAITHI DOUBLE SECTION MARK;Po;0;L;;;;;N;;;;;
-110C0;KAITHI DANDA;Po;0;L;;;;;N;;;;;
-110C1;KAITHI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
-110D0;SORA SOMPENG LETTER SAH;Lo;0;L;;;;;N;;;;;
-110D1;SORA SOMPENG LETTER TAH;Lo;0;L;;;;;N;;;;;
-110D2;SORA SOMPENG LETTER BAH;Lo;0;L;;;;;N;;;;;
-110D3;SORA SOMPENG LETTER CAH;Lo;0;L;;;;;N;;;;;
-110D4;SORA SOMPENG LETTER DAH;Lo;0;L;;;;;N;;;;;
-110D5;SORA SOMPENG LETTER GAH;Lo;0;L;;;;;N;;;;;
-110D6;SORA SOMPENG LETTER MAH;Lo;0;L;;;;;N;;;;;
-110D7;SORA SOMPENG LETTER NGAH;Lo;0;L;;;;;N;;;;;
-110D8;SORA SOMPENG LETTER LAH;Lo;0;L;;;;;N;;;;;
-110D9;SORA SOMPENG LETTER NAH;Lo;0;L;;;;;N;;;;;
-110DA;SORA SOMPENG LETTER VAH;Lo;0;L;;;;;N;;;;;
-110DB;SORA SOMPENG LETTER PAH;Lo;0;L;;;;;N;;;;;
-110DC;SORA SOMPENG LETTER YAH;Lo;0;L;;;;;N;;;;;
-110DD;SORA SOMPENG LETTER RAH;Lo;0;L;;;;;N;;;;;
-110DE;SORA SOMPENG LETTER HAH;Lo;0;L;;;;;N;;;;;
-110DF;SORA SOMPENG LETTER KAH;Lo;0;L;;;;;N;;;;;
-110E0;SORA SOMPENG LETTER JAH;Lo;0;L;;;;;N;;;;;
-110E1;SORA SOMPENG LETTER NYAH;Lo;0;L;;;;;N;;;;;
-110E2;SORA SOMPENG LETTER AH;Lo;0;L;;;;;N;;;;;
-110E3;SORA SOMPENG LETTER EEH;Lo;0;L;;;;;N;;;;;
-110E4;SORA SOMPENG LETTER IH;Lo;0;L;;;;;N;;;;;
-110E5;SORA SOMPENG LETTER UH;Lo;0;L;;;;;N;;;;;
-110E6;SORA SOMPENG LETTER OH;Lo;0;L;;;;;N;;;;;
-110E7;SORA SOMPENG LETTER EH;Lo;0;L;;;;;N;;;;;
-110E8;SORA SOMPENG LETTER MAE;Lo;0;L;;;;;N;;;;;
-110F0;SORA SOMPENG DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-110F1;SORA SOMPENG DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-110F2;SORA SOMPENG DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-110F3;SORA SOMPENG DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-110F4;SORA SOMPENG DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-110F5;SORA SOMPENG DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-110F6;SORA SOMPENG DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-110F7;SORA SOMPENG DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-110F8;SORA SOMPENG DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-110F9;SORA SOMPENG DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-11100;CHAKMA SIGN CANDRABINDU;Mn;230;NSM;;;;;N;;;;;
-11101;CHAKMA SIGN ANUSVARA;Mn;230;NSM;;;;;N;;;;;
-11102;CHAKMA SIGN VISARGA;Mn;230;NSM;;;;;N;;;;;
-11103;CHAKMA LETTER AA;Lo;0;L;;;;;N;;;;;
-11104;CHAKMA LETTER I;Lo;0;L;;;;;N;;;;;
-11105;CHAKMA LETTER U;Lo;0;L;;;;;N;;;;;
-11106;CHAKMA LETTER E;Lo;0;L;;;;;N;;;;;
-11107;CHAKMA LETTER KAA;Lo;0;L;;;;;N;;;;;
-11108;CHAKMA LETTER KHAA;Lo;0;L;;;;;N;;;;;
-11109;CHAKMA LETTER GAA;Lo;0;L;;;;;N;;;;;
-1110A;CHAKMA LETTER GHAA;Lo;0;L;;;;;N;;;;;
-1110B;CHAKMA LETTER NGAA;Lo;0;L;;;;;N;;;;;
-1110C;CHAKMA LETTER CAA;Lo;0;L;;;;;N;;;;;
-1110D;CHAKMA LETTER CHAA;Lo;0;L;;;;;N;;;;;
-1110E;CHAKMA LETTER JAA;Lo;0;L;;;;;N;;;;;
-1110F;CHAKMA LETTER JHAA;Lo;0;L;;;;;N;;;;;
-11110;CHAKMA LETTER NYAA;Lo;0;L;;;;;N;;;;;
-11111;CHAKMA LETTER TTAA;Lo;0;L;;;;;N;;;;;
-11112;CHAKMA LETTER TTHAA;Lo;0;L;;;;;N;;;;;
-11113;CHAKMA LETTER DDAA;Lo;0;L;;;;;N;;;;;
-11114;CHAKMA LETTER DDHAA;Lo;0;L;;;;;N;;;;;
-11115;CHAKMA LETTER NNAA;Lo;0;L;;;;;N;;;;;
-11116;CHAKMA LETTER TAA;Lo;0;L;;;;;N;;;;;
-11117;CHAKMA LETTER THAA;Lo;0;L;;;;;N;;;;;
-11118;CHAKMA LETTER DAA;Lo;0;L;;;;;N;;;;;
-11119;CHAKMA LETTER DHAA;Lo;0;L;;;;;N;;;;;
-1111A;CHAKMA LETTER NAA;Lo;0;L;;;;;N;;;;;
-1111B;CHAKMA LETTER PAA;Lo;0;L;;;;;N;;;;;
-1111C;CHAKMA LETTER PHAA;Lo;0;L;;;;;N;;;;;
-1111D;CHAKMA LETTER BAA;Lo;0;L;;;;;N;;;;;
-1111E;CHAKMA LETTER BHAA;Lo;0;L;;;;;N;;;;;
-1111F;CHAKMA LETTER MAA;Lo;0;L;;;;;N;;;;;
-11120;CHAKMA LETTER YYAA;Lo;0;L;;;;;N;;;;;
-11121;CHAKMA LETTER YAA;Lo;0;L;;;;;N;;;;;
-11122;CHAKMA LETTER RAA;Lo;0;L;;;;;N;;;;;
-11123;CHAKMA LETTER LAA;Lo;0;L;;;;;N;;;;;
-11124;CHAKMA LETTER WAA;Lo;0;L;;;;;N;;;;;
-11125;CHAKMA LETTER SAA;Lo;0;L;;;;;N;;;;;
-11126;CHAKMA LETTER HAA;Lo;0;L;;;;;N;;;;;
-11127;CHAKMA VOWEL SIGN A;Mn;0;NSM;;;;;N;;;;;
-11128;CHAKMA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
-11129;CHAKMA VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
-1112A;CHAKMA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-1112B;CHAKMA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
-1112C;CHAKMA VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
-1112D;CHAKMA VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
-1112E;CHAKMA VOWEL SIGN O;Mn;0;NSM;11131 11127;;;;N;;;;;
-1112F;CHAKMA VOWEL SIGN AU;Mn;0;NSM;11132 11127;;;;N;;;;;
-11130;CHAKMA VOWEL SIGN OI;Mn;0;NSM;;;;;N;;;;;
-11131;CHAKMA O MARK;Mn;0;NSM;;;;;N;;;;;
-11132;CHAKMA AU MARK;Mn;0;NSM;;;;;N;;;;;
-11133;CHAKMA VIRAMA;Mn;9;NSM;;;;;N;;;;;
-11134;CHAKMA MAAYYAA;Mn;9;NSM;;;;;N;;;;;
-11136;CHAKMA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-11137;CHAKMA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-11138;CHAKMA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-11139;CHAKMA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-1113A;CHAKMA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-1113B;CHAKMA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-1113C;CHAKMA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-1113D;CHAKMA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-1113E;CHAKMA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-1113F;CHAKMA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-11140;CHAKMA SECTION MARK;Po;0;L;;;;;N;;;;;
-11141;CHAKMA DANDA;Po;0;L;;;;;N;;;;;
-11142;CHAKMA DOUBLE DANDA;Po;0;L;;;;;N;;;;;
-11143;CHAKMA QUESTION MARK;Po;0;L;;;;;N;;;;;
-11180;SHARADA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
-11181;SHARADA SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
-11182;SHARADA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
-11183;SHARADA LETTER A;Lo;0;L;;;;;N;;;;;
-11184;SHARADA LETTER AA;Lo;0;L;;;;;N;;;;;
-11185;SHARADA LETTER I;Lo;0;L;;;;;N;;;;;
-11186;SHARADA LETTER II;Lo;0;L;;;;;N;;;;;
-11187;SHARADA LETTER U;Lo;0;L;;;;;N;;;;;
-11188;SHARADA LETTER UU;Lo;0;L;;;;;N;;;;;
-11189;SHARADA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
-1118A;SHARADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
-1118B;SHARADA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
-1118C;SHARADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
-1118D;SHARADA LETTER E;Lo;0;L;;;;;N;;;;;
-1118E;SHARADA LETTER AI;Lo;0;L;;;;;N;;;;;
-1118F;SHARADA LETTER O;Lo;0;L;;;;;N;;;;;
-11190;SHARADA LETTER AU;Lo;0;L;;;;;N;;;;;
-11191;SHARADA LETTER KA;Lo;0;L;;;;;N;;;;;
-11192;SHARADA LETTER KHA;Lo;0;L;;;;;N;;;;;
-11193;SHARADA LETTER GA;Lo;0;L;;;;;N;;;;;
-11194;SHARADA LETTER GHA;Lo;0;L;;;;;N;;;;;
-11195;SHARADA LETTER NGA;Lo;0;L;;;;;N;;;;;
-11196;SHARADA LETTER CA;Lo;0;L;;;;;N;;;;;
-11197;SHARADA LETTER CHA;Lo;0;L;;;;;N;;;;;
-11198;SHARADA LETTER JA;Lo;0;L;;;;;N;;;;;
-11199;SHARADA LETTER JHA;Lo;0;L;;;;;N;;;;;
-1119A;SHARADA LETTER NYA;Lo;0;L;;;;;N;;;;;
-1119B;SHARADA LETTER TTA;Lo;0;L;;;;;N;;;;;
-1119C;SHARADA LETTER TTHA;Lo;0;L;;;;;N;;;;;
-1119D;SHARADA LETTER DDA;Lo;0;L;;;;;N;;;;;
-1119E;SHARADA LETTER DDHA;Lo;0;L;;;;;N;;;;;
-1119F;SHARADA LETTER NNA;Lo;0;L;;;;;N;;;;;
-111A0;SHARADA LETTER TA;Lo;0;L;;;;;N;;;;;
-111A1;SHARADA LETTER THA;Lo;0;L;;;;;N;;;;;
-111A2;SHARADA LETTER DA;Lo;0;L;;;;;N;;;;;
-111A3;SHARADA LETTER DHA;Lo;0;L;;;;;N;;;;;
-111A4;SHARADA LETTER NA;Lo;0;L;;;;;N;;;;;
-111A5;SHARADA LETTER PA;Lo;0;L;;;;;N;;;;;
-111A6;SHARADA LETTER PHA;Lo;0;L;;;;;N;;;;;
-111A7;SHARADA LETTER BA;Lo;0;L;;;;;N;;;;;
-111A8;SHARADA LETTER BHA;Lo;0;L;;;;;N;;;;;
-111A9;SHARADA LETTER MA;Lo;0;L;;;;;N;;;;;
-111AA;SHARADA LETTER YA;Lo;0;L;;;;;N;;;;;
-111AB;SHARADA LETTER RA;Lo;0;L;;;;;N;;;;;
-111AC;SHARADA LETTER LA;Lo;0;L;;;;;N;;;;;
-111AD;SHARADA LETTER LLA;Lo;0;L;;;;;N;;;;;
-111AE;SHARADA LETTER VA;Lo;0;L;;;;;N;;;;;
-111AF;SHARADA LETTER SHA;Lo;0;L;;;;;N;;;;;
-111B0;SHARADA LETTER SSA;Lo;0;L;;;;;N;;;;;
-111B1;SHARADA LETTER SA;Lo;0;L;;;;;N;;;;;
-111B2;SHARADA LETTER HA;Lo;0;L;;;;;N;;;;;
-111B3;SHARADA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-111B4;SHARADA VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
-111B5;SHARADA VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
-111B6;SHARADA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-111B7;SHARADA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
-111B8;SHARADA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
-111B9;SHARADA VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
-111BA;SHARADA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
-111BB;SHARADA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
-111BC;SHARADA VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
-111BD;SHARADA VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
-111BE;SHARADA VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
-111BF;SHARADA VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
-111C0;SHARADA SIGN VIRAMA;Mc;9;L;;;;;N;;;;;
-111C1;SHARADA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
-111C2;SHARADA SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
-111C3;SHARADA SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
-111C4;SHARADA OM;Lo;0;L;;;;;N;;;;;
-111C5;SHARADA DANDA;Po;0;L;;;;;N;;;;;
-111C6;SHARADA DOUBLE DANDA;Po;0;L;;;;;N;;;;;
-111C7;SHARADA ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
-111C8;SHARADA SEPARATOR;Po;0;L;;;;;N;;;;;
-111D0;SHARADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-111D1;SHARADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-111D2;SHARADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-111D3;SHARADA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-111D4;SHARADA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-111D5;SHARADA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-111D6;SHARADA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-111D7;SHARADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-111D8;SHARADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-111D9;SHARADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-11680;TAKRI LETTER A;Lo;0;L;;;;;N;;;;;
-11681;TAKRI LETTER AA;Lo;0;L;;;;;N;;;;;
-11682;TAKRI LETTER I;Lo;0;L;;;;;N;;;;;
-11683;TAKRI LETTER II;Lo;0;L;;;;;N;;;;;
-11684;TAKRI LETTER U;Lo;0;L;;;;;N;;;;;
-11685;TAKRI LETTER UU;Lo;0;L;;;;;N;;;;;
-11686;TAKRI LETTER E;Lo;0;L;;;;;N;;;;;
-11687;TAKRI LETTER AI;Lo;0;L;;;;;N;;;;;
-11688;TAKRI LETTER O;Lo;0;L;;;;;N;;;;;
-11689;TAKRI LETTER AU;Lo;0;L;;;;;N;;;;;
-1168A;TAKRI LETTER KA;Lo;0;L;;;;;N;;;;;
-1168B;TAKRI LETTER KHA;Lo;0;L;;;;;N;;;;;
-1168C;TAKRI LETTER GA;Lo;0;L;;;;;N;;;;;
-1168D;TAKRI LETTER GHA;Lo;0;L;;;;;N;;;;;
-1168E;TAKRI LETTER NGA;Lo;0;L;;;;;N;;;;;
-1168F;TAKRI LETTER CA;Lo;0;L;;;;;N;;;;;
-11690;TAKRI LETTER CHA;Lo;0;L;;;;;N;;;;;
-11691;TAKRI LETTER JA;Lo;0;L;;;;;N;;;;;
-11692;TAKRI LETTER JHA;Lo;0;L;;;;;N;;;;;
-11693;TAKRI LETTER NYA;Lo;0;L;;;;;N;;;;;
-11694;TAKRI LETTER TTA;Lo;0;L;;;;;N;;;;;
-11695;TAKRI LETTER TTHA;Lo;0;L;;;;;N;;;;;
-11696;TAKRI LETTER DDA;Lo;0;L;;;;;N;;;;;
-11697;TAKRI LETTER DDHA;Lo;0;L;;;;;N;;;;;
-11698;TAKRI LETTER NNA;Lo;0;L;;;;;N;;;;;
-11699;TAKRI LETTER TA;Lo;0;L;;;;;N;;;;;
-1169A;TAKRI LETTER THA;Lo;0;L;;;;;N;;;;;
-1169B;TAKRI LETTER DA;Lo;0;L;;;;;N;;;;;
-1169C;TAKRI LETTER DHA;Lo;0;L;;;;;N;;;;;
-1169D;TAKRI LETTER NA;Lo;0;L;;;;;N;;;;;
-1169E;TAKRI LETTER PA;Lo;0;L;;;;;N;;;;;
-1169F;TAKRI LETTER PHA;Lo;0;L;;;;;N;;;;;
-116A0;TAKRI LETTER BA;Lo;0;L;;;;;N;;;;;
-116A1;TAKRI LETTER BHA;Lo;0;L;;;;;N;;;;;
-116A2;TAKRI LETTER MA;Lo;0;L;;;;;N;;;;;
-116A3;TAKRI LETTER YA;Lo;0;L;;;;;N;;;;;
-116A4;TAKRI LETTER RA;Lo;0;L;;;;;N;;;;;
-116A5;TAKRI LETTER LA;Lo;0;L;;;;;N;;;;;
-116A6;TAKRI LETTER VA;Lo;0;L;;;;;N;;;;;
-116A7;TAKRI LETTER SHA;Lo;0;L;;;;;N;;;;;
-116A8;TAKRI LETTER SA;Lo;0;L;;;;;N;;;;;
-116A9;TAKRI LETTER HA;Lo;0;L;;;;;N;;;;;
-116AA;TAKRI LETTER RRA;Lo;0;L;;;;;N;;;;;
-116AB;TAKRI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
-116AC;TAKRI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
-116AD;TAKRI VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;;
-116AE;TAKRI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
-116AF;TAKRI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
-116B0;TAKRI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-116B1;TAKRI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
-116B2;TAKRI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
-116B3;TAKRI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
-116B4;TAKRI VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
-116B5;TAKRI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
-116B6;TAKRI SIGN VIRAMA;Mc;9;L;;;;;N;;;;;
-116B7;TAKRI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
-116C0;TAKRI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
-116C1;TAKRI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
-116C2;TAKRI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
-116C3;TAKRI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
-116C4;TAKRI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
-116C5;TAKRI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
-116C6;TAKRI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
-116C7;TAKRI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
-116C8;TAKRI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
-116C9;TAKRI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
-12000;CUNEIFORM SIGN A;Lo;0;L;;;;;N;;;;;
-12001;CUNEIFORM SIGN A TIMES A;Lo;0;L;;;;;N;;;;;
-12002;CUNEIFORM SIGN A TIMES BAD;Lo;0;L;;;;;N;;;;;
-12003;CUNEIFORM SIGN A TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
-12004;CUNEIFORM SIGN A TIMES HA;Lo;0;L;;;;;N;;;;;
-12005;CUNEIFORM SIGN A TIMES IGI;Lo;0;L;;;;;N;;;;;
-12006;CUNEIFORM SIGN A TIMES LAGAR GUNU;Lo;0;L;;;;;N;;;;;
-12007;CUNEIFORM SIGN A TIMES MUSH;Lo;0;L;;;;;N;;;;;
-12008;CUNEIFORM SIGN A TIMES SAG;Lo;0;L;;;;;N;;;;;
-12009;CUNEIFORM SIGN A2;Lo;0;L;;;;;N;;;;;
-1200A;CUNEIFORM SIGN AB;Lo;0;L;;;;;N;;;;;
-1200B;CUNEIFORM SIGN AB TIMES ASH2;Lo;0;L;;;;;N;;;;;
-1200C;CUNEIFORM SIGN AB TIMES DUN3 GUNU;Lo;0;L;;;;;N;;;;;
-1200D;CUNEIFORM SIGN AB TIMES GAL;Lo;0;L;;;;;N;;;;;
-1200E;CUNEIFORM SIGN AB TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
-1200F;CUNEIFORM SIGN AB TIMES HA;Lo;0;L;;;;;N;;;;;
-12010;CUNEIFORM SIGN AB TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
-12011;CUNEIFORM SIGN AB TIMES IMIN;Lo;0;L;;;;;N;;;;;
-12012;CUNEIFORM SIGN AB TIMES LAGAB;Lo;0;L;;;;;N;;;;;
-12013;CUNEIFORM SIGN AB TIMES SHESH;Lo;0;L;;;;;N;;;;;
-12014;CUNEIFORM SIGN AB TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;
-12015;CUNEIFORM SIGN AB GUNU;Lo;0;L;;;;;N;;;;;
-12016;CUNEIFORM SIGN AB2;Lo;0;L;;;;;N;;;;;
-12017;CUNEIFORM SIGN AB2 TIMES BALAG;Lo;0;L;;;;;N;;;;;
-12018;CUNEIFORM SIGN AB2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
-12019;CUNEIFORM SIGN AB2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
-1201A;CUNEIFORM SIGN AB2 TIMES SHA3;Lo;0;L;;;;;N;;;;;
-1201B;CUNEIFORM SIGN AB2 TIMES TAK4;Lo;0;L;;;;;N;;;;;
-1201C;CUNEIFORM SIGN AD;Lo;0;L;;;;;N;;;;;
-1201D;CUNEIFORM SIGN AK;Lo;0;L;;;;;N;;;;;
-1201E;CUNEIFORM SIGN AK TIMES ERIN2;Lo;0;L;;;;;N;;;;;
-1201F;CUNEIFORM SIGN AK TIMES SHITA PLUS GISH;Lo;0;L;;;;;N;;;;;
-12020;CUNEIFORM SIGN AL;Lo;0;L;;;;;N;;;;;
-12021;CUNEIFORM SIGN AL TIMES AL;Lo;0;L;;;;;N;;;;;
-12022;CUNEIFORM SIGN AL TIMES DIM2;Lo;0;L;;;;;N;;;;;
-12023;CUNEIFORM SIGN AL TIMES GISH;Lo;0;L;;;;;N;;;;;
-12024;CUNEIFORM SIGN AL TIMES HA;Lo;0;L;;;;;N;;;;;
-12025;CUNEIFORM SIGN AL TIMES KAD3;Lo;0;L;;;;;N;;;;;
-12026;CUNEIFORM SIGN AL TIMES KI;Lo;0;L;;;;;N;;;;;
-12027;CUNEIFORM SIGN AL TIMES SHE;Lo;0;L;;;;;N;;;;;
-12028;CUNEIFORM SIGN AL TIMES USH;Lo;0;L;;;;;N;;;;;
-12029;CUNEIFORM SIGN ALAN;Lo;0;L;;;;;N;;;;;
-1202A;CUNEIFORM SIGN ALEPH;Lo;0;L;;;;;N;;;;;
-1202B;CUNEIFORM SIGN AMAR;Lo;0;L;;;;;N;;;;;
-1202C;CUNEIFORM SIGN AMAR TIMES SHE;Lo;0;L;;;;;N;;;;;
-1202D;CUNEIFORM SIGN AN;Lo;0;L;;;;;N;;;;;
-1202E;CUNEIFORM SIGN AN OVER AN;Lo;0;L;;;;;N;;;;;
-1202F;CUNEIFORM SIGN AN THREE TIMES;Lo;0;L;;;;;N;;;;;
-12030;CUNEIFORM SIGN AN PLUS NAGA OPPOSING AN PLUS NAGA;Lo;0;L;;;;;N;;;;;
-12031;CUNEIFORM SIGN AN PLUS NAGA SQUARED;Lo;0;L;;;;;N;;;;;
-12032;CUNEIFORM SIGN ANSHE;Lo;0;L;;;;;N;;;;;
-12033;CUNEIFORM SIGN APIN;Lo;0;L;;;;;N;;;;;
-12034;CUNEIFORM SIGN ARAD;Lo;0;L;;;;;N;;;;;
-12035;CUNEIFORM SIGN ARAD TIMES KUR;Lo;0;L;;;;;N;;;;;
-12036;CUNEIFORM SIGN ARKAB;Lo;0;L;;;;;N;;;;;
-12037;CUNEIFORM SIGN ASAL2;Lo;0;L;;;;;N;;;;;
-12038;CUNEIFORM SIGN ASH;Lo;0;L;;;;;N;;;;;
-12039;CUNEIFORM SIGN ASH ZIDA TENU;Lo;0;L;;;;;N;;;;;
-1203A;CUNEIFORM SIGN ASH KABA TENU;Lo;0;L;;;;;N;;;;;
-1203B;CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP;Lo;0;L;;;;;N;;;;;
-1203C;CUNEIFORM SIGN ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;;
-1203D;CUNEIFORM SIGN ASH OVER ASH OVER ASH CROSSING ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;;
-1203E;CUNEIFORM SIGN ASH2;Lo;0;L;;;;;N;;;;;
-1203F;CUNEIFORM SIGN ASHGAB;Lo;0;L;;;;;N;;;;;
-12040;CUNEIFORM SIGN BA;Lo;0;L;;;;;N;;;;;
-12041;CUNEIFORM SIGN BAD;Lo;0;L;;;;;N;;;;;
-12042;CUNEIFORM SIGN BAG3;Lo;0;L;;;;;N;;;;;
-12043;CUNEIFORM SIGN BAHAR2;Lo;0;L;;;;;N;;;;;
-12044;CUNEIFORM SIGN BAL;Lo;0;L;;;;;N;;;;;
-12045;CUNEIFORM SIGN BAL OVER BAL;Lo;0;L;;;;;N;;;;;
-12046;CUNEIFORM SIGN BALAG;Lo;0;L;;;;;N;;;;;
-12047;CUNEIFORM SIGN BAR;Lo;0;L;;;;;N;;;;;
-12048;CUNEIFORM SIGN BARA2;Lo;0;L;;;;;N;;;;;
-12049;CUNEIFORM SIGN BI;Lo;0;L;;;;;N;;;;;
-1204A;CUNEIFORM SIGN BI TIMES A;Lo;0;L;;;;;N;;;;;
-1204B;CUNEIFORM SIGN BI TIMES GAR;Lo;0;L;;;;;N;;;;;
-1204C;CUNEIFORM SIGN BI TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
-1204D;CUNEIFORM SIGN BU;Lo;0;L;;;;;N;;;;;
-1204E;CUNEIFORM SIGN BU OVER BU AB;Lo;0;L;;;;;N;;;;;
-1204F;CUNEIFORM SIGN BU OVER BU UN;Lo;0;L;;;;;N;;;;;
-12050;CUNEIFORM SIGN BU CROSSING BU;Lo;0;L;;;;;N;;;;;
-12051;CUNEIFORM SIGN BULUG;Lo;0;L;;;;;N;;;;;
-12052;CUNEIFORM SIGN BULUG OVER BULUG;Lo;0;L;;;;;N;;;;;
-12053;CUNEIFORM SIGN BUR;Lo;0;L;;;;;N;;;;;
-12054;CUNEIFORM SIGN BUR2;Lo;0;L;;;;;N;;;;;
-12055;CUNEIFORM SIGN DA;Lo;0;L;;;;;N;;;;;
-12056;CUNEIFORM SIGN DAG;Lo;0;L;;;;;N;;;;;
-12057;CUNEIFORM SIGN DAG KISIM5 TIMES A PLUS MASH;Lo;0;L;;;;;N;;;;;
-12058;CUNEIFORM SIGN DAG KISIM5 TIMES AMAR;Lo;0;L;;;;;N;;;;;
-12059;CUNEIFORM SIGN DAG KISIM5 TIMES BALAG;Lo;0;L;;;;;N;;;;;
-1205A;CUNEIFORM SIGN DAG KISIM5 TIMES BI;Lo;0;L;;;;;N;;;;;
-1205B;CUNEIFORM SIGN DAG KISIM5 TIMES GA;Lo;0;L;;;;;N;;;;;
-1205C;CUNEIFORM SIGN DAG KISIM5 TIMES GA PLUS MASH;Lo;0;L;;;;;N;;;;;
-1205D;CUNEIFORM SIGN DAG KISIM5 TIMES GI;Lo;0;L;;;;;N;;;;;
-1205E;CUNEIFORM SIGN DAG KISIM5 TIMES GIR2;Lo;0;L;;;;;N;;;;;
-1205F;CUNEIFORM SIGN DAG KISIM5 TIMES GUD;Lo;0;L;;;;;N;;;;;
-12060;CUNEIFORM SIGN DAG KISIM5 TIMES HA;Lo;0;L;;;;;N;;;;;
-12061;CUNEIFORM SIGN DAG KISIM5 TIMES IR;Lo;0;L;;;;;N;;;;;
-12062;CUNEIFORM SIGN DAG KISIM5 TIMES IR PLUS LU;Lo;0;L;;;;;N;;;;;
-12063;CUNEIFORM SIGN DAG KISIM5 TIMES KAK;Lo;0;L;;;;;N;;;;;
-12064;CUNEIFORM SIGN DAG KISIM5 TIMES LA;Lo;0;L;;;;;N;;;;;
-12065;CUNEIFORM SIGN DAG KISIM5 TIMES LU;Lo;0;L;;;;;N;;;;;
-12066;CUNEIFORM SIGN DAG KISIM5 TIMES LU PLUS MASH2;Lo;0;L;;;;;N;;;;;
-12067;CUNEIFORM SIGN DAG KISIM5 TIMES LUM;Lo;0;L;;;;;N;;;;;
-12068;CUNEIFORM SIGN DAG KISIM5 TIMES NE;Lo;0;L;;;;;N;;;;;
-12069;CUNEIFORM SIGN DAG KISIM5 TIMES PAP PLUS PAP;Lo;0;L;;;;;N;;;;;
-1206A;CUNEIFORM SIGN DAG KISIM5 TIMES SI;Lo;0;L;;;;;N;;;;;
-1206B;CUNEIFORM SIGN DAG KISIM5 TIMES TAK4;Lo;0;L;;;;;N;;;;;
-1206C;CUNEIFORM SIGN DAG KISIM5 TIMES U2 PLUS GIR2;Lo;0;L;;;;;N;;;;;
-1206D;CUNEIFORM SIGN DAG KISIM5 TIMES USH;Lo;0;L;;;;;N;;;;;
-1206E;CUNEIFORM SIGN DAM;Lo;0;L;;;;;N;;;;;
-1206F;CUNEIFORM SIGN DAR;Lo;0;L;;;;;N;;;;;
-12070;CUNEIFORM SIGN DARA3;Lo;0;L;;;;;N;;;;;
-12071;CUNEIFORM SIGN DARA4;Lo;0;L;;;;;N;;;;;
-12072;CUNEIFORM SIGN DI;Lo;0;L;;;;;N;;;;;
-12073;CUNEIFORM SIGN DIB;Lo;0;L;;;;;N;;;;;
-12074;CUNEIFORM SIGN DIM;Lo;0;L;;;;;N;;;;;
-12075;CUNEIFORM SIGN DIM TIMES SHE;Lo;0;L;;;;;N;;;;;
-12076;CUNEIFORM SIGN DIM2;Lo;0;L;;;;;N;;;;;
-12077;CUNEIFORM SIGN DIN;Lo;0;L;;;;;N;;;;;
-12078;CUNEIFORM SIGN DIN KASKAL U GUNU DISH;Lo;0;L;;;;;N;;;;;
-12079;CUNEIFORM SIGN DISH;Lo;0;L;;;;;N;;;;;
-1207A;CUNEIFORM SIGN DU;Lo;0;L;;;;;N;;;;;
-1207B;CUNEIFORM SIGN DU OVER DU;Lo;0;L;;;;;N;;;;;
-1207C;CUNEIFORM SIGN DU GUNU;Lo;0;L;;;;;N;;;;;
-1207D;CUNEIFORM SIGN DU SHESHIG;Lo;0;L;;;;;N;;;;;
-1207E;CUNEIFORM SIGN DUB;Lo;0;L;;;;;N;;;;;
-1207F;CUNEIFORM SIGN DUB TIMES ESH2;Lo;0;L;;;;;N;;;;;
-12080;CUNEIFORM SIGN DUB2;Lo;0;L;;;;;N;;;;;
-12081;CUNEIFORM SIGN DUG;Lo;0;L;;;;;N;;;;;
-12082;CUNEIFORM SIGN DUGUD;Lo;0;L;;;;;N;;;;;
-12083;CUNEIFORM SIGN DUH;Lo;0;L;;;;;N;;;;;
-12084;CUNEIFORM SIGN DUN;Lo;0;L;;;;;N;;;;;
-12085;CUNEIFORM SIGN DUN3;Lo;0;L;;;;;N;;;;;
-12086;CUNEIFORM SIGN DUN3 GUNU;Lo;0;L;;;;;N;;;;;
-12087;CUNEIFORM SIGN DUN3 GUNU GUNU;Lo;0;L;;;;;N;;;;;
-12088;CUNEIFORM SIGN DUN4;Lo;0;L;;;;;N;;;;;
-12089;CUNEIFORM SIGN DUR2;Lo;0;L;;;;;N;;;;;
-1208A;CUNEIFORM SIGN E;Lo;0;L;;;;;N;;;;;
-1208B;CUNEIFORM SIGN E TIMES PAP;Lo;0;L;;;;;N;;;;;
-1208C;CUNEIFORM SIGN E OVER E NUN OVER NUN;Lo;0;L;;;;;N;;;;;
-1208D;CUNEIFORM SIGN E2;Lo;0;L;;;;;N;;;;;
-1208E;CUNEIFORM SIGN E2 TIMES A PLUS HA PLUS DA;Lo;0;L;;;;;N;;;;;
-1208F;CUNEIFORM SIGN E2 TIMES GAR;Lo;0;L;;;;;N;;;;;
-12090;CUNEIFORM SIGN E2 TIMES MI;Lo;0;L;;;;;N;;;;;
-12091;CUNEIFORM SIGN E2 TIMES SAL;Lo;0;L;;;;;N;;;;;
-12092;CUNEIFORM SIGN E2 TIMES SHE;Lo;0;L;;;;;N;;;;;
-12093;CUNEIFORM SIGN E2 TIMES U;Lo;0;L;;;;;N;;;;;
-12094;CUNEIFORM SIGN EDIN;Lo;0;L;;;;;N;;;;;
-12095;CUNEIFORM SIGN EGIR;Lo;0;L;;;;;N;;;;;
-12096;CUNEIFORM SIGN EL;Lo;0;L;;;;;N;;;;;
-12097;CUNEIFORM SIGN EN;Lo;0;L;;;;;N;;;;;
-12098;CUNEIFORM SIGN EN TIMES GAN2;Lo;0;L;;;;;N;;;;;
-12099;CUNEIFORM SIGN EN TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
-1209A;CUNEIFORM SIGN EN TIMES ME;Lo;0;L;;;;;N;;;;;
-1209B;CUNEIFORM SIGN EN CROSSING EN;Lo;0;L;;;;;N;;;;;
-1209C;CUNEIFORM SIGN EN OPPOSING EN;Lo;0;L;;;;;N;;;;;
-1209D;CUNEIFORM SIGN EN SQUARED;Lo;0;L;;;;;N;;;;;
-1209E;CUNEIFORM SIGN EREN;Lo;0;L;;;;;N;;;;;
-1209F;CUNEIFORM SIGN ERIN2;Lo;0;L;;;;;N;;;;;
-120A0;CUNEIFORM SIGN ESH2;Lo;0;L;;;;;N;;;;;
-120A1;CUNEIFORM SIGN EZEN;Lo;0;L;;;;;N;;;;;
-120A2;CUNEIFORM SIGN EZEN TIMES A;Lo;0;L;;;;;N;;;;;
-120A3;CUNEIFORM SIGN EZEN TIMES A PLUS LAL;Lo;0;L;;;;;N;;;;;
-120A4;CUNEIFORM SIGN EZEN TIMES A PLUS LAL TIMES LAL;Lo;0;L;;;;;N;;;;;
-120A5;CUNEIFORM SIGN EZEN TIMES AN;Lo;0;L;;;;;N;;;;;
-120A6;CUNEIFORM SIGN EZEN TIMES BAD;Lo;0;L;;;;;N;;;;;
-120A7;CUNEIFORM SIGN EZEN TIMES DUN3 GUNU;Lo;0;L;;;;;N;;;;;
-120A8;CUNEIFORM SIGN EZEN TIMES DUN3 GUNU GUNU;Lo;0;L;;;;;N;;;;;
-120A9;CUNEIFORM SIGN EZEN TIMES HA;Lo;0;L;;;;;N;;;;;
-120AA;CUNEIFORM SIGN EZEN TIMES HA GUNU;Lo;0;L;;;;;N;;;;;
-120AB;CUNEIFORM SIGN EZEN TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
-120AC;CUNEIFORM SIGN EZEN TIMES KASKAL;Lo;0;L;;;;;N;;;;;
-120AD;CUNEIFORM SIGN EZEN TIMES KASKAL SQUARED;Lo;0;L;;;;;N;;;;;
-120AE;CUNEIFORM SIGN EZEN TIMES KU3;Lo;0;L;;;;;N;;;;;
-120AF;CUNEIFORM SIGN EZEN TIMES LA;Lo;0;L;;;;;N;;;;;
-120B0;CUNEIFORM SIGN EZEN TIMES LAL TIMES LAL;Lo;0;L;;;;;N;;;;;
-120B1;CUNEIFORM SIGN EZEN TIMES LI;Lo;0;L;;;;;N;;;;;
-120B2;CUNEIFORM SIGN EZEN TIMES LU;Lo;0;L;;;;;N;;;;;
-120B3;CUNEIFORM SIGN EZEN TIMES U2;Lo;0;L;;;;;N;;;;;
-120B4;CUNEIFORM SIGN EZEN TIMES UD;Lo;0;L;;;;;N;;;;;
-120B5;CUNEIFORM SIGN GA;Lo;0;L;;;;;N;;;;;
-120B6;CUNEIFORM SIGN GA GUNU;Lo;0;L;;;;;N;;;;;
-120B7;CUNEIFORM SIGN GA2;Lo;0;L;;;;;N;;;;;
-120B8;CUNEIFORM SIGN GA2 TIMES A PLUS DA PLUS HA;Lo;0;L;;;;;N;;;;;
-120B9;CUNEIFORM SIGN GA2 TIMES A PLUS HA;Lo;0;L;;;;;N;;;;;
-120BA;CUNEIFORM SIGN GA2 TIMES A PLUS IGI;Lo;0;L;;;;;N;;;;;
-120BB;CUNEIFORM SIGN GA2 TIMES AB2 TENU PLUS TAB;Lo;0;L;;;;;N;;;;;
-120BC;CUNEIFORM SIGN GA2 TIMES AN;Lo;0;L;;;;;N;;;;;
-120BD;CUNEIFORM SIGN GA2 TIMES ASH;Lo;0;L;;;;;N;;;;;
-120BE;CUNEIFORM SIGN GA2 TIMES ASH2 PLUS GAL;Lo;0;L;;;;;N;;;;;
-120BF;CUNEIFORM SIGN GA2 TIMES BAD;Lo;0;L;;;;;N;;;;;
-120C0;CUNEIFORM SIGN GA2 TIMES BAR PLUS RA;Lo;0;L;;;;;N;;;;;
-120C1;CUNEIFORM SIGN GA2 TIMES BUR;Lo;0;L;;;;;N;;;;;
-120C2;CUNEIFORM SIGN GA2 TIMES BUR PLUS RA;Lo;0;L;;;;;N;;;;;
-120C3;CUNEIFORM SIGN GA2 TIMES DA;Lo;0;L;;;;;N;;;;;
-120C4;CUNEIFORM SIGN GA2 TIMES DI;Lo;0;L;;;;;N;;;;;
-120C5;CUNEIFORM SIGN GA2 TIMES DIM TIMES SHE;Lo;0;L;;;;;N;;;;;
-120C6;CUNEIFORM SIGN GA2 TIMES DUB;Lo;0;L;;;;;N;;;;;
-120C7;CUNEIFORM SIGN GA2 TIMES EL;Lo;0;L;;;;;N;;;;;
-120C8;CUNEIFORM SIGN GA2 TIMES EL PLUS LA;Lo;0;L;;;;;N;;;;;
-120C9;CUNEIFORM SIGN GA2 TIMES EN;Lo;0;L;;;;;N;;;;;
-120CA;CUNEIFORM SIGN GA2 TIMES EN TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
-120CB;CUNEIFORM SIGN GA2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
-120CC;CUNEIFORM SIGN GA2 TIMES GAR;Lo;0;L;;;;;N;;;;;
-120CD;CUNEIFORM SIGN GA2 TIMES GI;Lo;0;L;;;;;N;;;;;
-120CE;CUNEIFORM SIGN GA2 TIMES GI4;Lo;0;L;;;;;N;;;;;
-120CF;CUNEIFORM SIGN GA2 TIMES GI4 PLUS A;Lo;0;L;;;;;N;;;;;
-120D0;CUNEIFORM SIGN GA2 TIMES GIR2 PLUS SU;Lo;0;L;;;;;N;;;;;
-120D1;CUNEIFORM SIGN GA2 TIMES HA PLUS LU PLUS ESH2;Lo;0;L;;;;;N;;;;;
-120D2;CUNEIFORM SIGN GA2 TIMES HAL;Lo;0;L;;;;;N;;;;;
-120D3;CUNEIFORM SIGN GA2 TIMES HAL PLUS LA;Lo;0;L;;;;;N;;;;;
-120D4;CUNEIFORM SIGN GA2 TIMES HI PLUS LI;Lo;0;L;;;;;N;;;;;
-120D5;CUNEIFORM SIGN GA2 TIMES HUB2;Lo;0;L;;;;;N;;;;;
-120D6;CUNEIFORM SIGN GA2 TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
-120D7;CUNEIFORM SIGN GA2 TIMES ISH PLUS HU PLUS ASH;Lo;0;L;;;;;N;;;;;
-120D8;CUNEIFORM SIGN GA2 TIMES KAK;Lo;0;L;;;;;N;;;;;
-120D9;CUNEIFORM SIGN GA2 TIMES KASKAL;Lo;0;L;;;;;N;;;;;
-120DA;CUNEIFORM SIGN GA2 TIMES KID;Lo;0;L;;;;;N;;;;;
-120DB;CUNEIFORM SIGN GA2 TIMES KID PLUS LAL;Lo;0;L;;;;;N;;;;;
-120DC;CUNEIFORM SIGN GA2 TIMES KU3 PLUS AN;Lo;0;L;;;;;N;;;;;
-120DD;CUNEIFORM SIGN GA2 TIMES LA;Lo;0;L;;;;;N;;;;;
-120DE;CUNEIFORM SIGN GA2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
-120DF;CUNEIFORM SIGN GA2 TIMES MI;Lo;0;L;;;;;N;;;;;
-120E0;CUNEIFORM SIGN GA2 TIMES NUN;Lo;0;L;;;;;N;;;;;
-120E1;CUNEIFORM SIGN GA2 TIMES NUN OVER NUN;Lo;0;L;;;;;N;;;;;
-120E2;CUNEIFORM SIGN GA2 TIMES PA;Lo;0;L;;;;;N;;;;;
-120E3;CUNEIFORM SIGN GA2 TIMES SAL;Lo;0;L;;;;;N;;;;;
-120E4;CUNEIFORM SIGN GA2 TIMES SAR;Lo;0;L;;;;;N;;;;;
-120E5;CUNEIFORM SIGN GA2 TIMES SHE;Lo;0;L;;;;;N;;;;;
-120E6;CUNEIFORM SIGN GA2 TIMES SHE PLUS TUR;Lo;0;L;;;;;N;;;;;
-120E7;CUNEIFORM SIGN GA2 TIMES SHID;Lo;0;L;;;;;N;;;;;
-120E8;CUNEIFORM SIGN GA2 TIMES SUM;Lo;0;L;;;;;N;;;;;
-120E9;CUNEIFORM SIGN GA2 TIMES TAK4;Lo;0;L;;;;;N;;;;;
-120EA;CUNEIFORM SIGN GA2 TIMES U;Lo;0;L;;;;;N;;;;;
-120EB;CUNEIFORM SIGN GA2 TIMES UD;Lo;0;L;;;;;N;;;;;
-120EC;CUNEIFORM SIGN GA2 TIMES UD PLUS DU;Lo;0;L;;;;;N;;;;;
-120ED;CUNEIFORM SIGN GA2 OVER GA2;Lo;0;L;;;;;N;;;;;
-120EE;CUNEIFORM SIGN GABA;Lo;0;L;;;;;N;;;;;
-120EF;CUNEIFORM SIGN GABA CROSSING GABA;Lo;0;L;;;;;N;;;;;
-120F0;CUNEIFORM SIGN GAD;Lo;0;L;;;;;N;;;;;
-120F1;CUNEIFORM SIGN GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
-120F2;CUNEIFORM SIGN GAL;Lo;0;L;;;;;N;;;;;
-120F3;CUNEIFORM SIGN GAL GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
-120F4;CUNEIFORM SIGN GALAM;Lo;0;L;;;;;N;;;;;
-120F5;CUNEIFORM SIGN GAM;Lo;0;L;;;;;N;;;;;
-120F6;CUNEIFORM SIGN GAN;Lo;0;L;;;;;N;;;;;
-120F7;CUNEIFORM SIGN GAN2;Lo;0;L;;;;;N;;;;;
-120F8;CUNEIFORM SIGN GAN2 TENU;Lo;0;L;;;;;N;;;;;
-120F9;CUNEIFORM SIGN GAN2 OVER GAN2;Lo;0;L;;;;;N;;;;;
-120FA;CUNEIFORM SIGN GAN2 CROSSING GAN2;Lo;0;L;;;;;N;;;;;
-120FB;CUNEIFORM SIGN GAR;Lo;0;L;;;;;N;;;;;
-120FC;CUNEIFORM SIGN GAR3;Lo;0;L;;;;;N;;;;;
-120FD;CUNEIFORM SIGN GASHAN;Lo;0;L;;;;;N;;;;;
-120FE;CUNEIFORM SIGN GESHTIN;Lo;0;L;;;;;N;;;;;
-120FF;CUNEIFORM SIGN GESHTIN TIMES KUR;Lo;0;L;;;;;N;;;;;
-12100;CUNEIFORM SIGN GI;Lo;0;L;;;;;N;;;;;
-12101;CUNEIFORM SIGN GI TIMES E;Lo;0;L;;;;;N;;;;;
-12102;CUNEIFORM SIGN GI TIMES U;Lo;0;L;;;;;N;;;;;
-12103;CUNEIFORM SIGN GI CROSSING GI;Lo;0;L;;;;;N;;;;;
-12104;CUNEIFORM SIGN GI4;Lo;0;L;;;;;N;;;;;
-12105;CUNEIFORM SIGN GI4 OVER GI4;Lo;0;L;;;;;N;;;;;
-12106;CUNEIFORM SIGN GI4 CROSSING GI4;Lo;0;L;;;;;N;;;;;
-12107;CUNEIFORM SIGN GIDIM;Lo;0;L;;;;;N;;;;;
-12108;CUNEIFORM SIGN GIR2;Lo;0;L;;;;;N;;;;;
-12109;CUNEIFORM SIGN GIR2 GUNU;Lo;0;L;;;;;N;;;;;
-1210A;CUNEIFORM SIGN GIR3;Lo;0;L;;;;;N;;;;;
-1210B;CUNEIFORM SIGN GIR3 TIMES A PLUS IGI;Lo;0;L;;;;;N;;;;;
-1210C;CUNEIFORM SIGN GIR3 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
-1210D;CUNEIFORM SIGN GIR3 TIMES IGI;Lo;0;L;;;;;N;;;;;
-1210E;CUNEIFORM SIGN GIR3 TIMES LU PLUS IGI;Lo;0;L;;;;;N;;;;;
-1210F;CUNEIFORM SIGN GIR3 TIMES PA;Lo;0;L;;;;;N;;;;;
-12110;CUNEIFORM SIGN GISAL;Lo;0;L;;;;;N;;;;;
-12111;CUNEIFORM SIGN GISH;Lo;0;L;;;;;N;;;;;
-12112;CUNEIFORM SIGN GISH CROSSING GISH;Lo;0;L;;;;;N;;;;;
-12113;CUNEIFORM SIGN GISH TIMES BAD;Lo;0;L;;;;;N;;;;;
-12114;CUNEIFORM SIGN GISH TIMES TAK4;Lo;0;L;;;;;N;;;;;
-12115;CUNEIFORM SIGN GISH TENU;Lo;0;L;;;;;N;;;;;
-12116;CUNEIFORM SIGN GU;Lo;0;L;;;;;N;;;;;
-12117;CUNEIFORM SIGN GU CROSSING GU;Lo;0;L;;;;;N;;;;;
-12118;CUNEIFORM SIGN GU2;Lo;0;L;;;;;N;;;;;
-12119;CUNEIFORM SIGN GU2 TIMES KAK;Lo;0;L;;;;;N;;;;;
-1211A;CUNEIFORM SIGN GU2 TIMES KAK TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
-1211B;CUNEIFORM SIGN GU2 TIMES NUN;Lo;0;L;;;;;N;;;;;
-1211C;CUNEIFORM SIGN GU2 TIMES SAL PLUS TUG2;Lo;0;L;;;;;N;;;;;
-1211D;CUNEIFORM SIGN GU2 GUNU;Lo;0;L;;;;;N;;;;;
-1211E;CUNEIFORM SIGN GUD;Lo;0;L;;;;;N;;;;;
-1211F;CUNEIFORM SIGN GUD TIMES A PLUS KUR;Lo;0;L;;;;;N;;;;;
-12120;CUNEIFORM SIGN GUD TIMES KUR;Lo;0;L;;;;;N;;;;;
-12121;CUNEIFORM SIGN GUD OVER GUD LUGAL;Lo;0;L;;;;;N;;;;;
-12122;CUNEIFORM SIGN GUL;Lo;0;L;;;;;N;;;;;
-12123;CUNEIFORM SIGN GUM;Lo;0;L;;;;;N;;;;;
-12124;CUNEIFORM SIGN GUM TIMES SHE;Lo;0;L;;;;;N;;;;;
-12125;CUNEIFORM SIGN GUR;Lo;0;L;;;;;N;;;;;
-12126;CUNEIFORM SIGN GUR7;Lo;0;L;;;;;N;;;;;
-12127;CUNEIFORM SIGN GURUN;Lo;0;L;;;;;N;;;;;
-12128;CUNEIFORM SIGN GURUSH;Lo;0;L;;;;;N;;;;;
-12129;CUNEIFORM SIGN HA;Lo;0;L;;;;;N;;;;;
-1212A;CUNEIFORM SIGN HA TENU;Lo;0;L;;;;;N;;;;;
-1212B;CUNEIFORM SIGN HA GUNU;Lo;0;L;;;;;N;;;;;
-1212C;CUNEIFORM SIGN HAL;Lo;0;L;;;;;N;;;;;
-1212D;CUNEIFORM SIGN HI;Lo;0;L;;;;;N;;;;;
-1212E;CUNEIFORM SIGN HI TIMES ASH;Lo;0;L;;;;;N;;;;;
-1212F;CUNEIFORM SIGN HI TIMES ASH2;Lo;0;L;;;;;N;;;;;
-12130;CUNEIFORM SIGN HI TIMES BAD;Lo;0;L;;;;;N;;;;;
-12131;CUNEIFORM SIGN HI TIMES DISH;Lo;0;L;;;;;N;;;;;
-12132;CUNEIFORM SIGN HI TIMES GAD;Lo;0;L;;;;;N;;;;;
-12133;CUNEIFORM SIGN HI TIMES KIN;Lo;0;L;;;;;N;;;;;
-12134;CUNEIFORM SIGN HI TIMES NUN;Lo;0;L;;;;;N;;;;;
-12135;CUNEIFORM SIGN HI TIMES SHE;Lo;0;L;;;;;N;;;;;
-12136;CUNEIFORM SIGN HI TIMES U;Lo;0;L;;;;;N;;;;;
-12137;CUNEIFORM SIGN HU;Lo;0;L;;;;;N;;;;;
-12138;CUNEIFORM SIGN HUB2;Lo;0;L;;;;;N;;;;;
-12139;CUNEIFORM SIGN HUB2 TIMES AN;Lo;0;L;;;;;N;;;;;
-1213A;CUNEIFORM SIGN HUB2 TIMES HAL;Lo;0;L;;;;;N;;;;;
-1213B;CUNEIFORM SIGN HUB2 TIMES KASKAL;Lo;0;L;;;;;N;;;;;
-1213C;CUNEIFORM SIGN HUB2 TIMES LISH;Lo;0;L;;;;;N;;;;;
-1213D;CUNEIFORM SIGN HUB2 TIMES UD;Lo;0;L;;;;;N;;;;;
-1213E;CUNEIFORM SIGN HUL2;Lo;0;L;;;;;N;;;;;
-1213F;CUNEIFORM SIGN I;Lo;0;L;;;;;N;;;;;
-12140;CUNEIFORM SIGN I A;Lo;0;L;;;;;N;;;;;
-12141;CUNEIFORM SIGN IB;Lo;0;L;;;;;N;;;;;
-12142;CUNEIFORM SIGN IDIM;Lo;0;L;;;;;N;;;;;
-12143;CUNEIFORM SIGN IDIM OVER IDIM BUR;Lo;0;L;;;;;N;;;;;
-12144;CUNEIFORM SIGN IDIM OVER IDIM SQUARED;Lo;0;L;;;;;N;;;;;
-12145;CUNEIFORM SIGN IG;Lo;0;L;;;;;N;;;;;
-12146;CUNEIFORM SIGN IGI;Lo;0;L;;;;;N;;;;;
-12147;CUNEIFORM SIGN IGI DIB;Lo;0;L;;;;;N;;;;;
-12148;CUNEIFORM SIGN IGI RI;Lo;0;L;;;;;N;;;;;
-12149;CUNEIFORM SIGN IGI OVER IGI SHIR OVER SHIR UD OVER UD;Lo;0;L;;;;;N;;;;;
-1214A;CUNEIFORM SIGN IGI GUNU;Lo;0;L;;;;;N;;;;;
-1214B;CUNEIFORM SIGN IL;Lo;0;L;;;;;N;;;;;
-1214C;CUNEIFORM SIGN IL TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
-1214D;CUNEIFORM SIGN IL2;Lo;0;L;;;;;N;;;;;
-1214E;CUNEIFORM SIGN IM;Lo;0;L;;;;;N;;;;;
-1214F;CUNEIFORM SIGN IM TIMES TAK4;Lo;0;L;;;;;N;;;;;
-12150;CUNEIFORM SIGN IM CROSSING IM;Lo;0;L;;;;;N;;;;;
-12151;CUNEIFORM SIGN IM OPPOSING IM;Lo;0;L;;;;;N;;;;;
-12152;CUNEIFORM SIGN IM SQUARED;Lo;0;L;;;;;N;;;;;
-12153;CUNEIFORM SIGN IMIN;Lo;0;L;;;;;N;;;;;
-12154;CUNEIFORM SIGN IN;Lo;0;L;;;;;N;;;;;
-12155;CUNEIFORM SIGN IR;Lo;0;L;;;;;N;;;;;
-12156;CUNEIFORM SIGN ISH;Lo;0;L;;;;;N;;;;;
-12157;CUNEIFORM SIGN KA;Lo;0;L;;;;;N;;;;;
-12158;CUNEIFORM SIGN KA TIMES A;Lo;0;L;;;;;N;;;;;
-12159;CUNEIFORM SIGN KA TIMES AD;Lo;0;L;;;;;N;;;;;
-1215A;CUNEIFORM SIGN KA TIMES AD PLUS KU3;Lo;0;L;;;;;N;;;;;
-1215B;CUNEIFORM SIGN KA TIMES ASH2;Lo;0;L;;;;;N;;;;;
-1215C;CUNEIFORM SIGN KA TIMES BAD;Lo;0;L;;;;;N;;;;;
-1215D;CUNEIFORM SIGN KA TIMES BALAG;Lo;0;L;;;;;N;;;;;
-1215E;CUNEIFORM SIGN KA TIMES BAR;Lo;0;L;;;;;N;;;;;
-1215F;CUNEIFORM SIGN KA TIMES BI;Lo;0;L;;;;;N;;;;;
-12160;CUNEIFORM SIGN KA TIMES ERIN2;Lo;0;L;;;;;N;;;;;
-12161;CUNEIFORM SIGN KA TIMES ESH2;Lo;0;L;;;;;N;;;;;
-12162;CUNEIFORM SIGN KA TIMES GA;Lo;0;L;;;;;N;;;;;
-12163;CUNEIFORM SIGN KA TIMES GAL;Lo;0;L;;;;;N;;;;;
-12164;CUNEIFORM SIGN KA TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
-12165;CUNEIFORM SIGN KA TIMES GAR;Lo;0;L;;;;;N;;;;;
-12166;CUNEIFORM SIGN KA TIMES GAR PLUS SHA3 PLUS A;Lo;0;L;;;;;N;;;;;
-12167;CUNEIFORM SIGN KA TIMES GI;Lo;0;L;;;;;N;;;;;
-12168;CUNEIFORM SIGN KA TIMES GIR2;Lo;0;L;;;;;N;;;;;
-12169;CUNEIFORM SIGN KA TIMES GISH PLUS SAR;Lo;0;L;;;;;N;;;;;
-1216A;CUNEIFORM SIGN KA TIMES GISH CROSSING GISH;Lo;0;L;;;;;N;;;;;
-1216B;CUNEIFORM SIGN KA TIMES GU;Lo;0;L;;;;;N;;;;;
-1216C;CUNEIFORM SIGN KA TIMES GUR7;Lo;0;L;;;;;N;;;;;
-1216D;CUNEIFORM SIGN KA TIMES IGI;Lo;0;L;;;;;N;;;;;
-1216E;CUNEIFORM SIGN KA TIMES IM;Lo;0;L;;;;;N;;;;;
-1216F;CUNEIFORM SIGN KA TIMES KAK;Lo;0;L;;;;;N;;;;;
-12170;CUNEIFORM SIGN KA TIMES KI;Lo;0;L;;;;;N;;;;;
-12171;CUNEIFORM SIGN KA TIMES KID;Lo;0;L;;;;;N;;;;;
-12172;CUNEIFORM SIGN KA TIMES LI;Lo;0;L;;;;;N;;;;;
-12173;CUNEIFORM SIGN KA TIMES LU;Lo;0;L;;;;;N;;;;;
-12174;CUNEIFORM SIGN KA TIMES ME;Lo;0;L;;;;;N;;;;;
-12175;CUNEIFORM SIGN KA TIMES ME PLUS DU;Lo;0;L;;;;;N;;;;;
-12176;CUNEIFORM SIGN KA TIMES ME PLUS GI;Lo;0;L;;;;;N;;;;;
-12177;CUNEIFORM SIGN KA TIMES ME PLUS TE;Lo;0;L;;;;;N;;;;;
-12178;CUNEIFORM SIGN KA TIMES MI;Lo;0;L;;;;;N;;;;;
-12179;CUNEIFORM SIGN KA TIMES MI PLUS NUNUZ;Lo;0;L;;;;;N;;;;;
-1217A;CUNEIFORM SIGN KA TIMES NE;Lo;0;L;;;;;N;;;;;
-1217B;CUNEIFORM SIGN KA TIMES NUN;Lo;0;L;;;;;N;;;;;
-1217C;CUNEIFORM SIGN KA TIMES PI;Lo;0;L;;;;;N;;;;;
-1217D;CUNEIFORM SIGN KA TIMES RU;Lo;0;L;;;;;N;;;;;
-1217E;CUNEIFORM SIGN KA TIMES SA;Lo;0;L;;;;;N;;;;;
-1217F;CUNEIFORM SIGN KA TIMES SAR;Lo;0;L;;;;;N;;;;;
-12180;CUNEIFORM SIGN KA TIMES SHA;Lo;0;L;;;;;N;;;;;
-12181;CUNEIFORM SIGN KA TIMES SHE;Lo;0;L;;;;;N;;;;;
-12182;CUNEIFORM SIGN KA TIMES SHID;Lo;0;L;;;;;N;;;;;
-12183;CUNEIFORM SIGN KA TIMES SHU;Lo;0;L;;;;;N;;;;;
-12184;CUNEIFORM SIGN KA TIMES SIG;Lo;0;L;;;;;N;;;;;
-12185;CUNEIFORM SIGN KA TIMES SUHUR;Lo;0;L;;;;;N;;;;;
-12186;CUNEIFORM SIGN KA TIMES TAR;Lo;0;L;;;;;N;;;;;
-12187;CUNEIFORM SIGN KA TIMES U;Lo;0;L;;;;;N;;;;;
-12188;CUNEIFORM SIGN KA TIMES U2;Lo;0;L;;;;;N;;;;;
-12189;CUNEIFORM SIGN KA TIMES UD;Lo;0;L;;;;;N;;;;;
-1218A;CUNEIFORM SIGN KA TIMES UMUM TIMES PA;Lo;0;L;;;;;N;;;;;
-1218B;CUNEIFORM SIGN KA TIMES USH;Lo;0;L;;;;;N;;;;;
-1218C;CUNEIFORM SIGN KA TIMES ZI;Lo;0;L;;;;;N;;;;;
-1218D;CUNEIFORM SIGN KA2;Lo;0;L;;;;;N;;;;;
-1218E;CUNEIFORM SIGN KA2 CROSSING KA2;Lo;0;L;;;;;N;;;;;
-1218F;CUNEIFORM SIGN KAB;Lo;0;L;;;;;N;;;;;
-12190;CUNEIFORM SIGN KAD2;Lo;0;L;;;;;N;;;;;
-12191;CUNEIFORM SIGN KAD3;Lo;0;L;;;;;N;;;;;
-12192;CUNEIFORM SIGN KAD4;Lo;0;L;;;;;N;;;;;
-12193;CUNEIFORM SIGN KAD5;Lo;0;L;;;;;N;;;;;
-12194;CUNEIFORM SIGN KAD5 OVER KAD5;Lo;0;L;;;;;N;;;;;
-12195;CUNEIFORM SIGN KAK;Lo;0;L;;;;;N;;;;;
-12196;CUNEIFORM SIGN KAK TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
-12197;CUNEIFORM SIGN KAL;Lo;0;L;;;;;N;;;;;
-12198;CUNEIFORM SIGN KAL TIMES BAD;Lo;0;L;;;;;N;;;;;
-12199;CUNEIFORM SIGN KAL CROSSING KAL;Lo;0;L;;;;;N;;;;;
-1219A;CUNEIFORM SIGN KAM2;Lo;0;L;;;;;N;;;;;
-1219B;CUNEIFORM SIGN KAM4;Lo;0;L;;;;;N;;;;;
-1219C;CUNEIFORM SIGN KASKAL;Lo;0;L;;;;;N;;;;;
-1219D;CUNEIFORM SIGN KASKAL LAGAB TIMES U OVER LAGAB TIMES U;Lo;0;L;;;;;N;;;;;
-1219E;CUNEIFORM SIGN KASKAL OVER KASKAL LAGAB TIMES U OVER LAGAB TIMES U;Lo;0;L;;;;;N;;;;;
-1219F;CUNEIFORM SIGN KESH2;Lo;0;L;;;;;N;;;;;
-121A0;CUNEIFORM SIGN KI;Lo;0;L;;;;;N;;;;;
-121A1;CUNEIFORM SIGN KI TIMES BAD;Lo;0;L;;;;;N;;;;;
-121A2;CUNEIFORM SIGN KI TIMES U;Lo;0;L;;;;;N;;;;;
-121A3;CUNEIFORM SIGN KI TIMES UD;Lo;0;L;;;;;N;;;;;
-121A4;CUNEIFORM SIGN KID;Lo;0;L;;;;;N;;;;;
-121A5;CUNEIFORM SIGN KIN;Lo;0;L;;;;;N;;;;;
-121A6;CUNEIFORM SIGN KISAL;Lo;0;L;;;;;N;;;;;
-121A7;CUNEIFORM SIGN KISH;Lo;0;L;;;;;N;;;;;
-121A8;CUNEIFORM SIGN KISIM5;Lo;0;L;;;;;N;;;;;
-121A9;CUNEIFORM SIGN KISIM5 OVER KISIM5;Lo;0;L;;;;;N;;;;;
-121AA;CUNEIFORM SIGN KU;Lo;0;L;;;;;N;;;;;
-121AB;CUNEIFORM SIGN KU OVER HI TIMES ASH2 KU OVER HI TIMES ASH2;Lo;0;L;;;;;N;;;;;
-121AC;CUNEIFORM SIGN KU3;Lo;0;L;;;;;N;;;;;
-121AD;CUNEIFORM SIGN KU4;Lo;0;L;;;;;N;;;;;
-121AE;CUNEIFORM SIGN KU4 VARIANT FORM;Lo;0;L;;;;;N;;;;;
-121AF;CUNEIFORM SIGN KU7;Lo;0;L;;;;;N;;;;;
-121B0;CUNEIFORM SIGN KUL;Lo;0;L;;;;;N;;;;;
-121B1;CUNEIFORM SIGN KUL GUNU;Lo;0;L;;;;;N;;;;;
-121B2;CUNEIFORM SIGN KUN;Lo;0;L;;;;;N;;;;;
-121B3;CUNEIFORM SIGN KUR;Lo;0;L;;;;;N;;;;;
-121B4;CUNEIFORM SIGN KUR OPPOSING KUR;Lo;0;L;;;;;N;;;;;
-121B5;CUNEIFORM SIGN KUSHU2;Lo;0;L;;;;;N;;;;;
-121B6;CUNEIFORM SIGN KWU318;Lo;0;L;;;;;N;;;;;
-121B7;CUNEIFORM SIGN LA;Lo;0;L;;;;;N;;;;;
-121B8;CUNEIFORM SIGN LAGAB;Lo;0;L;;;;;N;;;;;
-121B9;CUNEIFORM SIGN LAGAB TIMES A;Lo;0;L;;;;;N;;;;;
-121BA;CUNEIFORM SIGN LAGAB TIMES A PLUS DA PLUS HA;Lo;0;L;;;;;N;;;;;
-121BB;CUNEIFORM SIGN LAGAB TIMES A PLUS GAR;Lo;0;L;;;;;N;;;;;
-121BC;CUNEIFORM SIGN LAGAB TIMES A PLUS LAL;Lo;0;L;;;;;N;;;;;
-121BD;CUNEIFORM SIGN LAGAB TIMES AL;Lo;0;L;;;;;N;;;;;
-121BE;CUNEIFORM SIGN LAGAB TIMES AN;Lo;0;L;;;;;N;;;;;
-121BF;CUNEIFORM SIGN LAGAB TIMES ASH ZIDA TENU;Lo;0;L;;;;;N;;;;;
-121C0;CUNEIFORM SIGN LAGAB TIMES BAD;Lo;0;L;;;;;N;;;;;
-121C1;CUNEIFORM SIGN LAGAB TIMES BI;Lo;0;L;;;;;N;;;;;
-121C2;CUNEIFORM SIGN LAGAB TIMES DAR;Lo;0;L;;;;;N;;;;;
-121C3;CUNEIFORM SIGN LAGAB TIMES EN;Lo;0;L;;;;;N;;;;;
-121C4;CUNEIFORM SIGN LAGAB TIMES GA;Lo;0;L;;;;;N;;;;;
-121C5;CUNEIFORM SIGN LAGAB TIMES GAR;Lo;0;L;;;;;N;;;;;
-121C6;CUNEIFORM SIGN LAGAB TIMES GUD;Lo;0;L;;;;;N;;;;;
-121C7;CUNEIFORM SIGN LAGAB TIMES GUD PLUS GUD;Lo;0;L;;;;;N;;;;;
-121C8;CUNEIFORM SIGN LAGAB TIMES HA;Lo;0;L;;;;;N;;;;;
-121C9;CUNEIFORM SIGN LAGAB TIMES HAL;Lo;0;L;;;;;N;;;;;
-121CA;CUNEIFORM SIGN LAGAB TIMES HI TIMES NUN;Lo;0;L;;;;;N;;;;;
-121CB;CUNEIFORM SIGN LAGAB TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
-121CC;CUNEIFORM SIGN LAGAB TIMES IM;Lo;0;L;;;;;N;;;;;
-121CD;CUNEIFORM SIGN LAGAB TIMES IM PLUS HA;Lo;0;L;;;;;N;;;;;
-121CE;CUNEIFORM SIGN LAGAB TIMES IM PLUS LU;Lo;0;L;;;;;N;;;;;
-121CF;CUNEIFORM SIGN LAGAB TIMES KI;Lo;0;L;;;;;N;;;;;
-121D0;CUNEIFORM SIGN LAGAB TIMES KIN;Lo;0;L;;;;;N;;;;;
-121D1;CUNEIFORM SIGN LAGAB TIMES KU3;Lo;0;L;;;;;N;;;;;
-121D2;CUNEIFORM SIGN LAGAB TIMES KUL;Lo;0;L;;;;;N;;;;;
-121D3;CUNEIFORM SIGN LAGAB TIMES KUL PLUS HI PLUS A;Lo;0;L;;;;;N;;;;;
-121D4;CUNEIFORM SIGN LAGAB TIMES LAGAB;Lo;0;L;;;;;N;;;;;
-121D5;CUNEIFORM SIGN LAGAB TIMES LISH;Lo;0;L;;;;;N;;;;;
-121D6;CUNEIFORM SIGN LAGAB TIMES LU;Lo;0;L;;;;;N;;;;;
-121D7;CUNEIFORM SIGN LAGAB TIMES LUL;Lo;0;L;;;;;N;;;;;
-121D8;CUNEIFORM SIGN LAGAB TIMES ME;Lo;0;L;;;;;N;;;;;
-121D9;CUNEIFORM SIGN LAGAB TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
-121DA;CUNEIFORM SIGN LAGAB TIMES MUSH;Lo;0;L;;;;;N;;;;;
-121DB;CUNEIFORM SIGN LAGAB TIMES NE;Lo;0;L;;;;;N;;;;;
-121DC;CUNEIFORM SIGN LAGAB TIMES SHE PLUS SUM;Lo;0;L;;;;;N;;;;;
-121DD;CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH PLUS ERIN2;Lo;0;L;;;;;N;;;;;
-121DE;CUNEIFORM SIGN LAGAB TIMES SHITA PLUS GISH TENU;Lo;0;L;;;;;N;;;;;
-121DF;CUNEIFORM SIGN LAGAB TIMES SHU2;Lo;0;L;;;;;N;;;;;
-121E0;CUNEIFORM SIGN LAGAB TIMES SHU2 PLUS SHU2;Lo;0;L;;;;;N;;;;;
-121E1;CUNEIFORM SIGN LAGAB TIMES SUM;Lo;0;L;;;;;N;;;;;
-121E2;CUNEIFORM SIGN LAGAB TIMES TAG;Lo;0;L;;;;;N;;;;;
-121E3;CUNEIFORM SIGN LAGAB TIMES TAK4;Lo;0;L;;;;;N;;;;;
-121E4;CUNEIFORM SIGN LAGAB TIMES TE PLUS A PLUS SU PLUS NA;Lo;0;L;;;;;N;;;;;
-121E5;CUNEIFORM SIGN LAGAB TIMES U;Lo;0;L;;;;;N;;;;;
-121E6;CUNEIFORM SIGN LAGAB TIMES U PLUS A;Lo;0;L;;;;;N;;;;;
-121E7;CUNEIFORM SIGN LAGAB TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;
-121E8;CUNEIFORM SIGN LAGAB TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;
-121E9;CUNEIFORM SIGN LAGAB TIMES UD;Lo;0;L;;;;;N;;;;;
-121EA;CUNEIFORM SIGN LAGAB TIMES USH;Lo;0;L;;;;;N;;;;;
-121EB;CUNEIFORM SIGN LAGAB SQUARED;Lo;0;L;;;;;N;;;;;
-121EC;CUNEIFORM SIGN LAGAR;Lo;0;L;;;;;N;;;;;
-121ED;CUNEIFORM SIGN LAGAR TIMES SHE;Lo;0;L;;;;;N;;;;;
-121EE;CUNEIFORM SIGN LAGAR TIMES SHE PLUS SUM;Lo;0;L;;;;;N;;;;;
-121EF;CUNEIFORM SIGN LAGAR GUNU;Lo;0;L;;;;;N;;;;;
-121F0;CUNEIFORM SIGN LAGAR GUNU OVER LAGAR GUNU SHE;Lo;0;L;;;;;N;;;;;
-121F1;CUNEIFORM SIGN LAHSHU;Lo;0;L;;;;;N;;;;;
-121F2;CUNEIFORM SIGN LAL;Lo;0;L;;;;;N;;;;;
-121F3;CUNEIFORM SIGN LAL TIMES LAL;Lo;0;L;;;;;N;;;;;
-121F4;CUNEIFORM SIGN LAM;Lo;0;L;;;;;N;;;;;
-121F5;CUNEIFORM SIGN LAM TIMES KUR;Lo;0;L;;;;;N;;;;;
-121F6;CUNEIFORM SIGN LAM TIMES KUR PLUS RU;Lo;0;L;;;;;N;;;;;
-121F7;CUNEIFORM SIGN LI;Lo;0;L;;;;;N;;;;;
-121F8;CUNEIFORM SIGN LIL;Lo;0;L;;;;;N;;;;;
-121F9;CUNEIFORM SIGN LIMMU2;Lo;0;L;;;;;N;;;;;
-121FA;CUNEIFORM SIGN LISH;Lo;0;L;;;;;N;;;;;
-121FB;CUNEIFORM SIGN LU;Lo;0;L;;;;;N;;;;;
-121FC;CUNEIFORM SIGN LU TIMES BAD;Lo;0;L;;;;;N;;;;;
-121FD;CUNEIFORM SIGN LU2;Lo;0;L;;;;;N;;;;;
-121FE;CUNEIFORM SIGN LU2 TIMES AL;Lo;0;L;;;;;N;;;;;
-121FF;CUNEIFORM SIGN LU2 TIMES BAD;Lo;0;L;;;;;N;;;;;
-12200;CUNEIFORM SIGN LU2 TIMES ESH2;Lo;0;L;;;;;N;;;;;
-12201;CUNEIFORM SIGN LU2 TIMES ESH2 TENU;Lo;0;L;;;;;N;;;;;
-12202;CUNEIFORM SIGN LU2 TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
-12203;CUNEIFORM SIGN LU2 TIMES HI TIMES BAD;Lo;0;L;;;;;N;;;;;
-12204;CUNEIFORM SIGN LU2 TIMES IM;Lo;0;L;;;;;N;;;;;
-12205;CUNEIFORM SIGN LU2 TIMES KAD2;Lo;0;L;;;;;N;;;;;
-12206;CUNEIFORM SIGN LU2 TIMES KAD3;Lo;0;L;;;;;N;;;;;
-12207;CUNEIFORM SIGN LU2 TIMES KAD3 PLUS ASH;Lo;0;L;;;;;N;;;;;
-12208;CUNEIFORM SIGN LU2 TIMES KI;Lo;0;L;;;;;N;;;;;
-12209;CUNEIFORM SIGN LU2 TIMES LA PLUS ASH;Lo;0;L;;;;;N;;;;;
-1220A;CUNEIFORM SIGN LU2 TIMES LAGAB;Lo;0;L;;;;;N;;;;;
-1220B;CUNEIFORM SIGN LU2 TIMES ME PLUS EN;Lo;0;L;;;;;N;;;;;
-1220C;CUNEIFORM SIGN LU2 TIMES NE;Lo;0;L;;;;;N;;;;;
-1220D;CUNEIFORM SIGN LU2 TIMES NU;Lo;0;L;;;;;N;;;;;
-1220E;CUNEIFORM SIGN LU2 TIMES SI PLUS ASH;Lo;0;L;;;;;N;;;;;
-1220F;CUNEIFORM SIGN LU2 TIMES SIK2 PLUS BU;Lo;0;L;;;;;N;;;;;
-12210;CUNEIFORM SIGN LU2 TIMES TUG2;Lo;0;L;;;;;N;;;;;
-12211;CUNEIFORM SIGN LU2 TENU;Lo;0;L;;;;;N;;;;;
-12212;CUNEIFORM SIGN LU2 CROSSING LU2;Lo;0;L;;;;;N;;;;;
-12213;CUNEIFORM SIGN LU2 OPPOSING LU2;Lo;0;L;;;;;N;;;;;
-12214;CUNEIFORM SIGN LU2 SQUARED;Lo;0;L;;;;;N;;;;;
-12215;CUNEIFORM SIGN LU2 SHESHIG;Lo;0;L;;;;;N;;;;;
-12216;CUNEIFORM SIGN LU3;Lo;0;L;;;;;N;;;;;
-12217;CUNEIFORM SIGN LUGAL;Lo;0;L;;;;;N;;;;;
-12218;CUNEIFORM SIGN LUGAL OVER LUGAL;Lo;0;L;;;;;N;;;;;
-12219;CUNEIFORM SIGN LUGAL OPPOSING LUGAL;Lo;0;L;;;;;N;;;;;
-1221A;CUNEIFORM SIGN LUGAL SHESHIG;Lo;0;L;;;;;N;;;;;
-1221B;CUNEIFORM SIGN LUH;Lo;0;L;;;;;N;;;;;
-1221C;CUNEIFORM SIGN LUL;Lo;0;L;;;;;N;;;;;
-1221D;CUNEIFORM SIGN LUM;Lo;0;L;;;;;N;;;;;
-1221E;CUNEIFORM SIGN LUM OVER LUM;Lo;0;L;;;;;N;;;;;
-1221F;CUNEIFORM SIGN LUM OVER LUM GAR OVER GAR;Lo;0;L;;;;;N;;;;;
-12220;CUNEIFORM SIGN MA;Lo;0;L;;;;;N;;;;;
-12221;CUNEIFORM SIGN MA TIMES TAK4;Lo;0;L;;;;;N;;;;;
-12222;CUNEIFORM SIGN MA GUNU;Lo;0;L;;;;;N;;;;;
-12223;CUNEIFORM SIGN MA2;Lo;0;L;;;;;N;;;;;
-12224;CUNEIFORM SIGN MAH;Lo;0;L;;;;;N;;;;;
-12225;CUNEIFORM SIGN MAR;Lo;0;L;;;;;N;;;;;
-12226;CUNEIFORM SIGN MASH;Lo;0;L;;;;;N;;;;;
-12227;CUNEIFORM SIGN MASH2;Lo;0;L;;;;;N;;;;;
-12228;CUNEIFORM SIGN ME;Lo;0;L;;;;;N;;;;;
-12229;CUNEIFORM SIGN MES;Lo;0;L;;;;;N;;;;;
-1222A;CUNEIFORM SIGN MI;Lo;0;L;;;;;N;;;;;
-1222B;CUNEIFORM SIGN MIN;Lo;0;L;;;;;N;;;;;
-1222C;CUNEIFORM SIGN MU;Lo;0;L;;;;;N;;;;;
-1222D;CUNEIFORM SIGN MU OVER MU;Lo;0;L;;;;;N;;;;;
-1222E;CUNEIFORM SIGN MUG;Lo;0;L;;;;;N;;;;;
-1222F;CUNEIFORM SIGN MUG GUNU;Lo;0;L;;;;;N;;;;;
-12230;CUNEIFORM SIGN MUNSUB;Lo;0;L;;;;;N;;;;;
-12231;CUNEIFORM SIGN MURGU2;Lo;0;L;;;;;N;;;;;
-12232;CUNEIFORM SIGN MUSH;Lo;0;L;;;;;N;;;;;
-12233;CUNEIFORM SIGN MUSH TIMES A;Lo;0;L;;;;;N;;;;;
-12234;CUNEIFORM SIGN MUSH TIMES KUR;Lo;0;L;;;;;N;;;;;
-12235;CUNEIFORM SIGN MUSH TIMES ZA;Lo;0;L;;;;;N;;;;;
-12236;CUNEIFORM SIGN MUSH OVER MUSH;Lo;0;L;;;;;N;;;;;
-12237;CUNEIFORM SIGN MUSH OVER MUSH TIMES A PLUS NA;Lo;0;L;;;;;N;;;;;
-12238;CUNEIFORM SIGN MUSH CROSSING MUSH;Lo;0;L;;;;;N;;;;;
-12239;CUNEIFORM SIGN MUSH3;Lo;0;L;;;;;N;;;;;
-1223A;CUNEIFORM SIGN MUSH3 TIMES A;Lo;0;L;;;;;N;;;;;
-1223B;CUNEIFORM SIGN MUSH3 TIMES A PLUS DI;Lo;0;L;;;;;N;;;;;
-1223C;CUNEIFORM SIGN MUSH3 TIMES DI;Lo;0;L;;;;;N;;;;;
-1223D;CUNEIFORM SIGN MUSH3 GUNU;Lo;0;L;;;;;N;;;;;
-1223E;CUNEIFORM SIGN NA;Lo;0;L;;;;;N;;;;;
-1223F;CUNEIFORM SIGN NA2;Lo;0;L;;;;;N;;;;;
-12240;CUNEIFORM SIGN NAGA;Lo;0;L;;;;;N;;;;;
-12241;CUNEIFORM SIGN NAGA INVERTED;Lo;0;L;;;;;N;;;;;
-12242;CUNEIFORM SIGN NAGA TIMES SHU TENU;Lo;0;L;;;;;N;;;;;
-12243;CUNEIFORM SIGN NAGA OPPOSING NAGA;Lo;0;L;;;;;N;;;;;
-12244;CUNEIFORM SIGN NAGAR;Lo;0;L;;;;;N;;;;;
-12245;CUNEIFORM SIGN NAM NUTILLU;Lo;0;L;;;;;N;;;;;
-12246;CUNEIFORM SIGN NAM;Lo;0;L;;;;;N;;;;;
-12247;CUNEIFORM SIGN NAM2;Lo;0;L;;;;;N;;;;;
-12248;CUNEIFORM SIGN NE;Lo;0;L;;;;;N;;;;;
-12249;CUNEIFORM SIGN NE TIMES A;Lo;0;L;;;;;N;;;;;
-1224A;CUNEIFORM SIGN NE TIMES UD;Lo;0;L;;;;;N;;;;;
-1224B;CUNEIFORM SIGN NE SHESHIG;Lo;0;L;;;;;N;;;;;
-1224C;CUNEIFORM SIGN NI;Lo;0;L;;;;;N;;;;;
-1224D;CUNEIFORM SIGN NI TIMES E;Lo;0;L;;;;;N;;;;;
-1224E;CUNEIFORM SIGN NI2;Lo;0;L;;;;;N;;;;;
-1224F;CUNEIFORM SIGN NIM;Lo;0;L;;;;;N;;;;;
-12250;CUNEIFORM SIGN NIM TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
-12251;CUNEIFORM SIGN NIM TIMES GAR PLUS GAN2 TENU;Lo;0;L;;;;;N;;;;;
-12252;CUNEIFORM SIGN NINDA2;Lo;0;L;;;;;N;;;;;
-12253;CUNEIFORM SIGN NINDA2 TIMES AN;Lo;0;L;;;;;N;;;;;
-12254;CUNEIFORM SIGN NINDA2 TIMES ASH;Lo;0;L;;;;;N;;;;;
-12255;CUNEIFORM SIGN NINDA2 TIMES ASH PLUS ASH;Lo;0;L;;;;;N;;;;;
-12256;CUNEIFORM SIGN NINDA2 TIMES GUD;Lo;0;L;;;;;N;;;;;
-12257;CUNEIFORM SIGN NINDA2 TIMES ME PLUS GAN2 TENU;Lo;0;L;;;;;N;;;;;
-12258;CUNEIFORM SIGN NINDA2 TIMES NE;Lo;0;L;;;;;N;;;;;
-12259;CUNEIFORM SIGN NINDA2 TIMES NUN;Lo;0;L;;;;;N;;;;;
-1225A;CUNEIFORM SIGN NINDA2 TIMES SHE;Lo;0;L;;;;;N;;;;;
-1225B;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS A AN;Lo;0;L;;;;;N;;;;;
-1225C;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH;Lo;0;L;;;;;N;;;;;
-1225D;CUNEIFORM SIGN NINDA2 TIMES SHE PLUS ASH PLUS ASH;Lo;0;L;;;;;N;;;;;
-1225E;CUNEIFORM SIGN NINDA2 TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;
-1225F;CUNEIFORM SIGN NINDA2 TIMES USH;Lo;0;L;;;;;N;;;;;
-12260;CUNEIFORM SIGN NISAG;Lo;0;L;;;;;N;;;;;
-12261;CUNEIFORM SIGN NU;Lo;0;L;;;;;N;;;;;
-12262;CUNEIFORM SIGN NU11;Lo;0;L;;;;;N;;;;;
-12263;CUNEIFORM SIGN NUN;Lo;0;L;;;;;N;;;;;
-12264;CUNEIFORM SIGN NUN LAGAR TIMES GAR;Lo;0;L;;;;;N;;;;;
-12265;CUNEIFORM SIGN NUN LAGAR TIMES MASH;Lo;0;L;;;;;N;;;;;
-12266;CUNEIFORM SIGN NUN LAGAR TIMES SAL;Lo;0;L;;;;;N;;;;;
-12267;CUNEIFORM SIGN NUN LAGAR TIMES SAL OVER NUN LAGAR TIMES SAL;Lo;0;L;;;;;N;;;;;
-12268;CUNEIFORM SIGN NUN LAGAR TIMES USH;Lo;0;L;;;;;N;;;;;
-12269;CUNEIFORM SIGN NUN TENU;Lo;0;L;;;;;N;;;;;
-1226A;CUNEIFORM SIGN NUN OVER NUN;Lo;0;L;;;;;N;;;;;
-1226B;CUNEIFORM SIGN NUN CROSSING NUN;Lo;0;L;;;;;N;;;;;
-1226C;CUNEIFORM SIGN NUN CROSSING NUN LAGAR OVER LAGAR;Lo;0;L;;;;;N;;;;;
-1226D;CUNEIFORM SIGN NUNUZ;Lo;0;L;;;;;N;;;;;
-1226E;CUNEIFORM SIGN NUNUZ AB2 TIMES ASHGAB;Lo;0;L;;;;;N;;;;;
-1226F;CUNEIFORM SIGN NUNUZ AB2 TIMES BI;Lo;0;L;;;;;N;;;;;
-12270;CUNEIFORM SIGN NUNUZ AB2 TIMES DUG;Lo;0;L;;;;;N;;;;;
-12271;CUNEIFORM SIGN NUNUZ AB2 TIMES GUD;Lo;0;L;;;;;N;;;;;
-12272;CUNEIFORM SIGN NUNUZ AB2 TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
-12273;CUNEIFORM SIGN NUNUZ AB2 TIMES KAD3;Lo;0;L;;;;;N;;;;;
-12274;CUNEIFORM SIGN NUNUZ AB2 TIMES LA;Lo;0;L;;;;;N;;;;;
-12275;CUNEIFORM SIGN NUNUZ AB2 TIMES NE;Lo;0;L;;;;;N;;;;;
-12276;CUNEIFORM SIGN NUNUZ AB2 TIMES SILA3;Lo;0;L;;;;;N;;;;;
-12277;CUNEIFORM SIGN NUNUZ AB2 TIMES U2;Lo;0;L;;;;;N;;;;;
-12278;CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI;Lo;0;L;;;;;N;;;;;
-12279;CUNEIFORM SIGN NUNUZ KISIM5 TIMES BI U;Lo;0;L;;;;;N;;;;;
-1227A;CUNEIFORM SIGN PA;Lo;0;L;;;;;N;;;;;
-1227B;CUNEIFORM SIGN PAD;Lo;0;L;;;;;N;;;;;
-1227C;CUNEIFORM SIGN PAN;Lo;0;L;;;;;N;;;;;
-1227D;CUNEIFORM SIGN PAP;Lo;0;L;;;;;N;;;;;
-1227E;CUNEIFORM SIGN PESH2;Lo;0;L;;;;;N;;;;;
-1227F;CUNEIFORM SIGN PI;Lo;0;L;;;;;N;;;;;
-12280;CUNEIFORM SIGN PI TIMES A;Lo;0;L;;;;;N;;;;;
-12281;CUNEIFORM SIGN PI TIMES AB;Lo;0;L;;;;;N;;;;;
-12282;CUNEIFORM SIGN PI TIMES BI;Lo;0;L;;;;;N;;;;;
-12283;CUNEIFORM SIGN PI TIMES BU;Lo;0;L;;;;;N;;;;;
-12284;CUNEIFORM SIGN PI TIMES E;Lo;0;L;;;;;N;;;;;
-12285;CUNEIFORM SIGN PI TIMES I;Lo;0;L;;;;;N;;;;;
-12286;CUNEIFORM SIGN PI TIMES IB;Lo;0;L;;;;;N;;;;;
-12287;CUNEIFORM SIGN PI TIMES U;Lo;0;L;;;;;N;;;;;
-12288;CUNEIFORM SIGN PI TIMES U2;Lo;0;L;;;;;N;;;;;
-12289;CUNEIFORM SIGN PI CROSSING PI;Lo;0;L;;;;;N;;;;;
-1228A;CUNEIFORM SIGN PIRIG;Lo;0;L;;;;;N;;;;;
-1228B;CUNEIFORM SIGN PIRIG TIMES KAL;Lo;0;L;;;;;N;;;;;
-1228C;CUNEIFORM SIGN PIRIG TIMES UD;Lo;0;L;;;;;N;;;;;
-1228D;CUNEIFORM SIGN PIRIG TIMES ZA;Lo;0;L;;;;;N;;;;;
-1228E;CUNEIFORM SIGN PIRIG OPPOSING PIRIG;Lo;0;L;;;;;N;;;;;
-1228F;CUNEIFORM SIGN RA;Lo;0;L;;;;;N;;;;;
-12290;CUNEIFORM SIGN RAB;Lo;0;L;;;;;N;;;;;
-12291;CUNEIFORM SIGN RI;Lo;0;L;;;;;N;;;;;
-12292;CUNEIFORM SIGN RU;Lo;0;L;;;;;N;;;;;
-12293;CUNEIFORM SIGN SA;Lo;0;L;;;;;N;;;;;
-12294;CUNEIFORM SIGN SAG NUTILLU;Lo;0;L;;;;;N;;;;;
-12295;CUNEIFORM SIGN SAG;Lo;0;L;;;;;N;;;;;
-12296;CUNEIFORM SIGN SAG TIMES A;Lo;0;L;;;;;N;;;;;
-12297;CUNEIFORM SIGN SAG TIMES DU;Lo;0;L;;;;;N;;;;;
-12298;CUNEIFORM SIGN SAG TIMES DUB;Lo;0;L;;;;;N;;;;;
-12299;CUNEIFORM SIGN SAG TIMES HA;Lo;0;L;;;;;N;;;;;
-1229A;CUNEIFORM SIGN SAG TIMES KAK;Lo;0;L;;;;;N;;;;;
-1229B;CUNEIFORM SIGN SAG TIMES KUR;Lo;0;L;;;;;N;;;;;
-1229C;CUNEIFORM SIGN SAG TIMES LUM;Lo;0;L;;;;;N;;;;;
-1229D;CUNEIFORM SIGN SAG TIMES MI;Lo;0;L;;;;;N;;;;;
-1229E;CUNEIFORM SIGN SAG TIMES NUN;Lo;0;L;;;;;N;;;;;
-1229F;CUNEIFORM SIGN SAG TIMES SAL;Lo;0;L;;;;;N;;;;;
-122A0;CUNEIFORM SIGN SAG TIMES SHID;Lo;0;L;;;;;N;;;;;
-122A1;CUNEIFORM SIGN SAG TIMES TAB;Lo;0;L;;;;;N;;;;;
-122A2;CUNEIFORM SIGN SAG TIMES U2;Lo;0;L;;;;;N;;;;;
-122A3;CUNEIFORM SIGN SAG TIMES UB;Lo;0;L;;;;;N;;;;;
-122A4;CUNEIFORM SIGN SAG TIMES UM;Lo;0;L;;;;;N;;;;;
-122A5;CUNEIFORM SIGN SAG TIMES UR;Lo;0;L;;;;;N;;;;;
-122A6;CUNEIFORM SIGN SAG TIMES USH;Lo;0;L;;;;;N;;;;;
-122A7;CUNEIFORM SIGN SAG OVER SAG;Lo;0;L;;;;;N;;;;;
-122A8;CUNEIFORM SIGN SAG GUNU;Lo;0;L;;;;;N;;;;;
-122A9;CUNEIFORM SIGN SAL;Lo;0;L;;;;;N;;;;;
-122AA;CUNEIFORM SIGN SAL LAGAB TIMES ASH2;Lo;0;L;;;;;N;;;;;
-122AB;CUNEIFORM SIGN SANGA2;Lo;0;L;;;;;N;;;;;
-122AC;CUNEIFORM SIGN SAR;Lo;0;L;;;;;N;;;;;
-122AD;CUNEIFORM SIGN SHA;Lo;0;L;;;;;N;;;;;
-122AE;CUNEIFORM SIGN SHA3;Lo;0;L;;;;;N;;;;;
-122AF;CUNEIFORM SIGN SHA3 TIMES A;Lo;0;L;;;;;N;;;;;
-122B0;CUNEIFORM SIGN SHA3 TIMES BAD;Lo;0;L;;;;;N;;;;;
-122B1;CUNEIFORM SIGN SHA3 TIMES GISH;Lo;0;L;;;;;N;;;;;
-122B2;CUNEIFORM SIGN SHA3 TIMES NE;Lo;0;L;;;;;N;;;;;
-122B3;CUNEIFORM SIGN SHA3 TIMES SHU2;Lo;0;L;;;;;N;;;;;
-122B4;CUNEIFORM SIGN SHA3 TIMES TUR;Lo;0;L;;;;;N;;;;;
-122B5;CUNEIFORM SIGN SHA3 TIMES U;Lo;0;L;;;;;N;;;;;
-122B6;CUNEIFORM SIGN SHA3 TIMES U PLUS A;Lo;0;L;;;;;N;;;;;
-122B7;CUNEIFORM SIGN SHA6;Lo;0;L;;;;;N;;;;;
-122B8;CUNEIFORM SIGN SHAB6;Lo;0;L;;;;;N;;;;;
-122B9;CUNEIFORM SIGN SHAR2;Lo;0;L;;;;;N;;;;;
-122BA;CUNEIFORM SIGN SHE;Lo;0;L;;;;;N;;;;;
-122BB;CUNEIFORM SIGN SHE HU;Lo;0;L;;;;;N;;;;;
-122BC;CUNEIFORM SIGN SHE OVER SHE GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
-122BD;CUNEIFORM SIGN SHE OVER SHE TAB OVER TAB GAR OVER GAR;Lo;0;L;;;;;N;;;;;
-122BE;CUNEIFORM SIGN SHEG9;Lo;0;L;;;;;N;;;;;
-122BF;CUNEIFORM SIGN SHEN;Lo;0;L;;;;;N;;;;;
-122C0;CUNEIFORM SIGN SHESH;Lo;0;L;;;;;N;;;;;
-122C1;CUNEIFORM SIGN SHESH2;Lo;0;L;;;;;N;;;;;
-122C2;CUNEIFORM SIGN SHESHLAM;Lo;0;L;;;;;N;;;;;
-122C3;CUNEIFORM SIGN SHID;Lo;0;L;;;;;N;;;;;
-122C4;CUNEIFORM SIGN SHID TIMES A;Lo;0;L;;;;;N;;;;;
-122C5;CUNEIFORM SIGN SHID TIMES IM;Lo;0;L;;;;;N;;;;;
-122C6;CUNEIFORM SIGN SHIM;Lo;0;L;;;;;N;;;;;
-122C7;CUNEIFORM SIGN SHIM TIMES A;Lo;0;L;;;;;N;;;;;
-122C8;CUNEIFORM SIGN SHIM TIMES BAL;Lo;0;L;;;;;N;;;;;
-122C9;CUNEIFORM SIGN SHIM TIMES BULUG;Lo;0;L;;;;;N;;;;;
-122CA;CUNEIFORM SIGN SHIM TIMES DIN;Lo;0;L;;;;;N;;;;;
-122CB;CUNEIFORM SIGN SHIM TIMES GAR;Lo;0;L;;;;;N;;;;;
-122CC;CUNEIFORM SIGN SHIM TIMES IGI;Lo;0;L;;;;;N;;;;;
-122CD;CUNEIFORM SIGN SHIM TIMES IGI GUNU;Lo;0;L;;;;;N;;;;;
-122CE;CUNEIFORM SIGN SHIM TIMES KUSHU2;Lo;0;L;;;;;N;;;;;
-122CF;CUNEIFORM SIGN SHIM TIMES LUL;Lo;0;L;;;;;N;;;;;
-122D0;CUNEIFORM SIGN SHIM TIMES MUG;Lo;0;L;;;;;N;;;;;
-122D1;CUNEIFORM SIGN SHIM TIMES SAL;Lo;0;L;;;;;N;;;;;
-122D2;CUNEIFORM SIGN SHINIG;Lo;0;L;;;;;N;;;;;
-122D3;CUNEIFORM SIGN SHIR;Lo;0;L;;;;;N;;;;;
-122D4;CUNEIFORM SIGN SHIR TENU;Lo;0;L;;;;;N;;;;;
-122D5;CUNEIFORM SIGN SHIR OVER SHIR BUR OVER BUR;Lo;0;L;;;;;N;;;;;
-122D6;CUNEIFORM SIGN SHITA;Lo;0;L;;;;;N;;;;;
-122D7;CUNEIFORM SIGN SHU;Lo;0;L;;;;;N;;;;;
-122D8;CUNEIFORM SIGN SHU OVER INVERTED SHU;Lo;0;L;;;;;N;;;;;
-122D9;CUNEIFORM SIGN SHU2;Lo;0;L;;;;;N;;;;;
-122DA;CUNEIFORM SIGN SHUBUR;Lo;0;L;;;;;N;;;;;
-122DB;CUNEIFORM SIGN SI;Lo;0;L;;;;;N;;;;;
-122DC;CUNEIFORM SIGN SI GUNU;Lo;0;L;;;;;N;;;;;
-122DD;CUNEIFORM SIGN SIG;Lo;0;L;;;;;N;;;;;
-122DE;CUNEIFORM SIGN SIG4;Lo;0;L;;;;;N;;;;;
-122DF;CUNEIFORM SIGN SIG4 OVER SIG4 SHU2;Lo;0;L;;;;;N;;;;;
-122E0;CUNEIFORM SIGN SIK2;Lo;0;L;;;;;N;;;;;
-122E1;CUNEIFORM SIGN SILA3;Lo;0;L;;;;;N;;;;;
-122E2;CUNEIFORM SIGN SU;Lo;0;L;;;;;N;;;;;
-122E3;CUNEIFORM SIGN SU OVER SU;Lo;0;L;;;;;N;;;;;
-122E4;CUNEIFORM SIGN SUD;Lo;0;L;;;;;N;;;;;
-122E5;CUNEIFORM SIGN SUD2;Lo;0;L;;;;;N;;;;;
-122E6;CUNEIFORM SIGN SUHUR;Lo;0;L;;;;;N;;;;;
-122E7;CUNEIFORM SIGN SUM;Lo;0;L;;;;;N;;;;;
-122E8;CUNEIFORM SIGN SUMASH;Lo;0;L;;;;;N;;;;;
-122E9;CUNEIFORM SIGN SUR;Lo;0;L;;;;;N;;;;;
-122EA;CUNEIFORM SIGN SUR9;Lo;0;L;;;;;N;;;;;
-122EB;CUNEIFORM SIGN TA;Lo;0;L;;;;;N;;;;;
-122EC;CUNEIFORM SIGN TA ASTERISK;Lo;0;L;;;;;N;;;;;
-122ED;CUNEIFORM SIGN TA TIMES HI;Lo;0;L;;;;;N;;;;;
-122EE;CUNEIFORM SIGN TA TIMES MI;Lo;0;L;;;;;N;;;;;
-122EF;CUNEIFORM SIGN TA GUNU;Lo;0;L;;;;;N;;;;;
-122F0;CUNEIFORM SIGN TAB;Lo;0;L;;;;;N;;;;;
-122F1;CUNEIFORM SIGN TAB OVER TAB NI OVER NI DISH OVER DISH;Lo;0;L;;;;;N;;;;;
-122F2;CUNEIFORM SIGN TAB SQUARED;Lo;0;L;;;;;N;;;;;
-122F3;CUNEIFORM SIGN TAG;Lo;0;L;;;;;N;;;;;
-122F4;CUNEIFORM SIGN TAG TIMES BI;Lo;0;L;;;;;N;;;;;
-122F5;CUNEIFORM SIGN TAG TIMES GUD;Lo;0;L;;;;;N;;;;;
-122F6;CUNEIFORM SIGN TAG TIMES SHE;Lo;0;L;;;;;N;;;;;
-122F7;CUNEIFORM SIGN TAG TIMES SHU;Lo;0;L;;;;;N;;;;;
-122F8;CUNEIFORM SIGN TAG TIMES TUG2;Lo;0;L;;;;;N;;;;;
-122F9;CUNEIFORM SIGN TAG TIMES UD;Lo;0;L;;;;;N;;;;;
-122FA;CUNEIFORM SIGN TAK4;Lo;0;L;;;;;N;;;;;
-122FB;CUNEIFORM SIGN TAR;Lo;0;L;;;;;N;;;;;
-122FC;CUNEIFORM SIGN TE;Lo;0;L;;;;;N;;;;;
-122FD;CUNEIFORM SIGN TE GUNU;Lo;0;L;;;;;N;;;;;
-122FE;CUNEIFORM SIGN TI;Lo;0;L;;;;;N;;;;;
-122FF;CUNEIFORM SIGN TI TENU;Lo;0;L;;;;;N;;;;;
-12300;CUNEIFORM SIGN TIL;Lo;0;L;;;;;N;;;;;
-12301;CUNEIFORM SIGN TIR;Lo;0;L;;;;;N;;;;;
-12302;CUNEIFORM SIGN TIR TIMES TAK4;Lo;0;L;;;;;N;;;;;
-12303;CUNEIFORM SIGN TIR OVER TIR;Lo;0;L;;;;;N;;;;;
-12304;CUNEIFORM SIGN TIR OVER TIR GAD OVER GAD GAR OVER GAR;Lo;0;L;;;;;N;;;;;
-12305;CUNEIFORM SIGN TU;Lo;0;L;;;;;N;;;;;
-12306;CUNEIFORM SIGN TUG2;Lo;0;L;;;;;N;;;;;
-12307;CUNEIFORM SIGN TUK;Lo;0;L;;;;;N;;;;;
-12308;CUNEIFORM SIGN TUM;Lo;0;L;;;;;N;;;;;
-12309;CUNEIFORM SIGN TUR;Lo;0;L;;;;;N;;;;;
-1230A;CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA;Lo;0;L;;;;;N;;;;;
-1230B;CUNEIFORM SIGN U;Lo;0;L;;;;;N;;;;;
-1230C;CUNEIFORM SIGN U GUD;Lo;0;L;;;;;N;;;;;
-1230D;CUNEIFORM SIGN U U U;Lo;0;L;;;;;N;;;;;
-1230E;CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR;Lo;0;L;;;;;N;;;;;
-1230F;CUNEIFORM SIGN U OVER U SUR OVER SUR;Lo;0;L;;;;;N;;;;;
-12310;CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED;Lo;0;L;;;;;N;;;;;
-12311;CUNEIFORM SIGN U2;Lo;0;L;;;;;N;;;;;
-12312;CUNEIFORM SIGN UB;Lo;0;L;;;;;N;;;;;
-12313;CUNEIFORM SIGN UD;Lo;0;L;;;;;N;;;;;
-12314;CUNEIFORM SIGN UD KUSHU2;Lo;0;L;;;;;N;;;;;
-12315;CUNEIFORM SIGN UD TIMES BAD;Lo;0;L;;;;;N;;;;;
-12316;CUNEIFORM SIGN UD TIMES MI;Lo;0;L;;;;;N;;;;;
-12317;CUNEIFORM SIGN UD TIMES U PLUS U PLUS U;Lo;0;L;;;;;N;;;;;
-12318;CUNEIFORM SIGN UD TIMES U PLUS U PLUS U GUNU;Lo;0;L;;;;;N;;;;;
-12319;CUNEIFORM SIGN UD GUNU;Lo;0;L;;;;;N;;;;;
-1231A;CUNEIFORM SIGN UD SHESHIG;Lo;0;L;;;;;N;;;;;
-1231B;CUNEIFORM SIGN UD SHESHIG TIMES BAD;Lo;0;L;;;;;N;;;;;
-1231C;CUNEIFORM SIGN UDUG;Lo;0;L;;;;;N;;;;;
-1231D;CUNEIFORM SIGN UM;Lo;0;L;;;;;N;;;;;
-1231E;CUNEIFORM SIGN UM TIMES LAGAB;Lo;0;L;;;;;N;;;;;
-1231F;CUNEIFORM SIGN UM TIMES ME PLUS DA;Lo;0;L;;;;;N;;;;;
-12320;CUNEIFORM SIGN UM TIMES SHA3;Lo;0;L;;;;;N;;;;;
-12321;CUNEIFORM SIGN UM TIMES U;Lo;0;L;;;;;N;;;;;
-12322;CUNEIFORM SIGN UMBIN;Lo;0;L;;;;;N;;;;;
-12323;CUNEIFORM SIGN UMUM;Lo;0;L;;;;;N;;;;;
-12324;CUNEIFORM SIGN UMUM TIMES KASKAL;Lo;0;L;;;;;N;;;;;
-12325;CUNEIFORM SIGN UMUM TIMES PA;Lo;0;L;;;;;N;;;;;
-12326;CUNEIFORM SIGN UN;Lo;0;L;;;;;N;;;;;
-12327;CUNEIFORM SIGN UN GUNU;Lo;0;L;;;;;N;;;;;
-12328;CUNEIFORM SIGN UR;Lo;0;L;;;;;N;;;;;
-12329;CUNEIFORM SIGN UR CROSSING UR;Lo;0;L;;;;;N;;;;;
-1232A;CUNEIFORM SIGN UR SHESHIG;Lo;0;L;;;;;N;;;;;
-1232B;CUNEIFORM SIGN UR2;Lo;0;L;;;;;N;;;;;
-1232C;CUNEIFORM SIGN UR2 TIMES A PLUS HA;Lo;0;L;;;;;N;;;;;
-1232D;CUNEIFORM SIGN UR2 TIMES A PLUS NA;Lo;0;L;;;;;N;;;;;
-1232E;CUNEIFORM SIGN UR2 TIMES AL;Lo;0;L;;;;;N;;;;;
-1232F;CUNEIFORM SIGN UR2 TIMES HA;Lo;0;L;;;;;N;;;;;
-12330;CUNEIFORM SIGN UR2 TIMES NUN;Lo;0;L;;;;;N;;;;;
-12331;CUNEIFORM SIGN UR2 TIMES U2;Lo;0;L;;;;;N;;;;;
-12332;CUNEIFORM SIGN UR2 TIMES U2 PLUS ASH;Lo;0;L;;;;;N;;;;;
-12333;CUNEIFORM SIGN UR2 TIMES U2 PLUS BI;Lo;0;L;;;;;N;;;;;
-12334;CUNEIFORM SIGN UR4;Lo;0;L;;;;;N;;;;;
-12335;CUNEIFORM SIGN URI;Lo;0;L;;;;;N;;;;;
-12336;CUNEIFORM SIGN URI3;Lo;0;L;;;;;N;;;;;
-12337;CUNEIFORM SIGN URU;Lo;0;L;;;;;N;;;;;
-12338;CUNEIFORM SIGN URU TIMES A;Lo;0;L;;;;;N;;;;;
-12339;CUNEIFORM SIGN URU TIMES ASHGAB;Lo;0;L;;;;;N;;;;;
-1233A;CUNEIFORM SIGN URU TIMES BAR;Lo;0;L;;;;;N;;;;;
-1233B;CUNEIFORM SIGN URU TIMES DUN;Lo;0;L;;;;;N;;;;;
-1233C;CUNEIFORM SIGN URU TIMES GA;Lo;0;L;;;;;N;;;;;
-1233D;CUNEIFORM SIGN URU TIMES GAL;Lo;0;L;;;;;N;;;;;
-1233E;CUNEIFORM SIGN URU TIMES GAN2 TENU;Lo;0;L;;;;;N;;;;;
-1233F;CUNEIFORM SIGN URU TIMES GAR;Lo;0;L;;;;;N;;;;;
-12340;CUNEIFORM SIGN URU TIMES GU;Lo;0;L;;;;;N;;;;;
-12341;CUNEIFORM SIGN URU TIMES HA;Lo;0;L;;;;;N;;;;;
-12342;CUNEIFORM SIGN URU TIMES IGI;Lo;0;L;;;;;N;;;;;
-12343;CUNEIFORM SIGN URU TIMES IM;Lo;0;L;;;;;N;;;;;
-12344;CUNEIFORM SIGN URU TIMES ISH;Lo;0;L;;;;;N;;;;;
-12345;CUNEIFORM SIGN URU TIMES KI;Lo;0;L;;;;;N;;;;;
-12346;CUNEIFORM SIGN URU TIMES LUM;Lo;0;L;;;;;N;;;;;
-12347;CUNEIFORM SIGN URU TIMES MIN;Lo;0;L;;;;;N;;;;;
-12348;CUNEIFORM SIGN URU TIMES PA;Lo;0;L;;;;;N;;;;;
-12349;CUNEIFORM SIGN URU TIMES SHE;Lo;0;L;;;;;N;;;;;
-1234A;CUNEIFORM SIGN URU TIMES SIG4;Lo;0;L;;;;;N;;;;;
-1234B;CUNEIFORM SIGN URU TIMES TU;Lo;0;L;;;;;N;;;;;
-1234C;CUNEIFORM SIGN URU TIMES U PLUS GUD;Lo;0;L;;;;;N;;;;;
-1234D;CUNEIFORM SIGN URU TIMES UD;Lo;0;L;;;;;N;;;;;
-1234E;CUNEIFORM SIGN URU TIMES URUDA;Lo;0;L;;;;;N;;;;;
-1234F;CUNEIFORM SIGN URUDA;Lo;0;L;;;;;N;;;;;
-12350;CUNEIFORM SIGN URUDA TIMES U;Lo;0;L;;;;;N;;;;;
-12351;CUNEIFORM SIGN USH;Lo;0;L;;;;;N;;;;;
-12352;CUNEIFORM SIGN USH TIMES A;Lo;0;L;;;;;N;;;;;
-12353;CUNEIFORM SIGN USH TIMES KU;Lo;0;L;;;;;N;;;;;
-12354;CUNEIFORM SIGN USH TIMES KUR;Lo;0;L;;;;;N;;;;;
-12355;CUNEIFORM SIGN USH TIMES TAK4;Lo;0;L;;;;;N;;;;;
-12356;CUNEIFORM SIGN USHX;Lo;0;L;;;;;N;;;;;
-12357;CUNEIFORM SIGN USH2;Lo;0;L;;;;;N;;;;;
-12358;CUNEIFORM SIGN USHUMX;Lo;0;L;;;;;N;;;;;
-12359;CUNEIFORM SIGN UTUKI;Lo;0;L;;;;;N;;;;;
-1235A;CUNEIFORM SIGN UZ3;Lo;0;L;;;;;N;;;;;
-1235B;CUNEIFORM SIGN UZ3 TIMES KASKAL;Lo;0;L;;;;;N;;;;;
-1235C;CUNEIFORM SIGN UZU;Lo;0;L;;;;;N;;;;;
-1235D;CUNEIFORM SIGN ZA;Lo;0;L;;;;;N;;;;;
-1235E;CUNEIFORM SIGN ZA TENU;Lo;0;L;;;;;N;;;;;
-1235F;CUNEIFORM SIGN ZA SQUARED TIMES KUR;Lo;0;L;;;;;N;;;;;
-12360;CUNEIFORM SIGN ZAG;Lo;0;L;;;;;N;;;;;
-12361;CUNEIFORM SIGN ZAMX;Lo;0;L;;;;;N;;;;;
-12362;CUNEIFORM SIGN ZE2;Lo;0;L;;;;;N;;;;;
-12363;CUNEIFORM SIGN ZI;Lo;0;L;;;;;N;;;;;
-12364;CUNEIFORM SIGN ZI OVER ZI;Lo;0;L;;;;;N;;;;;
-12365;CUNEIFORM SIGN ZI3;Lo;0;L;;;;;N;;;;;
-12366;CUNEIFORM SIGN ZIB;Lo;0;L;;;;;N;;;;;
-12367;CUNEIFORM SIGN ZIB KABA TENU;Lo;0;L;;;;;N;;;;;
-12368;CUNEIFORM SIGN ZIG;Lo;0;L;;;;;N;;;;;
-12369;CUNEIFORM SIGN ZIZ2;Lo;0;L;;;;;N;;;;;
-1236A;CUNEIFORM SIGN ZU;Lo;0;L;;;;;N;;;;;
-1236B;CUNEIFORM SIGN ZU5;Lo;0;L;;;;;N;;;;;
-1236C;CUNEIFORM SIGN ZU5 TIMES A;Lo;0;L;;;;;N;;;;;
-1236D;CUNEIFORM SIGN ZUBUR;Lo;0;L;;;;;N;;;;;
-1236E;CUNEIFORM SIGN ZUM;Lo;0;L;;;;;N;;;;;
-12400;CUNEIFORM NUMERIC SIGN TWO ASH;Nl;0;L;;;;2;N;;;;;
-12401;CUNEIFORM NUMERIC SIGN THREE ASH;Nl;0;L;;;;3;N;;;;;
-12402;CUNEIFORM NUMERIC SIGN FOUR ASH;Nl;0;L;;;;4;N;;;;;
-12403;CUNEIFORM NUMERIC SIGN FIVE ASH;Nl;0;L;;;;5;N;;;;;
-12404;CUNEIFORM NUMERIC SIGN SIX ASH;Nl;0;L;;;;6;N;;;;;
-12405;CUNEIFORM NUMERIC SIGN SEVEN ASH;Nl;0;L;;;;7;N;;;;;
-12406;CUNEIFORM NUMERIC SIGN EIGHT ASH;Nl;0;L;;;;8;N;;;;;
-12407;CUNEIFORM NUMERIC SIGN NINE ASH;Nl;0;L;;;;9;N;;;;;
-12408;CUNEIFORM NUMERIC SIGN THREE DISH;Nl;0;L;;;;3;N;;;;;
-12409;CUNEIFORM NUMERIC SIGN FOUR DISH;Nl;0;L;;;;4;N;;;;;
-1240A;CUNEIFORM NUMERIC SIGN FIVE DISH;Nl;0;L;;;;5;N;;;;;
-1240B;CUNEIFORM NUMERIC SIGN SIX DISH;Nl;0;L;;;;6;N;;;;;
-1240C;CUNEIFORM NUMERIC SIGN SEVEN DISH;Nl;0;L;;;;7;N;;;;;
-1240D;CUNEIFORM NUMERIC SIGN EIGHT DISH;Nl;0;L;;;;8;N;;;;;
-1240E;CUNEIFORM NUMERIC SIGN NINE DISH;Nl;0;L;;;;9;N;;;;;
-1240F;CUNEIFORM NUMERIC SIGN FOUR U;Nl;0;L;;;;4;N;;;;;
-12410;CUNEIFORM NUMERIC SIGN FIVE U;Nl;0;L;;;;5;N;;;;;
-12411;CUNEIFORM NUMERIC SIGN SIX U;Nl;0;L;;;;6;N;;;;;
-12412;CUNEIFORM NUMERIC SIGN SEVEN U;Nl;0;L;;;;7;N;;;;;
-12413;CUNEIFORM NUMERIC SIGN EIGHT U;Nl;0;L;;;;8;N;;;;;
-12414;CUNEIFORM NUMERIC SIGN NINE U;Nl;0;L;;;;9;N;;;;;
-12415;CUNEIFORM NUMERIC SIGN ONE GESH2;Nl;0;L;;;;1;N;;;;;
-12416;CUNEIFORM NUMERIC SIGN TWO GESH2;Nl;0;L;;;;2;N;;;;;
-12417;CUNEIFORM NUMERIC SIGN THREE GESH2;Nl;0;L;;;;3;N;;;;;
-12418;CUNEIFORM NUMERIC SIGN FOUR GESH2;Nl;0;L;;;;4;N;;;;;
-12419;CUNEIFORM NUMERIC SIGN FIVE GESH2;Nl;0;L;;;;5;N;;;;;
-1241A;CUNEIFORM NUMERIC SIGN SIX GESH2;Nl;0;L;;;;6;N;;;;;
-1241B;CUNEIFORM NUMERIC SIGN SEVEN GESH2;Nl;0;L;;;;7;N;;;;;
-1241C;CUNEIFORM NUMERIC SIGN EIGHT GESH2;Nl;0;L;;;;8;N;;;;;
-1241D;CUNEIFORM NUMERIC SIGN NINE GESH2;Nl;0;L;;;;9;N;;;;;
-1241E;CUNEIFORM NUMERIC SIGN ONE GESHU;Nl;0;L;;;;1;N;;;;;
-1241F;CUNEIFORM NUMERIC SIGN TWO GESHU;Nl;0;L;;;;2;N;;;;;
-12420;CUNEIFORM NUMERIC SIGN THREE GESHU;Nl;0;L;;;;3;N;;;;;
-12421;CUNEIFORM NUMERIC SIGN FOUR GESHU;Nl;0;L;;;;4;N;;;;;
-12422;CUNEIFORM NUMERIC SIGN FIVE GESHU;Nl;0;L;;;;5;N;;;;;
-12423;CUNEIFORM NUMERIC SIGN TWO SHAR2;Nl;0;L;;;;2;N;;;;;
-12424;CUNEIFORM NUMERIC SIGN THREE SHAR2;Nl;0;L;;;;3;N;;;;;
-12425;CUNEIFORM NUMERIC SIGN THREE SHAR2 VARIANT FORM;Nl;0;L;;;;3;N;;;;;
-12426;CUNEIFORM NUMERIC SIGN FOUR SHAR2;Nl;0;L;;;;4;N;;;;;
-12427;CUNEIFORM NUMERIC SIGN FIVE SHAR2;Nl;0;L;;;;5;N;;;;;
-12428;CUNEIFORM NUMERIC SIGN SIX SHAR2;Nl;0;L;;;;6;N;;;;;
-12429;CUNEIFORM NUMERIC SIGN SEVEN SHAR2;Nl;0;L;;;;7;N;;;;;
-1242A;CUNEIFORM NUMERIC SIGN EIGHT SHAR2;Nl;0;L;;;;8;N;;;;;
-1242B;CUNEIFORM NUMERIC SIGN NINE SHAR2;Nl;0;L;;;;9;N;;;;;
-1242C;CUNEIFORM NUMERIC SIGN ONE SHARU;Nl;0;L;;;;1;N;;;;;
-1242D;CUNEIFORM NUMERIC SIGN TWO SHARU;Nl;0;L;;;;2;N;;;;;
-1242E;CUNEIFORM NUMERIC SIGN THREE SHARU;Nl;0;L;;;;3;N;;;;;
-1242F;CUNEIFORM NUMERIC SIGN THREE SHARU VARIANT FORM;Nl;0;L;;;;3;N;;;;;
-12430;CUNEIFORM NUMERIC SIGN FOUR SHARU;Nl;0;L;;;;4;N;;;;;
-12431;CUNEIFORM NUMERIC SIGN FIVE SHARU;Nl;0;L;;;;5;N;;;;;
-12432;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH;Nl;0;L;;;;216000;N;;;;;
-12433;CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN;Nl;0;L;;;;432000;N;;;;;
-12434;CUNEIFORM NUMERIC SIGN ONE BURU;Nl;0;L;;;;1;N;;;;;
-12435;CUNEIFORM NUMERIC SIGN TWO BURU;Nl;0;L;;;;2;N;;;;;
-12436;CUNEIFORM NUMERIC SIGN THREE BURU;Nl;0;L;;;;3;N;;;;;
-12437;CUNEIFORM NUMERIC SIGN THREE BURU VARIANT FORM;Nl;0;L;;;;3;N;;;;;
-12438;CUNEIFORM NUMERIC SIGN FOUR BURU;Nl;0;L;;;;4;N;;;;;
-12439;CUNEIFORM NUMERIC SIGN FIVE BURU;Nl;0;L;;;;5;N;;;;;
-1243A;CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH16;Nl;0;L;;;;3;N;;;;;
-1243B;CUNEIFORM NUMERIC SIGN THREE VARIANT FORM ESH21;Nl;0;L;;;;3;N;;;;;
-1243C;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU;Nl;0;L;;;;4;N;;;;;
-1243D;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU4;Nl;0;L;;;;4;N;;;;;
-1243E;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU A;Nl;0;L;;;;4;N;;;;;
-1243F;CUNEIFORM NUMERIC SIGN FOUR VARIANT FORM LIMMU B;Nl;0;L;;;;4;N;;;;;
-12440;CUNEIFORM NUMERIC SIGN SIX VARIANT FORM ASH9;Nl;0;L;;;;6;N;;;;;
-12441;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN3;Nl;0;L;;;;7;N;;;;;
-12442;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN A;Nl;0;L;;;;7;N;;;;;
-12443;CUNEIFORM NUMERIC SIGN SEVEN VARIANT FORM IMIN B;Nl;0;L;;;;7;N;;;;;
-12444;CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU;Nl;0;L;;;;8;N;;;;;
-12445;CUNEIFORM NUMERIC SIGN EIGHT VARIANT FORM USSU3;Nl;0;L;;;;8;N;;;;;
-12446;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU;Nl;0;L;;;;9;N;;;;;
-12447;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU3;Nl;0;L;;;;9;N;;;;;
-12448;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU4;Nl;0;L;;;;9;N;;;;;
-12449;CUNEIFORM NUMERIC SIGN NINE VARIANT FORM ILIMMU A;Nl;0;L;;;;9;N;;;;;
-1244A;CUNEIFORM NUMERIC SIGN TWO ASH TENU;Nl;0;L;;;;2;N;;;;;
-1244B;CUNEIFORM NUMERIC SIGN THREE ASH TENU;Nl;0;L;;;;3;N;;;;;
-1244C;CUNEIFORM NUMERIC SIGN FOUR ASH TENU;Nl;0;L;;;;4;N;;;;;
-1244D;CUNEIFORM NUMERIC SIGN FIVE ASH TENU;Nl;0;L;;;;5;N;;;;;
-1244E;CUNEIFORM NUMERIC SIGN SIX ASH TENU;Nl;0;L;;;;6;N;;;;;
-1244F;CUNEIFORM NUMERIC SIGN ONE BAN2;Nl;0;L;;;;1;N;;;;;
-12450;CUNEIFORM NUMERIC SIGN TWO BAN2;Nl;0;L;;;;2;N;;;;;
-12451;CUNEIFORM NUMERIC SIGN THREE BAN2;Nl;0;L;;;;3;N;;;;;
-12452;CUNEIFORM NUMERIC SIGN FOUR BAN2;Nl;0;L;;;;4;N;;;;;
-12453;CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM;Nl;0;L;;;;4;N;;;;;
-12454;CUNEIFORM NUMERIC SIGN FIVE BAN2;Nl;0;L;;;;5;N;;;;;
-12455;CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM;Nl;0;L;;;;5;N;;;;;
-12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;-1;N;;;;;
-12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;-1;N;;;;;
-12458;CUNEIFORM NUMERIC SIGN ONE ESHE3;Nl;0;L;;;;1;N;;;;;
-12459;CUNEIFORM NUMERIC SIGN TWO ESHE3;Nl;0;L;;;;2;N;;;;;
-1245A;CUNEIFORM NUMERIC SIGN ONE THIRD DISH;Nl;0;L;;;;1/3;N;;;;;
-1245B;CUNEIFORM NUMERIC SIGN TWO THIRDS DISH;Nl;0;L;;;;2/3;N;;;;;
-1245C;CUNEIFORM NUMERIC SIGN FIVE SIXTHS DISH;Nl;0;L;;;;5/6;N;;;;;
-1245D;CUNEIFORM NUMERIC SIGN ONE THIRD VARIANT FORM A;Nl;0;L;;;;1/3;N;;;;;
-1245E;CUNEIFORM NUMERIC SIGN TWO THIRDS VARIANT FORM A;Nl;0;L;;;;2/3;N;;;;;
-1245F;CUNEIFORM NUMERIC SIGN ONE EIGHTH ASH;Nl;0;L;;;;1/8;N;;;;;
-12460;CUNEIFORM NUMERIC SIGN ONE QUARTER ASH;Nl;0;L;;;;1/4;N;;;;;
-12461;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE SIXTH;Nl;0;L;;;;1/6;N;;;;;
-12462;CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER;Nl;0;L;;;;1/4;N;;;;;
-12470;CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER;Po;0;L;;;;;N;;;;;
-12471;CUNEIFORM PUNCTUATION SIGN VERTICAL COLON;Po;0;L;;;;;N;;;;;
-12472;CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON;Po;0;L;;;;;N;;;;;
-12473;CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON;Po;0;L;;;;;N;;;;;
-13000;EGYPTIAN HIEROGLYPH A001;Lo;0;L;;;;;N;;;;;
-13001;EGYPTIAN HIEROGLYPH A002;Lo;0;L;;;;;N;;;;;
-13002;EGYPTIAN HIEROGLYPH A003;Lo;0;L;;;;;N;;;;;
-13003;EGYPTIAN HIEROGLYPH A004;Lo;0;L;;;;;N;;;;;
-13004;EGYPTIAN HIEROGLYPH A005;Lo;0;L;;;;;N;;;;;
-13005;EGYPTIAN HIEROGLYPH A005A;Lo;0;L;;;;;N;;;;;
-13006;EGYPTIAN HIEROGLYPH A006;Lo;0;L;;;;;N;;;;;
-13007;EGYPTIAN HIEROGLYPH A006A;Lo;0;L;;;;;N;;;;;
-13008;EGYPTIAN HIEROGLYPH A006B;Lo;0;L;;;;;N;;;;;
-13009;EGYPTIAN HIEROGLYPH A007;Lo;0;L;;;;;N;;;;;
-1300A;EGYPTIAN HIEROGLYPH A008;Lo;0;L;;;;;N;;;;;
-1300B;EGYPTIAN HIEROGLYPH A009;Lo;0;L;;;;;N;;;;;
-1300C;EGYPTIAN HIEROGLYPH A010;Lo;0;L;;;;;N;;;;;
-1300D;EGYPTIAN HIEROGLYPH A011;Lo;0;L;;;;;N;;;;;
-1300E;EGYPTIAN HIEROGLYPH A012;Lo;0;L;;;;;N;;;;;
-1300F;EGYPTIAN HIEROGLYPH A013;Lo;0;L;;;;;N;;;;;
-13010;EGYPTIAN HIEROGLYPH A014;Lo;0;L;;;;;N;;;;;
-13011;EGYPTIAN HIEROGLYPH A014A;Lo;0;L;;;;;N;;;;;
-13012;EGYPTIAN HIEROGLYPH A015;Lo;0;L;;;;;N;;;;;
-13013;EGYPTIAN HIEROGLYPH A016;Lo;0;L;;;;;N;;;;;
-13014;EGYPTIAN HIEROGLYPH A017;Lo;0;L;;;;;N;;;;;
-13015;EGYPTIAN HIEROGLYPH A017A;Lo;0;L;;;;;N;;;;;
-13016;EGYPTIAN HIEROGLYPH A018;Lo;0;L;;;;;N;;;;;
-13017;EGYPTIAN HIEROGLYPH A019;Lo;0;L;;;;;N;;;;;
-13018;EGYPTIAN HIEROGLYPH A020;Lo;0;L;;;;;N;;;;;
-13019;EGYPTIAN HIEROGLYPH A021;Lo;0;L;;;;;N;;;;;
-1301A;EGYPTIAN HIEROGLYPH A022;Lo;0;L;;;;;N;;;;;
-1301B;EGYPTIAN HIEROGLYPH A023;Lo;0;L;;;;;N;;;;;
-1301C;EGYPTIAN HIEROGLYPH A024;Lo;0;L;;;;;N;;;;;
-1301D;EGYPTIAN HIEROGLYPH A025;Lo;0;L;;;;;N;;;;;
-1301E;EGYPTIAN HIEROGLYPH A026;Lo;0;L;;;;;N;;;;;
-1301F;EGYPTIAN HIEROGLYPH A027;Lo;0;L;;;;;N;;;;;
-13020;EGYPTIAN HIEROGLYPH A028;Lo;0;L;;;;;N;;;;;
-13021;EGYPTIAN HIEROGLYPH A029;Lo;0;L;;;;;N;;;;;
-13022;EGYPTIAN HIEROGLYPH A030;Lo;0;L;;;;;N;;;;;
-13023;EGYPTIAN HIEROGLYPH A031;Lo;0;L;;;;;N;;;;;
-13024;EGYPTIAN HIEROGLYPH A032;Lo;0;L;;;;;N;;;;;
-13025;EGYPTIAN HIEROGLYPH A032A;Lo;0;L;;;;;N;;;;;
-13026;EGYPTIAN HIEROGLYPH A033;Lo;0;L;;;;;N;;;;;
-13027;EGYPTIAN HIEROGLYPH A034;Lo;0;L;;;;;N;;;;;
-13028;EGYPTIAN HIEROGLYPH A035;Lo;0;L;;;;;N;;;;;
-13029;EGYPTIAN HIEROGLYPH A036;Lo;0;L;;;;;N;;;;;
-1302A;EGYPTIAN HIEROGLYPH A037;Lo;0;L;;;;;N;;;;;
-1302B;EGYPTIAN HIEROGLYPH A038;Lo;0;L;;;;;N;;;;;
-1302C;EGYPTIAN HIEROGLYPH A039;Lo;0;L;;;;;N;;;;;
-1302D;EGYPTIAN HIEROGLYPH A040;Lo;0;L;;;;;N;;;;;
-1302E;EGYPTIAN HIEROGLYPH A040A;Lo;0;L;;;;;N;;;;;
-1302F;EGYPTIAN HIEROGLYPH A041;Lo;0;L;;;;;N;;;;;
-13030;EGYPTIAN HIEROGLYPH A042;Lo;0;L;;;;;N;;;;;
-13031;EGYPTIAN HIEROGLYPH A042A;Lo;0;L;;;;;N;;;;;
-13032;EGYPTIAN HIEROGLYPH A043;Lo;0;L;;;;;N;;;;;
-13033;EGYPTIAN HIEROGLYPH A043A;Lo;0;L;;;;;N;;;;;
-13034;EGYPTIAN HIEROGLYPH A044;Lo;0;L;;;;;N;;;;;
-13035;EGYPTIAN HIEROGLYPH A045;Lo;0;L;;;;;N;;;;;
-13036;EGYPTIAN HIEROGLYPH A045A;Lo;0;L;;;;;N;;;;;
-13037;EGYPTIAN HIEROGLYPH A046;Lo;0;L;;;;;N;;;;;
-13038;EGYPTIAN HIEROGLYPH A047;Lo;0;L;;;;;N;;;;;
-13039;EGYPTIAN HIEROGLYPH A048;Lo;0;L;;;;;N;;;;;
-1303A;EGYPTIAN HIEROGLYPH A049;Lo;0;L;;;;;N;;;;;
-1303B;EGYPTIAN HIEROGLYPH A050;Lo;0;L;;;;;N;;;;;
-1303C;EGYPTIAN HIEROGLYPH A051;Lo;0;L;;;;;N;;;;;
-1303D;EGYPTIAN HIEROGLYPH A052;Lo;0;L;;;;;N;;;;;
-1303E;EGYPTIAN HIEROGLYPH A053;Lo;0;L;;;;;N;;;;;
-1303F;EGYPTIAN HIEROGLYPH A054;Lo;0;L;;;;;N;;;;;
-13040;EGYPTIAN HIEROGLYPH A055;Lo;0;L;;;;;N;;;;;
-13041;EGYPTIAN HIEROGLYPH A056;Lo;0;L;;;;;N;;;;;
-13042;EGYPTIAN HIEROGLYPH A057;Lo;0;L;;;;;N;;;;;
-13043;EGYPTIAN HIEROGLYPH A058;Lo;0;L;;;;;N;;;;;
-13044;EGYPTIAN HIEROGLYPH A059;Lo;0;L;;;;;N;;;;;
-13045;EGYPTIAN HIEROGLYPH A060;Lo;0;L;;;;;N;;;;;
-13046;EGYPTIAN HIEROGLYPH A061;Lo;0;L;;;;;N;;;;;
-13047;EGYPTIAN HIEROGLYPH A062;Lo;0;L;;;;;N;;;;;
-13048;EGYPTIAN HIEROGLYPH A063;Lo;0;L;;;;;N;;;;;
-13049;EGYPTIAN HIEROGLYPH A064;Lo;0;L;;;;;N;;;;;
-1304A;EGYPTIAN HIEROGLYPH A065;Lo;0;L;;;;;N;;;;;
-1304B;EGYPTIAN HIEROGLYPH A066;Lo;0;L;;;;;N;;;;;
-1304C;EGYPTIAN HIEROGLYPH A067;Lo;0;L;;;;;N;;;;;
-1304D;EGYPTIAN HIEROGLYPH A068;Lo;0;L;;;;;N;;;;;
-1304E;EGYPTIAN HIEROGLYPH A069;Lo;0;L;;;;;N;;;;;
-1304F;EGYPTIAN HIEROGLYPH A070;Lo;0;L;;;;;N;;;;;
-13050;EGYPTIAN HIEROGLYPH B001;Lo;0;L;;;;;N;;;;;
-13051;EGYPTIAN HIEROGLYPH B002;Lo;0;L;;;;;N;;;;;
-13052;EGYPTIAN HIEROGLYPH B003;Lo;0;L;;;;;N;;;;;
-13053;EGYPTIAN HIEROGLYPH B004;Lo;0;L;;;;;N;;;;;
-13054;EGYPTIAN HIEROGLYPH B005;Lo;0;L;;;;;N;;;;;
-13055;EGYPTIAN HIEROGLYPH B005A;Lo;0;L;;;;;N;;;;;
-13056;EGYPTIAN HIEROGLYPH B006;Lo;0;L;;;;;N;;;;;
-13057;EGYPTIAN HIEROGLYPH B007;Lo;0;L;;;;;N;;;;;
-13058;EGYPTIAN HIEROGLYPH B008;Lo;0;L;;;;;N;;;;;
-13059;EGYPTIAN HIEROGLYPH B009;Lo;0;L;;;;;N;;;;;
-1305A;EGYPTIAN HIEROGLYPH C001;Lo;0;L;;;;;N;;;;;
-1305B;EGYPTIAN HIEROGLYPH C002;Lo;0;L;;;;;N;;;;;
-1305C;EGYPTIAN HIEROGLYPH C002A;Lo;0;L;;;;;N;;;;;
-1305D;EGYPTIAN HIEROGLYPH C002B;Lo;0;L;;;;;N;;;;;
-1305E;EGYPTIAN HIEROGLYPH C002C;Lo;0;L;;;;;N;;;;;
-1305F;EGYPTIAN HIEROGLYPH C003;Lo;0;L;;;;;N;;;;;
-13060;EGYPTIAN HIEROGLYPH C004;Lo;0;L;;;;;N;;;;;
-13061;EGYPTIAN HIEROGLYPH C005;Lo;0;L;;;;;N;;;;;
-13062;EGYPTIAN HIEROGLYPH C006;Lo;0;L;;;;;N;;;;;
-13063;EGYPTIAN HIEROGLYPH C007;Lo;0;L;;;;;N;;;;;
-13064;EGYPTIAN HIEROGLYPH C008;Lo;0;L;;;;;N;;;;;
-13065;EGYPTIAN HIEROGLYPH C009;Lo;0;L;;;;;N;;;;;
-13066;EGYPTIAN HIEROGLYPH C010;Lo;0;L;;;;;N;;;;;
-13067;EGYPTIAN HIEROGLYPH C010A;Lo;0;L;;;;;N;;;;;
-13068;EGYPTIAN HIEROGLYPH C011;Lo;0;L;;;;;N;;;;;
-13069;EGYPTIAN HIEROGLYPH C012;Lo;0;L;;;;;N;;;;;
-1306A;EGYPTIAN HIEROGLYPH C013;Lo;0;L;;;;;N;;;;;
-1306B;EGYPTIAN HIEROGLYPH C014;Lo;0;L;;;;;N;;;;;
-1306C;EGYPTIAN HIEROGLYPH C015;Lo;0;L;;;;;N;;;;;
-1306D;EGYPTIAN HIEROGLYPH C016;Lo;0;L;;;;;N;;;;;
-1306E;EGYPTIAN HIEROGLYPH C017;Lo;0;L;;;;;N;;;;;
-1306F;EGYPTIAN HIEROGLYPH C018;Lo;0;L;;;;;N;;;;;
-13070;EGYPTIAN HIEROGLYPH C019;Lo;0;L;;;;;N;;;;;
-13071;EGYPTIAN HIEROGLYPH C020;Lo;0;L;;;;;N;;;;;
-13072;EGYPTIAN HIEROGLYPH C021;Lo;0;L;;;;;N;;;;;
-13073;EGYPTIAN HIEROGLYPH C022;Lo;0;L;;;;;N;;;;;
-13074;EGYPTIAN HIEROGLYPH C023;Lo;0;L;;;;;N;;;;;
-13075;EGYPTIAN HIEROGLYPH C024;Lo;0;L;;;;;N;;;;;
-13076;EGYPTIAN HIEROGLYPH D001;Lo;0;L;;;;;N;;;;;
-13077;EGYPTIAN HIEROGLYPH D002;Lo;0;L;;;;;N;;;;;
-13078;EGYPTIAN HIEROGLYPH D003;Lo;0;L;;;;;N;;;;;
-13079;EGYPTIAN HIEROGLYPH D004;Lo;0;L;;;;;N;;;;;
-1307A;EGYPTIAN HIEROGLYPH D005;Lo;0;L;;;;;N;;;;;
-1307B;EGYPTIAN HIEROGLYPH D006;Lo;0;L;;;;;N;;;;;
-1307C;EGYPTIAN HIEROGLYPH D007;Lo;0;L;;;;;N;;;;;
-1307D;EGYPTIAN HIEROGLYPH D008;Lo;0;L;;;;;N;;;;;
-1307E;EGYPTIAN HIEROGLYPH D008A;Lo;0;L;;;;;N;;;;;
-1307F;EGYPTIAN HIEROGLYPH D009;Lo;0;L;;;;;N;;;;;
-13080;EGYPTIAN HIEROGLYPH D010;Lo;0;L;;;;;N;;;;;
-13081;EGYPTIAN HIEROGLYPH D011;Lo;0;L;;;;;N;;;;;
-13082;EGYPTIAN HIEROGLYPH D012;Lo;0;L;;;;;N;;;;;
-13083;EGYPTIAN HIEROGLYPH D013;Lo;0;L;;;;;N;;;;;
-13084;EGYPTIAN HIEROGLYPH D014;Lo;0;L;;;;;N;;;;;
-13085;EGYPTIAN HIEROGLYPH D015;Lo;0;L;;;;;N;;;;;
-13086;EGYPTIAN HIEROGLYPH D016;Lo;0;L;;;;;N;;;;;
-13087;EGYPTIAN HIEROGLYPH D017;Lo;0;L;;;;;N;;;;;
-13088;EGYPTIAN HIEROGLYPH D018;Lo;0;L;;;;;N;;;;;
-13089;EGYPTIAN HIEROGLYPH D019;Lo;0;L;;;;;N;;;;;
-1308A;EGYPTIAN HIEROGLYPH D020;Lo;0;L;;;;;N;;;;;
-1308B;EGYPTIAN HIEROGLYPH D021;Lo;0;L;;;;;N;;;;;
-1308C;EGYPTIAN HIEROGLYPH D022;Lo;0;L;;;;;N;;;;;
-1308D;EGYPTIAN HIEROGLYPH D023;Lo;0;L;;;;;N;;;;;
-1308E;EGYPTIAN HIEROGLYPH D024;Lo;0;L;;;;;N;;;;;
-1308F;EGYPTIAN HIEROGLYPH D025;Lo;0;L;;;;;N;;;;;
-13090;EGYPTIAN HIEROGLYPH D026;Lo;0;L;;;;;N;;;;;
-13091;EGYPTIAN HIEROGLYPH D027;Lo;0;L;;;;;N;;;;;
-13092;EGYPTIAN HIEROGLYPH D027A;Lo;0;L;;;;;N;;;;;
-13093;EGYPTIAN HIEROGLYPH D028;Lo;0;L;;;;;N;;;;;
-13094;EGYPTIAN HIEROGLYPH D029;Lo;0;L;;;;;N;;;;;
-13095;EGYPTIAN HIEROGLYPH D030;Lo;0;L;;;;;N;;;;;
-13096;EGYPTIAN HIEROGLYPH D031;Lo;0;L;;;;;N;;;;;
-13097;EGYPTIAN HIEROGLYPH D031A;Lo;0;L;;;;;N;;;;;
-13098;EGYPTIAN HIEROGLYPH D032;Lo;0;L;;;;;N;;;;;
-13099;EGYPTIAN HIEROGLYPH D033;Lo;0;L;;;;;N;;;;;
-1309A;EGYPTIAN HIEROGLYPH D034;Lo;0;L;;;;;N;;;;;
-1309B;EGYPTIAN HIEROGLYPH D034A;Lo;0;L;;;;;N;;;;;
-1309C;EGYPTIAN HIEROGLYPH D035;Lo;0;L;;;;;N;;;;;
-1309D;EGYPTIAN HIEROGLYPH D036;Lo;0;L;;;;;N;;;;;
-1309E;EGYPTIAN HIEROGLYPH D037;Lo;0;L;;;;;N;;;;;
-1309F;EGYPTIAN HIEROGLYPH D038;Lo;0;L;;;;;N;;;;;
-130A0;EGYPTIAN HIEROGLYPH D039;Lo;0;L;;;;;N;;;;;
-130A1;EGYPTIAN HIEROGLYPH D040;Lo;0;L;;;;;N;;;;;
-130A2;EGYPTIAN HIEROGLYPH D041;Lo;0;L;;;;;N;;;;;
-130A3;EGYPTIAN HIEROGLYPH D042;Lo;0;L;;;;;N;;;;;
-130A4;EGYPTIAN HIEROGLYPH D043;Lo;0;L;;;;;N;;;;;
-130A5;EGYPTIAN HIEROGLYPH D044;Lo;0;L;;;;;N;;;;;
-130A6;EGYPTIAN HIEROGLYPH D045;Lo;0;L;;;;;N;;;;;
-130A7;EGYPTIAN HIEROGLYPH D046;Lo;0;L;;;;;N;;;;;
-130A8;EGYPTIAN HIEROGLYPH D046A;Lo;0;L;;;;;N;;;;;
-130A9;EGYPTIAN HIEROGLYPH D047;Lo;0;L;;;;;N;;;;;
-130AA;EGYPTIAN HIEROGLYPH D048;Lo;0;L;;;;;N;;;;;
-130AB;EGYPTIAN HIEROGLYPH D048A;Lo;0;L;;;;;N;;;;;
-130AC;EGYPTIAN HIEROGLYPH D049;Lo;0;L;;;;;N;;;;;
-130AD;EGYPTIAN HIEROGLYPH D050;Lo;0;L;;;;;N;;;;;
-130AE;EGYPTIAN HIEROGLYPH D050A;Lo;0;L;;;;;N;;;;;
-130AF;EGYPTIAN HIEROGLYPH D050B;Lo;0;L;;;;;N;;;;;
-130B0;EGYPTIAN HIEROGLYPH D050C;Lo;0;L;;;;;N;;;;;
-130B1;EGYPTIAN HIEROGLYPH D050D;Lo;0;L;;;;;N;;;;;
-130B2;EGYPTIAN HIEROGLYPH D050E;Lo;0;L;;;;;N;;;;;
-130B3;EGYPTIAN HIEROGLYPH D050F;Lo;0;L;;;;;N;;;;;
-130B4;EGYPTIAN HIEROGLYPH D050G;Lo;0;L;;;;;N;;;;;
-130B5;EGYPTIAN HIEROGLYPH D050H;Lo;0;L;;;;;N;;;;;
-130B6;EGYPTIAN HIEROGLYPH D050I;Lo;0;L;;;;;N;;;;;
-130B7;EGYPTIAN HIEROGLYPH D051;Lo;0;L;;;;;N;;;;;
-130B8;EGYPTIAN HIEROGLYPH D052;Lo;0;L;;;;;N;;;;;
-130B9;EGYPTIAN HIEROGLYPH D052A;Lo;0;L;;;;;N;;;;;
-130BA;EGYPTIAN HIEROGLYPH D053;Lo;0;L;;;;;N;;;;;
-130BB;EGYPTIAN HIEROGLYPH D054;Lo;0;L;;;;;N;;;;;
-130BC;EGYPTIAN HIEROGLYPH D054A;Lo;0;L;;;;;N;;;;;
-130BD;EGYPTIAN HIEROGLYPH D055;Lo;0;L;;;;;N;;;;;
-130BE;EGYPTIAN HIEROGLYPH D056;Lo;0;L;;;;;N;;;;;
-130BF;EGYPTIAN HIEROGLYPH D057;Lo;0;L;;;;;N;;;;;
-130C0;EGYPTIAN HIEROGLYPH D058;Lo;0;L;;;;;N;;;;;
-130C1;EGYPTIAN HIEROGLYPH D059;Lo;0;L;;;;;N;;;;;
-130C2;EGYPTIAN HIEROGLYPH D060;Lo;0;L;;;;;N;;;;;
-130C3;EGYPTIAN HIEROGLYPH D061;Lo;0;L;;;;;N;;;;;
-130C4;EGYPTIAN HIEROGLYPH D062;Lo;0;L;;;;;N;;;;;
-130C5;EGYPTIAN HIEROGLYPH D063;Lo;0;L;;;;;N;;;;;
-130C6;EGYPTIAN HIEROGLYPH D064;Lo;0;L;;;;;N;;;;;
-130C7;EGYPTIAN HIEROGLYPH D065;Lo;0;L;;;;;N;;;;;
-130C8;EGYPTIAN HIEROGLYPH D066;Lo;0;L;;;;;N;;;;;
-130C9;EGYPTIAN HIEROGLYPH D067;Lo;0;L;;;;;N;;;;;
-130CA;EGYPTIAN HIEROGLYPH D067A;Lo;0;L;;;;;N;;;;;
-130CB;EGYPTIAN HIEROGLYPH D067B;Lo;0;L;;;;;N;;;;;
-130CC;EGYPTIAN HIEROGLYPH D067C;Lo;0;L;;;;;N;;;;;
-130CD;EGYPTIAN HIEROGLYPH D067D;Lo;0;L;;;;;N;;;;;
-130CE;EGYPTIAN HIEROGLYPH D067E;Lo;0;L;;;;;N;;;;;
-130CF;EGYPTIAN HIEROGLYPH D067F;Lo;0;L;;;;;N;;;;;
-130D0;EGYPTIAN HIEROGLYPH D067G;Lo;0;L;;;;;N;;;;;
-130D1;EGYPTIAN HIEROGLYPH D067H;Lo;0;L;;;;;N;;;;;
-130D2;EGYPTIAN HIEROGLYPH E001;Lo;0;L;;;;;N;;;;;
-130D3;EGYPTIAN HIEROGLYPH E002;Lo;0;L;;;;;N;;;;;
-130D4;EGYPTIAN HIEROGLYPH E003;Lo;0;L;;;;;N;;;;;
-130D5;EGYPTIAN HIEROGLYPH E004;Lo;0;L;;;;;N;;;;;
-130D6;EGYPTIAN HIEROGLYPH E005;Lo;0;L;;;;;N;;;;;
-130D7;EGYPTIAN HIEROGLYPH E006;Lo;0;L;;;;;N;;;;;
-130D8;EGYPTIAN HIEROGLYPH E007;Lo;0;L;;;;;N;;;;;
-130D9;EGYPTIAN HIEROGLYPH E008;Lo;0;L;;;;;N;;;;;
-130DA;EGYPTIAN HIEROGLYPH E008A;Lo;0;L;;;;;N;;;;;
-130DB;EGYPTIAN HIEROGLYPH E009;Lo;0;L;;;;;N;;;;;
-130DC;EGYPTIAN HIEROGLYPH E009A;Lo;0;L;;;;;N;;;;;
-130DD;EGYPTIAN HIEROGLYPH E010;Lo;0;L;;;;;N;;;;;
-130DE;EGYPTIAN HIEROGLYPH E011;Lo;0;L;;;;;N;;;;;
-130DF;EGYPTIAN HIEROGLYPH E012;Lo;0;L;;;;;N;;;;;
-130E0;EGYPTIAN HIEROGLYPH E013;Lo;0;L;;;;;N;;;;;
-130E1;EGYPTIAN HIEROGLYPH E014;Lo;0;L;;;;;N;;;;;
-130E2;EGYPTIAN HIEROGLYPH E015;Lo;0;L;;;;;N;;;;;
-130E3;EGYPTIAN HIEROGLYPH E016;Lo;0;L;;;;;N;;;;;
-130E4;EGYPTIAN HIEROGLYPH E016A;Lo;0;L;;;;;N;;;;;
-130E5;EGYPTIAN HIEROGLYPH E017;Lo;0;L;;;;;N;;;;;
-130E6;EGYPTIAN HIEROGLYPH E017A;Lo;0;L;;;;;N;;;;;
-130E7;EGYPTIAN HIEROGLYPH E018;Lo;0;L;;;;;N;;;;;
-130E8;EGYPTIAN HIEROGLYPH E019;Lo;0;L;;;;;N;;;;;
-130E9;EGYPTIAN HIEROGLYPH E020;Lo;0;L;;;;;N;;;;;
-130EA;EGYPTIAN HIEROGLYPH E020A;Lo;0;L;;;;;N;;;;;
-130EB;EGYPTIAN HIEROGLYPH E021;Lo;0;L;;;;;N;;;;;
-130EC;EGYPTIAN HIEROGLYPH E022;Lo;0;L;;;;;N;;;;;
-130ED;EGYPTIAN HIEROGLYPH E023;Lo;0;L;;;;;N;;;;;
-130EE;EGYPTIAN HIEROGLYPH E024;Lo;0;L;;;;;N;;;;;
-130EF;EGYPTIAN HIEROGLYPH E025;Lo;0;L;;;;;N;;;;;
-130F0;EGYPTIAN HIEROGLYPH E026;Lo;0;L;;;;;N;;;;;
-130F1;EGYPTIAN HIEROGLYPH E027;Lo;0;L;;;;;N;;;;;
-130F2;EGYPTIAN HIEROGLYPH E028;Lo;0;L;;;;;N;;;;;
-130F3;EGYPTIAN HIEROGLYPH E028A;Lo;0;L;;;;;N;;;;;
-130F4;EGYPTIAN HIEROGLYPH E029;Lo;0;L;;;;;N;;;;;
-130F5;EGYPTIAN HIEROGLYPH E030;Lo;0;L;;;;;N;;;;;
-130F6;EGYPTIAN HIEROGLYPH E031;Lo;0;L;;;;;N;;;;;
-130F7;EGYPTIAN HIEROGLYPH E032;Lo;0;L;;;;;N;;;;;
-130F8;EGYPTIAN HIEROGLYPH E033;Lo;0;L;;;;;N;;;;;
-130F9;EGYPTIAN HIEROGLYPH E034;Lo;0;L;;;;;N;;;;;
-130FA;EGYPTIAN HIEROGLYPH E034A;Lo;0;L;;;;;N;;;;;
-130FB;EGYPTIAN HIEROGLYPH E036;Lo;0;L;;;;;N;;;;;
-130FC;EGYPTIAN HIEROGLYPH E037;Lo;0;L;;;;;N;;;;;
-130FD;EGYPTIAN HIEROGLYPH E038;Lo;0;L;;;;;N;;;;;
-130FE;EGYPTIAN HIEROGLYPH F001;Lo;0;L;;;;;N;;;;;
-130FF;EGYPTIAN HIEROGLYPH F001A;Lo;0;L;;;;;N;;;;;
-13100;EGYPTIAN HIEROGLYPH F002;Lo;0;L;;;;;N;;;;;
-13101;EGYPTIAN HIEROGLYPH F003;Lo;0;L;;;;;N;;;;;
-13102;EGYPTIAN HIEROGLYPH F004;Lo;0;L;;;;;N;;;;;
-13103;EGYPTIAN HIEROGLYPH F005;Lo;0;L;;;;;N;;;;;
-13104;EGYPTIAN HIEROGLYPH F006;Lo;0;L;;;;;N;;;;;
-13105;EGYPTIAN HIEROGLYPH F007;Lo;0;L;;;;;N;;;;;
-13106;EGYPTIAN HIEROGLYPH F008;Lo;0;L;;;;;N;;;;;
-13107;EGYPTIAN HIEROGLYPH F009;Lo;0;L;;;;;N;;;;;
-13108;EGYPTIAN HIEROGLYPH F010;Lo;0;L;;;;;N;;;;;
-13109;EGYPTIAN HIEROGLYPH F011;Lo;0;L;;;;;N;;;;;
-1310A;EGYPTIAN HIEROGLYPH F012;Lo;0;L;;;;;N;;;;;
-1310B;EGYPTIAN HIEROGLYPH F013;Lo;0;L;;;;;N;;;;;
-1310C;EGYPTIAN HIEROGLYPH F013A;Lo;0;L;;;;;N;;;;;
-1310D;EGYPTIAN HIEROGLYPH F014;Lo;0;L;;;;;N;;;;;
-1310E;EGYPTIAN HIEROGLYPH F015;Lo;0;L;;;;;N;;;;;
-1310F;EGYPTIAN HIEROGLYPH F016;Lo;0;L;;;;;N;;;;;
-13110;EGYPTIAN HIEROGLYPH F017;Lo;0;L;;;;;N;;;;;
-13111;EGYPTIAN HIEROGLYPH F018;Lo;0;L;;;;;N;;;;;
-13112;EGYPTIAN HIEROGLYPH F019;Lo;0;L;;;;;N;;;;;
-13113;EGYPTIAN HIEROGLYPH F020;Lo;0;L;;;;;N;;;;;
-13114;EGYPTIAN HIEROGLYPH F021;Lo;0;L;;;;;N;;;;;
-13115;EGYPTIAN HIEROGLYPH F021A;Lo;0;L;;;;;N;;;;;
-13116;EGYPTIAN HIEROGLYPH F022;Lo;0;L;;;;;N;;;;;
-13117;EGYPTIAN HIEROGLYPH F023;Lo;0;L;;;;;N;;;;;
-13118;EGYPTIAN HIEROGLYPH F024;Lo;0;L;;;;;N;;;;;
-13119;EGYPTIAN HIEROGLYPH F025;Lo;0;L;;;;;N;;;;;
-1311A;EGYPTIAN HIEROGLYPH F026;Lo;0;L;;;;;N;;;;;
-1311B;EGYPTIAN HIEROGLYPH F027;Lo;0;L;;;;;N;;;;;
-1311C;EGYPTIAN HIEROGLYPH F028;Lo;0;L;;;;;N;;;;;
-1311D;EGYPTIAN HIEROGLYPH F029;Lo;0;L;;;;;N;;;;;
-1311E;EGYPTIAN HIEROGLYPH F030;Lo;0;L;;;;;N;;;;;
-1311F;EGYPTIAN HIEROGLYPH F031;Lo;0;L;;;;;N;;;;;
-13120;EGYPTIAN HIEROGLYPH F031A;Lo;0;L;;;;;N;;;;;
-13121;EGYPTIAN HIEROGLYPH F032;Lo;0;L;;;;;N;;;;;
-13122;EGYPTIAN HIEROGLYPH F033;Lo;0;L;;;;;N;;;;;
-13123;EGYPTIAN HIEROGLYPH F034;Lo;0;L;;;;;N;;;;;
-13124;EGYPTIAN HIEROGLYPH F035;Lo;0;L;;;;;N;;;;;
-13125;EGYPTIAN HIEROGLYPH F036;Lo;0;L;;;;;N;;;;;
-13126;EGYPTIAN HIEROGLYPH F037;Lo;0;L;;;;;N;;;;;
-13127;EGYPTIAN HIEROGLYPH F037A;Lo;0;L;;;;;N;;;;;
-13128;EGYPTIAN HIEROGLYPH F038;Lo;0;L;;;;;N;;;;;
-13129;EGYPTIAN HIEROGLYPH F038A;Lo;0;L;;;;;N;;;;;
-1312A;EGYPTIAN HIEROGLYPH F039;Lo;0;L;;;;;N;;;;;
-1312B;EGYPTIAN HIEROGLYPH F040;Lo;0;L;;;;;N;;;;;
-1312C;EGYPTIAN HIEROGLYPH F041;Lo;0;L;;;;;N;;;;;
-1312D;EGYPTIAN HIEROGLYPH F042;Lo;0;L;;;;;N;;;;;
-1312E;EGYPTIAN HIEROGLYPH F043;Lo;0;L;;;;;N;;;;;
-1312F;EGYPTIAN HIEROGLYPH F044;Lo;0;L;;;;;N;;;;;
-13130;EGYPTIAN HIEROGLYPH F045;Lo;0;L;;;;;N;;;;;
-13131;EGYPTIAN HIEROGLYPH F045A;Lo;0;L;;;;;N;;;;;
-13132;EGYPTIAN HIEROGLYPH F046;Lo;0;L;;;;;N;;;;;
-13133;EGYPTIAN HIEROGLYPH F046A;Lo;0;L;;;;;N;;;;;
-13134;EGYPTIAN HIEROGLYPH F047;Lo;0;L;;;;;N;;;;;
-13135;EGYPTIAN HIEROGLYPH F047A;Lo;0;L;;;;;N;;;;;
-13136;EGYPTIAN HIEROGLYPH F048;Lo;0;L;;;;;N;;;;;
-13137;EGYPTIAN HIEROGLYPH F049;Lo;0;L;;;;;N;;;;;
-13138;EGYPTIAN HIEROGLYPH F050;Lo;0;L;;;;;N;;;;;
-13139;EGYPTIAN HIEROGLYPH F051;Lo;0;L;;;;;N;;;;;
-1313A;EGYPTIAN HIEROGLYPH F051A;Lo;0;L;;;;;N;;;;;
-1313B;EGYPTIAN HIEROGLYPH F051B;Lo;0;L;;;;;N;;;;;
-1313C;EGYPTIAN HIEROGLYPH F051C;Lo;0;L;;;;;N;;;;;
-1313D;EGYPTIAN HIEROGLYPH F052;Lo;0;L;;;;;N;;;;;
-1313E;EGYPTIAN HIEROGLYPH F053;Lo;0;L;;;;;N;;;;;
-1313F;EGYPTIAN HIEROGLYPH G001;Lo;0;L;;;;;N;;;;;
-13140;EGYPTIAN HIEROGLYPH G002;Lo;0;L;;;;;N;;;;;
-13141;EGYPTIAN HIEROGLYPH G003;Lo;0;L;;;;;N;;;;;
-13142;EGYPTIAN HIEROGLYPH G004;Lo;0;L;;;;;N;;;;;
-13143;EGYPTIAN HIEROGLYPH G005;Lo;0;L;;;;;N;;;;;
-13144;EGYPTIAN HIEROGLYPH G006;Lo;0;L;;;;;N;;;;;
-13145;EGYPTIAN HIEROGLYPH G006A;Lo;0;L;;;;;N;;;;;
-13146;EGYPTIAN HIEROGLYPH G007;Lo;0;L;;;;;N;;;;;
-13147;EGYPTIAN HIEROGLYPH G007A;Lo;0;L;;;;;N;;;;;
-13148;EGYPTIAN HIEROGLYPH G007B;Lo;0;L;;;;;N;;;;;
-13149;EGYPTIAN HIEROGLYPH G008;Lo;0;L;;;;;N;;;;;
-1314A;EGYPTIAN HIEROGLYPH G009;Lo;0;L;;;;;N;;;;;
-1314B;EGYPTIAN HIEROGLYPH G010;Lo;0;L;;;;;N;;;;;
-1314C;EGYPTIAN HIEROGLYPH G011;Lo;0;L;;;;;N;;;;;
-1314D;EGYPTIAN HIEROGLYPH G011A;Lo;0;L;;;;;N;;;;;
-1314E;EGYPTIAN HIEROGLYPH G012;Lo;0;L;;;;;N;;;;;
-1314F;EGYPTIAN HIEROGLYPH G013;Lo;0;L;;;;;N;;;;;
-13150;EGYPTIAN HIEROGLYPH G014;Lo;0;L;;;;;N;;;;;
-13151;EGYPTIAN HIEROGLYPH G015;Lo;0;L;;;;;N;;;;;
-13152;EGYPTIAN HIEROGLYPH G016;Lo;0;L;;;;;N;;;;;
-13153;EGYPTIAN HIEROGLYPH G017;Lo;0;L;;;;;N;;;;;
-13154;EGYPTIAN HIEROGLYPH G018;Lo;0;L;;;;;N;;;;;
-13155;EGYPTIAN HIEROGLYPH G019;Lo;0;L;;;;;N;;;;;
-13156;EGYPTIAN HIEROGLYPH G020;Lo;0;L;;;;;N;;;;;
-13157;EGYPTIAN HIEROGLYPH G020A;Lo;0;L;;;;;N;;;;;
-13158;EGYPTIAN HIEROGLYPH G021;Lo;0;L;;;;;N;;;;;
-13159;EGYPTIAN HIEROGLYPH G022;Lo;0;L;;;;;N;;;;;
-1315A;EGYPTIAN HIEROGLYPH G023;Lo;0;L;;;;;N;;;;;
-1315B;EGYPTIAN HIEROGLYPH G024;Lo;0;L;;;;;N;;;;;
-1315C;EGYPTIAN HIEROGLYPH G025;Lo;0;L;;;;;N;;;;;
-1315D;EGYPTIAN HIEROGLYPH G026;Lo;0;L;;;;;N;;;;;
-1315E;EGYPTIAN HIEROGLYPH G026A;Lo;0;L;;;;;N;;;;;
-1315F;EGYPTIAN HIEROGLYPH G027;Lo;0;L;;;;;N;;;;;
-13160;EGYPTIAN HIEROGLYPH G028;Lo;0;L;;;;;N;;;;;
-13161;EGYPTIAN HIEROGLYPH G029;Lo;0;L;;;;;N;;;;;
-13162;EGYPTIAN HIEROGLYPH G030;Lo;0;L;;;;;N;;;;;
-13163;EGYPTIAN HIEROGLYPH G031;Lo;0;L;;;;;N;;;;;
-13164;EGYPTIAN HIEROGLYPH G032;Lo;0;L;;;;;N;;;;;
-13165;EGYPTIAN HIEROGLYPH G033;Lo;0;L;;;;;N;;;;;
-13166;EGYPTIAN HIEROGLYPH G034;Lo;0;L;;;;;N;;;;;
-13167;EGYPTIAN HIEROGLYPH G035;Lo;0;L;;;;;N;;;;;
-13168;EGYPTIAN HIEROGLYPH G036;Lo;0;L;;;;;N;;;;;
-13169;EGYPTIAN HIEROGLYPH G036A;Lo;0;L;;;;;N;;;;;
-1316A;EGYPTIAN HIEROGLYPH G037;Lo;0;L;;;;;N;;;;;
-1316B;EGYPTIAN HIEROGLYPH G037A;Lo;0;L;;;;;N;;;;;
-1316C;EGYPTIAN HIEROGLYPH G038;Lo;0;L;;;;;N;;;;;
-1316D;EGYPTIAN HIEROGLYPH G039;Lo;0;L;;;;;N;;;;;
-1316E;EGYPTIAN HIEROGLYPH G040;Lo;0;L;;;;;N;;;;;
-1316F;EGYPTIAN HIEROGLYPH G041;Lo;0;L;;;;;N;;;;;
-13170;EGYPTIAN HIEROGLYPH G042;Lo;0;L;;;;;N;;;;;
-13171;EGYPTIAN HIEROGLYPH G043;Lo;0;L;;;;;N;;;;;
-13172;EGYPTIAN HIEROGLYPH G043A;Lo;0;L;;;;;N;;;;;
-13173;EGYPTIAN HIEROGLYPH G044;Lo;0;L;;;;;N;;;;;
-13174;EGYPTIAN HIEROGLYPH G045;Lo;0;L;;;;;N;;;;;
-13175;EGYPTIAN HIEROGLYPH G045A;Lo;0;L;;;;;N;;;;;
-13176;EGYPTIAN HIEROGLYPH G046;Lo;0;L;;;;;N;;;;;
-13177;EGYPTIAN HIEROGLYPH G047;Lo;0;L;;;;;N;;;;;
-13178;EGYPTIAN HIEROGLYPH G048;Lo;0;L;;;;;N;;;;;
-13179;EGYPTIAN HIEROGLYPH G049;Lo;0;L;;;;;N;;;;;
-1317A;EGYPTIAN HIEROGLYPH G050;Lo;0;L;;;;;N;;;;;
-1317B;EGYPTIAN HIEROGLYPH G051;Lo;0;L;;;;;N;;;;;
-1317C;EGYPTIAN HIEROGLYPH G052;Lo;0;L;;;;;N;;;;;
-1317D;EGYPTIAN HIEROGLYPH G053;Lo;0;L;;;;;N;;;;;
-1317E;EGYPTIAN HIEROGLYPH G054;Lo;0;L;;;;;N;;;;;
-1317F;EGYPTIAN HIEROGLYPH H001;Lo;0;L;;;;;N;;;;;
-13180;EGYPTIAN HIEROGLYPH H002;Lo;0;L;;;;;N;;;;;
-13181;EGYPTIAN HIEROGLYPH H003;Lo;0;L;;;;;N;;;;;
-13182;EGYPTIAN HIEROGLYPH H004;Lo;0;L;;;;;N;;;;;
-13183;EGYPTIAN HIEROGLYPH H005;Lo;0;L;;;;;N;;;;;
-13184;EGYPTIAN HIEROGLYPH H006;Lo;0;L;;;;;N;;;;;
-13185;EGYPTIAN HIEROGLYPH H006A;Lo;0;L;;;;;N;;;;;
-13186;EGYPTIAN HIEROGLYPH H007;Lo;0;L;;;;;N;;;;;
-13187;EGYPTIAN HIEROGLYPH H008;Lo;0;L;;;;;N;;;;;
-13188;EGYPTIAN HIEROGLYPH I001;Lo;0;L;;;;;N;;;;;
-13189;EGYPTIAN HIEROGLYPH I002;Lo;0;L;;;;;N;;;;;
-1318A;EGYPTIAN HIEROGLYPH I003;Lo;0;L;;;;;N;;;;;
-1318B;EGYPTIAN HIEROGLYPH I004;Lo;0;L;;;;;N;;;;;
-1318C;EGYPTIAN HIEROGLYPH I005;Lo;0;L;;;;;N;;;;;
-1318D;EGYPTIAN HIEROGLYPH I005A;Lo;0;L;;;;;N;;;;;
-1318E;EGYPTIAN HIEROGLYPH I006;Lo;0;L;;;;;N;;;;;
-1318F;EGYPTIAN HIEROGLYPH I007;Lo;0;L;;;;;N;;;;;
-13190;EGYPTIAN HIEROGLYPH I008;Lo;0;L;;;;;N;;;;;
-13191;EGYPTIAN HIEROGLYPH I009;Lo;0;L;;;;;N;;;;;
-13192;EGYPTIAN HIEROGLYPH I009A;Lo;0;L;;;;;N;;;;;
-13193;EGYPTIAN HIEROGLYPH I010;Lo;0;L;;;;;N;;;;;
-13194;EGYPTIAN HIEROGLYPH I010A;Lo;0;L;;;;;N;;;;;
-13195;EGYPTIAN HIEROGLYPH I011;Lo;0;L;;;;;N;;;;;
-13196;EGYPTIAN HIEROGLYPH I011A;Lo;0;L;;;;;N;;;;;
-13197;EGYPTIAN HIEROGLYPH I012;Lo;0;L;;;;;N;;;;;
-13198;EGYPTIAN HIEROGLYPH I013;Lo;0;L;;;;;N;;;;;
-13199;EGYPTIAN HIEROGLYPH I014;Lo;0;L;;;;;N;;;;;
-1319A;EGYPTIAN HIEROGLYPH I015;Lo;0;L;;;;;N;;;;;
-1319B;EGYPTIAN HIEROGLYPH K001;Lo;0;L;;;;;N;;;;;
-1319C;EGYPTIAN HIEROGLYPH K002;Lo;0;L;;;;;N;;;;;
-1319D;EGYPTIAN HIEROGLYPH K003;Lo;0;L;;;;;N;;;;;
-1319E;EGYPTIAN HIEROGLYPH K004;Lo;0;L;;;;;N;;;;;
-1319F;EGYPTIAN HIEROGLYPH K005;Lo;0;L;;;;;N;;;;;
-131A0;EGYPTIAN HIEROGLYPH K006;Lo;0;L;;;;;N;;;;;
-131A1;EGYPTIAN HIEROGLYPH K007;Lo;0;L;;;;;N;;;;;
-131A2;EGYPTIAN HIEROGLYPH K008;Lo;0;L;;;;;N;;;;;
-131A3;EGYPTIAN HIEROGLYPH L001;Lo;0;L;;;;;N;;;;;
-131A4;EGYPTIAN HIEROGLYPH L002;Lo;0;L;;;;;N;;;;;
-131A5;EGYPTIAN HIEROGLYPH L002A;Lo;0;L;;;;;N;;;;;
-131A6;EGYPTIAN HIEROGLYPH L003;Lo;0;L;;;;;N;;;;;
-131A7;EGYPTIAN HIEROGLYPH L004;Lo;0;L;;;;;N;;;;;
-131A8;EGYPTIAN HIEROGLYPH L005;Lo;0;L;;;;;N;;;;;
-131A9;EGYPTIAN HIEROGLYPH L006;Lo;0;L;;;;;N;;;;;
-131AA;EGYPTIAN HIEROGLYPH L006A;Lo;0;L;;;;;N;;;;;
-131AB;EGYPTIAN HIEROGLYPH L007;Lo;0;L;;;;;N;;;;;
-131AC;EGYPTIAN HIEROGLYPH L008;Lo;0;L;;;;;N;;;;;
-131AD;EGYPTIAN HIEROGLYPH M001;Lo;0;L;;;;;N;;;;;
-131AE;EGYPTIAN HIEROGLYPH M001A;Lo;0;L;;;;;N;;;;;
-131AF;EGYPTIAN HIEROGLYPH M001B;Lo;0;L;;;;;N;;;;;
-131B0;EGYPTIAN HIEROGLYPH M002;Lo;0;L;;;;;N;;;;;
-131B1;EGYPTIAN HIEROGLYPH M003;Lo;0;L;;;;;N;;;;;
-131B2;EGYPTIAN HIEROGLYPH M003A;Lo;0;L;;;;;N;;;;;
-131B3;EGYPTIAN HIEROGLYPH M004;Lo;0;L;;;;;N;;;;;
-131B4;EGYPTIAN HIEROGLYPH M005;Lo;0;L;;;;;N;;;;;
-131B5;EGYPTIAN HIEROGLYPH M006;Lo;0;L;;;;;N;;;;;
-131B6;EGYPTIAN HIEROGLYPH M007;Lo;0;L;;;;;N;;;;;
-131B7;EGYPTIAN HIEROGLYPH M008;Lo;0;L;;;;;N;;;;;
-131B8;EGYPTIAN HIEROGLYPH M009;Lo;0;L;;;;;N;;;;;
-131B9;EGYPTIAN HIEROGLYPH M010;Lo;0;L;;;;;N;;;;;
-131BA;EGYPTIAN HIEROGLYPH M010A;Lo;0;L;;;;;N;;;;;
-131BB;EGYPTIAN HIEROGLYPH M011;Lo;0;L;;;;;N;;;;;
-131BC;EGYPTIAN HIEROGLYPH M012;Lo;0;L;;;;;N;;;;;
-131BD;EGYPTIAN HIEROGLYPH M012A;Lo;0;L;;;;;N;;;;;
-131BE;EGYPTIAN HIEROGLYPH M012B;Lo;0;L;;;;;N;;;;;
-131BF;EGYPTIAN HIEROGLYPH M012C;Lo;0;L;;;;;N;;;;;
-131C0;EGYPTIAN HIEROGLYPH M012D;Lo;0;L;;;;;N;;;;;
-131C1;EGYPTIAN HIEROGLYPH M012E;Lo;0;L;;;;;N;;;;;
-131C2;EGYPTIAN HIEROGLYPH M012F;Lo;0;L;;;;;N;;;;;
-131C3;EGYPTIAN HIEROGLYPH M012G;Lo;0;L;;;;;N;;;;;
-131C4;EGYPTIAN HIEROGLYPH M012H;Lo;0;L;;;;;N;;;;;
-131C5;EGYPTIAN HIEROGLYPH M013;Lo;0;L;;;;;N;;;;;
-131C6;EGYPTIAN HIEROGLYPH M014;Lo;0;L;;;;;N;;;;;
-131C7;EGYPTIAN HIEROGLYPH M015;Lo;0;L;;;;;N;;;;;
-131C8;EGYPTIAN HIEROGLYPH M015A;Lo;0;L;;;;;N;;;;;
-131C9;EGYPTIAN HIEROGLYPH M016;Lo;0;L;;;;;N;;;;;
-131CA;EGYPTIAN HIEROGLYPH M016A;Lo;0;L;;;;;N;;;;;
-131CB;EGYPTIAN HIEROGLYPH M017;Lo;0;L;;;;;N;;;;;
-131CC;EGYPTIAN HIEROGLYPH M017A;Lo;0;L;;;;;N;;;;;
-131CD;EGYPTIAN HIEROGLYPH M018;Lo;0;L;;;;;N;;;;;
-131CE;EGYPTIAN HIEROGLYPH M019;Lo;0;L;;;;;N;;;;;
-131CF;EGYPTIAN HIEROGLYPH M020;Lo;0;L;;;;;N;;;;;
-131D0;EGYPTIAN HIEROGLYPH M021;Lo;0;L;;;;;N;;;;;
-131D1;EGYPTIAN HIEROGLYPH M022;Lo;0;L;;;;;N;;;;;
-131D2;EGYPTIAN HIEROGLYPH M022A;Lo;0;L;;;;;N;;;;;
-131D3;EGYPTIAN HIEROGLYPH M023;Lo;0;L;;;;;N;;;;;
-131D4;EGYPTIAN HIEROGLYPH M024;Lo;0;L;;;;;N;;;;;
-131D5;EGYPTIAN HIEROGLYPH M024A;Lo;0;L;;;;;N;;;;;
-131D6;EGYPTIAN HIEROGLYPH M025;Lo;0;L;;;;;N;;;;;
-131D7;EGYPTIAN HIEROGLYPH M026;Lo;0;L;;;;;N;;;;;
-131D8;EGYPTIAN HIEROGLYPH M027;Lo;0;L;;;;;N;;;;;
-131D9;EGYPTIAN HIEROGLYPH M028;Lo;0;L;;;;;N;;;;;
-131DA;EGYPTIAN HIEROGLYPH M028A;Lo;0;L;;;;;N;;;;;
-131DB;EGYPTIAN HIEROGLYPH M029;Lo;0;L;;;;;N;;;;;
-131DC;EGYPTIAN HIEROGLYPH M030;Lo;0;L;;;;;N;;;;;
-131DD;EGYPTIAN HIEROGLYPH M031;Lo;0;L;;;;;N;;;;;
-131DE;EGYPTIAN HIEROGLYPH M031A;Lo;0;L;;;;;N;;;;;
-131DF;EGYPTIAN HIEROGLYPH M032;Lo;0;L;;;;;N;;;;;
-131E0;EGYPTIAN HIEROGLYPH M033;Lo;0;L;;;;;N;;;;;
-131E1;EGYPTIAN HIEROGLYPH M033A;Lo;0;L;;;;;N;;;;;
-131E2;EGYPTIAN HIEROGLYPH M033B;Lo;0;L;;;;;N;;;;;
-131E3;EGYPTIAN HIEROGLYPH M034;Lo;0;L;;;;;N;;;;;
-131E4;EGYPTIAN HIEROGLYPH M035;Lo;0;L;;;;;N;;;;;
-131E5;EGYPTIAN HIEROGLYPH M036;Lo;0;L;;;;;N;;;;;
-131E6;EGYPTIAN HIEROGLYPH M037;Lo;0;L;;;;;N;;;;;
-131E7;EGYPTIAN HIEROGLYPH M038;Lo;0;L;;;;;N;;;;;
-131E8;EGYPTIAN HIEROGLYPH M039;Lo;0;L;;;;;N;;;;;
-131E9;EGYPTIAN HIEROGLYPH M040;Lo;0;L;;;;;N;;;;;
-131EA;EGYPTIAN HIEROGLYPH M040A;Lo;0;L;;;;;N;;;;;
-131EB;EGYPTIAN HIEROGLYPH M041;Lo;0;L;;;;;N;;;;;
-131EC;EGYPTIAN HIEROGLYPH M042;Lo;0;L;;;;;N;;;;;
-131ED;EGYPTIAN HIEROGLYPH M043;Lo;0;L;;;;;N;;;;;
-131EE;EGYPTIAN HIEROGLYPH M044;Lo;0;L;;;;;N;;;;;
-131EF;EGYPTIAN HIEROGLYPH N001;Lo;0;L;;;;;N;;;;;
-131F0;EGYPTIAN HIEROGLYPH N002;Lo;0;L;;;;;N;;;;;
-131F1;EGYPTIAN HIEROGLYPH N003;Lo;0;L;;;;;N;;;;;
-131F2;EGYPTIAN HIEROGLYPH N004;Lo;0;L;;;;;N;;;;;
-131F3;EGYPTIAN HIEROGLYPH N005;Lo;0;L;;;;;N;;;;;
-131F4;EGYPTIAN HIEROGLYPH N006;Lo;0;L;;;;;N;;;;;
-131F5;EGYPTIAN HIEROGLYPH N007;Lo;0;L;;;;;N;;;;;
-131F6;EGYPTIAN HIEROGLYPH N008;Lo;0;L;;;;;N;;;;;
-131F7;EGYPTIAN HIEROGLYPH N009;Lo;0;L;;;;;N;;;;;
-131F8;EGYPTIAN HIEROGLYPH N010;Lo;0;L;;;;;N;;;;;
-131F9;EGYPTIAN HIEROGLYPH N011;Lo;0;L;;;;;N;;;;;
-131FA;EGYPTIAN HIEROGLYPH N012;Lo;0;L;;;;;N;;;;;
-131FB;EGYPTIAN HIEROGLYPH N013;Lo;0;L;;;;;N;;;;;
-131FC;EGYPTIAN HIEROGLYPH N014;Lo;0;L;;;;;N;;;;;
-131FD;EGYPTIAN HIEROGLYPH N015;Lo;0;L;;;;;N;;;;;
-131FE;EGYPTIAN HIEROGLYPH N016;Lo;0;L;;;;;N;;;;;
-131FF;EGYPTIAN HIEROGLYPH N017;Lo;0;L;;;;;N;;;;;
-13200;EGYPTIAN HIEROGLYPH N018;Lo;0;L;;;;;N;;;;;
-13201;EGYPTIAN HIEROGLYPH N018A;Lo;0;L;;;;;N;;;;;
-13202;EGYPTIAN HIEROGLYPH N018B;Lo;0;L;;;;;N;;;;;
-13203;EGYPTIAN HIEROGLYPH N019;Lo;0;L;;;;;N;;;;;
-13204;EGYPTIAN HIEROGLYPH N020;Lo;0;L;;;;;N;;;;;
-13205;EGYPTIAN HIEROGLYPH N021;Lo;0;L;;;;;N;;;;;
-13206;EGYPTIAN HIEROGLYPH N022;Lo;0;L;;;;;N;;;;;
-13207;EGYPTIAN HIEROGLYPH N023;Lo;0;L;;;;;N;;;;;
-13208;EGYPTIAN HIEROGLYPH N024;Lo;0;L;;;;;N;;;;;
-13209;EGYPTIAN HIEROGLYPH N025;Lo;0;L;;;;;N;;;;;
-1320A;EGYPTIAN HIEROGLYPH N025A;Lo;0;L;;;;;N;;;;;
-1320B;EGYPTIAN HIEROGLYPH N026;Lo;0;L;;;;;N;;;;;
-1320C;EGYPTIAN HIEROGLYPH N027;Lo;0;L;;;;;N;;;;;
-1320D;EGYPTIAN HIEROGLYPH N028;Lo;0;L;;;;;N;;;;;
-1320E;EGYPTIAN HIEROGLYPH N029;Lo;0;L;;;;;N;;;;;
-1320F;EGYPTIAN HIEROGLYPH N030;Lo;0;L;;;;;N;;;;;
-13210;EGYPTIAN HIEROGLYPH N031;Lo;0;L;;;;;N;;;;;
-13211;EGYPTIAN HIEROGLYPH N032;Lo;0;L;;;;;N;;;;;
-13212;EGYPTIAN HIEROGLYPH N033;Lo;0;L;;;;;N;;;;;
-13213;EGYPTIAN HIEROGLYPH N033A;Lo;0;L;;;;;N;;;;;
-13214;EGYPTIAN HIEROGLYPH N034;Lo;0;L;;;;;N;;;;;
-13215;EGYPTIAN HIEROGLYPH N034A;Lo;0;L;;;;;N;;;;;
-13216;EGYPTIAN HIEROGLYPH N035;Lo;0;L;;;;;N;;;;;
-13217;EGYPTIAN HIEROGLYPH N035A;Lo;0;L;;;;;N;;;;;
-13218;EGYPTIAN HIEROGLYPH N036;Lo;0;L;;;;;N;;;;;
-13219;EGYPTIAN HIEROGLYPH N037;Lo;0;L;;;;;N;;;;;
-1321A;EGYPTIAN HIEROGLYPH N037A;Lo;0;L;;;;;N;;;;;
-1321B;EGYPTIAN HIEROGLYPH N038;Lo;0;L;;;;;N;;;;;
-1321C;EGYPTIAN HIEROGLYPH N039;Lo;0;L;;;;;N;;;;;
-1321D;EGYPTIAN HIEROGLYPH N040;Lo;0;L;;;;;N;;;;;
-1321E;EGYPTIAN HIEROGLYPH N041;Lo;0;L;;;;;N;;;;;
-1321F;EGYPTIAN HIEROGLYPH N042;Lo;0;L;;;;;N;;;;;
-13220;EGYPTIAN HIEROGLYPH NL001;Lo;0;L;;;;;N;;;;;
-13221;EGYPTIAN HIEROGLYPH NL002;Lo;0;L;;;;;N;;;;;
-13222;EGYPTIAN HIEROGLYPH NL003;Lo;0;L;;;;;N;;;;;
-13223;EGYPTIAN HIEROGLYPH NL004;Lo;0;L;;;;;N;;;;;
-13224;EGYPTIAN HIEROGLYPH NL005;Lo;0;L;;;;;N;;;;;
-13225;EGYPTIAN HIEROGLYPH NL005A;Lo;0;L;;;;;N;;;;;
-13226;EGYPTIAN HIEROGLYPH NL006;Lo;0;L;;;;;N;;;;;
-13227;EGYPTIAN HIEROGLYPH NL007;Lo;0;L;;;;;N;;;;;
-13228;EGYPTIAN HIEROGLYPH NL008;Lo;0;L;;;;;N;;;;;
-13229;EGYPTIAN HIEROGLYPH NL009;Lo;0;L;;;;;N;;;;;
-1322A;EGYPTIAN HIEROGLYPH NL010;Lo;0;L;;;;;N;;;;;
-1322B;EGYPTIAN HIEROGLYPH NL011;Lo;0;L;;;;;N;;;;;
-1322C;EGYPTIAN HIEROGLYPH NL012;Lo;0;L;;;;;N;;;;;
-1322D;EGYPTIAN HIEROGLYPH NL013;Lo;0;L;;;;;N;;;;;
-1322E;EGYPTIAN HIEROGLYPH NL014;Lo;0;L;;;;;N;;;;;
-1322F;EGYPTIAN HIEROGLYPH NL015;Lo;0;L;;;;;N;;;;;
-13230;EGYPTIAN HIEROGLYPH NL016;Lo;0;L;;;;;N;;;;;
-13231;EGYPTIAN HIEROGLYPH NL017;Lo;0;L;;;;;N;;;;;
-13232;EGYPTIAN HIEROGLYPH NL017A;Lo;0;L;;;;;N;;;;;
-13233;EGYPTIAN HIEROGLYPH NL018;Lo;0;L;;;;;N;;;;;
-13234;EGYPTIAN HIEROGLYPH NL019;Lo;0;L;;;;;N;;;;;
-13235;EGYPTIAN HIEROGLYPH NL020;Lo;0;L;;;;;N;;;;;
-13236;EGYPTIAN HIEROGLYPH NU001;Lo;0;L;;;;;N;;;;;
-13237;EGYPTIAN HIEROGLYPH NU002;Lo;0;L;;;;;N;;;;;
-13238;EGYPTIAN HIEROGLYPH NU003;Lo;0;L;;;;;N;;;;;
-13239;EGYPTIAN HIEROGLYPH NU004;Lo;0;L;;;;;N;;;;;
-1323A;EGYPTIAN HIEROGLYPH NU005;Lo;0;L;;;;;N;;;;;
-1323B;EGYPTIAN HIEROGLYPH NU006;Lo;0;L;;;;;N;;;;;
-1323C;EGYPTIAN HIEROGLYPH NU007;Lo;0;L;;;;;N;;;;;
-1323D;EGYPTIAN HIEROGLYPH NU008;Lo;0;L;;;;;N;;;;;
-1323E;EGYPTIAN HIEROGLYPH NU009;Lo;0;L;;;;;N;;;;;
-1323F;EGYPTIAN HIEROGLYPH NU010;Lo;0;L;;;;;N;;;;;
-13240;EGYPTIAN HIEROGLYPH NU010A;Lo;0;L;;;;;N;;;;;
-13241;EGYPTIAN HIEROGLYPH NU011;Lo;0;L;;;;;N;;;;;
-13242;EGYPTIAN HIEROGLYPH NU011A;Lo;0;L;;;;;N;;;;;
-13243;EGYPTIAN HIEROGLYPH NU012;Lo;0;L;;;;;N;;;;;
-13244;EGYPTIAN HIEROGLYPH NU013;Lo;0;L;;;;;N;;;;;
-13245;EGYPTIAN HIEROGLYPH NU014;Lo;0;L;;;;;N;;;;;
-13246;EGYPTIAN HIEROGLYPH NU015;Lo;0;L;;;;;N;;;;;
-13247;EGYPTIAN HIEROGLYPH NU016;Lo;0;L;;;;;N;;;;;
-13248;EGYPTIAN HIEROGLYPH NU017;Lo;0;L;;;;;N;;;;;
-13249;EGYPTIAN HIEROGLYPH NU018;Lo;0;L;;;;;N;;;;;
-1324A;EGYPTIAN HIEROGLYPH NU018A;Lo;0;L;;;;;N;;;;;
-1324B;EGYPTIAN HIEROGLYPH NU019;Lo;0;L;;;;;N;;;;;
-1324C;EGYPTIAN HIEROGLYPH NU020;Lo;0;L;;;;;N;;;;;
-1324D;EGYPTIAN HIEROGLYPH NU021;Lo;0;L;;;;;N;;;;;
-1324E;EGYPTIAN HIEROGLYPH NU022;Lo;0;L;;;;;N;;;;;
-1324F;EGYPTIAN HIEROGLYPH NU022A;Lo;0;L;;;;;N;;;;;
-13250;EGYPTIAN HIEROGLYPH O001;Lo;0;L;;;;;N;;;;;
-13251;EGYPTIAN HIEROGLYPH O001A;Lo;0;L;;;;;N;;;;;
-13252;EGYPTIAN HIEROGLYPH O002;Lo;0;L;;;;;N;;;;;
-13253;EGYPTIAN HIEROGLYPH O003;Lo;0;L;;;;;N;;;;;
-13254;EGYPTIAN HIEROGLYPH O004;Lo;0;L;;;;;N;;;;;
-13255;EGYPTIAN HIEROGLYPH O005;Lo;0;L;;;;;N;;;;;
-13256;EGYPTIAN HIEROGLYPH O005A;Lo;0;L;;;;;N;;;;;
-13257;EGYPTIAN HIEROGLYPH O006;Lo;0;L;;;;;N;;;;;
-13258;EGYPTIAN HIEROGLYPH O006A;Lo;0;L;;;;;N;;;;;
-13259;EGYPTIAN HIEROGLYPH O006B;Lo;0;L;;;;;N;;;;;
-1325A;EGYPTIAN HIEROGLYPH O006C;Lo;0;L;;;;;N;;;;;
-1325B;EGYPTIAN HIEROGLYPH O006D;Lo;0;L;;;;;N;;;;;
-1325C;EGYPTIAN HIEROGLYPH O006E;Lo;0;L;;;;;N;;;;;
-1325D;EGYPTIAN HIEROGLYPH O006F;Lo;0;L;;;;;N;;;;;
-1325E;EGYPTIAN HIEROGLYPH O007;Lo;0;L;;;;;N;;;;;
-1325F;EGYPTIAN HIEROGLYPH O008;Lo;0;L;;;;;N;;;;;
-13260;EGYPTIAN HIEROGLYPH O009;Lo;0;L;;;;;N;;;;;
-13261;EGYPTIAN HIEROGLYPH O010;Lo;0;L;;;;;N;;;;;
-13262;EGYPTIAN HIEROGLYPH O010A;Lo;0;L;;;;;N;;;;;
-13263;EGYPTIAN HIEROGLYPH O010B;Lo;0;L;;;;;N;;;;;
-13264;EGYPTIAN HIEROGLYPH O010C;Lo;0;L;;;;;N;;;;;
-13265;EGYPTIAN HIEROGLYPH O011;Lo;0;L;;;;;N;;;;;
-13266;EGYPTIAN HIEROGLYPH O012;Lo;0;L;;;;;N;;;;;
-13267;EGYPTIAN HIEROGLYPH O013;Lo;0;L;;;;;N;;;;;
-13268;EGYPTIAN HIEROGLYPH O014;Lo;0;L;;;;;N;;;;;
-13269;EGYPTIAN HIEROGLYPH O015;Lo;0;L;;;;;N;;;;;
-1326A;EGYPTIAN HIEROGLYPH O016;Lo;0;L;;;;;N;;;;;
-1326B;EGYPTIAN HIEROGLYPH O017;Lo;0;L;;;;;N;;;;;
-1326C;EGYPTIAN HIEROGLYPH O018;Lo;0;L;;;;;N;;;;;
-1326D;EGYPTIAN HIEROGLYPH O019;Lo;0;L;;;;;N;;;;;
-1326E;EGYPTIAN HIEROGLYPH O019A;Lo;0;L;;;;;N;;;;;
-1326F;EGYPTIAN HIEROGLYPH O020;Lo;0;L;;;;;N;;;;;
-13270;EGYPTIAN HIEROGLYPH O020A;Lo;0;L;;;;;N;;;;;
-13271;EGYPTIAN HIEROGLYPH O021;Lo;0;L;;;;;N;;;;;
-13272;EGYPTIAN HIEROGLYPH O022;Lo;0;L;;;;;N;;;;;
-13273;EGYPTIAN HIEROGLYPH O023;Lo;0;L;;;;;N;;;;;
-13274;EGYPTIAN HIEROGLYPH O024;Lo;0;L;;;;;N;;;;;
-13275;EGYPTIAN HIEROGLYPH O024A;Lo;0;L;;;;;N;;;;;
-13276;EGYPTIAN HIEROGLYPH O025;Lo;0;L;;;;;N;;;;;
-13277;EGYPTIAN HIEROGLYPH O025A;Lo;0;L;;;;;N;;;;;
-13278;EGYPTIAN HIEROGLYPH O026;Lo;0;L;;;;;N;;;;;
-13279;EGYPTIAN HIEROGLYPH O027;Lo;0;L;;;;;N;;;;;
-1327A;EGYPTIAN HIEROGLYPH O028;Lo;0;L;;;;;N;;;;;
-1327B;EGYPTIAN HIEROGLYPH O029;Lo;0;L;;;;;N;;;;;
-1327C;EGYPTIAN HIEROGLYPH O029A;Lo;0;L;;;;;N;;;;;
-1327D;EGYPTIAN HIEROGLYPH O030;Lo;0;L;;;;;N;;;;;
-1327E;EGYPTIAN HIEROGLYPH O030A;Lo;0;L;;;;;N;;;;;
-1327F;EGYPTIAN HIEROGLYPH O031;Lo;0;L;;;;;N;;;;;
-13280;EGYPTIAN HIEROGLYPH O032;Lo;0;L;;;;;N;;;;;
-13281;EGYPTIAN HIEROGLYPH O033;Lo;0;L;;;;;N;;;;;
-13282;EGYPTIAN HIEROGLYPH O033A;Lo;0;L;;;;;N;;;;;
-13283;EGYPTIAN HIEROGLYPH O034;Lo;0;L;;;;;N;;;;;
-13284;EGYPTIAN HIEROGLYPH O035;Lo;0;L;;;;;N;;;;;
-13285;EGYPTIAN HIEROGLYPH O036;Lo;0;L;;;;;N;;;;;
-13286;EGYPTIAN HIEROGLYPH O036A;Lo;0;L;;;;;N;;;;;
-13287;EGYPTIAN HIEROGLYPH O036B;Lo;0;L;;;;;N;;;;;
-13288;EGYPTIAN HIEROGLYPH O036C;Lo;0;L;;;;;N;;;;;
-13289;EGYPTIAN HIEROGLYPH O036D;Lo;0;L;;;;;N;;;;;
-1328A;EGYPTIAN HIEROGLYPH O037;Lo;0;L;;;;;N;;;;;
-1328B;EGYPTIAN HIEROGLYPH O038;Lo;0;L;;;;;N;;;;;
-1328C;EGYPTIAN HIEROGLYPH O039;Lo;0;L;;;;;N;;;;;
-1328D;EGYPTIAN HIEROGLYPH O040;Lo;0;L;;;;;N;;;;;
-1328E;EGYPTIAN HIEROGLYPH O041;Lo;0;L;;;;;N;;;;;
-1328F;EGYPTIAN HIEROGLYPH O042;Lo;0;L;;;;;N;;;;;
-13290;EGYPTIAN HIEROGLYPH O043;Lo;0;L;;;;;N;;;;;
-13291;EGYPTIAN HIEROGLYPH O044;Lo;0;L;;;;;N;;;;;
-13292;EGYPTIAN HIEROGLYPH O045;Lo;0;L;;;;;N;;;;;
-13293;EGYPTIAN HIEROGLYPH O046;Lo;0;L;;;;;N;;;;;
-13294;EGYPTIAN HIEROGLYPH O047;Lo;0;L;;;;;N;;;;;
-13295;EGYPTIAN HIEROGLYPH O048;Lo;0;L;;;;;N;;;;;
-13296;EGYPTIAN HIEROGLYPH O049;Lo;0;L;;;;;N;;;;;
-13297;EGYPTIAN HIEROGLYPH O050;Lo;0;L;;;;;N;;;;;
-13298;EGYPTIAN HIEROGLYPH O050A;Lo;0;L;;;;;N;;;;;
-13299;EGYPTIAN HIEROGLYPH O050B;Lo;0;L;;;;;N;;;;;
-1329A;EGYPTIAN HIEROGLYPH O051;Lo;0;L;;;;;N;;;;;
-1329B;EGYPTIAN HIEROGLYPH P001;Lo;0;L;;;;;N;;;;;
-1329C;EGYPTIAN HIEROGLYPH P001A;Lo;0;L;;;;;N;;;;;
-1329D;EGYPTIAN HIEROGLYPH P002;Lo;0;L;;;;;N;;;;;
-1329E;EGYPTIAN HIEROGLYPH P003;Lo;0;L;;;;;N;;;;;
-1329F;EGYPTIAN HIEROGLYPH P003A;Lo;0;L;;;;;N;;;;;
-132A0;EGYPTIAN HIEROGLYPH P004;Lo;0;L;;;;;N;;;;;
-132A1;EGYPTIAN HIEROGLYPH P005;Lo;0;L;;;;;N;;;;;
-132A2;EGYPTIAN HIEROGLYPH P006;Lo;0;L;;;;;N;;;;;
-132A3;EGYPTIAN HIEROGLYPH P007;Lo;0;L;;;;;N;;;;;
-132A4;EGYPTIAN HIEROGLYPH P008;Lo;0;L;;;;;N;;;;;
-132A5;EGYPTIAN HIEROGLYPH P009;Lo;0;L;;;;;N;;;;;
-132A6;EGYPTIAN HIEROGLYPH P010;Lo;0;L;;;;;N;;;;;
-132A7;EGYPTIAN HIEROGLYPH P011;Lo;0;L;;;;;N;;;;;
-132A8;EGYPTIAN HIEROGLYPH Q001;Lo;0;L;;;;;N;;;;;
-132A9;EGYPTIAN HIEROGLYPH Q002;Lo;0;L;;;;;N;;;;;
-132AA;EGYPTIAN HIEROGLYPH Q003;Lo;0;L;;;;;N;;;;;
-132AB;EGYPTIAN HIEROGLYPH Q004;Lo;0;L;;;;;N;;;;;
-132AC;EGYPTIAN HIEROGLYPH Q005;Lo;0;L;;;;;N;;;;;
-132AD;EGYPTIAN HIEROGLYPH Q006;Lo;0;L;;;;;N;;;;;
-132AE;EGYPTIAN HIEROGLYPH Q007;Lo;0;L;;;;;N;;;;;
-132AF;EGYPTIAN HIEROGLYPH R001;Lo;0;L;;;;;N;;;;;
-132B0;EGYPTIAN HIEROGLYPH R002;Lo;0;L;;;;;N;;;;;
-132B1;EGYPTIAN HIEROGLYPH R002A;Lo;0;L;;;;;N;;;;;
-132B2;EGYPTIAN HIEROGLYPH R003;Lo;0;L;;;;;N;;;;;
-132B3;EGYPTIAN HIEROGLYPH R003A;Lo;0;L;;;;;N;;;;;
-132B4;EGYPTIAN HIEROGLYPH R003B;Lo;0;L;;;;;N;;;;;
-132B5;EGYPTIAN HIEROGLYPH R004;Lo;0;L;;;;;N;;;;;
-132B6;EGYPTIAN HIEROGLYPH R005;Lo;0;L;;;;;N;;;;;
-132B7;EGYPTIAN HIEROGLYPH R006;Lo;0;L;;;;;N;;;;;
-132B8;EGYPTIAN HIEROGLYPH R007;Lo;0;L;;;;;N;;;;;
-132B9;EGYPTIAN HIEROGLYPH R008;Lo;0;L;;;;;N;;;;;
-132BA;EGYPTIAN HIEROGLYPH R009;Lo;0;L;;;;;N;;;;;
-132BB;EGYPTIAN HIEROGLYPH R010;Lo;0;L;;;;;N;;;;;
-132BC;EGYPTIAN HIEROGLYPH R010A;Lo;0;L;;;;;N;;;;;
-132BD;EGYPTIAN HIEROGLYPH R011;Lo;0;L;;;;;N;;;;;
-132BE;EGYPTIAN HIEROGLYPH R012;Lo;0;L;;;;;N;;;;;
-132BF;EGYPTIAN HIEROGLYPH R013;Lo;0;L;;;;;N;;;;;
-132C0;EGYPTIAN HIEROGLYPH R014;Lo;0;L;;;;;N;;;;;
-132C1;EGYPTIAN HIEROGLYPH R015;Lo;0;L;;;;;N;;;;;
-132C2;EGYPTIAN HIEROGLYPH R016;Lo;0;L;;;;;N;;;;;
-132C3;EGYPTIAN HIEROGLYPH R016A;Lo;0;L;;;;;N;;;;;
-132C4;EGYPTIAN HIEROGLYPH R017;Lo;0;L;;;;;N;;;;;
-132C5;EGYPTIAN HIEROGLYPH R018;Lo;0;L;;;;;N;;;;;
-132C6;EGYPTIAN HIEROGLYPH R019;Lo;0;L;;;;;N;;;;;
-132C7;EGYPTIAN HIEROGLYPH R020;Lo;0;L;;;;;N;;;;;
-132C8;EGYPTIAN HIEROGLYPH R021;Lo;0;L;;;;;N;;;;;
-132C9;EGYPTIAN HIEROGLYPH R022;Lo;0;L;;;;;N;;;;;
-132CA;EGYPTIAN HIEROGLYPH R023;Lo;0;L;;;;;N;;;;;
-132CB;EGYPTIAN HIEROGLYPH R024;Lo;0;L;;;;;N;;;;;
-132CC;EGYPTIAN HIEROGLYPH R025;Lo;0;L;;;;;N;;;;;
-132CD;EGYPTIAN HIEROGLYPH R026;Lo;0;L;;;;;N;;;;;
-132CE;EGYPTIAN HIEROGLYPH R027;Lo;0;L;;;;;N;;;;;
-132CF;EGYPTIAN HIEROGLYPH R028;Lo;0;L;;;;;N;;;;;
-132D0;EGYPTIAN HIEROGLYPH R029;Lo;0;L;;;;;N;;;;;
-132D1;EGYPTIAN HIEROGLYPH S001;Lo;0;L;;;;;N;;;;;
-132D2;EGYPTIAN HIEROGLYPH S002;Lo;0;L;;;;;N;;;;;
-132D3;EGYPTIAN HIEROGLYPH S002A;Lo;0;L;;;;;N;;;;;
-132D4;EGYPTIAN HIEROGLYPH S003;Lo;0;L;;;;;N;;;;;
-132D5;EGYPTIAN HIEROGLYPH S004;Lo;0;L;;;;;N;;;;;
-132D6;EGYPTIAN HIEROGLYPH S005;Lo;0;L;;;;;N;;;;;
-132D7;EGYPTIAN HIEROGLYPH S006;Lo;0;L;;;;;N;;;;;
-132D8;EGYPTIAN HIEROGLYPH S006A;Lo;0;L;;;;;N;;;;;
-132D9;EGYPTIAN HIEROGLYPH S007;Lo;0;L;;;;;N;;;;;
-132DA;EGYPTIAN HIEROGLYPH S008;Lo;0;L;;;;;N;;;;;
-132DB;EGYPTIAN HIEROGLYPH S009;Lo;0;L;;;;;N;;;;;
-132DC;EGYPTIAN HIEROGLYPH S010;Lo;0;L;;;;;N;;;;;
-132DD;EGYPTIAN HIEROGLYPH S011;Lo;0;L;;;;;N;;;;;
-132DE;EGYPTIAN HIEROGLYPH S012;Lo;0;L;;;;;N;;;;;
-132DF;EGYPTIAN HIEROGLYPH S013;Lo;0;L;;;;;N;;;;;
-132E0;EGYPTIAN HIEROGLYPH S014;Lo;0;L;;;;;N;;;;;
-132E1;EGYPTIAN HIEROGLYPH S014A;Lo;0;L;;;;;N;;;;;
-132E2;EGYPTIAN HIEROGLYPH S014B;Lo;0;L;;;;;N;;;;;
-132E3;EGYPTIAN HIEROGLYPH S015;Lo;0;L;;;;;N;;;;;
-132E4;EGYPTIAN HIEROGLYPH S016;Lo;0;L;;;;;N;;;;;
-132E5;EGYPTIAN HIEROGLYPH S017;Lo;0;L;;;;;N;;;;;
-132E6;EGYPTIAN HIEROGLYPH S017A;Lo;0;L;;;;;N;;;;;
-132E7;EGYPTIAN HIEROGLYPH S018;Lo;0;L;;;;;N;;;;;
-132E8;EGYPTIAN HIEROGLYPH S019;Lo;0;L;;;;;N;;;;;
-132E9;EGYPTIAN HIEROGLYPH S020;Lo;0;L;;;;;N;;;;;
-132EA;EGYPTIAN HIEROGLYPH S021;Lo;0;L;;;;;N;;;;;
-132EB;EGYPTIAN HIEROGLYPH S022;Lo;0;L;;;;;N;;;;;
-132EC;EGYPTIAN HIEROGLYPH S023;Lo;0;L;;;;;N;;;;;
-132ED;EGYPTIAN HIEROGLYPH S024;Lo;0;L;;;;;N;;;;;
-132EE;EGYPTIAN HIEROGLYPH S025;Lo;0;L;;;;;N;;;;;
-132EF;EGYPTIAN HIEROGLYPH S026;Lo;0;L;;;;;N;;;;;
-132F0;EGYPTIAN HIEROGLYPH S026A;Lo;0;L;;;;;N;;;;;
-132F1;EGYPTIAN HIEROGLYPH S026B;Lo;0;L;;;;;N;;;;;
-132F2;EGYPTIAN HIEROGLYPH S027;Lo;0;L;;;;;N;;;;;
-132F3;EGYPTIAN HIEROGLYPH S028;Lo;0;L;;;;;N;;;;;
-132F4;EGYPTIAN HIEROGLYPH S029;Lo;0;L;;;;;N;;;;;
-132F5;EGYPTIAN HIEROGLYPH S030;Lo;0;L;;;;;N;;;;;
-132F6;EGYPTIAN HIEROGLYPH S031;Lo;0;L;;;;;N;;;;;
-132F7;EGYPTIAN HIEROGLYPH S032;Lo;0;L;;;;;N;;;;;
-132F8;EGYPTIAN HIEROGLYPH S033;Lo;0;L;;;;;N;;;;;
-132F9;EGYPTIAN HIEROGLYPH S034;Lo;0;L;;;;;N;;;;;
-132FA;EGYPTIAN HIEROGLYPH S035;Lo;0;L;;;;;N;;;;;
-132FB;EGYPTIAN HIEROGLYPH S035A;Lo;0;L;;;;;N;;;;;
-132FC;EGYPTIAN HIEROGLYPH S036;Lo;0;L;;;;;N;;;;;
-132FD;EGYPTIAN HIEROGLYPH S037;Lo;0;L;;;;;N;;;;;
-132FE;EGYPTIAN HIEROGLYPH S038;Lo;0;L;;;;;N;;;;;
-132FF;EGYPTIAN HIEROGLYPH S039;Lo;0;L;;;;;N;;;;;
-13300;EGYPTIAN HIEROGLYPH S040;Lo;0;L;;;;;N;;;;;
-13301;EGYPTIAN HIEROGLYPH S041;Lo;0;L;;;;;N;;;;;
-13302;EGYPTIAN HIEROGLYPH S042;Lo;0;L;;;;;N;;;;;
-13303;EGYPTIAN HIEROGLYPH S043;Lo;0;L;;;;;N;;;;;
-13304;EGYPTIAN HIEROGLYPH S044;Lo;0;L;;;;;N;;;;;
-13305;EGYPTIAN HIEROGLYPH S045;Lo;0;L;;;;;N;;;;;
-13306;EGYPTIAN HIEROGLYPH S046;Lo;0;L;;;;;N;;;;;
-13307;EGYPTIAN HIEROGLYPH T001;Lo;0;L;;;;;N;;;;;
-13308;EGYPTIAN HIEROGLYPH T002;Lo;0;L;;;;;N;;;;;
-13309;EGYPTIAN HIEROGLYPH T003;Lo;0;L;;;;;N;;;;;
-1330A;EGYPTIAN HIEROGLYPH T003A;Lo;0;L;;;;;N;;;;;
-1330B;EGYPTIAN HIEROGLYPH T004;Lo;0;L;;;;;N;;;;;
-1330C;EGYPTIAN HIEROGLYPH T005;Lo;0;L;;;;;N;;;;;
-1330D;EGYPTIAN HIEROGLYPH T006;Lo;0;L;;;;;N;;;;;
-1330E;EGYPTIAN HIEROGLYPH T007;Lo;0;L;;;;;N;;;;;
-1330F;EGYPTIAN HIEROGLYPH T007A;Lo;0;L;;;;;N;;;;;
-13310;EGYPTIAN HIEROGLYPH T008;Lo;0;L;;;;;N;;;;;
-13311;EGYPTIAN HIEROGLYPH T008A;Lo;0;L;;;;;N;;;;;
-13312;EGYPTIAN HIEROGLYPH T009;Lo;0;L;;;;;N;;;;;
-13313;EGYPTIAN HIEROGLYPH T009A;Lo;0;L;;;;;N;;;;;
-13314;EGYPTIAN HIEROGLYPH T010;Lo;0;L;;;;;N;;;;;
-13315;EGYPTIAN HIEROGLYPH T011;Lo;0;L;;;;;N;;;;;
-13316;EGYPTIAN HIEROGLYPH T011A;Lo;0;L;;;;;N;;;;;
-13317;EGYPTIAN HIEROGLYPH T012;Lo;0;L;;;;;N;;;;;
-13318;EGYPTIAN HIEROGLYPH T013;Lo;0;L;;;;;N;;;;;
-13319;EGYPTIAN HIEROGLYPH T014;Lo;0;L;;;;;N;;;;;
-1331A;EGYPTIAN HIEROGLYPH T015;Lo;0;L;;;;;N;;;;;
-1331B;EGYPTIAN HIEROGLYPH T016;Lo;0;L;;;;;N;;;;;
-1331C;EGYPTIAN HIEROGLYPH T016A;Lo;0;L;;;;;N;;;;;
-1331D;EGYPTIAN HIEROGLYPH T017;Lo;0;L;;;;;N;;;;;
-1331E;EGYPTIAN HIEROGLYPH T018;Lo;0;L;;;;;N;;;;;
-1331F;EGYPTIAN HIEROGLYPH T019;Lo;0;L;;;;;N;;;;;
-13320;EGYPTIAN HIEROGLYPH T020;Lo;0;L;;;;;N;;;;;
-13321;EGYPTIAN HIEROGLYPH T021;Lo;0;L;;;;;N;;;;;
-13322;EGYPTIAN HIEROGLYPH T022;Lo;0;L;;;;;N;;;;;
-13323;EGYPTIAN HIEROGLYPH T023;Lo;0;L;;;;;N;;;;;
-13324;EGYPTIAN HIEROGLYPH T024;Lo;0;L;;;;;N;;;;;
-13325;EGYPTIAN HIEROGLYPH T025;Lo;0;L;;;;;N;;;;;
-13326;EGYPTIAN HIEROGLYPH T026;Lo;0;L;;;;;N;;;;;
-13327;EGYPTIAN HIEROGLYPH T027;Lo;0;L;;;;;N;;;;;
-13328;EGYPTIAN HIEROGLYPH T028;Lo;0;L;;;;;N;;;;;
-13329;EGYPTIAN HIEROGLYPH T029;Lo;0;L;;;;;N;;;;;
-1332A;EGYPTIAN HIEROGLYPH T030;Lo;0;L;;;;;N;;;;;
-1332B;EGYPTIAN HIEROGLYPH T031;Lo;0;L;;;;;N;;;;;
-1332C;EGYPTIAN HIEROGLYPH T032;Lo;0;L;;;;;N;;;;;
-1332D;EGYPTIAN HIEROGLYPH T032A;Lo;0;L;;;;;N;;;;;
-1332E;EGYPTIAN HIEROGLYPH T033;Lo;0;L;;;;;N;;;;;
-1332F;EGYPTIAN HIEROGLYPH T033A;Lo;0;L;;;;;N;;;;;
-13330;EGYPTIAN HIEROGLYPH T034;Lo;0;L;;;;;N;;;;;
-13331;EGYPTIAN HIEROGLYPH T035;Lo;0;L;;;;;N;;;;;
-13332;EGYPTIAN HIEROGLYPH T036;Lo;0;L;;;;;N;;;;;
-13333;EGYPTIAN HIEROGLYPH U001;Lo;0;L;;;;;N;;;;;
-13334;EGYPTIAN HIEROGLYPH U002;Lo;0;L;;;;;N;;;;;
-13335;EGYPTIAN HIEROGLYPH U003;Lo;0;L;;;;;N;;;;;
-13336;EGYPTIAN HIEROGLYPH U004;Lo;0;L;;;;;N;;;;;
-13337;EGYPTIAN HIEROGLYPH U005;Lo;0;L;;;;;N;;;;;
-13338;EGYPTIAN HIEROGLYPH U006;Lo;0;L;;;;;N;;;;;
-13339;EGYPTIAN HIEROGLYPH U006A;Lo;0;L;;;;;N;;;;;
-1333A;EGYPTIAN HIEROGLYPH U006B;Lo;0;L;;;;;N;;;;;
-1333B;EGYPTIAN HIEROGLYPH U007;Lo;0;L;;;;;N;;;;;
-1333C;EGYPTIAN HIEROGLYPH U008;Lo;0;L;;;;;N;;;;;
-1333D;EGYPTIAN HIEROGLYPH U009;Lo;0;L;;;;;N;;;;;
-1333E;EGYPTIAN HIEROGLYPH U010;Lo;0;L;;;;;N;;;;;
-1333F;EGYPTIAN HIEROGLYPH U011;Lo;0;L;;;;;N;;;;;
-13340;EGYPTIAN HIEROGLYPH U012;Lo;0;L;;;;;N;;;;;
-13341;EGYPTIAN HIEROGLYPH U013;Lo;0;L;;;;;N;;;;;
-13342;EGYPTIAN HIEROGLYPH U014;Lo;0;L;;;;;N;;;;;
-13343;EGYPTIAN HIEROGLYPH U015;Lo;0;L;;;;;N;;;;;
-13344;EGYPTIAN HIEROGLYPH U016;Lo;0;L;;;;;N;;;;;
-13345;EGYPTIAN HIEROGLYPH U017;Lo;0;L;;;;;N;;;;;
-13346;EGYPTIAN HIEROGLYPH U018;Lo;0;L;;;;;N;;;;;
-13347;EGYPTIAN HIEROGLYPH U019;Lo;0;L;;;;;N;;;;;
-13348;EGYPTIAN HIEROGLYPH U020;Lo;0;L;;;;;N;;;;;
-13349;EGYPTIAN HIEROGLYPH U021;Lo;0;L;;;;;N;;;;;
-1334A;EGYPTIAN HIEROGLYPH U022;Lo;0;L;;;;;N;;;;;
-1334B;EGYPTIAN HIEROGLYPH U023;Lo;0;L;;;;;N;;;;;
-1334C;EGYPTIAN HIEROGLYPH U023A;Lo;0;L;;;;;N;;;;;
-1334D;EGYPTIAN HIEROGLYPH U024;Lo;0;L;;;;;N;;;;;
-1334E;EGYPTIAN HIEROGLYPH U025;Lo;0;L;;;;;N;;;;;
-1334F;EGYPTIAN HIEROGLYPH U026;Lo;0;L;;;;;N;;;;;
-13350;EGYPTIAN HIEROGLYPH U027;Lo;0;L;;;;;N;;;;;
-13351;EGYPTIAN HIEROGLYPH U028;Lo;0;L;;;;;N;;;;;
-13352;EGYPTIAN HIEROGLYPH U029;Lo;0;L;;;;;N;;;;;
-13353;EGYPTIAN HIEROGLYPH U029A;Lo;0;L;;;;;N;;;;;
-13354;EGYPTIAN HIEROGLYPH U030;Lo;0;L;;;;;N;;;;;
-13355;EGYPTIAN HIEROGLYPH U031;Lo;0;L;;;;;N;;;;;
-13356;EGYPTIAN HIEROGLYPH U032;Lo;0;L;;;;;N;;;;;
-13357;EGYPTIAN HIEROGLYPH U032A;Lo;0;L;;;;;N;;;;;
-13358;EGYPTIAN HIEROGLYPH U033;Lo;0;L;;;;;N;;;;;
-13359;EGYPTIAN HIEROGLYPH U034;Lo;0;L;;;;;N;;;;;
-1335A;EGYPTIAN HIEROGLYPH U035;Lo;0;L;;;;;N;;;;;
-1335B;EGYPTIAN HIEROGLYPH U036;Lo;0;L;;;;;N;;;;;
-1335C;EGYPTIAN HIEROGLYPH U037;Lo;0;L;;;;;N;;;;;
-1335D;EGYPTIAN HIEROGLYPH U038;Lo;0;L;;;;;N;;;;;
-1335E;EGYPTIAN HIEROGLYPH U039;Lo;0;L;;;;;N;;;;;
-1335F;EGYPTIAN HIEROGLYPH U040;Lo;0;L;;;;;N;;;;;
-13360;EGYPTIAN HIEROGLYPH U041;Lo;0;L;;;;;N;;;;;
-13361;EGYPTIAN HIEROGLYPH U042;Lo;0;L;;;;;N;;;;;
-13362;EGYPTIAN HIEROGLYPH V001;Lo;0;L;;;;;N;;;;;
-13363;EGYPTIAN HIEROGLYPH V001A;Lo;0;L;;;;;N;;;;;
-13364;EGYPTIAN HIEROGLYPH V001B;Lo;0;L;;;;;N;;;;;
-13365;EGYPTIAN HIEROGLYPH V001C;Lo;0;L;;;;;N;;;;;
-13366;EGYPTIAN HIEROGLYPH V001D;Lo;0;L;;;;;N;;;;;
-13367;EGYPTIAN HIEROGLYPH V001E;Lo;0;L;;;;;N;;;;;
-13368;EGYPTIAN HIEROGLYPH V001F;Lo;0;L;;;;;N;;;;;
-13369;EGYPTIAN HIEROGLYPH V001G;Lo;0;L;;;;;N;;;;;
-1336A;EGYPTIAN HIEROGLYPH V001H;Lo;0;L;;;;;N;;;;;
-1336B;EGYPTIAN HIEROGLYPH V001I;Lo;0;L;;;;;N;;;;;
-1336C;EGYPTIAN HIEROGLYPH V002;Lo;0;L;;;;;N;;;;;
-1336D;EGYPTIAN HIEROGLYPH V002A;Lo;0;L;;;;;N;;;;;
-1336E;EGYPTIAN HIEROGLYPH V003;Lo;0;L;;;;;N;;;;;
-1336F;EGYPTIAN HIEROGLYPH V004;Lo;0;L;;;;;N;;;;;
-13370;EGYPTIAN HIEROGLYPH V005;Lo;0;L;;;;;N;;;;;
-13371;EGYPTIAN HIEROGLYPH V006;Lo;0;L;;;;;N;;;;;
-13372;EGYPTIAN HIEROGLYPH V007;Lo;0;L;;;;;N;;;;;
-13373;EGYPTIAN HIEROGLYPH V007A;Lo;0;L;;;;;N;;;;;
-13374;EGYPTIAN HIEROGLYPH V007B;Lo;0;L;;;;;N;;;;;
-13375;EGYPTIAN HIEROGLYPH V008;Lo;0;L;;;;;N;;;;;
-13376;EGYPTIAN HIEROGLYPH V009;Lo;0;L;;;;;N;;;;;
-13377;EGYPTIAN HIEROGLYPH V010;Lo;0;L;;;;;N;;;;;
-13378;EGYPTIAN HIEROGLYPH V011;Lo;0;L;;;;;N;;;;;
-13379;EGYPTIAN HIEROGLYPH V011A;Lo;0;L;;;;;N;;;;;
-1337A;EGYPTIAN HIEROGLYPH V011B;Lo;0;L;;;;;N;;;;;
-1337B;EGYPTIAN HIEROGLYPH V011C;Lo;0;L;;;;;N;;;;;
-1337C;EGYPTIAN HIEROGLYPH V012;Lo;0;L;;;;;N;;;;;
-1337D;EGYPTIAN HIEROGLYPH V012A;Lo;0;L;;;;;N;;;;;
-1337E;EGYPTIAN HIEROGLYPH V012B;Lo;0;L;;;;;N;;;;;
-1337F;EGYPTIAN HIEROGLYPH V013;Lo;0;L;;;;;N;;;;;
-13380;EGYPTIAN HIEROGLYPH V014;Lo;0;L;;;;;N;;;;;
-13381;EGYPTIAN HIEROGLYPH V015;Lo;0;L;;;;;N;;;;;
-13382;EGYPTIAN HIEROGLYPH V016;Lo;0;L;;;;;N;;;;;
-13383;EGYPTIAN HIEROGLYPH V017;Lo;0;L;;;;;N;;;;;
-13384;EGYPTIAN HIEROGLYPH V018;Lo;0;L;;;;;N;;;;;
-13385;EGYPTIAN HIEROGLYPH V019;Lo;0;L;;;;;N;;;;;
-13386;EGYPTIAN HIEROGLYPH V020;Lo;0;L;;;;;N;;;;;
-13387;EGYPTIAN HIEROGLYPH V020A;Lo;0;L;;;;;N;;;;;
-13388;EGYPTIAN HIEROGLYPH V020B;Lo;0;L;;;;;N;;;;;
-13389;EGYPTIAN HIEROGLYPH V020C;Lo;0;L;;;;;N;;;;;
-1338A;EGYPTIAN HIEROGLYPH V020D;Lo;0;L;;;;;N;;;;;
-1338B;EGYPTIAN HIEROGLYPH V020E;Lo;0;L;;;;;N;;;;;
-1338C;EGYPTIAN HIEROGLYPH V020F;Lo;0;L;;;;;N;;;;;
-1338D;EGYPTIAN HIEROGLYPH V020G;Lo;0;L;;;;;N;;;;;
-1338E;EGYPTIAN HIEROGLYPH V020H;Lo;0;L;;;;;N;;;;;
-1338F;EGYPTIAN HIEROGLYPH V020I;Lo;0;L;;;;;N;;;;;
-13390;EGYPTIAN HIEROGLYPH V020J;Lo;0;L;;;;;N;;;;;
-13391;EGYPTIAN HIEROGLYPH V020K;Lo;0;L;;;;;N;;;;;
-13392;EGYPTIAN HIEROGLYPH V020L;Lo;0;L;;;;;N;;;;;
-13393;EGYPTIAN HIEROGLYPH V021;Lo;0;L;;;;;N;;;;;
-13394;EGYPTIAN HIEROGLYPH V022;Lo;0;L;;;;;N;;;;;
-13395;EGYPTIAN HIEROGLYPH V023;Lo;0;L;;;;;N;;;;;
-13396;EGYPTIAN HIEROGLYPH V023A;Lo;0;L;;;;;N;;;;;
-13397;EGYPTIAN HIEROGLYPH V024;Lo;0;L;;;;;N;;;;;
-13398;EGYPTIAN HIEROGLYPH V025;Lo;0;L;;;;;N;;;;;
-13399;EGYPTIAN HIEROGLYPH V026;Lo;0;L;;;;;N;;;;;
-1339A;EGYPTIAN HIEROGLYPH V027;Lo;0;L;;;;;N;;;;;
-1339B;EGYPTIAN HIEROGLYPH V028;Lo;0;L;;;;;N;;;;;
-1339C;EGYPTIAN HIEROGLYPH V028A;Lo;0;L;;;;;N;;;;;
-1339D;EGYPTIAN HIEROGLYPH V029;Lo;0;L;;;;;N;;;;;
-1339E;EGYPTIAN HIEROGLYPH V029A;Lo;0;L;;;;;N;;;;;
-1339F;EGYPTIAN HIEROGLYPH V030;Lo;0;L;;;;;N;;;;;
-133A0;EGYPTIAN HIEROGLYPH V030A;Lo;0;L;;;;;N;;;;;
-133A1;EGYPTIAN HIEROGLYPH V031;Lo;0;L;;;;;N;;;;;
-133A2;EGYPTIAN HIEROGLYPH V031A;Lo;0;L;;;;;N;;;;;
-133A3;EGYPTIAN HIEROGLYPH V032;Lo;0;L;;;;;N;;;;;
-133A4;EGYPTIAN HIEROGLYPH V033;Lo;0;L;;;;;N;;;;;
-133A5;EGYPTIAN HIEROGLYPH V033A;Lo;0;L;;;;;N;;;;;
-133A6;EGYPTIAN HIEROGLYPH V034;Lo;0;L;;;;;N;;;;;
-133A7;EGYPTIAN HIEROGLYPH V035;Lo;0;L;;;;;N;;;;;
-133A8;EGYPTIAN HIEROGLYPH V036;Lo;0;L;;;;;N;;;;;
-133A9;EGYPTIAN HIEROGLYPH V037;Lo;0;L;;;;;N;;;;;
-133AA;EGYPTIAN HIEROGLYPH V037A;Lo;0;L;;;;;N;;;;;
-133AB;EGYPTIAN HIEROGLYPH V038;Lo;0;L;;;;;N;;;;;
-133AC;EGYPTIAN HIEROGLYPH V039;Lo;0;L;;;;;N;;;;;
-133AD;EGYPTIAN HIEROGLYPH V040;Lo;0;L;;;;;N;;;;;
-133AE;EGYPTIAN HIEROGLYPH V040A;Lo;0;L;;;;;N;;;;;
-133AF;EGYPTIAN HIEROGLYPH W001;Lo;0;L;;;;;N;;;;;
-133B0;EGYPTIAN HIEROGLYPH W002;Lo;0;L;;;;;N;;;;;
-133B1;EGYPTIAN HIEROGLYPH W003;Lo;0;L;;;;;N;;;;;
-133B2;EGYPTIAN HIEROGLYPH W003A;Lo;0;L;;;;;N;;;;;
-133B3;EGYPTIAN HIEROGLYPH W004;Lo;0;L;;;;;N;;;;;
-133B4;EGYPTIAN HIEROGLYPH W005;Lo;0;L;;;;;N;;;;;
-133B5;EGYPTIAN HIEROGLYPH W006;Lo;0;L;;;;;N;;;;;
-133B6;EGYPTIAN HIEROGLYPH W007;Lo;0;L;;;;;N;;;;;
-133B7;EGYPTIAN HIEROGLYPH W008;Lo;0;L;;;;;N;;;;;
-133B8;EGYPTIAN HIEROGLYPH W009;Lo;0;L;;;;;N;;;;;
-133B9;EGYPTIAN HIEROGLYPH W009A;Lo;0;L;;;;;N;;;;;
-133BA;EGYPTIAN HIEROGLYPH W010;Lo;0;L;;;;;N;;;;;
-133BB;EGYPTIAN HIEROGLYPH W010A;Lo;0;L;;;;;N;;;;;
-133BC;EGYPTIAN HIEROGLYPH W011;Lo;0;L;;;;;N;;;;;
-133BD;EGYPTIAN HIEROGLYPH W012;Lo;0;L;;;;;N;;;;;
-133BE;EGYPTIAN HIEROGLYPH W013;Lo;0;L;;;;;N;;;;;
-133BF;EGYPTIAN HIEROGLYPH W014;Lo;0;L;;;;;N;;;;;
-133C0;EGYPTIAN HIEROGLYPH W014A;Lo;0;L;;;;;N;;;;;
-133C1;EGYPTIAN HIEROGLYPH W015;Lo;0;L;;;;;N;;;;;
-133C2;EGYPTIAN HIEROGLYPH W016;Lo;0;L;;;;;N;;;;;
-133C3;EGYPTIAN HIEROGLYPH W017;Lo;0;L;;;;;N;;;;;
-133C4;EGYPTIAN HIEROGLYPH W017A;Lo;0;L;;;;;N;;;;;
-133C5;EGYPTIAN HIEROGLYPH W018;Lo;0;L;;;;;N;;;;;
-133C6;EGYPTIAN HIEROGLYPH W018A;Lo;0;L;;;;;N;;;;;
-133C7;EGYPTIAN HIEROGLYPH W019;Lo;0;L;;;;;N;;;;;
-133C8;EGYPTIAN HIEROGLYPH W020;Lo;0;L;;;;;N;;;;;
-133C9;EGYPTIAN HIEROGLYPH W021;Lo;0;L;;;;;N;;;;;
-133CA;EGYPTIAN HIEROGLYPH W022;Lo;0;L;;;;;N;;;;;
-133CB;EGYPTIAN HIEROGLYPH W023;Lo;0;L;;;;;N;;;;;
-133CC;EGYPTIAN HIEROGLYPH W024;Lo;0;L;;;;;N;;;;;
-133CD;EGYPTIAN HIEROGLYPH W024A;Lo;0;L;;;;;N;;;;;
-133CE;EGYPTIAN HIEROGLYPH W025;Lo;0;L;;;;;N;;;;;
-133CF;EGYPTIAN HIEROGLYPH X001;Lo;0;L;;;;;N;;;;;
-133D0;EGYPTIAN HIEROGLYPH X002;Lo;0;L;;;;;N;;;;;
-133D1;EGYPTIAN HIEROGLYPH X003;Lo;0;L;;;;;N;;;;;
-133D2;EGYPTIAN HIEROGLYPH X004;Lo;0;L;;;;;N;;;;;
-133D3;EGYPTIAN HIEROGLYPH X004A;Lo;0;L;;;;;N;;;;;
-133D4;EGYPTIAN HIEROGLYPH X004B;Lo;0;L;;;;;N;;;;;
-133D5;EGYPTIAN HIEROGLYPH X005;Lo;0;L;;;;;N;;;;;
-133D6;EGYPTIAN HIEROGLYPH X006;Lo;0;L;;;;;N;;;;;
-133D7;EGYPTIAN HIEROGLYPH X006A;Lo;0;L;;;;;N;;;;;
-133D8;EGYPTIAN HIEROGLYPH X007;Lo;0;L;;;;;N;;;;;
-133D9;EGYPTIAN HIEROGLYPH X008;Lo;0;L;;;;;N;;;;;
-133DA;EGYPTIAN HIEROGLYPH X008A;Lo;0;L;;;;;N;;;;;
-133DB;EGYPTIAN HIEROGLYPH Y001;Lo;0;L;;;;;N;;;;;
-133DC;EGYPTIAN HIEROGLYPH Y001A;Lo;0;L;;;;;N;;;;;
-133DD;EGYPTIAN HIEROGLYPH Y002;Lo;0;L;;;;;N;;;;;
-133DE;EGYPTIAN HIEROGLYPH Y003;Lo;0;L;;;;;N;;;;;
-133DF;EGYPTIAN HIEROGLYPH Y004;Lo;0;L;;;;;N;;;;;
-133E0;EGYPTIAN HIEROGLYPH Y005;Lo;0;L;;;;;N;;;;;
-133E1;EGYPTIAN HIEROGLYPH Y006;Lo;0;L;;;;;N;;;;;
-133E2;EGYPTIAN HIEROGLYPH Y007;Lo;0;L;;;;;N;;;;;
-133E3;EGYPTIAN HIEROGLYPH Y008;Lo;0;L;;;;;N;;;;;
-133E4;EGYPTIAN HIEROGLYPH Z001;Lo;0;L;;;;;N;;;;;
-133E5;EGYPTIAN HIEROGLYPH Z002;Lo;0;L;;;;;N;;;;;
-133E6;EGYPTIAN HIEROGLYPH Z002A;Lo;0;L;;;;;N;;;;;
-133E7;EGYPTIAN HIEROGLYPH Z002B;Lo;0;L;;;;;N;;;;;
-133E8;EGYPTIAN HIEROGLYPH Z002C;Lo;0;L;;;;;N;;;;;
-133E9;EGYPTIAN HIEROGLYPH Z002D;Lo;0;L;;;;;N;;;;;
-133EA;EGYPTIAN HIEROGLYPH Z003;Lo;0;L;;;;;N;;;;;
-133EB;EGYPTIAN HIEROGLYPH Z003A;Lo;0;L;;;;;N;;;;;
-133EC;EGYPTIAN HIEROGLYPH Z003B;Lo;0;L;;;;;N;;;;;
-133ED;EGYPTIAN HIEROGLYPH Z004;Lo;0;L;;;;;N;;;;;
-133EE;EGYPTIAN HIEROGLYPH Z004A;Lo;0;L;;;;;N;;;;;
-133EF;EGYPTIAN HIEROGLYPH Z005;Lo;0;L;;;;;N;;;;;
-133F0;EGYPTIAN HIEROGLYPH Z005A;Lo;0;L;;;;;N;;;;;
-133F1;EGYPTIAN HIEROGLYPH Z006;Lo;0;L;;;;;N;;;;;
-133F2;EGYPTIAN HIEROGLYPH Z007;Lo;0;L;;;;;N;;;;;
-133F3;EGYPTIAN HIEROGLYPH Z008;Lo;0;L;;;;;N;;;;;
-133F4;EGYPTIAN HIEROGLYPH Z009;Lo;0;L;;;;;N;;;;;
-133F5;EGYPTIAN HIEROGLYPH Z010;Lo;0;L;;;;;N;;;;;
-133F6;EGYPTIAN HIEROGLYPH Z011;Lo;0;L;;;;;N;;;;;
-133F7;EGYPTIAN HIEROGLYPH Z012;Lo;0;L;;;;;N;;;;;
-133F8;EGYPTIAN HIEROGLYPH Z013;Lo;0;L;;;;;N;;;;;
-133F9;EGYPTIAN HIEROGLYPH Z014;Lo;0;L;;;;;N;;;;;
-133FA;EGYPTIAN HIEROGLYPH Z015;Lo;0;L;;;;;N;;;;;
-133FB;EGYPTIAN HIEROGLYPH Z015A;Lo;0;L;;;;;N;;;;;
-133FC;EGYPTIAN HIEROGLYPH Z015B;Lo;0;L;;;;;N;;;;;
-133FD;EGYPTIAN HIEROGLYPH Z015C;Lo;0;L;;;;;N;;;;;
-133FE;EGYPTIAN HIEROGLYPH Z015D;Lo;0;L;;;;;N;;;;;
-133FF;EGYPTIAN HIEROGLYPH Z015E;Lo;0;L;;;;;N;;;;;
-13400;EGYPTIAN HIEROGLYPH Z015F;Lo;0;L;;;;;N;;;;;
-13401;EGYPTIAN HIEROGLYPH Z015G;Lo;0;L;;;;;N;;;;;
-13402;EGYPTIAN HIEROGLYPH Z015H;Lo;0;L;;;;;N;;;;;
-13403;EGYPTIAN HIEROGLYPH Z015I;Lo;0;L;;;;;N;;;;;
-13404;EGYPTIAN HIEROGLYPH Z016;Lo;0;L;;;;;N;;;;;
-13405;EGYPTIAN HIEROGLYPH Z016A;Lo;0;L;;;;;N;;;;;
-13406;EGYPTIAN HIEROGLYPH Z016B;Lo;0;L;;;;;N;;;;;
-13407;EGYPTIAN HIEROGLYPH Z016C;Lo;0;L;;;;;N;;;;;
-13408;EGYPTIAN HIEROGLYPH Z016D;Lo;0;L;;;;;N;;;;;
-13409;EGYPTIAN HIEROGLYPH Z016E;Lo;0;L;;;;;N;;;;;
-1340A;EGYPTIAN HIEROGLYPH Z016F;Lo;0;L;;;;;N;;;;;
-1340B;EGYPTIAN HIEROGLYPH Z016G;Lo;0;L;;;;;N;;;;;
-1340C;EGYPTIAN HIEROGLYPH Z016H;Lo;0;L;;;;;N;;;;;
-1340D;EGYPTIAN HIEROGLYPH AA001;Lo;0;L;;;;;N;;;;;
-1340E;EGYPTIAN HIEROGLYPH AA002;Lo;0;L;;;;;N;;;;;
-1340F;EGYPTIAN HIEROGLYPH AA003;Lo;0;L;;;;;N;;;;;
-13410;EGYPTIAN HIEROGLYPH AA004;Lo;0;L;;;;;N;;;;;
-13411;EGYPTIAN HIEROGLYPH AA005;Lo;0;L;;;;;N;;;;;
-13412;EGYPTIAN HIEROGLYPH AA006;Lo;0;L;;;;;N;;;;;
-13413;EGYPTIAN HIEROGLYPH AA007;Lo;0;L;;;;;N;;;;;
-13414;EGYPTIAN HIEROGLYPH AA007A;Lo;0;L;;;;;N;;;;;
-13415;EGYPTIAN HIEROGLYPH AA007B;Lo;0;L;;;;;N;;;;;
-13416;EGYPTIAN HIEROGLYPH AA008;Lo;0;L;;;;;N;;;;;
-13417;EGYPTIAN HIEROGLYPH AA009;Lo;0;L;;;;;N;;;;;
-13418;EGYPTIAN HIEROGLYPH AA010;Lo;0;L;;;;;N;;;;;
-13419;EGYPTIAN HIEROGLYPH AA011;Lo;0;L;;;;;N;;;;;
-1341A;EGYPTIAN HIEROGLYPH AA012;Lo;0;L;;;;;N;;;;;
-1341B;EGYPTIAN HIEROGLYPH AA013;Lo;0;L;;;;;N;;;;;
-1341C;EGYPTIAN HIEROGLYPH AA014;Lo;0;L;;;;;N;;;;;
-1341D;EGYPTIAN HIEROGLYPH AA015;Lo;0;L;;;;;N;;;;;
-1341E;EGYPTIAN HIEROGLYPH AA016;Lo;0;L;;;;;N;;;;;
-1341F;EGYPTIAN HIEROGLYPH AA017;Lo;0;L;;;;;N;;;;;
-13420;EGYPTIAN HIEROGLYPH AA018;Lo;0;L;;;;;N;;;;;
-13421;EGYPTIAN HIEROGLYPH AA019;Lo;0;L;;;;;N;;;;;
-13422;EGYPTIAN HIEROGLYPH AA020;Lo;0;L;;;;;N;;;;;
-13423;EGYPTIAN HIEROGLYPH AA021;Lo;0;L;;;;;N;;;;;
-13424;EGYPTIAN HIEROGLYPH AA022;Lo;0;L;;;;;N;;;;;
-13425;EGYPTIAN HIEROGLYPH AA023;Lo;0;L;;;;;N;;;;;
-13426;EGYPTIAN HIEROGLYPH AA024;Lo;0;L;;;;;N;;;;;
-13427;EGYPTIAN HIEROGLYPH AA025;Lo;0;L;;;;;N;;;;;
-13428;EGYPTIAN HIEROGLYPH AA026;Lo;0;L;;;;;N;;;;;
-13429;EGYPTIAN HIEROGLYPH AA027;Lo;0;L;;;;;N;;;;;
-1342A;EGYPTIAN HIEROGLYPH AA028;Lo;0;L;;;;;N;;;;;
-1342B;EGYPTIAN HIEROGLYPH AA029;Lo;0;L;;;;;N;;;;;
-1342C;EGYPTIAN HIEROGLYPH AA030;Lo;0;L;;;;;N;;;;;
-1342D;EGYPTIAN HIEROGLYPH AA031;Lo;0;L;;;;;N;;;;;
-1342E;EGYPTIAN HIEROGLYPH AA032;Lo;0;L;;;;;N;;;;;
-16800;BAMUM LETTER PHASE-A NGKUE MFON;Lo;0;L;;;;;N;;;;;
-16801;BAMUM LETTER PHASE-A GBIEE FON;Lo;0;L;;;;;N;;;;;
-16802;BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE;Lo;0;L;;;;;N;;;;;
-16803;BAMUM LETTER PHASE-A PON MFON PIPAEMBA;Lo;0;L;;;;;N;;;;;
-16804;BAMUM LETTER PHASE-A NAA MFON;Lo;0;L;;;;;N;;;;;
-16805;BAMUM LETTER PHASE-A SHUENSHUET;Lo;0;L;;;;;N;;;;;
-16806;BAMUM LETTER PHASE-A TITA MFON;Lo;0;L;;;;;N;;;;;
-16807;BAMUM LETTER PHASE-A NZA MFON;Lo;0;L;;;;;N;;;;;
-16808;BAMUM LETTER PHASE-A SHINDA PA NJI;Lo;0;L;;;;;N;;;;;
-16809;BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE;Lo;0;L;;;;;N;;;;;
-1680A;BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA;Lo;0;L;;;;;N;;;;;
-1680B;BAMUM LETTER PHASE-A MAEMBGBIEE;Lo;0;L;;;;;N;;;;;
-1680C;BAMUM LETTER PHASE-A TU MAEMBA;Lo;0;L;;;;;N;;;;;
-1680D;BAMUM LETTER PHASE-A NGANGU;Lo;0;L;;;;;N;;;;;
-1680E;BAMUM LETTER PHASE-A MAEMVEUX;Lo;0;L;;;;;N;;;;;
-1680F;BAMUM LETTER PHASE-A MANSUAE;Lo;0;L;;;;;N;;;;;
-16810;BAMUM LETTER PHASE-A MVEUAENGAM;Lo;0;L;;;;;N;;;;;
-16811;BAMUM LETTER PHASE-A SEUNYAM;Lo;0;L;;;;;N;;;;;
-16812;BAMUM LETTER PHASE-A NTOQPEN;Lo;0;L;;;;;N;;;;;
-16813;BAMUM LETTER PHASE-A KEUKEUTNDA;Lo;0;L;;;;;N;;;;;
-16814;BAMUM LETTER PHASE-A NKINDI;Lo;0;L;;;;;N;;;;;
-16815;BAMUM LETTER PHASE-A SUU;Lo;0;L;;;;;N;;;;;
-16816;BAMUM LETTER PHASE-A NGKUENZEUM;Lo;0;L;;;;;N;;;;;
-16817;BAMUM LETTER PHASE-A LAPAQ;Lo;0;L;;;;;N;;;;;
-16818;BAMUM LETTER PHASE-A LET KUT;Lo;0;L;;;;;N;;;;;
-16819;BAMUM LETTER PHASE-A NTAP MFAA;Lo;0;L;;;;;N;;;;;
-1681A;BAMUM LETTER PHASE-A MAEKEUP;Lo;0;L;;;;;N;;;;;
-1681B;BAMUM LETTER PHASE-A PASHAE;Lo;0;L;;;;;N;;;;;
-1681C;BAMUM LETTER PHASE-A GHEUAERAE;Lo;0;L;;;;;N;;;;;
-1681D;BAMUM LETTER PHASE-A PAMSHAE;Lo;0;L;;;;;N;;;;;
-1681E;BAMUM LETTER PHASE-A MON NGGEUAET;Lo;0;L;;;;;N;;;;;
-1681F;BAMUM LETTER PHASE-A NZUN MEUT;Lo;0;L;;;;;N;;;;;
-16820;BAMUM LETTER PHASE-A U YUQ NAE;Lo;0;L;;;;;N;;;;;
-16821;BAMUM LETTER PHASE-A GHEUAEGHEUAE;Lo;0;L;;;;;N;;;;;
-16822;BAMUM LETTER PHASE-A NTAP NTAA;Lo;0;L;;;;;N;;;;;
-16823;BAMUM LETTER PHASE-A SISA;Lo;0;L;;;;;N;;;;;
-16824;BAMUM LETTER PHASE-A MGBASA;Lo;0;L;;;;;N;;;;;
-16825;BAMUM LETTER PHASE-A MEUNJOMNDEUQ;Lo;0;L;;;;;N;;;;;
-16826;BAMUM LETTER PHASE-A MOOMPUQ;Lo;0;L;;;;;N;;;;;
-16827;BAMUM LETTER PHASE-A KAFA;Lo;0;L;;;;;N;;;;;
-16828;BAMUM LETTER PHASE-A PA LEERAEWA;Lo;0;L;;;;;N;;;;;
-16829;BAMUM LETTER PHASE-A NDA LEERAEWA;Lo;0;L;;;;;N;;;;;
-1682A;BAMUM LETTER PHASE-A PET;Lo;0;L;;;;;N;;;;;
-1682B;BAMUM LETTER PHASE-A MAEMKPEN;Lo;0;L;;;;;N;;;;;
-1682C;BAMUM LETTER PHASE-A NIKA;Lo;0;L;;;;;N;;;;;
-1682D;BAMUM LETTER PHASE-A PUP;Lo;0;L;;;;;N;;;;;
-1682E;BAMUM LETTER PHASE-A TUAEP;Lo;0;L;;;;;N;;;;;
-1682F;BAMUM LETTER PHASE-A LUAEP;Lo;0;L;;;;;N;;;;;
-16830;BAMUM LETTER PHASE-A SONJAM;Lo;0;L;;;;;N;;;;;
-16831;BAMUM LETTER PHASE-A TEUTEUWEN;Lo;0;L;;;;;N;;;;;
-16832;BAMUM LETTER PHASE-A MAENYI;Lo;0;L;;;;;N;;;;;
-16833;BAMUM LETTER PHASE-A KET;Lo;0;L;;;;;N;;;;;
-16834;BAMUM LETTER PHASE-A NDAANGGEUAET;Lo;0;L;;;;;N;;;;;
-16835;BAMUM LETTER PHASE-A KUOQ;Lo;0;L;;;;;N;;;;;
-16836;BAMUM LETTER PHASE-A MOOMEUT;Lo;0;L;;;;;N;;;;;
-16837;BAMUM LETTER PHASE-A SHUM;Lo;0;L;;;;;N;;;;;
-16838;BAMUM LETTER PHASE-A LOMMAE;Lo;0;L;;;;;N;;;;;
-16839;BAMUM LETTER PHASE-A FIRI;Lo;0;L;;;;;N;;;;;
-1683A;BAMUM LETTER PHASE-A ROM;Lo;0;L;;;;;N;;;;;
-1683B;BAMUM LETTER PHASE-A KPOQ;Lo;0;L;;;;;N;;;;;
-1683C;BAMUM LETTER PHASE-A SOQ;Lo;0;L;;;;;N;;;;;
-1683D;BAMUM LETTER PHASE-A MAP PIEET;Lo;0;L;;;;;N;;;;;
-1683E;BAMUM LETTER PHASE-A SHIRAE;Lo;0;L;;;;;N;;;;;
-1683F;BAMUM LETTER PHASE-A NTAP;Lo;0;L;;;;;N;;;;;
-16840;BAMUM LETTER PHASE-A SHOQ NSHUT YUM;Lo;0;L;;;;;N;;;;;
-16841;BAMUM LETTER PHASE-A NYIT MONGKEUAEQ;Lo;0;L;;;;;N;;;;;
-16842;BAMUM LETTER PHASE-A PAARAE;Lo;0;L;;;;;N;;;;;
-16843;BAMUM LETTER PHASE-A NKAARAE;Lo;0;L;;;;;N;;;;;
-16844;BAMUM LETTER PHASE-A UNKNOWN;Lo;0;L;;;;;N;;;;;
-16845;BAMUM LETTER PHASE-A NGGEN;Lo;0;L;;;;;N;;;;;
-16846;BAMUM LETTER PHASE-A MAESI;Lo;0;L;;;;;N;;;;;
-16847;BAMUM LETTER PHASE-A NJAM;Lo;0;L;;;;;N;;;;;
-16848;BAMUM LETTER PHASE-A MBANYI;Lo;0;L;;;;;N;;;;;
-16849;BAMUM LETTER PHASE-A NYET;Lo;0;L;;;;;N;;;;;
-1684A;BAMUM LETTER PHASE-A TEUAEN;Lo;0;L;;;;;N;;;;;
-1684B;BAMUM LETTER PHASE-A SOT;Lo;0;L;;;;;N;;;;;
-1684C;BAMUM LETTER PHASE-A PAAM;Lo;0;L;;;;;N;;;;;
-1684D;BAMUM LETTER PHASE-A NSHIEE;Lo;0;L;;;;;N;;;;;
-1684E;BAMUM LETTER PHASE-A MAEM;Lo;0;L;;;;;N;;;;;
-1684F;BAMUM LETTER PHASE-A NYI;Lo;0;L;;;;;N;;;;;
-16850;BAMUM LETTER PHASE-A KAQ;Lo;0;L;;;;;N;;;;;
-16851;BAMUM LETTER PHASE-A NSHA;Lo;0;L;;;;;N;;;;;
-16852;BAMUM LETTER PHASE-A VEE;Lo;0;L;;;;;N;;;;;
-16853;BAMUM LETTER PHASE-A LU;Lo;0;L;;;;;N;;;;;
-16854;BAMUM LETTER PHASE-A NEN;Lo;0;L;;;;;N;;;;;
-16855;BAMUM LETTER PHASE-A NAQ;Lo;0;L;;;;;N;;;;;
-16856;BAMUM LETTER PHASE-A MBAQ;Lo;0;L;;;;;N;;;;;
-16857;BAMUM LETTER PHASE-B NSHUET;Lo;0;L;;;;;N;;;;;
-16858;BAMUM LETTER PHASE-B TU MAEMGBIEE;Lo;0;L;;;;;N;;;;;
-16859;BAMUM LETTER PHASE-B SIEE;Lo;0;L;;;;;N;;;;;
-1685A;BAMUM LETTER PHASE-B SET TU;Lo;0;L;;;;;N;;;;;
-1685B;BAMUM LETTER PHASE-B LOM NTEUM;Lo;0;L;;;;;N;;;;;
-1685C;BAMUM LETTER PHASE-B MBA MAELEE;Lo;0;L;;;;;N;;;;;
-1685D;BAMUM LETTER PHASE-B KIEEM;Lo;0;L;;;;;N;;;;;
-1685E;BAMUM LETTER PHASE-B YEURAE;Lo;0;L;;;;;N;;;;;
-1685F;BAMUM LETTER PHASE-B MBAARAE;Lo;0;L;;;;;N;;;;;
-16860;BAMUM LETTER PHASE-B KAM;Lo;0;L;;;;;N;;;;;
-16861;BAMUM LETTER PHASE-B PEESHI;Lo;0;L;;;;;N;;;;;
-16862;BAMUM LETTER PHASE-B YAFU LEERAEWA;Lo;0;L;;;;;N;;;;;
-16863;BAMUM LETTER PHASE-B LAM NSHUT NYAM;Lo;0;L;;;;;N;;;;;
-16864;BAMUM LETTER PHASE-B NTIEE SHEUOQ;Lo;0;L;;;;;N;;;;;
-16865;BAMUM LETTER PHASE-B NDU NJAA;Lo;0;L;;;;;N;;;;;
-16866;BAMUM LETTER PHASE-B GHEUGHEUAEM;Lo;0;L;;;;;N;;;;;
-16867;BAMUM LETTER PHASE-B PIT;Lo;0;L;;;;;N;;;;;
-16868;BAMUM LETTER PHASE-B TU NSIEE;Lo;0;L;;;;;N;;;;;
-16869;BAMUM LETTER PHASE-B SHET NJAQ;Lo;0;L;;;;;N;;;;;
-1686A;BAMUM LETTER PHASE-B SHEUAEQTU;Lo;0;L;;;;;N;;;;;
-1686B;BAMUM LETTER PHASE-B MFON TEUAEQ;Lo;0;L;;;;;N;;;;;
-1686C;BAMUM LETTER PHASE-B MBIT MBAAKET;Lo;0;L;;;;;N;;;;;
-1686D;BAMUM LETTER PHASE-B NYI NTEUM;Lo;0;L;;;;;N;;;;;
-1686E;BAMUM LETTER PHASE-B KEUPUQ;Lo;0;L;;;;;N;;;;;
-1686F;BAMUM LETTER PHASE-B GHEUGHEN;Lo;0;L;;;;;N;;;;;
-16870;BAMUM LETTER PHASE-B KEUYEUX;Lo;0;L;;;;;N;;;;;
-16871;BAMUM LETTER PHASE-B LAANAE;Lo;0;L;;;;;N;;;;;
-16872;BAMUM LETTER PHASE-B PARUM;Lo;0;L;;;;;N;;;;;
-16873;BAMUM LETTER PHASE-B VEUM;Lo;0;L;;;;;N;;;;;
-16874;BAMUM LETTER PHASE-B NGKINDI MVOP;Lo;0;L;;;;;N;;;;;
-16875;BAMUM LETTER PHASE-B NGGEU MBU;Lo;0;L;;;;;N;;;;;
-16876;BAMUM LETTER PHASE-B WUAET;Lo;0;L;;;;;N;;;;;
-16877;BAMUM LETTER PHASE-B SAKEUAE;Lo;0;L;;;;;N;;;;;
-16878;BAMUM LETTER PHASE-B TAAM;Lo;0;L;;;;;N;;;;;
-16879;BAMUM LETTER PHASE-B MEUQ;Lo;0;L;;;;;N;;;;;
-1687A;BAMUM LETTER PHASE-B NGGUOQ;Lo;0;L;;;;;N;;;;;
-1687B;BAMUM LETTER PHASE-B NGGUOQ LARGE;Lo;0;L;;;;;N;;;;;
-1687C;BAMUM LETTER PHASE-B MFIYAQ;Lo;0;L;;;;;N;;;;;
-1687D;BAMUM LETTER PHASE-B SUE;Lo;0;L;;;;;N;;;;;
-1687E;BAMUM LETTER PHASE-B MBEURI;Lo;0;L;;;;;N;;;;;
-1687F;BAMUM LETTER PHASE-B MONTIEEN;Lo;0;L;;;;;N;;;;;
-16880;BAMUM LETTER PHASE-B NYAEMAE;Lo;0;L;;;;;N;;;;;
-16881;BAMUM LETTER PHASE-B PUNGAAM;Lo;0;L;;;;;N;;;;;
-16882;BAMUM LETTER PHASE-B MEUT NGGEET;Lo;0;L;;;;;N;;;;;
-16883;BAMUM LETTER PHASE-B FEUX;Lo;0;L;;;;;N;;;;;
-16884;BAMUM LETTER PHASE-B MBUOQ;Lo;0;L;;;;;N;;;;;
-16885;BAMUM LETTER PHASE-B FEE;Lo;0;L;;;;;N;;;;;
-16886;BAMUM LETTER PHASE-B KEUAEM;Lo;0;L;;;;;N;;;;;
-16887;BAMUM LETTER PHASE-B MA NJEUAENA;Lo;0;L;;;;;N;;;;;
-16888;BAMUM LETTER PHASE-B MA NJUQA;Lo;0;L;;;;;N;;;;;
-16889;BAMUM LETTER PHASE-B LET;Lo;0;L;;;;;N;;;;;
-1688A;BAMUM LETTER PHASE-B NGGAAM;Lo;0;L;;;;;N;;;;;
-1688B;BAMUM LETTER PHASE-B NSEN;Lo;0;L;;;;;N;;;;;
-1688C;BAMUM LETTER PHASE-B MA;Lo;0;L;;;;;N;;;;;
-1688D;BAMUM LETTER PHASE-B KIQ;Lo;0;L;;;;;N;;;;;
-1688E;BAMUM LETTER PHASE-B NGOM;Lo;0;L;;;;;N;;;;;
-1688F;BAMUM LETTER PHASE-C NGKUE MAEMBA;Lo;0;L;;;;;N;;;;;
-16890;BAMUM LETTER PHASE-C NZA;Lo;0;L;;;;;N;;;;;
-16891;BAMUM LETTER PHASE-C YUM;Lo;0;L;;;;;N;;;;;
-16892;BAMUM LETTER PHASE-C WANGKUOQ;Lo;0;L;;;;;N;;;;;
-16893;BAMUM LETTER PHASE-C NGGEN;Lo;0;L;;;;;N;;;;;
-16894;BAMUM LETTER PHASE-C NDEUAEREE;Lo;0;L;;;;;N;;;;;
-16895;BAMUM LETTER PHASE-C NGKAQ;Lo;0;L;;;;;N;;;;;
-16896;BAMUM LETTER PHASE-C GHARAE;Lo;0;L;;;;;N;;;;;
-16897;BAMUM LETTER PHASE-C MBEEKEET;Lo;0;L;;;;;N;;;;;
-16898;BAMUM LETTER PHASE-C GBAYI;Lo;0;L;;;;;N;;;;;
-16899;BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN;Lo;0;L;;;;;N;;;;;
-1689A;BAMUM LETTER PHASE-C NTU MBIT;Lo;0;L;;;;;N;;;;;
-1689B;BAMUM LETTER PHASE-C MBEUM;Lo;0;L;;;;;N;;;;;
-1689C;BAMUM LETTER PHASE-C PIRIEEN;Lo;0;L;;;;;N;;;;;
-1689D;BAMUM LETTER PHASE-C NDOMBU;Lo;0;L;;;;;N;;;;;
-1689E;BAMUM LETTER PHASE-C MBAA CABBAGE-TREE;Lo;0;L;;;;;N;;;;;
-1689F;BAMUM LETTER PHASE-C KEUSHEUAEP;Lo;0;L;;;;;N;;;;;
-168A0;BAMUM LETTER PHASE-C GHAP;Lo;0;L;;;;;N;;;;;
-168A1;BAMUM LETTER PHASE-C KEUKAQ;Lo;0;L;;;;;N;;;;;
-168A2;BAMUM LETTER PHASE-C YU MUOMAE;Lo;0;L;;;;;N;;;;;
-168A3;BAMUM LETTER PHASE-C NZEUM;Lo;0;L;;;;;N;;;;;
-168A4;BAMUM LETTER PHASE-C MBUE;Lo;0;L;;;;;N;;;;;
-168A5;BAMUM LETTER PHASE-C NSEUAEN;Lo;0;L;;;;;N;;;;;
-168A6;BAMUM LETTER PHASE-C MBIT;Lo;0;L;;;;;N;;;;;
-168A7;BAMUM LETTER PHASE-C YEUQ;Lo;0;L;;;;;N;;;;;
-168A8;BAMUM LETTER PHASE-C KPARAQ;Lo;0;L;;;;;N;;;;;
-168A9;BAMUM LETTER PHASE-C KAA;Lo;0;L;;;;;N;;;;;
-168AA;BAMUM LETTER PHASE-C SEUX;Lo;0;L;;;;;N;;;;;
-168AB;BAMUM LETTER PHASE-C NDIDA;Lo;0;L;;;;;N;;;;;
-168AC;BAMUM LETTER PHASE-C TAASHAE;Lo;0;L;;;;;N;;;;;
-168AD;BAMUM LETTER PHASE-C NJUEQ;Lo;0;L;;;;;N;;;;;
-168AE;BAMUM LETTER PHASE-C TITA YUE;Lo;0;L;;;;;N;;;;;
-168AF;BAMUM LETTER PHASE-C SUAET;Lo;0;L;;;;;N;;;;;
-168B0;BAMUM LETTER PHASE-C NGGUAEN NYAM;Lo;0;L;;;;;N;;;;;
-168B1;BAMUM LETTER PHASE-C VEUX;Lo;0;L;;;;;N;;;;;
-168B2;BAMUM LETTER PHASE-C NANSANAQ;Lo;0;L;;;;;N;;;;;
-168B3;BAMUM LETTER PHASE-C MA KEUAERI;Lo;0;L;;;;;N;;;;;
-168B4;BAMUM LETTER PHASE-C NTAA;Lo;0;L;;;;;N;;;;;
-168B5;BAMUM LETTER PHASE-C NGGUON;Lo;0;L;;;;;N;;;;;
-168B6;BAMUM LETTER PHASE-C LAP;Lo;0;L;;;;;N;;;;;
-168B7;BAMUM LETTER PHASE-C MBIRIEEN;Lo;0;L;;;;;N;;;;;
-168B8;BAMUM LETTER PHASE-C MGBASAQ;Lo;0;L;;;;;N;;;;;
-168B9;BAMUM LETTER PHASE-C NTEUNGBA;Lo;0;L;;;;;N;;;;;
-168BA;BAMUM LETTER PHASE-C TEUTEUX;Lo;0;L;;;;;N;;;;;
-168BB;BAMUM LETTER PHASE-C NGGUM;Lo;0;L;;;;;N;;;;;
-168BC;BAMUM LETTER PHASE-C FUE;Lo;0;L;;;;;N;;;;;
-168BD;BAMUM LETTER PHASE-C NDEUT;Lo;0;L;;;;;N;;;;;
-168BE;BAMUM LETTER PHASE-C NSA;Lo;0;L;;;;;N;;;;;
-168BF;BAMUM LETTER PHASE-C NSHAQ;Lo;0;L;;;;;N;;;;;
-168C0;BAMUM LETTER PHASE-C BUNG;Lo;0;L;;;;;N;;;;;
-168C1;BAMUM LETTER PHASE-C VEUAEPEN;Lo;0;L;;;;;N;;;;;
-168C2;BAMUM LETTER PHASE-C MBERAE;Lo;0;L;;;;;N;;;;;
-168C3;BAMUM LETTER PHASE-C RU;Lo;0;L;;;;;N;;;;;
-168C4;BAMUM LETTER PHASE-C NJAEM;Lo;0;L;;;;;N;;;;;
-168C5;BAMUM LETTER PHASE-C LAM;Lo;0;L;;;;;N;;;;;
-168C6;BAMUM LETTER PHASE-C TITUAEP;Lo;0;L;;;;;N;;;;;
-168C7;BAMUM LETTER PHASE-C NSUOT NGOM;Lo;0;L;;;;;N;;;;;
-168C8;BAMUM LETTER PHASE-C NJEEEE;Lo;0;L;;;;;N;;;;;
-168C9;BAMUM LETTER PHASE-C KET;Lo;0;L;;;;;N;;;;;
-168CA;BAMUM LETTER PHASE-C NGGU;Lo;0;L;;;;;N;;;;;
-168CB;BAMUM LETTER PHASE-C MAESI;Lo;0;L;;;;;N;;;;;
-168CC;BAMUM LETTER PHASE-C MBUAEM;Lo;0;L;;;;;N;;;;;
-168CD;BAMUM LETTER PHASE-C LU;Lo;0;L;;;;;N;;;;;
-168CE;BAMUM LETTER PHASE-C KUT;Lo;0;L;;;;;N;;;;;
-168CF;BAMUM LETTER PHASE-C NJAM;Lo;0;L;;;;;N;;;;;
-168D0;BAMUM LETTER PHASE-C NGOM;Lo;0;L;;;;;N;;;;;
-168D1;BAMUM LETTER PHASE-C WUP;Lo;0;L;;;;;N;;;;;
-168D2;BAMUM LETTER PHASE-C NGGUEET;Lo;0;L;;;;;N;;;;;
-168D3;BAMUM LETTER PHASE-C NSOM;Lo;0;L;;;;;N;;;;;
-168D4;BAMUM LETTER PHASE-C NTEN;Lo;0;L;;;;;N;;;;;
-168D5;BAMUM LETTER PHASE-C KUOP NKAARAE;Lo;0;L;;;;;N;;;;;
-168D6;BAMUM LETTER PHASE-C NSUN;Lo;0;L;;;;;N;;;;;
-168D7;BAMUM LETTER PHASE-C NDAM;Lo;0;L;;;;;N;;;;;
-168D8;BAMUM LETTER PHASE-C MA NSIEE;Lo;0;L;;;;;N;;;;;
-168D9;BAMUM LETTER PHASE-C YAA;Lo;0;L;;;;;N;;;;;
-168DA;BAMUM LETTER PHASE-C NDAP;Lo;0;L;;;;;N;;;;;
-168DB;BAMUM LETTER PHASE-C SHUEQ;Lo;0;L;;;;;N;;;;;
-168DC;BAMUM LETTER PHASE-C SETFON;Lo;0;L;;;;;N;;;;;
-168DD;BAMUM LETTER PHASE-C MBI;Lo;0;L;;;;;N;;;;;
-168DE;BAMUM LETTER PHASE-C MAEMBA;Lo;0;L;;;;;N;;;;;
-168DF;BAMUM LETTER PHASE-C MBANYI;Lo;0;L;;;;;N;;;;;
-168E0;BAMUM LETTER PHASE-C KEUSEUX;Lo;0;L;;;;;N;;;;;
-168E1;BAMUM LETTER PHASE-C MBEUX;Lo;0;L;;;;;N;;;;;
-168E2;BAMUM LETTER PHASE-C KEUM;Lo;0;L;;;;;N;;;;;
-168E3;BAMUM LETTER PHASE-C MBAA PICKET;Lo;0;L;;;;;N;;;;;
-168E4;BAMUM LETTER PHASE-C YUWOQ;Lo;0;L;;;;;N;;;;;
-168E5;BAMUM LETTER PHASE-C NJEUX;Lo;0;L;;;;;N;;;;;
-168E6;BAMUM LETTER PHASE-C MIEE;Lo;0;L;;;;;N;;;;;
-168E7;BAMUM LETTER PHASE-C MUAE;Lo;0;L;;;;;N;;;;;
-168E8;BAMUM LETTER PHASE-C SHIQ;Lo;0;L;;;;;N;;;;;
-168E9;BAMUM LETTER PHASE-C KEN LAW;Lo;0;L;;;;;N;;;;;
-168EA;BAMUM LETTER PHASE-C KEN FATIGUE;Lo;0;L;;;;;N;;;;;
-168EB;BAMUM LETTER PHASE-C NGAQ;Lo;0;L;;;;;N;;;;;
-168EC;BAMUM LETTER PHASE-C NAQ;Lo;0;L;;;;;N;;;;;
-168ED;BAMUM LETTER PHASE-C LIQ;Lo;0;L;;;;;N;;;;;
-168EE;BAMUM LETTER PHASE-C PIN;Lo;0;L;;;;;N;;;;;
-168EF;BAMUM LETTER PHASE-C PEN;Lo;0;L;;;;;N;;;;;
-168F0;BAMUM LETTER PHASE-C TET;Lo;0;L;;;;;N;;;;;
-168F1;BAMUM LETTER PHASE-D MBUO;Lo;0;L;;;;;N;;;;;
-168F2;BAMUM LETTER PHASE-D WAP;Lo;0;L;;;;;N;;;;;
-168F3;BAMUM LETTER PHASE-D NJI;Lo;0;L;;;;;N;;;;;
-168F4;BAMUM LETTER PHASE-D MFON;Lo;0;L;;;;;N;;;;;
-168F5;BAMUM LETTER PHASE-D NJIEE;Lo;0;L;;;;;N;;;;;
-168F6;BAMUM LETTER PHASE-D LIEE;Lo;0;L;;;;;N;;;;;
-168F7;BAMUM LETTER PHASE-D NJEUT;Lo;0;L;;;;;N;;;;;
-168F8;BAMUM LETTER PHASE-D NSHEE;Lo;0;L;;;;;N;;;;;
-168F9;BAMUM LETTER PHASE-D NGGAAMAE;Lo;0;L;;;;;N;;;;;
-168FA;BAMUM LETTER PHASE-D NYAM;Lo;0;L;;;;;N;;;;;
-168FB;BAMUM LETTER PHASE-D WUAEN;Lo;0;L;;;;;N;;;;;
-168FC;BAMUM LETTER PHASE-D NGKUN;Lo;0;L;;;;;N;;;;;
-168FD;BAMUM LETTER PHASE-D SHEE;Lo;0;L;;;;;N;;;;;
-168FE;BAMUM LETTER PHASE-D NGKAP;Lo;0;L;;;;;N;;;;;
-168FF;BAMUM LETTER PHASE-D KEUAETMEUN;Lo;0;L;;;;;N;;;;;
-16900;BAMUM LETTER PHASE-D TEUT;Lo;0;L;;;;;N;;;;;
-16901;BAMUM LETTER PHASE-D SHEUAE;Lo;0;L;;;;;N;;;;;
-16902;BAMUM LETTER PHASE-D NJAP;Lo;0;L;;;;;N;;;;;
-16903;BAMUM LETTER PHASE-D SUE;Lo;0;L;;;;;N;;;;;
-16904;BAMUM LETTER PHASE-D KET;Lo;0;L;;;;;N;;;;;
-16905;BAMUM LETTER PHASE-D YAEMMAE;Lo;0;L;;;;;N;;;;;
-16906;BAMUM LETTER PHASE-D KUOM;Lo;0;L;;;;;N;;;;;
-16907;BAMUM LETTER PHASE-D SAP;Lo;0;L;;;;;N;;;;;
-16908;BAMUM LETTER PHASE-D MFEUT;Lo;0;L;;;;;N;;;;;
-16909;BAMUM LETTER PHASE-D NDEUX;Lo;0;L;;;;;N;;;;;
-1690A;BAMUM LETTER PHASE-D MALEERI;Lo;0;L;;;;;N;;;;;
-1690B;BAMUM LETTER PHASE-D MEUT;Lo;0;L;;;;;N;;;;;
-1690C;BAMUM LETTER PHASE-D SEUAEQ;Lo;0;L;;;;;N;;;;;
-1690D;BAMUM LETTER PHASE-D YEN;Lo;0;L;;;;;N;;;;;
-1690E;BAMUM LETTER PHASE-D NJEUAEM;Lo;0;L;;;;;N;;;;;
-1690F;BAMUM LETTER PHASE-D KEUOT MBUAE;Lo;0;L;;;;;N;;;;;
-16910;BAMUM LETTER PHASE-D NGKEURI;Lo;0;L;;;;;N;;;;;
-16911;BAMUM LETTER PHASE-D TU;Lo;0;L;;;;;N;;;;;
-16912;BAMUM LETTER PHASE-D GHAA;Lo;0;L;;;;;N;;;;;
-16913;BAMUM LETTER PHASE-D NGKYEE;Lo;0;L;;;;;N;;;;;
-16914;BAMUM LETTER PHASE-D FEUFEUAET;Lo;0;L;;;;;N;;;;;
-16915;BAMUM LETTER PHASE-D NDEE;Lo;0;L;;;;;N;;;;;
-16916;BAMUM LETTER PHASE-D MGBOFUM;Lo;0;L;;;;;N;;;;;
-16917;BAMUM LETTER PHASE-D LEUAEP;Lo;0;L;;;;;N;;;;;
-16918;BAMUM LETTER PHASE-D NDON;Lo;0;L;;;;;N;;;;;
-16919;BAMUM LETTER PHASE-D MONI;Lo;0;L;;;;;N;;;;;
-1691A;BAMUM LETTER PHASE-D MGBEUN;Lo;0;L;;;;;N;;;;;
-1691B;BAMUM LETTER PHASE-D PUUT;Lo;0;L;;;;;N;;;;;
-1691C;BAMUM LETTER PHASE-D MGBIEE;Lo;0;L;;;;;N;;;;;
-1691D;BAMUM LETTER PHASE-D MFO;Lo;0;L;;;;;N;;;;;
-1691E;BAMUM LETTER PHASE-D LUM;Lo;0;L;;;;;N;;;;;
-1691F;BAMUM LETTER PHASE-D NSIEEP;Lo;0;L;;;;;N;;;;;
-16920;BAMUM LETTER PHASE-D MBAA;Lo;0;L;;;;;N;;;;;
-16921;BAMUM LETTER PHASE-D KWAET;Lo;0;L;;;;;N;;;;;
-16922;BAMUM LETTER PHASE-D NYET;Lo;0;L;;;;;N;;;;;
-16923;BAMUM LETTER PHASE-D TEUAEN;Lo;0;L;;;;;N;;;;;
-16924;BAMUM LETTER PHASE-D SOT;Lo;0;L;;;;;N;;;;;
-16925;BAMUM LETTER PHASE-D YUWOQ;Lo;0;L;;;;;N;;;;;
-16926;BAMUM LETTER PHASE-D KEUM;Lo;0;L;;;;;N;;;;;
-16927;BAMUM LETTER PHASE-D RAEM;Lo;0;L;;;;;N;;;;;
-16928;BAMUM LETTER PHASE-D TEEEE;Lo;0;L;;;;;N;;;;;
-16929;BAMUM LETTER PHASE-D NGKEUAEQ;Lo;0;L;;;;;N;;;;;
-1692A;BAMUM LETTER PHASE-D MFEUAE;Lo;0;L;;;;;N;;;;;
-1692B;BAMUM LETTER PHASE-D NSIEET;Lo;0;L;;;;;N;;;;;
-1692C;BAMUM LETTER PHASE-D KEUP;Lo;0;L;;;;;N;;;;;
-1692D;BAMUM LETTER PHASE-D PIP;Lo;0;L;;;;;N;;;;;
-1692E;BAMUM LETTER PHASE-D PEUTAE;Lo;0;L;;;;;N;;;;;
-1692F;BAMUM LETTER PHASE-D NYUE;Lo;0;L;;;;;N;;;;;
-16930;BAMUM LETTER PHASE-D LET;Lo;0;L;;;;;N;;;;;
-16931;BAMUM LETTER PHASE-D NGGAAM;Lo;0;L;;;;;N;;;;;
-16932;BAMUM LETTER PHASE-D MFIEE;Lo;0;L;;;;;N;;;;;
-16933;BAMUM LETTER PHASE-D NGGWAEN;Lo;0;L;;;;;N;;;;;
-16934;BAMUM LETTER PHASE-D YUOM;Lo;0;L;;;;;N;;;;;
-16935;BAMUM LETTER PHASE-D PAP;Lo;0;L;;;;;N;;;;;
-16936;BAMUM LETTER PHASE-D YUOP;Lo;0;L;;;;;N;;;;;
-16937;BAMUM LETTER PHASE-D NDAM;Lo;0;L;;;;;N;;;;;
-16938;BAMUM LETTER PHASE-D NTEUM;Lo;0;L;;;;;N;;;;;
-16939;BAMUM LETTER PHASE-D SUAE;Lo;0;L;;;;;N;;;;;
-1693A;BAMUM LETTER PHASE-D KUN;Lo;0;L;;;;;N;;;;;
-1693B;BAMUM LETTER PHASE-D NGGEUX;Lo;0;L;;;;;N;;;;;
-1693C;BAMUM LETTER PHASE-D NGKIEE;Lo;0;L;;;;;N;;;;;
-1693D;BAMUM LETTER PHASE-D TUOT;Lo;0;L;;;;;N;;;;;
-1693E;BAMUM LETTER PHASE-D MEUN;Lo;0;L;;;;;N;;;;;
-1693F;BAMUM LETTER PHASE-D KUQ;Lo;0;L;;;;;N;;;;;
-16940;BAMUM LETTER PHASE-D NSUM;Lo;0;L;;;;;N;;;;;
-16941;BAMUM LETTER PHASE-D TEUN;Lo;0;L;;;;;N;;;;;
-16942;BAMUM LETTER PHASE-D MAENJET;Lo;0;L;;;;;N;;;;;
-16943;BAMUM LETTER PHASE-D NGGAP;Lo;0;L;;;;;N;;;;;
-16944;BAMUM LETTER PHASE-D LEUM;Lo;0;L;;;;;N;;;;;
-16945;BAMUM LETTER PHASE-D NGGUOM;Lo;0;L;;;;;N;;;;;
-16946;BAMUM LETTER PHASE-D NSHUT;Lo;0;L;;;;;N;;;;;
-16947;BAMUM LETTER PHASE-D NJUEQ;Lo;0;L;;;;;N;;;;;
-16948;BAMUM LETTER PHASE-D GHEUAE;Lo;0;L;;;;;N;;;;;
-16949;BAMUM LETTER PHASE-D KU;Lo;0;L;;;;;N;;;;;
-1694A;BAMUM LETTER PHASE-D REN OLD;Lo;0;L;;;;;N;;;;;
-1694B;BAMUM LETTER PHASE-D TAE;Lo;0;L;;;;;N;;;;;
-1694C;BAMUM LETTER PHASE-D TOQ;Lo;0;L;;;;;N;;;;;
-1694D;BAMUM LETTER PHASE-D NYI;Lo;0;L;;;;;N;;;;;
-1694E;BAMUM LETTER PHASE-D RII;Lo;0;L;;;;;N;;;;;
-1694F;BAMUM LETTER PHASE-D LEEEE;Lo;0;L;;;;;N;;;;;
-16950;BAMUM LETTER PHASE-D MEEEE;Lo;0;L;;;;;N;;;;;
-16951;BAMUM LETTER PHASE-D M;Lo;0;L;;;;;N;;;;;
-16952;BAMUM LETTER PHASE-D SUU;Lo;0;L;;;;;N;;;;;
-16953;BAMUM LETTER PHASE-D MU;Lo;0;L;;;;;N;;;;;
-16954;BAMUM LETTER PHASE-D SHII;Lo;0;L;;;;;N;;;;;
-16955;BAMUM LETTER PHASE-D SHEUX;Lo;0;L;;;;;N;;;;;
-16956;BAMUM LETTER PHASE-D KYEE;Lo;0;L;;;;;N;;;;;
-16957;BAMUM LETTER PHASE-D NU;Lo;0;L;;;;;N;;;;;
-16958;BAMUM LETTER PHASE-D SHU;Lo;0;L;;;;;N;;;;;
-16959;BAMUM LETTER PHASE-D NTEE;Lo;0;L;;;;;N;;;;;
-1695A;BAMUM LETTER PHASE-D PEE;Lo;0;L;;;;;N;;;;;
-1695B;BAMUM LETTER PHASE-D NI;Lo;0;L;;;;;N;;;;;
-1695C;BAMUM LETTER PHASE-D SHOQ;Lo;0;L;;;;;N;;;;;
-1695D;BAMUM LETTER PHASE-D PUQ;Lo;0;L;;;;;N;;;;;
-1695E;BAMUM LETTER PHASE-D MVOP;Lo;0;L;;;;;N;;;;;
-1695F;BAMUM LETTER PHASE-D LOQ;Lo;0;L;;;;;N;;;;;
-16960;BAMUM LETTER PHASE-D REN MUCH;Lo;0;L;;;;;N;;;;;
-16961;BAMUM LETTER PHASE-D TI;Lo;0;L;;;;;N;;;;;
-16962;BAMUM LETTER PHASE-D NTUU;Lo;0;L;;;;;N;;;;;
-16963;BAMUM LETTER PHASE-D MBAA SEVEN;Lo;0;L;;;;;N;;;;;
-16964;BAMUM LETTER PHASE-D SAQ;Lo;0;L;;;;;N;;;;;
-16965;BAMUM LETTER PHASE-D FAA;Lo;0;L;;;;;N;;;;;
-16966;BAMUM LETTER PHASE-E NDAP;Lo;0;L;;;;;N;;;;;
-16967;BAMUM LETTER PHASE-E TOON;Lo;0;L;;;;;N;;;;;
-16968;BAMUM LETTER PHASE-E MBEUM;Lo;0;L;;;;;N;;;;;
-16969;BAMUM LETTER PHASE-E LAP;Lo;0;L;;;;;N;;;;;
-1696A;BAMUM LETTER PHASE-E VOM;Lo;0;L;;;;;N;;;;;
-1696B;BAMUM LETTER PHASE-E LOON;Lo;0;L;;;;;N;;;;;
-1696C;BAMUM LETTER PHASE-E PAA;Lo;0;L;;;;;N;;;;;
-1696D;BAMUM LETTER PHASE-E SOM;Lo;0;L;;;;;N;;;;;
-1696E;BAMUM LETTER PHASE-E RAQ;Lo;0;L;;;;;N;;;;;
-1696F;BAMUM LETTER PHASE-E NSHUOP;Lo;0;L;;;;;N;;;;;
-16970;BAMUM LETTER PHASE-E NDUN;Lo;0;L;;;;;N;;;;;
-16971;BAMUM LETTER PHASE-E PUAE;Lo;0;L;;;;;N;;;;;
-16972;BAMUM LETTER PHASE-E TAM;Lo;0;L;;;;;N;;;;;
-16973;BAMUM LETTER PHASE-E NGKA;Lo;0;L;;;;;N;;;;;
-16974;BAMUM LETTER PHASE-E KPEUX;Lo;0;L;;;;;N;;;;;
-16975;BAMUM LETTER PHASE-E WUO;Lo;0;L;;;;;N;;;;;
-16976;BAMUM LETTER PHASE-E SEE;Lo;0;L;;;;;N;;;;;
-16977;BAMUM LETTER PHASE-E NGGEUAET;Lo;0;L;;;;;N;;;;;
-16978;BAMUM LETTER PHASE-E PAAM;Lo;0;L;;;;;N;;;;;
-16979;BAMUM LETTER PHASE-E TOO;Lo;0;L;;;;;N;;;;;
-1697A;BAMUM LETTER PHASE-E KUOP;Lo;0;L;;;;;N;;;;;
-1697B;BAMUM LETTER PHASE-E LOM;Lo;0;L;;;;;N;;;;;
-1697C;BAMUM LETTER PHASE-E NSHIEE;Lo;0;L;;;;;N;;;;;
-1697D;BAMUM LETTER PHASE-E NGOP;Lo;0;L;;;;;N;;;;;
-1697E;BAMUM LETTER PHASE-E MAEM;Lo;0;L;;;;;N;;;;;
-1697F;BAMUM LETTER PHASE-E NGKEUX;Lo;0;L;;;;;N;;;;;
-16980;BAMUM LETTER PHASE-E NGOQ;Lo;0;L;;;;;N;;;;;
-16981;BAMUM LETTER PHASE-E NSHUE;Lo;0;L;;;;;N;;;;;
-16982;BAMUM LETTER PHASE-E RIMGBA;Lo;0;L;;;;;N;;;;;
-16983;BAMUM LETTER PHASE-E NJEUX;Lo;0;L;;;;;N;;;;;
-16984;BAMUM LETTER PHASE-E PEEM;Lo;0;L;;;;;N;;;;;
-16985;BAMUM LETTER PHASE-E SAA;Lo;0;L;;;;;N;;;;;
-16986;BAMUM LETTER PHASE-E NGGURAE;Lo;0;L;;;;;N;;;;;
-16987;BAMUM LETTER PHASE-E MGBA;Lo;0;L;;;;;N;;;;;
-16988;BAMUM LETTER PHASE-E GHEUX;Lo;0;L;;;;;N;;;;;
-16989;BAMUM LETTER PHASE-E NGKEUAEM;Lo;0;L;;;;;N;;;;;
-1698A;BAMUM LETTER PHASE-E NJAEMLI;Lo;0;L;;;;;N;;;;;
-1698B;BAMUM LETTER PHASE-E MAP;Lo;0;L;;;;;N;;;;;
-1698C;BAMUM LETTER PHASE-E LOOT;Lo;0;L;;;;;N;;;;;
-1698D;BAMUM LETTER PHASE-E NGGEEEE;Lo;0;L;;;;;N;;;;;
-1698E;BAMUM LETTER PHASE-E NDIQ;Lo;0;L;;;;;N;;;;;
-1698F;BAMUM LETTER PHASE-E TAEN NTEUM;Lo;0;L;;;;;N;;;;;
-16990;BAMUM LETTER PHASE-E SET;Lo;0;L;;;;;N;;;;;
-16991;BAMUM LETTER PHASE-E PUM;Lo;0;L;;;;;N;;;;;
-16992;BAMUM LETTER PHASE-E NDAA SOFTNESS;Lo;0;L;;;;;N;;;;;
-16993;BAMUM LETTER PHASE-E NGGUAESHAE NYAM;Lo;0;L;;;;;N;;;;;
-16994;BAMUM LETTER PHASE-E YIEE;Lo;0;L;;;;;N;;;;;
-16995;BAMUM LETTER PHASE-E GHEUN;Lo;0;L;;;;;N;;;;;
-16996;BAMUM LETTER PHASE-E TUAE;Lo;0;L;;;;;N;;;;;
-16997;BAMUM LETTER PHASE-E YEUAE;Lo;0;L;;;;;N;;;;;
-16998;BAMUM LETTER PHASE-E PO;Lo;0;L;;;;;N;;;;;
-16999;BAMUM LETTER PHASE-E TUMAE;Lo;0;L;;;;;N;;;;;
-1699A;BAMUM LETTER PHASE-E KEUAE;Lo;0;L;;;;;N;;;;;
-1699B;BAMUM LETTER PHASE-E SUAEN;Lo;0;L;;;;;N;;;;;
-1699C;BAMUM LETTER PHASE-E TEUAEQ;Lo;0;L;;;;;N;;;;;
-1699D;BAMUM LETTER PHASE-E VEUAE;Lo;0;L;;;;;N;;;;;
-1699E;BAMUM LETTER PHASE-E WEUX;Lo;0;L;;;;;N;;;;;
-1699F;BAMUM LETTER PHASE-E LAAM;Lo;0;L;;;;;N;;;;;
-169A0;BAMUM LETTER PHASE-E PU;Lo;0;L;;;;;N;;;;;
-169A1;BAMUM LETTER PHASE-E TAAQ;Lo;0;L;;;;;N;;;;;
-169A2;BAMUM LETTER PHASE-E GHAAMAE;Lo;0;L;;;;;N;;;;;
-169A3;BAMUM LETTER PHASE-E NGEUREUT;Lo;0;L;;;;;N;;;;;
-169A4;BAMUM LETTER PHASE-E SHEUAEQ;Lo;0;L;;;;;N;;;;;
-169A5;BAMUM LETTER PHASE-E MGBEN;Lo;0;L;;;;;N;;;;;
-169A6;BAMUM LETTER PHASE-E MBEE;Lo;0;L;;;;;N;;;;;
-169A7;BAMUM LETTER PHASE-E NZAQ;Lo;0;L;;;;;N;;;;;
-169A8;BAMUM LETTER PHASE-E NKOM;Lo;0;L;;;;;N;;;;;
-169A9;BAMUM LETTER PHASE-E GBET;Lo;0;L;;;;;N;;;;;
-169AA;BAMUM LETTER PHASE-E TUM;Lo;0;L;;;;;N;;;;;
-169AB;BAMUM LETTER PHASE-E KUET;Lo;0;L;;;;;N;;;;;
-169AC;BAMUM LETTER PHASE-E YAP;Lo;0;L;;;;;N;;;;;
-169AD;BAMUM LETTER PHASE-E NYI CLEAVER;Lo;0;L;;;;;N;;;;;
-169AE;BAMUM LETTER PHASE-E YIT;Lo;0;L;;;;;N;;;;;
-169AF;BAMUM LETTER PHASE-E MFEUQ;Lo;0;L;;;;;N;;;;;
-169B0;BAMUM LETTER PHASE-E NDIAQ;Lo;0;L;;;;;N;;;;;
-169B1;BAMUM LETTER PHASE-E PIEEQ;Lo;0;L;;;;;N;;;;;
-169B2;BAMUM LETTER PHASE-E YUEQ;Lo;0;L;;;;;N;;;;;
-169B3;BAMUM LETTER PHASE-E LEUAEM;Lo;0;L;;;;;N;;;;;
-169B4;BAMUM LETTER PHASE-E FUE;Lo;0;L;;;;;N;;;;;
-169B5;BAMUM LETTER PHASE-E GBEUX;Lo;0;L;;;;;N;;;;;
-169B6;BAMUM LETTER PHASE-E NGKUP;Lo;0;L;;;;;N;;;;;
-169B7;BAMUM LETTER PHASE-E KET;Lo;0;L;;;;;N;;;;;
-169B8;BAMUM LETTER PHASE-E MAE;Lo;0;L;;;;;N;;;;;
-169B9;BAMUM LETTER PHASE-E NGKAAMI;Lo;0;L;;;;;N;;;;;
-169BA;BAMUM LETTER PHASE-E GHET;Lo;0;L;;;;;N;;;;;
-169BB;BAMUM LETTER PHASE-E FA;Lo;0;L;;;;;N;;;;;
-169BC;BAMUM LETTER PHASE-E NTUM;Lo;0;L;;;;;N;;;;;
-169BD;BAMUM LETTER PHASE-E PEUT;Lo;0;L;;;;;N;;;;;
-169BE;BAMUM LETTER PHASE-E YEUM;Lo;0;L;;;;;N;;;;;
-169BF;BAMUM LETTER PHASE-E NGGEUAE;Lo;0;L;;;;;N;;;;;
-169C0;BAMUM LETTER PHASE-E NYI BETWEEN;Lo;0;L;;;;;N;;;;;
-169C1;BAMUM LETTER PHASE-E NZUQ;Lo;0;L;;;;;N;;;;;
-169C2;BAMUM LETTER PHASE-E POON;Lo;0;L;;;;;N;;;;;
-169C3;BAMUM LETTER PHASE-E MIEE;Lo;0;L;;;;;N;;;;;
-169C4;BAMUM LETTER PHASE-E FUET;Lo;0;L;;;;;N;;;;;
-169C5;BAMUM LETTER PHASE-E NAE;Lo;0;L;;;;;N;;;;;
-169C6;BAMUM LETTER PHASE-E MUAE;Lo;0;L;;;;;N;;;;;
-169C7;BAMUM LETTER PHASE-E GHEUAE;Lo;0;L;;;;;N;;;;;
-169C8;BAMUM LETTER PHASE-E FU I;Lo;0;L;;;;;N;;;;;
-169C9;BAMUM LETTER PHASE-E MVI;Lo;0;L;;;;;N;;;;;
-169CA;BAMUM LETTER PHASE-E PUAQ;Lo;0;L;;;;;N;;;;;
-169CB;BAMUM LETTER PHASE-E NGKUM;Lo;0;L;;;;;N;;;;;
-169CC;BAMUM LETTER PHASE-E KUT;Lo;0;L;;;;;N;;;;;
-169CD;BAMUM LETTER PHASE-E PIET;Lo;0;L;;;;;N;;;;;
-169CE;BAMUM LETTER PHASE-E NTAP;Lo;0;L;;;;;N;;;;;
-169CF;BAMUM LETTER PHASE-E YEUAET;Lo;0;L;;;;;N;;;;;
-169D0;BAMUM LETTER PHASE-E NGGUP;Lo;0;L;;;;;N;;;;;
-169D1;BAMUM LETTER PHASE-E PA PEOPLE;Lo;0;L;;;;;N;;;;;
-169D2;BAMUM LETTER PHASE-E FU CALL;Lo;0;L;;;;;N;;;;;
-169D3;BAMUM LETTER PHASE-E FOM;Lo;0;L;;;;;N;;;;;
-169D4;BAMUM LETTER PHASE-E NJEE;Lo;0;L;;;;;N;;;;;
-169D5;BAMUM LETTER PHASE-E A;Lo;0;L;;;;;N;;;;;
-169D6;BAMUM LETTER PHASE-E TOQ;Lo;0;L;;;;;N;;;;;
-169D7;BAMUM LETTER PHASE-E O;Lo;0;L;;;;;N;;;;;
-169D8;BAMUM LETTER PHASE-E I;Lo;0;L;;;;;N;;;;;
-169D9;BAMUM LETTER PHASE-E LAQ;Lo;0;L;;;;;N;;;;;
-169DA;BAMUM LETTER PHASE-E PA PLURAL;Lo;0;L;;;;;N;;;;;
-169DB;BAMUM LETTER PHASE-E TAA;Lo;0;L;;;;;N;;;;;
-169DC;BAMUM LETTER PHASE-E TAQ;Lo;0;L;;;;;N;;;;;
-169DD;BAMUM LETTER PHASE-E NDAA MY HOUSE;Lo;0;L;;;;;N;;;;;
-169DE;BAMUM LETTER PHASE-E SHIQ;Lo;0;L;;;;;N;;;;;
-169DF;BAMUM LETTER PHASE-E YEUX;Lo;0;L;;;;;N;;;;;
-169E0;BAMUM LETTER PHASE-E NGUAE;Lo;0;L;;;;;N;;;;;
-169E1;BAMUM LETTER PHASE-E YUAEN;Lo;0;L;;;;;N;;;;;
-169E2;BAMUM LETTER PHASE-E YOQ SWIMMING;Lo;0;L;;;;;N;;;;;
-169E3;BAMUM LETTER PHASE-E YOQ COVER;Lo;0;L;;;;;N;;;;;
-169E4;BAMUM LETTER PHASE-E YUQ;Lo;0;L;;;;;N;;;;;
-169E5;BAMUM LETTER PHASE-E YUN;Lo;0;L;;;;;N;;;;;
-169E6;BAMUM LETTER PHASE-E KEUX;Lo;0;L;;;;;N;;;;;
-169E7;BAMUM LETTER PHASE-E PEUX;Lo;0;L;;;;;N;;;;;
-169E8;BAMUM LETTER PHASE-E NJEE EPOCH;Lo;0;L;;;;;N;;;;;
-169E9;BAMUM LETTER PHASE-E PUE;Lo;0;L;;;;;N;;;;;
-169EA;BAMUM LETTER PHASE-E WUE;Lo;0;L;;;;;N;;;;;
-169EB;BAMUM LETTER PHASE-E FEE;Lo;0;L;;;;;N;;;;;
-169EC;BAMUM LETTER PHASE-E VEE;Lo;0;L;;;;;N;;;;;
-169ED;BAMUM LETTER PHASE-E LU;Lo;0;L;;;;;N;;;;;
-169EE;BAMUM LETTER PHASE-E MI;Lo;0;L;;;;;N;;;;;
-169EF;BAMUM LETTER PHASE-E REUX;Lo;0;L;;;;;N;;;;;
-169F0;BAMUM LETTER PHASE-E RAE;Lo;0;L;;;;;N;;;;;
-169F1;BAMUM LETTER PHASE-E NGUAET;Lo;0;L;;;;;N;;;;;
-169F2;BAMUM LETTER PHASE-E NGA;Lo;0;L;;;;;N;;;;;
-169F3;BAMUM LETTER PHASE-E SHO;Lo;0;L;;;;;N;;;;;
-169F4;BAMUM LETTER PHASE-E SHOQ;Lo;0;L;;;;;N;;;;;
-169F5;BAMUM LETTER PHASE-E FU REMEDY;Lo;0;L;;;;;N;;;;;
-169F6;BAMUM LETTER PHASE-E NA;Lo;0;L;;;;;N;;;;;
-169F7;BAMUM LETTER PHASE-E PI;Lo;0;L;;;;;N;;;;;
-169F8;BAMUM LETTER PHASE-E LOQ;Lo;0;L;;;;;N;;;;;
-169F9;BAMUM LETTER PHASE-E KO;Lo;0;L;;;;;N;;;;;
-169FA;BAMUM LETTER PHASE-E MEN;Lo;0;L;;;;;N;;;;;
-169FB;BAMUM LETTER PHASE-E MA;Lo;0;L;;;;;N;;;;;
-169FC;BAMUM LETTER PHASE-E MAQ;Lo;0;L;;;;;N;;;;;
-169FD;BAMUM LETTER PHASE-E TEU;Lo;0;L;;;;;N;;;;;
-169FE;BAMUM LETTER PHASE-E KI;Lo;0;L;;;;;N;;;;;
-169FF;BAMUM LETTER PHASE-E MON;Lo;0;L;;;;;N;;;;;
-16A00;BAMUM LETTER PHASE-E TEN;Lo;0;L;;;;;N;;;;;
-16A01;BAMUM LETTER PHASE-E FAQ;Lo;0;L;;;;;N;;;;;
-16A02;BAMUM LETTER PHASE-E GHOM;Lo;0;L;;;;;N;;;;;
-16A03;BAMUM LETTER PHASE-F KA;Lo;0;L;;;;;N;;;;;
-16A04;BAMUM LETTER PHASE-F U;Lo;0;L;;;;;N;;;;;
-16A05;BAMUM LETTER PHASE-F KU;Lo;0;L;;;;;N;;;;;
-16A06;BAMUM LETTER PHASE-F EE;Lo;0;L;;;;;N;;;;;
-16A07;BAMUM LETTER PHASE-F REE;Lo;0;L;;;;;N;;;;;
-16A08;BAMUM LETTER PHASE-F TAE;Lo;0;L;;;;;N;;;;;
-16A09;BAMUM LETTER PHASE-F NYI;Lo;0;L;;;;;N;;;;;
-16A0A;BAMUM LETTER PHASE-F LA;Lo;0;L;;;;;N;;;;;
-16A0B;BAMUM LETTER PHASE-F RII;Lo;0;L;;;;;N;;;;;
-16A0C;BAMUM LETTER PHASE-F RIEE;Lo;0;L;;;;;N;;;;;
-16A0D;BAMUM LETTER PHASE-F MEEEE;Lo;0;L;;;;;N;;;;;
-16A0E;BAMUM LETTER PHASE-F TAA;Lo;0;L;;;;;N;;;;;
-16A0F;BAMUM LETTER PHASE-F NDAA;Lo;0;L;;;;;N;;;;;
-16A10;BAMUM LETTER PHASE-F NJAEM;Lo;0;L;;;;;N;;;;;
-16A11;BAMUM LETTER PHASE-F M;Lo;0;L;;;;;N;;;;;
-16A12;BAMUM LETTER PHASE-F SUU;Lo;0;L;;;;;N;;;;;
-16A13;BAMUM LETTER PHASE-F SHII;Lo;0;L;;;;;N;;;;;
-16A14;BAMUM LETTER PHASE-F SI;Lo;0;L;;;;;N;;;;;
-16A15;BAMUM LETTER PHASE-F SEUX;Lo;0;L;;;;;N;;;;;
-16A16;BAMUM LETTER PHASE-F KYEE;Lo;0;L;;;;;N;;;;;
-16A17;BAMUM LETTER PHASE-F KET;Lo;0;L;;;;;N;;;;;
-16A18;BAMUM LETTER PHASE-F NUAE;Lo;0;L;;;;;N;;;;;
-16A19;BAMUM LETTER PHASE-F NU;Lo;0;L;;;;;N;;;;;
-16A1A;BAMUM LETTER PHASE-F NJUAE;Lo;0;L;;;;;N;;;;;
-16A1B;BAMUM LETTER PHASE-F YOQ;Lo;0;L;;;;;N;;;;;
-16A1C;BAMUM LETTER PHASE-F SHU;Lo;0;L;;;;;N;;;;;
-16A1D;BAMUM LETTER PHASE-F YA;Lo;0;L;;;;;N;;;;;
-16A1E;BAMUM LETTER PHASE-F NSHA;Lo;0;L;;;;;N;;;;;
-16A1F;BAMUM LETTER PHASE-F PEUX;Lo;0;L;;;;;N;;;;;
-16A20;BAMUM LETTER PHASE-F NTEE;Lo;0;L;;;;;N;;;;;
-16A21;BAMUM LETTER PHASE-F WUE;Lo;0;L;;;;;N;;;;;
-16A22;BAMUM LETTER PHASE-F PEE;Lo;0;L;;;;;N;;;;;
-16A23;BAMUM LETTER PHASE-F RU;Lo;0;L;;;;;N;;;;;
-16A24;BAMUM LETTER PHASE-F NI;Lo;0;L;;;;;N;;;;;
-16A25;BAMUM LETTER PHASE-F REUX;Lo;0;L;;;;;N;;;;;
-16A26;BAMUM LETTER PHASE-F KEN;Lo;0;L;;;;;N;;;;;
-16A27;BAMUM LETTER PHASE-F NGKWAEN;Lo;0;L;;;;;N;;;;;
-16A28;BAMUM LETTER PHASE-F NGGA;Lo;0;L;;;;;N;;;;;
-16A29;BAMUM LETTER PHASE-F SHO;Lo;0;L;;;;;N;;;;;
-16A2A;BAMUM LETTER PHASE-F PUAE;Lo;0;L;;;;;N;;;;;
-16A2B;BAMUM LETTER PHASE-F FOM;Lo;0;L;;;;;N;;;;;
-16A2C;BAMUM LETTER PHASE-F WA;Lo;0;L;;;;;N;;;;;
-16A2D;BAMUM LETTER PHASE-F LI;Lo;0;L;;;;;N;;;;;
-16A2E;BAMUM LETTER PHASE-F LOQ;Lo;0;L;;;;;N;;;;;
-16A2F;BAMUM LETTER PHASE-F KO;Lo;0;L;;;;;N;;;;;
-16A30;BAMUM LETTER PHASE-F MBEN;Lo;0;L;;;;;N;;;;;
-16A31;BAMUM LETTER PHASE-F REN;Lo;0;L;;;;;N;;;;;
-16A32;BAMUM LETTER PHASE-F MA;Lo;0;L;;;;;N;;;;;
-16A33;BAMUM LETTER PHASE-F MO;Lo;0;L;;;;;N;;;;;
-16A34;BAMUM LETTER PHASE-F MBAA;Lo;0;L;;;;;N;;;;;
-16A35;BAMUM LETTER PHASE-F TET;Lo;0;L;;;;;N;;;;;
-16A36;BAMUM LETTER PHASE-F KPA;Lo;0;L;;;;;N;;;;;
-16A37;BAMUM LETTER PHASE-F SAMBA;Lo;0;L;;;;;N;;;;;
-16A38;BAMUM LETTER PHASE-F VUEQ;Lo;0;L;;;;;N;;;;;
-16F00;MIAO LETTER PA;Lo;0;L;;;;;N;;;;;
-16F01;MIAO LETTER BA;Lo;0;L;;;;;N;;;;;
-16F02;MIAO LETTER YI PA;Lo;0;L;;;;;N;;;;;
-16F03;MIAO LETTER PLA;Lo;0;L;;;;;N;;;;;
-16F04;MIAO LETTER MA;Lo;0;L;;;;;N;;;;;
-16F05;MIAO LETTER MHA;Lo;0;L;;;;;N;;;;;
-16F06;MIAO LETTER ARCHAIC MA;Lo;0;L;;;;;N;;;;;
-16F07;MIAO LETTER FA;Lo;0;L;;;;;N;;;;;
-16F08;MIAO LETTER VA;Lo;0;L;;;;;N;;;;;
-16F09;MIAO LETTER VFA;Lo;0;L;;;;;N;;;;;
-16F0A;MIAO LETTER TA;Lo;0;L;;;;;N;;;;;
-16F0B;MIAO LETTER DA;Lo;0;L;;;;;N;;;;;
-16F0C;MIAO LETTER YI TTA;Lo;0;L;;;;;N;;;;;
-16F0D;MIAO LETTER YI TA;Lo;0;L;;;;;N;;;;;
-16F0E;MIAO LETTER TTA;Lo;0;L;;;;;N;;;;;
-16F0F;MIAO LETTER DDA;Lo;0;L;;;;;N;;;;;
-16F10;MIAO LETTER NA;Lo;0;L;;;;;N;;;;;
-16F11;MIAO LETTER NHA;Lo;0;L;;;;;N;;;;;
-16F12;MIAO LETTER YI NNA;Lo;0;L;;;;;N;;;;;
-16F13;MIAO LETTER ARCHAIC NA;Lo;0;L;;;;;N;;;;;
-16F14;MIAO LETTER NNA;Lo;0;L;;;;;N;;;;;
-16F15;MIAO LETTER NNHA;Lo;0;L;;;;;N;;;;;
-16F16;MIAO LETTER LA;Lo;0;L;;;;;N;;;;;
-16F17;MIAO LETTER LYA;Lo;0;L;;;;;N;;;;;
-16F18;MIAO LETTER LHA;Lo;0;L;;;;;N;;;;;
-16F19;MIAO LETTER LHYA;Lo;0;L;;;;;N;;;;;
-16F1A;MIAO LETTER TLHA;Lo;0;L;;;;;N;;;;;
-16F1B;MIAO LETTER DLHA;Lo;0;L;;;;;N;;;;;
-16F1C;MIAO LETTER TLHYA;Lo;0;L;;;;;N;;;;;
-16F1D;MIAO LETTER DLHYA;Lo;0;L;;;;;N;;;;;
-16F1E;MIAO LETTER KA;Lo;0;L;;;;;N;;;;;
-16F1F;MIAO LETTER GA;Lo;0;L;;;;;N;;;;;
-16F20;MIAO LETTER YI KA;Lo;0;L;;;;;N;;;;;
-16F21;MIAO LETTER QA;Lo;0;L;;;;;N;;;;;
-16F22;MIAO LETTER QGA;Lo;0;L;;;;;N;;;;;
-16F23;MIAO LETTER NGA;Lo;0;L;;;;;N;;;;;
-16F24;MIAO LETTER NGHA;Lo;0;L;;;;;N;;;;;
-16F25;MIAO LETTER ARCHAIC NGA;Lo;0;L;;;;;N;;;;;
-16F26;MIAO LETTER HA;Lo;0;L;;;;;N;;;;;
-16F27;MIAO LETTER XA;Lo;0;L;;;;;N;;;;;
-16F28;MIAO LETTER GHA;Lo;0;L;;;;;N;;;;;
-16F29;MIAO LETTER GHHA;Lo;0;L;;;;;N;;;;;
-16F2A;MIAO LETTER TSSA;Lo;0;L;;;;;N;;;;;
-16F2B;MIAO LETTER DZZA;Lo;0;L;;;;;N;;;;;
-16F2C;MIAO LETTER NYA;Lo;0;L;;;;;N;;;;;
-16F2D;MIAO LETTER NYHA;Lo;0;L;;;;;N;;;;;
-16F2E;MIAO LETTER TSHA;Lo;0;L;;;;;N;;;;;
-16F2F;MIAO LETTER DZHA;Lo;0;L;;;;;N;;;;;
-16F30;MIAO LETTER YI TSHA;Lo;0;L;;;;;N;;;;;
-16F31;MIAO LETTER YI DZHA;Lo;0;L;;;;;N;;;;;
-16F32;MIAO LETTER REFORMED TSHA;Lo;0;L;;;;;N;;;;;
-16F33;MIAO LETTER SHA;Lo;0;L;;;;;N;;;;;
-16F34;MIAO LETTER SSA;Lo;0;L;;;;;N;;;;;
-16F35;MIAO LETTER ZHA;Lo;0;L;;;;;N;;;;;
-16F36;MIAO LETTER ZSHA;Lo;0;L;;;;;N;;;;;
-16F37;MIAO LETTER TSA;Lo;0;L;;;;;N;;;;;
-16F38;MIAO LETTER DZA;Lo;0;L;;;;;N;;;;;
-16F39;MIAO LETTER YI TSA;Lo;0;L;;;;;N;;;;;
-16F3A;MIAO LETTER SA;Lo;0;L;;;;;N;;;;;
-16F3B;MIAO LETTER ZA;Lo;0;L;;;;;N;;;;;
-16F3C;MIAO LETTER ZSA;Lo;0;L;;;;;N;;;;;
-16F3D;MIAO LETTER ZZA;Lo;0;L;;;;;N;;;;;
-16F3E;MIAO LETTER ZZSA;Lo;0;L;;;;;N;;;;;
-16F3F;MIAO LETTER ARCHAIC ZZA;Lo;0;L;;;;;N;;;;;
-16F40;MIAO LETTER ZZYA;Lo;0;L;;;;;N;;;;;
-16F41;MIAO LETTER ZZSYA;Lo;0;L;;;;;N;;;;;
-16F42;MIAO LETTER WA;Lo;0;L;;;;;N;;;;;
-16F43;MIAO LETTER AH;Lo;0;L;;;;;N;;;;;
-16F44;MIAO LETTER HHA;Lo;0;L;;;;;N;;;;;
-16F50;MIAO LETTER NASALIZATION;Lo;0;L;;;;;N;;;;;
-16F51;MIAO SIGN ASPIRATION;Mc;0;L;;;;;N;;;;;
-16F52;MIAO SIGN REFORMED VOICING;Mc;0;L;;;;;N;;;;;
-16F53;MIAO SIGN REFORMED ASPIRATION;Mc;0;L;;;;;N;;;;;
-16F54;MIAO VOWEL SIGN A;Mc;0;L;;;;;N;;;;;
-16F55;MIAO VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
-16F56;MIAO VOWEL SIGN AHH;Mc;0;L;;;;;N;;;;;
-16F57;MIAO VOWEL SIGN AN;Mc;0;L;;;;;N;;;;;
-16F58;MIAO VOWEL SIGN ANG;Mc;0;L;;;;;N;;;;;
-16F59;MIAO VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
-16F5A;MIAO VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
-16F5B;MIAO VOWEL SIGN WO;Mc;0;L;;;;;N;;;;;
-16F5C;MIAO VOWEL SIGN W;Mc;0;L;;;;;N;;;;;
-16F5D;MIAO VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
-16F5E;MIAO VOWEL SIGN EN;Mc;0;L;;;;;N;;;;;
-16F5F;MIAO VOWEL SIGN ENG;Mc;0;L;;;;;N;;;;;
-16F60;MIAO VOWEL SIGN OEY;Mc;0;L;;;;;N;;;;;
-16F61;MIAO VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
-16F62;MIAO VOWEL SIGN IA;Mc;0;L;;;;;N;;;;;
-16F63;MIAO VOWEL SIGN IAN;Mc;0;L;;;;;N;;;;;
-16F64;MIAO VOWEL SIGN IANG;Mc;0;L;;;;;N;;;;;
-16F65;MIAO VOWEL SIGN IO;Mc;0;L;;;;;N;;;;;
-16F66;MIAO VOWEL SIGN IE;Mc;0;L;;;;;N;;;;;
-16F67;MIAO VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
-16F68;MIAO VOWEL SIGN IU;Mc;0;L;;;;;N;;;;;
-16F69;MIAO VOWEL SIGN ING;Mc;0;L;;;;;N;;;;;
-16F6A;MIAO VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
-16F6B;MIAO VOWEL SIGN UA;Mc;0;L;;;;;N;;;;;
-16F6C;MIAO VOWEL SIGN UAN;Mc;0;L;;;;;N;;;;;
-16F6D;MIAO VOWEL SIGN UANG;Mc;0;L;;;;;N;;;;;
-16F6E;MIAO VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
-16F6F;MIAO VOWEL SIGN UEI;Mc;0;L;;;;;N;;;;;
-16F70;MIAO VOWEL SIGN UNG;Mc;0;L;;;;;N;;;;;
-16F71;MIAO VOWEL SIGN Y;Mc;0;L;;;;;N;;;;;
-16F72;MIAO VOWEL SIGN YI;Mc;0;L;;;;;N;;;;;
-16F73;MIAO VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
-16F74;MIAO VOWEL SIGN AEE;Mc;0;L;;;;;N;;;;;
-16F75;MIAO VOWEL SIGN ERR;Mc;0;L;;;;;N;;;;;
-16F76;MIAO VOWEL SIGN ROUNDED ERR;Mc;0;L;;;;;N;;;;;
-16F77;MIAO VOWEL SIGN ER;Mc;0;L;;;;;N;;;;;
-16F78;MIAO VOWEL SIGN ROUNDED ER;Mc;0;L;;;;;N;;;;;
-16F79;MIAO VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
-16F7A;MIAO VOWEL SIGN EI;Mc;0;L;;;;;N;;;;;
-16F7B;MIAO VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
-16F7C;MIAO VOWEL SIGN OU;Mc;0;L;;;;;N;;;;;
-16F7D;MIAO VOWEL SIGN N;Mc;0;L;;;;;N;;;;;
-16F7E;MIAO VOWEL SIGN NG;Mc;0;L;;;;;N;;;;;
-16F8F;MIAO TONE RIGHT;Mn;0;NSM;;;;;N;;;;;
-16F90;MIAO TONE TOP RIGHT;Mn;0;NSM;;;;;N;;;;;
-16F91;MIAO TONE ABOVE;Mn;0;NSM;;;;;N;;;;;
-16F92;MIAO TONE BELOW;Mn;0;NSM;;;;;N;;;;;
-16F93;MIAO LETTER TONE-2;Lm;0;L;;;;;N;;;;;
-16F94;MIAO LETTER TONE-3;Lm;0;L;;;;;N;;;;;
-16F95;MIAO LETTER TONE-4;Lm;0;L;;;;;N;;;;;
-16F96;MIAO LETTER TONE-5;Lm;0;L;;;;;N;;;;;
-16F97;MIAO LETTER TONE-6;Lm;0;L;;;;;N;;;;;
-16F98;MIAO LETTER TONE-7;Lm;0;L;;;;;N;;;;;
-16F99;MIAO LETTER TONE-8;Lm;0;L;;;;;N;;;;;
-16F9A;MIAO LETTER REFORMED TONE-1;Lm;0;L;;;;;N;;;;;
-16F9B;MIAO LETTER REFORMED TONE-2;Lm;0;L;;;;;N;;;;;
-16F9C;MIAO LETTER REFORMED TONE-4;Lm;0;L;;;;;N;;;;;
-16F9D;MIAO LETTER REFORMED TONE-5;Lm;0;L;;;;;N;;;;;
-16F9E;MIAO LETTER REFORMED TONE-6;Lm;0;L;;;;;N;;;;;
-16F9F;MIAO LETTER REFORMED TONE-8;Lm;0;L;;;;;N;;;;;
-1B000;KATAKANA LETTER ARCHAIC E;Lo;0;L;;;;;N;;;;;
-1B001;HIRAGANA LETTER ARCHAIC YE;Lo;0;L;;;;;N;;;;;
-1D000;BYZANTINE MUSICAL SYMBOL PSILI;So;0;L;;;;;N;;;;;
-1D001;BYZANTINE MUSICAL SYMBOL DASEIA;So;0;L;;;;;N;;;;;
-1D002;BYZANTINE MUSICAL SYMBOL PERISPOMENI;So;0;L;;;;;N;;;;;
-1D003;BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON;So;0;L;;;;;N;;;;;
-1D004;BYZANTINE MUSICAL SYMBOL OXEIA DIPLI;So;0;L;;;;;N;;;;;
-1D005;BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON;So;0;L;;;;;N;;;;;
-1D006;BYZANTINE MUSICAL SYMBOL VAREIA DIPLI;So;0;L;;;;;N;;;;;
-1D007;BYZANTINE MUSICAL SYMBOL KATHISTI;So;0;L;;;;;N;;;;;
-1D008;BYZANTINE MUSICAL SYMBOL SYRMATIKI;So;0;L;;;;;N;;;;;
-1D009;BYZANTINE MUSICAL SYMBOL PARAKLITIKI;So;0;L;;;;;N;;;;;
-1D00A;BYZANTINE MUSICAL SYMBOL YPOKRISIS;So;0;L;;;;;N;;;;;
-1D00B;BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI;So;0;L;;;;;N;;;;;
-1D00C;BYZANTINE MUSICAL SYMBOL KREMASTI;So;0;L;;;;;N;;;;;
-1D00D;BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON;So;0;L;;;;;N;;;;;
-1D00E;BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON;So;0;L;;;;;N;;;;;
-1D00F;BYZANTINE MUSICAL SYMBOL TELEIA;So;0;L;;;;;N;;;;;
-1D010;BYZANTINE MUSICAL SYMBOL KENTIMATA;So;0;L;;;;;N;;;;;
-1D011;BYZANTINE MUSICAL SYMBOL APOSTROFOS;So;0;L;;;;;N;;;;;
-1D012;BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI;So;0;L;;;;;N;;;;;
-1D013;BYZANTINE MUSICAL SYMBOL SYNEVMA;So;0;L;;;;;N;;;;;
-1D014;BYZANTINE MUSICAL SYMBOL THITA;So;0;L;;;;;N;;;;;
-1D015;BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION;So;0;L;;;;;N;;;;;
-1D016;BYZANTINE MUSICAL SYMBOL GORGON ARCHAION;So;0;L;;;;;N;;;;;
-1D017;BYZANTINE MUSICAL SYMBOL PSILON;So;0;L;;;;;N;;;;;
-1D018;BYZANTINE MUSICAL SYMBOL CHAMILON;So;0;L;;;;;N;;;;;
-1D019;BYZANTINE MUSICAL SYMBOL VATHY;So;0;L;;;;;N;;;;;
-1D01A;BYZANTINE MUSICAL SYMBOL ISON ARCHAION;So;0;L;;;;;N;;;;;
-1D01B;BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION;So;0;L;;;;;N;;;;;
-1D01C;BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION;So;0;L;;;;;N;;;;;
-1D01D;BYZANTINE MUSICAL SYMBOL SAXIMATA;So;0;L;;;;;N;;;;;
-1D01E;BYZANTINE MUSICAL SYMBOL PARICHON;So;0;L;;;;;N;;;;;
-1D01F;BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA;So;0;L;;;;;N;;;;;
-1D020;BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION;So;0;L;;;;;N;;;;;
-1D021;BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION;So;0;L;;;;;N;;;;;
-1D022;BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION;So;0;L;;;;;N;;;;;
-1D023;BYZANTINE MUSICAL SYMBOL APOTHEMA;So;0;L;;;;;N;;;;;
-1D024;BYZANTINE MUSICAL SYMBOL KLASMA;So;0;L;;;;;N;;;;;
-1D025;BYZANTINE MUSICAL SYMBOL REVMA;So;0;L;;;;;N;;;;;
-1D026;BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION;So;0;L;;;;;N;;;;;
-1D027;BYZANTINE MUSICAL SYMBOL TINAGMA;So;0;L;;;;;N;;;;;
-1D028;BYZANTINE MUSICAL SYMBOL ANATRICHISMA;So;0;L;;;;;N;;;;;
-1D029;BYZANTINE MUSICAL SYMBOL SEISMA;So;0;L;;;;;N;;;;;
-1D02A;BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION;So;0;L;;;;;N;;;;;
-1D02B;BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU;So;0;L;;;;;N;;;;;
-1D02C;BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION;So;0;L;;;;;N;;;;;
-1D02D;BYZANTINE MUSICAL SYMBOL THEMA;So;0;L;;;;;N;;;;;
-1D02E;BYZANTINE MUSICAL SYMBOL LEMOI;So;0;L;;;;;N;;;;;
-1D02F;BYZANTINE MUSICAL SYMBOL DYO;So;0;L;;;;;N;;;;;
-1D030;BYZANTINE MUSICAL SYMBOL TRIA;So;0;L;;;;;N;;;;;
-1D031;BYZANTINE MUSICAL SYMBOL TESSERA;So;0;L;;;;;N;;;;;
-1D032;BYZANTINE MUSICAL SYMBOL KRATIMATA;So;0;L;;;;;N;;;;;
-1D033;BYZANTINE MUSICAL SYMBOL APESO EXO NEO;So;0;L;;;;;N;;;;;
-1D034;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION;So;0;L;;;;;N;;;;;
-1D035;BYZANTINE MUSICAL SYMBOL IMIFTHORA;So;0;L;;;;;N;;;;;
-1D036;BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION;So;0;L;;;;;N;;;;;
-1D037;BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON;So;0;L;;;;;N;;;;;
-1D038;BYZANTINE MUSICAL SYMBOL PELASTON;So;0;L;;;;;N;;;;;
-1D039;BYZANTINE MUSICAL SYMBOL PSIFISTON;So;0;L;;;;;N;;;;;
-1D03A;BYZANTINE MUSICAL SYMBOL KONTEVMA;So;0;L;;;;;N;;;;;
-1D03B;BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION;So;0;L;;;;;N;;;;;
-1D03C;BYZANTINE MUSICAL SYMBOL RAPISMA;So;0;L;;;;;N;;;;;
-1D03D;BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION;So;0;L;;;;;N;;;;;
-1D03E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION;So;0;L;;;;;N;;;;;
-1D03F;BYZANTINE MUSICAL SYMBOL ICHADIN;So;0;L;;;;;N;;;;;
-1D040;BYZANTINE MUSICAL SYMBOL NANA;So;0;L;;;;;N;;;;;
-1D041;BYZANTINE MUSICAL SYMBOL PETASMA;So;0;L;;;;;N;;;;;
-1D042;BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO;So;0;L;;;;;N;;;;;
-1D043;BYZANTINE MUSICAL SYMBOL TROMIKON ALLO;So;0;L;;;;;N;;;;;
-1D044;BYZANTINE MUSICAL SYMBOL STRAGGISMATA;So;0;L;;;;;N;;;;;
-1D045;BYZANTINE MUSICAL SYMBOL GRONTHISMATA;So;0;L;;;;;N;;;;;
-1D046;BYZANTINE MUSICAL SYMBOL ISON NEO;So;0;L;;;;;N;;;;;
-1D047;BYZANTINE MUSICAL SYMBOL OLIGON NEO;So;0;L;;;;;N;;;;;
-1D048;BYZANTINE MUSICAL SYMBOL OXEIA NEO;So;0;L;;;;;N;;;;;
-1D049;BYZANTINE MUSICAL SYMBOL PETASTI;So;0;L;;;;;N;;;;;
-1D04A;BYZANTINE MUSICAL SYMBOL KOUFISMA;So;0;L;;;;;N;;;;;
-1D04B;BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA;So;0;L;;;;;N;;;;;
-1D04C;BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA;So;0;L;;;;;N;;;;;
-1D04D;BYZANTINE MUSICAL SYMBOL PELASTON NEO;So;0;L;;;;;N;;;;;
-1D04E;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO;So;0;L;;;;;N;;;;;
-1D04F;BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO;So;0;L;;;;;N;;;;;
-1D050;BYZANTINE MUSICAL SYMBOL YPSILI;So;0;L;;;;;N;;;;;
-1D051;BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO;So;0;L;;;;;N;;;;;
-1D052;BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO;So;0;L;;;;;N;;;;;
-1D053;BYZANTINE MUSICAL SYMBOL YPORROI;So;0;L;;;;;N;;;;;
-1D054;BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON;So;0;L;;;;;N;;;;;
-1D055;BYZANTINE MUSICAL SYMBOL ELAFRON;So;0;L;;;;;N;;;;;
-1D056;BYZANTINE MUSICAL SYMBOL CHAMILI;So;0;L;;;;;N;;;;;
-1D057;BYZANTINE MUSICAL SYMBOL MIKRON ISON;So;0;L;;;;;N;;;;;
-1D058;BYZANTINE MUSICAL SYMBOL VAREIA NEO;So;0;L;;;;;N;;;;;
-1D059;BYZANTINE MUSICAL SYMBOL PIASMA NEO;So;0;L;;;;;N;;;;;
-1D05A;BYZANTINE MUSICAL SYMBOL PSIFISTON NEO;So;0;L;;;;;N;;;;;
-1D05B;BYZANTINE MUSICAL SYMBOL OMALON;So;0;L;;;;;N;;;;;
-1D05C;BYZANTINE MUSICAL SYMBOL ANTIKENOMA;So;0;L;;;;;N;;;;;
-1D05D;BYZANTINE MUSICAL SYMBOL LYGISMA;So;0;L;;;;;N;;;;;
-1D05E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO;So;0;L;;;;;N;;;;;
-1D05F;BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO;So;0;L;;;;;N;;;;;
-1D060;BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA;So;0;L;;;;;N;;;;;
-1D061;BYZANTINE MUSICAL SYMBOL KYLISMA;So;0;L;;;;;N;;;;;
-1D062;BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA;So;0;L;;;;;N;;;;;
-1D063;BYZANTINE MUSICAL SYMBOL TROMIKON NEO;So;0;L;;;;;N;;;;;
-1D064;BYZANTINE MUSICAL SYMBOL EKSTREPTON;So;0;L;;;;;N;;;;;
-1D065;BYZANTINE MUSICAL SYMBOL SYNAGMA NEO;So;0;L;;;;;N;;;;;
-1D066;BYZANTINE MUSICAL SYMBOL SYRMA;So;0;L;;;;;N;;;;;
-1D067;BYZANTINE MUSICAL SYMBOL CHOREVMA NEO;So;0;L;;;;;N;;;;;
-1D068;BYZANTINE MUSICAL SYMBOL EPEGERMA;So;0;L;;;;;N;;;;;
-1D069;BYZANTINE MUSICAL SYMBOL SEISMA NEO;So;0;L;;;;;N;;;;;
-1D06A;BYZANTINE MUSICAL SYMBOL XIRON KLASMA;So;0;L;;;;;N;;;;;
-1D06B;BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON;So;0;L;;;;;N;;;;;
-1D06C;BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA;So;0;L;;;;;N;;;;;
-1D06D;BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA;So;0;L;;;;;N;;;;;
-1D06E;BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA;So;0;L;;;;;N;;;;;
-1D06F;BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA;So;0;L;;;;;N;;;;;
-1D070;BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA;So;0;L;;;;;N;;;;;
-1D071;BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA;So;0;L;;;;;N;;;;;
-1D072;BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON;So;0;L;;;;;N;;;;;
-1D073;BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON;So;0;L;;;;;N;;;;;
-1D074;BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON;So;0;L;;;;;N;;;;;
-1D075;BYZANTINE MUSICAL SYMBOL OYRANISMA NEO;So;0;L;;;;;N;;;;;
-1D076;BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO;So;0;L;;;;;N;;;;;
-1D077;BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO;So;0;L;;;;;N;;;;;
-1D078;BYZANTINE MUSICAL SYMBOL THEMA APLOUN;So;0;L;;;;;N;;;;;
-1D079;BYZANTINE MUSICAL SYMBOL THES KAI APOTHES;So;0;L;;;;;N;;;;;
-1D07A;BYZANTINE MUSICAL SYMBOL KATAVASMA;So;0;L;;;;;N;;;;;
-1D07B;BYZANTINE MUSICAL SYMBOL ENDOFONON;So;0;L;;;;;N;;;;;
-1D07C;BYZANTINE MUSICAL SYMBOL YFEN KATO;So;0;L;;;;;N;;;;;
-1D07D;BYZANTINE MUSICAL SYMBOL YFEN ANO;So;0;L;;;;;N;;;;;
-1D07E;BYZANTINE MUSICAL SYMBOL STAVROS;So;0;L;;;;;N;;;;;
-1D07F;BYZANTINE MUSICAL SYMBOL KLASMA ANO;So;0;L;;;;;N;;;;;
-1D080;BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION;So;0;L;;;;;N;;;;;
-1D081;BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION;So;0;L;;;;;N;;;;;
-1D082;BYZANTINE MUSICAL SYMBOL KRATIMA ALLO;So;0;L;;;;;N;;;;;
-1D083;BYZANTINE MUSICAL SYMBOL KRATIMA NEO;So;0;L;;;;;N;;;;;
-1D084;BYZANTINE MUSICAL SYMBOL APODERMA NEO;So;0;L;;;;;N;;;;;
-1D085;BYZANTINE MUSICAL SYMBOL APLI;So;0;L;;;;;N;;;;;
-1D086;BYZANTINE MUSICAL SYMBOL DIPLI;So;0;L;;;;;N;;;;;
-1D087;BYZANTINE MUSICAL SYMBOL TRIPLI;So;0;L;;;;;N;;;;;
-1D088;BYZANTINE MUSICAL SYMBOL TETRAPLI;So;0;L;;;;;N;;;;;
-1D089;BYZANTINE MUSICAL SYMBOL KORONIS;So;0;L;;;;;N;;;;;
-1D08A;BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU;So;0;L;;;;;N;;;;;
-1D08B;BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON;So;0;L;;;;;N;;;;;
-1D08C;BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON;So;0;L;;;;;N;;;;;
-1D08D;BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON;So;0;L;;;;;N;;;;;
-1D08E;BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU;So;0;L;;;;;N;;;;;
-1D08F;BYZANTINE MUSICAL SYMBOL GORGON NEO ANO;So;0;L;;;;;N;;;;;
-1D090;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA;So;0;L;;;;;N;;;;;
-1D091;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;;
-1D092;BYZANTINE MUSICAL SYMBOL DIGORGON;So;0;L;;;;;N;;;;;
-1D093;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO;So;0;L;;;;;N;;;;;
-1D094;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO;So;0;L;;;;;N;;;;;
-1D095;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;;
-1D096;BYZANTINE MUSICAL SYMBOL TRIGORGON;So;0;L;;;;;N;;;;;
-1D097;BYZANTINE MUSICAL SYMBOL ARGON;So;0;L;;;;;N;;;;;
-1D098;BYZANTINE MUSICAL SYMBOL IMIDIARGON;So;0;L;;;;;N;;;;;
-1D099;BYZANTINE MUSICAL SYMBOL DIARGON;So;0;L;;;;;N;;;;;
-1D09A;BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI;So;0;L;;;;;N;;;;;
-1D09B;BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI;So;0;L;;;;;N;;;;;
-1D09C;BYZANTINE MUSICAL SYMBOL AGOGI ARGI;So;0;L;;;;;N;;;;;
-1D09D;BYZANTINE MUSICAL SYMBOL AGOGI METRIA;So;0;L;;;;;N;;;;;
-1D09E;BYZANTINE MUSICAL SYMBOL AGOGI MESI;So;0;L;;;;;N;;;;;
-1D09F;BYZANTINE MUSICAL SYMBOL AGOGI GORGI;So;0;L;;;;;N;;;;;
-1D0A0;BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI;So;0;L;;;;;N;;;;;
-1D0A1;BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI;So;0;L;;;;;N;;;;;
-1D0A2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS;So;0;L;;;;;N;;;;;
-1D0A3;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS;So;0;L;;;;;N;;;;;
-1D0A4;BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS;So;0;L;;;;;N;;;;;
-1D0A5;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS;So;0;L;;;;;N;;;;;
-1D0A6;BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS;So;0;L;;;;;N;;;;;
-1D0A7;BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS;So;0;L;;;;;N;;;;;
-1D0A8;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS;So;0;L;;;;;N;;;;;
-1D0A9;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS;So;0;L;;;;;N;;;;;
-1D0AA;BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS;So;0;L;;;;;N;;;;;
-1D0AB;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS;So;0;L;;;;;N;;;;;
-1D0AC;BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS;So;0;L;;;;;N;;;;;
-1D0AD;BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS;So;0;L;;;;;N;;;;;
-1D0AE;BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS;So;0;L;;;;;N;;;;;
-1D0AF;BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS;So;0;L;;;;;N;;;;;
-1D0B0;BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS;So;0;L;;;;;N;;;;;
-1D0B1;BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS;So;0;L;;;;;N;;;;;
-1D0B2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS;So;0;L;;;;;N;;;;;
-1D0B3;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS;So;0;L;;;;;N;;;;;
-1D0B4;BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN;So;0;L;;;;;N;;;;;
-1D0B5;BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN;So;0;L;;;;;N;;;;;
-1D0B6;BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU;So;0;L;;;;;N;;;;;
-1D0B7;BYZANTINE MUSICAL SYMBOL IMIFONON;So;0;L;;;;;N;;;;;
-1D0B8;BYZANTINE MUSICAL SYMBOL IMIFTHORON;So;0;L;;;;;N;;;;;
-1D0B9;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU;So;0;L;;;;;N;;;;;
-1D0BA;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA;So;0;L;;;;;N;;;;;
-1D0BB;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA;So;0;L;;;;;N;;;;;
-1D0BC;BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS;So;0;L;;;;;N;;;;;
-1D0BD;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI;So;0;L;;;;;N;;;;;
-1D0BE;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI;So;0;L;;;;;N;;;;;
-1D0BF;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE;So;0;L;;;;;N;;;;;
-1D0C0;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO;So;0;L;;;;;N;;;;;
-1D0C1;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO;So;0;L;;;;;N;;;;;
-1D0C2;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO;So;0;L;;;;;N;;;;;
-1D0C3;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS;So;0;L;;;;;N;;;;;
-1D0C4;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS;So;0;L;;;;;N;;;;;
-1D0C5;BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS;So;0;L;;;;;N;;;;;
-1D0C6;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI;So;0;L;;;;;N;;;;;
-1D0C7;BYZANTINE MUSICAL SYMBOL FTHORA NENANO;So;0;L;;;;;N;;;;;
-1D0C8;BYZANTINE MUSICAL SYMBOL CHROA ZYGOS;So;0;L;;;;;N;;;;;
-1D0C9;BYZANTINE MUSICAL SYMBOL CHROA KLITON;So;0;L;;;;;N;;;;;
-1D0CA;BYZANTINE MUSICAL SYMBOL CHROA SPATHI;So;0;L;;;;;N;;;;;
-1D0CB;BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION;So;0;L;;;;;N;;;;;
-1D0CC;BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA;So;0;L;;;;;N;;;;;
-1D0CD;BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION;So;0;L;;;;;N;;;;;
-1D0CE;BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION;So;0;L;;;;;N;;;;;
-1D0CF;BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION;So;0;L;;;;;N;;;;;
-1D0D0;BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;;
-1D0D1;BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;;
-1D0D2;BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;;
-1D0D3;BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;;
-1D0D4;BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;;
-1D0D5;BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;;
-1D0D6;BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;;
-1D0D7;BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;;
-1D0D8;BYZANTINE MUSICAL SYMBOL GENIKI DIESIS;So;0;L;;;;;N;;;;;
-1D0D9;BYZANTINE MUSICAL SYMBOL GENIKI YFESIS;So;0;L;;;;;N;;;;;
-1D0DA;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI;So;0;L;;;;;N;;;;;
-1D0DB;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI;So;0;L;;;;;N;;;;;
-1D0DC;BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI;So;0;L;;;;;N;;;;;
-1D0DD;BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS;So;0;L;;;;;N;;;;;
-1D0DE;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS;So;0;L;;;;;N;;;;;
-1D0DF;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU;So;0;L;;;;;N;;;;;
-1D0E0;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU;So;0;L;;;;;N;;;;;
-1D0E1;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU;So;0;L;;;;;N;;;;;
-1D0E2;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS;So;0;L;;;;;N;;;;;
-1D0E3;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU;So;0;L;;;;;N;;;;;
-1D0E4;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU;So;0;L;;;;;N;;;;;
-1D0E5;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU;So;0;L;;;;;N;;;;;
-1D0E6;BYZANTINE MUSICAL SYMBOL DIGRAMMA GG;So;0;L;;;;;N;;;;;
-1D0E7;BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU;So;0;L;;;;;N;;;;;
-1D0E8;BYZANTINE MUSICAL SYMBOL STIGMA;So;0;L;;;;;N;;;;;
-1D0E9;BYZANTINE MUSICAL SYMBOL ARKTIKO PA;So;0;L;;;;;N;;;;;
-1D0EA;BYZANTINE MUSICAL SYMBOL ARKTIKO VOU;So;0;L;;;;;N;;;;;
-1D0EB;BYZANTINE MUSICAL SYMBOL ARKTIKO GA;So;0;L;;;;;N;;;;;
-1D0EC;BYZANTINE MUSICAL SYMBOL ARKTIKO DI;So;0;L;;;;;N;;;;;
-1D0ED;BYZANTINE MUSICAL SYMBOL ARKTIKO KE;So;0;L;;;;;N;;;;;
-1D0EE;BYZANTINE MUSICAL SYMBOL ARKTIKO ZO;So;0;L;;;;;N;;;;;
-1D0EF;BYZANTINE MUSICAL SYMBOL ARKTIKO NI;So;0;L;;;;;N;;;;;
-1D0F0;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO;So;0;L;;;;;N;;;;;
-1D0F1;BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO;So;0;L;;;;;N;;;;;
-1D0F2;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO;So;0;L;;;;;N;;;;;
-1D0F3;BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO;So;0;L;;;;;N;;;;;
-1D0F4;BYZANTINE MUSICAL SYMBOL KLASMA KATO;So;0;L;;;;;N;;;;;
-1D0F5;BYZANTINE MUSICAL SYMBOL GORGON NEO KATO;So;0;L;;;;;N;;;;;
-1D100;MUSICAL SYMBOL SINGLE BARLINE;So;0;L;;;;;N;;;;;
-1D101;MUSICAL SYMBOL DOUBLE BARLINE;So;0;L;;;;;N;;;;;
-1D102;MUSICAL SYMBOL FINAL BARLINE;So;0;L;;;;;N;;;;;
-1D103;MUSICAL SYMBOL REVERSE FINAL BARLINE;So;0;L;;;;;N;;;;;
-1D104;MUSICAL SYMBOL DASHED BARLINE;So;0;L;;;;;N;;;;;
-1D105;MUSICAL SYMBOL SHORT BARLINE;So;0;L;;;;;N;;;;;
-1D106;MUSICAL SYMBOL LEFT REPEAT SIGN;So;0;L;;;;;N;;;;;
-1D107;MUSICAL SYMBOL RIGHT REPEAT SIGN;So;0;L;;;;;N;;;;;
-1D108;MUSICAL SYMBOL REPEAT DOTS;So;0;L;;;;;N;;;;;
-1D109;MUSICAL SYMBOL DAL SEGNO;So;0;L;;;;;N;;;;;
-1D10A;MUSICAL SYMBOL DA CAPO;So;0;L;;;;;N;;;;;
-1D10B;MUSICAL SYMBOL SEGNO;So;0;L;;;;;N;;;;;
-1D10C;MUSICAL SYMBOL CODA;So;0;L;;;;;N;;;;;
-1D10D;MUSICAL SYMBOL REPEATED FIGURE-1;So;0;L;;;;;N;;;;;
-1D10E;MUSICAL SYMBOL REPEATED FIGURE-2;So;0;L;;;;;N;;;;;
-1D10F;MUSICAL SYMBOL REPEATED FIGURE-3;So;0;L;;;;;N;;;;;
-1D110;MUSICAL SYMBOL FERMATA;So;0;L;;;;;N;;;;;
-1D111;MUSICAL SYMBOL FERMATA BELOW;So;0;L;;;;;N;;;;;
-1D112;MUSICAL SYMBOL BREATH MARK;So;0;L;;;;;N;;;;;
-1D113;MUSICAL SYMBOL CAESURA;So;0;L;;;;;N;;;;;
-1D114;MUSICAL SYMBOL BRACE;So;0;L;;;;;N;;;;;
-1D115;MUSICAL SYMBOL BRACKET;So;0;L;;;;;N;;;;;
-1D116;MUSICAL SYMBOL ONE-LINE STAFF;So;0;L;;;;;N;;;;;
-1D117;MUSICAL SYMBOL TWO-LINE STAFF;So;0;L;;;;;N;;;;;
-1D118;MUSICAL SYMBOL THREE-LINE STAFF;So;0;L;;;;;N;;;;;
-1D119;MUSICAL SYMBOL FOUR-LINE STAFF;So;0;L;;;;;N;;;;;
-1D11A;MUSICAL SYMBOL FIVE-LINE STAFF;So;0;L;;;;;N;;;;;
-1D11B;MUSICAL SYMBOL SIX-LINE STAFF;So;0;L;;;;;N;;;;;
-1D11C;MUSICAL SYMBOL SIX-STRING FRETBOARD;So;0;L;;;;;N;;;;;
-1D11D;MUSICAL SYMBOL FOUR-STRING FRETBOARD;So;0;L;;;;;N;;;;;
-1D11E;MUSICAL SYMBOL G CLEF;So;0;L;;;;;N;;;;;
-1D11F;MUSICAL SYMBOL G CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;;
-1D120;MUSICAL SYMBOL G CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;;
-1D121;MUSICAL SYMBOL C CLEF;So;0;L;;;;;N;;;;;
-1D122;MUSICAL SYMBOL F CLEF;So;0;L;;;;;N;;;;;
-1D123;MUSICAL SYMBOL F CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;;
-1D124;MUSICAL SYMBOL F CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;;
-1D125;MUSICAL SYMBOL DRUM CLEF-1;So;0;L;;;;;N;;;;;
-1D126;MUSICAL SYMBOL DRUM CLEF-2;So;0;L;;;;;N;;;;;
-1D129;MUSICAL SYMBOL MULTIPLE MEASURE REST;So;0;L;;;;;N;;;;;
-1D12A;MUSICAL SYMBOL DOUBLE SHARP;So;0;L;;;;;N;;;;;
-1D12B;MUSICAL SYMBOL DOUBLE FLAT;So;0;L;;;;;N;;;;;
-1D12C;MUSICAL SYMBOL FLAT UP;So;0;L;;;;;N;;;;;
-1D12D;MUSICAL SYMBOL FLAT DOWN;So;0;L;;;;;N;;;;;
-1D12E;MUSICAL SYMBOL NATURAL UP;So;0;L;;;;;N;;;;;
-1D12F;MUSICAL SYMBOL NATURAL DOWN;So;0;L;;;;;N;;;;;
-1D130;MUSICAL SYMBOL SHARP UP;So;0;L;;;;;N;;;;;
-1D131;MUSICAL SYMBOL SHARP DOWN;So;0;L;;;;;N;;;;;
-1D132;MUSICAL SYMBOL QUARTER TONE SHARP;So;0;L;;;;;N;;;;;
-1D133;MUSICAL SYMBOL QUARTER TONE FLAT;So;0;L;;;;;N;;;;;
-1D134;MUSICAL SYMBOL COMMON TIME;So;0;L;;;;;N;;;;;
-1D135;MUSICAL SYMBOL CUT TIME;So;0;L;;;;;N;;;;;
-1D136;MUSICAL SYMBOL OTTAVA ALTA;So;0;L;;;;;N;;;;;
-1D137;MUSICAL SYMBOL OTTAVA BASSA;So;0;L;;;;;N;;;;;
-1D138;MUSICAL SYMBOL QUINDICESIMA ALTA;So;0;L;;;;;N;;;;;
-1D139;MUSICAL SYMBOL QUINDICESIMA BASSA;So;0;L;;;;;N;;;;;
-1D13A;MUSICAL SYMBOL MULTI REST;So;0;L;;;;;N;;;;;
-1D13B;MUSICAL SYMBOL WHOLE REST;So;0;L;;;;;N;;;;;
-1D13C;MUSICAL SYMBOL HALF REST;So;0;L;;;;;N;;;;;
-1D13D;MUSICAL SYMBOL QUARTER REST;So;0;L;;;;;N;;;;;
-1D13E;MUSICAL SYMBOL EIGHTH REST;So;0;L;;;;;N;;;;;
-1D13F;MUSICAL SYMBOL SIXTEENTH REST;So;0;L;;;;;N;;;;;
-1D140;MUSICAL SYMBOL THIRTY-SECOND REST;So;0;L;;;;;N;;;;;
-1D141;MUSICAL SYMBOL SIXTY-FOURTH REST;So;0;L;;;;;N;;;;;
-1D142;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST;So;0;L;;;;;N;;;;;
-1D143;MUSICAL SYMBOL X NOTEHEAD;So;0;L;;;;;N;;;;;
-1D144;MUSICAL SYMBOL PLUS NOTEHEAD;So;0;L;;;;;N;;;;;
-1D145;MUSICAL SYMBOL CIRCLE X NOTEHEAD;So;0;L;;;;;N;;;;;
-1D146;MUSICAL SYMBOL SQUARE NOTEHEAD WHITE;So;0;L;;;;;N;;;;;
-1D147;MUSICAL SYMBOL SQUARE NOTEHEAD BLACK;So;0;L;;;;;N;;;;;
-1D148;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE;So;0;L;;;;;N;;;;;
-1D149;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK;So;0;L;;;;;N;;;;;
-1D14A;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE;So;0;L;;;;;N;;;;;
-1D14B;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK;So;0;L;;;;;N;;;;;
-1D14C;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE;So;0;L;;;;;N;;;;;
-1D14D;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK;So;0;L;;;;;N;;;;;
-1D14E;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;;
-1D14F;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;;
-1D150;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE;So;0;L;;;;;N;;;;;
-1D151;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK;So;0;L;;;;;N;;;;;
-1D152;MUSICAL SYMBOL MOON NOTEHEAD WHITE;So;0;L;;;;;N;;;;;
-1D153;MUSICAL SYMBOL MOON NOTEHEAD BLACK;So;0;L;;;;;N;;;;;
-1D154;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;;
-1D155;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;;
-1D156;MUSICAL SYMBOL PARENTHESIS NOTEHEAD;So;0;L;;;;;N;;;;;
-1D157;MUSICAL SYMBOL VOID NOTEHEAD;So;0;L;;;;;N;;;;;
-1D158;MUSICAL SYMBOL NOTEHEAD BLACK;So;0;L;;;;;N;;;;;
-1D159;MUSICAL SYMBOL NULL NOTEHEAD;So;0;L;;;;;N;;;;;
-1D15A;MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE;So;0;L;;;;;N;;;;;
-1D15B;MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK;So;0;L;;;;;N;;;;;
-1D15C;MUSICAL SYMBOL BREVE;So;0;L;;;;;N;;;;;
-1D15D;MUSICAL SYMBOL WHOLE NOTE;So;0;L;;;;;N;;;;;
-1D15E;MUSICAL SYMBOL HALF NOTE;So;0;L;1D157 1D165;;;;N;;;;;
-1D15F;MUSICAL SYMBOL QUARTER NOTE;So;0;L;1D158 1D165;;;;N;;;;;
-1D160;MUSICAL SYMBOL EIGHTH NOTE;So;0;L;1D15F 1D16E;;;;N;;;;;
-1D161;MUSICAL SYMBOL SIXTEENTH NOTE;So;0;L;1D15F 1D16F;;;;N;;;;;
-1D162;MUSICAL SYMBOL THIRTY-SECOND NOTE;So;0;L;1D15F 1D170;;;;N;;;;;
-1D163;MUSICAL SYMBOL SIXTY-FOURTH NOTE;So;0;L;1D15F 1D171;;;;N;;;;;
-1D164;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE;So;0;L;1D15F 1D172;;;;N;;;;;
-1D165;MUSICAL SYMBOL COMBINING STEM;Mc;216;L;;;;;N;;;;;
-1D166;MUSICAL SYMBOL COMBINING SPRECHGESANG STEM;Mc;216;L;;;;;N;;;;;
-1D167;MUSICAL SYMBOL COMBINING TREMOLO-1;Mn;1;NSM;;;;;N;;;;;
-1D168;MUSICAL SYMBOL COMBINING TREMOLO-2;Mn;1;NSM;;;;;N;;;;;
-1D169;MUSICAL SYMBOL COMBINING TREMOLO-3;Mn;1;NSM;;;;;N;;;;;
-1D16A;MUSICAL SYMBOL FINGERED TREMOLO-1;So;0;L;;;;;N;;;;;
-1D16B;MUSICAL SYMBOL FINGERED TREMOLO-2;So;0;L;;;;;N;;;;;
-1D16C;MUSICAL SYMBOL FINGERED TREMOLO-3;So;0;L;;;;;N;;;;;
-1D16D;MUSICAL SYMBOL COMBINING AUGMENTATION DOT;Mc;226;L;;;;;N;;;;;
-1D16E;MUSICAL SYMBOL COMBINING FLAG-1;Mc;216;L;;;;;N;;;;;
-1D16F;MUSICAL SYMBOL COMBINING FLAG-2;Mc;216;L;;;;;N;;;;;
-1D170;MUSICAL SYMBOL COMBINING FLAG-3;Mc;216;L;;;;;N;;;;;
-1D171;MUSICAL SYMBOL COMBINING FLAG-4;Mc;216;L;;;;;N;;;;;
-1D172;MUSICAL SYMBOL COMBINING FLAG-5;Mc;216;L;;;;;N;;;;;
-1D173;MUSICAL SYMBOL BEGIN BEAM;Cf;0;BN;;;;;N;;;;;
-1D174;MUSICAL SYMBOL END BEAM;Cf;0;BN;;;;;N;;;;;
-1D175;MUSICAL SYMBOL BEGIN TIE;Cf;0;BN;;;;;N;;;;;
-1D176;MUSICAL SYMBOL END TIE;Cf;0;BN;;;;;N;;;;;
-1D177;MUSICAL SYMBOL BEGIN SLUR;Cf;0;BN;;;;;N;;;;;
-1D178;MUSICAL SYMBOL END SLUR;Cf;0;BN;;;;;N;;;;;
-1D179;MUSICAL SYMBOL BEGIN PHRASE;Cf;0;BN;;;;;N;;;;;
-1D17A;MUSICAL SYMBOL END PHRASE;Cf;0;BN;;;;;N;;;;;
-1D17B;MUSICAL SYMBOL COMBINING ACCENT;Mn;220;NSM;;;;;N;;;;;
-1D17C;MUSICAL SYMBOL COMBINING STACCATO;Mn;220;NSM;;;;;N;;;;;
-1D17D;MUSICAL SYMBOL COMBINING TENUTO;Mn;220;NSM;;;;;N;;;;;
-1D17E;MUSICAL SYMBOL COMBINING STACCATISSIMO;Mn;220;NSM;;;;;N;;;;;
-1D17F;MUSICAL SYMBOL COMBINING MARCATO;Mn;220;NSM;;;;;N;;;;;
-1D180;MUSICAL SYMBOL COMBINING MARCATO-STACCATO;Mn;220;NSM;;;;;N;;;;;
-1D181;MUSICAL SYMBOL COMBINING ACCENT-STACCATO;Mn;220;NSM;;;;;N;;;;;
-1D182;MUSICAL SYMBOL COMBINING LOURE;Mn;220;NSM;;;;;N;;;;;
-1D183;MUSICAL SYMBOL ARPEGGIATO UP;So;0;L;;;;;N;;;;;
-1D184;MUSICAL SYMBOL ARPEGGIATO DOWN;So;0;L;;;;;N;;;;;
-1D185;MUSICAL SYMBOL COMBINING DOIT;Mn;230;NSM;;;;;N;;;;;
-1D186;MUSICAL SYMBOL COMBINING RIP;Mn;230;NSM;;;;;N;;;;;
-1D187;MUSICAL SYMBOL COMBINING FLIP;Mn;230;NSM;;;;;N;;;;;
-1D188;MUSICAL SYMBOL COMBINING SMEAR;Mn;230;NSM;;;;;N;;;;;
-1D189;MUSICAL SYMBOL COMBINING BEND;Mn;230;NSM;;;;;N;;;;;
-1D18A;MUSICAL SYMBOL COMBINING DOUBLE TONGUE;Mn;220;NSM;;;;;N;;;;;
-1D18B;MUSICAL SYMBOL COMBINING TRIPLE TONGUE;Mn;220;NSM;;;;;N;;;;;
-1D18C;MUSICAL SYMBOL RINFORZANDO;So;0;L;;;;;N;;;;;
-1D18D;MUSICAL SYMBOL SUBITO;So;0;L;;;;;N;;;;;
-1D18E;MUSICAL SYMBOL Z;So;0;L;;;;;N;;;;;
-1D18F;MUSICAL SYMBOL PIANO;So;0;L;;;;;N;;;;;
-1D190;MUSICAL SYMBOL MEZZO;So;0;L;;;;;N;;;;;
-1D191;MUSICAL SYMBOL FORTE;So;0;L;;;;;N;;;;;
-1D192;MUSICAL SYMBOL CRESCENDO;So;0;L;;;;;N;;;;;
-1D193;MUSICAL SYMBOL DECRESCENDO;So;0;L;;;;;N;;;;;
-1D194;MUSICAL SYMBOL GRACE NOTE SLASH;So;0;L;;;;;N;;;;;
-1D195;MUSICAL SYMBOL GRACE NOTE NO SLASH;So;0;L;;;;;N;;;;;
-1D196;MUSICAL SYMBOL TR;So;0;L;;;;;N;;;;;
-1D197;MUSICAL SYMBOL TURN;So;0;L;;;;;N;;;;;
-1D198;MUSICAL SYMBOL INVERTED TURN;So;0;L;;;;;N;;;;;
-1D199;MUSICAL SYMBOL TURN SLASH;So;0;L;;;;;N;;;;;
-1D19A;MUSICAL SYMBOL TURN UP;So;0;L;;;;;N;;;;;
-1D19B;MUSICAL SYMBOL ORNAMENT STROKE-1;So;0;L;;;;;N;;;;;
-1D19C;MUSICAL SYMBOL ORNAMENT STROKE-2;So;0;L;;;;;N;;;;;
-1D19D;MUSICAL SYMBOL ORNAMENT STROKE-3;So;0;L;;;;;N;;;;;
-1D19E;MUSICAL SYMBOL ORNAMENT STROKE-4;So;0;L;;;;;N;;;;;
-1D19F;MUSICAL SYMBOL ORNAMENT STROKE-5;So;0;L;;;;;N;;;;;
-1D1A0;MUSICAL SYMBOL ORNAMENT STROKE-6;So;0;L;;;;;N;;;;;
-1D1A1;MUSICAL SYMBOL ORNAMENT STROKE-7;So;0;L;;;;;N;;;;;
-1D1A2;MUSICAL SYMBOL ORNAMENT STROKE-8;So;0;L;;;;;N;;;;;
-1D1A3;MUSICAL SYMBOL ORNAMENT STROKE-9;So;0;L;;;;;N;;;;;
-1D1A4;MUSICAL SYMBOL ORNAMENT STROKE-10;So;0;L;;;;;N;;;;;
-1D1A5;MUSICAL SYMBOL ORNAMENT STROKE-11;So;0;L;;;;;N;;;;;
-1D1A6;MUSICAL SYMBOL HAUPTSTIMME;So;0;L;;;;;N;;;;;
-1D1A7;MUSICAL SYMBOL NEBENSTIMME;So;0;L;;;;;N;;;;;
-1D1A8;MUSICAL SYMBOL END OF STIMME;So;0;L;;;;;N;;;;;
-1D1A9;MUSICAL SYMBOL DEGREE SLASH;So;0;L;;;;;N;;;;;
-1D1AA;MUSICAL SYMBOL COMBINING DOWN BOW;Mn;230;NSM;;;;;N;;;;;
-1D1AB;MUSICAL SYMBOL COMBINING UP BOW;Mn;230;NSM;;;;;N;;;;;
-1D1AC;MUSICAL SYMBOL COMBINING HARMONIC;Mn;230;NSM;;;;;N;;;;;
-1D1AD;MUSICAL SYMBOL COMBINING SNAP PIZZICATO;Mn;230;NSM;;;;;N;;;;;
-1D1AE;MUSICAL SYMBOL PEDAL MARK;So;0;L;;;;;N;;;;;
-1D1AF;MUSICAL SYMBOL PEDAL UP MARK;So;0;L;;;;;N;;;;;
-1D1B0;MUSICAL SYMBOL HALF PEDAL MARK;So;0;L;;;;;N;;;;;
-1D1B1;MUSICAL SYMBOL GLISSANDO UP;So;0;L;;;;;N;;;;;
-1D1B2;MUSICAL SYMBOL GLISSANDO DOWN;So;0;L;;;;;N;;;;;
-1D1B3;MUSICAL SYMBOL WITH FINGERNAILS;So;0;L;;;;;N;;;;;
-1D1B4;MUSICAL SYMBOL DAMP;So;0;L;;;;;N;;;;;
-1D1B5;MUSICAL SYMBOL DAMP ALL;So;0;L;;;;;N;;;;;
-1D1B6;MUSICAL SYMBOL MAXIMA;So;0;L;;;;;N;;;;;
-1D1B7;MUSICAL SYMBOL LONGA;So;0;L;;;;;N;;;;;
-1D1B8;MUSICAL SYMBOL BREVIS;So;0;L;;;;;N;;;;;
-1D1B9;MUSICAL SYMBOL SEMIBREVIS WHITE;So;0;L;;;;;N;;;;;
-1D1BA;MUSICAL SYMBOL SEMIBREVIS BLACK;So;0;L;;;;;N;;;;;
-1D1BB;MUSICAL SYMBOL MINIMA;So;0;L;1D1B9 1D165;;;;N;;;;;
-1D1BC;MUSICAL SYMBOL MINIMA BLACK;So;0;L;1D1BA 1D165;;;;N;;;;;
-1D1BD;MUSICAL SYMBOL SEMIMINIMA WHITE;So;0;L;1D1BB 1D16E;;;;N;;;;;
-1D1BE;MUSICAL SYMBOL SEMIMINIMA BLACK;So;0;L;1D1BC 1D16E;;;;N;;;;;
-1D1BF;MUSICAL SYMBOL FUSA WHITE;So;0;L;1D1BB 1D16F;;;;N;;;;;
-1D1C0;MUSICAL SYMBOL FUSA BLACK;So;0;L;1D1BC 1D16F;;;;N;;;;;
-1D1C1;MUSICAL SYMBOL LONGA PERFECTA REST;So;0;L;;;;;N;;;;;
-1D1C2;MUSICAL SYMBOL LONGA IMPERFECTA REST;So;0;L;;;;;N;;;;;
-1D1C3;MUSICAL SYMBOL BREVIS REST;So;0;L;;;;;N;;;;;
-1D1C4;MUSICAL SYMBOL SEMIBREVIS REST;So;0;L;;;;;N;;;;;
-1D1C5;MUSICAL SYMBOL MINIMA REST;So;0;L;;;;;N;;;;;
-1D1C6;MUSICAL SYMBOL SEMIMINIMA REST;So;0;L;;;;;N;;;;;
-1D1C7;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;;
-1D1C8;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;;
-1D1C9;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;;
-1D1CA;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;;
-1D1CB;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;;
-1D1CC;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;;
-1D1CD;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2;So;0;L;;;;;N;;;;;
-1D1CE;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3;So;0;L;;;;;N;;;;;
-1D1CF;MUSICAL SYMBOL CROIX;So;0;L;;;;;N;;;;;
-1D1D0;MUSICAL SYMBOL GREGORIAN C CLEF;So;0;L;;;;;N;;;;;
-1D1D1;MUSICAL SYMBOL GREGORIAN F CLEF;So;0;L;;;;;N;;;;;
-1D1D2;MUSICAL SYMBOL SQUARE B;So;0;L;;;;;N;;;;;
-1D1D3;MUSICAL SYMBOL VIRGA;So;0;L;;;;;N;;;;;
-1D1D4;MUSICAL SYMBOL PODATUS;So;0;L;;;;;N;;;;;
-1D1D5;MUSICAL SYMBOL CLIVIS;So;0;L;;;;;N;;;;;
-1D1D6;MUSICAL SYMBOL SCANDICUS;So;0;L;;;;;N;;;;;
-1D1D7;MUSICAL SYMBOL CLIMACUS;So;0;L;;;;;N;;;;;
-1D1D8;MUSICAL SYMBOL TORCULUS;So;0;L;;;;;N;;;;;
-1D1D9;MUSICAL SYMBOL PORRECTUS;So;0;L;;;;;N;;;;;
-1D1DA;MUSICAL SYMBOL PORRECTUS FLEXUS;So;0;L;;;;;N;;;;;
-1D1DB;MUSICAL SYMBOL SCANDICUS FLEXUS;So;0;L;;;;;N;;;;;
-1D1DC;MUSICAL SYMBOL TORCULUS RESUPINUS;So;0;L;;;;;N;;;;;
-1D1DD;MUSICAL SYMBOL PES SUBPUNCTIS;So;0;L;;;;;N;;;;;
-1D200;GREEK VOCAL NOTATION SYMBOL-1;So;0;ON;;;;;N;;;;;
-1D201;GREEK VOCAL NOTATION SYMBOL-2;So;0;ON;;;;;N;;;;;
-1D202;GREEK VOCAL NOTATION SYMBOL-3;So;0;ON;;;;;N;;;;;
-1D203;GREEK VOCAL NOTATION SYMBOL-4;So;0;ON;;;;;N;;;;;
-1D204;GREEK VOCAL NOTATION SYMBOL-5;So;0;ON;;;;;N;;;;;
-1D205;GREEK VOCAL NOTATION SYMBOL-6;So;0;ON;;;;;N;;;;;
-1D206;GREEK VOCAL NOTATION SYMBOL-7;So;0;ON;;;;;N;;;;;
-1D207;GREEK VOCAL NOTATION SYMBOL-8;So;0;ON;;;;;N;;;;;
-1D208;GREEK VOCAL NOTATION SYMBOL-9;So;0;ON;;;;;N;;;;;
-1D209;GREEK VOCAL NOTATION SYMBOL-10;So;0;ON;;;;;N;;;;;
-1D20A;GREEK VOCAL NOTATION SYMBOL-11;So;0;ON;;;;;N;;;;;
-1D20B;GREEK VOCAL NOTATION SYMBOL-12;So;0;ON;;;;;N;;;;;
-1D20C;GREEK VOCAL NOTATION SYMBOL-13;So;0;ON;;;;;N;;;;;
-1D20D;GREEK VOCAL NOTATION SYMBOL-14;So;0;ON;;;;;N;;;;;
-1D20E;GREEK VOCAL NOTATION SYMBOL-15;So;0;ON;;;;;N;;;;;
-1D20F;GREEK VOCAL NOTATION SYMBOL-16;So;0;ON;;;;;N;;;;;
-1D210;GREEK VOCAL NOTATION SYMBOL-17;So;0;ON;;;;;N;;;;;
-1D211;GREEK VOCAL NOTATION SYMBOL-18;So;0;ON;;;;;N;;;;;
-1D212;GREEK VOCAL NOTATION SYMBOL-19;So;0;ON;;;;;N;;;;;
-1D213;GREEK VOCAL NOTATION SYMBOL-20;So;0;ON;;;;;N;;;;;
-1D214;GREEK VOCAL NOTATION SYMBOL-21;So;0;ON;;;;;N;;;;;
-1D215;GREEK VOCAL NOTATION SYMBOL-22;So;0;ON;;;;;N;;;;;
-1D216;GREEK VOCAL NOTATION SYMBOL-23;So;0;ON;;;;;N;;;;;
-1D217;GREEK VOCAL NOTATION SYMBOL-24;So;0;ON;;;;;N;;;;;
-1D218;GREEK VOCAL NOTATION SYMBOL-50;So;0;ON;;;;;N;;;;;
-1D219;GREEK VOCAL NOTATION SYMBOL-51;So;0;ON;;;;;N;;;;;
-1D21A;GREEK VOCAL NOTATION SYMBOL-52;So;0;ON;;;;;N;;;;;
-1D21B;GREEK VOCAL NOTATION SYMBOL-53;So;0;ON;;;;;N;;;;;
-1D21C;GREEK VOCAL NOTATION SYMBOL-54;So;0;ON;;;;;N;;;;;
-1D21D;GREEK INSTRUMENTAL NOTATION SYMBOL-1;So;0;ON;;;;;N;;;;;
-1D21E;GREEK INSTRUMENTAL NOTATION SYMBOL-2;So;0;ON;;;;;N;;;;;
-1D21F;GREEK INSTRUMENTAL NOTATION SYMBOL-4;So;0;ON;;;;;N;;;;;
-1D220;GREEK INSTRUMENTAL NOTATION SYMBOL-5;So;0;ON;;;;;N;;;;;
-1D221;GREEK INSTRUMENTAL NOTATION SYMBOL-7;So;0;ON;;;;;N;;;;;
-1D222;GREEK INSTRUMENTAL NOTATION SYMBOL-8;So;0;ON;;;;;N;;;;;
-1D223;GREEK INSTRUMENTAL NOTATION SYMBOL-11;So;0;ON;;;;;N;;;;;
-1D224;GREEK INSTRUMENTAL NOTATION SYMBOL-12;So;0;ON;;;;;N;;;;;
-1D225;GREEK INSTRUMENTAL NOTATION SYMBOL-13;So;0;ON;;;;;N;;;;;
-1D226;GREEK INSTRUMENTAL NOTATION SYMBOL-14;So;0;ON;;;;;N;;;;;
-1D227;GREEK INSTRUMENTAL NOTATION SYMBOL-17;So;0;ON;;;;;N;;;;;
-1D228;GREEK INSTRUMENTAL NOTATION SYMBOL-18;So;0;ON;;;;;N;;;;;
-1D229;GREEK INSTRUMENTAL NOTATION SYMBOL-19;So;0;ON;;;;;N;;;;;
-1D22A;GREEK INSTRUMENTAL NOTATION SYMBOL-23;So;0;ON;;;;;N;;;;;
-1D22B;GREEK INSTRUMENTAL NOTATION SYMBOL-24;So;0;ON;;;;;N;;;;;
-1D22C;GREEK INSTRUMENTAL NOTATION SYMBOL-25;So;0;ON;;;;;N;;;;;
-1D22D;GREEK INSTRUMENTAL NOTATION SYMBOL-26;So;0;ON;;;;;N;;;;;
-1D22E;GREEK INSTRUMENTAL NOTATION SYMBOL-27;So;0;ON;;;;;N;;;;;
-1D22F;GREEK INSTRUMENTAL NOTATION SYMBOL-29;So;0;ON;;;;;N;;;;;
-1D230;GREEK INSTRUMENTAL NOTATION SYMBOL-30;So;0;ON;;;;;N;;;;;
-1D231;GREEK INSTRUMENTAL NOTATION SYMBOL-32;So;0;ON;;;;;N;;;;;
-1D232;GREEK INSTRUMENTAL NOTATION SYMBOL-36;So;0;ON;;;;;N;;;;;
-1D233;GREEK INSTRUMENTAL NOTATION SYMBOL-37;So;0;ON;;;;;N;;;;;
-1D234;GREEK INSTRUMENTAL NOTATION SYMBOL-38;So;0;ON;;;;;N;;;;;
-1D235;GREEK INSTRUMENTAL NOTATION SYMBOL-39;So;0;ON;;;;;N;;;;;
-1D236;GREEK INSTRUMENTAL NOTATION SYMBOL-40;So;0;ON;;;;;N;;;;;
-1D237;GREEK INSTRUMENTAL NOTATION SYMBOL-42;So;0;ON;;;;;N;;;;;
-1D238;GREEK INSTRUMENTAL NOTATION SYMBOL-43;So;0;ON;;;;;N;;;;;
-1D239;GREEK INSTRUMENTAL NOTATION SYMBOL-45;So;0;ON;;;;;N;;;;;
-1D23A;GREEK INSTRUMENTAL NOTATION SYMBOL-47;So;0;ON;;;;;N;;;;;
-1D23B;GREEK INSTRUMENTAL NOTATION SYMBOL-48;So;0;ON;;;;;N;;;;;
-1D23C;GREEK INSTRUMENTAL NOTATION SYMBOL-49;So;0;ON;;;;;N;;;;;
-1D23D;GREEK INSTRUMENTAL NOTATION SYMBOL-50;So;0;ON;;;;;N;;;;;
-1D23E;GREEK INSTRUMENTAL NOTATION SYMBOL-51;So;0;ON;;;;;N;;;;;
-1D23F;GREEK INSTRUMENTAL NOTATION SYMBOL-52;So;0;ON;;;;;N;;;;;
-1D240;GREEK INSTRUMENTAL NOTATION SYMBOL-53;So;0;ON;;;;;N;;;;;
-1D241;GREEK INSTRUMENTAL NOTATION SYMBOL-54;So;0;ON;;;;;N;;;;;
-1D242;COMBINING GREEK MUSICAL TRISEME;Mn;230;NSM;;;;;N;;;;;
-1D243;COMBINING GREEK MUSICAL TETRASEME;Mn;230;NSM;;;;;N;;;;;
-1D244;COMBINING GREEK MUSICAL PENTASEME;Mn;230;NSM;;;;;N;;;;;
-1D245;GREEK MUSICAL LEIMMA;So;0;ON;;;;;N;;;;;
-1D300;MONOGRAM FOR EARTH;So;0;ON;;;;;N;;;;;
-1D301;DIGRAM FOR HEAVENLY EARTH;So;0;ON;;;;;N;;;;;
-1D302;DIGRAM FOR HUMAN EARTH;So;0;ON;;;;;N;;;;;
-1D303;DIGRAM FOR EARTHLY HEAVEN;So;0;ON;;;;;N;;;;;
-1D304;DIGRAM FOR EARTHLY HUMAN;So;0;ON;;;;;N;;;;;
-1D305;DIGRAM FOR EARTH;So;0;ON;;;;;N;;;;;
-1D306;TETRAGRAM FOR CENTRE;So;0;ON;;;;;N;;;;;
-1D307;TETRAGRAM FOR FULL CIRCLE;So;0;ON;;;;;N;;;;;
-1D308;TETRAGRAM FOR MIRED;So;0;ON;;;;;N;;;;;
-1D309;TETRAGRAM FOR BARRIER;So;0;ON;;;;;N;;;;;
-1D30A;TETRAGRAM FOR KEEPING SMALL;So;0;ON;;;;;N;;;;;
-1D30B;TETRAGRAM FOR CONTRARIETY;So;0;ON;;;;;N;;;;;
-1D30C;TETRAGRAM FOR ASCENT;So;0;ON;;;;;N;;;;;
-1D30D;TETRAGRAM FOR OPPOSITION;So;0;ON;;;;;N;;;;;
-1D30E;TETRAGRAM FOR BRANCHING OUT;So;0;ON;;;;;N;;;;;
-1D30F;TETRAGRAM FOR DEFECTIVENESS OR DISTORTION;So;0;ON;;;;;N;;;;;
-1D310;TETRAGRAM FOR DIVERGENCE;So;0;ON;;;;;N;;;;;
-1D311;TETRAGRAM FOR YOUTHFULNESS;So;0;ON;;;;;N;;;;;
-1D312;TETRAGRAM FOR INCREASE;So;0;ON;;;;;N;;;;;
-1D313;TETRAGRAM FOR PENETRATION;So;0;ON;;;;;N;;;;;
-1D314;TETRAGRAM FOR REACH;So;0;ON;;;;;N;;;;;
-1D315;TETRAGRAM FOR CONTACT;So;0;ON;;;;;N;;;;;
-1D316;TETRAGRAM FOR HOLDING BACK;So;0;ON;;;;;N;;;;;
-1D317;TETRAGRAM FOR WAITING;So;0;ON;;;;;N;;;;;
-1D318;TETRAGRAM FOR FOLLOWING;So;0;ON;;;;;N;;;;;
-1D319;TETRAGRAM FOR ADVANCE;So;0;ON;;;;;N;;;;;
-1D31A;TETRAGRAM FOR RELEASE;So;0;ON;;;;;N;;;;;
-1D31B;TETRAGRAM FOR RESISTANCE;So;0;ON;;;;;N;;;;;
-1D31C;TETRAGRAM FOR EASE;So;0;ON;;;;;N;;;;;
-1D31D;TETRAGRAM FOR JOY;So;0;ON;;;;;N;;;;;
-1D31E;TETRAGRAM FOR CONTENTION;So;0;ON;;;;;N;;;;;
-1D31F;TETRAGRAM FOR ENDEAVOUR;So;0;ON;;;;;N;;;;;
-1D320;TETRAGRAM FOR DUTIES;So;0;ON;;;;;N;;;;;
-1D321;TETRAGRAM FOR CHANGE;So;0;ON;;;;;N;;;;;
-1D322;TETRAGRAM FOR DECISIVENESS;So;0;ON;;;;;N;;;;;
-1D323;TETRAGRAM FOR BOLD RESOLUTION;So;0;ON;;;;;N;;;;;
-1D324;TETRAGRAM FOR PACKING;So;0;ON;;;;;N;;;;;
-1D325;TETRAGRAM FOR LEGION;So;0;ON;;;;;N;;;;;
-1D326;TETRAGRAM FOR CLOSENESS;So;0;ON;;;;;N;;;;;
-1D327;TETRAGRAM FOR KINSHIP;So;0;ON;;;;;N;;;;;
-1D328;TETRAGRAM FOR GATHERING;So;0;ON;;;;;N;;;;;
-1D329;TETRAGRAM FOR STRENGTH;So;0;ON;;;;;N;;;;;
-1D32A;TETRAGRAM FOR PURITY;So;0;ON;;;;;N;;;;;
-1D32B;TETRAGRAM FOR FULLNESS;So;0;ON;;;;;N;;;;;
-1D32C;TETRAGRAM FOR RESIDENCE;So;0;ON;;;;;N;;;;;
-1D32D;TETRAGRAM FOR LAW OR MODEL;So;0;ON;;;;;N;;;;;
-1D32E;TETRAGRAM FOR RESPONSE;So;0;ON;;;;;N;;;;;
-1D32F;TETRAGRAM FOR GOING TO MEET;So;0;ON;;;;;N;;;;;
-1D330;TETRAGRAM FOR ENCOUNTERS;So;0;ON;;;;;N;;;;;
-1D331;TETRAGRAM FOR STOVE;So;0;ON;;;;;N;;;;;
-1D332;TETRAGRAM FOR GREATNESS;So;0;ON;;;;;N;;;;;
-1D333;TETRAGRAM FOR ENLARGEMENT;So;0;ON;;;;;N;;;;;
-1D334;TETRAGRAM FOR PATTERN;So;0;ON;;;;;N;;;;;
-1D335;TETRAGRAM FOR RITUAL;So;0;ON;;;;;N;;;;;
-1D336;TETRAGRAM FOR FLIGHT;So;0;ON;;;;;N;;;;;
-1D337;TETRAGRAM FOR VASTNESS OR WASTING;So;0;ON;;;;;N;;;;;
-1D338;TETRAGRAM FOR CONSTANCY;So;0;ON;;;;;N;;;;;
-1D339;TETRAGRAM FOR MEASURE;So;0;ON;;;;;N;;;;;
-1D33A;TETRAGRAM FOR ETERNITY;So;0;ON;;;;;N;;;;;
-1D33B;TETRAGRAM FOR UNITY;So;0;ON;;;;;N;;;;;
-1D33C;TETRAGRAM FOR DIMINISHMENT;So;0;ON;;;;;N;;;;;
-1D33D;TETRAGRAM FOR CLOSED MOUTH;So;0;ON;;;;;N;;;;;
-1D33E;TETRAGRAM FOR GUARDEDNESS;So;0;ON;;;;;N;;;;;
-1D33F;TETRAGRAM FOR GATHERING IN;So;0;ON;;;;;N;;;;;
-1D340;TETRAGRAM FOR MASSING;So;0;ON;;;;;N;;;;;
-1D341;TETRAGRAM FOR ACCUMULATION;So;0;ON;;;;;N;;;;;
-1D342;TETRAGRAM FOR EMBELLISHMENT;So;0;ON;;;;;N;;;;;
-1D343;TETRAGRAM FOR DOUBT;So;0;ON;;;;;N;;;;;
-1D344;TETRAGRAM FOR WATCH;So;0;ON;;;;;N;;;;;
-1D345;TETRAGRAM FOR SINKING;So;0;ON;;;;;N;;;;;
-1D346;TETRAGRAM FOR INNER;So;0;ON;;;;;N;;;;;
-1D347;TETRAGRAM FOR DEPARTURE;So;0;ON;;;;;N;;;;;
-1D348;TETRAGRAM FOR DARKENING;So;0;ON;;;;;N;;;;;
-1D349;TETRAGRAM FOR DIMMING;So;0;ON;;;;;N;;;;;
-1D34A;TETRAGRAM FOR EXHAUSTION;So;0;ON;;;;;N;;;;;
-1D34B;TETRAGRAM FOR SEVERANCE;So;0;ON;;;;;N;;;;;
-1D34C;TETRAGRAM FOR STOPPAGE;So;0;ON;;;;;N;;;;;
-1D34D;TETRAGRAM FOR HARDNESS;So;0;ON;;;;;N;;;;;
-1D34E;TETRAGRAM FOR COMPLETION;So;0;ON;;;;;N;;;;;
-1D34F;TETRAGRAM FOR CLOSURE;So;0;ON;;;;;N;;;;;
-1D350;TETRAGRAM FOR FAILURE;So;0;ON;;;;;N;;;;;
-1D351;TETRAGRAM FOR AGGRAVATION;So;0;ON;;;;;N;;;;;
-1D352;TETRAGRAM FOR COMPLIANCE;So;0;ON;;;;;N;;;;;
-1D353;TETRAGRAM FOR ON THE VERGE;So;0;ON;;;;;N;;;;;
-1D354;TETRAGRAM FOR DIFFICULTIES;So;0;ON;;;;;N;;;;;
-1D355;TETRAGRAM FOR LABOURING;So;0;ON;;;;;N;;;;;
-1D356;TETRAGRAM FOR FOSTERING;So;0;ON;;;;;N;;;;;
-1D360;COUNTING ROD UNIT DIGIT ONE;No;0;L;;;;1;N;;;;;
-1D361;COUNTING ROD UNIT DIGIT TWO;No;0;L;;;;2;N;;;;;
-1D362;COUNTING ROD UNIT DIGIT THREE;No;0;L;;;;3;N;;;;;
-1D363;COUNTING ROD UNIT DIGIT FOUR;No;0;L;;;;4;N;;;;;
-1D364;COUNTING ROD UNIT DIGIT FIVE;No;0;L;;;;5;N;;;;;
-1D365;COUNTING ROD UNIT DIGIT SIX;No;0;L;;;;6;N;;;;;
-1D366;COUNTING ROD UNIT DIGIT SEVEN;No;0;L;;;;7;N;;;;;
-1D367;COUNTING ROD UNIT DIGIT EIGHT;No;0;L;;;;8;N;;;;;
-1D368;COUNTING ROD UNIT DIGIT NINE;No;0;L;;;;9;N;;;;;
-1D369;COUNTING ROD TENS DIGIT ONE;No;0;L;;;;10;N;;;;;
-1D36A;COUNTING ROD TENS DIGIT TWO;No;0;L;;;;20;N;;;;;
-1D36B;COUNTING ROD TENS DIGIT THREE;No;0;L;;;;30;N;;;;;
-1D36C;COUNTING ROD TENS DIGIT FOUR;No;0;L;;;;40;N;;;;;
-1D36D;COUNTING ROD TENS DIGIT FIVE;No;0;L;;;;50;N;;;;;
-1D36E;COUNTING ROD TENS DIGIT SIX;No;0;L;;;;60;N;;;;;
-1D36F;COUNTING ROD TENS DIGIT SEVEN;No;0;L;;;;70;N;;;;;
-1D370;COUNTING ROD TENS DIGIT EIGHT;No;0;L;;;;80;N;;;;;
-1D371;COUNTING ROD TENS DIGIT NINE;No;0;L;;;;90;N;;;;;
-1D400;MATHEMATICAL BOLD CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
-1D401;MATHEMATICAL BOLD CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
-1D402;MATHEMATICAL BOLD CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
-1D403;MATHEMATICAL BOLD CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
-1D404;MATHEMATICAL BOLD CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
-1D405;MATHEMATICAL BOLD CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
-1D406;MATHEMATICAL BOLD CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
-1D407;MATHEMATICAL BOLD CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
-1D408;MATHEMATICAL BOLD CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
-1D409;MATHEMATICAL BOLD CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
-1D40A;MATHEMATICAL BOLD CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
-1D40B;MATHEMATICAL BOLD CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
-1D40C;MATHEMATICAL BOLD CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
-1D40D;MATHEMATICAL BOLD CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
-1D40E;MATHEMATICAL BOLD CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
-1D40F;MATHEMATICAL BOLD CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
-1D410;MATHEMATICAL BOLD CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
-1D411;MATHEMATICAL BOLD CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
-1D412;MATHEMATICAL BOLD CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
-1D413;MATHEMATICAL BOLD CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
-1D414;MATHEMATICAL BOLD CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
-1D415;MATHEMATICAL BOLD CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
-1D416;MATHEMATICAL BOLD CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
-1D417;MATHEMATICAL BOLD CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
-1D418;MATHEMATICAL BOLD CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
-1D419;MATHEMATICAL BOLD CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
-1D41A;MATHEMATICAL BOLD SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
-1D41B;MATHEMATICAL BOLD SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
-1D41C;MATHEMATICAL BOLD SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
-1D41D;MATHEMATICAL BOLD SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
-1D41E;MATHEMATICAL BOLD SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
-1D41F;MATHEMATICAL BOLD SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
-1D420;MATHEMATICAL BOLD SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
-1D421;MATHEMATICAL BOLD SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
-1D422;MATHEMATICAL BOLD SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
-1D423;MATHEMATICAL BOLD SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
-1D424;MATHEMATICAL BOLD SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
-1D425;MATHEMATICAL BOLD SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
-1D426;MATHEMATICAL BOLD SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
-1D427;MATHEMATICAL BOLD SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
-1D428;MATHEMATICAL BOLD SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
-1D429;MATHEMATICAL BOLD SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
-1D42A;MATHEMATICAL BOLD SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
-1D42B;MATHEMATICAL BOLD SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
-1D42C;MATHEMATICAL BOLD SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
-1D42D;MATHEMATICAL BOLD SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
-1D42E;MATHEMATICAL BOLD SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
-1D42F;MATHEMATICAL BOLD SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
-1D430;MATHEMATICAL BOLD SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
-1D431;MATHEMATICAL BOLD SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
-1D432;MATHEMATICAL BOLD SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
-1D433;MATHEMATICAL BOLD SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
-1D434;MATHEMATICAL ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
-1D435;MATHEMATICAL ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
-1D436;MATHEMATICAL ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
-1D437;MATHEMATICAL ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
-1D438;MATHEMATICAL ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
-1D439;MATHEMATICAL ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
-1D43A;MATHEMATICAL ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
-1D43B;MATHEMATICAL ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
-1D43C;MATHEMATICAL ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
-1D43D;MATHEMATICAL ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
-1D43E;MATHEMATICAL ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
-1D43F;MATHEMATICAL ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
-1D440;MATHEMATICAL ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
-1D441;MATHEMATICAL ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
-1D442;MATHEMATICAL ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
-1D443;MATHEMATICAL ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
-1D444;MATHEMATICAL ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
-1D445;MATHEMATICAL ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
-1D446;MATHEMATICAL ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
-1D447;MATHEMATICAL ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
-1D448;MATHEMATICAL ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
-1D449;MATHEMATICAL ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
-1D44A;MATHEMATICAL ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
-1D44B;MATHEMATICAL ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
-1D44C;MATHEMATICAL ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
-1D44D;MATHEMATICAL ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
-1D44E;MATHEMATICAL ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
-1D44F;MATHEMATICAL ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
-1D450;MATHEMATICAL ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
-1D451;MATHEMATICAL ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
-1D452;MATHEMATICAL ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
-1D453;MATHEMATICAL ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
-1D454;MATHEMATICAL ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
-1D456;MATHEMATICAL ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
-1D457;MATHEMATICAL ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
-1D458;MATHEMATICAL ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
-1D459;MATHEMATICAL ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
-1D45A;MATHEMATICAL ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
-1D45B;MATHEMATICAL ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
-1D45C;MATHEMATICAL ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
-1D45D;MATHEMATICAL ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
-1D45E;MATHEMATICAL ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
-1D45F;MATHEMATICAL ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
-1D460;MATHEMATICAL ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
-1D461;MATHEMATICAL ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
-1D462;MATHEMATICAL ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
-1D463;MATHEMATICAL ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
-1D464;MATHEMATICAL ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
-1D465;MATHEMATICAL ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
-1D466;MATHEMATICAL ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
-1D467;MATHEMATICAL ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
-1D468;MATHEMATICAL BOLD ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
-1D469;MATHEMATICAL BOLD ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
-1D46A;MATHEMATICAL BOLD ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
-1D46B;MATHEMATICAL BOLD ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
-1D46C;MATHEMATICAL BOLD ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
-1D46D;MATHEMATICAL BOLD ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
-1D46E;MATHEMATICAL BOLD ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
-1D46F;MATHEMATICAL BOLD ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
-1D470;MATHEMATICAL BOLD ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
-1D471;MATHEMATICAL BOLD ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
-1D472;MATHEMATICAL BOLD ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
-1D473;MATHEMATICAL BOLD ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
-1D474;MATHEMATICAL BOLD ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
-1D475;MATHEMATICAL BOLD ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
-1D476;MATHEMATICAL BOLD ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
-1D477;MATHEMATICAL BOLD ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
-1D478;MATHEMATICAL BOLD ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
-1D479;MATHEMATICAL BOLD ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
-1D47A;MATHEMATICAL BOLD ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
-1D47B;MATHEMATICAL BOLD ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
-1D47C;MATHEMATICAL BOLD ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
-1D47D;MATHEMATICAL BOLD ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
-1D47E;MATHEMATICAL BOLD ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
-1D47F;MATHEMATICAL BOLD ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
-1D480;MATHEMATICAL BOLD ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
-1D481;MATHEMATICAL BOLD ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
-1D482;MATHEMATICAL BOLD ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
-1D483;MATHEMATICAL BOLD ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
-1D484;MATHEMATICAL BOLD ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
-1D485;MATHEMATICAL BOLD ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
-1D486;MATHEMATICAL BOLD ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
-1D487;MATHEMATICAL BOLD ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
-1D488;MATHEMATICAL BOLD ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
-1D489;MATHEMATICAL BOLD ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
-1D48A;MATHEMATICAL BOLD ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
-1D48B;MATHEMATICAL BOLD ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
-1D48C;MATHEMATICAL BOLD ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
-1D48D;MATHEMATICAL BOLD ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
-1D48E;MATHEMATICAL BOLD ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
-1D48F;MATHEMATICAL BOLD ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
-1D490;MATHEMATICAL BOLD ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
-1D491;MATHEMATICAL BOLD ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
-1D492;MATHEMATICAL BOLD ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
-1D493;MATHEMATICAL BOLD ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
-1D494;MATHEMATICAL BOLD ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
-1D495;MATHEMATICAL BOLD ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
-1D496;MATHEMATICAL BOLD ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
-1D497;MATHEMATICAL BOLD ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
-1D498;MATHEMATICAL BOLD ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
-1D499;MATHEMATICAL BOLD ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
-1D49A;MATHEMATICAL BOLD ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
-1D49B;MATHEMATICAL BOLD ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
-1D49C;MATHEMATICAL SCRIPT CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
-1D49E;MATHEMATICAL SCRIPT CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
-1D49F;MATHEMATICAL SCRIPT CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
-1D4A2;MATHEMATICAL SCRIPT CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
-1D4A5;MATHEMATICAL SCRIPT CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
-1D4A6;MATHEMATICAL SCRIPT CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
-1D4A9;MATHEMATICAL SCRIPT CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
-1D4AA;MATHEMATICAL SCRIPT CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
-1D4AB;MATHEMATICAL SCRIPT CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
-1D4AC;MATHEMATICAL SCRIPT CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
-1D4AE;MATHEMATICAL SCRIPT CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
-1D4AF;MATHEMATICAL SCRIPT CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
-1D4B0;MATHEMATICAL SCRIPT CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
-1D4B1;MATHEMATICAL SCRIPT CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
-1D4B2;MATHEMATICAL SCRIPT CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
-1D4B3;MATHEMATICAL SCRIPT CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
-1D4B4;MATHEMATICAL SCRIPT CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
-1D4B5;MATHEMATICAL SCRIPT CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
-1D4B6;MATHEMATICAL SCRIPT SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
-1D4B7;MATHEMATICAL SCRIPT SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
-1D4B8;MATHEMATICAL SCRIPT SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
-1D4B9;MATHEMATICAL SCRIPT SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
-1D4BB;MATHEMATICAL SCRIPT SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
-1D4BD;MATHEMATICAL SCRIPT SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
-1D4BE;MATHEMATICAL SCRIPT SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
-1D4BF;MATHEMATICAL SCRIPT SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
-1D4C0;MATHEMATICAL SCRIPT SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
-1D4C1;MATHEMATICAL SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
-1D4C2;MATHEMATICAL SCRIPT SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
-1D4C3;MATHEMATICAL SCRIPT SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
-1D4C5;MATHEMATICAL SCRIPT SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
-1D4C6;MATHEMATICAL SCRIPT SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
-1D4C7;MATHEMATICAL SCRIPT SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
-1D4C8;MATHEMATICAL SCRIPT SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
-1D4C9;MATHEMATICAL SCRIPT SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
-1D4CA;MATHEMATICAL SCRIPT SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
-1D4CB;MATHEMATICAL SCRIPT SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
-1D4CC;MATHEMATICAL SCRIPT SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
-1D4CD;MATHEMATICAL SCRIPT SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
-1D4CE;MATHEMATICAL SCRIPT SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
-1D4CF;MATHEMATICAL SCRIPT SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
-1D4D0;MATHEMATICAL BOLD SCRIPT CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
-1D4D1;MATHEMATICAL BOLD SCRIPT CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
-1D4D2;MATHEMATICAL BOLD SCRIPT CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
-1D4D3;MATHEMATICAL BOLD SCRIPT CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
-1D4D4;MATHEMATICAL BOLD SCRIPT CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
-1D4D5;MATHEMATICAL BOLD SCRIPT CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
-1D4D6;MATHEMATICAL BOLD SCRIPT CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
-1D4D7;MATHEMATICAL BOLD SCRIPT CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
-1D4D8;MATHEMATICAL BOLD SCRIPT CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
-1D4D9;MATHEMATICAL BOLD SCRIPT CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
-1D4DA;MATHEMATICAL BOLD SCRIPT CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
-1D4DB;MATHEMATICAL BOLD SCRIPT CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
-1D4DC;MATHEMATICAL BOLD SCRIPT CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
-1D4DD;MATHEMATICAL BOLD SCRIPT CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
-1D4DE;MATHEMATICAL BOLD SCRIPT CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
-1D4DF;MATHEMATICAL BOLD SCRIPT CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
-1D4E0;MATHEMATICAL BOLD SCRIPT CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
-1D4E1;MATHEMATICAL BOLD SCRIPT CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
-1D4E2;MATHEMATICAL BOLD SCRIPT CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
-1D4E3;MATHEMATICAL BOLD SCRIPT CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
-1D4E4;MATHEMATICAL BOLD SCRIPT CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
-1D4E5;MATHEMATICAL BOLD SCRIPT CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
-1D4E6;MATHEMATICAL BOLD SCRIPT CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
-1D4E7;MATHEMATICAL BOLD SCRIPT CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
-1D4E8;MATHEMATICAL BOLD SCRIPT CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
-1D4E9;MATHEMATICAL BOLD SCRIPT CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
-1D4EA;MATHEMATICAL BOLD SCRIPT SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
-1D4EB;MATHEMATICAL BOLD SCRIPT SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
-1D4EC;MATHEMATICAL BOLD SCRIPT SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
-1D4ED;MATHEMATICAL BOLD SCRIPT SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
-1D4EE;MATHEMATICAL BOLD SCRIPT SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
-1D4EF;MATHEMATICAL BOLD SCRIPT SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
-1D4F0;MATHEMATICAL BOLD SCRIPT SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
-1D4F1;MATHEMATICAL BOLD SCRIPT SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
-1D4F2;MATHEMATICAL BOLD SCRIPT SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
-1D4F3;MATHEMATICAL BOLD SCRIPT SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
-1D4F4;MATHEMATICAL BOLD SCRIPT SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
-1D4F5;MATHEMATICAL BOLD SCRIPT SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
-1D4F6;MATHEMATICAL BOLD SCRIPT SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
-1D4F7;MATHEMATICAL BOLD SCRIPT SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
-1D4F8;MATHEMATICAL BOLD SCRIPT SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
-1D4F9;MATHEMATICAL BOLD SCRIPT SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
-1D4FA;MATHEMATICAL BOLD SCRIPT SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
-1D4FB;MATHEMATICAL BOLD SCRIPT SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
-1D4FC;MATHEMATICAL BOLD SCRIPT SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
-1D4FD;MATHEMATICAL BOLD SCRIPT SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
-1D4FE;MATHEMATICAL BOLD SCRIPT SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
-1D4FF;MATHEMATICAL BOLD SCRIPT SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
-1D500;MATHEMATICAL BOLD SCRIPT SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
-1D501;MATHEMATICAL BOLD SCRIPT SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
-1D502;MATHEMATICAL BOLD SCRIPT SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
-1D503;MATHEMATICAL BOLD SCRIPT SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
-1D504;MATHEMATICAL FRAKTUR CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
-1D505;MATHEMATICAL FRAKTUR CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
-1D507;MATHEMATICAL FRAKTUR CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
-1D508;MATHEMATICAL FRAKTUR CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
-1D509;MATHEMATICAL FRAKTUR CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
-1D50A;MATHEMATICAL FRAKTUR CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
-1D50D;MATHEMATICAL FRAKTUR CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
-1D50E;MATHEMATICAL FRAKTUR CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
-1D50F;MATHEMATICAL FRAKTUR CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
-1D510;MATHEMATICAL FRAKTUR CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
-1D511;MATHEMATICAL FRAKTUR CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
-1D512;MATHEMATICAL FRAKTUR CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
-1D513;MATHEMATICAL FRAKTUR CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
-1D514;MATHEMATICAL FRAKTUR CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
-1D516;MATHEMATICAL FRAKTUR CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
-1D517;MATHEMATICAL FRAKTUR CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
-1D518;MATHEMATICAL FRAKTUR CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
-1D519;MATHEMATICAL FRAKTUR CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
-1D51A;MATHEMATICAL FRAKTUR CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
-1D51B;MATHEMATICAL FRAKTUR CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
-1D51C;MATHEMATICAL FRAKTUR CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
-1D51E;MATHEMATICAL FRAKTUR SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
-1D51F;MATHEMATICAL FRAKTUR SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
-1D520;MATHEMATICAL FRAKTUR SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
-1D521;MATHEMATICAL FRAKTUR SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
-1D522;MATHEMATICAL FRAKTUR SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
-1D523;MATHEMATICAL FRAKTUR SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
-1D524;MATHEMATICAL FRAKTUR SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
-1D525;MATHEMATICAL FRAKTUR SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
-1D526;MATHEMATICAL FRAKTUR SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
-1D527;MATHEMATICAL FRAKTUR SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
-1D528;MATHEMATICAL FRAKTUR SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
-1D529;MATHEMATICAL FRAKTUR SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
-1D52A;MATHEMATICAL FRAKTUR SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
-1D52B;MATHEMATICAL FRAKTUR SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
-1D52C;MATHEMATICAL FRAKTUR SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
-1D52D;MATHEMATICAL FRAKTUR SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
-1D52E;MATHEMATICAL FRAKTUR SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
-1D52F;MATHEMATICAL FRAKTUR SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
-1D530;MATHEMATICAL FRAKTUR SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
-1D531;MATHEMATICAL FRAKTUR SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
-1D532;MATHEMATICAL FRAKTUR SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
-1D533;MATHEMATICAL FRAKTUR SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
-1D534;MATHEMATICAL FRAKTUR SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
-1D535;MATHEMATICAL FRAKTUR SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
-1D536;MATHEMATICAL FRAKTUR SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
-1D537;MATHEMATICAL FRAKTUR SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
-1D538;MATHEMATICAL DOUBLE-STRUCK CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
-1D539;MATHEMATICAL DOUBLE-STRUCK CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
-1D53B;MATHEMATICAL DOUBLE-STRUCK CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
-1D53C;MATHEMATICAL DOUBLE-STRUCK CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
-1D53D;MATHEMATICAL DOUBLE-STRUCK CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
-1D53E;MATHEMATICAL DOUBLE-STRUCK CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
-1D540;MATHEMATICAL DOUBLE-STRUCK CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
-1D541;MATHEMATICAL DOUBLE-STRUCK CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
-1D542;MATHEMATICAL DOUBLE-STRUCK CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
-1D543;MATHEMATICAL DOUBLE-STRUCK CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
-1D544;MATHEMATICAL DOUBLE-STRUCK CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
-1D546;MATHEMATICAL DOUBLE-STRUCK CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
-1D54A;MATHEMATICAL DOUBLE-STRUCK CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
-1D54B;MATHEMATICAL DOUBLE-STRUCK CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
-1D54C;MATHEMATICAL DOUBLE-STRUCK CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
-1D54D;MATHEMATICAL DOUBLE-STRUCK CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
-1D54E;MATHEMATICAL DOUBLE-STRUCK CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
-1D54F;MATHEMATICAL DOUBLE-STRUCK CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
-1D550;MATHEMATICAL DOUBLE-STRUCK CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
-1D552;MATHEMATICAL DOUBLE-STRUCK SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
-1D553;MATHEMATICAL DOUBLE-STRUCK SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
-1D554;MATHEMATICAL DOUBLE-STRUCK SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
-1D555;MATHEMATICAL DOUBLE-STRUCK SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
-1D556;MATHEMATICAL DOUBLE-STRUCK SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
-1D557;MATHEMATICAL DOUBLE-STRUCK SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
-1D558;MATHEMATICAL DOUBLE-STRUCK SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
-1D559;MATHEMATICAL DOUBLE-STRUCK SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
-1D55A;MATHEMATICAL DOUBLE-STRUCK SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
-1D55B;MATHEMATICAL DOUBLE-STRUCK SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
-1D55C;MATHEMATICAL DOUBLE-STRUCK SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
-1D55D;MATHEMATICAL DOUBLE-STRUCK SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
-1D55E;MATHEMATICAL DOUBLE-STRUCK SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
-1D55F;MATHEMATICAL DOUBLE-STRUCK SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
-1D560;MATHEMATICAL DOUBLE-STRUCK SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
-1D561;MATHEMATICAL DOUBLE-STRUCK SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
-1D562;MATHEMATICAL DOUBLE-STRUCK SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
-1D563;MATHEMATICAL DOUBLE-STRUCK SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
-1D564;MATHEMATICAL DOUBLE-STRUCK SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
-1D565;MATHEMATICAL DOUBLE-STRUCK SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
-1D566;MATHEMATICAL DOUBLE-STRUCK SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
-1D567;MATHEMATICAL DOUBLE-STRUCK SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
-1D568;MATHEMATICAL DOUBLE-STRUCK SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
-1D569;MATHEMATICAL DOUBLE-STRUCK SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
-1D56A;MATHEMATICAL DOUBLE-STRUCK SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
-1D56B;MATHEMATICAL DOUBLE-STRUCK SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
-1D56C;MATHEMATICAL BOLD FRAKTUR CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
-1D56D;MATHEMATICAL BOLD FRAKTUR CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
-1D56E;MATHEMATICAL BOLD FRAKTUR CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
-1D56F;MATHEMATICAL BOLD FRAKTUR CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
-1D570;MATHEMATICAL BOLD FRAKTUR CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
-1D571;MATHEMATICAL BOLD FRAKTUR CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
-1D572;MATHEMATICAL BOLD FRAKTUR CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
-1D573;MATHEMATICAL BOLD FRAKTUR CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
-1D574;MATHEMATICAL BOLD FRAKTUR CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
-1D575;MATHEMATICAL BOLD FRAKTUR CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
-1D576;MATHEMATICAL BOLD FRAKTUR CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
-1D577;MATHEMATICAL BOLD FRAKTUR CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
-1D578;MATHEMATICAL BOLD FRAKTUR CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
-1D579;MATHEMATICAL BOLD FRAKTUR CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
-1D57A;MATHEMATICAL BOLD FRAKTUR CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
-1D57B;MATHEMATICAL BOLD FRAKTUR CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
-1D57C;MATHEMATICAL BOLD FRAKTUR CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
-1D57D;MATHEMATICAL BOLD FRAKTUR CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
-1D57E;MATHEMATICAL BOLD FRAKTUR CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
-1D57F;MATHEMATICAL BOLD FRAKTUR CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
-1D580;MATHEMATICAL BOLD FRAKTUR CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
-1D581;MATHEMATICAL BOLD FRAKTUR CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
-1D582;MATHEMATICAL BOLD FRAKTUR CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
-1D583;MATHEMATICAL BOLD FRAKTUR CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
-1D584;MATHEMATICAL BOLD FRAKTUR CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
-1D585;MATHEMATICAL BOLD FRAKTUR CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
-1D586;MATHEMATICAL BOLD FRAKTUR SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
-1D587;MATHEMATICAL BOLD FRAKTUR SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
-1D588;MATHEMATICAL BOLD FRAKTUR SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
-1D589;MATHEMATICAL BOLD FRAKTUR SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
-1D58A;MATHEMATICAL BOLD FRAKTUR SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
-1D58B;MATHEMATICAL BOLD FRAKTUR SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
-1D58C;MATHEMATICAL BOLD FRAKTUR SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
-1D58D;MATHEMATICAL BOLD FRAKTUR SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
-1D58E;MATHEMATICAL BOLD FRAKTUR SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
-1D58F;MATHEMATICAL BOLD FRAKTUR SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
-1D590;MATHEMATICAL BOLD FRAKTUR SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
-1D591;MATHEMATICAL BOLD FRAKTUR SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
-1D592;MATHEMATICAL BOLD FRAKTUR SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
-1D593;MATHEMATICAL BOLD FRAKTUR SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
-1D594;MATHEMATICAL BOLD FRAKTUR SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
-1D595;MATHEMATICAL BOLD FRAKTUR SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
-1D596;MATHEMATICAL BOLD FRAKTUR SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
-1D597;MATHEMATICAL BOLD FRAKTUR SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
-1D598;MATHEMATICAL BOLD FRAKTUR SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
-1D599;MATHEMATICAL BOLD FRAKTUR SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
-1D59A;MATHEMATICAL BOLD FRAKTUR SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
-1D59B;MATHEMATICAL BOLD FRAKTUR SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
-1D59C;MATHEMATICAL BOLD FRAKTUR SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
-1D59D;MATHEMATICAL BOLD FRAKTUR SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
-1D59E;MATHEMATICAL BOLD FRAKTUR SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
-1D59F;MATHEMATICAL BOLD FRAKTUR SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
-1D5A0;MATHEMATICAL SANS-SERIF CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
-1D5A1;MATHEMATICAL SANS-SERIF CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
-1D5A2;MATHEMATICAL SANS-SERIF CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
-1D5A3;MATHEMATICAL SANS-SERIF CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
-1D5A4;MATHEMATICAL SANS-SERIF CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
-1D5A5;MATHEMATICAL SANS-SERIF CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
-1D5A6;MATHEMATICAL SANS-SERIF CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
-1D5A7;MATHEMATICAL SANS-SERIF CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
-1D5A8;MATHEMATICAL SANS-SERIF CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
-1D5A9;MATHEMATICAL SANS-SERIF CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
-1D5AA;MATHEMATICAL SANS-SERIF CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
-1D5AB;MATHEMATICAL SANS-SERIF CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
-1D5AC;MATHEMATICAL SANS-SERIF CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
-1D5AD;MATHEMATICAL SANS-SERIF CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
-1D5AE;MATHEMATICAL SANS-SERIF CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
-1D5AF;MATHEMATICAL SANS-SERIF CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
-1D5B0;MATHEMATICAL SANS-SERIF CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
-1D5B1;MATHEMATICAL SANS-SERIF CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
-1D5B2;MATHEMATICAL SANS-SERIF CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
-1D5B3;MATHEMATICAL SANS-SERIF CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
-1D5B4;MATHEMATICAL SANS-SERIF CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
-1D5B5;MATHEMATICAL SANS-SERIF CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
-1D5B6;MATHEMATICAL SANS-SERIF CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
-1D5B7;MATHEMATICAL SANS-SERIF CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
-1D5B8;MATHEMATICAL SANS-SERIF CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
-1D5B9;MATHEMATICAL SANS-SERIF CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
-1D5BA;MATHEMATICAL SANS-SERIF SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
-1D5BB;MATHEMATICAL SANS-SERIF SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
-1D5BC;MATHEMATICAL SANS-SERIF SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
-1D5BD;MATHEMATICAL SANS-SERIF SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
-1D5BE;MATHEMATICAL SANS-SERIF SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
-1D5BF;MATHEMATICAL SANS-SERIF SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
-1D5C0;MATHEMATICAL SANS-SERIF SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
-1D5C1;MATHEMATICAL SANS-SERIF SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
-1D5C2;MATHEMATICAL SANS-SERIF SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
-1D5C3;MATHEMATICAL SANS-SERIF SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
-1D5C4;MATHEMATICAL SANS-SERIF SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
-1D5C5;MATHEMATICAL SANS-SERIF SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
-1D5C6;MATHEMATICAL SANS-SERIF SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
-1D5C7;MATHEMATICAL SANS-SERIF SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
-1D5C8;MATHEMATICAL SANS-SERIF SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
-1D5C9;MATHEMATICAL SANS-SERIF SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
-1D5CA;MATHEMATICAL SANS-SERIF SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
-1D5CB;MATHEMATICAL SANS-SERIF SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
-1D5CC;MATHEMATICAL SANS-SERIF SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
-1D5CD;MATHEMATICAL SANS-SERIF SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
-1D5CE;MATHEMATICAL SANS-SERIF SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
-1D5CF;MATHEMATICAL SANS-SERIF SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
-1D5D0;MATHEMATICAL SANS-SERIF SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
-1D5D1;MATHEMATICAL SANS-SERIF SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
-1D5D2;MATHEMATICAL SANS-SERIF SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
-1D5D3;MATHEMATICAL SANS-SERIF SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
-1D5D4;MATHEMATICAL SANS-SERIF BOLD CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
-1D5D5;MATHEMATICAL SANS-SERIF BOLD CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
-1D5D6;MATHEMATICAL SANS-SERIF BOLD CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
-1D5D7;MATHEMATICAL SANS-SERIF BOLD CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
-1D5D8;MATHEMATICAL SANS-SERIF BOLD CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
-1D5D9;MATHEMATICAL SANS-SERIF BOLD CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
-1D5DA;MATHEMATICAL SANS-SERIF BOLD CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
-1D5DB;MATHEMATICAL SANS-SERIF BOLD CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
-1D5DC;MATHEMATICAL SANS-SERIF BOLD CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
-1D5DD;MATHEMATICAL SANS-SERIF BOLD CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
-1D5DE;MATHEMATICAL SANS-SERIF BOLD CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
-1D5DF;MATHEMATICAL SANS-SERIF BOLD CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
-1D5E0;MATHEMATICAL SANS-SERIF BOLD CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
-1D5E1;MATHEMATICAL SANS-SERIF BOLD CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
-1D5E2;MATHEMATICAL SANS-SERIF BOLD CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
-1D5E3;MATHEMATICAL SANS-SERIF BOLD CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
-1D5E4;MATHEMATICAL SANS-SERIF BOLD CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
-1D5E5;MATHEMATICAL SANS-SERIF BOLD CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
-1D5E6;MATHEMATICAL SANS-SERIF BOLD CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
-1D5E7;MATHEMATICAL SANS-SERIF BOLD CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
-1D5E8;MATHEMATICAL SANS-SERIF BOLD CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
-1D5E9;MATHEMATICAL SANS-SERIF BOLD CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
-1D5EA;MATHEMATICAL SANS-SERIF BOLD CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
-1D5EB;MATHEMATICAL SANS-SERIF BOLD CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
-1D5EC;MATHEMATICAL SANS-SERIF BOLD CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
-1D5ED;MATHEMATICAL SANS-SERIF BOLD CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
-1D5EE;MATHEMATICAL SANS-SERIF BOLD SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
-1D5EF;MATHEMATICAL SANS-SERIF BOLD SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
-1D5F0;MATHEMATICAL SANS-SERIF BOLD SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
-1D5F1;MATHEMATICAL SANS-SERIF BOLD SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
-1D5F2;MATHEMATICAL SANS-SERIF BOLD SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
-1D5F3;MATHEMATICAL SANS-SERIF BOLD SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
-1D5F4;MATHEMATICAL SANS-SERIF BOLD SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
-1D5F5;MATHEMATICAL SANS-SERIF BOLD SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
-1D5F6;MATHEMATICAL SANS-SERIF BOLD SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
-1D5F7;MATHEMATICAL SANS-SERIF BOLD SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
-1D5F8;MATHEMATICAL SANS-SERIF BOLD SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
-1D5F9;MATHEMATICAL SANS-SERIF BOLD SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
-1D5FA;MATHEMATICAL SANS-SERIF BOLD SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
-1D5FB;MATHEMATICAL SANS-SERIF BOLD SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
-1D5FC;MATHEMATICAL SANS-SERIF BOLD SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
-1D5FD;MATHEMATICAL SANS-SERIF BOLD SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
-1D5FE;MATHEMATICAL SANS-SERIF BOLD SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
-1D5FF;MATHEMATICAL SANS-SERIF BOLD SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
-1D600;MATHEMATICAL SANS-SERIF BOLD SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
-1D601;MATHEMATICAL SANS-SERIF BOLD SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
-1D602;MATHEMATICAL SANS-SERIF BOLD SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
-1D603;MATHEMATICAL SANS-SERIF BOLD SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
-1D604;MATHEMATICAL SANS-SERIF BOLD SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
-1D605;MATHEMATICAL SANS-SERIF BOLD SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
-1D606;MATHEMATICAL SANS-SERIF BOLD SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
-1D607;MATHEMATICAL SANS-SERIF BOLD SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
-1D608;MATHEMATICAL SANS-SERIF ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
-1D609;MATHEMATICAL SANS-SERIF ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
-1D60A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
-1D60B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
-1D60C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
-1D60D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
-1D60E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
-1D60F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
-1D610;MATHEMATICAL SANS-SERIF ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
-1D611;MATHEMATICAL SANS-SERIF ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
-1D612;MATHEMATICAL SANS-SERIF ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
-1D613;MATHEMATICAL SANS-SERIF ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
-1D614;MATHEMATICAL SANS-SERIF ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
-1D615;MATHEMATICAL SANS-SERIF ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
-1D616;MATHEMATICAL SANS-SERIF ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
-1D617;MATHEMATICAL SANS-SERIF ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
-1D618;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
-1D619;MATHEMATICAL SANS-SERIF ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
-1D61A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
-1D61B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
-1D61C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
-1D61D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
-1D61E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
-1D61F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
-1D620;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
-1D621;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
-1D622;MATHEMATICAL SANS-SERIF ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
-1D623;MATHEMATICAL SANS-SERIF ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
-1D624;MATHEMATICAL SANS-SERIF ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
-1D625;MATHEMATICAL SANS-SERIF ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
-1D626;MATHEMATICAL SANS-SERIF ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
-1D627;MATHEMATICAL SANS-SERIF ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
-1D628;MATHEMATICAL SANS-SERIF ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
-1D629;MATHEMATICAL SANS-SERIF ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
-1D62A;MATHEMATICAL SANS-SERIF ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
-1D62B;MATHEMATICAL SANS-SERIF ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
-1D62C;MATHEMATICAL SANS-SERIF ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
-1D62D;MATHEMATICAL SANS-SERIF ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
-1D62E;MATHEMATICAL SANS-SERIF ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
-1D62F;MATHEMATICAL SANS-SERIF ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
-1D630;MATHEMATICAL SANS-SERIF ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
-1D631;MATHEMATICAL SANS-SERIF ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
-1D632;MATHEMATICAL SANS-SERIF ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
-1D633;MATHEMATICAL SANS-SERIF ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
-1D634;MATHEMATICAL SANS-SERIF ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
-1D635;MATHEMATICAL SANS-SERIF ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
-1D636;MATHEMATICAL SANS-SERIF ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
-1D637;MATHEMATICAL SANS-SERIF ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
-1D638;MATHEMATICAL SANS-SERIF ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
-1D639;MATHEMATICAL SANS-SERIF ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
-1D63A;MATHEMATICAL SANS-SERIF ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
-1D63B;MATHEMATICAL SANS-SERIF ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
-1D63C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
-1D63D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
-1D63E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
-1D63F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
-1D640;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
-1D641;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
-1D642;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
-1D643;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
-1D644;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
-1D645;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
-1D646;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
-1D647;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
-1D648;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
-1D649;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
-1D64A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
-1D64B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
-1D64C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
-1D64D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
-1D64E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
-1D64F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
-1D650;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
-1D651;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
-1D652;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
-1D653;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
-1D654;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
-1D655;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
-1D656;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
-1D657;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
-1D658;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
-1D659;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
-1D65A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
-1D65B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
-1D65C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
-1D65D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
-1D65E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
-1D65F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
-1D660;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
-1D661;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
-1D662;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
-1D663;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
-1D664;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
-1D665;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
-1D666;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
-1D667;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
-1D668;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
-1D669;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
-1D66A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
-1D66B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
-1D66C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
-1D66D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
-1D66E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
-1D66F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
-1D670;MATHEMATICAL MONOSPACE CAPITAL A;Lu;0;L;<font> 0041;;;;N;;;;;
-1D671;MATHEMATICAL MONOSPACE CAPITAL B;Lu;0;L;<font> 0042;;;;N;;;;;
-1D672;MATHEMATICAL MONOSPACE CAPITAL C;Lu;0;L;<font> 0043;;;;N;;;;;
-1D673;MATHEMATICAL MONOSPACE CAPITAL D;Lu;0;L;<font> 0044;;;;N;;;;;
-1D674;MATHEMATICAL MONOSPACE CAPITAL E;Lu;0;L;<font> 0045;;;;N;;;;;
-1D675;MATHEMATICAL MONOSPACE CAPITAL F;Lu;0;L;<font> 0046;;;;N;;;;;
-1D676;MATHEMATICAL MONOSPACE CAPITAL G;Lu;0;L;<font> 0047;;;;N;;;;;
-1D677;MATHEMATICAL MONOSPACE CAPITAL H;Lu;0;L;<font> 0048;;;;N;;;;;
-1D678;MATHEMATICAL MONOSPACE CAPITAL I;Lu;0;L;<font> 0049;;;;N;;;;;
-1D679;MATHEMATICAL MONOSPACE CAPITAL J;Lu;0;L;<font> 004A;;;;N;;;;;
-1D67A;MATHEMATICAL MONOSPACE CAPITAL K;Lu;0;L;<font> 004B;;;;N;;;;;
-1D67B;MATHEMATICAL MONOSPACE CAPITAL L;Lu;0;L;<font> 004C;;;;N;;;;;
-1D67C;MATHEMATICAL MONOSPACE CAPITAL M;Lu;0;L;<font> 004D;;;;N;;;;;
-1D67D;MATHEMATICAL MONOSPACE CAPITAL N;Lu;0;L;<font> 004E;;;;N;;;;;
-1D67E;MATHEMATICAL MONOSPACE CAPITAL O;Lu;0;L;<font> 004F;;;;N;;;;;
-1D67F;MATHEMATICAL MONOSPACE CAPITAL P;Lu;0;L;<font> 0050;;;;N;;;;;
-1D680;MATHEMATICAL MONOSPACE CAPITAL Q;Lu;0;L;<font> 0051;;;;N;;;;;
-1D681;MATHEMATICAL MONOSPACE CAPITAL R;Lu;0;L;<font> 0052;;;;N;;;;;
-1D682;MATHEMATICAL MONOSPACE CAPITAL S;Lu;0;L;<font> 0053;;;;N;;;;;
-1D683;MATHEMATICAL MONOSPACE CAPITAL T;Lu;0;L;<font> 0054;;;;N;;;;;
-1D684;MATHEMATICAL MONOSPACE CAPITAL U;Lu;0;L;<font> 0055;;;;N;;;;;
-1D685;MATHEMATICAL MONOSPACE CAPITAL V;Lu;0;L;<font> 0056;;;;N;;;;;
-1D686;MATHEMATICAL MONOSPACE CAPITAL W;Lu;0;L;<font> 0057;;;;N;;;;;
-1D687;MATHEMATICAL MONOSPACE CAPITAL X;Lu;0;L;<font> 0058;;;;N;;;;;
-1D688;MATHEMATICAL MONOSPACE CAPITAL Y;Lu;0;L;<font> 0059;;;;N;;;;;
-1D689;MATHEMATICAL MONOSPACE CAPITAL Z;Lu;0;L;<font> 005A;;;;N;;;;;
-1D68A;MATHEMATICAL MONOSPACE SMALL A;Ll;0;L;<font> 0061;;;;N;;;;;
-1D68B;MATHEMATICAL MONOSPACE SMALL B;Ll;0;L;<font> 0062;;;;N;;;;;
-1D68C;MATHEMATICAL MONOSPACE SMALL C;Ll;0;L;<font> 0063;;;;N;;;;;
-1D68D;MATHEMATICAL MONOSPACE SMALL D;Ll;0;L;<font> 0064;;;;N;;;;;
-1D68E;MATHEMATICAL MONOSPACE SMALL E;Ll;0;L;<font> 0065;;;;N;;;;;
-1D68F;MATHEMATICAL MONOSPACE SMALL F;Ll;0;L;<font> 0066;;;;N;;;;;
-1D690;MATHEMATICAL MONOSPACE SMALL G;Ll;0;L;<font> 0067;;;;N;;;;;
-1D691;MATHEMATICAL MONOSPACE SMALL H;Ll;0;L;<font> 0068;;;;N;;;;;
-1D692;MATHEMATICAL MONOSPACE SMALL I;Ll;0;L;<font> 0069;;;;N;;;;;
-1D693;MATHEMATICAL MONOSPACE SMALL J;Ll;0;L;<font> 006A;;;;N;;;;;
-1D694;MATHEMATICAL MONOSPACE SMALL K;Ll;0;L;<font> 006B;;;;N;;;;;
-1D695;MATHEMATICAL MONOSPACE SMALL L;Ll;0;L;<font> 006C;;;;N;;;;;
-1D696;MATHEMATICAL MONOSPACE SMALL M;Ll;0;L;<font> 006D;;;;N;;;;;
-1D697;MATHEMATICAL MONOSPACE SMALL N;Ll;0;L;<font> 006E;;;;N;;;;;
-1D698;MATHEMATICAL MONOSPACE SMALL O;Ll;0;L;<font> 006F;;;;N;;;;;
-1D699;MATHEMATICAL MONOSPACE SMALL P;Ll;0;L;<font> 0070;;;;N;;;;;
-1D69A;MATHEMATICAL MONOSPACE SMALL Q;Ll;0;L;<font> 0071;;;;N;;;;;
-1D69B;MATHEMATICAL MONOSPACE SMALL R;Ll;0;L;<font> 0072;;;;N;;;;;
-1D69C;MATHEMATICAL MONOSPACE SMALL S;Ll;0;L;<font> 0073;;;;N;;;;;
-1D69D;MATHEMATICAL MONOSPACE SMALL T;Ll;0;L;<font> 0074;;;;N;;;;;
-1D69E;MATHEMATICAL MONOSPACE SMALL U;Ll;0;L;<font> 0075;;;;N;;;;;
-1D69F;MATHEMATICAL MONOSPACE SMALL V;Ll;0;L;<font> 0076;;;;N;;;;;
-1D6A0;MATHEMATICAL MONOSPACE SMALL W;Ll;0;L;<font> 0077;;;;N;;;;;
-1D6A1;MATHEMATICAL MONOSPACE SMALL X;Ll;0;L;<font> 0078;;;;N;;;;;
-1D6A2;MATHEMATICAL MONOSPACE SMALL Y;Ll;0;L;<font> 0079;;;;N;;;;;
-1D6A3;MATHEMATICAL MONOSPACE SMALL Z;Ll;0;L;<font> 007A;;;;N;;;;;
-1D6A4;MATHEMATICAL ITALIC SMALL DOTLESS I;Ll;0;L;<font> 0131;;;;N;;;;;
-1D6A5;MATHEMATICAL ITALIC SMALL DOTLESS J;Ll;0;L;<font> 0237;;;;N;;;;;
-1D6A8;MATHEMATICAL BOLD CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
-1D6A9;MATHEMATICAL BOLD CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
-1D6AA;MATHEMATICAL BOLD CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
-1D6AB;MATHEMATICAL BOLD CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
-1D6AC;MATHEMATICAL BOLD CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
-1D6AD;MATHEMATICAL BOLD CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
-1D6AE;MATHEMATICAL BOLD CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
-1D6AF;MATHEMATICAL BOLD CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
-1D6B0;MATHEMATICAL BOLD CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
-1D6B1;MATHEMATICAL BOLD CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
-1D6B2;MATHEMATICAL BOLD CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
-1D6B3;MATHEMATICAL BOLD CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
-1D6B4;MATHEMATICAL BOLD CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
-1D6B5;MATHEMATICAL BOLD CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
-1D6B6;MATHEMATICAL BOLD CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
-1D6B7;MATHEMATICAL BOLD CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
-1D6B8;MATHEMATICAL BOLD CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
-1D6B9;MATHEMATICAL BOLD CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
-1D6BA;MATHEMATICAL BOLD CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
-1D6BB;MATHEMATICAL BOLD CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
-1D6BC;MATHEMATICAL BOLD CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
-1D6BD;MATHEMATICAL BOLD CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
-1D6BE;MATHEMATICAL BOLD CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
-1D6BF;MATHEMATICAL BOLD CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
-1D6C0;MATHEMATICAL BOLD CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
-1D6C1;MATHEMATICAL BOLD NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
-1D6C2;MATHEMATICAL BOLD SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
-1D6C3;MATHEMATICAL BOLD SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
-1D6C4;MATHEMATICAL BOLD SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
-1D6C5;MATHEMATICAL BOLD SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
-1D6C6;MATHEMATICAL BOLD SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
-1D6C7;MATHEMATICAL BOLD SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
-1D6C8;MATHEMATICAL BOLD SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
-1D6C9;MATHEMATICAL BOLD SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
-1D6CA;MATHEMATICAL BOLD SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
-1D6CB;MATHEMATICAL BOLD SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
-1D6CC;MATHEMATICAL BOLD SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
-1D6CD;MATHEMATICAL BOLD SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
-1D6CE;MATHEMATICAL BOLD SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
-1D6CF;MATHEMATICAL BOLD SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
-1D6D0;MATHEMATICAL BOLD SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
-1D6D1;MATHEMATICAL BOLD SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
-1D6D2;MATHEMATICAL BOLD SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
-1D6D3;MATHEMATICAL BOLD SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
-1D6D4;MATHEMATICAL BOLD SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
-1D6D5;MATHEMATICAL BOLD SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
-1D6D6;MATHEMATICAL BOLD SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
-1D6D7;MATHEMATICAL BOLD SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
-1D6D8;MATHEMATICAL BOLD SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
-1D6D9;MATHEMATICAL BOLD SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
-1D6DA;MATHEMATICAL BOLD SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
-1D6DB;MATHEMATICAL BOLD PARTIAL DIFFERENTIAL;Sm;0;ON;<font> 2202;;;;Y;;;;;
-1D6DC;MATHEMATICAL BOLD EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
-1D6DD;MATHEMATICAL BOLD THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
-1D6DE;MATHEMATICAL BOLD KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
-1D6DF;MATHEMATICAL BOLD PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
-1D6E0;MATHEMATICAL BOLD RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
-1D6E1;MATHEMATICAL BOLD PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
-1D6E2;MATHEMATICAL ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
-1D6E3;MATHEMATICAL ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
-1D6E4;MATHEMATICAL ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
-1D6E5;MATHEMATICAL ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
-1D6E6;MATHEMATICAL ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
-1D6E7;MATHEMATICAL ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
-1D6E8;MATHEMATICAL ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
-1D6E9;MATHEMATICAL ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
-1D6EA;MATHEMATICAL ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
-1D6EB;MATHEMATICAL ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
-1D6EC;MATHEMATICAL ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
-1D6ED;MATHEMATICAL ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
-1D6EE;MATHEMATICAL ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
-1D6EF;MATHEMATICAL ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
-1D6F0;MATHEMATICAL ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
-1D6F1;MATHEMATICAL ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
-1D6F2;MATHEMATICAL ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
-1D6F3;MATHEMATICAL ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
-1D6F4;MATHEMATICAL ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
-1D6F5;MATHEMATICAL ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
-1D6F6;MATHEMATICAL ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
-1D6F7;MATHEMATICAL ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
-1D6F8;MATHEMATICAL ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
-1D6F9;MATHEMATICAL ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
-1D6FA;MATHEMATICAL ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
-1D6FB;MATHEMATICAL ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
-1D6FC;MATHEMATICAL ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
-1D6FD;MATHEMATICAL ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
-1D6FE;MATHEMATICAL ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
-1D6FF;MATHEMATICAL ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
-1D700;MATHEMATICAL ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
-1D701;MATHEMATICAL ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
-1D702;MATHEMATICAL ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
-1D703;MATHEMATICAL ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
-1D704;MATHEMATICAL ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
-1D705;MATHEMATICAL ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
-1D706;MATHEMATICAL ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
-1D707;MATHEMATICAL ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
-1D708;MATHEMATICAL ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
-1D709;MATHEMATICAL ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
-1D70A;MATHEMATICAL ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
-1D70B;MATHEMATICAL ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
-1D70C;MATHEMATICAL ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
-1D70D;MATHEMATICAL ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
-1D70E;MATHEMATICAL ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
-1D70F;MATHEMATICAL ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
-1D710;MATHEMATICAL ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
-1D711;MATHEMATICAL ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
-1D712;MATHEMATICAL ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
-1D713;MATHEMATICAL ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
-1D714;MATHEMATICAL ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
-1D715;MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL;Sm;0;ON;<font> 2202;;;;Y;;;;;
-1D716;MATHEMATICAL ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
-1D717;MATHEMATICAL ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
-1D718;MATHEMATICAL ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
-1D719;MATHEMATICAL ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
-1D71A;MATHEMATICAL ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
-1D71B;MATHEMATICAL ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
-1D71C;MATHEMATICAL BOLD ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
-1D71D;MATHEMATICAL BOLD ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
-1D71E;MATHEMATICAL BOLD ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
-1D71F;MATHEMATICAL BOLD ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
-1D720;MATHEMATICAL BOLD ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
-1D721;MATHEMATICAL BOLD ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
-1D722;MATHEMATICAL BOLD ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
-1D723;MATHEMATICAL BOLD ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
-1D724;MATHEMATICAL BOLD ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
-1D725;MATHEMATICAL BOLD ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
-1D726;MATHEMATICAL BOLD ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
-1D727;MATHEMATICAL BOLD ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
-1D728;MATHEMATICAL BOLD ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
-1D729;MATHEMATICAL BOLD ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
-1D72A;MATHEMATICAL BOLD ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
-1D72B;MATHEMATICAL BOLD ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
-1D72C;MATHEMATICAL BOLD ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
-1D72D;MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
-1D72E;MATHEMATICAL BOLD ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
-1D72F;MATHEMATICAL BOLD ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
-1D730;MATHEMATICAL BOLD ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
-1D731;MATHEMATICAL BOLD ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
-1D732;MATHEMATICAL BOLD ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
-1D733;MATHEMATICAL BOLD ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
-1D734;MATHEMATICAL BOLD ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
-1D735;MATHEMATICAL BOLD ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
-1D736;MATHEMATICAL BOLD ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
-1D737;MATHEMATICAL BOLD ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
-1D738;MATHEMATICAL BOLD ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
-1D739;MATHEMATICAL BOLD ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
-1D73A;MATHEMATICAL BOLD ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
-1D73B;MATHEMATICAL BOLD ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
-1D73C;MATHEMATICAL BOLD ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
-1D73D;MATHEMATICAL BOLD ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
-1D73E;MATHEMATICAL BOLD ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
-1D73F;MATHEMATICAL BOLD ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
-1D740;MATHEMATICAL BOLD ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
-1D741;MATHEMATICAL BOLD ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
-1D742;MATHEMATICAL BOLD ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
-1D743;MATHEMATICAL BOLD ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
-1D744;MATHEMATICAL BOLD ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
-1D745;MATHEMATICAL BOLD ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
-1D746;MATHEMATICAL BOLD ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
-1D747;MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
-1D748;MATHEMATICAL BOLD ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
-1D749;MATHEMATICAL BOLD ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
-1D74A;MATHEMATICAL BOLD ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
-1D74B;MATHEMATICAL BOLD ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
-1D74C;MATHEMATICAL BOLD ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
-1D74D;MATHEMATICAL BOLD ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
-1D74E;MATHEMATICAL BOLD ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
-1D74F;MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;ON;<font> 2202;;;;Y;;;;;
-1D750;MATHEMATICAL BOLD ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
-1D751;MATHEMATICAL BOLD ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
-1D752;MATHEMATICAL BOLD ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
-1D753;MATHEMATICAL BOLD ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
-1D754;MATHEMATICAL BOLD ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
-1D755;MATHEMATICAL BOLD ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
-1D756;MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
-1D757;MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
-1D758;MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
-1D759;MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
-1D75A;MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
-1D75B;MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
-1D75C;MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
-1D75D;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
-1D75E;MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
-1D75F;MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
-1D760;MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
-1D761;MATHEMATICAL SANS-SERIF BOLD CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
-1D762;MATHEMATICAL SANS-SERIF BOLD CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
-1D763;MATHEMATICAL SANS-SERIF BOLD CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
-1D764;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
-1D765;MATHEMATICAL SANS-SERIF BOLD CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
-1D766;MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
-1D767;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
-1D768;MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
-1D769;MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
-1D76A;MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
-1D76B;MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
-1D76C;MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
-1D76D;MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
-1D76E;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
-1D76F;MATHEMATICAL SANS-SERIF BOLD NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
-1D770;MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
-1D771;MATHEMATICAL SANS-SERIF BOLD SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
-1D772;MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
-1D773;MATHEMATICAL SANS-SERIF BOLD SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
-1D774;MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
-1D775;MATHEMATICAL SANS-SERIF BOLD SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
-1D776;MATHEMATICAL SANS-SERIF BOLD SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
-1D777;MATHEMATICAL SANS-SERIF BOLD SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
-1D778;MATHEMATICAL SANS-SERIF BOLD SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
-1D779;MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
-1D77A;MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
-1D77B;MATHEMATICAL SANS-SERIF BOLD SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
-1D77C;MATHEMATICAL SANS-SERIF BOLD SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
-1D77D;MATHEMATICAL SANS-SERIF BOLD SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
-1D77E;MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
-1D77F;MATHEMATICAL SANS-SERIF BOLD SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
-1D780;MATHEMATICAL SANS-SERIF BOLD SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
-1D781;MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
-1D782;MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
-1D783;MATHEMATICAL SANS-SERIF BOLD SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
-1D784;MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
-1D785;MATHEMATICAL SANS-SERIF BOLD SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
-1D786;MATHEMATICAL SANS-SERIF BOLD SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
-1D787;MATHEMATICAL SANS-SERIF BOLD SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
-1D788;MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
-1D789;MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL;Sm;0;ON;<font> 2202;;;;Y;;;;;
-1D78A;MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
-1D78B;MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
-1D78C;MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
-1D78D;MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
-1D78E;MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
-1D78F;MATHEMATICAL SANS-SERIF BOLD PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
-1D790;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA;Lu;0;L;<font> 0391;;;;N;;;;;
-1D791;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA;Lu;0;L;<font> 0392;;;;N;;;;;
-1D792;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA;Lu;0;L;<font> 0393;;;;N;;;;;
-1D793;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA;Lu;0;L;<font> 0394;;;;N;;;;;
-1D794;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON;Lu;0;L;<font> 0395;;;;N;;;;;
-1D795;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA;Lu;0;L;<font> 0396;;;;N;;;;;
-1D796;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA;Lu;0;L;<font> 0397;;;;N;;;;;
-1D797;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA;Lu;0;L;<font> 0398;;;;N;;;;;
-1D798;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA;Lu;0;L;<font> 0399;;;;N;;;;;
-1D799;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA;Lu;0;L;<font> 039A;;;;N;;;;;
-1D79A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA;Lu;0;L;<font> 039B;;;;N;;;;;
-1D79B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU;Lu;0;L;<font> 039C;;;;N;;;;;
-1D79C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU;Lu;0;L;<font> 039D;;;;N;;;;;
-1D79D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI;Lu;0;L;<font> 039E;;;;N;;;;;
-1D79E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON;Lu;0;L;<font> 039F;;;;N;;;;;
-1D79F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI;Lu;0;L;<font> 03A0;;;;N;;;;;
-1D7A0;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO;Lu;0;L;<font> 03A1;;;;N;;;;;
-1D7A1;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L;<font> 03F4;;;;N;;;;;
-1D7A2;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA;Lu;0;L;<font> 03A3;;;;N;;;;;
-1D7A3;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU;Lu;0;L;<font> 03A4;;;;N;;;;;
-1D7A4;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON;Lu;0;L;<font> 03A5;;;;N;;;;;
-1D7A5;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI;Lu;0;L;<font> 03A6;;;;N;;;;;
-1D7A6;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI;Lu;0;L;<font> 03A7;;;;N;;;;;
-1D7A7;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI;Lu;0;L;<font> 03A8;;;;N;;;;;
-1D7A8;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA;Lu;0;L;<font> 03A9;;;;N;;;;;
-1D7A9;MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA;Sm;0;L;<font> 2207;;;;N;;;;;
-1D7AA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA;Ll;0;L;<font> 03B1;;;;N;;;;;
-1D7AB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA;Ll;0;L;<font> 03B2;;;;N;;;;;
-1D7AC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA;Ll;0;L;<font> 03B3;;;;N;;;;;
-1D7AD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA;Ll;0;L;<font> 03B4;;;;N;;;;;
-1D7AE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON;Ll;0;L;<font> 03B5;;;;N;;;;;
-1D7AF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA;Ll;0;L;<font> 03B6;;;;N;;;;;
-1D7B0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA;Ll;0;L;<font> 03B7;;;;N;;;;;
-1D7B1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA;Ll;0;L;<font> 03B8;;;;N;;;;;
-1D7B2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA;Ll;0;L;<font> 03B9;;;;N;;;;;
-1D7B3;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA;Ll;0;L;<font> 03BA;;;;N;;;;;
-1D7B4;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA;Ll;0;L;<font> 03BB;;;;N;;;;;
-1D7B5;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU;Ll;0;L;<font> 03BC;;;;N;;;;;
-1D7B6;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU;Ll;0;L;<font> 03BD;;;;N;;;;;
-1D7B7;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI;Ll;0;L;<font> 03BE;;;;N;;;;;
-1D7B8;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON;Ll;0;L;<font> 03BF;;;;N;;;;;
-1D7B9;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI;Ll;0;L;<font> 03C0;;;;N;;;;;
-1D7BA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO;Ll;0;L;<font> 03C1;;;;N;;;;;
-1D7BB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L;<font> 03C2;;;;N;;;;;
-1D7BC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA;Ll;0;L;<font> 03C3;;;;N;;;;;
-1D7BD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU;Ll;0;L;<font> 03C4;;;;N;;;;;
-1D7BE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON;Ll;0;L;<font> 03C5;;;;N;;;;;
-1D7BF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI;Ll;0;L;<font> 03C6;;;;N;;;;;
-1D7C0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI;Ll;0;L;<font> 03C7;;;;N;;;;;
-1D7C1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI;Ll;0;L;<font> 03C8;;;;N;;;;;
-1D7C2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA;Ll;0;L;<font> 03C9;;;;N;;;;;
-1D7C3;MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;ON;<font> 2202;;;;Y;;;;;
-1D7C4;MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL;Ll;0;L;<font> 03F5;;;;N;;;;;
-1D7C5;MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL;Ll;0;L;<font> 03D1;;;;N;;;;;
-1D7C6;MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL;Ll;0;L;<font> 03F0;;;;N;;;;;
-1D7C7;MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL;Ll;0;L;<font> 03D5;;;;N;;;;;
-1D7C8;MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL;Ll;0;L;<font> 03F1;;;;N;;;;;
-1D7C9;MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL;Ll;0;L;<font> 03D6;;;;N;;;;;
-1D7CA;MATHEMATICAL BOLD CAPITAL DIGAMMA;Lu;0;L;<font> 03DC;;;;N;;;;;
-1D7CB;MATHEMATICAL BOLD SMALL DIGAMMA;Ll;0;L;<font> 03DD;;;;N;;;;;
-1D7CE;MATHEMATICAL BOLD DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
-1D7CF;MATHEMATICAL BOLD DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
-1D7D0;MATHEMATICAL BOLD DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
-1D7D1;MATHEMATICAL BOLD DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
-1D7D2;MATHEMATICAL BOLD DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
-1D7D3;MATHEMATICAL BOLD DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
-1D7D4;MATHEMATICAL BOLD DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
-1D7D5;MATHEMATICAL BOLD DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
-1D7D6;MATHEMATICAL BOLD DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
-1D7D7;MATHEMATICAL BOLD DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
-1D7D8;MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
-1D7D9;MATHEMATICAL DOUBLE-STRUCK DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
-1D7DA;MATHEMATICAL DOUBLE-STRUCK DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
-1D7DB;MATHEMATICAL DOUBLE-STRUCK DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
-1D7DC;MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
-1D7DD;MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
-1D7DE;MATHEMATICAL DOUBLE-STRUCK DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
-1D7DF;MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
-1D7E0;MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
-1D7E1;MATHEMATICAL DOUBLE-STRUCK DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
-1D7E2;MATHEMATICAL SANS-SERIF DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
-1D7E3;MATHEMATICAL SANS-SERIF DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
-1D7E4;MATHEMATICAL SANS-SERIF DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
-1D7E5;MATHEMATICAL SANS-SERIF DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
-1D7E6;MATHEMATICAL SANS-SERIF DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
-1D7E7;MATHEMATICAL SANS-SERIF DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
-1D7E8;MATHEMATICAL SANS-SERIF DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
-1D7E9;MATHEMATICAL SANS-SERIF DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
-1D7EA;MATHEMATICAL SANS-SERIF DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
-1D7EB;MATHEMATICAL SANS-SERIF DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
-1D7EC;MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
-1D7ED;MATHEMATICAL SANS-SERIF BOLD DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
-1D7EE;MATHEMATICAL SANS-SERIF BOLD DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
-1D7EF;MATHEMATICAL SANS-SERIF BOLD DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
-1D7F0;MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
-1D7F1;MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
-1D7F2;MATHEMATICAL SANS-SERIF BOLD DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
-1D7F3;MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
-1D7F4;MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
-1D7F5;MATHEMATICAL SANS-SERIF BOLD DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
-1D7F6;MATHEMATICAL MONOSPACE DIGIT ZERO;Nd;0;EN;<font> 0030;0;0;0;N;;;;;
-1D7F7;MATHEMATICAL MONOSPACE DIGIT ONE;Nd;0;EN;<font> 0031;1;1;1;N;;;;;
-1D7F8;MATHEMATICAL MONOSPACE DIGIT TWO;Nd;0;EN;<font> 0032;2;2;2;N;;;;;
-1D7F9;MATHEMATICAL MONOSPACE DIGIT THREE;Nd;0;EN;<font> 0033;3;3;3;N;;;;;
-1D7FA;MATHEMATICAL MONOSPACE DIGIT FOUR;Nd;0;EN;<font> 0034;4;4;4;N;;;;;
-1D7FB;MATHEMATICAL MONOSPACE DIGIT FIVE;Nd;0;EN;<font> 0035;5;5;5;N;;;;;
-1D7FC;MATHEMATICAL MONOSPACE DIGIT SIX;Nd;0;EN;<font> 0036;6;6;6;N;;;;;
-1D7FD;MATHEMATICAL MONOSPACE DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
-1D7FE;MATHEMATICAL MONOSPACE DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
-1D7FF;MATHEMATICAL MONOSPACE DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
-1EE00;ARABIC MATHEMATICAL ALEF;Lo;0;AL;<font> 0627;;;;N;;;;;
-1EE01;ARABIC MATHEMATICAL BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
-1EE02;ARABIC MATHEMATICAL JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
-1EE03;ARABIC MATHEMATICAL DAL;Lo;0;AL;<font> 062F;;;;N;;;;;
-1EE05;ARABIC MATHEMATICAL WAW;Lo;0;AL;<font> 0648;;;;N;;;;;
-1EE06;ARABIC MATHEMATICAL ZAIN;Lo;0;AL;<font> 0632;;;;N;;;;;
-1EE07;ARABIC MATHEMATICAL HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
-1EE08;ARABIC MATHEMATICAL TAH;Lo;0;AL;<font> 0637;;;;N;;;;;
-1EE09;ARABIC MATHEMATICAL YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
-1EE0A;ARABIC MATHEMATICAL KAF;Lo;0;AL;<font> 0643;;;;N;;;;;
-1EE0B;ARABIC MATHEMATICAL LAM;Lo;0;AL;<font> 0644;;;;N;;;;;
-1EE0C;ARABIC MATHEMATICAL MEEM;Lo;0;AL;<font> 0645;;;;N;;;;;
-1EE0D;ARABIC MATHEMATICAL NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
-1EE0E;ARABIC MATHEMATICAL SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
-1EE0F;ARABIC MATHEMATICAL AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
-1EE10;ARABIC MATHEMATICAL FEH;Lo;0;AL;<font> 0641;;;;N;;;;;
-1EE11;ARABIC MATHEMATICAL SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
-1EE12;ARABIC MATHEMATICAL QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
-1EE13;ARABIC MATHEMATICAL REH;Lo;0;AL;<font> 0631;;;;N;;;;;
-1EE14;ARABIC MATHEMATICAL SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
-1EE15;ARABIC MATHEMATICAL TEH;Lo;0;AL;<font> 062A;;;;N;;;;;
-1EE16;ARABIC MATHEMATICAL THEH;Lo;0;AL;<font> 062B;;;;N;;;;;
-1EE17;ARABIC MATHEMATICAL KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
-1EE18;ARABIC MATHEMATICAL THAL;Lo;0;AL;<font> 0630;;;;N;;;;;
-1EE19;ARABIC MATHEMATICAL DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
-1EE1A;ARABIC MATHEMATICAL ZAH;Lo;0;AL;<font> 0638;;;;N;;;;;
-1EE1B;ARABIC MATHEMATICAL GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
-1EE1C;ARABIC MATHEMATICAL DOTLESS BEH;Lo;0;AL;<font> 066E;;;;N;;;;;
-1EE1D;ARABIC MATHEMATICAL DOTLESS NOON;Lo;0;AL;<font> 06BA;;;;N;;;;;
-1EE1E;ARABIC MATHEMATICAL DOTLESS FEH;Lo;0;AL;<font> 06A1;;;;N;;;;;
-1EE1F;ARABIC MATHEMATICAL DOTLESS QAF;Lo;0;AL;<font> 066F;;;;N;;;;;
-1EE21;ARABIC MATHEMATICAL INITIAL BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
-1EE22;ARABIC MATHEMATICAL INITIAL JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
-1EE24;ARABIC MATHEMATICAL INITIAL HEH;Lo;0;AL;<font> 0647;;;;N;;;;;
-1EE27;ARABIC MATHEMATICAL INITIAL HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
-1EE29;ARABIC MATHEMATICAL INITIAL YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
-1EE2A;ARABIC MATHEMATICAL INITIAL KAF;Lo;0;AL;<font> 0643;;;;N;;;;;
-1EE2B;ARABIC MATHEMATICAL INITIAL LAM;Lo;0;AL;<font> 0644;;;;N;;;;;
-1EE2C;ARABIC MATHEMATICAL INITIAL MEEM;Lo;0;AL;<font> 0645;;;;N;;;;;
-1EE2D;ARABIC MATHEMATICAL INITIAL NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
-1EE2E;ARABIC MATHEMATICAL INITIAL SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
-1EE2F;ARABIC MATHEMATICAL INITIAL AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
-1EE30;ARABIC MATHEMATICAL INITIAL FEH;Lo;0;AL;<font> 0641;;;;N;;;;;
-1EE31;ARABIC MATHEMATICAL INITIAL SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
-1EE32;ARABIC MATHEMATICAL INITIAL QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
-1EE34;ARABIC MATHEMATICAL INITIAL SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
-1EE35;ARABIC MATHEMATICAL INITIAL TEH;Lo;0;AL;<font> 062A;;;;N;;;;;
-1EE36;ARABIC MATHEMATICAL INITIAL THEH;Lo;0;AL;<font> 062B;;;;N;;;;;
-1EE37;ARABIC MATHEMATICAL INITIAL KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
-1EE39;ARABIC MATHEMATICAL INITIAL DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
-1EE3B;ARABIC MATHEMATICAL INITIAL GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
-1EE42;ARABIC MATHEMATICAL TAILED JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
-1EE47;ARABIC MATHEMATICAL TAILED HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
-1EE49;ARABIC MATHEMATICAL TAILED YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
-1EE4B;ARABIC MATHEMATICAL TAILED LAM;Lo;0;AL;<font> 0644;;;;N;;;;;
-1EE4D;ARABIC MATHEMATICAL TAILED NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
-1EE4E;ARABIC MATHEMATICAL TAILED SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
-1EE4F;ARABIC MATHEMATICAL TAILED AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
-1EE51;ARABIC MATHEMATICAL TAILED SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
-1EE52;ARABIC MATHEMATICAL TAILED QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
-1EE54;ARABIC MATHEMATICAL TAILED SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
-1EE57;ARABIC MATHEMATICAL TAILED KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
-1EE59;ARABIC MATHEMATICAL TAILED DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
-1EE5B;ARABIC MATHEMATICAL TAILED GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
-1EE5D;ARABIC MATHEMATICAL TAILED DOTLESS NOON;Lo;0;AL;<font> 06BA;;;;N;;;;;
-1EE5F;ARABIC MATHEMATICAL TAILED DOTLESS QAF;Lo;0;AL;<font> 066F;;;;N;;;;;
-1EE61;ARABIC MATHEMATICAL STRETCHED BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
-1EE62;ARABIC MATHEMATICAL STRETCHED JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
-1EE64;ARABIC MATHEMATICAL STRETCHED HEH;Lo;0;AL;<font> 0647;;;;N;;;;;
-1EE67;ARABIC MATHEMATICAL STRETCHED HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
-1EE68;ARABIC MATHEMATICAL STRETCHED TAH;Lo;0;AL;<font> 0637;;;;N;;;;;
-1EE69;ARABIC MATHEMATICAL STRETCHED YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
-1EE6A;ARABIC MATHEMATICAL STRETCHED KAF;Lo;0;AL;<font> 0643;;;;N;;;;;
-1EE6C;ARABIC MATHEMATICAL STRETCHED MEEM;Lo;0;AL;<font> 0645;;;;N;;;;;
-1EE6D;ARABIC MATHEMATICAL STRETCHED NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
-1EE6E;ARABIC MATHEMATICAL STRETCHED SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
-1EE6F;ARABIC MATHEMATICAL STRETCHED AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
-1EE70;ARABIC MATHEMATICAL STRETCHED FEH;Lo;0;AL;<font> 0641;;;;N;;;;;
-1EE71;ARABIC MATHEMATICAL STRETCHED SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
-1EE72;ARABIC MATHEMATICAL STRETCHED QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
-1EE74;ARABIC MATHEMATICAL STRETCHED SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
-1EE75;ARABIC MATHEMATICAL STRETCHED TEH;Lo;0;AL;<font> 062A;;;;N;;;;;
-1EE76;ARABIC MATHEMATICAL STRETCHED THEH;Lo;0;AL;<font> 062B;;;;N;;;;;
-1EE77;ARABIC MATHEMATICAL STRETCHED KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
-1EE79;ARABIC MATHEMATICAL STRETCHED DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
-1EE7A;ARABIC MATHEMATICAL STRETCHED ZAH;Lo;0;AL;<font> 0638;;;;N;;;;;
-1EE7B;ARABIC MATHEMATICAL STRETCHED GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
-1EE7C;ARABIC MATHEMATICAL STRETCHED DOTLESS BEH;Lo;0;AL;<font> 066E;;;;N;;;;;
-1EE7E;ARABIC MATHEMATICAL STRETCHED DOTLESS FEH;Lo;0;AL;<font> 06A1;;;;N;;;;;
-1EE80;ARABIC MATHEMATICAL LOOPED ALEF;Lo;0;AL;<font> 0627;;;;N;;;;;
-1EE81;ARABIC MATHEMATICAL LOOPED BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
-1EE82;ARABIC MATHEMATICAL LOOPED JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
-1EE83;ARABIC MATHEMATICAL LOOPED DAL;Lo;0;AL;<font> 062F;;;;N;;;;;
-1EE84;ARABIC MATHEMATICAL LOOPED HEH;Lo;0;AL;<font> 0647;;;;N;;;;;
-1EE85;ARABIC MATHEMATICAL LOOPED WAW;Lo;0;AL;<font> 0648;;;;N;;;;;
-1EE86;ARABIC MATHEMATICAL LOOPED ZAIN;Lo;0;AL;<font> 0632;;;;N;;;;;
-1EE87;ARABIC MATHEMATICAL LOOPED HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
-1EE88;ARABIC MATHEMATICAL LOOPED TAH;Lo;0;AL;<font> 0637;;;;N;;;;;
-1EE89;ARABIC MATHEMATICAL LOOPED YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
-1EE8B;ARABIC MATHEMATICAL LOOPED LAM;Lo;0;AL;<font> 0644;;;;N;;;;;
-1EE8C;ARABIC MATHEMATICAL LOOPED MEEM;Lo;0;AL;<font> 0645;;;;N;;;;;
-1EE8D;ARABIC MATHEMATICAL LOOPED NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
-1EE8E;ARABIC MATHEMATICAL LOOPED SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
-1EE8F;ARABIC MATHEMATICAL LOOPED AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
-1EE90;ARABIC MATHEMATICAL LOOPED FEH;Lo;0;AL;<font> 0641;;;;N;;;;;
-1EE91;ARABIC MATHEMATICAL LOOPED SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
-1EE92;ARABIC MATHEMATICAL LOOPED QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
-1EE93;ARABIC MATHEMATICAL LOOPED REH;Lo;0;AL;<font> 0631;;;;N;;;;;
-1EE94;ARABIC MATHEMATICAL LOOPED SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
-1EE95;ARABIC MATHEMATICAL LOOPED TEH;Lo;0;AL;<font> 062A;;;;N;;;;;
-1EE96;ARABIC MATHEMATICAL LOOPED THEH;Lo;0;AL;<font> 062B;;;;N;;;;;
-1EE97;ARABIC MATHEMATICAL LOOPED KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
-1EE98;ARABIC MATHEMATICAL LOOPED THAL;Lo;0;AL;<font> 0630;;;;N;;;;;
-1EE99;ARABIC MATHEMATICAL LOOPED DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
-1EE9A;ARABIC MATHEMATICAL LOOPED ZAH;Lo;0;AL;<font> 0638;;;;N;;;;;
-1EE9B;ARABIC MATHEMATICAL LOOPED GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
-1EEA1;ARABIC MATHEMATICAL DOUBLE-STRUCK BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
-1EEA2;ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
-1EEA3;ARABIC MATHEMATICAL DOUBLE-STRUCK DAL;Lo;0;AL;<font> 062F;;;;N;;;;;
-1EEA5;ARABIC MATHEMATICAL DOUBLE-STRUCK WAW;Lo;0;AL;<font> 0648;;;;N;;;;;
-1EEA6;ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN;Lo;0;AL;<font> 0632;;;;N;;;;;
-1EEA7;ARABIC MATHEMATICAL DOUBLE-STRUCK HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
-1EEA8;ARABIC MATHEMATICAL DOUBLE-STRUCK TAH;Lo;0;AL;<font> 0637;;;;N;;;;;
-1EEA9;ARABIC MATHEMATICAL DOUBLE-STRUCK YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
-1EEAB;ARABIC MATHEMATICAL DOUBLE-STRUCK LAM;Lo;0;AL;<font> 0644;;;;N;;;;;
-1EEAC;ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM;Lo;0;AL;<font> 0645;;;;N;;;;;
-1EEAD;ARABIC MATHEMATICAL DOUBLE-STRUCK NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
-1EEAE;ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
-1EEAF;ARABIC MATHEMATICAL DOUBLE-STRUCK AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
-1EEB0;ARABIC MATHEMATICAL DOUBLE-STRUCK FEH;Lo;0;AL;<font> 0641;;;;N;;;;;
-1EEB1;ARABIC MATHEMATICAL DOUBLE-STRUCK SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
-1EEB2;ARABIC MATHEMATICAL DOUBLE-STRUCK QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
-1EEB3;ARABIC MATHEMATICAL DOUBLE-STRUCK REH;Lo;0;AL;<font> 0631;;;;N;;;;;
-1EEB4;ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
-1EEB5;ARABIC MATHEMATICAL DOUBLE-STRUCK TEH;Lo;0;AL;<font> 062A;;;;N;;;;;
-1EEB6;ARABIC MATHEMATICAL DOUBLE-STRUCK THEH;Lo;0;AL;<font> 062B;;;;N;;;;;
-1EEB7;ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
-1EEB8;ARABIC MATHEMATICAL DOUBLE-STRUCK THAL;Lo;0;AL;<font> 0630;;;;N;;;;;
-1EEB9;ARABIC MATHEMATICAL DOUBLE-STRUCK DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
-1EEBA;ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH;Lo;0;AL;<font> 0638;;;;N;;;;;
-1EEBB;ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
-1EEF0;ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL;Sm;0;ON;;;;;N;;;;;
-1EEF1;ARABIC MATHEMATICAL OPERATOR HAH WITH DAL;Sm;0;ON;;;;;N;;;;;
-1F000;MAHJONG TILE EAST WIND;So;0;ON;;;;;N;;;;;
-1F001;MAHJONG TILE SOUTH WIND;So;0;ON;;;;;N;;;;;
-1F002;MAHJONG TILE WEST WIND;So;0;ON;;;;;N;;;;;
-1F003;MAHJONG TILE NORTH WIND;So;0;ON;;;;;N;;;;;
-1F004;MAHJONG TILE RED DRAGON;So;0;ON;;;;;N;;;;;
-1F005;MAHJONG TILE GREEN DRAGON;So;0;ON;;;;;N;;;;;
-1F006;MAHJONG TILE WHITE DRAGON;So;0;ON;;;;;N;;;;;
-1F007;MAHJONG TILE ONE OF CHARACTERS;So;0;ON;;;;;N;;;;;
-1F008;MAHJONG TILE TWO OF CHARACTERS;So;0;ON;;;;;N;;;;;
-1F009;MAHJONG TILE THREE OF CHARACTERS;So;0;ON;;;;;N;;;;;
-1F00A;MAHJONG TILE FOUR OF CHARACTERS;So;0;ON;;;;;N;;;;;
-1F00B;MAHJONG TILE FIVE OF CHARACTERS;So;0;ON;;;;;N;;;;;
-1F00C;MAHJONG TILE SIX OF CHARACTERS;So;0;ON;;;;;N;;;;;
-1F00D;MAHJONG TILE SEVEN OF CHARACTERS;So;0;ON;;;;;N;;;;;
-1F00E;MAHJONG TILE EIGHT OF CHARACTERS;So;0;ON;;;;;N;;;;;
-1F00F;MAHJONG TILE NINE OF CHARACTERS;So;0;ON;;;;;N;;;;;
-1F010;MAHJONG TILE ONE OF BAMBOOS;So;0;ON;;;;;N;;;;;
-1F011;MAHJONG TILE TWO OF BAMBOOS;So;0;ON;;;;;N;;;;;
-1F012;MAHJONG TILE THREE OF BAMBOOS;So;0;ON;;;;;N;;;;;
-1F013;MAHJONG TILE FOUR OF BAMBOOS;So;0;ON;;;;;N;;;;;
-1F014;MAHJONG TILE FIVE OF BAMBOOS;So;0;ON;;;;;N;;;;;
-1F015;MAHJONG TILE SIX OF BAMBOOS;So;0;ON;;;;;N;;;;;
-1F016;MAHJONG TILE SEVEN OF BAMBOOS;So;0;ON;;;;;N;;;;;
-1F017;MAHJONG TILE EIGHT OF BAMBOOS;So;0;ON;;;;;N;;;;;
-1F018;MAHJONG TILE NINE OF BAMBOOS;So;0;ON;;;;;N;;;;;
-1F019;MAHJONG TILE ONE OF CIRCLES;So;0;ON;;;;;N;;;;;
-1F01A;MAHJONG TILE TWO OF CIRCLES;So;0;ON;;;;;N;;;;;
-1F01B;MAHJONG TILE THREE OF CIRCLES;So;0;ON;;;;;N;;;;;
-1F01C;MAHJONG TILE FOUR OF CIRCLES;So;0;ON;;;;;N;;;;;
-1F01D;MAHJONG TILE FIVE OF CIRCLES;So;0;ON;;;;;N;;;;;
-1F01E;MAHJONG TILE SIX OF CIRCLES;So;0;ON;;;;;N;;;;;
-1F01F;MAHJONG TILE SEVEN OF CIRCLES;So;0;ON;;;;;N;;;;;
-1F020;MAHJONG TILE EIGHT OF CIRCLES;So;0;ON;;;;;N;;;;;
-1F021;MAHJONG TILE NINE OF CIRCLES;So;0;ON;;;;;N;;;;;
-1F022;MAHJONG TILE PLUM;So;0;ON;;;;;N;;;;;
-1F023;MAHJONG TILE ORCHID;So;0;ON;;;;;N;;;;;
-1F024;MAHJONG TILE BAMBOO;So;0;ON;;;;;N;;;;;
-1F025;MAHJONG TILE CHRYSANTHEMUM;So;0;ON;;;;;N;;;;;
-1F026;MAHJONG TILE SPRING;So;0;ON;;;;;N;;;;;
-1F027;MAHJONG TILE SUMMER;So;0;ON;;;;;N;;;;;
-1F028;MAHJONG TILE AUTUMN;So;0;ON;;;;;N;;;;;
-1F029;MAHJONG TILE WINTER;So;0;ON;;;;;N;;;;;
-1F02A;MAHJONG TILE JOKER;So;0;ON;;;;;N;;;;;
-1F02B;MAHJONG TILE BACK;So;0;ON;;;;;N;;;;;
-1F030;DOMINO TILE HORIZONTAL BACK;So;0;ON;;;;;N;;;;;
-1F031;DOMINO TILE HORIZONTAL-00-00;So;0;ON;;;;;N;;;;;
-1F032;DOMINO TILE HORIZONTAL-00-01;So;0;ON;;;;;N;;;;;
-1F033;DOMINO TILE HORIZONTAL-00-02;So;0;ON;;;;;N;;;;;
-1F034;DOMINO TILE HORIZONTAL-00-03;So;0;ON;;;;;N;;;;;
-1F035;DOMINO TILE HORIZONTAL-00-04;So;0;ON;;;;;N;;;;;
-1F036;DOMINO TILE HORIZONTAL-00-05;So;0;ON;;;;;N;;;;;
-1F037;DOMINO TILE HORIZONTAL-00-06;So;0;ON;;;;;N;;;;;
-1F038;DOMINO TILE HORIZONTAL-01-00;So;0;ON;;;;;N;;;;;
-1F039;DOMINO TILE HORIZONTAL-01-01;So;0;ON;;;;;N;;;;;
-1F03A;DOMINO TILE HORIZONTAL-01-02;So;0;ON;;;;;N;;;;;
-1F03B;DOMINO TILE HORIZONTAL-01-03;So;0;ON;;;;;N;;;;;
-1F03C;DOMINO TILE HORIZONTAL-01-04;So;0;ON;;;;;N;;;;;
-1F03D;DOMINO TILE HORIZONTAL-01-05;So;0;ON;;;;;N;;;;;
-1F03E;DOMINO TILE HORIZONTAL-01-06;So;0;ON;;;;;N;;;;;
-1F03F;DOMINO TILE HORIZONTAL-02-00;So;0;ON;;;;;N;;;;;
-1F040;DOMINO TILE HORIZONTAL-02-01;So;0;ON;;;;;N;;;;;
-1F041;DOMINO TILE HORIZONTAL-02-02;So;0;ON;;;;;N;;;;;
-1F042;DOMINO TILE HORIZONTAL-02-03;So;0;ON;;;;;N;;;;;
-1F043;DOMINO TILE HORIZONTAL-02-04;So;0;ON;;;;;N;;;;;
-1F044;DOMINO TILE HORIZONTAL-02-05;So;0;ON;;;;;N;;;;;
-1F045;DOMINO TILE HORIZONTAL-02-06;So;0;ON;;;;;N;;;;;
-1F046;DOMINO TILE HORIZONTAL-03-00;So;0;ON;;;;;N;;;;;
-1F047;DOMINO TILE HORIZONTAL-03-01;So;0;ON;;;;;N;;;;;
-1F048;DOMINO TILE HORIZONTAL-03-02;So;0;ON;;;;;N;;;;;
-1F049;DOMINO TILE HORIZONTAL-03-03;So;0;ON;;;;;N;;;;;
-1F04A;DOMINO TILE HORIZONTAL-03-04;So;0;ON;;;;;N;;;;;
-1F04B;DOMINO TILE HORIZONTAL-03-05;So;0;ON;;;;;N;;;;;
-1F04C;DOMINO TILE HORIZONTAL-03-06;So;0;ON;;;;;N;;;;;
-1F04D;DOMINO TILE HORIZONTAL-04-00;So;0;ON;;;;;N;;;;;
-1F04E;DOMINO TILE HORIZONTAL-04-01;So;0;ON;;;;;N;;;;;
-1F04F;DOMINO TILE HORIZONTAL-04-02;So;0;ON;;;;;N;;;;;
-1F050;DOMINO TILE HORIZONTAL-04-03;So;0;ON;;;;;N;;;;;
-1F051;DOMINO TILE HORIZONTAL-04-04;So;0;ON;;;;;N;;;;;
-1F052;DOMINO TILE HORIZONTAL-04-05;So;0;ON;;;;;N;;;;;
-1F053;DOMINO TILE HORIZONTAL-04-06;So;0;ON;;;;;N;;;;;
-1F054;DOMINO TILE HORIZONTAL-05-00;So;0;ON;;;;;N;;;;;
-1F055;DOMINO TILE HORIZONTAL-05-01;So;0;ON;;;;;N;;;;;
-1F056;DOMINO TILE HORIZONTAL-05-02;So;0;ON;;;;;N;;;;;
-1F057;DOMINO TILE HORIZONTAL-05-03;So;0;ON;;;;;N;;;;;
-1F058;DOMINO TILE HORIZONTAL-05-04;So;0;ON;;;;;N;;;;;
-1F059;DOMINO TILE HORIZONTAL-05-05;So;0;ON;;;;;N;;;;;
-1F05A;DOMINO TILE HORIZONTAL-05-06;So;0;ON;;;;;N;;;;;
-1F05B;DOMINO TILE HORIZONTAL-06-00;So;0;ON;;;;;N;;;;;
-1F05C;DOMINO TILE HORIZONTAL-06-01;So;0;ON;;;;;N;;;;;
-1F05D;DOMINO TILE HORIZONTAL-06-02;So;0;ON;;;;;N;;;;;
-1F05E;DOMINO TILE HORIZONTAL-06-03;So;0;ON;;;;;N;;;;;
-1F05F;DOMINO TILE HORIZONTAL-06-04;So;0;ON;;;;;N;;;;;
-1F060;DOMINO TILE HORIZONTAL-06-05;So;0;ON;;;;;N;;;;;
-1F061;DOMINO TILE HORIZONTAL-06-06;So;0;ON;;;;;N;;;;;
-1F062;DOMINO TILE VERTICAL BACK;So;0;ON;;;;;N;;;;;
-1F063;DOMINO TILE VERTICAL-00-00;So;0;ON;;;;;N;;;;;
-1F064;DOMINO TILE VERTICAL-00-01;So;0;ON;;;;;N;;;;;
-1F065;DOMINO TILE VERTICAL-00-02;So;0;ON;;;;;N;;;;;
-1F066;DOMINO TILE VERTICAL-00-03;So;0;ON;;;;;N;;;;;
-1F067;DOMINO TILE VERTICAL-00-04;So;0;ON;;;;;N;;;;;
-1F068;DOMINO TILE VERTICAL-00-05;So;0;ON;;;;;N;;;;;
-1F069;DOMINO TILE VERTICAL-00-06;So;0;ON;;;;;N;;;;;
-1F06A;DOMINO TILE VERTICAL-01-00;So;0;ON;;;;;N;;;;;
-1F06B;DOMINO TILE VERTICAL-01-01;So;0;ON;;;;;N;;;;;
-1F06C;DOMINO TILE VERTICAL-01-02;So;0;ON;;;;;N;;;;;
-1F06D;DOMINO TILE VERTICAL-01-03;So;0;ON;;;;;N;;;;;
-1F06E;DOMINO TILE VERTICAL-01-04;So;0;ON;;;;;N;;;;;
-1F06F;DOMINO TILE VERTICAL-01-05;So;0;ON;;;;;N;;;;;
-1F070;DOMINO TILE VERTICAL-01-06;So;0;ON;;;;;N;;;;;
-1F071;DOMINO TILE VERTICAL-02-00;So;0;ON;;;;;N;;;;;
-1F072;DOMINO TILE VERTICAL-02-01;So;0;ON;;;;;N;;;;;
-1F073;DOMINO TILE VERTICAL-02-02;So;0;ON;;;;;N;;;;;
-1F074;DOMINO TILE VERTICAL-02-03;So;0;ON;;;;;N;;;;;
-1F075;DOMINO TILE VERTICAL-02-04;So;0;ON;;;;;N;;;;;
-1F076;DOMINO TILE VERTICAL-02-05;So;0;ON;;;;;N;;;;;
-1F077;DOMINO TILE VERTICAL-02-06;So;0;ON;;;;;N;;;;;
-1F078;DOMINO TILE VERTICAL-03-00;So;0;ON;;;;;N;;;;;
-1F079;DOMINO TILE VERTICAL-03-01;So;0;ON;;;;;N;;;;;
-1F07A;DOMINO TILE VERTICAL-03-02;So;0;ON;;;;;N;;;;;
-1F07B;DOMINO TILE VERTICAL-03-03;So;0;ON;;;;;N;;;;;
-1F07C;DOMINO TILE VERTICAL-03-04;So;0;ON;;;;;N;;;;;
-1F07D;DOMINO TILE VERTICAL-03-05;So;0;ON;;;;;N;;;;;
-1F07E;DOMINO TILE VERTICAL-03-06;So;0;ON;;;;;N;;;;;
-1F07F;DOMINO TILE VERTICAL-04-00;So;0;ON;;;;;N;;;;;
-1F080;DOMINO TILE VERTICAL-04-01;So;0;ON;;;;;N;;;;;
-1F081;DOMINO TILE VERTICAL-04-02;So;0;ON;;;;;N;;;;;
-1F082;DOMINO TILE VERTICAL-04-03;So;0;ON;;;;;N;;;;;
-1F083;DOMINO TILE VERTICAL-04-04;So;0;ON;;;;;N;;;;;
-1F084;DOMINO TILE VERTICAL-04-05;So;0;ON;;;;;N;;;;;
-1F085;DOMINO TILE VERTICAL-04-06;So;0;ON;;;;;N;;;;;
-1F086;DOMINO TILE VERTICAL-05-00;So;0;ON;;;;;N;;;;;
-1F087;DOMINO TILE VERTICAL-05-01;So;0;ON;;;;;N;;;;;
-1F088;DOMINO TILE VERTICAL-05-02;So;0;ON;;;;;N;;;;;
-1F089;DOMINO TILE VERTICAL-05-03;So;0;ON;;;;;N;;;;;
-1F08A;DOMINO TILE VERTICAL-05-04;So;0;ON;;;;;N;;;;;
-1F08B;DOMINO TILE VERTICAL-05-05;So;0;ON;;;;;N;;;;;
-1F08C;DOMINO TILE VERTICAL-05-06;So;0;ON;;;;;N;;;;;
-1F08D;DOMINO TILE VERTICAL-06-00;So;0;ON;;;;;N;;;;;
-1F08E;DOMINO TILE VERTICAL-06-01;So;0;ON;;;;;N;;;;;
-1F08F;DOMINO TILE VERTICAL-06-02;So;0;ON;;;;;N;;;;;
-1F090;DOMINO TILE VERTICAL-06-03;So;0;ON;;;;;N;;;;;
-1F091;DOMINO TILE VERTICAL-06-04;So;0;ON;;;;;N;;;;;
-1F092;DOMINO TILE VERTICAL-06-05;So;0;ON;;;;;N;;;;;
-1F093;DOMINO TILE VERTICAL-06-06;So;0;ON;;;;;N;;;;;
-1F0A0;PLAYING CARD BACK;So;0;ON;;;;;N;;;;;
-1F0A1;PLAYING CARD ACE OF SPADES;So;0;ON;;;;;N;;;;;
-1F0A2;PLAYING CARD TWO OF SPADES;So;0;ON;;;;;N;;;;;
-1F0A3;PLAYING CARD THREE OF SPADES;So;0;ON;;;;;N;;;;;
-1F0A4;PLAYING CARD FOUR OF SPADES;So;0;ON;;;;;N;;;;;
-1F0A5;PLAYING CARD FIVE OF SPADES;So;0;ON;;;;;N;;;;;
-1F0A6;PLAYING CARD SIX OF SPADES;So;0;ON;;;;;N;;;;;
-1F0A7;PLAYING CARD SEVEN OF SPADES;So;0;ON;;;;;N;;;;;
-1F0A8;PLAYING CARD EIGHT OF SPADES;So;0;ON;;;;;N;;;;;
-1F0A9;PLAYING CARD NINE OF SPADES;So;0;ON;;;;;N;;;;;
-1F0AA;PLAYING CARD TEN OF SPADES;So;0;ON;;;;;N;;;;;
-1F0AB;PLAYING CARD JACK OF SPADES;So;0;ON;;;;;N;;;;;
-1F0AC;PLAYING CARD KNIGHT OF SPADES;So;0;ON;;;;;N;;;;;
-1F0AD;PLAYING CARD QUEEN OF SPADES;So;0;ON;;;;;N;;;;;
-1F0AE;PLAYING CARD KING OF SPADES;So;0;ON;;;;;N;;;;;
-1F0B1;PLAYING CARD ACE OF HEARTS;So;0;ON;;;;;N;;;;;
-1F0B2;PLAYING CARD TWO OF HEARTS;So;0;ON;;;;;N;;;;;
-1F0B3;PLAYING CARD THREE OF HEARTS;So;0;ON;;;;;N;;;;;
-1F0B4;PLAYING CARD FOUR OF HEARTS;So;0;ON;;;;;N;;;;;
-1F0B5;PLAYING CARD FIVE OF HEARTS;So;0;ON;;;;;N;;;;;
-1F0B6;PLAYING CARD SIX OF HEARTS;So;0;ON;;;;;N;;;;;
-1F0B7;PLAYING CARD SEVEN OF HEARTS;So;0;ON;;;;;N;;;;;
-1F0B8;PLAYING CARD EIGHT OF HEARTS;So;0;ON;;;;;N;;;;;
-1F0B9;PLAYING CARD NINE OF HEARTS;So;0;ON;;;;;N;;;;;
-1F0BA;PLAYING CARD TEN OF HEARTS;So;0;ON;;;;;N;;;;;
-1F0BB;PLAYING CARD JACK OF HEARTS;So;0;ON;;;;;N;;;;;
-1F0BC;PLAYING CARD KNIGHT OF HEARTS;So;0;ON;;;;;N;;;;;
-1F0BD;PLAYING CARD QUEEN OF HEARTS;So;0;ON;;;;;N;;;;;
-1F0BE;PLAYING CARD KING OF HEARTS;So;0;ON;;;;;N;;;;;
-1F0C1;PLAYING CARD ACE OF DIAMONDS;So;0;ON;;;;;N;;;;;
-1F0C2;PLAYING CARD TWO OF DIAMONDS;So;0;ON;;;;;N;;;;;
-1F0C3;PLAYING CARD THREE OF DIAMONDS;So;0;ON;;;;;N;;;;;
-1F0C4;PLAYING CARD FOUR OF DIAMONDS;So;0;ON;;;;;N;;;;;
-1F0C5;PLAYING CARD FIVE OF DIAMONDS;So;0;ON;;;;;N;;;;;
-1F0C6;PLAYING CARD SIX OF DIAMONDS;So;0;ON;;;;;N;;;;;
-1F0C7;PLAYING CARD SEVEN OF DIAMONDS;So;0;ON;;;;;N;;;;;
-1F0C8;PLAYING CARD EIGHT OF DIAMONDS;So;0;ON;;;;;N;;;;;
-1F0C9;PLAYING CARD NINE OF DIAMONDS;So;0;ON;;;;;N;;;;;
-1F0CA;PLAYING CARD TEN OF DIAMONDS;So;0;ON;;;;;N;;;;;
-1F0CB;PLAYING CARD JACK OF DIAMONDS;So;0;ON;;;;;N;;;;;
-1F0CC;PLAYING CARD KNIGHT OF DIAMONDS;So;0;ON;;;;;N;;;;;
-1F0CD;PLAYING CARD QUEEN OF DIAMONDS;So;0;ON;;;;;N;;;;;
-1F0CE;PLAYING CARD KING OF DIAMONDS;So;0;ON;;;;;N;;;;;
-1F0CF;PLAYING CARD BLACK JOKER;So;0;ON;;;;;N;;;;;
-1F0D1;PLAYING CARD ACE OF CLUBS;So;0;ON;;;;;N;;;;;
-1F0D2;PLAYING CARD TWO OF CLUBS;So;0;ON;;;;;N;;;;;
-1F0D3;PLAYING CARD THREE OF CLUBS;So;0;ON;;;;;N;;;;;
-1F0D4;PLAYING CARD FOUR OF CLUBS;So;0;ON;;;;;N;;;;;
-1F0D5;PLAYING CARD FIVE OF CLUBS;So;0;ON;;;;;N;;;;;
-1F0D6;PLAYING CARD SIX OF CLUBS;So;0;ON;;;;;N;;;;;
-1F0D7;PLAYING CARD SEVEN OF CLUBS;So;0;ON;;;;;N;;;;;
-1F0D8;PLAYING CARD EIGHT OF CLUBS;So;0;ON;;;;;N;;;;;
-1F0D9;PLAYING CARD NINE OF CLUBS;So;0;ON;;;;;N;;;;;
-1F0DA;PLAYING CARD TEN OF CLUBS;So;0;ON;;;;;N;;;;;
-1F0DB;PLAYING CARD JACK OF CLUBS;So;0;ON;;;;;N;;;;;
-1F0DC;PLAYING CARD KNIGHT OF CLUBS;So;0;ON;;;;;N;;;;;
-1F0DD;PLAYING CARD QUEEN OF CLUBS;So;0;ON;;;;;N;;;;;
-1F0DE;PLAYING CARD KING OF CLUBS;So;0;ON;;;;;N;;;;;
-1F0DF;PLAYING CARD WHITE JOKER;So;0;ON;;;;;N;;;;;
-1F100;DIGIT ZERO FULL STOP;No;0;EN;<compat> 0030 002E;;0;0;N;;;;;
-1F101;DIGIT ZERO COMMA;No;0;EN;<compat> 0030 002C;;0;0;N;;;;;
-1F102;DIGIT ONE COMMA;No;0;EN;<compat> 0031 002C;;1;1;N;;;;;
-1F103;DIGIT TWO COMMA;No;0;EN;<compat> 0032 002C;;2;2;N;;;;;
-1F104;DIGIT THREE COMMA;No;0;EN;<compat> 0033 002C;;3;3;N;;;;;
-1F105;DIGIT FOUR COMMA;No;0;EN;<compat> 0034 002C;;4;4;N;;;;;
-1F106;DIGIT FIVE COMMA;No;0;EN;<compat> 0035 002C;;5;5;N;;;;;
-1F107;DIGIT SIX COMMA;No;0;EN;<compat> 0036 002C;;6;6;N;;;;;
-1F108;DIGIT SEVEN COMMA;No;0;EN;<compat> 0037 002C;;7;7;N;;;;;
-1F109;DIGIT EIGHT COMMA;No;0;EN;<compat> 0038 002C;;8;8;N;;;;;
-1F10A;DIGIT NINE COMMA;No;0;EN;<compat> 0039 002C;;9;9;N;;;;;
-1F110;PARENTHESIZED LATIN CAPITAL LETTER A;So;0;L;<compat> 0028 0041 0029;;;;N;;;;;
-1F111;PARENTHESIZED LATIN CAPITAL LETTER B;So;0;L;<compat> 0028 0042 0029;;;;N;;;;;
-1F112;PARENTHESIZED LATIN CAPITAL LETTER C;So;0;L;<compat> 0028 0043 0029;;;;N;;;;;
-1F113;PARENTHESIZED LATIN CAPITAL LETTER D;So;0;L;<compat> 0028 0044 0029;;;;N;;;;;
-1F114;PARENTHESIZED LATIN CAPITAL LETTER E;So;0;L;<compat> 0028 0045 0029;;;;N;;;;;
-1F115;PARENTHESIZED LATIN CAPITAL LETTER F;So;0;L;<compat> 0028 0046 0029;;;;N;;;;;
-1F116;PARENTHESIZED LATIN CAPITAL LETTER G;So;0;L;<compat> 0028 0047 0029;;;;N;;;;;
-1F117;PARENTHESIZED LATIN CAPITAL LETTER H;So;0;L;<compat> 0028 0048 0029;;;;N;;;;;
-1F118;PARENTHESIZED LATIN CAPITAL LETTER I;So;0;L;<compat> 0028 0049 0029;;;;N;;;;;
-1F119;PARENTHESIZED LATIN CAPITAL LETTER J;So;0;L;<compat> 0028 004A 0029;;;;N;;;;;
-1F11A;PARENTHESIZED LATIN CAPITAL LETTER K;So;0;L;<compat> 0028 004B 0029;;;;N;;;;;
-1F11B;PARENTHESIZED LATIN CAPITAL LETTER L;So;0;L;<compat> 0028 004C 0029;;;;N;;;;;
-1F11C;PARENTHESIZED LATIN CAPITAL LETTER M;So;0;L;<compat> 0028 004D 0029;;;;N;;;;;
-1F11D;PARENTHESIZED LATIN CAPITAL LETTER N;So;0;L;<compat> 0028 004E 0029;;;;N;;;;;
-1F11E;PARENTHESIZED LATIN CAPITAL LETTER O;So;0;L;<compat> 0028 004F 0029;;;;N;;;;;
-1F11F;PARENTHESIZED LATIN CAPITAL LETTER P;So;0;L;<compat> 0028 0050 0029;;;;N;;;;;
-1F120;PARENTHESIZED LATIN CAPITAL LETTER Q;So;0;L;<compat> 0028 0051 0029;;;;N;;;;;
-1F121;PARENTHESIZED LATIN CAPITAL LETTER R;So;0;L;<compat> 0028 0052 0029;;;;N;;;;;
-1F122;PARENTHESIZED LATIN CAPITAL LETTER S;So;0;L;<compat> 0028 0053 0029;;;;N;;;;;
-1F123;PARENTHESIZED LATIN CAPITAL LETTER T;So;0;L;<compat> 0028 0054 0029;;;;N;;;;;
-1F124;PARENTHESIZED LATIN CAPITAL LETTER U;So;0;L;<compat> 0028 0055 0029;;;;N;;;;;
-1F125;PARENTHESIZED LATIN CAPITAL LETTER V;So;0;L;<compat> 0028 0056 0029;;;;N;;;;;
-1F126;PARENTHESIZED LATIN CAPITAL LETTER W;So;0;L;<compat> 0028 0057 0029;;;;N;;;;;
-1F127;PARENTHESIZED LATIN CAPITAL LETTER X;So;0;L;<compat> 0028 0058 0029;;;;N;;;;;
-1F128;PARENTHESIZED LATIN CAPITAL LETTER Y;So;0;L;<compat> 0028 0059 0029;;;;N;;;;;
-1F129;PARENTHESIZED LATIN CAPITAL LETTER Z;So;0;L;<compat> 0028 005A 0029;;;;N;;;;;
-1F12A;TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S;So;0;L;<compat> 3014 0053 3015;;;;N;;;;;
-1F12B;CIRCLED ITALIC LATIN CAPITAL LETTER C;So;0;L;<circle> 0043;;;;N;;;;;
-1F12C;CIRCLED ITALIC LATIN CAPITAL LETTER R;So;0;L;<circle> 0052;;;;N;;;;;
-1F12D;CIRCLED CD;So;0;L;<circle> 0043 0044;;;;N;;;;;
-1F12E;CIRCLED WZ;So;0;L;<circle> 0057 005A;;;;N;;;;;
-1F130;SQUARED LATIN CAPITAL LETTER A;So;0;L;<square> 0041;;;;N;;;;;
-1F131;SQUARED LATIN CAPITAL LETTER B;So;0;L;<square> 0042;;;;N;;;;;
-1F132;SQUARED LATIN CAPITAL LETTER C;So;0;L;<square> 0043;;;;N;;;;;
-1F133;SQUARED LATIN CAPITAL LETTER D;So;0;L;<square> 0044;;;;N;;;;;
-1F134;SQUARED LATIN CAPITAL LETTER E;So;0;L;<square> 0045;;;;N;;;;;
-1F135;SQUARED LATIN CAPITAL LETTER F;So;0;L;<square> 0046;;;;N;;;;;
-1F136;SQUARED LATIN CAPITAL LETTER G;So;0;L;<square> 0047;;;;N;;;;;
-1F137;SQUARED LATIN CAPITAL LETTER H;So;0;L;<square> 0048;;;;N;;;;;
-1F138;SQUARED LATIN CAPITAL LETTER I;So;0;L;<square> 0049;;;;N;;;;;
-1F139;SQUARED LATIN CAPITAL LETTER J;So;0;L;<square> 004A;;;;N;;;;;
-1F13A;SQUARED LATIN CAPITAL LETTER K;So;0;L;<square> 004B;;;;N;;;;;
-1F13B;SQUARED LATIN CAPITAL LETTER L;So;0;L;<square> 004C;;;;N;;;;;
-1F13C;SQUARED LATIN CAPITAL LETTER M;So;0;L;<square> 004D;;;;N;;;;;
-1F13D;SQUARED LATIN CAPITAL LETTER N;So;0;L;<square> 004E;;;;N;;;;;
-1F13E;SQUARED LATIN CAPITAL LETTER O;So;0;L;<square> 004F;;;;N;;;;;
-1F13F;SQUARED LATIN CAPITAL LETTER P;So;0;L;<square> 0050;;;;N;;;;;
-1F140;SQUARED LATIN CAPITAL LETTER Q;So;0;L;<square> 0051;;;;N;;;;;
-1F141;SQUARED LATIN CAPITAL LETTER R;So;0;L;<square> 0052;;;;N;;;;;
-1F142;SQUARED LATIN CAPITAL LETTER S;So;0;L;<square> 0053;;;;N;;;;;
-1F143;SQUARED LATIN CAPITAL LETTER T;So;0;L;<square> 0054;;;;N;;;;;
-1F144;SQUARED LATIN CAPITAL LETTER U;So;0;L;<square> 0055;;;;N;;;;;
-1F145;SQUARED LATIN CAPITAL LETTER V;So;0;L;<square> 0056;;;;N;;;;;
-1F146;SQUARED LATIN CAPITAL LETTER W;So;0;L;<square> 0057;;;;N;;;;;
-1F147;SQUARED LATIN CAPITAL LETTER X;So;0;L;<square> 0058;;;;N;;;;;
-1F148;SQUARED LATIN CAPITAL LETTER Y;So;0;L;<square> 0059;;;;N;;;;;
-1F149;SQUARED LATIN CAPITAL LETTER Z;So;0;L;<square> 005A;;;;N;;;;;
-1F14A;SQUARED HV;So;0;L;<square> 0048 0056;;;;N;;;;;
-1F14B;SQUARED MV;So;0;L;<square> 004D 0056;;;;N;;;;;
-1F14C;SQUARED SD;So;0;L;<square> 0053 0044;;;;N;;;;;
-1F14D;SQUARED SS;So;0;L;<square> 0053 0053;;;;N;;;;;
-1F14E;SQUARED PPV;So;0;L;<square> 0050 0050 0056;;;;N;;;;;
-1F14F;SQUARED WC;So;0;L;<square> 0057 0043;;;;N;;;;;
-1F150;NEGATIVE CIRCLED LATIN CAPITAL LETTER A;So;0;L;;;;;N;;;;;
-1F151;NEGATIVE CIRCLED LATIN CAPITAL LETTER B;So;0;L;;;;;N;;;;;
-1F152;NEGATIVE CIRCLED LATIN CAPITAL LETTER C;So;0;L;;;;;N;;;;;
-1F153;NEGATIVE CIRCLED LATIN CAPITAL LETTER D;So;0;L;;;;;N;;;;;
-1F154;NEGATIVE CIRCLED LATIN CAPITAL LETTER E;So;0;L;;;;;N;;;;;
-1F155;NEGATIVE CIRCLED LATIN CAPITAL LETTER F;So;0;L;;;;;N;;;;;
-1F156;NEGATIVE CIRCLED LATIN CAPITAL LETTER G;So;0;L;;;;;N;;;;;
-1F157;NEGATIVE CIRCLED LATIN CAPITAL LETTER H;So;0;L;;;;;N;;;;;
-1F158;NEGATIVE CIRCLED LATIN CAPITAL LETTER I;So;0;L;;;;;N;;;;;
-1F159;NEGATIVE CIRCLED LATIN CAPITAL LETTER J;So;0;L;;;;;N;;;;;
-1F15A;NEGATIVE CIRCLED LATIN CAPITAL LETTER K;So;0;L;;;;;N;;;;;
-1F15B;NEGATIVE CIRCLED LATIN CAPITAL LETTER L;So;0;L;;;;;N;;;;;
-1F15C;NEGATIVE CIRCLED LATIN CAPITAL LETTER M;So;0;L;;;;;N;;;;;
-1F15D;NEGATIVE CIRCLED LATIN CAPITAL LETTER N;So;0;L;;;;;N;;;;;
-1F15E;NEGATIVE CIRCLED LATIN CAPITAL LETTER O;So;0;L;;;;;N;;;;;
-1F15F;NEGATIVE CIRCLED LATIN CAPITAL LETTER P;So;0;L;;;;;N;;;;;
-1F160;NEGATIVE CIRCLED LATIN CAPITAL LETTER Q;So;0;L;;;;;N;;;;;
-1F161;NEGATIVE CIRCLED LATIN CAPITAL LETTER R;So;0;L;;;;;N;;;;;
-1F162;NEGATIVE CIRCLED LATIN CAPITAL LETTER S;So;0;L;;;;;N;;;;;
-1F163;NEGATIVE CIRCLED LATIN CAPITAL LETTER T;So;0;L;;;;;N;;;;;
-1F164;NEGATIVE CIRCLED LATIN CAPITAL LETTER U;So;0;L;;;;;N;;;;;
-1F165;NEGATIVE CIRCLED LATIN CAPITAL LETTER V;So;0;L;;;;;N;;;;;
-1F166;NEGATIVE CIRCLED LATIN CAPITAL LETTER W;So;0;L;;;;;N;;;;;
-1F167;NEGATIVE CIRCLED LATIN CAPITAL LETTER X;So;0;L;;;;;N;;;;;
-1F168;NEGATIVE CIRCLED LATIN CAPITAL LETTER Y;So;0;L;;;;;N;;;;;
-1F169;NEGATIVE CIRCLED LATIN CAPITAL LETTER Z;So;0;L;;;;;N;;;;;
-1F16A;RAISED MC SIGN;So;0;ON;<super> 004D 0043;;;;N;;;;;
-1F16B;RAISED MD SIGN;So;0;ON;<super> 004D 0044;;;;N;;;;;
-1F170;NEGATIVE SQUARED LATIN CAPITAL LETTER A;So;0;L;;;;;N;;;;;
-1F171;NEGATIVE SQUARED LATIN CAPITAL LETTER B;So;0;L;;;;;N;;;;;
-1F172;NEGATIVE SQUARED LATIN CAPITAL LETTER C;So;0;L;;;;;N;;;;;
-1F173;NEGATIVE SQUARED LATIN CAPITAL LETTER D;So;0;L;;;;;N;;;;;
-1F174;NEGATIVE SQUARED LATIN CAPITAL LETTER E;So;0;L;;;;;N;;;;;
-1F175;NEGATIVE SQUARED LATIN CAPITAL LETTER F;So;0;L;;;;;N;;;;;
-1F176;NEGATIVE SQUARED LATIN CAPITAL LETTER G;So;0;L;;;;;N;;;;;
-1F177;NEGATIVE SQUARED LATIN CAPITAL LETTER H;So;0;L;;;;;N;;;;;
-1F178;NEGATIVE SQUARED LATIN CAPITAL LETTER I;So;0;L;;;;;N;;;;;
-1F179;NEGATIVE SQUARED LATIN CAPITAL LETTER J;So;0;L;;;;;N;;;;;
-1F17A;NEGATIVE SQUARED LATIN CAPITAL LETTER K;So;0;L;;;;;N;;;;;
-1F17B;NEGATIVE SQUARED LATIN CAPITAL LETTER L;So;0;L;;;;;N;;;;;
-1F17C;NEGATIVE SQUARED LATIN CAPITAL LETTER M;So;0;L;;;;;N;;;;;
-1F17D;NEGATIVE SQUARED LATIN CAPITAL LETTER N;So;0;L;;;;;N;;;;;
-1F17E;NEGATIVE SQUARED LATIN CAPITAL LETTER O;So;0;L;;;;;N;;;;;
-1F17F;NEGATIVE SQUARED LATIN CAPITAL LETTER P;So;0;L;;;;;N;;;;;
-1F180;NEGATIVE SQUARED LATIN CAPITAL LETTER Q;So;0;L;;;;;N;;;;;
-1F181;NEGATIVE SQUARED LATIN CAPITAL LETTER R;So;0;L;;;;;N;;;;;
-1F182;NEGATIVE SQUARED LATIN CAPITAL LETTER S;So;0;L;;;;;N;;;;;
-1F183;NEGATIVE SQUARED LATIN CAPITAL LETTER T;So;0;L;;;;;N;;;;;
-1F184;NEGATIVE SQUARED LATIN CAPITAL LETTER U;So;0;L;;;;;N;;;;;
-1F185;NEGATIVE SQUARED LATIN CAPITAL LETTER V;So;0;L;;;;;N;;;;;
-1F186;NEGATIVE SQUARED LATIN CAPITAL LETTER W;So;0;L;;;;;N;;;;;
-1F187;NEGATIVE SQUARED LATIN CAPITAL LETTER X;So;0;L;;;;;N;;;;;
-1F188;NEGATIVE SQUARED LATIN CAPITAL LETTER Y;So;0;L;;;;;N;;;;;
-1F189;NEGATIVE SQUARED LATIN CAPITAL LETTER Z;So;0;L;;;;;N;;;;;
-1F18A;CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P;So;0;L;;;;;N;;;;;
-1F18B;NEGATIVE SQUARED IC;So;0;L;;;;;N;;;;;
-1F18C;NEGATIVE SQUARED PA;So;0;L;;;;;N;;;;;
-1F18D;NEGATIVE SQUARED SA;So;0;L;;;;;N;;;;;
-1F18E;NEGATIVE SQUARED AB;So;0;L;;;;;N;;;;;
-1F18F;NEGATIVE SQUARED WC;So;0;L;;;;;N;;;;;
-1F190;SQUARE DJ;So;0;L;<square> 0044 004A;;;;N;;;;;
-1F191;SQUARED CL;So;0;L;;;;;N;;;;;
-1F192;SQUARED COOL;So;0;L;;;;;N;;;;;
-1F193;SQUARED FREE;So;0;L;;;;;N;;;;;
-1F194;SQUARED ID;So;0;L;;;;;N;;;;;
-1F195;SQUARED NEW;So;0;L;;;;;N;;;;;
-1F196;SQUARED NG;So;0;L;;;;;N;;;;;
-1F197;SQUARED OK;So;0;L;;;;;N;;;;;
-1F198;SQUARED SOS;So;0;L;;;;;N;;;;;
-1F199;SQUARED UP WITH EXCLAMATION MARK;So;0;L;;;;;N;;;;;
-1F19A;SQUARED VS;So;0;L;;;;;N;;;;;
-1F1E6;REGIONAL INDICATOR SYMBOL LETTER A;So;0;L;;;;;N;;;;;
-1F1E7;REGIONAL INDICATOR SYMBOL LETTER B;So;0;L;;;;;N;;;;;
-1F1E8;REGIONAL INDICATOR SYMBOL LETTER C;So;0;L;;;;;N;;;;;
-1F1E9;REGIONAL INDICATOR SYMBOL LETTER D;So;0;L;;;;;N;;;;;
-1F1EA;REGIONAL INDICATOR SYMBOL LETTER E;So;0;L;;;;;N;;;;;
-1F1EB;REGIONAL INDICATOR SYMBOL LETTER F;So;0;L;;;;;N;;;;;
-1F1EC;REGIONAL INDICATOR SYMBOL LETTER G;So;0;L;;;;;N;;;;;
-1F1ED;REGIONAL INDICATOR SYMBOL LETTER H;So;0;L;;;;;N;;;;;
-1F1EE;REGIONAL INDICATOR SYMBOL LETTER I;So;0;L;;;;;N;;;;;
-1F1EF;REGIONAL INDICATOR SYMBOL LETTER J;So;0;L;;;;;N;;;;;
-1F1F0;REGIONAL INDICATOR SYMBOL LETTER K;So;0;L;;;;;N;;;;;
-1F1F1;REGIONAL INDICATOR SYMBOL LETTER L;So;0;L;;;;;N;;;;;
-1F1F2;REGIONAL INDICATOR SYMBOL LETTER M;So;0;L;;;;;N;;;;;
-1F1F3;REGIONAL INDICATOR SYMBOL LETTER N;So;0;L;;;;;N;;;;;
-1F1F4;REGIONAL INDICATOR SYMBOL LETTER O;So;0;L;;;;;N;;;;;
-1F1F5;REGIONAL INDICATOR SYMBOL LETTER P;So;0;L;;;;;N;;;;;
-1F1F6;REGIONAL INDICATOR SYMBOL LETTER Q;So;0;L;;;;;N;;;;;
-1F1F7;REGIONAL INDICATOR SYMBOL LETTER R;So;0;L;;;;;N;;;;;
-1F1F8;REGIONAL INDICATOR SYMBOL LETTER S;So;0;L;;;;;N;;;;;
-1F1F9;REGIONAL INDICATOR SYMBOL LETTER T;So;0;L;;;;;N;;;;;
-1F1FA;REGIONAL INDICATOR SYMBOL LETTER U;So;0;L;;;;;N;;;;;
-1F1FB;REGIONAL INDICATOR SYMBOL LETTER V;So;0;L;;;;;N;;;;;
-1F1FC;REGIONAL INDICATOR SYMBOL LETTER W;So;0;L;;;;;N;;;;;
-1F1FD;REGIONAL INDICATOR SYMBOL LETTER X;So;0;L;;;;;N;;;;;
-1F1FE;REGIONAL INDICATOR SYMBOL LETTER Y;So;0;L;;;;;N;;;;;
-1F1FF;REGIONAL INDICATOR SYMBOL LETTER Z;So;0;L;;;;;N;;;;;
-1F200;SQUARE HIRAGANA HOKA;So;0;L;<square> 307B 304B;;;;N;;;;;
-1F201;SQUARED KATAKANA KOKO;So;0;L;<square> 30B3 30B3;;;;N;;;;;
-1F202;SQUARED KATAKANA SA;So;0;L;<square> 30B5;;;;N;;;;;
-1F210;SQUARED CJK UNIFIED IDEOGRAPH-624B;So;0;L;<square> 624B;;;;N;;;;;
-1F211;SQUARED CJK UNIFIED IDEOGRAPH-5B57;So;0;L;<square> 5B57;;;;N;;;;;
-1F212;SQUARED CJK UNIFIED IDEOGRAPH-53CC;So;0;L;<square> 53CC;;;;N;;;;;
-1F213;SQUARED KATAKANA DE;So;0;L;<square> 30C7;;;;N;;;;;
-1F214;SQUARED CJK UNIFIED IDEOGRAPH-4E8C;So;0;L;<square> 4E8C;;;;N;;;;;
-1F215;SQUARED CJK UNIFIED IDEOGRAPH-591A;So;0;L;<square> 591A;;;;N;;;;;
-1F216;SQUARED CJK UNIFIED IDEOGRAPH-89E3;So;0;L;<square> 89E3;;;;N;;;;;
-1F217;SQUARED CJK UNIFIED IDEOGRAPH-5929;So;0;L;<square> 5929;;;;N;;;;;
-1F218;SQUARED CJK UNIFIED IDEOGRAPH-4EA4;So;0;L;<square> 4EA4;;;;N;;;;;
-1F219;SQUARED CJK UNIFIED IDEOGRAPH-6620;So;0;L;<square> 6620;;;;N;;;;;
-1F21A;SQUARED CJK UNIFIED IDEOGRAPH-7121;So;0;L;<square> 7121;;;;N;;;;;
-1F21B;SQUARED CJK UNIFIED IDEOGRAPH-6599;So;0;L;<square> 6599;;;;N;;;;;
-1F21C;SQUARED CJK UNIFIED IDEOGRAPH-524D;So;0;L;<square> 524D;;;;N;;;;;
-1F21D;SQUARED CJK UNIFIED IDEOGRAPH-5F8C;So;0;L;<square> 5F8C;;;;N;;;;;
-1F21E;SQUARED CJK UNIFIED IDEOGRAPH-518D;So;0;L;<square> 518D;;;;N;;;;;
-1F21F;SQUARED CJK UNIFIED IDEOGRAPH-65B0;So;0;L;<square> 65B0;;;;N;;;;;
-1F220;SQUARED CJK UNIFIED IDEOGRAPH-521D;So;0;L;<square> 521D;;;;N;;;;;
-1F221;SQUARED CJK UNIFIED IDEOGRAPH-7D42;So;0;L;<square> 7D42;;;;N;;;;;
-1F222;SQUARED CJK UNIFIED IDEOGRAPH-751F;So;0;L;<square> 751F;;;;N;;;;;
-1F223;SQUARED CJK UNIFIED IDEOGRAPH-8CA9;So;0;L;<square> 8CA9;;;;N;;;;;
-1F224;SQUARED CJK UNIFIED IDEOGRAPH-58F0;So;0;L;<square> 58F0;;;;N;;;;;
-1F225;SQUARED CJK UNIFIED IDEOGRAPH-5439;So;0;L;<square> 5439;;;;N;;;;;
-1F226;SQUARED CJK UNIFIED IDEOGRAPH-6F14;So;0;L;<square> 6F14;;;;N;;;;;
-1F227;SQUARED CJK UNIFIED IDEOGRAPH-6295;So;0;L;<square> 6295;;;;N;;;;;
-1F228;SQUARED CJK UNIFIED IDEOGRAPH-6355;So;0;L;<square> 6355;;;;N;;;;;
-1F229;SQUARED CJK UNIFIED IDEOGRAPH-4E00;So;0;L;<square> 4E00;;;;N;;;;;
-1F22A;SQUARED CJK UNIFIED IDEOGRAPH-4E09;So;0;L;<square> 4E09;;;;N;;;;;
-1F22B;SQUARED CJK UNIFIED IDEOGRAPH-904A;So;0;L;<square> 904A;;;;N;;;;;
-1F22C;SQUARED CJK UNIFIED IDEOGRAPH-5DE6;So;0;L;<square> 5DE6;;;;N;;;;;
-1F22D;SQUARED CJK UNIFIED IDEOGRAPH-4E2D;So;0;L;<square> 4E2D;;;;N;;;;;
-1F22E;SQUARED CJK UNIFIED IDEOGRAPH-53F3;So;0;L;<square> 53F3;;;;N;;;;;
-1F22F;SQUARED CJK UNIFIED IDEOGRAPH-6307;So;0;L;<square> 6307;;;;N;;;;;
-1F230;SQUARED CJK UNIFIED IDEOGRAPH-8D70;So;0;L;<square> 8D70;;;;N;;;;;
-1F231;SQUARED CJK UNIFIED IDEOGRAPH-6253;So;0;L;<square> 6253;;;;N;;;;;
-1F232;SQUARED CJK UNIFIED IDEOGRAPH-7981;So;0;L;<square> 7981;;;;N;;;;;
-1F233;SQUARED CJK UNIFIED IDEOGRAPH-7A7A;So;0;L;<square> 7A7A;;;;N;;;;;
-1F234;SQUARED CJK UNIFIED IDEOGRAPH-5408;So;0;L;<square> 5408;;;;N;;;;;
-1F235;SQUARED CJK UNIFIED IDEOGRAPH-6E80;So;0;L;<square> 6E80;;;;N;;;;;
-1F236;SQUARED CJK UNIFIED IDEOGRAPH-6709;So;0;L;<square> 6709;;;;N;;;;;
-1F237;SQUARED CJK UNIFIED IDEOGRAPH-6708;So;0;L;<square> 6708;;;;N;;;;;
-1F238;SQUARED CJK UNIFIED IDEOGRAPH-7533;So;0;L;<square> 7533;;;;N;;;;;
-1F239;SQUARED CJK UNIFIED IDEOGRAPH-5272;So;0;L;<square> 5272;;;;N;;;;;
-1F23A;SQUARED CJK UNIFIED IDEOGRAPH-55B6;So;0;L;<square> 55B6;;;;N;;;;;
-1F240;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C;So;0;L;<compat> 3014 672C 3015;;;;N;;;;;
-1F241;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09;So;0;L;<compat> 3014 4E09 3015;;;;N;;;;;
-1F242;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C;So;0;L;<compat> 3014 4E8C 3015;;;;N;;;;;
-1F243;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89;So;0;L;<compat> 3014 5B89 3015;;;;N;;;;;
-1F244;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9;So;0;L;<compat> 3014 70B9 3015;;;;N;;;;;
-1F245;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253;So;0;L;<compat> 3014 6253 3015;;;;N;;;;;
-1F246;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7;So;0;L;<compat> 3014 76D7 3015;;;;N;;;;;
-1F247;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD;So;0;L;<compat> 3014 52DD 3015;;;;N;;;;;
-1F248;TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557;So;0;L;<compat> 3014 6557 3015;;;;N;;;;;
-1F250;CIRCLED IDEOGRAPH ADVANTAGE;So;0;L;<circle> 5F97;;;;N;;;;;
-1F251;CIRCLED IDEOGRAPH ACCEPT;So;0;L;<circle> 53EF;;;;N;;;;;
-1F300;CYCLONE;So;0;ON;;;;;N;;;;;
-1F301;FOGGY;So;0;ON;;;;;N;;;;;
-1F302;CLOSED UMBRELLA;So;0;ON;;;;;N;;;;;
-1F303;NIGHT WITH STARS;So;0;ON;;;;;N;;;;;
-1F304;SUNRISE OVER MOUNTAINS;So;0;ON;;;;;N;;;;;
-1F305;SUNRISE;So;0;ON;;;;;N;;;;;
-1F306;CITYSCAPE AT DUSK;So;0;ON;;;;;N;;;;;
-1F307;SUNSET OVER BUILDINGS;So;0;ON;;;;;N;;;;;
-1F308;RAINBOW;So;0;ON;;;;;N;;;;;
-1F309;BRIDGE AT NIGHT;So;0;ON;;;;;N;;;;;
-1F30A;WATER WAVE;So;0;ON;;;;;N;;;;;
-1F30B;VOLCANO;So;0;ON;;;;;N;;;;;
-1F30C;MILKY WAY;So;0;ON;;;;;N;;;;;
-1F30D;EARTH GLOBE EUROPE-AFRICA;So;0;ON;;;;;N;;;;;
-1F30E;EARTH GLOBE AMERICAS;So;0;ON;;;;;N;;;;;
-1F30F;EARTH GLOBE ASIA-AUSTRALIA;So;0;ON;;;;;N;;;;;
-1F310;GLOBE WITH MERIDIANS;So;0;ON;;;;;N;;;;;
-1F311;NEW MOON SYMBOL;So;0;ON;;;;;N;;;;;
-1F312;WAXING CRESCENT MOON SYMBOL;So;0;ON;;;;;N;;;;;
-1F313;FIRST QUARTER MOON SYMBOL;So;0;ON;;;;;N;;;;;
-1F314;WAXING GIBBOUS MOON SYMBOL;So;0;ON;;;;;N;;;;;
-1F315;FULL MOON SYMBOL;So;0;ON;;;;;N;;;;;
-1F316;WANING GIBBOUS MOON SYMBOL;So;0;ON;;;;;N;;;;;
-1F317;LAST QUARTER MOON SYMBOL;So;0;ON;;;;;N;;;;;
-1F318;WANING CRESCENT MOON SYMBOL;So;0;ON;;;;;N;;;;;
-1F319;CRESCENT MOON;So;0;ON;;;;;N;;;;;
-1F31A;NEW MOON WITH FACE;So;0;ON;;;;;N;;;;;
-1F31B;FIRST QUARTER MOON WITH FACE;So;0;ON;;;;;N;;;;;
-1F31C;LAST QUARTER MOON WITH FACE;So;0;ON;;;;;N;;;;;
-1F31D;FULL MOON WITH FACE;So;0;ON;;;;;N;;;;;
-1F31E;SUN WITH FACE;So;0;ON;;;;;N;;;;;
-1F31F;GLOWING STAR;So;0;ON;;;;;N;;;;;
-1F320;SHOOTING STAR;So;0;ON;;;;;N;;;;;
-1F330;CHESTNUT;So;0;ON;;;;;N;;;;;
-1F331;SEEDLING;So;0;ON;;;;;N;;;;;
-1F332;EVERGREEN TREE;So;0;ON;;;;;N;;;;;
-1F333;DECIDUOUS TREE;So;0;ON;;;;;N;;;;;
-1F334;PALM TREE;So;0;ON;;;;;N;;;;;
-1F335;CACTUS;So;0;ON;;;;;N;;;;;
-1F337;TULIP;So;0;ON;;;;;N;;;;;
-1F338;CHERRY BLOSSOM;So;0;ON;;;;;N;;;;;
-1F339;ROSE;So;0;ON;;;;;N;;;;;
-1F33A;HIBISCUS;So;0;ON;;;;;N;;;;;
-1F33B;SUNFLOWER;So;0;ON;;;;;N;;;;;
-1F33C;BLOSSOM;So;0;ON;;;;;N;;;;;
-1F33D;EAR OF MAIZE;So;0;ON;;;;;N;;;;;
-1F33E;EAR OF RICE;So;0;ON;;;;;N;;;;;
-1F33F;HERB;So;0;ON;;;;;N;;;;;
-1F340;FOUR LEAF CLOVER;So;0;ON;;;;;N;;;;;
-1F341;MAPLE LEAF;So;0;ON;;;;;N;;;;;
-1F342;FALLEN LEAF;So;0;ON;;;;;N;;;;;
-1F343;LEAF FLUTTERING IN WIND;So;0;ON;;;;;N;;;;;
-1F344;MUSHROOM;So;0;ON;;;;;N;;;;;
-1F345;TOMATO;So;0;ON;;;;;N;;;;;
-1F346;AUBERGINE;So;0;ON;;;;;N;;;;;
-1F347;GRAPES;So;0;ON;;;;;N;;;;;
-1F348;MELON;So;0;ON;;;;;N;;;;;
-1F349;WATERMELON;So;0;ON;;;;;N;;;;;
-1F34A;TANGERINE;So;0;ON;;;;;N;;;;;
-1F34B;LEMON;So;0;ON;;;;;N;;;;;
-1F34C;BANANA;So;0;ON;;;;;N;;;;;
-1F34D;PINEAPPLE;So;0;ON;;;;;N;;;;;
-1F34E;RED APPLE;So;0;ON;;;;;N;;;;;
-1F34F;GREEN APPLE;So;0;ON;;;;;N;;;;;
-1F350;PEAR;So;0;ON;;;;;N;;;;;
-1F351;PEACH;So;0;ON;;;;;N;;;;;
-1F352;CHERRIES;So;0;ON;;;;;N;;;;;
-1F353;STRAWBERRY;So;0;ON;;;;;N;;;;;
-1F354;HAMBURGER;So;0;ON;;;;;N;;;;;
-1F355;SLICE OF PIZZA;So;0;ON;;;;;N;;;;;
-1F356;MEAT ON BONE;So;0;ON;;;;;N;;;;;
-1F357;POULTRY LEG;So;0;ON;;;;;N;;;;;
-1F358;RICE CRACKER;So;0;ON;;;;;N;;;;;
-1F359;RICE BALL;So;0;ON;;;;;N;;;;;
-1F35A;COOKED RICE;So;0;ON;;;;;N;;;;;
-1F35B;CURRY AND RICE;So;0;ON;;;;;N;;;;;
-1F35C;STEAMING BOWL;So;0;ON;;;;;N;;;;;
-1F35D;SPAGHETTI;So;0;ON;;;;;N;;;;;
-1F35E;BREAD;So;0;ON;;;;;N;;;;;
-1F35F;FRENCH FRIES;So;0;ON;;;;;N;;;;;
-1F360;ROASTED SWEET POTATO;So;0;ON;;;;;N;;;;;
-1F361;DANGO;So;0;ON;;;;;N;;;;;
-1F362;ODEN;So;0;ON;;;;;N;;;;;
-1F363;SUSHI;So;0;ON;;;;;N;;;;;
-1F364;FRIED SHRIMP;So;0;ON;;;;;N;;;;;
-1F365;FISH CAKE WITH SWIRL DESIGN;So;0;ON;;;;;N;;;;;
-1F366;SOFT ICE CREAM;So;0;ON;;;;;N;;;;;
-1F367;SHAVED ICE;So;0;ON;;;;;N;;;;;
-1F368;ICE CREAM;So;0;ON;;;;;N;;;;;
-1F369;DOUGHNUT;So;0;ON;;;;;N;;;;;
-1F36A;COOKIE;So;0;ON;;;;;N;;;;;
-1F36B;CHOCOLATE BAR;So;0;ON;;;;;N;;;;;
-1F36C;CANDY;So;0;ON;;;;;N;;;;;
-1F36D;LOLLIPOP;So;0;ON;;;;;N;;;;;
-1F36E;CUSTARD;So;0;ON;;;;;N;;;;;
-1F36F;HONEY POT;So;0;ON;;;;;N;;;;;
-1F370;SHORTCAKE;So;0;ON;;;;;N;;;;;
-1F371;BENTO BOX;So;0;ON;;;;;N;;;;;
-1F372;POT OF FOOD;So;0;ON;;;;;N;;;;;
-1F373;COOKING;So;0;ON;;;;;N;;;;;
-1F374;FORK AND KNIFE;So;0;ON;;;;;N;;;;;
-1F375;TEACUP WITHOUT HANDLE;So;0;ON;;;;;N;;;;;
-1F376;SAKE BOTTLE AND CUP;So;0;ON;;;;;N;;;;;
-1F377;WINE GLASS;So;0;ON;;;;;N;;;;;
-1F378;COCKTAIL GLASS;So;0;ON;;;;;N;;;;;
-1F379;TROPICAL DRINK;So;0;ON;;;;;N;;;;;
-1F37A;BEER MUG;So;0;ON;;;;;N;;;;;
-1F37B;CLINKING BEER MUGS;So;0;ON;;;;;N;;;;;
-1F37C;BABY BOTTLE;So;0;ON;;;;;N;;;;;
-1F380;RIBBON;So;0;ON;;;;;N;;;;;
-1F381;WRAPPED PRESENT;So;0;ON;;;;;N;;;;;
-1F382;BIRTHDAY CAKE;So;0;ON;;;;;N;;;;;
-1F383;JACK-O-LANTERN;So;0;ON;;;;;N;;;;;
-1F384;CHRISTMAS TREE;So;0;ON;;;;;N;;;;;
-1F385;FATHER CHRISTMAS;So;0;ON;;;;;N;;;;;
-1F386;FIREWORKS;So;0;ON;;;;;N;;;;;
-1F387;FIREWORK SPARKLER;So;0;ON;;;;;N;;;;;
-1F388;BALLOON;So;0;ON;;;;;N;;;;;
-1F389;PARTY POPPER;So;0;ON;;;;;N;;;;;
-1F38A;CONFETTI BALL;So;0;ON;;;;;N;;;;;
-1F38B;TANABATA TREE;So;0;ON;;;;;N;;;;;
-1F38C;CROSSED FLAGS;So;0;ON;;;;;N;;;;;
-1F38D;PINE DECORATION;So;0;ON;;;;;N;;;;;
-1F38E;JAPANESE DOLLS;So;0;ON;;;;;N;;;;;
-1F38F;CARP STREAMER;So;0;ON;;;;;N;;;;;
-1F390;WIND CHIME;So;0;ON;;;;;N;;;;;
-1F391;MOON VIEWING CEREMONY;So;0;ON;;;;;N;;;;;
-1F392;SCHOOL SATCHEL;So;0;ON;;;;;N;;;;;
-1F393;GRADUATION CAP;So;0;ON;;;;;N;;;;;
-1F3A0;CAROUSEL HORSE;So;0;ON;;;;;N;;;;;
-1F3A1;FERRIS WHEEL;So;0;ON;;;;;N;;;;;
-1F3A2;ROLLER COASTER;So;0;ON;;;;;N;;;;;
-1F3A3;FISHING POLE AND FISH;So;0;ON;;;;;N;;;;;
-1F3A4;MICROPHONE;So;0;ON;;;;;N;;;;;
-1F3A5;MOVIE CAMERA;So;0;ON;;;;;N;;;;;
-1F3A6;CINEMA;So;0;ON;;;;;N;;;;;
-1F3A7;HEADPHONE;So;0;ON;;;;;N;;;;;
-1F3A8;ARTIST PALETTE;So;0;ON;;;;;N;;;;;
-1F3A9;TOP HAT;So;0;ON;;;;;N;;;;;
-1F3AA;CIRCUS TENT;So;0;ON;;;;;N;;;;;
-1F3AB;TICKET;So;0;ON;;;;;N;;;;;
-1F3AC;CLAPPER BOARD;So;0;ON;;;;;N;;;;;
-1F3AD;PERFORMING ARTS;So;0;ON;;;;;N;;;;;
-1F3AE;VIDEO GAME;So;0;ON;;;;;N;;;;;
-1F3AF;DIRECT HIT;So;0;ON;;;;;N;;;;;
-1F3B0;SLOT MACHINE;So;0;ON;;;;;N;;;;;
-1F3B1;BILLIARDS;So;0;ON;;;;;N;;;;;
-1F3B2;GAME DIE;So;0;ON;;;;;N;;;;;
-1F3B3;BOWLING;So;0;ON;;;;;N;;;;;
-1F3B4;FLOWER PLAYING CARDS;So;0;ON;;;;;N;;;;;
-1F3B5;MUSICAL NOTE;So;0;ON;;;;;N;;;;;
-1F3B6;MULTIPLE MUSICAL NOTES;So;0;ON;;;;;N;;;;;
-1F3B7;SAXOPHONE;So;0;ON;;;;;N;;;;;
-1F3B8;GUITAR;So;0;ON;;;;;N;;;;;
-1F3B9;MUSICAL KEYBOARD;So;0;ON;;;;;N;;;;;
-1F3BA;TRUMPET;So;0;ON;;;;;N;;;;;
-1F3BB;VIOLIN;So;0;ON;;;;;N;;;;;
-1F3BC;MUSICAL SCORE;So;0;ON;;;;;N;;;;;
-1F3BD;RUNNING SHIRT WITH SASH;So;0;ON;;;;;N;;;;;
-1F3BE;TENNIS RACQUET AND BALL;So;0;ON;;;;;N;;;;;
-1F3BF;SKI AND SKI BOOT;So;0;ON;;;;;N;;;;;
-1F3C0;BASKETBALL AND HOOP;So;0;ON;;;;;N;;;;;
-1F3C1;CHEQUERED FLAG;So;0;ON;;;;;N;;;;;
-1F3C2;SNOWBOARDER;So;0;ON;;;;;N;;;;;
-1F3C3;RUNNER;So;0;ON;;;;;N;;;;;
-1F3C4;SURFER;So;0;ON;;;;;N;;;;;
-1F3C6;TROPHY;So;0;ON;;;;;N;;;;;
-1F3C7;HORSE RACING;So;0;ON;;;;;N;;;;;
-1F3C8;AMERICAN FOOTBALL;So;0;ON;;;;;N;;;;;
-1F3C9;RUGBY FOOTBALL;So;0;ON;;;;;N;;;;;
-1F3CA;SWIMMER;So;0;ON;;;;;N;;;;;
-1F3E0;HOUSE BUILDING;So;0;ON;;;;;N;;;;;
-1F3E1;HOUSE WITH GARDEN;So;0;ON;;;;;N;;;;;
-1F3E2;OFFICE BUILDING;So;0;ON;;;;;N;;;;;
-1F3E3;JAPANESE POST OFFICE;So;0;ON;;;;;N;;;;;
-1F3E4;EUROPEAN POST OFFICE;So;0;ON;;;;;N;;;;;
-1F3E5;HOSPITAL;So;0;ON;;;;;N;;;;;
-1F3E6;BANK;So;0;ON;;;;;N;;;;;
-1F3E7;AUTOMATED TELLER MACHINE;So;0;ON;;;;;N;;;;;
-1F3E8;HOTEL;So;0;ON;;;;;N;;;;;
-1F3E9;LOVE HOTEL;So;0;ON;;;;;N;;;;;
-1F3EA;CONVENIENCE STORE;So;0;ON;;;;;N;;;;;
-1F3EB;SCHOOL;So;0;ON;;;;;N;;;;;
-1F3EC;DEPARTMENT STORE;So;0;ON;;;;;N;;;;;
-1F3ED;FACTORY;So;0;ON;;;;;N;;;;;
-1F3EE;IZAKAYA LANTERN;So;0;ON;;;;;N;;;;;
-1F3EF;JAPANESE CASTLE;So;0;ON;;;;;N;;;;;
-1F3F0;EUROPEAN CASTLE;So;0;ON;;;;;N;;;;;
-1F400;RAT;So;0;ON;;;;;N;;;;;
-1F401;MOUSE;So;0;ON;;;;;N;;;;;
-1F402;OX;So;0;ON;;;;;N;;;;;
-1F403;WATER BUFFALO;So;0;ON;;;;;N;;;;;
-1F404;COW;So;0;ON;;;;;N;;;;;
-1F405;TIGER;So;0;ON;;;;;N;;;;;
-1F406;LEOPARD;So;0;ON;;;;;N;;;;;
-1F407;RABBIT;So;0;ON;;;;;N;;;;;
-1F408;CAT;So;0;ON;;;;;N;;;;;
-1F409;DRAGON;So;0;ON;;;;;N;;;;;
-1F40A;CROCODILE;So;0;ON;;;;;N;;;;;
-1F40B;WHALE;So;0;ON;;;;;N;;;;;
-1F40C;SNAIL;So;0;ON;;;;;N;;;;;
-1F40D;SNAKE;So;0;ON;;;;;N;;;;;
-1F40E;HORSE;So;0;ON;;;;;N;;;;;
-1F40F;RAM;So;0;ON;;;;;N;;;;;
-1F410;GOAT;So;0;ON;;;;;N;;;;;
-1F411;SHEEP;So;0;ON;;;;;N;;;;;
-1F412;MONKEY;So;0;ON;;;;;N;;;;;
-1F413;ROOSTER;So;0;ON;;;;;N;;;;;
-1F414;CHICKEN;So;0;ON;;;;;N;;;;;
-1F415;DOG;So;0;ON;;;;;N;;;;;
-1F416;PIG;So;0;ON;;;;;N;;;;;
-1F417;BOAR;So;0;ON;;;;;N;;;;;
-1F418;ELEPHANT;So;0;ON;;;;;N;;;;;
-1F419;OCTOPUS;So;0;ON;;;;;N;;;;;
-1F41A;SPIRAL SHELL;So;0;ON;;;;;N;;;;;
-1F41B;BUG;So;0;ON;;;;;N;;;;;
-1F41C;ANT;So;0;ON;;;;;N;;;;;
-1F41D;HONEYBEE;So;0;ON;;;;;N;;;;;
-1F41E;LADY BEETLE;So;0;ON;;;;;N;;;;;
-1F41F;FISH;So;0;ON;;;;;N;;;;;
-1F420;TROPICAL FISH;So;0;ON;;;;;N;;;;;
-1F421;BLOWFISH;So;0;ON;;;;;N;;;;;
-1F422;TURTLE;So;0;ON;;;;;N;;;;;
-1F423;HATCHING CHICK;So;0;ON;;;;;N;;;;;
-1F424;BABY CHICK;So;0;ON;;;;;N;;;;;
-1F425;FRONT-FACING BABY CHICK;So;0;ON;;;;;N;;;;;
-1F426;BIRD;So;0;ON;;;;;N;;;;;
-1F427;PENGUIN;So;0;ON;;;;;N;;;;;
-1F428;KOALA;So;0;ON;;;;;N;;;;;
-1F429;POODLE;So;0;ON;;;;;N;;;;;
-1F42A;DROMEDARY CAMEL;So;0;ON;;;;;N;;;;;
-1F42B;BACTRIAN CAMEL;So;0;ON;;;;;N;;;;;
-1F42C;DOLPHIN;So;0;ON;;;;;N;;;;;
-1F42D;MOUSE FACE;So;0;ON;;;;;N;;;;;
-1F42E;COW FACE;So;0;ON;;;;;N;;;;;
-1F42F;TIGER FACE;So;0;ON;;;;;N;;;;;
-1F430;RABBIT FACE;So;0;ON;;;;;N;;;;;
-1F431;CAT FACE;So;0;ON;;;;;N;;;;;
-1F432;DRAGON FACE;So;0;ON;;;;;N;;;;;
-1F433;SPOUTING WHALE;So;0;ON;;;;;N;;;;;
-1F434;HORSE FACE;So;0;ON;;;;;N;;;;;
-1F435;MONKEY FACE;So;0;ON;;;;;N;;;;;
-1F436;DOG FACE;So;0;ON;;;;;N;;;;;
-1F437;PIG FACE;So;0;ON;;;;;N;;;;;
-1F438;FROG FACE;So;0;ON;;;;;N;;;;;
-1F439;HAMSTER FACE;So;0;ON;;;;;N;;;;;
-1F43A;WOLF FACE;So;0;ON;;;;;N;;;;;
-1F43B;BEAR FACE;So;0;ON;;;;;N;;;;;
-1F43C;PANDA FACE;So;0;ON;;;;;N;;;;;
-1F43D;PIG NOSE;So;0;ON;;;;;N;;;;;
-1F43E;PAW PRINTS;So;0;ON;;;;;N;;;;;
-1F440;EYES;So;0;ON;;;;;N;;;;;
-1F442;EAR;So;0;ON;;;;;N;;;;;
-1F443;NOSE;So;0;ON;;;;;N;;;;;
-1F444;MOUTH;So;0;ON;;;;;N;;;;;
-1F445;TONGUE;So;0;ON;;;;;N;;;;;
-1F446;WHITE UP POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;;
-1F447;WHITE DOWN POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;;
-1F448;WHITE LEFT POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;;
-1F449;WHITE RIGHT POINTING BACKHAND INDEX;So;0;ON;;;;;N;;;;;
-1F44A;FISTED HAND SIGN;So;0;ON;;;;;N;;;;;
-1F44B;WAVING HAND SIGN;So;0;ON;;;;;N;;;;;
-1F44C;OK HAND SIGN;So;0;ON;;;;;N;;;;;
-1F44D;THUMBS UP SIGN;So;0;ON;;;;;N;;;;;
-1F44E;THUMBS DOWN SIGN;So;0;ON;;;;;N;;;;;
-1F44F;CLAPPING HANDS SIGN;So;0;ON;;;;;N;;;;;
-1F450;OPEN HANDS SIGN;So;0;ON;;;;;N;;;;;
-1F451;CROWN;So;0;ON;;;;;N;;;;;
-1F452;WOMANS HAT;So;0;ON;;;;;N;;;;;
-1F453;EYEGLASSES;So;0;ON;;;;;N;;;;;
-1F454;NECKTIE;So;0;ON;;;;;N;;;;;
-1F455;T-SHIRT;So;0;ON;;;;;N;;;;;
-1F456;JEANS;So;0;ON;;;;;N;;;;;
-1F457;DRESS;So;0;ON;;;;;N;;;;;
-1F458;KIMONO;So;0;ON;;;;;N;;;;;
-1F459;BIKINI;So;0;ON;;;;;N;;;;;
-1F45A;WOMANS CLOTHES;So;0;ON;;;;;N;;;;;
-1F45B;PURSE;So;0;ON;;;;;N;;;;;
-1F45C;HANDBAG;So;0;ON;;;;;N;;;;;
-1F45D;POUCH;So;0;ON;;;;;N;;;;;
-1F45E;MANS SHOE;So;0;ON;;;;;N;;;;;
-1F45F;ATHLETIC SHOE;So;0;ON;;;;;N;;;;;
-1F460;HIGH-HEELED SHOE;So;0;ON;;;;;N;;;;;
-1F461;WOMANS SANDAL;So;0;ON;;;;;N;;;;;
-1F462;WOMANS BOOTS;So;0;ON;;;;;N;;;;;
-1F463;FOOTPRINTS;So;0;ON;;;;;N;;;;;
-1F464;BUST IN SILHOUETTE;So;0;ON;;;;;N;;;;;
-1F465;BUSTS IN SILHOUETTE;So;0;ON;;;;;N;;;;;
-1F466;BOY;So;0;ON;;;;;N;;;;;
-1F467;GIRL;So;0;ON;;;;;N;;;;;
-1F468;MAN;So;0;ON;;;;;N;;;;;
-1F469;WOMAN;So;0;ON;;;;;N;;;;;
-1F46A;FAMILY;So;0;ON;;;;;N;;;;;
-1F46B;MAN AND WOMAN HOLDING HANDS;So;0;ON;;;;;N;;;;;
-1F46C;TWO MEN HOLDING HANDS;So;0;ON;;;;;N;;;;;
-1F46D;TWO WOMEN HOLDING HANDS;So;0;ON;;;;;N;;;;;
-1F46E;POLICE OFFICER;So;0;ON;;;;;N;;;;;
-1F46F;WOMAN WITH BUNNY EARS;So;0;ON;;;;;N;;;;;
-1F470;BRIDE WITH VEIL;So;0;ON;;;;;N;;;;;
-1F471;PERSON WITH BLOND HAIR;So;0;ON;;;;;N;;;;;
-1F472;MAN WITH GUA PI MAO;So;0;ON;;;;;N;;;;;
-1F473;MAN WITH TURBAN;So;0;ON;;;;;N;;;;;
-1F474;OLDER MAN;So;0;ON;;;;;N;;;;;
-1F475;OLDER WOMAN;So;0;ON;;;;;N;;;;;
-1F476;BABY;So;0;ON;;;;;N;;;;;
-1F477;CONSTRUCTION WORKER;So;0;ON;;;;;N;;;;;
-1F478;PRINCESS;So;0;ON;;;;;N;;;;;
-1F479;JAPANESE OGRE;So;0;ON;;;;;N;;;;;
-1F47A;JAPANESE GOBLIN;So;0;ON;;;;;N;;;;;
-1F47B;GHOST;So;0;ON;;;;;N;;;;;
-1F47C;BABY ANGEL;So;0;ON;;;;;N;;;;;
-1F47D;EXTRATERRESTRIAL ALIEN;So;0;ON;;;;;N;;;;;
-1F47E;ALIEN MONSTER;So;0;ON;;;;;N;;;;;
-1F47F;IMP;So;0;ON;;;;;N;;;;;
-1F480;SKULL;So;0;ON;;;;;N;;;;;
-1F481;INFORMATION DESK PERSON;So;0;ON;;;;;N;;;;;
-1F482;GUARDSMAN;So;0;ON;;;;;N;;;;;
-1F483;DANCER;So;0;ON;;;;;N;;;;;
-1F484;LIPSTICK;So;0;ON;;;;;N;;;;;
-1F485;NAIL POLISH;So;0;ON;;;;;N;;;;;
-1F486;FACE MASSAGE;So;0;ON;;;;;N;;;;;
-1F487;HAIRCUT;So;0;ON;;;;;N;;;;;
-1F488;BARBER POLE;So;0;ON;;;;;N;;;;;
-1F489;SYRINGE;So;0;ON;;;;;N;;;;;
-1F48A;PILL;So;0;ON;;;;;N;;;;;
-1F48B;KISS MARK;So;0;ON;;;;;N;;;;;
-1F48C;LOVE LETTER;So;0;ON;;;;;N;;;;;
-1F48D;RING;So;0;ON;;;;;N;;;;;
-1F48E;GEM STONE;So;0;ON;;;;;N;;;;;
-1F48F;KISS;So;0;ON;;;;;N;;;;;
-1F490;BOUQUET;So;0;ON;;;;;N;;;;;
-1F491;COUPLE WITH HEART;So;0;ON;;;;;N;;;;;
-1F492;WEDDING;So;0;ON;;;;;N;;;;;
-1F493;BEATING HEART;So;0;ON;;;;;N;;;;;
-1F494;BROKEN HEART;So;0;ON;;;;;N;;;;;
-1F495;TWO HEARTS;So;0;ON;;;;;N;;;;;
-1F496;SPARKLING HEART;So;0;ON;;;;;N;;;;;
-1F497;GROWING HEART;So;0;ON;;;;;N;;;;;
-1F498;HEART WITH ARROW;So;0;ON;;;;;N;;;;;
-1F499;BLUE HEART;So;0;ON;;;;;N;;;;;
-1F49A;GREEN HEART;So;0;ON;;;;;N;;;;;
-1F49B;YELLOW HEART;So;0;ON;;;;;N;;;;;
-1F49C;PURPLE HEART;So;0;ON;;;;;N;;;;;
-1F49D;HEART WITH RIBBON;So;0;ON;;;;;N;;;;;
-1F49E;REVOLVING HEARTS;So;0;ON;;;;;N;;;;;
-1F49F;HEART DECORATION;So;0;ON;;;;;N;;;;;
-1F4A0;DIAMOND SHAPE WITH A DOT INSIDE;So;0;ON;;;;;N;;;;;
-1F4A1;ELECTRIC LIGHT BULB;So;0;ON;;;;;N;;;;;
-1F4A2;ANGER SYMBOL;So;0;ON;;;;;N;;;;;
-1F4A3;BOMB;So;0;ON;;;;;N;;;;;
-1F4A4;SLEEPING SYMBOL;So;0;ON;;;;;N;;;;;
-1F4A5;COLLISION SYMBOL;So;0;ON;;;;;N;;;;;
-1F4A6;SPLASHING SWEAT SYMBOL;So;0;ON;;;;;N;;;;;
-1F4A7;DROPLET;So;0;ON;;;;;N;;;;;
-1F4A8;DASH SYMBOL;So;0;ON;;;;;N;;;;;
-1F4A9;PILE OF POO;So;0;ON;;;;;N;;;;;
-1F4AA;FLEXED BICEPS;So;0;ON;;;;;N;;;;;
-1F4AB;DIZZY SYMBOL;So;0;ON;;;;;N;;;;;
-1F4AC;SPEECH BALLOON;So;0;ON;;;;;N;;;;;
-1F4AD;THOUGHT BALLOON;So;0;ON;;;;;N;;;;;
-1F4AE;WHITE FLOWER;So;0;ON;;;;;N;;;;;
-1F4AF;HUNDRED POINTS SYMBOL;So;0;ON;;;;;N;;;;;
-1F4B0;MONEY BAG;So;0;ON;;;;;N;;;;;
-1F4B1;CURRENCY EXCHANGE;So;0;ON;;;;;N;;;;;
-1F4B2;HEAVY DOLLAR SIGN;So;0;ON;;;;;N;;;;;
-1F4B3;CREDIT CARD;So;0;ON;;;;;N;;;;;
-1F4B4;BANKNOTE WITH YEN SIGN;So;0;ON;;;;;N;;;;;
-1F4B5;BANKNOTE WITH DOLLAR SIGN;So;0;ON;;;;;N;;;;;
-1F4B6;BANKNOTE WITH EURO SIGN;So;0;ON;;;;;N;;;;;
-1F4B7;BANKNOTE WITH POUND SIGN;So;0;ON;;;;;N;;;;;
-1F4B8;MONEY WITH WINGS;So;0;ON;;;;;N;;;;;
-1F4B9;CHART WITH UPWARDS TREND AND YEN SIGN;So;0;ON;;;;;N;;;;;
-1F4BA;SEAT;So;0;ON;;;;;N;;;;;
-1F4BB;PERSONAL COMPUTER;So;0;ON;;;;;N;;;;;
-1F4BC;BRIEFCASE;So;0;ON;;;;;N;;;;;
-1F4BD;MINIDISC;So;0;ON;;;;;N;;;;;
-1F4BE;FLOPPY DISK;So;0;ON;;;;;N;;;;;
-1F4BF;OPTICAL DISC;So;0;ON;;;;;N;;;;;
-1F4C0;DVD;So;0;ON;;;;;N;;;;;
-1F4C1;FILE FOLDER;So;0;ON;;;;;N;;;;;
-1F4C2;OPEN FILE FOLDER;So;0;ON;;;;;N;;;;;
-1F4C3;PAGE WITH CURL;So;0;ON;;;;;N;;;;;
-1F4C4;PAGE FACING UP;So;0;ON;;;;;N;;;;;
-1F4C5;CALENDAR;So;0;ON;;;;;N;;;;;
-1F4C6;TEAR-OFF CALENDAR;So;0;ON;;;;;N;;;;;
-1F4C7;CARD INDEX;So;0;ON;;;;;N;;;;;
-1F4C8;CHART WITH UPWARDS TREND;So;0;ON;;;;;N;;;;;
-1F4C9;CHART WITH DOWNWARDS TREND;So;0;ON;;;;;N;;;;;
-1F4CA;BAR CHART;So;0;ON;;;;;N;;;;;
-1F4CB;CLIPBOARD;So;0;ON;;;;;N;;;;;
-1F4CC;PUSHPIN;So;0;ON;;;;;N;;;;;
-1F4CD;ROUND PUSHPIN;So;0;ON;;;;;N;;;;;
-1F4CE;PAPERCLIP;So;0;ON;;;;;N;;;;;
-1F4CF;STRAIGHT RULER;So;0;ON;;;;;N;;;;;
-1F4D0;TRIANGULAR RULER;So;0;ON;;;;;N;;;;;
-1F4D1;BOOKMARK TABS;So;0;ON;;;;;N;;;;;
-1F4D2;LEDGER;So;0;ON;;;;;N;;;;;
-1F4D3;NOTEBOOK;So;0;ON;;;;;N;;;;;
-1F4D4;NOTEBOOK WITH DECORATIVE COVER;So;0;ON;;;;;N;;;;;
-1F4D5;CLOSED BOOK;So;0;ON;;;;;N;;;;;
-1F4D6;OPEN BOOK;So;0;ON;;;;;N;;;;;
-1F4D7;GREEN BOOK;So;0;ON;;;;;N;;;;;
-1F4D8;BLUE BOOK;So;0;ON;;;;;N;;;;;
-1F4D9;ORANGE BOOK;So;0;ON;;;;;N;;;;;
-1F4DA;BOOKS;So;0;ON;;;;;N;;;;;
-1F4DB;NAME BADGE;So;0;ON;;;;;N;;;;;
-1F4DC;SCROLL;So;0;ON;;;;;N;;;;;
-1F4DD;MEMO;So;0;ON;;;;;N;;;;;
-1F4DE;TELEPHONE RECEIVER;So;0;ON;;;;;N;;;;;
-1F4DF;PAGER;So;0;ON;;;;;N;;;;;
-1F4E0;FAX MACHINE;So;0;ON;;;;;N;;;;;
-1F4E1;SATELLITE ANTENNA;So;0;ON;;;;;N;;;;;
-1F4E2;PUBLIC ADDRESS LOUDSPEAKER;So;0;ON;;;;;N;;;;;
-1F4E3;CHEERING MEGAPHONE;So;0;ON;;;;;N;;;;;
-1F4E4;OUTBOX TRAY;So;0;ON;;;;;N;;;;;
-1F4E5;INBOX TRAY;So;0;ON;;;;;N;;;;;
-1F4E6;PACKAGE;So;0;ON;;;;;N;;;;;
-1F4E7;E-MAIL SYMBOL;So;0;ON;;;;;N;;;;;
-1F4E8;INCOMING ENVELOPE;So;0;ON;;;;;N;;;;;
-1F4E9;ENVELOPE WITH DOWNWARDS ARROW ABOVE;So;0;ON;;;;;N;;;;;
-1F4EA;CLOSED MAILBOX WITH LOWERED FLAG;So;0;ON;;;;;N;;;;;
-1F4EB;CLOSED MAILBOX WITH RAISED FLAG;So;0;ON;;;;;N;;;;;
-1F4EC;OPEN MAILBOX WITH RAISED FLAG;So;0;ON;;;;;N;;;;;
-1F4ED;OPEN MAILBOX WITH LOWERED FLAG;So;0;ON;;;;;N;;;;;
-1F4EE;POSTBOX;So;0;ON;;;;;N;;;;;
-1F4EF;POSTAL HORN;So;0;ON;;;;;N;;;;;
-1F4F0;NEWSPAPER;So;0;ON;;;;;N;;;;;
-1F4F1;MOBILE PHONE;So;0;ON;;;;;N;;;;;
-1F4F2;MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT;So;0;ON;;;;;N;;;;;
-1F4F3;VIBRATION MODE;So;0;ON;;;;;N;;;;;
-1F4F4;MOBILE PHONE OFF;So;0;ON;;;;;N;;;;;
-1F4F5;NO MOBILE PHONES;So;0;ON;;;;;N;;;;;
-1F4F6;ANTENNA WITH BARS;So;0;ON;;;;;N;;;;;
-1F4F7;CAMERA;So;0;ON;;;;;N;;;;;
-1F4F9;VIDEO CAMERA;So;0;ON;;;;;N;;;;;
-1F4FA;TELEVISION;So;0;ON;;;;;N;;;;;
-1F4FB;RADIO;So;0;ON;;;;;N;;;;;
-1F4FC;VIDEOCASSETTE;So;0;ON;;;;;N;;;;;
-1F500;TWISTED RIGHTWARDS ARROWS;So;0;ON;;;;;N;;;;;
-1F501;CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS;So;0;ON;;;;;N;;;;;
-1F502;CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY;So;0;ON;;;;;N;;;;;
-1F503;CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS;So;0;ON;;;;;N;;;;;
-1F504;ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS;So;0;ON;;;;;N;;;;;
-1F505;LOW BRIGHTNESS SYMBOL;So;0;ON;;;;;N;;;;;
-1F506;HIGH BRIGHTNESS SYMBOL;So;0;ON;;;;;N;;;;;
-1F507;SPEAKER WITH CANCELLATION STROKE;So;0;ON;;;;;N;;;;;
-1F508;SPEAKER;So;0;ON;;;;;N;;;;;
-1F509;SPEAKER WITH ONE SOUND WAVE;So;0;ON;;;;;N;;;;;
-1F50A;SPEAKER WITH THREE SOUND WAVES;So;0;ON;;;;;N;;;;;
-1F50B;BATTERY;So;0;ON;;;;;N;;;;;
-1F50C;ELECTRIC PLUG;So;0;ON;;;;;N;;;;;
-1F50D;LEFT-POINTING MAGNIFYING GLASS;So;0;ON;;;;;N;;;;;
-1F50E;RIGHT-POINTING MAGNIFYING GLASS;So;0;ON;;;;;N;;;;;
-1F50F;LOCK WITH INK PEN;So;0;ON;;;;;N;;;;;
-1F510;CLOSED LOCK WITH KEY;So;0;ON;;;;;N;;;;;
-1F511;KEY;So;0;ON;;;;;N;;;;;
-1F512;LOCK;So;0;ON;;;;;N;;;;;
-1F513;OPEN LOCK;So;0;ON;;;;;N;;;;;
-1F514;BELL;So;0;ON;;;;;N;;;;;
-1F515;BELL WITH CANCELLATION STROKE;So;0;ON;;;;;N;;;;;
-1F516;BOOKMARK;So;0;ON;;;;;N;;;;;
-1F517;LINK SYMBOL;So;0;ON;;;;;N;;;;;
-1F518;RADIO BUTTON;So;0;ON;;;;;N;;;;;
-1F519;BACK WITH LEFTWARDS ARROW ABOVE;So;0;ON;;;;;N;;;;;
-1F51A;END WITH LEFTWARDS ARROW ABOVE;So;0;ON;;;;;N;;;;;
-1F51B;ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE;So;0;ON;;;;;N;;;;;
-1F51C;SOON WITH RIGHTWARDS ARROW ABOVE;So;0;ON;;;;;N;;;;;
-1F51D;TOP WITH UPWARDS ARROW ABOVE;So;0;ON;;;;;N;;;;;
-1F51E;NO ONE UNDER EIGHTEEN SYMBOL;So;0;ON;;;;;N;;;;;
-1F51F;KEYCAP TEN;So;0;ON;;;;;N;;;;;
-1F520;INPUT SYMBOL FOR LATIN CAPITAL LETTERS;So;0;ON;;;;;N;;;;;
-1F521;INPUT SYMBOL FOR LATIN SMALL LETTERS;So;0;ON;;;;;N;;;;;
-1F522;INPUT SYMBOL FOR NUMBERS;So;0;ON;;;;;N;;;;;
-1F523;INPUT SYMBOL FOR SYMBOLS;So;0;ON;;;;;N;;;;;
-1F524;INPUT SYMBOL FOR LATIN LETTERS;So;0;ON;;;;;N;;;;;
-1F525;FIRE;So;0;ON;;;;;N;;;;;
-1F526;ELECTRIC TORCH;So;0;ON;;;;;N;;;;;
-1F527;WRENCH;So;0;ON;;;;;N;;;;;
-1F528;HAMMER;So;0;ON;;;;;N;;;;;
-1F529;NUT AND BOLT;So;0;ON;;;;;N;;;;;
-1F52A;HOCHO;So;0;ON;;;;;N;;;;;
-1F52B;PISTOL;So;0;ON;;;;;N;;;;;
-1F52C;MICROSCOPE;So;0;ON;;;;;N;;;;;
-1F52D;TELESCOPE;So;0;ON;;;;;N;;;;;
-1F52E;CRYSTAL BALL;So;0;ON;;;;;N;;;;;
-1F52F;SIX POINTED STAR WITH MIDDLE DOT;So;0;ON;;;;;N;;;;;
-1F530;JAPANESE SYMBOL FOR BEGINNER;So;0;ON;;;;;N;;;;;
-1F531;TRIDENT EMBLEM;So;0;ON;;;;;N;;;;;
-1F532;BLACK SQUARE BUTTON;So;0;ON;;;;;N;;;;;
-1F533;WHITE SQUARE BUTTON;So;0;ON;;;;;N;;;;;
-1F534;LARGE RED CIRCLE;So;0;ON;;;;;N;;;;;
-1F535;LARGE BLUE CIRCLE;So;0;ON;;;;;N;;;;;
-1F536;LARGE ORANGE DIAMOND;So;0;ON;;;;;N;;;;;
-1F537;LARGE BLUE DIAMOND;So;0;ON;;;;;N;;;;;
-1F538;SMALL ORANGE DIAMOND;So;0;ON;;;;;N;;;;;
-1F539;SMALL BLUE DIAMOND;So;0;ON;;;;;N;;;;;
-1F53A;UP-POINTING RED TRIANGLE;So;0;ON;;;;;N;;;;;
-1F53B;DOWN-POINTING RED TRIANGLE;So;0;ON;;;;;N;;;;;
-1F53C;UP-POINTING SMALL RED TRIANGLE;So;0;ON;;;;;N;;;;;
-1F53D;DOWN-POINTING SMALL RED TRIANGLE;So;0;ON;;;;;N;;;;;
-1F540;CIRCLED CROSS POMMEE;So;0;ON;;;;;N;;;;;
-1F541;CROSS POMMEE WITH HALF-CIRCLE BELOW;So;0;ON;;;;;N;;;;;
-1F542;CROSS POMMEE;So;0;ON;;;;;N;;;;;
-1F543;NOTCHED LEFT SEMICIRCLE WITH THREE DOTS;So;0;ON;;;;;N;;;;;
-1F550;CLOCK FACE ONE OCLOCK;So;0;ON;;;;;N;;;;;
-1F551;CLOCK FACE TWO OCLOCK;So;0;ON;;;;;N;;;;;
-1F552;CLOCK FACE THREE OCLOCK;So;0;ON;;;;;N;;;;;
-1F553;CLOCK FACE FOUR OCLOCK;So;0;ON;;;;;N;;;;;
-1F554;CLOCK FACE FIVE OCLOCK;So;0;ON;;;;;N;;;;;
-1F555;CLOCK FACE SIX OCLOCK;So;0;ON;;;;;N;;;;;
-1F556;CLOCK FACE SEVEN OCLOCK;So;0;ON;;;;;N;;;;;
-1F557;CLOCK FACE EIGHT OCLOCK;So;0;ON;;;;;N;;;;;
-1F558;CLOCK FACE NINE OCLOCK;So;0;ON;;;;;N;;;;;
-1F559;CLOCK FACE TEN OCLOCK;So;0;ON;;;;;N;;;;;
-1F55A;CLOCK FACE ELEVEN OCLOCK;So;0;ON;;;;;N;;;;;
-1F55B;CLOCK FACE TWELVE OCLOCK;So;0;ON;;;;;N;;;;;
-1F55C;CLOCK FACE ONE-THIRTY;So;0;ON;;;;;N;;;;;
-1F55D;CLOCK FACE TWO-THIRTY;So;0;ON;;;;;N;;;;;
-1F55E;CLOCK FACE THREE-THIRTY;So;0;ON;;;;;N;;;;;
-1F55F;CLOCK FACE FOUR-THIRTY;So;0;ON;;;;;N;;;;;
-1F560;CLOCK FACE FIVE-THIRTY;So;0;ON;;;;;N;;;;;
-1F561;CLOCK FACE SIX-THIRTY;So;0;ON;;;;;N;;;;;
-1F562;CLOCK FACE SEVEN-THIRTY;So;0;ON;;;;;N;;;;;
-1F563;CLOCK FACE EIGHT-THIRTY;So;0;ON;;;;;N;;;;;
-1F564;CLOCK FACE NINE-THIRTY;So;0;ON;;;;;N;;;;;
-1F565;CLOCK FACE TEN-THIRTY;So;0;ON;;;;;N;;;;;
-1F566;CLOCK FACE ELEVEN-THIRTY;So;0;ON;;;;;N;;;;;
-1F567;CLOCK FACE TWELVE-THIRTY;So;0;ON;;;;;N;;;;;
-1F5FB;MOUNT FUJI;So;0;ON;;;;;N;;;;;
-1F5FC;TOKYO TOWER;So;0;ON;;;;;N;;;;;
-1F5FD;STATUE OF LIBERTY;So;0;ON;;;;;N;;;;;
-1F5FE;SILHOUETTE OF JAPAN;So;0;ON;;;;;N;;;;;
-1F5FF;MOYAI;So;0;ON;;;;;N;;;;;
-1F600;GRINNING FACE;So;0;ON;;;;;N;;;;;
-1F601;GRINNING FACE WITH SMILING EYES;So;0;ON;;;;;N;;;;;
-1F602;FACE WITH TEARS OF JOY;So;0;ON;;;;;N;;;;;
-1F603;SMILING FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
-1F604;SMILING FACE WITH OPEN MOUTH AND SMILING EYES;So;0;ON;;;;;N;;;;;
-1F605;SMILING FACE WITH OPEN MOUTH AND COLD SWEAT;So;0;ON;;;;;N;;;;;
-1F606;SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES;So;0;ON;;;;;N;;;;;
-1F607;SMILING FACE WITH HALO;So;0;ON;;;;;N;;;;;
-1F608;SMILING FACE WITH HORNS;So;0;ON;;;;;N;;;;;
-1F609;WINKING FACE;So;0;ON;;;;;N;;;;;
-1F60A;SMILING FACE WITH SMILING EYES;So;0;ON;;;;;N;;;;;
-1F60B;FACE SAVOURING DELICIOUS FOOD;So;0;ON;;;;;N;;;;;
-1F60C;RELIEVED FACE;So;0;ON;;;;;N;;;;;
-1F60D;SMILING FACE WITH HEART-SHAPED EYES;So;0;ON;;;;;N;;;;;
-1F60E;SMILING FACE WITH SUNGLASSES;So;0;ON;;;;;N;;;;;
-1F60F;SMIRKING FACE;So;0;ON;;;;;N;;;;;
-1F610;NEUTRAL FACE;So;0;ON;;;;;N;;;;;
-1F611;EXPRESSIONLESS FACE;So;0;ON;;;;;N;;;;;
-1F612;UNAMUSED FACE;So;0;ON;;;;;N;;;;;
-1F613;FACE WITH COLD SWEAT;So;0;ON;;;;;N;;;;;
-1F614;PENSIVE FACE;So;0;ON;;;;;N;;;;;
-1F615;CONFUSED FACE;So;0;ON;;;;;N;;;;;
-1F616;CONFOUNDED FACE;So;0;ON;;;;;N;;;;;
-1F617;KISSING FACE;So;0;ON;;;;;N;;;;;
-1F618;FACE THROWING A KISS;So;0;ON;;;;;N;;;;;
-1F619;KISSING FACE WITH SMILING EYES;So;0;ON;;;;;N;;;;;
-1F61A;KISSING FACE WITH CLOSED EYES;So;0;ON;;;;;N;;;;;
-1F61B;FACE WITH STUCK-OUT TONGUE;So;0;ON;;;;;N;;;;;
-1F61C;FACE WITH STUCK-OUT TONGUE AND WINKING EYE;So;0;ON;;;;;N;;;;;
-1F61D;FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES;So;0;ON;;;;;N;;;;;
-1F61E;DISAPPOINTED FACE;So;0;ON;;;;;N;;;;;
-1F61F;WORRIED FACE;So;0;ON;;;;;N;;;;;
-1F620;ANGRY FACE;So;0;ON;;;;;N;;;;;
-1F621;POUTING FACE;So;0;ON;;;;;N;;;;;
-1F622;CRYING FACE;So;0;ON;;;;;N;;;;;
-1F623;PERSEVERING FACE;So;0;ON;;;;;N;;;;;
-1F624;FACE WITH LOOK OF TRIUMPH;So;0;ON;;;;;N;;;;;
-1F625;DISAPPOINTED BUT RELIEVED FACE;So;0;ON;;;;;N;;;;;
-1F626;FROWNING FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
-1F627;ANGUISHED FACE;So;0;ON;;;;;N;;;;;
-1F628;FEARFUL FACE;So;0;ON;;;;;N;;;;;
-1F629;WEARY FACE;So;0;ON;;;;;N;;;;;
-1F62A;SLEEPY FACE;So;0;ON;;;;;N;;;;;
-1F62B;TIRED FACE;So;0;ON;;;;;N;;;;;
-1F62C;GRIMACING FACE;So;0;ON;;;;;N;;;;;
-1F62D;LOUDLY CRYING FACE;So;0;ON;;;;;N;;;;;
-1F62E;FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
-1F62F;HUSHED FACE;So;0;ON;;;;;N;;;;;
-1F630;FACE WITH OPEN MOUTH AND COLD SWEAT;So;0;ON;;;;;N;;;;;
-1F631;FACE SCREAMING IN FEAR;So;0;ON;;;;;N;;;;;
-1F632;ASTONISHED FACE;So;0;ON;;;;;N;;;;;
-1F633;FLUSHED FACE;So;0;ON;;;;;N;;;;;
-1F634;SLEEPING FACE;So;0;ON;;;;;N;;;;;
-1F635;DIZZY FACE;So;0;ON;;;;;N;;;;;
-1F636;FACE WITHOUT MOUTH;So;0;ON;;;;;N;;;;;
-1F637;FACE WITH MEDICAL MASK;So;0;ON;;;;;N;;;;;
-1F638;GRINNING CAT FACE WITH SMILING EYES;So;0;ON;;;;;N;;;;;
-1F639;CAT FACE WITH TEARS OF JOY;So;0;ON;;;;;N;;;;;
-1F63A;SMILING CAT FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
-1F63B;SMILING CAT FACE WITH HEART-SHAPED EYES;So;0;ON;;;;;N;;;;;
-1F63C;CAT FACE WITH WRY SMILE;So;0;ON;;;;;N;;;;;
-1F63D;KISSING CAT FACE WITH CLOSED EYES;So;0;ON;;;;;N;;;;;
-1F63E;POUTING CAT FACE;So;0;ON;;;;;N;;;;;
-1F63F;CRYING CAT FACE;So;0;ON;;;;;N;;;;;
-1F640;WEARY CAT FACE;So;0;ON;;;;;N;;;;;
-1F645;FACE WITH NO GOOD GESTURE;So;0;ON;;;;;N;;;;;
-1F646;FACE WITH OK GESTURE;So;0;ON;;;;;N;;;;;
-1F647;PERSON BOWING DEEPLY;So;0;ON;;;;;N;;;;;
-1F648;SEE-NO-EVIL MONKEY;So;0;ON;;;;;N;;;;;
-1F649;HEAR-NO-EVIL MONKEY;So;0;ON;;;;;N;;;;;
-1F64A;SPEAK-NO-EVIL MONKEY;So;0;ON;;;;;N;;;;;
-1F64B;HAPPY PERSON RAISING ONE HAND;So;0;ON;;;;;N;;;;;
-1F64C;PERSON RAISING BOTH HANDS IN CELEBRATION;So;0;ON;;;;;N;;;;;
-1F64D;PERSON FROWNING;So;0;ON;;;;;N;;;;;
-1F64E;PERSON WITH POUTING FACE;So;0;ON;;;;;N;;;;;
-1F64F;PERSON WITH FOLDED HANDS;So;0;ON;;;;;N;;;;;
-1F680;ROCKET;So;0;ON;;;;;N;;;;;
-1F681;HELICOPTER;So;0;ON;;;;;N;;;;;
-1F682;STEAM LOCOMOTIVE;So;0;ON;;;;;N;;;;;
-1F683;RAILWAY CAR;So;0;ON;;;;;N;;;;;
-1F684;HIGH-SPEED TRAIN;So;0;ON;;;;;N;;;;;
-1F685;HIGH-SPEED TRAIN WITH BULLET NOSE;So;0;ON;;;;;N;;;;;
-1F686;TRAIN;So;0;ON;;;;;N;;;;;
-1F687;METRO;So;0;ON;;;;;N;;;;;
-1F688;LIGHT RAIL;So;0;ON;;;;;N;;;;;
-1F689;STATION;So;0;ON;;;;;N;;;;;
-1F68A;TRAM;So;0;ON;;;;;N;;;;;
-1F68B;TRAM CAR;So;0;ON;;;;;N;;;;;
-1F68C;BUS;So;0;ON;;;;;N;;;;;
-1F68D;ONCOMING BUS;So;0;ON;;;;;N;;;;;
-1F68E;TROLLEYBUS;So;0;ON;;;;;N;;;;;
-1F68F;BUS STOP;So;0;ON;;;;;N;;;;;
-1F690;MINIBUS;So;0;ON;;;;;N;;;;;
-1F691;AMBULANCE;So;0;ON;;;;;N;;;;;
-1F692;FIRE ENGINE;So;0;ON;;;;;N;;;;;
-1F693;POLICE CAR;So;0;ON;;;;;N;;;;;
-1F694;ONCOMING POLICE CAR;So;0;ON;;;;;N;;;;;
-1F695;TAXI;So;0;ON;;;;;N;;;;;
-1F696;ONCOMING TAXI;So;0;ON;;;;;N;;;;;
-1F697;AUTOMOBILE;So;0;ON;;;;;N;;;;;
-1F698;ONCOMING AUTOMOBILE;So;0;ON;;;;;N;;;;;
-1F699;RECREATIONAL VEHICLE;So;0;ON;;;;;N;;;;;
-1F69A;DELIVERY TRUCK;So;0;ON;;;;;N;;;;;
-1F69B;ARTICULATED LORRY;So;0;ON;;;;;N;;;;;
-1F69C;TRACTOR;So;0;ON;;;;;N;;;;;
-1F69D;MONORAIL;So;0;ON;;;;;N;;;;;
-1F69E;MOUNTAIN RAILWAY;So;0;ON;;;;;N;;;;;
-1F69F;SUSPENSION RAILWAY;So;0;ON;;;;;N;;;;;
-1F6A0;MOUNTAIN CABLEWAY;So;0;ON;;;;;N;;;;;
-1F6A1;AERIAL TRAMWAY;So;0;ON;;;;;N;;;;;
-1F6A2;SHIP;So;0;ON;;;;;N;;;;;
-1F6A3;ROWBOAT;So;0;ON;;;;;N;;;;;
-1F6A4;SPEEDBOAT;So;0;ON;;;;;N;;;;;
-1F6A5;HORIZONTAL TRAFFIC LIGHT;So;0;ON;;;;;N;;;;;
-1F6A6;VERTICAL TRAFFIC LIGHT;So;0;ON;;;;;N;;;;;
-1F6A7;CONSTRUCTION SIGN;So;0;ON;;;;;N;;;;;
-1F6A8;POLICE CARS REVOLVING LIGHT;So;0;ON;;;;;N;;;;;
-1F6A9;TRIANGULAR FLAG ON POST;So;0;ON;;;;;N;;;;;
-1F6AA;DOOR;So;0;ON;;;;;N;;;;;
-1F6AB;NO ENTRY SIGN;So;0;ON;;;;;N;;;;;
-1F6AC;SMOKING SYMBOL;So;0;ON;;;;;N;;;;;
-1F6AD;NO SMOKING SYMBOL;So;0;ON;;;;;N;;;;;
-1F6AE;PUT LITTER IN ITS PLACE SYMBOL;So;0;ON;;;;;N;;;;;
-1F6AF;DO NOT LITTER SYMBOL;So;0;ON;;;;;N;;;;;
-1F6B0;POTABLE WATER SYMBOL;So;0;ON;;;;;N;;;;;
-1F6B1;NON-POTABLE WATER SYMBOL;So;0;ON;;;;;N;;;;;
-1F6B2;BICYCLE;So;0;ON;;;;;N;;;;;
-1F6B3;NO BICYCLES;So;0;ON;;;;;N;;;;;
-1F6B4;BICYCLIST;So;0;ON;;;;;N;;;;;
-1F6B5;MOUNTAIN BICYCLIST;So;0;ON;;;;;N;;;;;
-1F6B6;PEDESTRIAN;So;0;ON;;;;;N;;;;;
-1F6B7;NO PEDESTRIANS;So;0;ON;;;;;N;;;;;
-1F6B8;CHILDREN CROSSING;So;0;ON;;;;;N;;;;;
-1F6B9;MENS SYMBOL;So;0;ON;;;;;N;;;;;
-1F6BA;WOMENS SYMBOL;So;0;ON;;;;;N;;;;;
-1F6BB;RESTROOM;So;0;ON;;;;;N;;;;;
-1F6BC;BABY SYMBOL;So;0;ON;;;;;N;;;;;
-1F6BD;TOILET;So;0;ON;;;;;N;;;;;
-1F6BE;WATER CLOSET;So;0;ON;;;;;N;;;;;
-1F6BF;SHOWER;So;0;ON;;;;;N;;;;;
-1F6C0;BATH;So;0;ON;;;;;N;;;;;
-1F6C1;BATHTUB;So;0;ON;;;;;N;;;;;
-1F6C2;PASSPORT CONTROL;So;0;ON;;;;;N;;;;;
-1F6C3;CUSTOMS;So;0;ON;;;;;N;;;;;
-1F6C4;BAGGAGE CLAIM;So;0;ON;;;;;N;;;;;
-1F6C5;LEFT LUGGAGE;So;0;ON;;;;;N;;;;;
-1F700;ALCHEMICAL SYMBOL FOR QUINTESSENCE;So;0;ON;;;;;N;;;;;
-1F701;ALCHEMICAL SYMBOL FOR AIR;So;0;ON;;;;;N;;;;;
-1F702;ALCHEMICAL SYMBOL FOR FIRE;So;0;ON;;;;;N;;;;;
-1F703;ALCHEMICAL SYMBOL FOR EARTH;So;0;ON;;;;;N;;;;;
-1F704;ALCHEMICAL SYMBOL FOR WATER;So;0;ON;;;;;N;;;;;
-1F705;ALCHEMICAL SYMBOL FOR AQUAFORTIS;So;0;ON;;;;;N;;;;;
-1F706;ALCHEMICAL SYMBOL FOR AQUA REGIA;So;0;ON;;;;;N;;;;;
-1F707;ALCHEMICAL SYMBOL FOR AQUA REGIA-2;So;0;ON;;;;;N;;;;;
-1F708;ALCHEMICAL SYMBOL FOR AQUA VITAE;So;0;ON;;;;;N;;;;;
-1F709;ALCHEMICAL SYMBOL FOR AQUA VITAE-2;So;0;ON;;;;;N;;;;;
-1F70A;ALCHEMICAL SYMBOL FOR VINEGAR;So;0;ON;;;;;N;;;;;
-1F70B;ALCHEMICAL SYMBOL FOR VINEGAR-2;So;0;ON;;;;;N;;;;;
-1F70C;ALCHEMICAL SYMBOL FOR VINEGAR-3;So;0;ON;;;;;N;;;;;
-1F70D;ALCHEMICAL SYMBOL FOR SULFUR;So;0;ON;;;;;N;;;;;
-1F70E;ALCHEMICAL SYMBOL FOR PHILOSOPHERS SULFUR;So;0;ON;;;;;N;;;;;
-1F70F;ALCHEMICAL SYMBOL FOR BLACK SULFUR;So;0;ON;;;;;N;;;;;
-1F710;ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE;So;0;ON;;;;;N;;;;;
-1F711;ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-2;So;0;ON;;;;;N;;;;;
-1F712;ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-3;So;0;ON;;;;;N;;;;;
-1F713;ALCHEMICAL SYMBOL FOR CINNABAR;So;0;ON;;;;;N;;;;;
-1F714;ALCHEMICAL SYMBOL FOR SALT;So;0;ON;;;;;N;;;;;
-1F715;ALCHEMICAL SYMBOL FOR NITRE;So;0;ON;;;;;N;;;;;
-1F716;ALCHEMICAL SYMBOL FOR VITRIOL;So;0;ON;;;;;N;;;;;
-1F717;ALCHEMICAL SYMBOL FOR VITRIOL-2;So;0;ON;;;;;N;;;;;
-1F718;ALCHEMICAL SYMBOL FOR ROCK SALT;So;0;ON;;;;;N;;;;;
-1F719;ALCHEMICAL SYMBOL FOR ROCK SALT-2;So;0;ON;;;;;N;;;;;
-1F71A;ALCHEMICAL SYMBOL FOR GOLD;So;0;ON;;;;;N;;;;;
-1F71B;ALCHEMICAL SYMBOL FOR SILVER;So;0;ON;;;;;N;;;;;
-1F71C;ALCHEMICAL SYMBOL FOR IRON ORE;So;0;ON;;;;;N;;;;;
-1F71D;ALCHEMICAL SYMBOL FOR IRON ORE-2;So;0;ON;;;;;N;;;;;
-1F71E;ALCHEMICAL SYMBOL FOR CROCUS OF IRON;So;0;ON;;;;;N;;;;;
-1F71F;ALCHEMICAL SYMBOL FOR REGULUS OF IRON;So;0;ON;;;;;N;;;;;
-1F720;ALCHEMICAL SYMBOL FOR COPPER ORE;So;0;ON;;;;;N;;;;;
-1F721;ALCHEMICAL SYMBOL FOR IRON-COPPER ORE;So;0;ON;;;;;N;;;;;
-1F722;ALCHEMICAL SYMBOL FOR SUBLIMATE OF COPPER;So;0;ON;;;;;N;;;;;
-1F723;ALCHEMICAL SYMBOL FOR CROCUS OF COPPER;So;0;ON;;;;;N;;;;;
-1F724;ALCHEMICAL SYMBOL FOR CROCUS OF COPPER-2;So;0;ON;;;;;N;;;;;
-1F725;ALCHEMICAL SYMBOL FOR COPPER ANTIMONIATE;So;0;ON;;;;;N;;;;;
-1F726;ALCHEMICAL SYMBOL FOR SALT OF COPPER ANTIMONIATE;So;0;ON;;;;;N;;;;;
-1F727;ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF COPPER;So;0;ON;;;;;N;;;;;
-1F728;ALCHEMICAL SYMBOL FOR VERDIGRIS;So;0;ON;;;;;N;;;;;
-1F729;ALCHEMICAL SYMBOL FOR TIN ORE;So;0;ON;;;;;N;;;;;
-1F72A;ALCHEMICAL SYMBOL FOR LEAD ORE;So;0;ON;;;;;N;;;;;
-1F72B;ALCHEMICAL SYMBOL FOR ANTIMONY ORE;So;0;ON;;;;;N;;;;;
-1F72C;ALCHEMICAL SYMBOL FOR SUBLIMATE OF ANTIMONY;So;0;ON;;;;;N;;;;;
-1F72D;ALCHEMICAL SYMBOL FOR SALT OF ANTIMONY;So;0;ON;;;;;N;;;;;
-1F72E;ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF ANTIMONY;So;0;ON;;;;;N;;;;;
-1F72F;ALCHEMICAL SYMBOL FOR VINEGAR OF ANTIMONY;So;0;ON;;;;;N;;;;;
-1F730;ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY;So;0;ON;;;;;N;;;;;
-1F731;ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY-2;So;0;ON;;;;;N;;;;;
-1F732;ALCHEMICAL SYMBOL FOR REGULUS;So;0;ON;;;;;N;;;;;
-1F733;ALCHEMICAL SYMBOL FOR REGULUS-2;So;0;ON;;;;;N;;;;;
-1F734;ALCHEMICAL SYMBOL FOR REGULUS-3;So;0;ON;;;;;N;;;;;
-1F735;ALCHEMICAL SYMBOL FOR REGULUS-4;So;0;ON;;;;;N;;;;;
-1F736;ALCHEMICAL SYMBOL FOR ALKALI;So;0;ON;;;;;N;;;;;
-1F737;ALCHEMICAL SYMBOL FOR ALKALI-2;So;0;ON;;;;;N;;;;;
-1F738;ALCHEMICAL SYMBOL FOR MARCASITE;So;0;ON;;;;;N;;;;;
-1F739;ALCHEMICAL SYMBOL FOR SAL-AMMONIAC;So;0;ON;;;;;N;;;;;
-1F73A;ALCHEMICAL SYMBOL FOR ARSENIC;So;0;ON;;;;;N;;;;;
-1F73B;ALCHEMICAL SYMBOL FOR REALGAR;So;0;ON;;;;;N;;;;;
-1F73C;ALCHEMICAL SYMBOL FOR REALGAR-2;So;0;ON;;;;;N;;;;;
-1F73D;ALCHEMICAL SYMBOL FOR AURIPIGMENT;So;0;ON;;;;;N;;;;;
-1F73E;ALCHEMICAL SYMBOL FOR BISMUTH ORE;So;0;ON;;;;;N;;;;;
-1F73F;ALCHEMICAL SYMBOL FOR TARTAR;So;0;ON;;;;;N;;;;;
-1F740;ALCHEMICAL SYMBOL FOR TARTAR-2;So;0;ON;;;;;N;;;;;
-1F741;ALCHEMICAL SYMBOL FOR QUICK LIME;So;0;ON;;;;;N;;;;;
-1F742;ALCHEMICAL SYMBOL FOR BORAX;So;0;ON;;;;;N;;;;;
-1F743;ALCHEMICAL SYMBOL FOR BORAX-2;So;0;ON;;;;;N;;;;;
-1F744;ALCHEMICAL SYMBOL FOR BORAX-3;So;0;ON;;;;;N;;;;;
-1F745;ALCHEMICAL SYMBOL FOR ALUM;So;0;ON;;;;;N;;;;;
-1F746;ALCHEMICAL SYMBOL FOR OIL;So;0;ON;;;;;N;;;;;
-1F747;ALCHEMICAL SYMBOL FOR SPIRIT;So;0;ON;;;;;N;;;;;
-1F748;ALCHEMICAL SYMBOL FOR TINCTURE;So;0;ON;;;;;N;;;;;
-1F749;ALCHEMICAL SYMBOL FOR GUM;So;0;ON;;;;;N;;;;;
-1F74A;ALCHEMICAL SYMBOL FOR WAX;So;0;ON;;;;;N;;;;;
-1F74B;ALCHEMICAL SYMBOL FOR POWDER;So;0;ON;;;;;N;;;;;
-1F74C;ALCHEMICAL SYMBOL FOR CALX;So;0;ON;;;;;N;;;;;
-1F74D;ALCHEMICAL SYMBOL FOR TUTTY;So;0;ON;;;;;N;;;;;
-1F74E;ALCHEMICAL SYMBOL FOR CAPUT MORTUUM;So;0;ON;;;;;N;;;;;
-1F74F;ALCHEMICAL SYMBOL FOR SCEPTER OF JOVE;So;0;ON;;;;;N;;;;;
-1F750;ALCHEMICAL SYMBOL FOR CADUCEUS;So;0;ON;;;;;N;;;;;
-1F751;ALCHEMICAL SYMBOL FOR TRIDENT;So;0;ON;;;;;N;;;;;
-1F752;ALCHEMICAL SYMBOL FOR STARRED TRIDENT;So;0;ON;;;;;N;;;;;
-1F753;ALCHEMICAL SYMBOL FOR LODESTONE;So;0;ON;;;;;N;;;;;
-1F754;ALCHEMICAL SYMBOL FOR SOAP;So;0;ON;;;;;N;;;;;
-1F755;ALCHEMICAL SYMBOL FOR URINE;So;0;ON;;;;;N;;;;;
-1F756;ALCHEMICAL SYMBOL FOR HORSE DUNG;So;0;ON;;;;;N;;;;;
-1F757;ALCHEMICAL SYMBOL FOR ASHES;So;0;ON;;;;;N;;;;;
-1F758;ALCHEMICAL SYMBOL FOR POT ASHES;So;0;ON;;;;;N;;;;;
-1F759;ALCHEMICAL SYMBOL FOR BRICK;So;0;ON;;;;;N;;;;;
-1F75A;ALCHEMICAL SYMBOL FOR POWDERED BRICK;So;0;ON;;;;;N;;;;;
-1F75B;ALCHEMICAL SYMBOL FOR AMALGAM;So;0;ON;;;;;N;;;;;
-1F75C;ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM;So;0;ON;;;;;N;;;;;
-1F75D;ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM-2;So;0;ON;;;;;N;;;;;
-1F75E;ALCHEMICAL SYMBOL FOR SUBLIMATION;So;0;ON;;;;;N;;;;;
-1F75F;ALCHEMICAL SYMBOL FOR PRECIPITATE;So;0;ON;;;;;N;;;;;
-1F760;ALCHEMICAL SYMBOL FOR DISTILL;So;0;ON;;;;;N;;;;;
-1F761;ALCHEMICAL SYMBOL FOR DISSOLVE;So;0;ON;;;;;N;;;;;
-1F762;ALCHEMICAL SYMBOL FOR DISSOLVE-2;So;0;ON;;;;;N;;;;;
-1F763;ALCHEMICAL SYMBOL FOR PURIFY;So;0;ON;;;;;N;;;;;
-1F764;ALCHEMICAL SYMBOL FOR PUTREFACTION;So;0;ON;;;;;N;;;;;
-1F765;ALCHEMICAL SYMBOL FOR CRUCIBLE;So;0;ON;;;;;N;;;;;
-1F766;ALCHEMICAL SYMBOL FOR CRUCIBLE-2;So;0;ON;;;;;N;;;;;
-1F767;ALCHEMICAL SYMBOL FOR CRUCIBLE-3;So;0;ON;;;;;N;;;;;
-1F768;ALCHEMICAL SYMBOL FOR CRUCIBLE-4;So;0;ON;;;;;N;;;;;
-1F769;ALCHEMICAL SYMBOL FOR CRUCIBLE-5;So;0;ON;;;;;N;;;;;
-1F76A;ALCHEMICAL SYMBOL FOR ALEMBIC;So;0;ON;;;;;N;;;;;
-1F76B;ALCHEMICAL SYMBOL FOR BATH OF MARY;So;0;ON;;;;;N;;;;;
-1F76C;ALCHEMICAL SYMBOL FOR BATH OF VAPOURS;So;0;ON;;;;;N;;;;;
-1F76D;ALCHEMICAL SYMBOL FOR RETORT;So;0;ON;;;;;N;;;;;
-1F76E;ALCHEMICAL SYMBOL FOR HOUR;So;0;ON;;;;;N;;;;;
-1F76F;ALCHEMICAL SYMBOL FOR NIGHT;So;0;ON;;;;;N;;;;;
-1F770;ALCHEMICAL SYMBOL FOR DAY-NIGHT;So;0;ON;;;;;N;;;;;
-1F771;ALCHEMICAL SYMBOL FOR MONTH;So;0;ON;;;;;N;;;;;
-1F772;ALCHEMICAL SYMBOL FOR HALF DRAM;So;0;ON;;;;;N;;;;;
-1F773;ALCHEMICAL SYMBOL FOR HALF OUNCE;So;0;ON;;;;;N;;;;;
-20000;<CJK Ideograph Extension B, First>;Lo;0;L;;;;;N;;;;;
-2A6D6;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;;
-2A700;<CJK Ideograph Extension C, First>;Lo;0;L;;;;;N;;;;;
-2B734;<CJK Ideograph Extension C, Last>;Lo;0;L;;;;;N;;;;;
-2B740;<CJK Ideograph Extension D, First>;Lo;0;L;;;;;N;;;;;
-2B81D;<CJK Ideograph Extension D, Last>;Lo;0;L;;;;;N;;;;;
-2F800;CJK COMPATIBILITY IDEOGRAPH-2F800;Lo;0;L;4E3D;;;;N;;;;;
-2F801;CJK COMPATIBILITY IDEOGRAPH-2F801;Lo;0;L;4E38;;;;N;;;;;
-2F802;CJK COMPATIBILITY IDEOGRAPH-2F802;Lo;0;L;4E41;;;;N;;;;;
-2F803;CJK COMPATIBILITY IDEOGRAPH-2F803;Lo;0;L;20122;;;;N;;;;;
-2F804;CJK COMPATIBILITY IDEOGRAPH-2F804;Lo;0;L;4F60;;;;N;;;;;
-2F805;CJK COMPATIBILITY IDEOGRAPH-2F805;Lo;0;L;4FAE;;;;N;;;;;
-2F806;CJK COMPATIBILITY IDEOGRAPH-2F806;Lo;0;L;4FBB;;;;N;;;;;
-2F807;CJK COMPATIBILITY IDEOGRAPH-2F807;Lo;0;L;5002;;;;N;;;;;
-2F808;CJK COMPATIBILITY IDEOGRAPH-2F808;Lo;0;L;507A;;;;N;;;;;
-2F809;CJK COMPATIBILITY IDEOGRAPH-2F809;Lo;0;L;5099;;;;N;;;;;
-2F80A;CJK COMPATIBILITY IDEOGRAPH-2F80A;Lo;0;L;50E7;;;;N;;;;;
-2F80B;CJK COMPATIBILITY IDEOGRAPH-2F80B;Lo;0;L;50CF;;;;N;;;;;
-2F80C;CJK COMPATIBILITY IDEOGRAPH-2F80C;Lo;0;L;349E;;;;N;;;;;
-2F80D;CJK COMPATIBILITY IDEOGRAPH-2F80D;Lo;0;L;2063A;;;;N;;;;;
-2F80E;CJK COMPATIBILITY IDEOGRAPH-2F80E;Lo;0;L;514D;;;;N;;;;;
-2F80F;CJK COMPATIBILITY IDEOGRAPH-2F80F;Lo;0;L;5154;;;;N;;;;;
-2F810;CJK COMPATIBILITY IDEOGRAPH-2F810;Lo;0;L;5164;;;;N;;;;;
-2F811;CJK COMPATIBILITY IDEOGRAPH-2F811;Lo;0;L;5177;;;;N;;;;;
-2F812;CJK COMPATIBILITY IDEOGRAPH-2F812;Lo;0;L;2051C;;;;N;;;;;
-2F813;CJK COMPATIBILITY IDEOGRAPH-2F813;Lo;0;L;34B9;;;;N;;;;;
-2F814;CJK COMPATIBILITY IDEOGRAPH-2F814;Lo;0;L;5167;;;;N;;;;;
-2F815;CJK COMPATIBILITY IDEOGRAPH-2F815;Lo;0;L;518D;;;;N;;;;;
-2F816;CJK COMPATIBILITY IDEOGRAPH-2F816;Lo;0;L;2054B;;;;N;;;;;
-2F817;CJK COMPATIBILITY IDEOGRAPH-2F817;Lo;0;L;5197;;;;N;;;;;
-2F818;CJK COMPATIBILITY IDEOGRAPH-2F818;Lo;0;L;51A4;;;;N;;;;;
-2F819;CJK COMPATIBILITY IDEOGRAPH-2F819;Lo;0;L;4ECC;;;;N;;;;;
-2F81A;CJK COMPATIBILITY IDEOGRAPH-2F81A;Lo;0;L;51AC;;;;N;;;;;
-2F81B;CJK COMPATIBILITY IDEOGRAPH-2F81B;Lo;0;L;51B5;;;;N;;;;;
-2F81C;CJK COMPATIBILITY IDEOGRAPH-2F81C;Lo;0;L;291DF;;;;N;;;;;
-2F81D;CJK COMPATIBILITY IDEOGRAPH-2F81D;Lo;0;L;51F5;;;;N;;;;;
-2F81E;CJK COMPATIBILITY IDEOGRAPH-2F81E;Lo;0;L;5203;;;;N;;;;;
-2F81F;CJK COMPATIBILITY IDEOGRAPH-2F81F;Lo;0;L;34DF;;;;N;;;;;
-2F820;CJK COMPATIBILITY IDEOGRAPH-2F820;Lo;0;L;523B;;;;N;;;;;
-2F821;CJK COMPATIBILITY IDEOGRAPH-2F821;Lo;0;L;5246;;;;N;;;;;
-2F822;CJK COMPATIBILITY IDEOGRAPH-2F822;Lo;0;L;5272;;;;N;;;;;
-2F823;CJK COMPATIBILITY IDEOGRAPH-2F823;Lo;0;L;5277;;;;N;;;;;
-2F824;CJK COMPATIBILITY IDEOGRAPH-2F824;Lo;0;L;3515;;;;N;;;;;
-2F825;CJK COMPATIBILITY IDEOGRAPH-2F825;Lo;0;L;52C7;;;;N;;;;;
-2F826;CJK COMPATIBILITY IDEOGRAPH-2F826;Lo;0;L;52C9;;;;N;;;;;
-2F827;CJK COMPATIBILITY IDEOGRAPH-2F827;Lo;0;L;52E4;;;;N;;;;;
-2F828;CJK COMPATIBILITY IDEOGRAPH-2F828;Lo;0;L;52FA;;;;N;;;;;
-2F829;CJK COMPATIBILITY IDEOGRAPH-2F829;Lo;0;L;5305;;;;N;;;;;
-2F82A;CJK COMPATIBILITY IDEOGRAPH-2F82A;Lo;0;L;5306;;;;N;;;;;
-2F82B;CJK COMPATIBILITY IDEOGRAPH-2F82B;Lo;0;L;5317;;;;N;;;;;
-2F82C;CJK COMPATIBILITY IDEOGRAPH-2F82C;Lo;0;L;5349;;;;N;;;;;
-2F82D;CJK COMPATIBILITY IDEOGRAPH-2F82D;Lo;0;L;5351;;;;N;;;;;
-2F82E;CJK COMPATIBILITY IDEOGRAPH-2F82E;Lo;0;L;535A;;;;N;;;;;
-2F82F;CJK COMPATIBILITY IDEOGRAPH-2F82F;Lo;0;L;5373;;;;N;;;;;
-2F830;CJK COMPATIBILITY IDEOGRAPH-2F830;Lo;0;L;537D;;;;N;;;;;
-2F831;CJK COMPATIBILITY IDEOGRAPH-2F831;Lo;0;L;537F;;;;N;;;;;
-2F832;CJK COMPATIBILITY IDEOGRAPH-2F832;Lo;0;L;537F;;;;N;;;;;
-2F833;CJK COMPATIBILITY IDEOGRAPH-2F833;Lo;0;L;537F;;;;N;;;;;
-2F834;CJK COMPATIBILITY IDEOGRAPH-2F834;Lo;0;L;20A2C;;;;N;;;;;
-2F835;CJK COMPATIBILITY IDEOGRAPH-2F835;Lo;0;L;7070;;;;N;;;;;
-2F836;CJK COMPATIBILITY IDEOGRAPH-2F836;Lo;0;L;53CA;;;;N;;;;;
-2F837;CJK COMPATIBILITY IDEOGRAPH-2F837;Lo;0;L;53DF;;;;N;;;;;
-2F838;CJK COMPATIBILITY IDEOGRAPH-2F838;Lo;0;L;20B63;;;;N;;;;;
-2F839;CJK COMPATIBILITY IDEOGRAPH-2F839;Lo;0;L;53EB;;;;N;;;;;
-2F83A;CJK COMPATIBILITY IDEOGRAPH-2F83A;Lo;0;L;53F1;;;;N;;;;;
-2F83B;CJK COMPATIBILITY IDEOGRAPH-2F83B;Lo;0;L;5406;;;;N;;;;;
-2F83C;CJK COMPATIBILITY IDEOGRAPH-2F83C;Lo;0;L;549E;;;;N;;;;;
-2F83D;CJK COMPATIBILITY IDEOGRAPH-2F83D;Lo;0;L;5438;;;;N;;;;;
-2F83E;CJK COMPATIBILITY IDEOGRAPH-2F83E;Lo;0;L;5448;;;;N;;;;;
-2F83F;CJK COMPATIBILITY IDEOGRAPH-2F83F;Lo;0;L;5468;;;;N;;;;;
-2F840;CJK COMPATIBILITY IDEOGRAPH-2F840;Lo;0;L;54A2;;;;N;;;;;
-2F841;CJK COMPATIBILITY IDEOGRAPH-2F841;Lo;0;L;54F6;;;;N;;;;;
-2F842;CJK COMPATIBILITY IDEOGRAPH-2F842;Lo;0;L;5510;;;;N;;;;;
-2F843;CJK COMPATIBILITY IDEOGRAPH-2F843;Lo;0;L;5553;;;;N;;;;;
-2F844;CJK COMPATIBILITY IDEOGRAPH-2F844;Lo;0;L;5563;;;;N;;;;;
-2F845;CJK COMPATIBILITY IDEOGRAPH-2F845;Lo;0;L;5584;;;;N;;;;;
-2F846;CJK COMPATIBILITY IDEOGRAPH-2F846;Lo;0;L;5584;;;;N;;;;;
-2F847;CJK COMPATIBILITY IDEOGRAPH-2F847;Lo;0;L;5599;;;;N;;;;;
-2F848;CJK COMPATIBILITY IDEOGRAPH-2F848;Lo;0;L;55AB;;;;N;;;;;
-2F849;CJK COMPATIBILITY IDEOGRAPH-2F849;Lo;0;L;55B3;;;;N;;;;;
-2F84A;CJK COMPATIBILITY IDEOGRAPH-2F84A;Lo;0;L;55C2;;;;N;;;;;
-2F84B;CJK COMPATIBILITY IDEOGRAPH-2F84B;Lo;0;L;5716;;;;N;;;;;
-2F84C;CJK COMPATIBILITY IDEOGRAPH-2F84C;Lo;0;L;5606;;;;N;;;;;
-2F84D;CJK COMPATIBILITY IDEOGRAPH-2F84D;Lo;0;L;5717;;;;N;;;;;
-2F84E;CJK COMPATIBILITY IDEOGRAPH-2F84E;Lo;0;L;5651;;;;N;;;;;
-2F84F;CJK COMPATIBILITY IDEOGRAPH-2F84F;Lo;0;L;5674;;;;N;;;;;
-2F850;CJK COMPATIBILITY IDEOGRAPH-2F850;Lo;0;L;5207;;;;N;;;;;
-2F851;CJK COMPATIBILITY IDEOGRAPH-2F851;Lo;0;L;58EE;;;;N;;;;;
-2F852;CJK COMPATIBILITY IDEOGRAPH-2F852;Lo;0;L;57CE;;;;N;;;;;
-2F853;CJK COMPATIBILITY IDEOGRAPH-2F853;Lo;0;L;57F4;;;;N;;;;;
-2F854;CJK COMPATIBILITY IDEOGRAPH-2F854;Lo;0;L;580D;;;;N;;;;;
-2F855;CJK COMPATIBILITY IDEOGRAPH-2F855;Lo;0;L;578B;;;;N;;;;;
-2F856;CJK COMPATIBILITY IDEOGRAPH-2F856;Lo;0;L;5832;;;;N;;;;;
-2F857;CJK COMPATIBILITY IDEOGRAPH-2F857;Lo;0;L;5831;;;;N;;;;;
-2F858;CJK COMPATIBILITY IDEOGRAPH-2F858;Lo;0;L;58AC;;;;N;;;;;
-2F859;CJK COMPATIBILITY IDEOGRAPH-2F859;Lo;0;L;214E4;;;;N;;;;;
-2F85A;CJK COMPATIBILITY IDEOGRAPH-2F85A;Lo;0;L;58F2;;;;N;;;;;
-2F85B;CJK COMPATIBILITY IDEOGRAPH-2F85B;Lo;0;L;58F7;;;;N;;;;;
-2F85C;CJK COMPATIBILITY IDEOGRAPH-2F85C;Lo;0;L;5906;;;;N;;;;;
-2F85D;CJK COMPATIBILITY IDEOGRAPH-2F85D;Lo;0;L;591A;;;;N;;;;;
-2F85E;CJK COMPATIBILITY IDEOGRAPH-2F85E;Lo;0;L;5922;;;;N;;;;;
-2F85F;CJK COMPATIBILITY IDEOGRAPH-2F85F;Lo;0;L;5962;;;;N;;;;;
-2F860;CJK COMPATIBILITY IDEOGRAPH-2F860;Lo;0;L;216A8;;;;N;;;;;
-2F861;CJK COMPATIBILITY IDEOGRAPH-2F861;Lo;0;L;216EA;;;;N;;;;;
-2F862;CJK COMPATIBILITY IDEOGRAPH-2F862;Lo;0;L;59EC;;;;N;;;;;
-2F863;CJK COMPATIBILITY IDEOGRAPH-2F863;Lo;0;L;5A1B;;;;N;;;;;
-2F864;CJK COMPATIBILITY IDEOGRAPH-2F864;Lo;0;L;5A27;;;;N;;;;;
-2F865;CJK COMPATIBILITY IDEOGRAPH-2F865;Lo;0;L;59D8;;;;N;;;;;
-2F866;CJK COMPATIBILITY IDEOGRAPH-2F866;Lo;0;L;5A66;;;;N;;;;;
-2F867;CJK COMPATIBILITY IDEOGRAPH-2F867;Lo;0;L;36EE;;;;N;;;;;
-2F868;CJK COMPATIBILITY IDEOGRAPH-2F868;Lo;0;L;36FC;;;;N;;;;;
-2F869;CJK COMPATIBILITY IDEOGRAPH-2F869;Lo;0;L;5B08;;;;N;;;;;
-2F86A;CJK COMPATIBILITY IDEOGRAPH-2F86A;Lo;0;L;5B3E;;;;N;;;;;
-2F86B;CJK COMPATIBILITY IDEOGRAPH-2F86B;Lo;0;L;5B3E;;;;N;;;;;
-2F86C;CJK COMPATIBILITY IDEOGRAPH-2F86C;Lo;0;L;219C8;;;;N;;;;;
-2F86D;CJK COMPATIBILITY IDEOGRAPH-2F86D;Lo;0;L;5BC3;;;;N;;;;;
-2F86E;CJK COMPATIBILITY IDEOGRAPH-2F86E;Lo;0;L;5BD8;;;;N;;;;;
-2F86F;CJK COMPATIBILITY IDEOGRAPH-2F86F;Lo;0;L;5BE7;;;;N;;;;;
-2F870;CJK COMPATIBILITY IDEOGRAPH-2F870;Lo;0;L;5BF3;;;;N;;;;;
-2F871;CJK COMPATIBILITY IDEOGRAPH-2F871;Lo;0;L;21B18;;;;N;;;;;
-2F872;CJK COMPATIBILITY IDEOGRAPH-2F872;Lo;0;L;5BFF;;;;N;;;;;
-2F873;CJK COMPATIBILITY IDEOGRAPH-2F873;Lo;0;L;5C06;;;;N;;;;;
-2F874;CJK COMPATIBILITY IDEOGRAPH-2F874;Lo;0;L;5F53;;;;N;;;;;
-2F875;CJK COMPATIBILITY IDEOGRAPH-2F875;Lo;0;L;5C22;;;;N;;;;;
-2F876;CJK COMPATIBILITY IDEOGRAPH-2F876;Lo;0;L;3781;;;;N;;;;;
-2F877;CJK COMPATIBILITY IDEOGRAPH-2F877;Lo;0;L;5C60;;;;N;;;;;
-2F878;CJK COMPATIBILITY IDEOGRAPH-2F878;Lo;0;L;5C6E;;;;N;;;;;
-2F879;CJK COMPATIBILITY IDEOGRAPH-2F879;Lo;0;L;5CC0;;;;N;;;;;
-2F87A;CJK COMPATIBILITY IDEOGRAPH-2F87A;Lo;0;L;5C8D;;;;N;;;;;
-2F87B;CJK COMPATIBILITY IDEOGRAPH-2F87B;Lo;0;L;21DE4;;;;N;;;;;
-2F87C;CJK COMPATIBILITY IDEOGRAPH-2F87C;Lo;0;L;5D43;;;;N;;;;;
-2F87D;CJK COMPATIBILITY IDEOGRAPH-2F87D;Lo;0;L;21DE6;;;;N;;;;;
-2F87E;CJK COMPATIBILITY IDEOGRAPH-2F87E;Lo;0;L;5D6E;;;;N;;;;;
-2F87F;CJK COMPATIBILITY IDEOGRAPH-2F87F;Lo;0;L;5D6B;;;;N;;;;;
-2F880;CJK COMPATIBILITY IDEOGRAPH-2F880;Lo;0;L;5D7C;;;;N;;;;;
-2F881;CJK COMPATIBILITY IDEOGRAPH-2F881;Lo;0;L;5DE1;;;;N;;;;;
-2F882;CJK COMPATIBILITY IDEOGRAPH-2F882;Lo;0;L;5DE2;;;;N;;;;;
-2F883;CJK COMPATIBILITY IDEOGRAPH-2F883;Lo;0;L;382F;;;;N;;;;;
-2F884;CJK COMPATIBILITY IDEOGRAPH-2F884;Lo;0;L;5DFD;;;;N;;;;;
-2F885;CJK COMPATIBILITY IDEOGRAPH-2F885;Lo;0;L;5E28;;;;N;;;;;
-2F886;CJK COMPATIBILITY IDEOGRAPH-2F886;Lo;0;L;5E3D;;;;N;;;;;
-2F887;CJK COMPATIBILITY IDEOGRAPH-2F887;Lo;0;L;5E69;;;;N;;;;;
-2F888;CJK COMPATIBILITY IDEOGRAPH-2F888;Lo;0;L;3862;;;;N;;;;;
-2F889;CJK COMPATIBILITY IDEOGRAPH-2F889;Lo;0;L;22183;;;;N;;;;;
-2F88A;CJK COMPATIBILITY IDEOGRAPH-2F88A;Lo;0;L;387C;;;;N;;;;;
-2F88B;CJK COMPATIBILITY IDEOGRAPH-2F88B;Lo;0;L;5EB0;;;;N;;;;;
-2F88C;CJK COMPATIBILITY IDEOGRAPH-2F88C;Lo;0;L;5EB3;;;;N;;;;;
-2F88D;CJK COMPATIBILITY IDEOGRAPH-2F88D;Lo;0;L;5EB6;;;;N;;;;;
-2F88E;CJK COMPATIBILITY IDEOGRAPH-2F88E;Lo;0;L;5ECA;;;;N;;;;;
-2F88F;CJK COMPATIBILITY IDEOGRAPH-2F88F;Lo;0;L;2A392;;;;N;;;;;
-2F890;CJK COMPATIBILITY IDEOGRAPH-2F890;Lo;0;L;5EFE;;;9;N;;;;;
-2F891;CJK COMPATIBILITY IDEOGRAPH-2F891;Lo;0;L;22331;;;;N;;;;;
-2F892;CJK COMPATIBILITY IDEOGRAPH-2F892;Lo;0;L;22331;;;;N;;;;;
-2F893;CJK COMPATIBILITY IDEOGRAPH-2F893;Lo;0;L;8201;;;;N;;;;;
-2F894;CJK COMPATIBILITY IDEOGRAPH-2F894;Lo;0;L;5F22;;;;N;;;;;
-2F895;CJK COMPATIBILITY IDEOGRAPH-2F895;Lo;0;L;5F22;;;;N;;;;;
-2F896;CJK COMPATIBILITY IDEOGRAPH-2F896;Lo;0;L;38C7;;;;N;;;;;
-2F897;CJK COMPATIBILITY IDEOGRAPH-2F897;Lo;0;L;232B8;;;;N;;;;;
-2F898;CJK COMPATIBILITY IDEOGRAPH-2F898;Lo;0;L;261DA;;;;N;;;;;
-2F899;CJK COMPATIBILITY IDEOGRAPH-2F899;Lo;0;L;5F62;;;;N;;;;;
-2F89A;CJK COMPATIBILITY IDEOGRAPH-2F89A;Lo;0;L;5F6B;;;;N;;;;;
-2F89B;CJK COMPATIBILITY IDEOGRAPH-2F89B;Lo;0;L;38E3;;;;N;;;;;
-2F89C;CJK COMPATIBILITY IDEOGRAPH-2F89C;Lo;0;L;5F9A;;;;N;;;;;
-2F89D;CJK COMPATIBILITY IDEOGRAPH-2F89D;Lo;0;L;5FCD;;;;N;;;;;
-2F89E;CJK COMPATIBILITY IDEOGRAPH-2F89E;Lo;0;L;5FD7;;;;N;;;;;
-2F89F;CJK COMPATIBILITY IDEOGRAPH-2F89F;Lo;0;L;5FF9;;;;N;;;;;
-2F8A0;CJK COMPATIBILITY IDEOGRAPH-2F8A0;Lo;0;L;6081;;;;N;;;;;
-2F8A1;CJK COMPATIBILITY IDEOGRAPH-2F8A1;Lo;0;L;393A;;;;N;;;;;
-2F8A2;CJK COMPATIBILITY IDEOGRAPH-2F8A2;Lo;0;L;391C;;;;N;;;;;
-2F8A3;CJK COMPATIBILITY IDEOGRAPH-2F8A3;Lo;0;L;6094;;;;N;;;;;
-2F8A4;CJK COMPATIBILITY IDEOGRAPH-2F8A4;Lo;0;L;226D4;;;;N;;;;;
-2F8A5;CJK COMPATIBILITY IDEOGRAPH-2F8A5;Lo;0;L;60C7;;;;N;;;;;
-2F8A6;CJK COMPATIBILITY IDEOGRAPH-2F8A6;Lo;0;L;6148;;;;N;;;;;
-2F8A7;CJK COMPATIBILITY IDEOGRAPH-2F8A7;Lo;0;L;614C;;;;N;;;;;
-2F8A8;CJK COMPATIBILITY IDEOGRAPH-2F8A8;Lo;0;L;614E;;;;N;;;;;
-2F8A9;CJK COMPATIBILITY IDEOGRAPH-2F8A9;Lo;0;L;614C;;;;N;;;;;
-2F8AA;CJK COMPATIBILITY IDEOGRAPH-2F8AA;Lo;0;L;617A;;;;N;;;;;
-2F8AB;CJK COMPATIBILITY IDEOGRAPH-2F8AB;Lo;0;L;618E;;;;N;;;;;
-2F8AC;CJK COMPATIBILITY IDEOGRAPH-2F8AC;Lo;0;L;61B2;;;;N;;;;;
-2F8AD;CJK COMPATIBILITY IDEOGRAPH-2F8AD;Lo;0;L;61A4;;;;N;;;;;
-2F8AE;CJK COMPATIBILITY IDEOGRAPH-2F8AE;Lo;0;L;61AF;;;;N;;;;;
-2F8AF;CJK COMPATIBILITY IDEOGRAPH-2F8AF;Lo;0;L;61DE;;;;N;;;;;
-2F8B0;CJK COMPATIBILITY IDEOGRAPH-2F8B0;Lo;0;L;61F2;;;;N;;;;;
-2F8B1;CJK COMPATIBILITY IDEOGRAPH-2F8B1;Lo;0;L;61F6;;;;N;;;;;
-2F8B2;CJK COMPATIBILITY IDEOGRAPH-2F8B2;Lo;0;L;6210;;;;N;;;;;
-2F8B3;CJK COMPATIBILITY IDEOGRAPH-2F8B3;Lo;0;L;621B;;;;N;;;;;
-2F8B4;CJK COMPATIBILITY IDEOGRAPH-2F8B4;Lo;0;L;625D;;;;N;;;;;
-2F8B5;CJK COMPATIBILITY IDEOGRAPH-2F8B5;Lo;0;L;62B1;;;;N;;;;;
-2F8B6;CJK COMPATIBILITY IDEOGRAPH-2F8B6;Lo;0;L;62D4;;;;N;;;;;
-2F8B7;CJK COMPATIBILITY IDEOGRAPH-2F8B7;Lo;0;L;6350;;;;N;;;;;
-2F8B8;CJK COMPATIBILITY IDEOGRAPH-2F8B8;Lo;0;L;22B0C;;;;N;;;;;
-2F8B9;CJK COMPATIBILITY IDEOGRAPH-2F8B9;Lo;0;L;633D;;;;N;;;;;
-2F8BA;CJK COMPATIBILITY IDEOGRAPH-2F8BA;Lo;0;L;62FC;;;;N;;;;;
-2F8BB;CJK COMPATIBILITY IDEOGRAPH-2F8BB;Lo;0;L;6368;;;;N;;;;;
-2F8BC;CJK COMPATIBILITY IDEOGRAPH-2F8BC;Lo;0;L;6383;;;;N;;;;;
-2F8BD;CJK COMPATIBILITY IDEOGRAPH-2F8BD;Lo;0;L;63E4;;;;N;;;;;
-2F8BE;CJK COMPATIBILITY IDEOGRAPH-2F8BE;Lo;0;L;22BF1;;;;N;;;;;
-2F8BF;CJK COMPATIBILITY IDEOGRAPH-2F8BF;Lo;0;L;6422;;;;N;;;;;
-2F8C0;CJK COMPATIBILITY IDEOGRAPH-2F8C0;Lo;0;L;63C5;;;;N;;;;;
-2F8C1;CJK COMPATIBILITY IDEOGRAPH-2F8C1;Lo;0;L;63A9;;;;N;;;;;
-2F8C2;CJK COMPATIBILITY IDEOGRAPH-2F8C2;Lo;0;L;3A2E;;;;N;;;;;
-2F8C3;CJK COMPATIBILITY IDEOGRAPH-2F8C3;Lo;0;L;6469;;;;N;;;;;
-2F8C4;CJK COMPATIBILITY IDEOGRAPH-2F8C4;Lo;0;L;647E;;;;N;;;;;
-2F8C5;CJK COMPATIBILITY IDEOGRAPH-2F8C5;Lo;0;L;649D;;;;N;;;;;
-2F8C6;CJK COMPATIBILITY IDEOGRAPH-2F8C6;Lo;0;L;6477;;;;N;;;;;
-2F8C7;CJK COMPATIBILITY IDEOGRAPH-2F8C7;Lo;0;L;3A6C;;;;N;;;;;
-2F8C8;CJK COMPATIBILITY IDEOGRAPH-2F8C8;Lo;0;L;654F;;;;N;;;;;
-2F8C9;CJK COMPATIBILITY IDEOGRAPH-2F8C9;Lo;0;L;656C;;;;N;;;;;
-2F8CA;CJK COMPATIBILITY IDEOGRAPH-2F8CA;Lo;0;L;2300A;;;;N;;;;;
-2F8CB;CJK COMPATIBILITY IDEOGRAPH-2F8CB;Lo;0;L;65E3;;;;N;;;;;
-2F8CC;CJK COMPATIBILITY IDEOGRAPH-2F8CC;Lo;0;L;66F8;;;;N;;;;;
-2F8CD;CJK COMPATIBILITY IDEOGRAPH-2F8CD;Lo;0;L;6649;;;;N;;;;;
-2F8CE;CJK COMPATIBILITY IDEOGRAPH-2F8CE;Lo;0;L;3B19;;;;N;;;;;
-2F8CF;CJK COMPATIBILITY IDEOGRAPH-2F8CF;Lo;0;L;6691;;;;N;;;;;
-2F8D0;CJK COMPATIBILITY IDEOGRAPH-2F8D0;Lo;0;L;3B08;;;;N;;;;;
-2F8D1;CJK COMPATIBILITY IDEOGRAPH-2F8D1;Lo;0;L;3AE4;;;;N;;;;;
-2F8D2;CJK COMPATIBILITY IDEOGRAPH-2F8D2;Lo;0;L;5192;;;;N;;;;;
-2F8D3;CJK COMPATIBILITY IDEOGRAPH-2F8D3;Lo;0;L;5195;;;;N;;;;;
-2F8D4;CJK COMPATIBILITY IDEOGRAPH-2F8D4;Lo;0;L;6700;;;;N;;;;;
-2F8D5;CJK COMPATIBILITY IDEOGRAPH-2F8D5;Lo;0;L;669C;;;;N;;;;;
-2F8D6;CJK COMPATIBILITY IDEOGRAPH-2F8D6;Lo;0;L;80AD;;;;N;;;;;
-2F8D7;CJK COMPATIBILITY IDEOGRAPH-2F8D7;Lo;0;L;43D9;;;;N;;;;;
-2F8D8;CJK COMPATIBILITY IDEOGRAPH-2F8D8;Lo;0;L;6717;;;;N;;;;;
-2F8D9;CJK COMPATIBILITY IDEOGRAPH-2F8D9;Lo;0;L;671B;;;;N;;;;;
-2F8DA;CJK COMPATIBILITY IDEOGRAPH-2F8DA;Lo;0;L;6721;;;;N;;;;;
-2F8DB;CJK COMPATIBILITY IDEOGRAPH-2F8DB;Lo;0;L;675E;;;;N;;;;;
-2F8DC;CJK COMPATIBILITY IDEOGRAPH-2F8DC;Lo;0;L;6753;;;;N;;;;;
-2F8DD;CJK COMPATIBILITY IDEOGRAPH-2F8DD;Lo;0;L;233C3;;;;N;;;;;
-2F8DE;CJK COMPATIBILITY IDEOGRAPH-2F8DE;Lo;0;L;3B49;;;;N;;;;;
-2F8DF;CJK COMPATIBILITY IDEOGRAPH-2F8DF;Lo;0;L;67FA;;;;N;;;;;
-2F8E0;CJK COMPATIBILITY IDEOGRAPH-2F8E0;Lo;0;L;6785;;;;N;;;;;
-2F8E1;CJK COMPATIBILITY IDEOGRAPH-2F8E1;Lo;0;L;6852;;;;N;;;;;
-2F8E2;CJK COMPATIBILITY IDEOGRAPH-2F8E2;Lo;0;L;6885;;;;N;;;;;
-2F8E3;CJK COMPATIBILITY IDEOGRAPH-2F8E3;Lo;0;L;2346D;;;;N;;;;;
-2F8E4;CJK COMPATIBILITY IDEOGRAPH-2F8E4;Lo;0;L;688E;;;;N;;;;;
-2F8E5;CJK COMPATIBILITY IDEOGRAPH-2F8E5;Lo;0;L;681F;;;;N;;;;;
-2F8E6;CJK COMPATIBILITY IDEOGRAPH-2F8E6;Lo;0;L;6914;;;;N;;;;;
-2F8E7;CJK COMPATIBILITY IDEOGRAPH-2F8E7;Lo;0;L;3B9D;;;;N;;;;;
-2F8E8;CJK COMPATIBILITY IDEOGRAPH-2F8E8;Lo;0;L;6942;;;;N;;;;;
-2F8E9;CJK COMPATIBILITY IDEOGRAPH-2F8E9;Lo;0;L;69A3;;;;N;;;;;
-2F8EA;CJK COMPATIBILITY IDEOGRAPH-2F8EA;Lo;0;L;69EA;;;;N;;;;;
-2F8EB;CJK COMPATIBILITY IDEOGRAPH-2F8EB;Lo;0;L;6AA8;;;;N;;;;;
-2F8EC;CJK COMPATIBILITY IDEOGRAPH-2F8EC;Lo;0;L;236A3;;;;N;;;;;
-2F8ED;CJK COMPATIBILITY IDEOGRAPH-2F8ED;Lo;0;L;6ADB;;;;N;;;;;
-2F8EE;CJK COMPATIBILITY IDEOGRAPH-2F8EE;Lo;0;L;3C18;;;;N;;;;;
-2F8EF;CJK COMPATIBILITY IDEOGRAPH-2F8EF;Lo;0;L;6B21;;;;N;;;;;
-2F8F0;CJK COMPATIBILITY IDEOGRAPH-2F8F0;Lo;0;L;238A7;;;;N;;;;;
-2F8F1;CJK COMPATIBILITY IDEOGRAPH-2F8F1;Lo;0;L;6B54;;;;N;;;;;
-2F8F2;CJK COMPATIBILITY IDEOGRAPH-2F8F2;Lo;0;L;3C4E;;;;N;;;;;
-2F8F3;CJK COMPATIBILITY IDEOGRAPH-2F8F3;Lo;0;L;6B72;;;;N;;;;;
-2F8F4;CJK COMPATIBILITY IDEOGRAPH-2F8F4;Lo;0;L;6B9F;;;;N;;;;;
-2F8F5;CJK COMPATIBILITY IDEOGRAPH-2F8F5;Lo;0;L;6BBA;;;;N;;;;;
-2F8F6;CJK COMPATIBILITY IDEOGRAPH-2F8F6;Lo;0;L;6BBB;;;;N;;;;;
-2F8F7;CJK COMPATIBILITY IDEOGRAPH-2F8F7;Lo;0;L;23A8D;;;;N;;;;;
-2F8F8;CJK COMPATIBILITY IDEOGRAPH-2F8F8;Lo;0;L;21D0B;;;;N;;;;;
-2F8F9;CJK COMPATIBILITY IDEOGRAPH-2F8F9;Lo;0;L;23AFA;;;;N;;;;;
-2F8FA;CJK COMPATIBILITY IDEOGRAPH-2F8FA;Lo;0;L;6C4E;;;;N;;;;;
-2F8FB;CJK COMPATIBILITY IDEOGRAPH-2F8FB;Lo;0;L;23CBC;;;;N;;;;;
-2F8FC;CJK COMPATIBILITY IDEOGRAPH-2F8FC;Lo;0;L;6CBF;;;;N;;;;;
-2F8FD;CJK COMPATIBILITY IDEOGRAPH-2F8FD;Lo;0;L;6CCD;;;;N;;;;;
-2F8FE;CJK COMPATIBILITY IDEOGRAPH-2F8FE;Lo;0;L;6C67;;;;N;;;;;
-2F8FF;CJK COMPATIBILITY IDEOGRAPH-2F8FF;Lo;0;L;6D16;;;;N;;;;;
-2F900;CJK COMPATIBILITY IDEOGRAPH-2F900;Lo;0;L;6D3E;;;;N;;;;;
-2F901;CJK COMPATIBILITY IDEOGRAPH-2F901;Lo;0;L;6D77;;;;N;;;;;
-2F902;CJK COMPATIBILITY IDEOGRAPH-2F902;Lo;0;L;6D41;;;;N;;;;;
-2F903;CJK COMPATIBILITY IDEOGRAPH-2F903;Lo;0;L;6D69;;;;N;;;;;
-2F904;CJK COMPATIBILITY IDEOGRAPH-2F904;Lo;0;L;6D78;;;;N;;;;;
-2F905;CJK COMPATIBILITY IDEOGRAPH-2F905;Lo;0;L;6D85;;;;N;;;;;
-2F906;CJK COMPATIBILITY IDEOGRAPH-2F906;Lo;0;L;23D1E;;;;N;;;;;
-2F907;CJK COMPATIBILITY IDEOGRAPH-2F907;Lo;0;L;6D34;;;;N;;;;;
-2F908;CJK COMPATIBILITY IDEOGRAPH-2F908;Lo;0;L;6E2F;;;;N;;;;;
-2F909;CJK COMPATIBILITY IDEOGRAPH-2F909;Lo;0;L;6E6E;;;;N;;;;;
-2F90A;CJK COMPATIBILITY IDEOGRAPH-2F90A;Lo;0;L;3D33;;;;N;;;;;
-2F90B;CJK COMPATIBILITY IDEOGRAPH-2F90B;Lo;0;L;6ECB;;;;N;;;;;
-2F90C;CJK COMPATIBILITY IDEOGRAPH-2F90C;Lo;0;L;6EC7;;;;N;;;;;
-2F90D;CJK COMPATIBILITY IDEOGRAPH-2F90D;Lo;0;L;23ED1;;;;N;;;;;
-2F90E;CJK COMPATIBILITY IDEOGRAPH-2F90E;Lo;0;L;6DF9;;;;N;;;;;
-2F90F;CJK COMPATIBILITY IDEOGRAPH-2F90F;Lo;0;L;6F6E;;;;N;;;;;
-2F910;CJK COMPATIBILITY IDEOGRAPH-2F910;Lo;0;L;23F5E;;;;N;;;;;
-2F911;CJK COMPATIBILITY IDEOGRAPH-2F911;Lo;0;L;23F8E;;;;N;;;;;
-2F912;CJK COMPATIBILITY IDEOGRAPH-2F912;Lo;0;L;6FC6;;;;N;;;;;
-2F913;CJK COMPATIBILITY IDEOGRAPH-2F913;Lo;0;L;7039;;;;N;;;;;
-2F914;CJK COMPATIBILITY IDEOGRAPH-2F914;Lo;0;L;701E;;;;N;;;;;
-2F915;CJK COMPATIBILITY IDEOGRAPH-2F915;Lo;0;L;701B;;;;N;;;;;
-2F916;CJK COMPATIBILITY IDEOGRAPH-2F916;Lo;0;L;3D96;;;;N;;;;;
-2F917;CJK COMPATIBILITY IDEOGRAPH-2F917;Lo;0;L;704A;;;;N;;;;;
-2F918;CJK COMPATIBILITY IDEOGRAPH-2F918;Lo;0;L;707D;;;;N;;;;;
-2F919;CJK COMPATIBILITY IDEOGRAPH-2F919;Lo;0;L;7077;;;;N;;;;;
-2F91A;CJK COMPATIBILITY IDEOGRAPH-2F91A;Lo;0;L;70AD;;;;N;;;;;
-2F91B;CJK COMPATIBILITY IDEOGRAPH-2F91B;Lo;0;L;20525;;;;N;;;;;
-2F91C;CJK COMPATIBILITY IDEOGRAPH-2F91C;Lo;0;L;7145;;;;N;;;;;
-2F91D;CJK COMPATIBILITY IDEOGRAPH-2F91D;Lo;0;L;24263;;;;N;;;;;
-2F91E;CJK COMPATIBILITY IDEOGRAPH-2F91E;Lo;0;L;719C;;;;N;;;;;
-2F91F;CJK COMPATIBILITY IDEOGRAPH-2F91F;Lo;0;L;243AB;;;;N;;;;;
-2F920;CJK COMPATIBILITY IDEOGRAPH-2F920;Lo;0;L;7228;;;;N;;;;;
-2F921;CJK COMPATIBILITY IDEOGRAPH-2F921;Lo;0;L;7235;;;;N;;;;;
-2F922;CJK COMPATIBILITY IDEOGRAPH-2F922;Lo;0;L;7250;;;;N;;;;;
-2F923;CJK COMPATIBILITY IDEOGRAPH-2F923;Lo;0;L;24608;;;;N;;;;;
-2F924;CJK COMPATIBILITY IDEOGRAPH-2F924;Lo;0;L;7280;;;;N;;;;;
-2F925;CJK COMPATIBILITY IDEOGRAPH-2F925;Lo;0;L;7295;;;;N;;;;;
-2F926;CJK COMPATIBILITY IDEOGRAPH-2F926;Lo;0;L;24735;;;;N;;;;;
-2F927;CJK COMPATIBILITY IDEOGRAPH-2F927;Lo;0;L;24814;;;;N;;;;;
-2F928;CJK COMPATIBILITY IDEOGRAPH-2F928;Lo;0;L;737A;;;;N;;;;;
-2F929;CJK COMPATIBILITY IDEOGRAPH-2F929;Lo;0;L;738B;;;;N;;;;;
-2F92A;CJK COMPATIBILITY IDEOGRAPH-2F92A;Lo;0;L;3EAC;;;;N;;;;;
-2F92B;CJK COMPATIBILITY IDEOGRAPH-2F92B;Lo;0;L;73A5;;;;N;;;;;
-2F92C;CJK COMPATIBILITY IDEOGRAPH-2F92C;Lo;0;L;3EB8;;;;N;;;;;
-2F92D;CJK COMPATIBILITY IDEOGRAPH-2F92D;Lo;0;L;3EB8;;;;N;;;;;
-2F92E;CJK COMPATIBILITY IDEOGRAPH-2F92E;Lo;0;L;7447;;;;N;;;;;
-2F92F;CJK COMPATIBILITY IDEOGRAPH-2F92F;Lo;0;L;745C;;;;N;;;;;
-2F930;CJK COMPATIBILITY IDEOGRAPH-2F930;Lo;0;L;7471;;;;N;;;;;
-2F931;CJK COMPATIBILITY IDEOGRAPH-2F931;Lo;0;L;7485;;;;N;;;;;
-2F932;CJK COMPATIBILITY IDEOGRAPH-2F932;Lo;0;L;74CA;;;;N;;;;;
-2F933;CJK COMPATIBILITY IDEOGRAPH-2F933;Lo;0;L;3F1B;;;;N;;;;;
-2F934;CJK COMPATIBILITY IDEOGRAPH-2F934;Lo;0;L;7524;;;;N;;;;;
-2F935;CJK COMPATIBILITY IDEOGRAPH-2F935;Lo;0;L;24C36;;;;N;;;;;
-2F936;CJK COMPATIBILITY IDEOGRAPH-2F936;Lo;0;L;753E;;;;N;;;;;
-2F937;CJK COMPATIBILITY IDEOGRAPH-2F937;Lo;0;L;24C92;;;;N;;;;;
-2F938;CJK COMPATIBILITY IDEOGRAPH-2F938;Lo;0;L;7570;;;;N;;;;;
-2F939;CJK COMPATIBILITY IDEOGRAPH-2F939;Lo;0;L;2219F;;;;N;;;;;
-2F93A;CJK COMPATIBILITY IDEOGRAPH-2F93A;Lo;0;L;7610;;;;N;;;;;
-2F93B;CJK COMPATIBILITY IDEOGRAPH-2F93B;Lo;0;L;24FA1;;;;N;;;;;
-2F93C;CJK COMPATIBILITY IDEOGRAPH-2F93C;Lo;0;L;24FB8;;;;N;;;;;
-2F93D;CJK COMPATIBILITY IDEOGRAPH-2F93D;Lo;0;L;25044;;;;N;;;;;
-2F93E;CJK COMPATIBILITY IDEOGRAPH-2F93E;Lo;0;L;3FFC;;;;N;;;;;
-2F93F;CJK COMPATIBILITY IDEOGRAPH-2F93F;Lo;0;L;4008;;;;N;;;;;
-2F940;CJK COMPATIBILITY IDEOGRAPH-2F940;Lo;0;L;76F4;;;;N;;;;;
-2F941;CJK COMPATIBILITY IDEOGRAPH-2F941;Lo;0;L;250F3;;;;N;;;;;
-2F942;CJK COMPATIBILITY IDEOGRAPH-2F942;Lo;0;L;250F2;;;;N;;;;;
-2F943;CJK COMPATIBILITY IDEOGRAPH-2F943;Lo;0;L;25119;;;;N;;;;;
-2F944;CJK COMPATIBILITY IDEOGRAPH-2F944;Lo;0;L;25133;;;;N;;;;;
-2F945;CJK COMPATIBILITY IDEOGRAPH-2F945;Lo;0;L;771E;;;;N;;;;;
-2F946;CJK COMPATIBILITY IDEOGRAPH-2F946;Lo;0;L;771F;;;;N;;;;;
-2F947;CJK COMPATIBILITY IDEOGRAPH-2F947;Lo;0;L;771F;;;;N;;;;;
-2F948;CJK COMPATIBILITY IDEOGRAPH-2F948;Lo;0;L;774A;;;;N;;;;;
-2F949;CJK COMPATIBILITY IDEOGRAPH-2F949;Lo;0;L;4039;;;;N;;;;;
-2F94A;CJK COMPATIBILITY IDEOGRAPH-2F94A;Lo;0;L;778B;;;;N;;;;;
-2F94B;CJK COMPATIBILITY IDEOGRAPH-2F94B;Lo;0;L;4046;;;;N;;;;;
-2F94C;CJK COMPATIBILITY IDEOGRAPH-2F94C;Lo;0;L;4096;;;;N;;;;;
-2F94D;CJK COMPATIBILITY IDEOGRAPH-2F94D;Lo;0;L;2541D;;;;N;;;;;
-2F94E;CJK COMPATIBILITY IDEOGRAPH-2F94E;Lo;0;L;784E;;;;N;;;;;
-2F94F;CJK COMPATIBILITY IDEOGRAPH-2F94F;Lo;0;L;788C;;;;N;;;;;
-2F950;CJK COMPATIBILITY IDEOGRAPH-2F950;Lo;0;L;78CC;;;;N;;;;;
-2F951;CJK COMPATIBILITY IDEOGRAPH-2F951;Lo;0;L;40E3;;;;N;;;;;
-2F952;CJK COMPATIBILITY IDEOGRAPH-2F952;Lo;0;L;25626;;;;N;;;;;
-2F953;CJK COMPATIBILITY IDEOGRAPH-2F953;Lo;0;L;7956;;;;N;;;;;
-2F954;CJK COMPATIBILITY IDEOGRAPH-2F954;Lo;0;L;2569A;;;;N;;;;;
-2F955;CJK COMPATIBILITY IDEOGRAPH-2F955;Lo;0;L;256C5;;;;N;;;;;
-2F956;CJK COMPATIBILITY IDEOGRAPH-2F956;Lo;0;L;798F;;;;N;;;;;
-2F957;CJK COMPATIBILITY IDEOGRAPH-2F957;Lo;0;L;79EB;;;;N;;;;;
-2F958;CJK COMPATIBILITY IDEOGRAPH-2F958;Lo;0;L;412F;;;;N;;;;;
-2F959;CJK COMPATIBILITY IDEOGRAPH-2F959;Lo;0;L;7A40;;;;N;;;;;
-2F95A;CJK COMPATIBILITY IDEOGRAPH-2F95A;Lo;0;L;7A4A;;;;N;;;;;
-2F95B;CJK COMPATIBILITY IDEOGRAPH-2F95B;Lo;0;L;7A4F;;;;N;;;;;
-2F95C;CJK COMPATIBILITY IDEOGRAPH-2F95C;Lo;0;L;2597C;;;;N;;;;;
-2F95D;CJK COMPATIBILITY IDEOGRAPH-2F95D;Lo;0;L;25AA7;;;;N;;;;;
-2F95E;CJK COMPATIBILITY IDEOGRAPH-2F95E;Lo;0;L;25AA7;;;;N;;;;;
-2F95F;CJK COMPATIBILITY IDEOGRAPH-2F95F;Lo;0;L;7AEE;;;;N;;;;;
-2F960;CJK COMPATIBILITY IDEOGRAPH-2F960;Lo;0;L;4202;;;;N;;;;;
-2F961;CJK COMPATIBILITY IDEOGRAPH-2F961;Lo;0;L;25BAB;;;;N;;;;;
-2F962;CJK COMPATIBILITY IDEOGRAPH-2F962;Lo;0;L;7BC6;;;;N;;;;;
-2F963;CJK COMPATIBILITY IDEOGRAPH-2F963;Lo;0;L;7BC9;;;;N;;;;;
-2F964;CJK COMPATIBILITY IDEOGRAPH-2F964;Lo;0;L;4227;;;;N;;;;;
-2F965;CJK COMPATIBILITY IDEOGRAPH-2F965;Lo;0;L;25C80;;;;N;;;;;
-2F966;CJK COMPATIBILITY IDEOGRAPH-2F966;Lo;0;L;7CD2;;;;N;;;;;
-2F967;CJK COMPATIBILITY IDEOGRAPH-2F967;Lo;0;L;42A0;;;;N;;;;;
-2F968;CJK COMPATIBILITY IDEOGRAPH-2F968;Lo;0;L;7CE8;;;;N;;;;;
-2F969;CJK COMPATIBILITY IDEOGRAPH-2F969;Lo;0;L;7CE3;;;;N;;;;;
-2F96A;CJK COMPATIBILITY IDEOGRAPH-2F96A;Lo;0;L;7D00;;;;N;;;;;
-2F96B;CJK COMPATIBILITY IDEOGRAPH-2F96B;Lo;0;L;25F86;;;;N;;;;;
-2F96C;CJK COMPATIBILITY IDEOGRAPH-2F96C;Lo;0;L;7D63;;;;N;;;;;
-2F96D;CJK COMPATIBILITY IDEOGRAPH-2F96D;Lo;0;L;4301;;;;N;;;;;
-2F96E;CJK COMPATIBILITY IDEOGRAPH-2F96E;Lo;0;L;7DC7;;;;N;;;;;
-2F96F;CJK COMPATIBILITY IDEOGRAPH-2F96F;Lo;0;L;7E02;;;;N;;;;;
-2F970;CJK COMPATIBILITY IDEOGRAPH-2F970;Lo;0;L;7E45;;;;N;;;;;
-2F971;CJK COMPATIBILITY IDEOGRAPH-2F971;Lo;0;L;4334;;;;N;;;;;
-2F972;CJK COMPATIBILITY IDEOGRAPH-2F972;Lo;0;L;26228;;;;N;;;;;
-2F973;CJK COMPATIBILITY IDEOGRAPH-2F973;Lo;0;L;26247;;;;N;;;;;
-2F974;CJK COMPATIBILITY IDEOGRAPH-2F974;Lo;0;L;4359;;;;N;;;;;
-2F975;CJK COMPATIBILITY IDEOGRAPH-2F975;Lo;0;L;262D9;;;;N;;;;;
-2F976;CJK COMPATIBILITY IDEOGRAPH-2F976;Lo;0;L;7F7A;;;;N;;;;;
-2F977;CJK COMPATIBILITY IDEOGRAPH-2F977;Lo;0;L;2633E;;;;N;;;;;
-2F978;CJK COMPATIBILITY IDEOGRAPH-2F978;Lo;0;L;7F95;;;;N;;;;;
-2F979;CJK COMPATIBILITY IDEOGRAPH-2F979;Lo;0;L;7FFA;;;;N;;;;;
-2F97A;CJK COMPATIBILITY IDEOGRAPH-2F97A;Lo;0;L;8005;;;;N;;;;;
-2F97B;CJK COMPATIBILITY IDEOGRAPH-2F97B;Lo;0;L;264DA;;;;N;;;;;
-2F97C;CJK COMPATIBILITY IDEOGRAPH-2F97C;Lo;0;L;26523;;;;N;;;;;
-2F97D;CJK COMPATIBILITY IDEOGRAPH-2F97D;Lo;0;L;8060;;;;N;;;;;
-2F97E;CJK COMPATIBILITY IDEOGRAPH-2F97E;Lo;0;L;265A8;;;;N;;;;;
-2F97F;CJK COMPATIBILITY IDEOGRAPH-2F97F;Lo;0;L;8070;;;;N;;;;;
-2F980;CJK COMPATIBILITY IDEOGRAPH-2F980;Lo;0;L;2335F;;;;N;;;;;
-2F981;CJK COMPATIBILITY IDEOGRAPH-2F981;Lo;0;L;43D5;;;;N;;;;;
-2F982;CJK COMPATIBILITY IDEOGRAPH-2F982;Lo;0;L;80B2;;;;N;;;;;
-2F983;CJK COMPATIBILITY IDEOGRAPH-2F983;Lo;0;L;8103;;;;N;;;;;
-2F984;CJK COMPATIBILITY IDEOGRAPH-2F984;Lo;0;L;440B;;;;N;;;;;
-2F985;CJK COMPATIBILITY IDEOGRAPH-2F985;Lo;0;L;813E;;;;N;;;;;
-2F986;CJK COMPATIBILITY IDEOGRAPH-2F986;Lo;0;L;5AB5;;;;N;;;;;
-2F987;CJK COMPATIBILITY IDEOGRAPH-2F987;Lo;0;L;267A7;;;;N;;;;;
-2F988;CJK COMPATIBILITY IDEOGRAPH-2F988;Lo;0;L;267B5;;;;N;;;;;
-2F989;CJK COMPATIBILITY IDEOGRAPH-2F989;Lo;0;L;23393;;;;N;;;;;
-2F98A;CJK COMPATIBILITY IDEOGRAPH-2F98A;Lo;0;L;2339C;;;;N;;;;;
-2F98B;CJK COMPATIBILITY IDEOGRAPH-2F98B;Lo;0;L;8201;;;;N;;;;;
-2F98C;CJK COMPATIBILITY IDEOGRAPH-2F98C;Lo;0;L;8204;;;;N;;;;;
-2F98D;CJK COMPATIBILITY IDEOGRAPH-2F98D;Lo;0;L;8F9E;;;;N;;;;;
-2F98E;CJK COMPATIBILITY IDEOGRAPH-2F98E;Lo;0;L;446B;;;;N;;;;;
-2F98F;CJK COMPATIBILITY IDEOGRAPH-2F98F;Lo;0;L;8291;;;;N;;;;;
-2F990;CJK COMPATIBILITY IDEOGRAPH-2F990;Lo;0;L;828B;;;;N;;;;;
-2F991;CJK COMPATIBILITY IDEOGRAPH-2F991;Lo;0;L;829D;;;;N;;;;;
-2F992;CJK COMPATIBILITY IDEOGRAPH-2F992;Lo;0;L;52B3;;;;N;;;;;
-2F993;CJK COMPATIBILITY IDEOGRAPH-2F993;Lo;0;L;82B1;;;;N;;;;;
-2F994;CJK COMPATIBILITY IDEOGRAPH-2F994;Lo;0;L;82B3;;;;N;;;;;
-2F995;CJK COMPATIBILITY IDEOGRAPH-2F995;Lo;0;L;82BD;;;;N;;;;;
-2F996;CJK COMPATIBILITY IDEOGRAPH-2F996;Lo;0;L;82E6;;;;N;;;;;
-2F997;CJK COMPATIBILITY IDEOGRAPH-2F997;Lo;0;L;26B3C;;;;N;;;;;
-2F998;CJK COMPATIBILITY IDEOGRAPH-2F998;Lo;0;L;82E5;;;;N;;;;;
-2F999;CJK COMPATIBILITY IDEOGRAPH-2F999;Lo;0;L;831D;;;;N;;;;;
-2F99A;CJK COMPATIBILITY IDEOGRAPH-2F99A;Lo;0;L;8363;;;;N;;;;;
-2F99B;CJK COMPATIBILITY IDEOGRAPH-2F99B;Lo;0;L;83AD;;;;N;;;;;
-2F99C;CJK COMPATIBILITY IDEOGRAPH-2F99C;Lo;0;L;8323;;;;N;;;;;
-2F99D;CJK COMPATIBILITY IDEOGRAPH-2F99D;Lo;0;L;83BD;;;;N;;;;;
-2F99E;CJK COMPATIBILITY IDEOGRAPH-2F99E;Lo;0;L;83E7;;;;N;;;;;
-2F99F;CJK COMPATIBILITY IDEOGRAPH-2F99F;Lo;0;L;8457;;;;N;;;;;
-2F9A0;CJK COMPATIBILITY IDEOGRAPH-2F9A0;Lo;0;L;8353;;;;N;;;;;
-2F9A1;CJK COMPATIBILITY IDEOGRAPH-2F9A1;Lo;0;L;83CA;;;;N;;;;;
-2F9A2;CJK COMPATIBILITY IDEOGRAPH-2F9A2;Lo;0;L;83CC;;;;N;;;;;
-2F9A3;CJK COMPATIBILITY IDEOGRAPH-2F9A3;Lo;0;L;83DC;;;;N;;;;;
-2F9A4;CJK COMPATIBILITY IDEOGRAPH-2F9A4;Lo;0;L;26C36;;;;N;;;;;
-2F9A5;CJK COMPATIBILITY IDEOGRAPH-2F9A5;Lo;0;L;26D6B;;;;N;;;;;
-2F9A6;CJK COMPATIBILITY IDEOGRAPH-2F9A6;Lo;0;L;26CD5;;;;N;;;;;
-2F9A7;CJK COMPATIBILITY IDEOGRAPH-2F9A7;Lo;0;L;452B;;;;N;;;;;
-2F9A8;CJK COMPATIBILITY IDEOGRAPH-2F9A8;Lo;0;L;84F1;;;;N;;;;;
-2F9A9;CJK COMPATIBILITY IDEOGRAPH-2F9A9;Lo;0;L;84F3;;;;N;;;;;
-2F9AA;CJK COMPATIBILITY IDEOGRAPH-2F9AA;Lo;0;L;8516;;;;N;;;;;
-2F9AB;CJK COMPATIBILITY IDEOGRAPH-2F9AB;Lo;0;L;273CA;;;;N;;;;;
-2F9AC;CJK COMPATIBILITY IDEOGRAPH-2F9AC;Lo;0;L;8564;;;;N;;;;;
-2F9AD;CJK COMPATIBILITY IDEOGRAPH-2F9AD;Lo;0;L;26F2C;;;;N;;;;;
-2F9AE;CJK COMPATIBILITY IDEOGRAPH-2F9AE;Lo;0;L;455D;;;;N;;;;;
-2F9AF;CJK COMPATIBILITY IDEOGRAPH-2F9AF;Lo;0;L;4561;;;;N;;;;;
-2F9B0;CJK COMPATIBILITY IDEOGRAPH-2F9B0;Lo;0;L;26FB1;;;;N;;;;;
-2F9B1;CJK COMPATIBILITY IDEOGRAPH-2F9B1;Lo;0;L;270D2;;;;N;;;;;
-2F9B2;CJK COMPATIBILITY IDEOGRAPH-2F9B2;Lo;0;L;456B;;;;N;;;;;
-2F9B3;CJK COMPATIBILITY IDEOGRAPH-2F9B3;Lo;0;L;8650;;;;N;;;;;
-2F9B4;CJK COMPATIBILITY IDEOGRAPH-2F9B4;Lo;0;L;865C;;;;N;;;;;
-2F9B5;CJK COMPATIBILITY IDEOGRAPH-2F9B5;Lo;0;L;8667;;;;N;;;;;
-2F9B6;CJK COMPATIBILITY IDEOGRAPH-2F9B6;Lo;0;L;8669;;;;N;;;;;
-2F9B7;CJK COMPATIBILITY IDEOGRAPH-2F9B7;Lo;0;L;86A9;;;;N;;;;;
-2F9B8;CJK COMPATIBILITY IDEOGRAPH-2F9B8;Lo;0;L;8688;;;;N;;;;;
-2F9B9;CJK COMPATIBILITY IDEOGRAPH-2F9B9;Lo;0;L;870E;;;;N;;;;;
-2F9BA;CJK COMPATIBILITY IDEOGRAPH-2F9BA;Lo;0;L;86E2;;;;N;;;;;
-2F9BB;CJK COMPATIBILITY IDEOGRAPH-2F9BB;Lo;0;L;8779;;;;N;;;;;
-2F9BC;CJK COMPATIBILITY IDEOGRAPH-2F9BC;Lo;0;L;8728;;;;N;;;;;
-2F9BD;CJK COMPATIBILITY IDEOGRAPH-2F9BD;Lo;0;L;876B;;;;N;;;;;
-2F9BE;CJK COMPATIBILITY IDEOGRAPH-2F9BE;Lo;0;L;8786;;;;N;;;;;
-2F9BF;CJK COMPATIBILITY IDEOGRAPH-2F9BF;Lo;0;L;45D7;;;;N;;;;;
-2F9C0;CJK COMPATIBILITY IDEOGRAPH-2F9C0;Lo;0;L;87E1;;;;N;;;;;
-2F9C1;CJK COMPATIBILITY IDEOGRAPH-2F9C1;Lo;0;L;8801;;;;N;;;;;
-2F9C2;CJK COMPATIBILITY IDEOGRAPH-2F9C2;Lo;0;L;45F9;;;;N;;;;;
-2F9C3;CJK COMPATIBILITY IDEOGRAPH-2F9C3;Lo;0;L;8860;;;;N;;;;;
-2F9C4;CJK COMPATIBILITY IDEOGRAPH-2F9C4;Lo;0;L;8863;;;;N;;;;;
-2F9C5;CJK COMPATIBILITY IDEOGRAPH-2F9C5;Lo;0;L;27667;;;;N;;;;;
-2F9C6;CJK COMPATIBILITY IDEOGRAPH-2F9C6;Lo;0;L;88D7;;;;N;;;;;
-2F9C7;CJK COMPATIBILITY IDEOGRAPH-2F9C7;Lo;0;L;88DE;;;;N;;;;;
-2F9C8;CJK COMPATIBILITY IDEOGRAPH-2F9C8;Lo;0;L;4635;;;;N;;;;;
-2F9C9;CJK COMPATIBILITY IDEOGRAPH-2F9C9;Lo;0;L;88FA;;;;N;;;;;
-2F9CA;CJK COMPATIBILITY IDEOGRAPH-2F9CA;Lo;0;L;34BB;;;;N;;;;;
-2F9CB;CJK COMPATIBILITY IDEOGRAPH-2F9CB;Lo;0;L;278AE;;;;N;;;;;
-2F9CC;CJK COMPATIBILITY IDEOGRAPH-2F9CC;Lo;0;L;27966;;;;N;;;;;
-2F9CD;CJK COMPATIBILITY IDEOGRAPH-2F9CD;Lo;0;L;46BE;;;;N;;;;;
-2F9CE;CJK COMPATIBILITY IDEOGRAPH-2F9CE;Lo;0;L;46C7;;;;N;;;;;
-2F9CF;CJK COMPATIBILITY IDEOGRAPH-2F9CF;Lo;0;L;8AA0;;;;N;;;;;
-2F9D0;CJK COMPATIBILITY IDEOGRAPH-2F9D0;Lo;0;L;8AED;;;;N;;;;;
-2F9D1;CJK COMPATIBILITY IDEOGRAPH-2F9D1;Lo;0;L;8B8A;;;;N;;;;;
-2F9D2;CJK COMPATIBILITY IDEOGRAPH-2F9D2;Lo;0;L;8C55;;;;N;;;;;
-2F9D3;CJK COMPATIBILITY IDEOGRAPH-2F9D3;Lo;0;L;27CA8;;;;N;;;;;
-2F9D4;CJK COMPATIBILITY IDEOGRAPH-2F9D4;Lo;0;L;8CAB;;;;N;;;;;
-2F9D5;CJK COMPATIBILITY IDEOGRAPH-2F9D5;Lo;0;L;8CC1;;;;N;;;;;
-2F9D6;CJK COMPATIBILITY IDEOGRAPH-2F9D6;Lo;0;L;8D1B;;;;N;;;;;
-2F9D7;CJK COMPATIBILITY IDEOGRAPH-2F9D7;Lo;0;L;8D77;;;;N;;;;;
-2F9D8;CJK COMPATIBILITY IDEOGRAPH-2F9D8;Lo;0;L;27F2F;;;;N;;;;;
-2F9D9;CJK COMPATIBILITY IDEOGRAPH-2F9D9;Lo;0;L;20804;;;;N;;;;;
-2F9DA;CJK COMPATIBILITY IDEOGRAPH-2F9DA;Lo;0;L;8DCB;;;;N;;;;;
-2F9DB;CJK COMPATIBILITY IDEOGRAPH-2F9DB;Lo;0;L;8DBC;;;;N;;;;;
-2F9DC;CJK COMPATIBILITY IDEOGRAPH-2F9DC;Lo;0;L;8DF0;;;;N;;;;;
-2F9DD;CJK COMPATIBILITY IDEOGRAPH-2F9DD;Lo;0;L;208DE;;;;N;;;;;
-2F9DE;CJK COMPATIBILITY IDEOGRAPH-2F9DE;Lo;0;L;8ED4;;;;N;;;;;
-2F9DF;CJK COMPATIBILITY IDEOGRAPH-2F9DF;Lo;0;L;8F38;;;;N;;;;;
-2F9E0;CJK COMPATIBILITY IDEOGRAPH-2F9E0;Lo;0;L;285D2;;;;N;;;;;
-2F9E1;CJK COMPATIBILITY IDEOGRAPH-2F9E1;Lo;0;L;285ED;;;;N;;;;;
-2F9E2;CJK COMPATIBILITY IDEOGRAPH-2F9E2;Lo;0;L;9094;;;;N;;;;;
-2F9E3;CJK COMPATIBILITY IDEOGRAPH-2F9E3;Lo;0;L;90F1;;;;N;;;;;
-2F9E4;CJK COMPATIBILITY IDEOGRAPH-2F9E4;Lo;0;L;9111;;;;N;;;;;
-2F9E5;CJK COMPATIBILITY IDEOGRAPH-2F9E5;Lo;0;L;2872E;;;;N;;;;;
-2F9E6;CJK COMPATIBILITY IDEOGRAPH-2F9E6;Lo;0;L;911B;;;;N;;;;;
-2F9E7;CJK COMPATIBILITY IDEOGRAPH-2F9E7;Lo;0;L;9238;;;;N;;;;;
-2F9E8;CJK COMPATIBILITY IDEOGRAPH-2F9E8;Lo;0;L;92D7;;;;N;;;;;
-2F9E9;CJK COMPATIBILITY IDEOGRAPH-2F9E9;Lo;0;L;92D8;;;;N;;;;;
-2F9EA;CJK COMPATIBILITY IDEOGRAPH-2F9EA;Lo;0;L;927C;;;;N;;;;;
-2F9EB;CJK COMPATIBILITY IDEOGRAPH-2F9EB;Lo;0;L;93F9;;;;N;;;;;
-2F9EC;CJK COMPATIBILITY IDEOGRAPH-2F9EC;Lo;0;L;9415;;;;N;;;;;
-2F9ED;CJK COMPATIBILITY IDEOGRAPH-2F9ED;Lo;0;L;28BFA;;;;N;;;;;
-2F9EE;CJK COMPATIBILITY IDEOGRAPH-2F9EE;Lo;0;L;958B;;;;N;;;;;
-2F9EF;CJK COMPATIBILITY IDEOGRAPH-2F9EF;Lo;0;L;4995;;;;N;;;;;
-2F9F0;CJK COMPATIBILITY IDEOGRAPH-2F9F0;Lo;0;L;95B7;;;;N;;;;;
-2F9F1;CJK COMPATIBILITY IDEOGRAPH-2F9F1;Lo;0;L;28D77;;;;N;;;;;
-2F9F2;CJK COMPATIBILITY IDEOGRAPH-2F9F2;Lo;0;L;49E6;;;;N;;;;;
-2F9F3;CJK COMPATIBILITY IDEOGRAPH-2F9F3;Lo;0;L;96C3;;;;N;;;;;
-2F9F4;CJK COMPATIBILITY IDEOGRAPH-2F9F4;Lo;0;L;5DB2;;;;N;;;;;
-2F9F5;CJK COMPATIBILITY IDEOGRAPH-2F9F5;Lo;0;L;9723;;;;N;;;;;
-2F9F6;CJK COMPATIBILITY IDEOGRAPH-2F9F6;Lo;0;L;29145;;;;N;;;;;
-2F9F7;CJK COMPATIBILITY IDEOGRAPH-2F9F7;Lo;0;L;2921A;;;;N;;;;;
-2F9F8;CJK COMPATIBILITY IDEOGRAPH-2F9F8;Lo;0;L;4A6E;;;;N;;;;;
-2F9F9;CJK COMPATIBILITY IDEOGRAPH-2F9F9;Lo;0;L;4A76;;;;N;;;;;
-2F9FA;CJK COMPATIBILITY IDEOGRAPH-2F9FA;Lo;0;L;97E0;;;;N;;;;;
-2F9FB;CJK COMPATIBILITY IDEOGRAPH-2F9FB;Lo;0;L;2940A;;;;N;;;;;
-2F9FC;CJK COMPATIBILITY IDEOGRAPH-2F9FC;Lo;0;L;4AB2;;;;N;;;;;
-2F9FD;CJK COMPATIBILITY IDEOGRAPH-2F9FD;Lo;0;L;29496;;;;N;;;;;
-2F9FE;CJK COMPATIBILITY IDEOGRAPH-2F9FE;Lo;0;L;980B;;;;N;;;;;
-2F9FF;CJK COMPATIBILITY IDEOGRAPH-2F9FF;Lo;0;L;980B;;;;N;;;;;
-2FA00;CJK COMPATIBILITY IDEOGRAPH-2FA00;Lo;0;L;9829;;;;N;;;;;
-2FA01;CJK COMPATIBILITY IDEOGRAPH-2FA01;Lo;0;L;295B6;;;;N;;;;;
-2FA02;CJK COMPATIBILITY IDEOGRAPH-2FA02;Lo;0;L;98E2;;;;N;;;;;
-2FA03;CJK COMPATIBILITY IDEOGRAPH-2FA03;Lo;0;L;4B33;;;;N;;;;;
-2FA04;CJK COMPATIBILITY IDEOGRAPH-2FA04;Lo;0;L;9929;;;;N;;;;;
-2FA05;CJK COMPATIBILITY IDEOGRAPH-2FA05;Lo;0;L;99A7;;;;N;;;;;
-2FA06;CJK COMPATIBILITY IDEOGRAPH-2FA06;Lo;0;L;99C2;;;;N;;;;;
-2FA07;CJK COMPATIBILITY IDEOGRAPH-2FA07;Lo;0;L;99FE;;;;N;;;;;
-2FA08;CJK COMPATIBILITY IDEOGRAPH-2FA08;Lo;0;L;4BCE;;;;N;;;;;
-2FA09;CJK COMPATIBILITY IDEOGRAPH-2FA09;Lo;0;L;29B30;;;;N;;;;;
-2FA0A;CJK COMPATIBILITY IDEOGRAPH-2FA0A;Lo;0;L;9B12;;;;N;;;;;
-2FA0B;CJK COMPATIBILITY IDEOGRAPH-2FA0B;Lo;0;L;9C40;;;;N;;;;;
-2FA0C;CJK COMPATIBILITY IDEOGRAPH-2FA0C;Lo;0;L;9CFD;;;;N;;;;;
-2FA0D;CJK COMPATIBILITY IDEOGRAPH-2FA0D;Lo;0;L;4CCE;;;;N;;;;;
-2FA0E;CJK COMPATIBILITY IDEOGRAPH-2FA0E;Lo;0;L;4CED;;;;N;;;;;
-2FA0F;CJK COMPATIBILITY IDEOGRAPH-2FA0F;Lo;0;L;9D67;;;;N;;;;;
-2FA10;CJK COMPATIBILITY IDEOGRAPH-2FA10;Lo;0;L;2A0CE;;;;N;;;;;
-2FA11;CJK COMPATIBILITY IDEOGRAPH-2FA11;Lo;0;L;4CF8;;;;N;;;;;
-2FA12;CJK COMPATIBILITY IDEOGRAPH-2FA12;Lo;0;L;2A105;;;;N;;;;;
-2FA13;CJK COMPATIBILITY IDEOGRAPH-2FA13;Lo;0;L;2A20E;;;;N;;;;;
-2FA14;CJK COMPATIBILITY IDEOGRAPH-2FA14;Lo;0;L;2A291;;;;N;;;;;
-2FA15;CJK COMPATIBILITY IDEOGRAPH-2FA15;Lo;0;L;9EBB;;;;N;;;;;
-2FA16;CJK COMPATIBILITY IDEOGRAPH-2FA16;Lo;0;L;4D56;;;;N;;;;;
-2FA17;CJK COMPATIBILITY IDEOGRAPH-2FA17;Lo;0;L;9EF9;;;;N;;;;;
-2FA18;CJK COMPATIBILITY IDEOGRAPH-2FA18;Lo;0;L;9EFE;;;;N;;;;;
-2FA19;CJK COMPATIBILITY IDEOGRAPH-2FA19;Lo;0;L;9F05;;;;N;;;;;
-2FA1A;CJK COMPATIBILITY IDEOGRAPH-2FA1A;Lo;0;L;9F0F;;;;N;;;;;
-2FA1B;CJK COMPATIBILITY IDEOGRAPH-2FA1B;Lo;0;L;9F16;;;;N;;;;;
-2FA1C;CJK COMPATIBILITY IDEOGRAPH-2FA1C;Lo;0;L;9F3B;;;;N;;;;;
-2FA1D;CJK COMPATIBILITY IDEOGRAPH-2FA1D;Lo;0;L;2A600;;;;N;;;;;
-E0001;LANGUAGE TAG;Cf;0;BN;;;;;N;;;;;
-E0020;TAG SPACE;Cf;0;BN;;;;;N;;;;;
-E0021;TAG EXCLAMATION MARK;Cf;0;BN;;;;;N;;;;;
-E0022;TAG QUOTATION MARK;Cf;0;BN;;;;;N;;;;;
-E0023;TAG NUMBER SIGN;Cf;0;BN;;;;;N;;;;;
-E0024;TAG DOLLAR SIGN;Cf;0;BN;;;;;N;;;;;
-E0025;TAG PERCENT SIGN;Cf;0;BN;;;;;N;;;;;
-E0026;TAG AMPERSAND;Cf;0;BN;;;;;N;;;;;
-E0027;TAG APOSTROPHE;Cf;0;BN;;;;;N;;;;;
-E0028;TAG LEFT PARENTHESIS;Cf;0;BN;;;;;N;;;;;
-E0029;TAG RIGHT PARENTHESIS;Cf;0;BN;;;;;N;;;;;
-E002A;TAG ASTERISK;Cf;0;BN;;;;;N;;;;;
-E002B;TAG PLUS SIGN;Cf;0;BN;;;;;N;;;;;
-E002C;TAG COMMA;Cf;0;BN;;;;;N;;;;;
-E002D;TAG HYPHEN-MINUS;Cf;0;BN;;;;;N;;;;;
-E002E;TAG FULL STOP;Cf;0;BN;;;;;N;;;;;
-E002F;TAG SOLIDUS;Cf;0;BN;;;;;N;;;;;
-E0030;TAG DIGIT ZERO;Cf;0;BN;;;;;N;;;;;
-E0031;TAG DIGIT ONE;Cf;0;BN;;;;;N;;;;;
-E0032;TAG DIGIT TWO;Cf;0;BN;;;;;N;;;;;
-E0033;TAG DIGIT THREE;Cf;0;BN;;;;;N;;;;;
-E0034;TAG DIGIT FOUR;Cf;0;BN;;;;;N;;;;;
-E0035;TAG DIGIT FIVE;Cf;0;BN;;;;;N;;;;;
-E0036;TAG DIGIT SIX;Cf;0;BN;;;;;N;;;;;
-E0037;TAG DIGIT SEVEN;Cf;0;BN;;;;;N;;;;;
-E0038;TAG DIGIT EIGHT;Cf;0;BN;;;;;N;;;;;
-E0039;TAG DIGIT NINE;Cf;0;BN;;;;;N;;;;;
-E003A;TAG COLON;Cf;0;BN;;;;;N;;;;;
-E003B;TAG SEMICOLON;Cf;0;BN;;;;;N;;;;;
-E003C;TAG LESS-THAN SIGN;Cf;0;BN;;;;;N;;;;;
-E003D;TAG EQUALS SIGN;Cf;0;BN;;;;;N;;;;;
-E003E;TAG GREATER-THAN SIGN;Cf;0;BN;;;;;N;;;;;
-E003F;TAG QUESTION MARK;Cf;0;BN;;;;;N;;;;;
-E0040;TAG COMMERCIAL AT;Cf;0;BN;;;;;N;;;;;
-E0041;TAG LATIN CAPITAL LETTER A;Cf;0;BN;;;;;N;;;;;
-E0042;TAG LATIN CAPITAL LETTER B;Cf;0;BN;;;;;N;;;;;
-E0043;TAG LATIN CAPITAL LETTER C;Cf;0;BN;;;;;N;;;;;
-E0044;TAG LATIN CAPITAL LETTER D;Cf;0;BN;;;;;N;;;;;
-E0045;TAG LATIN CAPITAL LETTER E;Cf;0;BN;;;;;N;;;;;
-E0046;TAG LATIN CAPITAL LETTER F;Cf;0;BN;;;;;N;;;;;
-E0047;TAG LATIN CAPITAL LETTER G;Cf;0;BN;;;;;N;;;;;
-E0048;TAG LATIN CAPITAL LETTER H;Cf;0;BN;;;;;N;;;;;
-E0049;TAG LATIN CAPITAL LETTER I;Cf;0;BN;;;;;N;;;;;
-E004A;TAG LATIN CAPITAL LETTER J;Cf;0;BN;;;;;N;;;;;
-E004B;TAG LATIN CAPITAL LETTER K;Cf;0;BN;;;;;N;;;;;
-E004C;TAG LATIN CAPITAL LETTER L;Cf;0;BN;;;;;N;;;;;
-E004D;TAG LATIN CAPITAL LETTER M;Cf;0;BN;;;;;N;;;;;
-E004E;TAG LATIN CAPITAL LETTER N;Cf;0;BN;;;;;N;;;;;
-E004F;TAG LATIN CAPITAL LETTER O;Cf;0;BN;;;;;N;;;;;
-E0050;TAG LATIN CAPITAL LETTER P;Cf;0;BN;;;;;N;;;;;
-E0051;TAG LATIN CAPITAL LETTER Q;Cf;0;BN;;;;;N;;;;;
-E0052;TAG LATIN CAPITAL LETTER R;Cf;0;BN;;;;;N;;;;;
-E0053;TAG LATIN CAPITAL LETTER S;Cf;0;BN;;;;;N;;;;;
-E0054;TAG LATIN CAPITAL LETTER T;Cf;0;BN;;;;;N;;;;;
-E0055;TAG LATIN CAPITAL LETTER U;Cf;0;BN;;;;;N;;;;;
-E0056;TAG LATIN CAPITAL LETTER V;Cf;0;BN;;;;;N;;;;;
-E0057;TAG LATIN CAPITAL LETTER W;Cf;0;BN;;;;;N;;;;;
-E0058;TAG LATIN CAPITAL LETTER X;Cf;0;BN;;;;;N;;;;;
-E0059;TAG LATIN CAPITAL LETTER Y;Cf;0;BN;;;;;N;;;;;
-E005A;TAG LATIN CAPITAL LETTER Z;Cf;0;BN;;;;;N;;;;;
-E005B;TAG LEFT SQUARE BRACKET;Cf;0;BN;;;;;N;;;;;
-E005C;TAG REVERSE SOLIDUS;Cf;0;BN;;;;;N;;;;;
-E005D;TAG RIGHT SQUARE BRACKET;Cf;0;BN;;;;;N;;;;;
-E005E;TAG CIRCUMFLEX ACCENT;Cf;0;BN;;;;;N;;;;;
-E005F;TAG LOW LINE;Cf;0;BN;;;;;N;;;;;
-E0060;TAG GRAVE ACCENT;Cf;0;BN;;;;;N;;;;;
-E0061;TAG LATIN SMALL LETTER A;Cf;0;BN;;;;;N;;;;;
-E0062;TAG LATIN SMALL LETTER B;Cf;0;BN;;;;;N;;;;;
-E0063;TAG LATIN SMALL LETTER C;Cf;0;BN;;;;;N;;;;;
-E0064;TAG LATIN SMALL LETTER D;Cf;0;BN;;;;;N;;;;;
-E0065;TAG LATIN SMALL LETTER E;Cf;0;BN;;;;;N;;;;;
-E0066;TAG LATIN SMALL LETTER F;Cf;0;BN;;;;;N;;;;;
-E0067;TAG LATIN SMALL LETTER G;Cf;0;BN;;;;;N;;;;;
-E0068;TAG LATIN SMALL LETTER H;Cf;0;BN;;;;;N;;;;;
-E0069;TAG LATIN SMALL LETTER I;Cf;0;BN;;;;;N;;;;;
-E006A;TAG LATIN SMALL LETTER J;Cf;0;BN;;;;;N;;;;;
-E006B;TAG LATIN SMALL LETTER K;Cf;0;BN;;;;;N;;;;;
-E006C;TAG LATIN SMALL LETTER L;Cf;0;BN;;;;;N;;;;;
-E006D;TAG LATIN SMALL LETTER M;Cf;0;BN;;;;;N;;;;;
-E006E;TAG LATIN SMALL LETTER N;Cf;0;BN;;;;;N;;;;;
-E006F;TAG LATIN SMALL LETTER O;Cf;0;BN;;;;;N;;;;;
-E0070;TAG LATIN SMALL LETTER P;Cf;0;BN;;;;;N;;;;;
-E0071;TAG LATIN SMALL LETTER Q;Cf;0;BN;;;;;N;;;;;
-E0072;TAG LATIN SMALL LETTER R;Cf;0;BN;;;;;N;;;;;
-E0073;TAG LATIN SMALL LETTER S;Cf;0;BN;;;;;N;;;;;
-E0074;TAG LATIN SMALL LETTER T;Cf;0;BN;;;;;N;;;;;
-E0075;TAG LATIN SMALL LETTER U;Cf;0;BN;;;;;N;;;;;
-E0076;TAG LATIN SMALL LETTER V;Cf;0;BN;;;;;N;;;;;
-E0077;TAG LATIN SMALL LETTER W;Cf;0;BN;;;;;N;;;;;
-E0078;TAG LATIN SMALL LETTER X;Cf;0;BN;;;;;N;;;;;
-E0079;TAG LATIN SMALL LETTER Y;Cf;0;BN;;;;;N;;;;;
-E007A;TAG LATIN SMALL LETTER Z;Cf;0;BN;;;;;N;;;;;
-E007B;TAG LEFT CURLY BRACKET;Cf;0;BN;;;;;N;;;;;
-E007C;TAG VERTICAL LINE;Cf;0;BN;;;;;N;;;;;
-E007D;TAG RIGHT CURLY BRACKET;Cf;0;BN;;;;;N;;;;;
-E007E;TAG TILDE;Cf;0;BN;;;;;N;;;;;
-E007F;CANCEL TAG;Cf;0;BN;;;;;N;;;;;
-E0100;VARIATION SELECTOR-17;Mn;0;NSM;;;;;N;;;;;
-E0101;VARIATION SELECTOR-18;Mn;0;NSM;;;;;N;;;;;
-E0102;VARIATION SELECTOR-19;Mn;0;NSM;;;;;N;;;;;
-E0103;VARIATION SELECTOR-20;Mn;0;NSM;;;;;N;;;;;
-E0104;VARIATION SELECTOR-21;Mn;0;NSM;;;;;N;;;;;
-E0105;VARIATION SELECTOR-22;Mn;0;NSM;;;;;N;;;;;
-E0106;VARIATION SELECTOR-23;Mn;0;NSM;;;;;N;;;;;
-E0107;VARIATION SELECTOR-24;Mn;0;NSM;;;;;N;;;;;
-E0108;VARIATION SELECTOR-25;Mn;0;NSM;;;;;N;;;;;
-E0109;VARIATION SELECTOR-26;Mn;0;NSM;;;;;N;;;;;
-E010A;VARIATION SELECTOR-27;Mn;0;NSM;;;;;N;;;;;
-E010B;VARIATION SELECTOR-28;Mn;0;NSM;;;;;N;;;;;
-E010C;VARIATION SELECTOR-29;Mn;0;NSM;;;;;N;;;;;
-E010D;VARIATION SELECTOR-30;Mn;0;NSM;;;;;N;;;;;
-E010E;VARIATION SELECTOR-31;Mn;0;NSM;;;;;N;;;;;
-E010F;VARIATION SELECTOR-32;Mn;0;NSM;;;;;N;;;;;
-E0110;VARIATION SELECTOR-33;Mn;0;NSM;;;;;N;;;;;
-E0111;VARIATION SELECTOR-34;Mn;0;NSM;;;;;N;;;;;
-E0112;VARIATION SELECTOR-35;Mn;0;NSM;;;;;N;;;;;
-E0113;VARIATION SELECTOR-36;Mn;0;NSM;;;;;N;;;;;
-E0114;VARIATION SELECTOR-37;Mn;0;NSM;;;;;N;;;;;
-E0115;VARIATION SELECTOR-38;Mn;0;NSM;;;;;N;;;;;
-E0116;VARIATION SELECTOR-39;Mn;0;NSM;;;;;N;;;;;
-E0117;VARIATION SELECTOR-40;Mn;0;NSM;;;;;N;;;;;
-E0118;VARIATION SELECTOR-41;Mn;0;NSM;;;;;N;;;;;
-E0119;VARIATION SELECTOR-42;Mn;0;NSM;;;;;N;;;;;
-E011A;VARIATION SELECTOR-43;Mn;0;NSM;;;;;N;;;;;
-E011B;VARIATION SELECTOR-44;Mn;0;NSM;;;;;N;;;;;
-E011C;VARIATION SELECTOR-45;Mn;0;NSM;;;;;N;;;;;
-E011D;VARIATION SELECTOR-46;Mn;0;NSM;;;;;N;;;;;
-E011E;VARIATION SELECTOR-47;Mn;0;NSM;;;;;N;;;;;
-E011F;VARIATION SELECTOR-48;Mn;0;NSM;;;;;N;;;;;
-E0120;VARIATION SELECTOR-49;Mn;0;NSM;;;;;N;;;;;
-E0121;VARIATION SELECTOR-50;Mn;0;NSM;;;;;N;;;;;
-E0122;VARIATION SELECTOR-51;Mn;0;NSM;;;;;N;;;;;
-E0123;VARIATION SELECTOR-52;Mn;0;NSM;;;;;N;;;;;
-E0124;VARIATION SELECTOR-53;Mn;0;NSM;;;;;N;;;;;
-E0125;VARIATION SELECTOR-54;Mn;0;NSM;;;;;N;;;;;
-E0126;VARIATION SELECTOR-55;Mn;0;NSM;;;;;N;;;;;
-E0127;VARIATION SELECTOR-56;Mn;0;NSM;;;;;N;;;;;
-E0128;VARIATION SELECTOR-57;Mn;0;NSM;;;;;N;;;;;
-E0129;VARIATION SELECTOR-58;Mn;0;NSM;;;;;N;;;;;
-E012A;VARIATION SELECTOR-59;Mn;0;NSM;;;;;N;;;;;
-E012B;VARIATION SELECTOR-60;Mn;0;NSM;;;;;N;;;;;
-E012C;VARIATION SELECTOR-61;Mn;0;NSM;;;;;N;;;;;
-E012D;VARIATION SELECTOR-62;Mn;0;NSM;;;;;N;;;;;
-E012E;VARIATION SELECTOR-63;Mn;0;NSM;;;;;N;;;;;
-E012F;VARIATION SELECTOR-64;Mn;0;NSM;;;;;N;;;;;
-E0130;VARIATION SELECTOR-65;Mn;0;NSM;;;;;N;;;;;
-E0131;VARIATION SELECTOR-66;Mn;0;NSM;;;;;N;;;;;
-E0132;VARIATION SELECTOR-67;Mn;0;NSM;;;;;N;;;;;
-E0133;VARIATION SELECTOR-68;Mn;0;NSM;;;;;N;;;;;
-E0134;VARIATION SELECTOR-69;Mn;0;NSM;;;;;N;;;;;
-E0135;VARIATION SELECTOR-70;Mn;0;NSM;;;;;N;;;;;
-E0136;VARIATION SELECTOR-71;Mn;0;NSM;;;;;N;;;;;
-E0137;VARIATION SELECTOR-72;Mn;0;NSM;;;;;N;;;;;
-E0138;VARIATION SELECTOR-73;Mn;0;NSM;;;;;N;;;;;
-E0139;VARIATION SELECTOR-74;Mn;0;NSM;;;;;N;;;;;
-E013A;VARIATION SELECTOR-75;Mn;0;NSM;;;;;N;;;;;
-E013B;VARIATION SELECTOR-76;Mn;0;NSM;;;;;N;;;;;
-E013C;VARIATION SELECTOR-77;Mn;0;NSM;;;;;N;;;;;
-E013D;VARIATION SELECTOR-78;Mn;0;NSM;;;;;N;;;;;
-E013E;VARIATION SELECTOR-79;Mn;0;NSM;;;;;N;;;;;
-E013F;VARIATION SELECTOR-80;Mn;0;NSM;;;;;N;;;;;
-E0140;VARIATION SELECTOR-81;Mn;0;NSM;;;;;N;;;;;
-E0141;VARIATION SELECTOR-82;Mn;0;NSM;;;;;N;;;;;
-E0142;VARIATION SELECTOR-83;Mn;0;NSM;;;;;N;;;;;
-E0143;VARIATION SELECTOR-84;Mn;0;NSM;;;;;N;;;;;
-E0144;VARIATION SELECTOR-85;Mn;0;NSM;;;;;N;;;;;
-E0145;VARIATION SELECTOR-86;Mn;0;NSM;;;;;N;;;;;
-E0146;VARIATION SELECTOR-87;Mn;0;NSM;;;;;N;;;;;
-E0147;VARIATION SELECTOR-88;Mn;0;NSM;;;;;N;;;;;
-E0148;VARIATION SELECTOR-89;Mn;0;NSM;;;;;N;;;;;
-E0149;VARIATION SELECTOR-90;Mn;0;NSM;;;;;N;;;;;
-E014A;VARIATION SELECTOR-91;Mn;0;NSM;;;;;N;;;;;
-E014B;VARIATION SELECTOR-92;Mn;0;NSM;;;;;N;;;;;
-E014C;VARIATION SELECTOR-93;Mn;0;NSM;;;;;N;;;;;
-E014D;VARIATION SELECTOR-94;Mn;0;NSM;;;;;N;;;;;
-E014E;VARIATION SELECTOR-95;Mn;0;NSM;;;;;N;;;;;
-E014F;VARIATION SELECTOR-96;Mn;0;NSM;;;;;N;;;;;
-E0150;VARIATION SELECTOR-97;Mn;0;NSM;;;;;N;;;;;
-E0151;VARIATION SELECTOR-98;Mn;0;NSM;;;;;N;;;;;
-E0152;VARIATION SELECTOR-99;Mn;0;NSM;;;;;N;;;;;
-E0153;VARIATION SELECTOR-100;Mn;0;NSM;;;;;N;;;;;
-E0154;VARIATION SELECTOR-101;Mn;0;NSM;;;;;N;;;;;
-E0155;VARIATION SELECTOR-102;Mn;0;NSM;;;;;N;;;;;
-E0156;VARIATION SELECTOR-103;Mn;0;NSM;;;;;N;;;;;
-E0157;VARIATION SELECTOR-104;Mn;0;NSM;;;;;N;;;;;
-E0158;VARIATION SELECTOR-105;Mn;0;NSM;;;;;N;;;;;
-E0159;VARIATION SELECTOR-106;Mn;0;NSM;;;;;N;;;;;
-E015A;VARIATION SELECTOR-107;Mn;0;NSM;;;;;N;;;;;
-E015B;VARIATION SELECTOR-108;Mn;0;NSM;;;;;N;;;;;
-E015C;VARIATION SELECTOR-109;Mn;0;NSM;;;;;N;;;;;
-E015D;VARIATION SELECTOR-110;Mn;0;NSM;;;;;N;;;;;
-E015E;VARIATION SELECTOR-111;Mn;0;NSM;;;;;N;;;;;
-E015F;VARIATION SELECTOR-112;Mn;0;NSM;;;;;N;;;;;
-E0160;VARIATION SELECTOR-113;Mn;0;NSM;;;;;N;;;;;
-E0161;VARIATION SELECTOR-114;Mn;0;NSM;;;;;N;;;;;
-E0162;VARIATION SELECTOR-115;Mn;0;NSM;;;;;N;;;;;
-E0163;VARIATION SELECTOR-116;Mn;0;NSM;;;;;N;;;;;
-E0164;VARIATION SELECTOR-117;Mn;0;NSM;;;;;N;;;;;
-E0165;VARIATION SELECTOR-118;Mn;0;NSM;;;;;N;;;;;
-E0166;VARIATION SELECTOR-119;Mn;0;NSM;;;;;N;;;;;
-E0167;VARIATION SELECTOR-120;Mn;0;NSM;;;;;N;;;;;
-E0168;VARIATION SELECTOR-121;Mn;0;NSM;;;;;N;;;;;
-E0169;VARIATION SELECTOR-122;Mn;0;NSM;;;;;N;;;;;
-E016A;VARIATION SELECTOR-123;Mn;0;NSM;;;;;N;;;;;
-E016B;VARIATION SELECTOR-124;Mn;0;NSM;;;;;N;;;;;
-E016C;VARIATION SELECTOR-125;Mn;0;NSM;;;;;N;;;;;
-E016D;VARIATION SELECTOR-126;Mn;0;NSM;;;;;N;;;;;
-E016E;VARIATION SELECTOR-127;Mn;0;NSM;;;;;N;;;;;
-E016F;VARIATION SELECTOR-128;Mn;0;NSM;;;;;N;;;;;
-E0170;VARIATION SELECTOR-129;Mn;0;NSM;;;;;N;;;;;
-E0171;VARIATION SELECTOR-130;Mn;0;NSM;;;;;N;;;;;
-E0172;VARIATION SELECTOR-131;Mn;0;NSM;;;;;N;;;;;
-E0173;VARIATION SELECTOR-132;Mn;0;NSM;;;;;N;;;;;
-E0174;VARIATION SELECTOR-133;Mn;0;NSM;;;;;N;;;;;
-E0175;VARIATION SELECTOR-134;Mn;0;NSM;;;;;N;;;;;
-E0176;VARIATION SELECTOR-135;Mn;0;NSM;;;;;N;;;;;
-E0177;VARIATION SELECTOR-136;Mn;0;NSM;;;;;N;;;;;
-E0178;VARIATION SELECTOR-137;Mn;0;NSM;;;;;N;;;;;
-E0179;VARIATION SELECTOR-138;Mn;0;NSM;;;;;N;;;;;
-E017A;VARIATION SELECTOR-139;Mn;0;NSM;;;;;N;;;;;
-E017B;VARIATION SELECTOR-140;Mn;0;NSM;;;;;N;;;;;
-E017C;VARIATION SELECTOR-141;Mn;0;NSM;;;;;N;;;;;
-E017D;VARIATION SELECTOR-142;Mn;0;NSM;;;;;N;;;;;
-E017E;VARIATION SELECTOR-143;Mn;0;NSM;;;;;N;;;;;
-E017F;VARIATION SELECTOR-144;Mn;0;NSM;;;;;N;;;;;
-E0180;VARIATION SELECTOR-145;Mn;0;NSM;;;;;N;;;;;
-E0181;VARIATION SELECTOR-146;Mn;0;NSM;;;;;N;;;;;
-E0182;VARIATION SELECTOR-147;Mn;0;NSM;;;;;N;;;;;
-E0183;VARIATION SELECTOR-148;Mn;0;NSM;;;;;N;;;;;
-E0184;VARIATION SELECTOR-149;Mn;0;NSM;;;;;N;;;;;
-E0185;VARIATION SELECTOR-150;Mn;0;NSM;;;;;N;;;;;
-E0186;VARIATION SELECTOR-151;Mn;0;NSM;;;;;N;;;;;
-E0187;VARIATION SELECTOR-152;Mn;0;NSM;;;;;N;;;;;
-E0188;VARIATION SELECTOR-153;Mn;0;NSM;;;;;N;;;;;
-E0189;VARIATION SELECTOR-154;Mn;0;NSM;;;;;N;;;;;
-E018A;VARIATION SELECTOR-155;Mn;0;NSM;;;;;N;;;;;
-E018B;VARIATION SELECTOR-156;Mn;0;NSM;;;;;N;;;;;
-E018C;VARIATION SELECTOR-157;Mn;0;NSM;;;;;N;;;;;
-E018D;VARIATION SELECTOR-158;Mn;0;NSM;;;;;N;;;;;
-E018E;VARIATION SELECTOR-159;Mn;0;NSM;;;;;N;;;;;
-E018F;VARIATION SELECTOR-160;Mn;0;NSM;;;;;N;;;;;
-E0190;VARIATION SELECTOR-161;Mn;0;NSM;;;;;N;;;;;
-E0191;VARIATION SELECTOR-162;Mn;0;NSM;;;;;N;;;;;
-E0192;VARIATION SELECTOR-163;Mn;0;NSM;;;;;N;;;;;
-E0193;VARIATION SELECTOR-164;Mn;0;NSM;;;;;N;;;;;
-E0194;VARIATION SELECTOR-165;Mn;0;NSM;;;;;N;;;;;
-E0195;VARIATION SELECTOR-166;Mn;0;NSM;;;;;N;;;;;
-E0196;VARIATION SELECTOR-167;Mn;0;NSM;;;;;N;;;;;
-E0197;VARIATION SELECTOR-168;Mn;0;NSM;;;;;N;;;;;
-E0198;VARIATION SELECTOR-169;Mn;0;NSM;;;;;N;;;;;
-E0199;VARIATION SELECTOR-170;Mn;0;NSM;;;;;N;;;;;
-E019A;VARIATION SELECTOR-171;Mn;0;NSM;;;;;N;;;;;
-E019B;VARIATION SELECTOR-172;Mn;0;NSM;;;;;N;;;;;
-E019C;VARIATION SELECTOR-173;Mn;0;NSM;;;;;N;;;;;
-E019D;VARIATION SELECTOR-174;Mn;0;NSM;;;;;N;;;;;
-E019E;VARIATION SELECTOR-175;Mn;0;NSM;;;;;N;;;;;
-E019F;VARIATION SELECTOR-176;Mn;0;NSM;;;;;N;;;;;
-E01A0;VARIATION SELECTOR-177;Mn;0;NSM;;;;;N;;;;;
-E01A1;VARIATION SELECTOR-178;Mn;0;NSM;;;;;N;;;;;
-E01A2;VARIATION SELECTOR-179;Mn;0;NSM;;;;;N;;;;;
-E01A3;VARIATION SELECTOR-180;Mn;0;NSM;;;;;N;;;;;
-E01A4;VARIATION SELECTOR-181;Mn;0;NSM;;;;;N;;;;;
-E01A5;VARIATION SELECTOR-182;Mn;0;NSM;;;;;N;;;;;
-E01A6;VARIATION SELECTOR-183;Mn;0;NSM;;;;;N;;;;;
-E01A7;VARIATION SELECTOR-184;Mn;0;NSM;;;;;N;;;;;
-E01A8;VARIATION SELECTOR-185;Mn;0;NSM;;;;;N;;;;;
-E01A9;VARIATION SELECTOR-186;Mn;0;NSM;;;;;N;;;;;
-E01AA;VARIATION SELECTOR-187;Mn;0;NSM;;;;;N;;;;;
-E01AB;VARIATION SELECTOR-188;Mn;0;NSM;;;;;N;;;;;
-E01AC;VARIATION SELECTOR-189;Mn;0;NSM;;;;;N;;;;;
-E01AD;VARIATION SELECTOR-190;Mn;0;NSM;;;;;N;;;;;
-E01AE;VARIATION SELECTOR-191;Mn;0;NSM;;;;;N;;;;;
-E01AF;VARIATION SELECTOR-192;Mn;0;NSM;;;;;N;;;;;
-E01B0;VARIATION SELECTOR-193;Mn;0;NSM;;;;;N;;;;;
-E01B1;VARIATION SELECTOR-194;Mn;0;NSM;;;;;N;;;;;
-E01B2;VARIATION SELECTOR-195;Mn;0;NSM;;;;;N;;;;;
-E01B3;VARIATION SELECTOR-196;Mn;0;NSM;;;;;N;;;;;
-E01B4;VARIATION SELECTOR-197;Mn;0;NSM;;;;;N;;;;;
-E01B5;VARIATION SELECTOR-198;Mn;0;NSM;;;;;N;;;;;
-E01B6;VARIATION SELECTOR-199;Mn;0;NSM;;;;;N;;;;;
-E01B7;VARIATION SELECTOR-200;Mn;0;NSM;;;;;N;;;;;
-E01B8;VARIATION SELECTOR-201;Mn;0;NSM;;;;;N;;;;;
-E01B9;VARIATION SELECTOR-202;Mn;0;NSM;;;;;N;;;;;
-E01BA;VARIATION SELECTOR-203;Mn;0;NSM;;;;;N;;;;;
-E01BB;VARIATION SELECTOR-204;Mn;0;NSM;;;;;N;;;;;
-E01BC;VARIATION SELECTOR-205;Mn;0;NSM;;;;;N;;;;;
-E01BD;VARIATION SELECTOR-206;Mn;0;NSM;;;;;N;;;;;
-E01BE;VARIATION SELECTOR-207;Mn;0;NSM;;;;;N;;;;;
-E01BF;VARIATION SELECTOR-208;Mn;0;NSM;;;;;N;;;;;
-E01C0;VARIATION SELECTOR-209;Mn;0;NSM;;;;;N;;;;;
-E01C1;VARIATION SELECTOR-210;Mn;0;NSM;;;;;N;;;;;
-E01C2;VARIATION SELECTOR-211;Mn;0;NSM;;;;;N;;;;;
-E01C3;VARIATION SELECTOR-212;Mn;0;NSM;;;;;N;;;;;
-E01C4;VARIATION SELECTOR-213;Mn;0;NSM;;;;;N;;;;;
-E01C5;VARIATION SELECTOR-214;Mn;0;NSM;;;;;N;;;;;
-E01C6;VARIATION SELECTOR-215;Mn;0;NSM;;;;;N;;;;;
-E01C7;VARIATION SELECTOR-216;Mn;0;NSM;;;;;N;;;;;
-E01C8;VARIATION SELECTOR-217;Mn;0;NSM;;;;;N;;;;;
-E01C9;VARIATION SELECTOR-218;Mn;0;NSM;;;;;N;;;;;
-E01CA;VARIATION SELECTOR-219;Mn;0;NSM;;;;;N;;;;;
-E01CB;VARIATION SELECTOR-220;Mn;0;NSM;;;;;N;;;;;
-E01CC;VARIATION SELECTOR-221;Mn;0;NSM;;;;;N;;;;;
-E01CD;VARIATION SELECTOR-222;Mn;0;NSM;;;;;N;;;;;
-E01CE;VARIATION SELECTOR-223;Mn;0;NSM;;;;;N;;;;;
-E01CF;VARIATION SELECTOR-224;Mn;0;NSM;;;;;N;;;;;
-E01D0;VARIATION SELECTOR-225;Mn;0;NSM;;;;;N;;;;;
-E01D1;VARIATION SELECTOR-226;Mn;0;NSM;;;;;N;;;;;
-E01D2;VARIATION SELECTOR-227;Mn;0;NSM;;;;;N;;;;;
-E01D3;VARIATION SELECTOR-228;Mn;0;NSM;;;;;N;;;;;
-E01D4;VARIATION SELECTOR-229;Mn;0;NSM;;;;;N;;;;;
-E01D5;VARIATION SELECTOR-230;Mn;0;NSM;;;;;N;;;;;
-E01D6;VARIATION SELECTOR-231;Mn;0;NSM;;;;;N;;;;;
-E01D7;VARIATION SELECTOR-232;Mn;0;NSM;;;;;N;;;;;
-E01D8;VARIATION SELECTOR-233;Mn;0;NSM;;;;;N;;;;;
-E01D9;VARIATION SELECTOR-234;Mn;0;NSM;;;;;N;;;;;
-E01DA;VARIATION SELECTOR-235;Mn;0;NSM;;;;;N;;;;;
-E01DB;VARIATION SELECTOR-236;Mn;0;NSM;;;;;N;;;;;
-E01DC;VARIATION SELECTOR-237;Mn;0;NSM;;;;;N;;;;;
-E01DD;VARIATION SELECTOR-238;Mn;0;NSM;;;;;N;;;;;
-E01DE;VARIATION SELECTOR-239;Mn;0;NSM;;;;;N;;;;;
-E01DF;VARIATION SELECTOR-240;Mn;0;NSM;;;;;N;;;;;
-E01E0;VARIATION SELECTOR-241;Mn;0;NSM;;;;;N;;;;;
-E01E1;VARIATION SELECTOR-242;Mn;0;NSM;;;;;N;;;;;
-E01E2;VARIATION SELECTOR-243;Mn;0;NSM;;;;;N;;;;;
-E01E3;VARIATION SELECTOR-244;Mn;0;NSM;;;;;N;;;;;
-E01E4;VARIATION SELECTOR-245;Mn;0;NSM;;;;;N;;;;;
-E01E5;VARIATION SELECTOR-246;Mn;0;NSM;;;;;N;;;;;
-E01E6;VARIATION SELECTOR-247;Mn;0;NSM;;;;;N;;;;;
-E01E7;VARIATION SELECTOR-248;Mn;0;NSM;;;;;N;;;;;
-E01E8;VARIATION SELECTOR-249;Mn;0;NSM;;;;;N;;;;;
-E01E9;VARIATION SELECTOR-250;Mn;0;NSM;;;;;N;;;;;
-E01EA;VARIATION SELECTOR-251;Mn;0;NSM;;;;;N;;;;;
-E01EB;VARIATION SELECTOR-252;Mn;0;NSM;;;;;N;;;;;
-E01EC;VARIATION SELECTOR-253;Mn;0;NSM;;;;;N;;;;;
-E01ED;VARIATION SELECTOR-254;Mn;0;NSM;;;;;N;;;;;
-E01EE;VARIATION SELECTOR-255;Mn;0;NSM;;;;;N;;;;;
-E01EF;VARIATION SELECTOR-256;Mn;0;NSM;;;;;N;;;;;
-F0000;<Plane 15 Private Use, First>;Co;0;L;;;;;N;;;;;
-FFFFD;<Plane 15 Private Use, Last>;Co;0;L;;;;;N;;;;;
-100000;<Plane 16 Private Use, First>;Co;0;L;;;;;N;;;;;
-10FFFD;<Plane 16 Private Use, Last>;Co;0;L;;;;;N;;;;;
/live/UnicodeData.txt
Property changes:
Deleted: svn:mime-type
## -1 +0,0 ##
-text/plain
\ No newline at end of property
Index: live/loadidx.js
===================================================================
--- live/loadidx.js (revision 509)
+++ live/loadidx.js (nonexistent)
@@ -1,12 +0,0 @@
-if (typeof dhtml == "undefined")
-{
- var dhtml = new Object();
- dhtml.supported = false;
-}
-
-if (dhtml.supported)
-{
- document.write(
- '<div class="standby" style="visibility: none;" id="div_status"'
- + '>LOADING INDEX <span id="dots">&nbsp;</span></div>');
-}
\ No newline at end of file
Index: live
===================================================================
--- live (revision 509)
+++ live (nonexistent)
/live
Property changes:
Deleted: svn:ignore
## -1,63 +0,0 ##
-_*.js
-
-bookmarklets
-
-cgi_buffer
-
-comp.lang.javascript
-
-Fortu-Net_de Private Nachricht senden-Dateien
-
-Greasemonkey
-
-how-to
-
-php.bak
-
-python
-
-MozPref
-
-perl
-
-sprintf.txt
-
-filedates.txt
-
-CHANGELOG
-
-dependencies.txt
-
-maketree.sh
-
-unicode-ranger.awk
-
-object.html
-
-ChangeLog.next
-
-tmp
-
-js-reserved-words.txt
-
-types.html
-
-dhtml.js.diff
-
-js-get-symbols
-
-tags
-
-js-tokens.txt
-
-js-tokenizer
-
-.directory
-
-php
-
-parallel.js
-
-*.swp
-
-faq