protected Map syntaxFontMap = null;
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/util/gui/xmleditor/XMLScanner.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/util/gui/xmleditor/XMLScanner.java
index 9477b34b3..af199d85c 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/util/gui/xmleditor/XMLScanner.java
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/util/gui/xmleditor/XMLScanner.java
@@ -65,7 +65,7 @@ public class XMLScanner {
protected int nextChar() {
try {
- current = (int)string.charAt(position);
+ current = string.charAt(position);
position++;
} catch (Exception ex) {
current = -1;
@@ -198,7 +198,7 @@ public class XMLScanner {
end = false;
} else if (current == ']') {
end = true;
- } else if (current == '>' && end == true) {
+ } else if (current == '>' && end) {
return CHARACTER_DATA_CONTEXT;
}
nextChar();
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/util/gui/xmleditor/XMLTextEditor.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/util/gui/xmleditor/XMLTextEditor.java
index 07c0708b7..eec7b5c56 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/util/gui/xmleditor/XMLTextEditor.java
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/util/gui/xmleditor/XMLTextEditor.java
@@ -19,7 +19,6 @@
package org.apache.batik.util.gui.xmleditor;
import java.awt.Color;
-import java.awt.Font;
import javax.swing.JEditorPane;
import javax.swing.event.UndoableEditEvent;
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/util/io/UTF8Decoder.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/util/io/UTF8Decoder.java
index 22f410595..65dec62b4 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/util/io/UTF8Decoder.java
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/util/io/UTF8Decoder.java
@@ -15,7 +15,7 @@
See the License for the specific language governing permissions and
limitations under the License.
-*/
+ */
package org.apache.batik.util.io;
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/util/resources/Messages.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/util/resources/Messages.java
index d5e3e9ce6..447fd83f6 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/util/resources/Messages.java
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/util/resources/Messages.java
@@ -15,7 +15,7 @@
See the License for the specific language governing permissions and
limitations under the License.
-*/
+ */
package org.apache.batik.util.resources;
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/CustomEvent.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/CustomEvent.java
index 2814edc46..cfe5981dd 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/CustomEvent.java
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/CustomEvent.java
@@ -32,7 +32,7 @@ public interface CustomEvent extends Event {
/**
* Specifies some detail information about the Event
.
*/
- public Object getDetail();
+ Object getDetail();
/**
* The initCustomEventNS
method is used to initialize the
@@ -49,10 +49,10 @@ public interface CustomEvent extends Event {
* @param detailArg Specifies CustomEvent.detail
. This
* value may be null
.
*/
- public void initCustomEventNS(String namespaceURI,
- String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- Object detailArg);
+ void initCustomEventNS(String namespaceURI,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ Object detailArg);
}
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/DocumentEvent.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/DocumentEvent.java
deleted file mode 100644
index 3e4831679..000000000
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/DocumentEvent.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (c) 2006 World Wide Web Consortium,
- *
- * (Massachusetts Institute of Technology, European Research Consortium for
- * Informatics and Mathematics, Keio University). All Rights Reserved. This
- * work is distributed under the W3C(r) Software License [1] 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.
- *
- * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
- */
-
-package org.apache.batik.w3c.dom.events;
-
-import org.w3c.dom.DOMException;
-
-/**
- * The DocumentEvent
interface provides a mechanism by which the
- * user can create an Event
object of a type supported by the
- * implementation. If the feature "Events" is supported by the
- * Document
object, the DocumentEvent
interface
- * must be implemented on the same object. If the feature "+Events" is
- * supported by the Document
object, an object that supports
- * the DocumentEvent
interface must be returned by invoking the
- * method Node.getFeature("+Events", "3.0")
on the
- * Document
object.
- * See also the
- Document Object Model (DOM) Level 3 Events Specification
- .
- * @since DOM Level 2
- */
-public interface DocumentEvent {
- /**
- *
- * @param eventType The eventType
parameter specifies the
- * name of the DOM Events interface to be supported by the created
- * event object, e.g. "Event"
, "MouseEvent"
,
- * "MutationEvent"
and so on. If the Event
- * is to be dispatched via the EventTarget.dispatchEvent()
- * method the appropriate event init method must be called after
- * creation in order to initialize the Event
's values.
- * As an example, a user wishing to synthesize some kind of
- * UIEvent
would invoke
- * DocumentEvent.createEvent("UIEvent")
. The
- * UIEvent.initUIEventNS()
method could then be called on
- * the newly created UIEvent
object to set the specific
- * type of user interface event to be dispatched, DOMActivate for
- * example, and set its context information, e.g.
- * UIEvent.detail
in this example.
- *
Note: For backward compatibility reason, "UIEvents",
- * "MouseEvents", "MutationEvents", and "HTMLEvents" feature names are
- * valid values for the parameter eventType
and represent
- * respectively the interfaces "UIEvent", "MouseEvent",
- * "MutationEvent", and "Event".
- * @return The newly created event object.
- * @exception DOMException
- * NOT_SUPPORTED_ERR: Raised if the implementation does not support the
- * Event
interface requested.
- */
- public Event createEvent(String eventType)
- throws DOMException;
-
- /**
- * Test if the implementation can generate events of a specified type.
- * @param namespaceURI Specifies the Event.namespaceURI
of
- * the event.
- * @param type Specifies the Event.type
of the event.
- * @return true
if the implementation can generate and
- * dispatch this event type, false
otherwise.
- * @since DOM Level 3
- */
- public boolean canDispatch(String namespaceURI,
- String type);
-
-}
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/Event.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/Event.java
deleted file mode 100644
index e1a92c92f..000000000
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/Event.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Copyright (c) 2006 World Wide Web Consortium,
- *
- * (Massachusetts Institute of Technology, European Research Consortium for
- * Informatics and Mathematics, Keio University). All Rights Reserved. This
- * work is distributed under the W3C(r) Software License [1] 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.
- *
- * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
- */
-
-package org.apache.batik.w3c.dom.events;
-
-/**
- * The Event
interface is used to provide contextual information
- * about an event to the listener processing the event. An object which
- * implements the Event
interface is passed as the parameter to
- * an EventListener
. More specific context information is
- * passed to event listeners by deriving additional interfaces from
- * Event
which contain information directly relating to the
- * type of event they represent. These derived interfaces are also
- * implemented by the object passed to the event listener.
- *
To create an instance of the Event
interface, use the
- * DocumentEvent.createEvent("Event")
method call.
- *
See also the
- Document Object Model (DOM) Level 3 Events Specification
- .
- * @since DOM Level 2
- */
-public interface Event {
- // PhaseType
- /**
- * The current event phase is the capture phase.
- */
- public static final short CAPTURING_PHASE = 1;
- /**
- * The current event is in the target phase, i.e. it is being evaluated
- * at the event target.
- */
- public static final short AT_TARGET = 2;
- /**
- * The current event phase is the bubbling phase.
- */
- public static final short BUBBLING_PHASE = 3;
-
- /**
- * The local name of the event type. The name must be an NCName as defined in [XML Namespaces 1.1]
- * and is case-sensitive.
- */
- public String getType();
-
- /**
- * Used to indicate the event target. This attribute contains the target
- * node when used with the .
- */
- public EventTarget getTarget();
-
- /**
- * Used to indicate the EventTarget
whose
- * EventListeners
are currently being processed. This is
- * particularly useful during the capture and bubbling phases. This
- * attribute could contain the target node or a target ancestor when
- * used with the .
- */
- public EventTarget getCurrentTarget();
-
- /**
- * Used to indicate which phase of event flow is currently being
- * accomplished.
- */
- public short getEventPhase();
-
- /**
- * Used to indicate whether or not an event is a bubbling event. If the
- * event can bubble the value is true
, otherwise the value
- * is false
.
- */
- public boolean getBubbles();
-
- /**
- * Used to indicate whether or not an event can have its default action
- * prevented (see also ). If the default action can be prevented the
- * value is true
, otherwise the value is false
- * .
- */
- public boolean getCancelable();
-
- /**
- * Used to specify the time at which the event was created in
- * milliseconds relative to 1970-01-01T00:00:00Z. Due to the fact that
- * some systems may not provide this information the value of
- * timeStamp
may be not available for all events. When not
- * available, the value is 0
.
- */
- public long getTimeStamp();
-
- /**
- * This method is used to prevent event listeners of the same group to be
- * triggered but its effect is deferred until all event listeners
- * attached on the Event.currentTarget
have been triggered
- * (see ). Once it has been called, further calls to that method have no
- * additional effect.
- *
Note: This method does not prevent the default action from
- * being invoked; use Event.preventDefault()
for that
- * effect.
- */
- public void stopPropagation();
-
- /**
- * If an event is cancelable, the preventDefault
method is
- * used to signify that the event is to be canceled, meaning any default
- * action normally taken by the implementation as a result of the event
- * will not occur (see also ), and thus independently of event groups.
- * Calling this method for a non-cancelable event has no effect.
- *
Note: This method does not stop the event propagation; use
- * Event.stopPropagation()
or
- * Event.stopImmediatePropagation()
for that effect.
- */
- public void preventDefault();
-
- /**
- * The initEvent
method is used to initialize the value of
- * an Event
created through the
- * DocumentEvent.createEvent
method. This method may only
- * be called before the Event
has been dispatched via the
- * EventTarget.dispatchEvent()
method. If the method is
- * called several times before invoking
- * EventTarget.dispatchEvent
, only the final invocation
- * takes precedence. This method has no effect if called after the event
- * has been dispatched. If called from a subclass of the
- * Event
interface only the values specified in this method
- * are modified, all other attributes are left unchanged.
- *
This method sets the Event.type
attribute to
- * eventTypeArg
, and Event.namespaceURI
to
- * null
. To initialize an event with a namespace URI, use
- * the Event.initEventNS()
method.
- * @param eventTypeArg Specifies Event.type
, the local name
- * of the event type.
- * @param canBubbleArg Specifies Event.bubbles
. This
- * parameter overrides the intrinsic bubbling behavior of the event.
- * @param cancelableArg Specifies Event.cancelable
. This
- * parameter overrides the intrinsic cancelable behavior of the event.
- *
- */
- public void initEvent(String eventTypeArg,
- boolean canBubbleArg,
- boolean cancelableArg);
-
- /**
- * The namespace URI associated with this event at creation time, or
- * null
if it is unspecified.
- *
For events initialized with a DOM Level 2 Events method, such as
- * Event.initEvent()
, this is always null
.
- * @since DOM Level 3
- */
- public String getNamespaceURI();
-
- /**
- * This method is used to prevent event listeners of the same group to be
- * triggered and, unlike Event.stopPropagation()
its effect
- * is immediate (see ). Once it has been called, further calls to that
- * method have no additional effect.
- *
Note: This method does not prevent the default action from
- * being invoked; use Event.preventDefault()
for that
- * effect.
- * @since DOM Level 3
- */
- public void stopImmediatePropagation();
-
- /**
- * Used to indicate whether Event.preventDefault()
has been
- * called for this event.
- * @since DOM Level 3
- */
- public boolean getDefaultPrevented();
-
- /**
- * The initEventNS
method is used to initialize the value of
- * an Event
object and has the same behavior as
- * Event.initEvent()
.
- * @param namespaceURIArg Specifies Event.namespaceURI
, the
- * namespace URI associated with this event, or null
if
- * no namespace.
- * @param eventTypeArg Refer to the Event.initEvent()
- * method for a description of this parameter.
- * @param canBubbleArg Refer to the Event.initEvent()
- * method for a description of this parameter.
- * @param cancelableArg Refer to the Event.initEvent()
- * method for a description of this parameter.
- * @since DOM Level 3
- */
- public void initEventNS(String namespaceURIArg,
- String eventTypeArg,
- boolean canBubbleArg,
- boolean cancelableArg);
-
-}
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/EventException.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/EventException.java
deleted file mode 100644
index 87af5fe3f..000000000
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/EventException.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (c) 2006 World Wide Web Consortium,
- *
- * (Massachusetts Institute of Technology, European Research Consortium for
- * Informatics and Mathematics, Keio University). All Rights Reserved. This
- * work is distributed under the W3C(r) Software License [1] 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.
- *
- * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
- */
-
-package org.apache.batik.w3c.dom.events;
-
-/**
- * Event operations may throw an EventException
as specified in
- * their method descriptions.
- *
See also the
- Document Object Model (DOM) Level 3 Events Specification
- .
- * @since DOM Level 2
- */
-public class EventException extends RuntimeException {
- public EventException(short code, String message) {
- super(message);
- this.code = code;
- }
- public short code;
- // EventExceptionCode
- /**
- * If the Event.type
was not specified by initializing the
- * event before the method was called. Specification of the
- * Event.type
as null
or an empty string will
- * also trigger this exception.
- */
- public static final short UNSPECIFIED_EVENT_TYPE_ERR = 0;
- /**
- * If the Event
object is already dispatched in the tree.
- * @since DOM Level 3
- */
- public static final short DISPATCH_REQUEST_ERR = 1;
-
-}
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/EventListener.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/EventListener.java
deleted file mode 100644
index 7be62ae02..000000000
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/EventListener.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2006 World Wide Web Consortium,
- *
- * (Massachusetts Institute of Technology, European Research Consortium for
- * Informatics and Mathematics, Keio University). All Rights Reserved. This
- * work is distributed under the W3C(r) Software License [1] 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.
- *
- * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
- */
-
-package org.apache.batik.w3c.dom.events;
-
-/**
- * The EventListener
interface is the primary way for handling
- * events. Users implement the EventListener
interface and
- * register their event listener on an EventTarget
. The users
- * should also remove their EventListener
from its
- * EventTarget
after they have completed using the listener.
- *
Copying a Node
, with methods such as
- * Node.cloneNode
or Range.cloneContents
, does not
- * copy the event listeners attached to it. Event listeners must be attached
- * to the newly created Node
afterwards if so desired.
- *
Moving a Node
, with methods Document.adoptNode
- * , Node.appendChild
, or Range.extractContents
,
- * does not affect the event listeners attached to it.
- *
See also the
- Document Object Model (DOM) Level 3 Events Specification
- .
- * @since DOM Level 2
- */
-public interface EventListener {
- /**
- * This method is called whenever an event occurs of the event type for
- * which the EventListener
interface was registered.
- * @param evt The Event
contains contextual information
- * about the event.
- */
- public void handleEvent(Event evt);
-
-}
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/EventTarget.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/EventTarget.java
deleted file mode 100644
index 47ad86793..000000000
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/EventTarget.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright (c) 2006 World Wide Web Consortium,
- *
- * (Massachusetts Institute of Technology, European Research Consortium for
- * Informatics and Mathematics, Keio University). All Rights Reserved. This
- * work is distributed under the W3C(r) Software License [1] 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.
- *
- * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
- */
-
-package org.apache.batik.w3c.dom.events;
-
-import org.w3c.dom.DOMException;
-
-/**
- * The EventTarget
interface is implemented by all the objects
- * which could be event targets in an implementation which supports the .
- * The interface allows registration and removal of event listeners, and
- * dispatch of events to an event target.
- *
When used with , this interface is implemented by all target nodes and
- * target ancestors, i.e. all DOM Nodes
of the tree support
- * this interface when the implementation conforms to DOM Level 3 Events
- * and, therefore, this interface can be obtained by using binding-specific
- * casting methods on an instance of the Node
interface.
- *
Invoking addEventListener
or
- * addEventListenerNS
repeatedly on the same
- * EventTarget
with the same values for the parameters
- * namespaceURI
, type
, listener
, and
- * useCapture
has no effect. Doing so does not cause the
- * EventListener
to be called more than once and does not cause
- * a change in the triggering order. In order to register a listener for a
- * different event group () the previously registered listener has to be
- * removed first.
- *
See also the
- Document Object Model (DOM) Level 3 Events Specification
- .
- * @since DOM Level 2
- */
-public interface EventTarget {
- /**
- * This method allows the registration of an event listener in the
- * default group and, depending on the useCapture
- * parameter, on the capture phase of the DOM event flow or its target
- * and bubbling phases. Invoking this method is equivalent to invoking
- * addEventListenerNS
with the same values for the
- * parameters type
, listener
, and
- * useCapture
, and the value null
for the
- * parameters namespaceURI
and evtGroup
.
- * @param type Specifies the Event.type
associated with the
- * event for which the user is registering.
- * @param listener The listener
parameter takes an object
- * implemented by the user which implements the
- * EventListener
interface and contains the method to be
- * called when the event occurs.
- * @param useCapture If true, useCapture
indicates that the
- * user wishes to add the event listener for the capture phase only,
- * i.e. this event listener will not be triggered during the target
- * and bubbling phases. If false
, the event listener will
- * only be triggered during the target and bubbling phases.
- */
- public void addEventListener(String type,
- EventListener listener,
- boolean useCapture);
-
- /**
- * This method allows the removal of event listeners from the default
- * group. Calling removeEventListener
with arguments which
- * do not identify any currently registered EventListener
- * on the EventTarget
has no effect. The
- * Event.namespaceURI
for which the user registered the
- * event listener is implied and is null
.
- *
Note: Event listeners registered for other event groups
- * than the default group cannot be removed using this method; see
- * EventTarget.removeEventListenerNS()
for that effect.
- * @param type Specifies the Event.type
for which the user
- * registered the event listener.
- * @param listener The EventListener
to be removed.
- * @param useCapture Specifies whether the EventListener
- * being removed was registered for the capture phase or not. If a
- * listener was registered twice, once for the capture phase and once
- * for the target and bubbling phases, each must be removed
- * separately. Removal of an event listener registered for the capture
- * phase does not affect the same event listener registered for the
- * target and bubbling phases, and vice versa.
- */
- public void removeEventListener(String type,
- EventListener listener,
- boolean useCapture);
-
- /**
- * This method allows the dispatch of events into the implementation's
- * event model. The event target of the event is the
- * EventTarget
object on which dispatchEvent
- * is called.
- * @param evt The event to be dispatched.
- * @return Indicates whether any of the listeners which handled the
- * event called Event.preventDefault()
. If
- * Event.preventDefault()
was called the returned value
- * is false
, else it is true
.
- * @exception EventException
- * UNSPECIFIED_EVENT_TYPE_ERR: Raised if the Event.type
- * was not specified by initializing the event before
- * dispatchEvent
was called. Specification of the
- * Event.type
as null
or an empty string
- * will also trigger this exception.
- *
DISPATCH_REQUEST_ERR: Raised if the Event
object is
- * already being dispatched.
- * @exception DOMException
- * NOT_SUPPORTED_ERR: Raised if the Event
object has not
- * been created using DocumentEvent.createEvent()
.
- *
INVALID_CHARACTER_ERR: Raised if Event.type
is not
- * an NCName as defined in [XML Namespaces 1.1]
- * .
- * @version DOM Level 3
- */
- public boolean dispatchEvent(Event evt)
- throws EventException, DOMException;
-
- /**
- * This method allows the registration of an event listener in a
- * specified group or the default group and, depending on the
- * useCapture
parameter, on the capture phase of the DOM
- * event flow or its target and bubbling phases.
- * @param namespaceURI Specifies the Event.namespaceURI
- * associated with the event for which the user is registering.
- * @param type Refer to the EventTarget.addEventListener()
- * method for a description of this parameter.
- * @param listener Refer to the
- * EventTarget.addEventListener()
method for a
- * description of this parameter.
- * @param useCapture Refer to the
- * EventTarget.addEventListener()
method for a
- * description of this parameter.
- * @param evtGroup The object that represents the event group to
- * associate with the EventListener
(see also ). Use
- * null
to attach the event listener to the default
- * group.
- * @since DOM Level 3
- */
- public void addEventListenerNS(String namespaceURI,
- String type,
- EventListener listener,
- boolean useCapture,
- Object evtGroup);
-
- /**
- * This method allows the removal of an event listener, independently of
- * the associated event group. Calling removeEventListenerNS
- * with arguments which do not identify any currently registered
- * EventListener
on the EventTarget
has no
- * effect.
- * @param namespaceURI Specifies the Event.namespaceURI
- * associated with the event for which the user registered the event
- * listener.
- * @param type Refer to the
- * EventTarget.removeEventListener()
method for a
- * description of this parameter.
- * @param listener Refer to the
- * EventTarget.removeEventListener()
method for a
- * description of this parameter.
- * @param useCapture Refer to the
- * EventTarget.removeEventListener()
method for a
- * description of this parameter.
- * @since DOM Level 3
- */
- public void removeEventListenerNS(String namespaceURI,
- String type,
- EventListener listener,
- boolean useCapture);
-
-}
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/KeyboardEvent.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/KeyboardEvent.java
index 682e346b2..6eb4ce6a7 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/KeyboardEvent.java
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/KeyboardEvent.java
@@ -42,25 +42,25 @@ public interface KeyboardEvent extends UIEvent {
* originate with a virtual key corresponding to the numeric keypad).
* Example: the 'Q' key on a PC 101 Key US keyboard.
*/
- public static final int DOM_KEY_LOCATION_STANDARD = 0x00;
+ int DOM_KEY_LOCATION_STANDARD = 0x00;
/**
* The key activated is in the left key location (there is more than one
* possible location for this key). Example: the left Shift key on a PC
* 101 Key US keyboard.
*/
- public static final int DOM_KEY_LOCATION_LEFT = 0x01;
+ int DOM_KEY_LOCATION_LEFT = 0x01;
/**
* The key activation is in the right key location (there is more than
* one possible location for this key). Example: the right Shift key on
* a PC 101 Key US keyboard.
*/
- public static final int DOM_KEY_LOCATION_RIGHT = 0x02;
+ int DOM_KEY_LOCATION_RIGHT = 0x02;
/**
* The key activation originated on the numeric keypad or with a virtual
* key corresponding to the numeric keypad. Example: the '1' key on a PC
* 101 Key US keyboard located on the numeric pad.
*/
- public static final int DOM_KEY_LOCATION_NUMPAD = 0x03;
+ int DOM_KEY_LOCATION_NUMPAD = 0x03;
/**
* keyIdentifier
holds the identifier of the key. The key
@@ -68,37 +68,37 @@ public interface KeyboardEvent extends UIEvent {
* unable to identify a key must use the key identifier
* "Unidentified"
.
*/
- public String getKeyIdentifier();
+ String getKeyIdentifier();
/**
* The keyLocation
attribute contains an indication of the
* location of they key on the device, as described in .
*/
- public int getKeyLocation();
+ int getKeyLocation();
/**
* true
if the control (Ctrl) key modifier is activated.
*/
- public boolean getCtrlKey();
+ boolean getCtrlKey();
/**
* true
if the shift (Shift) key modifier is activated.
*/
- public boolean getShiftKey();
+ boolean getShiftKey();
/**
* true
if the alternative (Alt) key modifier is activated.
*
Note: The Option key modifier on Macintosh systems must be
* represented using this key modifier.
*/
- public boolean getAltKey();
+ boolean getAltKey();
/**
* true
if the meta (Meta) key modifier is activated.
*
Note: The Command key modifier on Macintosh systems must be
* represented using this key modifier.
*/
- public boolean getMetaKey();
+ boolean getMetaKey();
/**
* This methods queries the state of a modifier using a key identifier.
@@ -114,7 +114,7 @@ public interface KeyboardEvent extends UIEvent {
* @return true
if it is modifier key and the modifier is
* activated, false
otherwise.
*/
- public boolean getModifierState(String keyIdentifierArg);
+ boolean getModifierState(String keyIdentifierArg);
/**
* The initKeyboardEvent
method is used to initialize the
@@ -133,16 +133,17 @@ public interface KeyboardEvent extends UIEvent {
* KeyboardEvent.keyIdentifier
.
* @param keyLocationArg Specifies KeyboardEvent.keyLocation
* .
- * @param modifiersList A white space separated list of modifier key identifiers to be activated on this
+ * @param modifiersList A white space separated
+ * list of modifier key identifiers to be activated on this
* object.
*/
- public void initKeyboardEvent(String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- String keyIdentifierArg,
- int keyLocationArg,
- String modifiersList);
+ void initKeyboardEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ String keyIdentifierArg,
+ int keyLocationArg,
+ String modifiersList);
/**
* The initKeyboardEventNS
method is used to initialize the
@@ -165,17 +166,18 @@ public interface KeyboardEvent extends UIEvent {
* @param keyLocationArg Refer to the
* KeyboardEvent.initKeyboardEvent()
method for a
* description of this parameter.
- * @param modifiersList A white space separated list of modifier key identifiers to be activated on this
+ * @param modifiersList A white space separated
+ * list of modifier key identifiers to be activated on this
* object. As an example, "Control Alt"
will activated
* the control and alt modifiers.
*/
- public void initKeyboardEventNS(String namespaceURI,
- String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- String keyIdentifierArg,
- int keyLocationArg,
- String modifiersList);
+ void initKeyboardEventNS(String namespaceURI,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ String keyIdentifierArg,
+ int keyLocationArg,
+ String modifiersList);
}
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/MouseEvent.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/MouseEvent.java
deleted file mode 100644
index fd2bfe8cb..000000000
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/MouseEvent.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- * Copyright (c) 2006 World Wide Web Consortium,
- *
- * (Massachusetts Institute of Technology, European Research Consortium for
- * Informatics and Mathematics, Keio University). All Rights Reserved. This
- * work is distributed under the W3C(r) Software License [1] 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.
- *
- * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
- */
-
-package org.apache.batik.w3c.dom.events;
-
-import org.w3c.dom.views.AbstractView;
-
-/**
- * The MouseEvent
interface provides specific contextual
- * information associated with Mouse events.
- *
In the case of nested elements mouse events are always targeted at the
- * most deeply nested element. Ancestors of the targeted element may use
- * bubbling to obtain notification of mouse events which occur within theirs
- * descendent elements.
- *
To create an instance of the MouseEvent
interface, use the
- * DocumentEvent.createEvent("MouseEvent")
method call.
- *
Note: When initializing MouseEvent
objects using
- * initMouseEvent
or initMouseEventNS
,
- * implementations should use the client coordinates clientX
- * and clientY
for calculation of other coordinates (such as
- * target coordinates exposed by DOM Level 0 implementations).
- *
See also the
- Document Object Model (DOM) Level 3 Events Specification
- .
- * @since DOM Level 2
- */
-public interface MouseEvent extends UIEvent {
- /**
- * The horizontal coordinate at which the event occurred relative to the
- * origin of the screen coordinate system.
- */
- public int getScreenX();
-
- /**
- * The vertical coordinate at which the event occurred relative to the
- * origin of the screen coordinate system.
- */
- public int getScreenY();
-
- /**
- * The horizontal coordinate at which the event occurred relative to the
- * DOM implementation's client area.
- */
- public int getClientX();
-
- /**
- * The vertical coordinate at which the event occurred relative to the
- * DOM implementation's client area.
- */
- public int getClientY();
-
- /**
- * true
if the control (Ctrl) key modifier is activated.
- */
- public boolean getCtrlKey();
-
- /**
- * true
if the shift (Shift) key modifier is activated.
- */
- public boolean getShiftKey();
-
- /**
- * true
if the alt (alternative) key modifier is activated.
- *
Note: The Option key modifier on Macintosh systems must be
- * represented using this key modifier.
- */
- public boolean getAltKey();
-
- /**
- * true
if the meta (Meta) key modifier is activated.
- *
Note: The Command key modifier on Macintosh system must be
- * represented using this meta key.
- */
- public boolean getMetaKey();
-
- /**
- * During mouse events caused by the depression or release of a mouse
- * button, button
is used to indicate which mouse button
- * changed state. 0
indicates the normal button of the
- * mouse (in general on the left or the one button on Macintosh mice,
- * used to activate a button or select text). 2
indicates
- * the contextual property (in general on the right, used to display a
- * context menu) button of the mouse if present. 1
- * indicates the extra (in general in the middle and often combined with
- * the mouse wheel) button. Some mice may provide or simulate more
- * buttons, and values higher than 2
can be used to
- * represent such buttons.
- */
- public short getButton();
-
- /**
- * Used to identify a secondary EventTarget
related to a UI
- * event, depending on the type of event.
- */
- public EventTarget getRelatedTarget();
-
- /**
- * The initMouseEvent
method is used to initialize the value
- * of a MouseEvent
object and has the same behavior as
- * UIEvent.initUIEvent()
.
- * @param typeArg Refer to the UIEvent.initUIEvent()
method
- * for a description of this parameter.
- * @param canBubbleArg Refer to the UIEvent.initUIEvent()
- * method for a description of this parameter.
- * @param cancelableArg Refer to the UIEvent.initUIEvent()
- * method for a description of this parameter.
- * @param viewArg Refer to the UIEvent.initUIEvent()
method
- * for a description of this parameter.
- * @param detailArg Refer to the UIEvent.initUIEvent()
- * method for a description of this parameter.
- * @param screenXArg Specifies MouseEvent.screenX
.
- * @param screenYArg Specifies MouseEvent.screenY
.
- * @param clientXArg Specifies MouseEvent.clientX
.
- * @param clientYArg Specifies MouseEvent.clientY
.
- * @param ctrlKeyArg Specifies MouseEvent.ctrlKey
.
- * @param altKeyArg Specifies MouseEvent.altKey
.
- * @param shiftKeyArg Specifies MouseEvent.shiftKey
.
- * @param metaKeyArg Specifies MouseEvent.metaKey
.
- * @param buttonArg Specifies MouseEvent.button
.
- * @param relatedTargetArg Specifies
- * MouseEvent.relatedTarget
. This value may be
- * null
.
- */
- public void initMouseEvent(String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- int detailArg,
- int screenXArg,
- int screenYArg,
- int clientXArg,
- int clientYArg,
- boolean ctrlKeyArg,
- boolean altKeyArg,
- boolean shiftKeyArg,
- boolean metaKeyArg,
- short buttonArg,
- EventTarget relatedTargetArg);
-
- /**
- * This methods queries the state of a modifier using a key identifier.
- * See also .
- * @param keyIdentifierArg A modifier key identifier, as defined by the
- * KeyboardEvent.keyIdentifier
attribute. Common modifier
- * keys are "Alt"
, "AltGraph"
,
- * "CapsLock"
, "Control"
, "Meta"
- * , "NumLock"
, "Scroll"
, or
- * "Shift"
.
- *
Note: If an application wishes to distinguish between
- * right and left modifiers, this information could be deduced using
- * keyboard events and KeyboardEvent.keyLocation
.
- * @return true
if it is modifier key and the modifier is
- * activated, false
otherwise.
- * @since DOM Level 3
- */
- public boolean getModifierState(String keyIdentifierArg);
-
- /**
- * The initMouseEventNS
method is used to initialize the
- * value of a MouseEvent
object and has the same behavior
- * as UIEvent.initUIEventNS()
.
- * @param namespaceURI Refer to the UIEvent.initUIEventNS()
- * method for a description of this parameter.
- * @param typeArg Refer to the UIEvent.initUIEventNS()
- * method for a description of this parameter.
- * @param canBubbleArg Refer to the UIEvent.initUIEventNS()
- * method for a description of this parameter.
- * @param cancelableArg Refer to the UIEvent.initUIEventNS()
- * method for a description of this parameter.
- * @param viewArg Refer to the UIEvent.initUIEventNS()
- * method for a description of this parameter.
- * @param detailArg Refer to the UIEvent.initUIEventNS()
- * method for a description of this parameter.
- * @param screenXArg Refer to the
- * MouseEvent.initMouseEvent()
method for a description
- * of this parameter.
- * @param screenYArg Refer to the
- * MouseEvent.initMouseEvent()
method for a description
- * of this parameter.
- * @param clientXArg Refer to the
- * MouseEvent.initMouseEvent()
method for a description
- * of this parameter.
- * @param clientYArg Refer to the
- * MouseEvent.initMouseEvent()
method for a description
- * of this parameter.
- * @param buttonArg Refer to the MouseEvent.initMouseEvent()
- * method for a description of this parameter.
- * @param relatedTargetArg Refer to the
- * MouseEvent.initMouseEvent()
method for a description
- * of this parameter.
- * @param modifiersList A white space separated list of modifier key identifiers to be activated on this
- * object. As an example, "Control Alt"
will activated
- * the control and alt modifiers.
- * @since DOM Level 3
- */
- public void initMouseEventNS(String namespaceURI,
- String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- int detailArg,
- int screenXArg,
- int screenYArg,
- int clientXArg,
- int clientYArg,
- short buttonArg,
- EventTarget relatedTargetArg,
- String modifiersList);
-
-}
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/MutationEvent.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/MutationEvent.java
deleted file mode 100644
index 33cba64f0..000000000
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/MutationEvent.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (c) 2006 World Wide Web Consortium,
- *
- * (Massachusetts Institute of Technology, European Research Consortium for
- * Informatics and Mathematics, Keio University). All Rights Reserved. This
- * work is distributed under the W3C(r) Software License [1] 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.
- *
- * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
- */
-
-package org.apache.batik.w3c.dom.events;
-
-import org.w3c.dom.Node;
-
-/**
- * The MutationEvent
interface provides specific contextual
- * information associated with Mutation events.
- *
To create an instance of the MutationEvent
interface, use
- * the DocumentEvent.createEvent("MutationEvent")
method call.
- *
See also the
- Document Object Model (DOM) Level 3 Events Specification
- .
- * @since DOM Level 2
- */
-public interface MutationEvent extends Event {
- // attrChangeType
- /**
- * The Attr
was modified in place.
- */
- public static final short MODIFICATION = 1;
- /**
- * The Attr
was just added.
- */
- public static final short ADDITION = 2;
- /**
- * The Attr
was just removed.
- */
- public static final short REMOVAL = 3;
-
- /**
- * relatedNode
is used to identify a secondary node related
- * to a mutation event. For example, if a mutation event is dispatched
- * to a node indicating that its parent has changed, the
- * relatedNode
is the changed parent. If an event is
- * instead dispatched to a subtree indicating a node was changed within
- * it, the relatedNode
is the changed node. In the case of
- * the DOMAttrModified event it indicates the Attr
node
- * which was modified, added, or removed.
- */
- public Node getRelatedNode();
-
- /**
- * prevValue
indicates the previous value of the
- * Attr
node in DOMAttrModified events, and of the
- * CharacterData
node in DOMCharacterDataModified events.
- */
- public String getPrevValue();
-
- /**
- * newValue
indicates the new value of the Attr
- * node in DOMAttrModified events, and of the CharacterData
- * node in DOMCharacterDataModified events.
- */
- public String getNewValue();
-
- /**
- * attrName
indicates the name of the changed
- * Attr
node in a DOMAttrModified event.
- */
- public String getAttrName();
-
- /**
- * attrChange
indicates the type of change which triggered
- * the DOMAttrModified event. The values can be MODIFICATION
- * , ADDITION
, or REMOVAL
.
- */
- public short getAttrChange();
-
- /**
- * The initMutationEvent
method is used to initialize the
- * value of a MutationEvent
object and has the same
- * behavior as Event.initEvent()
.
- * @param typeArg Refer to the Event.initEvent()
method for
- * a description of this parameter.
- * @param canBubbleArg Refer to the Event.initEvent()
- * method for a description of this parameter.
- * @param cancelableArg Refer to the Event.initEvent()
- * method for a description of this parameter.
- * @param relatedNodeArg Specifies MutationEvent.relatedNode
- * .
- * @param prevValueArg Specifies MutationEvent.prevValue
.
- * This value may be null.
- * @param newValueArg Specifies MutationEvent.newValue
.
- * This value may be null.
- * @param attrNameArg Specifies MutationEvent.attrname
.
- * This value may be null.
- * @param attrChangeArg Specifies MutationEvent.attrChange
.
- * This value may be null.
- */
- public void initMutationEvent(String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- Node relatedNodeArg,
- String prevValueArg,
- String newValueArg,
- String attrNameArg,
- short attrChangeArg);
-
- /**
- * The initMutationEventNS
method is used to initialize the
- * value of a MutationEvent
object and has the same
- * behavior as Event.initEventNS()
.
- * @param namespaceURI Refer to the Event.initEventNS()
- * method for a description of this parameter.
- * @param typeArg Refer to the Event.initEventNS()
method
- * for a description of this parameter.
- * @param canBubbleArg Refer to the Event.initEventNS()
- * method for a description of this parameter.
- * @param cancelableArg Refer to the Event.initEventNS()
- * method for a description of this parameter.
- * @param relatedNodeArg Refer to the
- * MutationEvent.initMutationEvent()
method for a
- * description of this parameter.
- * @param prevValueArg Refer to the
- * MutationEvent.initMutationEvent()
method for a
- * description of this parameter.
- * @param newValueArg Refer to the
- * MutationEvent.initMutationEvent()
method for a
- * description of this parameter.
- * @param attrNameArg Refer to the
- * MutationEvent.initMutationEvent()
method for a
- * description of this parameter.
- * @param attrChangeArg Refer to the
- * MutationEvent.initMutationEvent()
method for a
- * description of this parameter.
- * @since DOM Level 3
- */
- public void initMutationEventNS(String namespaceURI,
- String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- Node relatedNodeArg,
- String prevValueArg,
- String newValueArg,
- String attrNameArg,
- short attrChangeArg);
-
-}
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/MutationNameEvent.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/MutationNameEvent.java
index bc30073c9..df8a58ff1 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/MutationNameEvent.java
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/MutationNameEvent.java
@@ -31,13 +31,13 @@ public interface MutationNameEvent extends MutationEvent {
* The previous value of the relatedNode
's
* namespaceURI
.
*/
- public String getPrevNamespaceURI();
+ String getPrevNamespaceURI();
/**
* The previous value of the relatedNode
's
* nodeName
.
*/
- public String getPrevNodeName();
+ String getPrevNodeName();
/**
* The initMutationNameEvent
method is used to initialize
@@ -62,12 +62,12 @@ public interface MutationNameEvent extends MutationEvent {
* MutationNameEvent.prevNodeName
.
* @since DOM Level 3
*/
- public void initMutationNameEvent(String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- Node relatedNodeArg,
- String prevNamespaceURIArg,
- String prevNodeNameArg);
+ void initMutationNameEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ Node relatedNodeArg,
+ String prevNamespaceURIArg,
+ String prevNodeNameArg);
/**
* The initMutationNameEventNS
method is used to initialize
@@ -96,12 +96,12 @@ public interface MutationNameEvent extends MutationEvent {
* description of this parameter.
* @since DOM Level 3
*/
- public void initMutationNameEventNS(String namespaceURI,
- String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- Node relatedNodeArg,
- String prevNamespaceURIArg,
- String prevNodeNameArg);
+ void initMutationNameEventNS(String namespaceURI,
+ String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ Node relatedNodeArg,
+ String prevNamespaceURIArg,
+ String prevNodeNameArg);
}
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/TextEvent.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/TextEvent.java
index 7bab3958f..0efb66aed 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/TextEvent.java
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/TextEvent.java
@@ -33,7 +33,7 @@ public interface TextEvent extends UIEvent {
* normalization form NFC, defined in [UAX #15]. This attribute
* cannot be null or contain the empty string.
*/
- public String getData();
+ String getData();
/**
* The initTextEvent
method is used to initialize the value
@@ -50,11 +50,11 @@ public interface TextEvent extends UIEvent {
* for a description of this parameter.
* @param dataArg Specifies TextEvent.data
.
*/
- public void initTextEvent(String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- String dataArg);
+ void initTextEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ String dataArg);
/**
* The initTextEventNS
method is used to initialize the
@@ -74,11 +74,11 @@ public interface TextEvent extends UIEvent {
* @param dataArg Refer to the TextEvent.initTextEvent()
* method for a description of this parameter.
*/
- public void initTextEventNS(String namespaceURI,
- String type,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- String dataArg);
+ void initTextEventNS(String namespaceURI,
+ String type,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ String dataArg);
}
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/UIEvent.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/UIEvent.java
deleted file mode 100644
index 4171d7cfa..000000000
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/w3c/dom/events/UIEvent.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2006 World Wide Web Consortium,
- *
- * (Massachusetts Institute of Technology, European Research Consortium for
- * Informatics and Mathematics, Keio University). All Rights Reserved. This
- * work is distributed under the W3C(r) Software License [1] 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.
- *
- * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
- */
-
-package org.apache.batik.w3c.dom.events;
-
-import org.w3c.dom.views.AbstractView;
-
-/**
- * The UIEvent
interface provides specific contextual
- * information associated with User Interface events.
- *
To create an instance of the UIEvent
interface, use the
- * DocumentEvent.createEvent("UIEvent")
method call.
- *
See also the
- Document Object Model (DOM) Level 3 Events Specification
- .
- * @since DOM Level 2
- */
-public interface UIEvent extends Event {
- /**
- * The view
attribute identifies the
- * AbstractView
from which the event was generated.
- */
- public AbstractView getView();
-
- /**
- * Specifies some detail information about the Event
,
- * depending on the type of event.
- */
- public int getDetail();
-
- /**
- * The initUIEvent
method is used to initialize the value of
- * a UIEvent
object and has the same behavior as
- * Event.initEvent()
.
- * @param typeArg Refer to the Event.initEvent()
method for
- * a description of this parameter.
- * @param canBubbleArg Refer to the Event.initEvent()
- * method for a description of this parameter.
- * @param cancelableArg Refer to the Event.initEvent()
- * method for a description of this parameter.
- * @param viewArg Specifies UIEvent.view
. This value may be
- * null
.
- * @param detailArg Specifies UIEvent.detail
.
- */
- public void initUIEvent(String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- int detailArg);
-
- /**
- * The initUIEventNS
method is used to initialize the value
- * of a UIEvent
object and has the same behavior as
- * Event.initEventNS()
.
- * @param namespaceURI Refer to the Event.initEventNS()
- * method for a description of this parameter.
- * @param typeArg Refer to the Event.initEventNS()
method
- * for a description of this parameter.
- * @param canBubbleArg Refer to the Event.initEventNS()
- * method for a description of this parameter.
- * @param cancelableArg Refer to the Event.initEventNS()
- * method for a description of this parameter.
- * @param viewArg Refer to the UIEvent.initUIEvent()
method
- * for a description of this parameter.
- * @param detailArg Refer to the UIEvent.initUIEvent()
- * method for a description of this parameter.
- * @since DOM Level 3
- */
- public void initUIEventNS(String namespaceURI,
- String typeArg,
- boolean canBubbleArg,
- boolean cancelableArg,
- AbstractView viewArg,
- int detailArg);
-
-}
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/xml/XMLScanner.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/xml/XMLScanner.java
index 239d0c79a..00d586af9 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/xml/XMLScanner.java
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/xml/XMLScanner.java
@@ -2073,8 +2073,8 @@ public class XMLScanner implements Localizable {
try {
m = formatMessage(message,
new Object[] {
- new Integer(reader.getLine()),
- new Integer(reader.getColumn())
+ reader.getLine(),
+ reader.getColumn()
});
} catch (MissingResourceException e) {
m = message;
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/xml/XMLUtilities.java b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/xml/XMLUtilities.java
index b91179f05..daf72a4e2 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/xml/XMLUtilities.java
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/xml/XMLUtilities.java
@@ -15,7 +15,7 @@
See the License for the specific language governing permissions and
limitations under the License.
-*/
+ */
package org.apache.batik.xml;
@@ -91,7 +91,7 @@ public class XMLUtilities extends XMLCharacters {
* Tests whether the given 32 bits character is valid in XML documents.
* Because the majority of code-points is covered by the table-lookup-test,
* we do it first.
- * This method gives meaningful results only for c >= 0.
+ * This method gives meaningful results only for c >= 0.
*/
public static boolean isXMLCharacter(int c) {
@@ -275,7 +275,9 @@ public class XMLUtilities extends XMLCharacters {
return e;
}
- while (isXMLSpace((char)(c = r.read())));
+ while (isXMLSpace((char)(c = r.read()))) {
+ //skip
+ }
if (c != 'v') {
return e;
@@ -308,7 +310,9 @@ public class XMLUtilities extends XMLCharacters {
return e;
}
- while (isXMLSpace((char)(c = r.read())));
+ while (isXMLSpace((char)(c = r.read()))) {
+ //skip
+ }
if (c != '"' && c != '\'') {
return e;
@@ -328,7 +332,9 @@ public class XMLUtilities extends XMLCharacters {
if (!isXMLSpace((char)(c = r.read()))) {
return e;
}
- while (isXMLSpace((char)(c = r.read())));
+ while (isXMLSpace((char)(c = r.read()))) {
+ //skip
+ }
if (c != 'e') {
return e;
@@ -364,7 +370,9 @@ public class XMLUtilities extends XMLCharacters {
return e;
}
- while (isXMLSpace((char)(c = r.read())));
+ while (isXMLSpace((char)(c = r.read()))) {
+ //skip
+ }
if (c != '"' && c != '\'') {
return e;
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/LICENSE b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/LICENSE
new file mode 100644
index 000000000..3e4e3d004
--- /dev/null
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/META-INF/imports/script.txt b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/META-INF/imports/script.txt
new file mode 100755
index 000000000..b85dc2531
--- /dev/null
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/META-INF/imports/script.txt
@@ -0,0 +1,252 @@
+class java.lang.System # Optional
+
+# The rest are needed for SVG DOM conformance.
+# class org.apache.batik.w3c.dom.Window # conflicts with our Window class..
+class org.apache.batik.w3c.dom.Location
+class org.w3c.dom.Attr
+class org.w3c.dom.CDATASection
+class org.w3c.dom.CharacterData
+class org.w3c.dom.Comment
+class org.w3c.dom.DOMConfiguration
+class org.w3c.dom.DOMError
+class org.w3c.dom.DOMErrorHandler
+class org.w3c.dom.DOMException
+class org.w3c.dom.DOMImplementation
+class org.w3c.dom.DOMImplementationList
+class org.w3c.dom.DOMImplementationSource
+class org.w3c.dom.DOMLocator
+class org.w3c.dom.DOMStringList
+class org.w3c.dom.Document
+class org.w3c.dom.DocumentFragment
+class org.w3c.dom.DocumentType
+class org.w3c.dom.Element
+class org.w3c.dom.Entity
+class org.w3c.dom.EntityReference
+class org.w3c.dom.NameList
+class org.w3c.dom.NamedNodeMap
+class org.w3c.dom.Node
+class org.w3c.dom.NodeList
+class org.w3c.dom.Notation
+class org.w3c.dom.ProcessingInstruction
+class org.w3c.dom.Text
+class org.w3c.dom.TypeInfo
+class org.w3c.dom.UserDataHandler
+class org.w3c.dom.css.CSS2Properties
+class org.w3c.dom.css.CSSCharsetRule
+class org.w3c.dom.css.CSSFontFaceRule
+class org.w3c.dom.css.CSSImportRule
+class org.w3c.dom.css.CSSMediaRule
+class org.w3c.dom.css.CSSPageRule
+class org.w3c.dom.css.CSSPrimitiveValue
+class org.w3c.dom.css.CSSRule
+class org.w3c.dom.css.CSSRuleList
+class org.w3c.dom.css.CSSStyleDeclaration
+class org.w3c.dom.css.CSSStyleRule
+class org.w3c.dom.css.CSSStyleSheet
+class org.w3c.dom.css.CSSUnknownRule
+class org.w3c.dom.css.CSSValue
+class org.w3c.dom.css.CSSValueList
+class org.w3c.dom.css.Counter
+class org.w3c.dom.css.DOMImplementationCSS
+class org.w3c.dom.css.DocumentCSS
+class org.w3c.dom.css.ElementCSSInlineStyle
+class org.w3c.dom.css.RGBColor
+class org.w3c.dom.css.Rect
+class org.w3c.dom.css.ViewCSS
+class org.w3c.dom.events.DocumentEvent
+class org.w3c.dom.events.Event
+class org.w3c.dom.events.EventException
+class org.w3c.dom.events.EventListener
+class org.w3c.dom.events.EventTarget
+class org.w3c.dom.events.MouseEvent
+class org.w3c.dom.events.MutationEvent
+class org.w3c.dom.events.UIEvent
+class org.w3c.dom.stylesheets.DocumentStyle
+class org.w3c.dom.stylesheets.LinkStyle
+class org.w3c.dom.stylesheets.MediaList
+class org.w3c.dom.stylesheets.StyleSheet
+class org.w3c.dom.stylesheets.StyleSheetList
+class org.w3c.dom.views.AbstractView
+class org.w3c.dom.views.DocumentView
+class org.w3c.dom.xpath.XPathEvaluator
+class org.w3c.dom.xpath.XPathException
+class org.w3c.dom.xpath.XPathExpression
+class org.w3c.dom.xpath.XPathNSResolver
+class org.w3c.dom.xpath.XPathNamespace
+class org.w3c.dom.xpath.XPathResult
+class org.w3c.dom.smil.ElementTimeControl
+class org.w3c.dom.smil.TimeEvent
+class org.w3c.dom.svg.EventListenerInitializer
+class org.w3c.dom.svg.GetSVGDocument
+class org.w3c.dom.svg.SVGAElement
+class org.w3c.dom.svg.SVGAltGlyphDefElement
+class org.w3c.dom.svg.SVGAltGlyphElement
+class org.w3c.dom.svg.SVGAltGlyphItemElement
+class org.w3c.dom.svg.SVGAngle
+class org.w3c.dom.svg.SVGAnimateColorElement
+class org.w3c.dom.svg.SVGAnimateElement
+class org.w3c.dom.svg.SVGAnimateMotionElement
+class org.w3c.dom.svg.SVGAnimateTransformElement
+class org.w3c.dom.svg.SVGAnimatedAngle
+class org.w3c.dom.svg.SVGAnimatedBoolean
+class org.w3c.dom.svg.SVGAnimatedEnumeration
+class org.w3c.dom.svg.SVGAnimatedInteger
+class org.w3c.dom.svg.SVGAnimatedLength
+class org.w3c.dom.svg.SVGAnimatedLengthList
+class org.w3c.dom.svg.SVGAnimatedNumber
+class org.w3c.dom.svg.SVGAnimatedNumberList
+class org.w3c.dom.svg.SVGAnimatedPathData
+class org.w3c.dom.svg.SVGAnimatedPoints
+class org.w3c.dom.svg.SVGAnimatedPreserveAspectRatio
+class org.w3c.dom.svg.SVGAnimatedRect
+class org.w3c.dom.svg.SVGAnimatedString
+class org.w3c.dom.svg.SVGAnimatedTransformList
+class org.w3c.dom.svg.SVGAnimationElement
+class org.w3c.dom.svg.SVGCSSRule
+class org.w3c.dom.svg.SVGCircleElement
+class org.w3c.dom.svg.SVGClipPathElement
+class org.w3c.dom.svg.SVGColor
+class org.w3c.dom.svg.SVGColorProfileElement
+class org.w3c.dom.svg.SVGColorProfileRule
+class org.w3c.dom.svg.SVGComponentTransferFunctionElement
+class org.w3c.dom.svg.SVGCursorElement
+class org.w3c.dom.svg.SVGDefinitionSrcElement
+class org.w3c.dom.svg.SVGDefsElement
+class org.w3c.dom.svg.SVGDescElement
+class org.w3c.dom.svg.SVGDocument
+class org.w3c.dom.svg.SVGElement
+class org.w3c.dom.svg.SVGElementInstance
+class org.w3c.dom.svg.SVGElementInstanceList
+class org.w3c.dom.svg.SVGEllipseElement
+class org.w3c.dom.svg.SVGEvent
+class org.w3c.dom.svg.SVGException
+class org.w3c.dom.svg.SVGExternalResourcesRequired
+class org.w3c.dom.svg.SVGFEBlendElement
+class org.w3c.dom.svg.SVGFEColorMatrixElement
+class org.w3c.dom.svg.SVGFEComponentTransferElement
+class org.w3c.dom.svg.SVGFECompositeElement
+class org.w3c.dom.svg.SVGFEConvolveMatrixElement
+class org.w3c.dom.svg.SVGFEDiffuseLightingElement
+class org.w3c.dom.svg.SVGFEDisplacementMapElement
+class org.w3c.dom.svg.SVGFEDistantLightElement
+class org.w3c.dom.svg.SVGFEFloodElement
+class org.w3c.dom.svg.SVGFEFuncAElement
+class org.w3c.dom.svg.SVGFEFuncBElement
+class org.w3c.dom.svg.SVGFEFuncGElement
+class org.w3c.dom.svg.SVGFEFuncRElement
+class org.w3c.dom.svg.SVGFEGaussianBlurElement
+class org.w3c.dom.svg.SVGFEImageElement
+class org.w3c.dom.svg.SVGFEMergeElement
+class org.w3c.dom.svg.SVGFEMergeNodeElement
+class org.w3c.dom.svg.SVGFEMorphologyElement
+class org.w3c.dom.svg.SVGFEOffsetElement
+class org.w3c.dom.svg.SVGFEPointLightElement
+class org.w3c.dom.svg.SVGFESpecularLightingElement
+class org.w3c.dom.svg.SVGFESpotLightElement
+class org.w3c.dom.svg.SVGFETileElement
+class org.w3c.dom.svg.SVGFETurbulenceElement
+class org.w3c.dom.svg.SVGFilterElement
+class org.w3c.dom.svg.SVGFilterPrimitiveStandardAttributes
+class org.w3c.dom.svg.SVGFitToViewBox
+class org.w3c.dom.svg.SVGFontElement
+class org.w3c.dom.svg.SVGFontFaceElement
+class org.w3c.dom.svg.SVGFontFaceFormatElement
+class org.w3c.dom.svg.SVGFontFaceNameElement
+class org.w3c.dom.svg.SVGFontFaceSrcElement
+class org.w3c.dom.svg.SVGFontFaceUriElement
+class org.w3c.dom.svg.SVGForeignObjectElement
+class org.w3c.dom.svg.SVGGElement
+class org.w3c.dom.svg.SVGGlyphElement
+class org.w3c.dom.svg.SVGGlyphRefElement
+class org.w3c.dom.svg.SVGGradientElement
+class org.w3c.dom.svg.SVGHKernElement
+class org.w3c.dom.svg.SVGICCColor
+class org.w3c.dom.svg.SVGImageElement
+class org.w3c.dom.svg.SVGLangSpace
+class org.w3c.dom.svg.SVGLength
+class org.w3c.dom.svg.SVGLengthList
+class org.w3c.dom.svg.SVGLineElement
+class org.w3c.dom.svg.SVGLinearGradientElement
+class org.w3c.dom.svg.SVGLocatable
+class org.w3c.dom.svg.SVGMPathElement
+class org.w3c.dom.svg.SVGMarkerElement
+class org.w3c.dom.svg.SVGMaskElement
+class org.w3c.dom.svg.SVGMatrix
+class org.w3c.dom.svg.SVGMetadataElement
+class org.w3c.dom.svg.SVGMissingGlyphElement
+class org.w3c.dom.svg.SVGNumber
+class org.w3c.dom.svg.SVGNumberList
+class org.w3c.dom.svg.SVGPaint
+class org.w3c.dom.svg.SVGPathElement
+class org.w3c.dom.svg.SVGPathSeg
+class org.w3c.dom.svg.SVGPathSegArcAbs
+class org.w3c.dom.svg.SVGPathSegArcRel
+class org.w3c.dom.svg.SVGPathSegClosePath
+class org.w3c.dom.svg.SVGPathSegCurvetoCubicAbs
+class org.w3c.dom.svg.SVGPathSegCurvetoCubicRel
+class org.w3c.dom.svg.SVGPathSegCurvetoCubicSmoothAbs
+class org.w3c.dom.svg.SVGPathSegCurvetoCubicSmoothRel
+class org.w3c.dom.svg.SVGPathSegCurvetoQuadraticAbs
+class org.w3c.dom.svg.SVGPathSegCurvetoQuadraticRel
+class org.w3c.dom.svg.SVGPathSegCurvetoQuadraticSmoothAbs
+class org.w3c.dom.svg.SVGPathSegCurvetoQuadraticSmoothRel
+class org.w3c.dom.svg.SVGPathSegLinetoAbs
+class org.w3c.dom.svg.SVGPathSegLinetoHorizontalAbs
+class org.w3c.dom.svg.SVGPathSegLinetoHorizontalRel
+class org.w3c.dom.svg.SVGPathSegLinetoRel
+class org.w3c.dom.svg.SVGPathSegLinetoVerticalAbs
+class org.w3c.dom.svg.SVGPathSegLinetoVerticalRel
+class org.w3c.dom.svg.SVGPathSegList
+class org.w3c.dom.svg.SVGPathSegMovetoAbs
+class org.w3c.dom.svg.SVGPathSegMovetoRel
+class org.w3c.dom.svg.SVGPatternElement
+class org.w3c.dom.svg.SVGPoint
+class org.w3c.dom.svg.SVGPointList
+class org.w3c.dom.svg.SVGPolygonElement
+class org.w3c.dom.svg.SVGPolylineElement
+class org.w3c.dom.svg.SVGPreserveAspectRatio
+class org.w3c.dom.svg.SVGRadialGradientElement
+class org.w3c.dom.svg.SVGRect
+class org.w3c.dom.svg.SVGRectElement
+class org.w3c.dom.svg.SVGRenderingIntent
+class org.w3c.dom.svg.SVGSVGElement
+class org.w3c.dom.svg.SVGScriptElement
+class org.w3c.dom.svg.SVGSetElement
+class org.w3c.dom.svg.SVGStopElement
+class org.w3c.dom.svg.SVGStringList
+class org.w3c.dom.svg.SVGStylable
+class org.w3c.dom.svg.SVGStyleElement
+class org.w3c.dom.svg.SVGSwitchElement
+class org.w3c.dom.svg.SVGSymbolElement
+class org.w3c.dom.svg.SVGTRefElement
+class org.w3c.dom.svg.SVGTSpanElement
+class org.w3c.dom.svg.SVGTests
+class org.w3c.dom.svg.SVGTextContentElement
+class org.w3c.dom.svg.SVGTextElement
+class org.w3c.dom.svg.SVGTextPathElement
+class org.w3c.dom.svg.SVGTextPositioningElement
+class org.w3c.dom.svg.SVGTitleElement
+class org.w3c.dom.svg.SVGTransform
+class org.w3c.dom.svg.SVGTransformList
+class org.w3c.dom.svg.SVGTransformable
+class org.w3c.dom.svg.SVGURIReference
+class org.w3c.dom.svg.SVGUnitTypes
+class org.w3c.dom.svg.SVGUseElement
+class org.w3c.dom.svg.SVGVKernElement
+class org.w3c.dom.svg.SVGViewElement
+class org.w3c.dom.svg.SVGViewSpec
+class org.w3c.dom.svg.SVGZoomAndPan
+class org.w3c.dom.svg.SVGZoomEvent
+class org.apache.batik.w3c.dom.events.CustomEvent
+class org.w3c.dom.events.DocumentEvent
+class org.w3c.dom.events.EventException
+class org.w3c.dom.events.Event
+class org.w3c.dom.events.EventListener
+class org.w3c.dom.events.EventTarget
+class org.apache.batik.w3c.dom.events.KeyboardEvent
+class org.w3c.dom.events.MouseEvent
+class org.w3c.dom.events.MutationEvent
+class org.apache.batik.w3c.dom.events.MutationNameEvent
+class org.apache.batik.w3c.dom.events.TextEvent
+class org.w3c.dom.events.UIEvent
+class org.apache.batik.w3c.dom.ElementTraversal
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/META-INF/services/org.apache.batik.ext.awt.image.spi.RegistryEntry b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/META-INF/services/org.apache.batik.ext.awt.image.spi.RegistryEntry
index 34472550f..585682083 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/META-INF/services/org.apache.batik.ext.awt.image.spi.RegistryEntry
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/META-INF/services/org.apache.batik.ext.awt.image.spi.RegistryEntry
@@ -20,9 +20,7 @@
# $Id$
# -----------------------------------------------------------------------------
-# NOTE: the "codec" package is deprecated, there entries are kept here for compatibility with older JVM versions
-# (uses "sun.image", which is only supported in Sun Java implementations and was retired in JDK 7)
-#org.apache.batik.ext.awt.image.codec.png.PNGRegistryEntry
+org.apache.batik.ext.awt.image.codec.png.PNGRegistryEntry
org.apache.batik.ext.awt.image.codec.imageio.ImageIOJPEGRegistryEntry
org.apache.batik.ext.awt.image.codec.imageio.ImageIOPNGRegistryEntry
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/NOTICE b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/NOTICE
new file mode 100644
index 000000000..146dcd046
--- /dev/null
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/NOTICE
@@ -0,0 +1,18 @@
+Apache Batik
+Copyright 1999-2020 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+This software contains code from the World Wide Web Consortium (W3C) for the
+Document Object Model API (DOM API) and SVG Document Type Definition (DTD).
+
+This software contains code from the International Organisation for
+Standardization for the definition of character entities used in the software's
+documentation.
+
+This product includes images from the Tango Desktop Project
+(http://tango.freedesktop.org/).
+
+This product includes images from the Pasodoble Icon Theme
+(http://www.jesusda.com/projects/pasodoble).
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/rasterizer/resources/Messages.properties b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/rasterizer/resources/Messages.properties
index 60bdd2627..15206868a 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/rasterizer/resources/Messages.properties
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/rasterizer/resources/Messages.properties
@@ -42,7 +42,7 @@ SVGConverter.error.cannot.read.source = \
Error: cannot read source ({0})
SVGConverter.error.cannot.open.source = \
-Error: cannot open source {0}
+Error: cannot open source {0} {1}
SVGConverterURLSource.error.invalid.url = \
Error: invalid url ({0})
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/rasterizer/resources/rasterizer.bin.policy b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/rasterizer/resources/rasterizer.bin.policy
index c9ccd5cf3..dbd208315 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/rasterizer/resources/rasterizer.bin.policy
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/rasterizer/resources/rasterizer.bin.policy
@@ -90,7 +90,7 @@ grant codeBase "${app.jar.base}/lib/batik-xml.jar" {
permission java.security.AllPermission;
};
- grant codeBase "${app.jar.base}/lib/xmlgraphics-commons-svn-trunk" {
+ grant codeBase "${app.jar.base}/lib/xmlgraphics-commons-${xmlgraphics.commons.version}" {
permission java.security.AllPermission;
};
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/rasterizer/resources/rasterizer.policy b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/rasterizer/resources/rasterizer.policy
index de1350591..9d0fbb8f9 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/rasterizer/resources/rasterizer.policy
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/rasterizer/resources/rasterizer.policy
@@ -30,11 +30,11 @@ grant codeBase "${app.dev.base}/lib/xerces_2_5_0.jar" {
permission java.security.AllPermission;
};
-grant codeBase "${app.dev.base}/lib/fop-transcoder-allinone-svn-trunk.jar" {
+grant codeBase "${app.dev.base}/lib/fop-transcoder-allinone-${xmlgraphics.commons.version}.jar" {
permission java.security.AllPermission;
};
-grant codeBase "${app.dev.base}/lib/xmlgraphics-commons-svn-trunk.jar" {
+grant codeBase "${app.dev.base}/lib/xmlgraphics-commons-${xmlgraphics.commons.version}.jar" {
permission java.security.AllPermission;
};
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/svgbrowser/resources/svgbrowser.bin.policy b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/svgbrowser/resources/svgbrowser.bin.policy
index 5ccbf885b..4349c85ae 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/svgbrowser/resources/svgbrowser.bin.policy
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/svgbrowser/resources/svgbrowser.bin.policy
@@ -90,7 +90,7 @@ grant codeBase "${app.jar.base}/lib/batik-xml.jar" {
permission java.security.AllPermission;
};
-grant codeBase "${app.jar.base}/lib/xmlgraphics-commons-svn-trunk" {
+grant codeBase "${app.jar.base}/lib/xmlgraphics-commons-${xmlgraphics.commons.version}" {
permission java.security.AllPermission;
};
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/svgbrowser/resources/svgbrowser.policy b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/svgbrowser/resources/svgbrowser.policy
index 6cf729eba..efcef1055 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/svgbrowser/resources/svgbrowser.policy
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/apps/svgbrowser/resources/svgbrowser.policy
@@ -18,23 +18,115 @@
// $Id$
// -----------------------------------------------------------------------------
-grant codeBase "${app.dev.base}/classes/" {
+grant codeBase "${app.jar.base}/xml-apis-ext-${xmlapis.version}.jar" {
permission java.security.AllPermission;
};
-grant codeBase "${app.dev.base}/lib/xml-apis-1.3.04.jar" {
+grant codeBase "${app.jar.base}/xml-apis-${xmlapis.version}.jar" {
permission java.security.AllPermission;
};
-grant codeBase "${app.dev.base}/lib/xml-apis-ext-1.3.04.jar" {
+grant codeBase "${app.jar.base}/xalan-${xalan.version}.jar" {
permission java.security.AllPermission;
};
-grant codeBase "${app.dev.base}/lib/xerces_2_5_0.jar" {
+grant codeBase "${app.jar.base}/xercesImpl-2.9.1.jar" {
permission java.security.AllPermission;
};
-grant codeBase "${app.dev.base}/lib/js.jar" {
+grant codeBase "${app.jar.base}/../batik-rasterizer-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-svgrasterizer-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-ext-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-dom-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-css-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-svg-dom-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-gvt-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-parser-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-script-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-bridge-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-swing-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-transcoder-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-gui-util-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-awt-util-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-util-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-xml-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/fop-transcoder-allinone-${xmlgraphics.commons.version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/xmlgraphics-commons-${xmlgraphics.commons.version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-anim-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-codec-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-extension-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-svggen-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/batik-svgbrowser-${version}.jar" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "${app.jar.base}/js.jar" {
permission java.lang.RuntimePermission "createClassLoader";
permission java.net.SocketPermission "*", "listen, connect, resolve, accept";
permission java.lang.RuntimePermission "accessDeclaredMembers";
@@ -46,7 +138,6 @@ grant codeBase "${app.dev.base}/lib/js.jar" {
};
grant {
- permission java.io.FilePermission "resources/org/apache/batik/dom/svg/resources/svg10.dtd", "read";
- permission java.io.FilePermission "resources/org/apache/batik/dom/svg/resources/UserAgentStyleSheet.css", "read";
+ permission java.io.FilePermission "${app.jar.base}/batik-svg-dom-${version}.jar", "read";
};
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/ext/awt/image/codec/properties b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/ext/awt/image/codec/properties
similarity index 100%
rename from fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/ext/awt/image/codec/properties
rename to fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/ext/awt/image/codec/properties
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/ext/swing/resources/Messages.properties b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/ext/swing/resources/Messages.properties
similarity index 100%
rename from fine-xmlgraphics/xmlgraphics-batik/src/main/java/org/apache/batik/ext/swing/resources/Messages.properties
rename to fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/ext/swing/resources/Messages.properties
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/extensions/README.txt b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/extensions/README.txt
new file mode 100644
index 000000000..c256cf90e
--- /dev/null
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/extensions/README.txt
@@ -0,0 +1,13 @@
+The Jar files in this directory start the same application as in the
+parent directory, except they include the Batik Extensions on the jar
+file class path. This means that that the Batik Extensions will work
+with the applications started by these jar files.
+
+Great care should be used when using the Batik Extensions as these are
+not part of the SVG standard. If you write content that uses these
+extensions you must be aware that this is not conformant SVG content
+and other SVG renderers will not render these documents. These
+extensions should only be used in content used in closed systems.
+
+The primary purpose of these extensions is demonstrative and to
+generate feedback to the development of the SVG standard.
diff --git a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/transcoder/image/resources/Messages.properties b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/transcoder/image/resources/Messages.properties
index a892fc41d..f855cf1f9 100644
--- a/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/transcoder/image/resources/Messages.properties
+++ b/fine-xmlgraphics/xmlgraphics-batik/src/main/resources/org/apache/batik/transcoder/image/resources/Messages.properties
@@ -28,7 +28,7 @@ jpeg.badoutput = \
Invalid output. JPEG transcoder only supports a byte stream output
jpeg.unspecifiedQuality = \
-The JPEG quality has not been specified. Use the default one: no compression
+The JPEG quality has not been specified. Use the default one: medium compression
png.badoutput = \
Invalid output. PNG transcoder only supports a byte stream output
diff --git a/fine-xmlgraphics/xmlgraphics-commons/README.md b/fine-xmlgraphics/xmlgraphics-commons/README.md
index 7e64d82bd..7d20420df 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/README.md
+++ b/fine-xmlgraphics/xmlgraphics-commons/README.md
@@ -1,2 +1,2 @@
源码地址:https://github.com/apache/xmlgraphics-commons
-版本:2.2
\ No newline at end of file
+版本:2.6
\ No newline at end of file
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/fonts/Glyphs.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/fonts/Glyphs.java
index ae4ee5550..ceaa79684 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/fonts/Glyphs.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/fonts/Glyphs.java
@@ -19,6 +19,8 @@
package org.apache.xmlgraphics.fonts;
+import com.fr.third.org.apache.commons.io.IOUtils;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
@@ -29,8 +31,6 @@ import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
-import com.fr.third.org.apache.commons.io.IOUtils;
-
/**
* This class provides a number of constants for glyph management.
*/
@@ -680,8 +680,8 @@ public final class Glyphs {
String[] arr = new String[lines.size() * 2];
int pos = 0;
StringBuffer buf = new StringBuffer();
- for (int i = 0, c = lines.size(); i < c; i++) {
- String line = (String)lines.get(i);
+ for (Object line1 : lines) {
+ String line = (String) line1;
int semicolon = line.indexOf(';');
if (semicolon <= 0) {
continue;
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/GraphicsConstants.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/GraphicsConstants.java
old mode 100644
new mode 100755
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/codec/png/PNGImageEncoder.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/codec/png/PNGImageEncoder.java
index dae51a64a..0fd4acd8a 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/codec/png/PNGImageEncoder.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/codec/png/PNGImageEncoder.java
@@ -601,9 +601,8 @@ public class PNGImageEncoder extends ImageEncoderImpl {
ChunkStream cs = new ChunkStream("sBIT");
try {
int[] significantBits = param.getSignificantBits();
- int len = significantBits.length;
- for (int i = 0; i < len; i++) {
- cs.writeByte(significantBits[i]);
+ for (int significantBit : significantBits) {
+ cs.writeByte(significantBit);
}
cs.writeToStream(dataOutput);
} finally {
@@ -682,8 +681,8 @@ public class PNGImageEncoder extends ImageEncoderImpl {
ChunkStream cs = new ChunkStream("hIST");
try {
int[] hist = param.getPaletteHistogram();
- for (int i = 0; i < hist.length; i++) {
- cs.writeShort(hist[i]);
+ for (int aHist : hist) {
+ cs.writeShort(aHist);
}
cs.writeToStream(dataOutput);
@@ -702,8 +701,8 @@ public class PNGImageEncoder extends ImageEncoderImpl {
if (param instanceof PNGEncodeParam.Palette) {
byte[] t =
((PNGEncodeParam.Palette)param).getPaletteTransparency();
- for (int i = 0; i < t.length; i++) {
- cs.writeByte(t[i]);
+ for (byte aT : t) {
+ cs.writeByte(aT);
}
} else if (param instanceof PNGEncodeParam.Gray) {
int t = ((PNGEncodeParam.Gray)param).getTransparentGray();
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/codec/tiff/TIFFImageEncoder.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/codec/tiff/TIFFImageEncoder.java
index 28e6c444f..1e9ee7735 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/codec/tiff/TIFFImageEncoder.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/codec/tiff/TIFFImageEncoder.java
@@ -382,15 +382,11 @@ public class TIFFImageEncoder extends ImageEncoderImpl {
// Add extra fields specified via the encoding parameters.
TIFFField[] extraFields = encodeParam.getExtraFields();
List extantTags = new ArrayList(fields.size());
- Iterator fieldIter = fields.iterator();
- while (fieldIter.hasNext()) {
- TIFFField fld = (TIFFField)fieldIter.next();
+ for (TIFFField fld : fields) {
extantTags.add(fld.getTag());
}
- int numExtraFields = extraFields.length;
- for (int i = 0; i < numExtraFields; i++) {
- TIFFField fld = extraFields[i];
+ for (TIFFField fld : extraFields) {
Integer tagValue = fld.getTag();
if (!extantTags.contains(tagValue)) {
fields.add(fld);
@@ -1003,10 +999,9 @@ public class TIFFImageEncoder extends ImageEncoderImpl {
int dirSize = 2 + numEntries * 12 + 4;
// Loop over fields adding the size of all values > 4 bytes.
- Iterator iter = fields.iterator();
- while (iter.hasNext()) {
+ for (Object field1 : fields) {
// Get the field.
- TIFFField field = (TIFFField)iter.next();
+ TIFFField field = (TIFFField) field1;
// Determine the size of the field value.
int valueSize = field.getCount() * SIZE_OF_TYPE[field.getType()];
@@ -1048,11 +1043,10 @@ public class TIFFImageEncoder extends ImageEncoderImpl {
// Write number of fields in the IFD
writeUnsignedShort(numEntries);
- Iterator iter = fields.iterator();
- while (iter.hasNext()) {
+ for (Object field1 : fields) {
// 12 byte field entry TIFFField
- TIFFField field = (TIFFField)iter.next();
+ TIFFField field = (TIFFField) field1;
// byte 0-1 Tag that identifies a field
int tag = field.getTag();
@@ -1086,8 +1080,8 @@ public class TIFFImageEncoder extends ImageEncoderImpl {
writeLong(nextIFDOffset);
// Write the tag values that did not fit into 4 bytes
- for (int i = 0; i < tooBig.size(); i++) {
- writeValues((TIFFField)tooBig.get(i));
+ for (Object aTooBig : tooBig) {
+ writeValues((TIFFField) aTooBig);
}
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/codec/tiff/TIFFLZWDecoder.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/codec/tiff/TIFFLZWDecoder.java
index d96657467..c22748602 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/codec/tiff/TIFFLZWDecoder.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/codec/tiff/TIFFLZWDecoder.java
@@ -170,8 +170,8 @@ public class TIFFLZWDecoder {
*/
public void writeString(byte[] string) {
- for (int i = 0; i < string.length; i++) {
- uncompData[dstIndex++] = string[i];
+ for (byte aString : string) {
+ uncompData[dstIndex++] = aString;
}
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/codec/util/SimpleRenderedImage.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/codec/util/SimpleRenderedImage.java
index d72c7f84b..9902d6177 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/codec/util/SimpleRenderedImage.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/codec/util/SimpleRenderedImage.java
@@ -273,9 +273,9 @@ public abstract class SimpleRenderedImage implements RenderedImage {
prefix = prefix.toLowerCase(Locale.getDefault());
List names = new ArrayList();
- for (int i = 0; i < propertyNames.length; i++) {
- if (propertyNames[i].startsWith(prefix)) {
- names.add(propertyNames[i]);
+ for (String propertyName : propertyNames) {
+ if (propertyName.startsWith(prefix)) {
+ names.add(propertyName);
}
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/ImageManager.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/ImageManager.java
index b159024fc..2aefbb927 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/ImageManager.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/ImageManager.java
@@ -348,9 +348,8 @@ public class ImageManager {
ImageInfo info = image.getInfo();
Image img = null;
- int count = flavors.length;
- for (int i = 0; i < count; i++) {
- if (image.getFlavor().equals(flavors[i])) {
+ for (ImageFlavor flavor : flavors) {
+ if (image.getFlavor().equals(flavor)) {
//Shortcut (the image is already in one of the requested formats)
return image;
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/cache/ImageCache.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/cache/ImageCache.java
index 53f712f93..4f69c12d9 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/cache/ImageCache.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/cache/ImageCache.java
@@ -23,7 +23,6 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Collections;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.Map;
import java.util.Set;
@@ -293,9 +292,8 @@ public class ImageCache {
private void doInvalidURIHouseKeeping() {
final Set currentEntries = new HashSet(this.invalidURIs.keySet());
- final Iterator iter = currentEntries.iterator();
- while (iter.hasNext()) {
- final String key = (String) iter.next();
+ for (Object currentEntry : currentEntries) {
+ final String key = (String) currentEntry;
removeInvalidURIIfExpired(key);
}
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/AbstractImageSessionContext.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/AbstractImageSessionContext.java
index 04128528c..d51d38278 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/AbstractImageSessionContext.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/AbstractImageSessionContext.java
@@ -19,33 +19,32 @@
package org.apache.xmlgraphics.image.loader.impl;
+import com.fr.third.org.apache.commons.io.IOUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.xmlgraphics.image.loader.ImageSessionContext;
+import org.apache.xmlgraphics.image.loader.ImageSource;
+import org.apache.xmlgraphics.image.loader.util.ImageUtil;
+import org.apache.xmlgraphics.image.loader.util.SoftMapCache;
+import org.apache.xmlgraphics.io.XmlSourceUtil;
+
+import javax.imageio.ImageIO;
+import javax.imageio.stream.ImageInputStream;
+import javax.xml.transform.Source;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.sax.SAXSource;
+import javax.xml.transform.stream.StreamSource;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.net.MalformedURLException;
import java.net.URL;
-import javax.imageio.ImageIO;
-import javax.imageio.stream.ImageInputStream;
-import javax.xml.transform.Source;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.sax.SAXSource;
-import javax.xml.transform.stream.StreamSource;
-
-import com.fr.third.org.apache.commons.io.IOUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import org.apache.xmlgraphics.image.loader.ImageSessionContext;
-import org.apache.xmlgraphics.image.loader.ImageSource;
-import org.apache.xmlgraphics.image.loader.util.ImageUtil;
-import org.apache.xmlgraphics.image.loader.util.SoftMapCache;
-import org.apache.xmlgraphics.io.XmlSourceUtil;
-
/**
* Abstract base class for classes implementing ImageSessionContext. This class provides all the
* special treatment for Source creation, i.e. it provides optimized Source objects where possible.
@@ -119,15 +118,19 @@ public abstract class AbstractImageSessionContext implements ImageSessionContext
/** {@inheritDoc} */
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
- if ("close".equals(method.getName())) {
- try {
+ try {
+ if ("close".equals(method.getName())) {
+ try {
+ return method.invoke(iin, args);
+ } finally {
+ IOUtils.closeQuietly(this.in);
+ this.in = null;
+ }
+ } else {
return method.invoke(iin, args);
- } finally {
- IOUtils.closeQuietly(this.in);
- this.in = null;
}
- } else {
- return method.invoke(iin, args);
+ } catch (InvocationTargetException e) {
+ throw e.getCause();
}
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/CompositeImageLoader.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/CompositeImageLoader.java
index 889511e64..f0ffcaa5e 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/CompositeImageLoader.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/CompositeImageLoader.java
@@ -78,8 +78,7 @@ public class CompositeImageLoader extends AbstractImageLoader {
public Image loadImage(ImageInfo info, Map hints, ImageSessionContext session)
throws ImageException, IOException {
ImageException firstException = null;
- for (int i = 0, c = this.loaders.length; i < c; i++) {
- ImageLoader loader = this.loaders[i];
+ for (ImageLoader loader : this.loaders) {
try {
Image img = loader.loadImage(info, hints, session);
if (img != null && firstException != null) {
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterRendered2PNG.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterRendered2PNG.java
index 7e34868d9..5176962ba 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterRendered2PNG.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageConverterRendered2PNG.java
@@ -19,11 +19,7 @@
package org.apache.xmlgraphics.image.loader.impl;
-import java.io.IOException;
-import java.util.Map;
-
import com.fr.third.org.apache.commons.io.output.ByteArrayOutputStream;
-
import org.apache.xmlgraphics.image.loader.Image;
import org.apache.xmlgraphics.image.loader.ImageException;
import org.apache.xmlgraphics.image.loader.ImageFlavor;
@@ -32,6 +28,9 @@ import org.apache.xmlgraphics.image.writer.ImageWriterParams;
import org.apache.xmlgraphics.image.writer.ImageWriterRegistry;
import org.apache.xmlgraphics.util.MimeConstants;
+import java.io.IOException;
+import java.util.Map;
+
/**
* This ImageConverter converts Rendered to PNG images.
*/
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRawPNG.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRawPNG.java
index 4c0a1fc22..edfca6141 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRawPNG.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageLoaderRawPNG.java
@@ -70,7 +70,7 @@ public class ImageLoaderRawPNG extends AbstractImageLoader {
// Remove streams as we do things with them at some later time.
XmlSourceUtil.removeStreams(src);
SeekableStream seekStream = new ImageInputStreamSeekableStreamAdapter(in);
- PNGFile im = new PNGFile(seekStream);
+ PNGFile im = new PNGFile(seekStream, info.getOriginalURI());
ImageRawPNG irpng = im.getImageRawPNG(info);
return irpng;
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageRawStream.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageRawStream.java
index b1e1857ae..65ca62a5f 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageRawStream.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/ImageRawStream.java
@@ -19,17 +19,16 @@
package org.apache.xmlgraphics.image.loader.impl;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
import com.fr.third.org.apache.commons.io.IOUtils;
-
import org.apache.xmlgraphics.image.loader.ImageFlavor;
import org.apache.xmlgraphics.image.loader.ImageInfo;
import org.apache.xmlgraphics.image.loader.MimeEnabledImageFlavor;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
/**
* This class is an implementation of the Image interface exposing an InputStream for loading the
* raw/undecoded image.
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/PNGFile.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/PNGFile.java
index 7787fed75..c743520fb 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/PNGFile.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/PNGFile.java
@@ -69,7 +69,7 @@ class PNGFile implements PNGConstants {
private boolean hasPalette;
private boolean hasAlphaPalette;
- public PNGFile(InputStream stream) throws IOException, ImageException {
+ public PNGFile(InputStream stream, String uri) throws IOException, ImageException {
if (!stream.markSupported()) {
stream = new BufferedInputStream(stream);
}
@@ -107,12 +107,14 @@ class PNGFile implements PNGConstants {
chunk = PNGChunk.readChunk(distream);
parse_sRGB_chunk(chunk);
} else {
- // chunk = PNGChunk.readChunk(distream);
+ if (Character.isUpperCase(chunkType.charAt(0))) {
+ throw new ImageException("PNG unknown critical chunk: " + chunkType);
+ }
PNGChunk.skipChunk(distream);
}
} catch (Exception e) {
String msg = PropertyUtil.getString("PNGImageDecoder2");
- throw new RuntimeException(msg, e);
+ throw new RuntimeException(msg + " " + uri, e);
}
} while (true);
}
@@ -190,10 +192,6 @@ class PNGFile implements PNGConstants {
private void parse_IHDR_chunk(PNGChunk chunk) {
bitDepth = chunk.getInt1(8);
- if (bitDepth != 8) {
- // this is a limitation of the current implementation
- throw new RuntimeException("Unsupported bit depth: " + bitDepth);
- }
colorType = chunk.getInt1(9);
int compressionMethod = chunk.getInt1(10);
if (compressionMethod != 0) {
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/imageio/ImageIOUtil.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/imageio/ImageIOUtil.java
index f99bf2378..9adcce193 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/imageio/ImageIOUtil.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/imageio/ImageIOUtil.java
@@ -104,9 +104,9 @@ public final class ImageIOUtil {
*/
public static void dumpMetadataToSystemOut(IIOMetadata iiometa) {
String[] metanames = iiometa.getMetadataFormatNames();
- for (int j = 0; j < metanames.length; j++) {
- System.out.println("--->" + metanames[j]);
- dumpNodeToSystemOut(iiometa.getAsTree(metanames[j]));
+ for (String metaname : metanames) {
+ System.out.println("--->" + metaname);
+ dumpNodeToSystemOut(iiometa.getAsTree(metaname));
}
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/imageio/ImageLoaderImageIO.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/imageio/ImageLoaderImageIO.java
index 950406e1b..286d25427 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/imageio/ImageLoaderImageIO.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/impl/imageio/ImageLoaderImageIO.java
@@ -300,8 +300,7 @@ public class ImageLoaderImageIO extends AbstractImageLoader {
private ICC_Profile tryToExctractICCProfile(IIOMetadata iiometa) {
ICC_Profile iccProf = null;
String[] supportedFormats = iiometa.getMetadataFormatNames();
- for (int i = 0; i < supportedFormats.length; i++) {
- String format = supportedFormats[i];
+ for (String format : supportedFormats) {
Element root = (Element) iiometa.getAsTree(format);
if (PNG_METADATA_NODE.equals(format)) {
iccProf = this
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/pipeline/ImageProviderPipeline.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/pipeline/ImageProviderPipeline.java
index 2507acbff..806645143 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/pipeline/ImageProviderPipeline.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/pipeline/ImageProviderPipeline.java
@@ -19,18 +19,9 @@
package org.apache.xmlgraphics.image.loader.pipeline;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
import com.fr.third.org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import org.apache.xmlgraphics.image.loader.Image;
import org.apache.xmlgraphics.image.loader.ImageException;
import org.apache.xmlgraphics.image.loader.ImageFlavor;
@@ -43,6 +34,13 @@ import org.apache.xmlgraphics.image.loader.spi.ImageImplRegistry;
import org.apache.xmlgraphics.image.loader.spi.ImageLoader;
import org.apache.xmlgraphics.image.loader.util.Penalty;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
/**
* Represents a pipeline of ImageConverters with an ImageLoader at the beginning of the
* pipeline.
@@ -292,9 +290,8 @@ public class ImageProviderPipeline {
registry.getAdditionalPenalty(loader.getClass().getName()));
}
}
- Iterator iter = converters.iterator();
- while (iter.hasNext()) {
- ImageConverter converter = (ImageConverter)iter.next();
+ for (Object converter1 : converters) {
+ ImageConverter converter = (ImageConverter) converter1;
penalty = penalty.add(converter.getConversionPenalty());
if (registry != null) {
penalty = penalty.add(
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/pipeline/PipelineFactory.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/pipeline/PipelineFactory.java
index 638caef6f..eb1117b19 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/pipeline/PipelineFactory.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/pipeline/PipelineFactory.java
@@ -23,7 +23,6 @@ import java.io.Serializable;
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
-import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -74,9 +73,8 @@ public class PipelineFactory {
//Rebuild edge directory
DefaultEdgeDirectory dir = new DefaultEdgeDirectory();
- Iterator iter = converters.iterator();
- while (iter.hasNext()) {
- ImageConverter converter = (ImageConverter)iter.next();
+ for (Object converter1 : converters) {
+ ImageConverter converter = (ImageConverter) converter1;
Penalty penalty = Penalty.toPenalty(converter.getConversionPenalty());
penalty = penalty.add(
registry.getAdditionalPenalty(converter.getClass().getName()));
@@ -177,13 +175,12 @@ public class PipelineFactory {
if (loaderFactories != null) {
//Find best pipeline -> best loader
- for (int i = 0, ci = loaderFactories.length; i < ci; i++) {
- ImageLoaderFactory loaderFactory = loaderFactories[i];
+ for (ImageLoaderFactory loaderFactory : loaderFactories) {
ImageFlavor[] flavors = loaderFactory.getSupportedFlavors(originalMime);
- for (int j = 0, cj = flavors.length; j < cj; j++) {
- ImageProviderPipeline pipeline = findPipeline(dir, flavors[j], destination);
+ for (ImageFlavor flavor : flavors) {
+ ImageProviderPipeline pipeline = findPipeline(dir, flavor, destination);
if (pipeline != null) {
- ImageLoader loader = loaderFactory.newImageLoader(flavors[j]);
+ ImageLoader loader = loaderFactory.newImageLoader(flavor);
pipeline.setImageLoader(loader);
candidates.add(pipeline);
}
@@ -235,9 +232,8 @@ public class PipelineFactory {
prev = pred;
}
ImageProviderPipeline pipeline = new ImageProviderPipeline(manager.getCache(), null);
- Iterator iter = stops.iterator();
- while (iter.hasNext()) {
- ImageConversionEdge edge = (ImageConversionEdge)iter.next();
+ for (Object stop : stops) {
+ ImageConversionEdge edge = (ImageConversionEdge) stop;
pipeline.addConverter(edge.getImageConverter());
}
return pipeline;
@@ -254,10 +250,9 @@ public class PipelineFactory {
public ImageProviderPipeline[] determineCandidatePipelines(ImageInfo imageInfo,
ImageFlavor[] flavors) {
List candidates = new java.util.ArrayList();
- int count = flavors.length;
- for (int i = 0; i < count; i++) {
+ for (ImageFlavor flavor : flavors) {
//Find the best pipeline for each flavor
- ImageProviderPipeline pipeline = newImageConverterPipeline(imageInfo, flavors[i]);
+ ImageProviderPipeline pipeline = newImageConverterPipeline(imageInfo, flavor);
if (pipeline == null) {
continue; //No suitable pipeline found for flavor
}
@@ -280,10 +275,9 @@ public class PipelineFactory {
public ImageProviderPipeline[] determineCandidatePipelines(Image sourceImage,
ImageFlavor[] flavors) {
List candidates = new java.util.ArrayList();
- int count = flavors.length;
- for (int i = 0; i < count; i++) {
+ for (ImageFlavor flavor : flavors) {
//Find the best pipeline for each flavor
- ImageProviderPipeline pipeline = newImageConverterPipeline(sourceImage, flavors[i]);
+ ImageProviderPipeline pipeline = newImageConverterPipeline(sourceImage, flavor);
if (pipeline != null) {
candidates.add(pipeline);
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/spi/ImageImplRegistry.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/spi/ImageImplRegistry.java
index 4b3c2e416..3f03cadaa 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/spi/ImageImplRegistry.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/loader/spi/ImageImplRegistry.java
@@ -19,9 +19,11 @@
package org.apache.xmlgraphics.image.loader.spi;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -187,23 +189,19 @@ public class ImageImplRegistry {
return;
}
String[] mimes = loaderFactory.getSupportedMIMETypes();
- for (int i = 0, ci = mimes.length; i < ci; i++) {
- String mime = mimes[i];
-
+ for (String mime : mimes) {
synchronized (loaders) {
- Map flavorMap = (Map)loaders.get(mime);
+ Map flavorMap = (Map) loaders.get(mime);
if (flavorMap == null) {
- flavorMap = new java.util.HashMap();
+ flavorMap = new HashMap();
loaders.put(mime, flavorMap);
}
ImageFlavor[] flavors = loaderFactory.getSupportedFlavors(mime);
- for (int j = 0, cj = flavors.length; j < cj; j++) {
- ImageFlavor flavor = flavors[j];
-
- List factoryList = (List)flavorMap.get(flavor);
+ for (ImageFlavor flavor : flavors) {
+ List factoryList = (List) flavorMap.get(flavor);
if (factoryList == null) {
- factoryList = new java.util.ArrayList();
+ factoryList = new ArrayList();
flavorMap.put(flavor, factoryList);
}
factoryList.add(loaderFactory);
@@ -332,9 +330,8 @@ public class ImageImplRegistry {
if (checkFlavor.isCompatible(flavor)) {
List factoryList = (List)e.getValue();
if (factoryList != null && factoryList.size() > 0) {
- Iterator factoryIter = factoryList.iterator();
- while (factoryIter.hasNext()) {
- ImageLoaderFactory factory = (ImageLoaderFactory)factoryIter.next();
+ for (Object aFactoryList : factoryList) {
+ ImageLoaderFactory factory = (ImageLoaderFactory) aFactoryList;
if (factory.isSupported(imageInfo)) {
matches.add(factory);
}
@@ -387,9 +384,8 @@ public class ImageImplRegistry {
Map flavorMap = (Map)loaders.get(mime);
if (flavorMap != null) {
Set factories = new java.util.HashSet();
- Iterator iter = flavorMap.values().iterator();
- while (iter.hasNext()) {
- List factoryList = (List)iter.next();
+ for (Object o : flavorMap.values()) {
+ List factoryList = (List) o;
factories.addAll(factoryList);
}
int factoryCount = factories.size();
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/rendered/AbstractRed.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/rendered/AbstractRed.java
index 7ea2f12a9..ef7855bb2 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/rendered/AbstractRed.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/rendered/AbstractRed.java
@@ -32,7 +32,6 @@ import java.awt.image.RenderedImage;
import java.awt.image.SampleModel;
import java.awt.image.WritableRaster;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -460,9 +459,8 @@ public abstract class AbstractRed implements CachableRed {
if (ret != null) {
return ret;
}
- Iterator i = srcs.iterator();
- while (i.hasNext()) {
- RenderedImage ri = (RenderedImage)i.next();
+ for (Object src : srcs) {
+ RenderedImage ri = (RenderedImage) src;
ret = ri.getProperty(name);
if (ret != null) {
return ret;
@@ -476,9 +474,8 @@ public abstract class AbstractRed implements CachableRed {
String[] ret = new String[keys.size()];
keys.toArray(ret);
- Iterator iter = srcs.iterator();
- while (iter.hasNext()) {
- RenderedImage ri = (RenderedImage)iter.next();
+ for (Object src : srcs) {
+ RenderedImage ri = (RenderedImage) src;
String[] srcProps = ri.getPropertyNames();
if (srcProps.length != 0) {
String[] tmp = new String[ret.length + srcProps.length];
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/writer/ImageWriterRegistry.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/writer/ImageWriterRegistry.java
index c5a2318cb..78bb6668e 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/writer/ImageWriterRegistry.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/writer/ImageWriterRegistry.java
@@ -166,9 +166,7 @@ public final class ImageWriterRegistry {
if (entries == null) {
return null;
}
- Iterator iter = entries.iterator();
- while (iter.hasNext()) {
- ImageWriter writer = iter.next();
+ for (ImageWriter writer : entries) {
if (writer.isFunctional()) {
return writer;
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/writer/ImageWriterUtil.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/writer/ImageWriterUtil.java
index b0969d762..e611d0a38 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/writer/ImageWriterUtil.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/writer/ImageWriterUtil.java
@@ -19,12 +19,12 @@
package org.apache.xmlgraphics.image.writer;
-import java.awt.image.RenderedImage;
+import com.fr.third.org.apache.commons.io.IOUtils;
+
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
-
-import com.fr.third.org.apache.commons.io.IOUtils;
+import java.awt.image.RenderedImage;
/**
* Convenience methods around ImageWriter for the most important tasks.
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/writer/imageio/ImageIOTIFFImageWriter.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/writer/imageio/ImageIOTIFFImageWriter.java
index e800f47f4..801ab6149 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/writer/imageio/ImageIOTIFFImageWriter.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/image/writer/imageio/ImageIOTIFFImageWriter.java
@@ -46,8 +46,12 @@ public class ImageIOTIFFImageWriter extends ImageIOImageWriter {
private static final String SUN_TIFF_NATIVE_FORMAT
= "com_sun_media_imageio_plugins_tiff_image_1.0";
+ private static final String JAVA_TIFF_NATIVE_FORMAT
+ = "javax_imageio_tiff_image_1.0";
private static final String SUN_TIFF_NATIVE_STREAM_FORMAT
= "com_sun_media_imageio_plugins_tiff_stream_1.0";
+ private static final String JAVA_TIFF_NATIVE_STREAM_FORMAT
+ = "javax_imageio_tiff_stream_1.0";
/**
* Main constructor.
@@ -65,14 +69,12 @@ public class ImageIOTIFFImageWriter extends ImageIOImageWriter {
//it doesn't work properly through the standard metadata. Haven't figured out why
//that happens.
if (params.getResolution() != null) {
- if (SUN_TIFF_NATIVE_FORMAT.equals(meta.getNativeMetadataFormatName())) {
- //IIOMetadataNode root = (IIOMetadataNode)meta.getAsTree(SUN_TIFF_NATIVE_FORMAT);
- IIOMetadataNode root = new IIOMetadataNode(SUN_TIFF_NATIVE_FORMAT);
+ if (SUN_TIFF_NATIVE_FORMAT.equals(meta.getNativeMetadataFormatName())
+ || JAVA_TIFF_NATIVE_FORMAT.equals(meta.getNativeMetadataFormatName())) {
+ IIOMetadataNode root = new IIOMetadataNode(meta.getNativeMetadataFormatName());
IIOMetadataNode ifd = getChildNode(root, "TIFFIFD");
if (ifd == null) {
ifd = new IIOMetadataNode("TIFFIFD");
- ifd.setAttribute("tagSets",
- "com.sun.media.imageio.plugins.tiff.BaselineTIFFTagSet");
root.appendChild(ifd);
}
ifd.appendChild(createResolutionUnitField(params));
@@ -85,7 +87,7 @@ public class ImageIOTIFFImageWriter extends ImageIOImageWriter {
"RowsPerStrip", Integer.toString(rows)));
try {
- meta.mergeTree(SUN_TIFF_NATIVE_FORMAT, root);
+ meta.mergeTree(meta.getNativeMetadataFormatName(), root);
} catch (IIOInvalidTreeException e) {
throw new RuntimeException("Cannot update image metadata: "
+ e.getMessage(), e);
@@ -221,20 +223,27 @@ public class ImageIOTIFFImageWriter extends ImageIOImageWriter {
//Try changing the Byte Order
IIOMetadata streamMetadata = writer.getDefaultStreamMetadata(writeParam);
- Set names = new java.util.HashSet(
- Arrays.asList(streamMetadata.getMetadataFormatNames()));
- if (names.contains(SUN_TIFF_NATIVE_STREAM_FORMAT)) {
- Node root = streamMetadata.getAsTree(SUN_TIFF_NATIVE_STREAM_FORMAT);
+ if (streamMetadata != null) {
+ Set names = new java.util.HashSet(
+ Arrays.asList(streamMetadata.getMetadataFormatNames()));
+ setFromTree(names, streamMetadata, endian, SUN_TIFF_NATIVE_STREAM_FORMAT);
+ setFromTree(names, streamMetadata, endian, JAVA_TIFF_NATIVE_STREAM_FORMAT);
+ }
+ return streamMetadata;
+ }
+
+ private void setFromTree(Set names, IIOMetadata streamMetadata, Endianness endian, String format) {
+ if (names.contains(format)) {
+ Node root = streamMetadata.getAsTree(format);
root.getFirstChild().getAttributes().item(0).setNodeValue(endian.toString());
try {
- streamMetadata.setFromTree(SUN_TIFF_NATIVE_STREAM_FORMAT, root);
+ streamMetadata.setFromTree(format, root);
} catch (IIOInvalidTreeException e) {
//This should not happen since we check if the format is supported.
throw new IllegalStateException(
"Could not replace TIFF stream metadata: " + e.getMessage(), e);
}
}
- return streamMetadata;
}
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/io/XmlSourceUtil.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/io/XmlSourceUtil.java
index 01bf84648..8ce6720be 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/io/XmlSourceUtil.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/io/XmlSourceUtil.java
@@ -17,11 +17,11 @@
package org.apache.xmlgraphics.io;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
+import com.fr.third.org.apache.commons.io.IOUtils;
+import org.apache.xmlgraphics.image.loader.ImageSource;
+import org.apache.xmlgraphics.image.loader.util.ImageInputStreamAdapter;
+import org.apache.xmlgraphics.image.loader.util.ImageUtil;
+import org.xml.sax.InputSource;
import javax.xml.transform.Source;
import javax.xml.transform.TransformerFactory;
@@ -29,14 +29,11 @@ import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.sax.SAXSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
-
-import org.xml.sax.InputSource;
-
-import com.fr.third.org.apache.commons.io.IOUtils;
-
-import org.apache.xmlgraphics.image.loader.ImageSource;
-import org.apache.xmlgraphics.image.loader.util.ImageInputStreamAdapter;
-import org.apache.xmlgraphics.image.loader.util.ImageUtil;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
/**
* A utility class for handling {@link Source} objects, more specficially the streams that back
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/GeneralGraphics2DImagePainter.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/GeneralGraphics2DImagePainter.java
index 3b0065435..411aa0f2c 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/GeneralGraphics2DImagePainter.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/GeneralGraphics2DImagePainter.java
@@ -25,4 +25,5 @@ import org.apache.xmlgraphics.ps.PSGenerator;
public interface GeneralGraphics2DImagePainter extends Graphics2DImagePainter {
Graphics2D getGraphics(boolean textAsShapes, PSGenerator gen);
+ void addFallbackFont(String name, Object font);
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/GraphicsConfigurationWithTransparency.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/GraphicsConfigurationWithTransparency.java
index 03fc9550e..4ad28af16 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/GraphicsConfigurationWithTransparency.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/GraphicsConfigurationWithTransparency.java
@@ -73,7 +73,7 @@ public class GraphicsConfigurationWithTransparency extends AbstractGraphicsConfi
* @return the bounds of the document page
*/
public Rectangle getBounds() {
- return null;
+ return new Rectangle();
}
/**
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/GraphicsConfigurationWithoutTransparency.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/GraphicsConfigurationWithoutTransparency.java
index 9a4a9e9a8..35494b865 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/GraphicsConfigurationWithoutTransparency.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/GraphicsConfigurationWithoutTransparency.java
@@ -84,6 +84,6 @@ public class GraphicsConfigurationWithoutTransparency extends AbstractGraphicsCo
@Override
public Rectangle getBounds() {
- return null;
+ return new Rectangle();
}
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/color/ColorWithAlternatives.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/color/ColorWithAlternatives.java
index e0f18fd40..c17cfeb99 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/color/ColorWithAlternatives.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/color/ColorWithAlternatives.java
@@ -201,9 +201,9 @@ public class ColorWithAlternatives extends Color {
*/
public Color getFirstAlternativeOfType(int colorSpaceType) {
if (hasAlternativeColors()) {
- for (int i = 0, c = this.alternativeColors.length; i < c; i++) {
- if (this.alternativeColors[i].getColorSpace().getType() == colorSpaceType) {
- return this.alternativeColors[i];
+ for (Color alternativeColor : this.alternativeColors) {
+ if (alternativeColor.getColorSpace().getType() == colorSpaceType) {
+ return alternativeColor;
}
}
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/color/profile/NamedColorProfile.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/color/profile/NamedColorProfile.java
index 62b155f5f..ee3f66379 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/color/profile/NamedColorProfile.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/color/profile/NamedColorProfile.java
@@ -73,9 +73,9 @@ public class NamedColorProfile {
*/
public NamedColorSpace getNamedColor(String name) {
if (this.namedColors != null) {
- for (int i = 0, c = this.namedColors.length; i < c; i++) {
- if (this.namedColors[i].getColorName().equals(name)) {
- return this.namedColors[i];
+ for (NamedColorSpace namedColor : this.namedColors) {
+ if (namedColor.getColorName().equals(name)) {
+ return namedColor;
}
}
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/ps/PSGraphics2D.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/ps/PSGraphics2D.java
index e05523abc..130738009 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/ps/PSGraphics2D.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/ps/PSGraphics2D.java
@@ -23,6 +23,7 @@ package org.apache.xmlgraphics.java2d.ps;
import java.awt.AlphaComposite;
import java.awt.BasicStroke;
import java.awt.Color;
+import java.awt.Composite;
import java.awt.Dimension;
import java.awt.GradientPaint;
import java.awt.Graphics;
@@ -248,8 +249,11 @@ public class PSGraphics2D extends AbstractGraphics2D {
* @see java.awt.image.ImageObserver
* @see java.awt.image.ImageObserver#imageUpdate(java.awt.Image, int, int, int, int, int)
*/
- public boolean drawImage(Image img, int x, int y,
- ImageObserver observer) {
+ public boolean drawImage(Image img, int x, int y, ImageObserver observer) {
+ return drawImage(img, x, y, observer, null);
+ }
+
+ public boolean drawImage(Image img, int x, int y, ImageObserver observer, Color mask) {
preparePainting();
if (DEBUG) {
System.out.println("drawImage: " + x + ", " + y + " " + img.getClass().getName());
@@ -281,8 +285,7 @@ public class PSGraphics2D extends AbstractGraphics2D {
gen.concatMatrix(at);
Shape imclip = getClip();
writeClip(imclip);
- PSImageUtils.renderBitmapImage(buf,
- x, y, width, height, gen);
+ PSImageUtils.renderBitmapImage(buf, x, y, width, height, gen, mask);
gen.restoreGraphicsState();
} catch (IOException ioe) {
handleIOException(ioe);
@@ -566,7 +569,7 @@ public class PSGraphics2D extends AbstractGraphics2D {
// create pattern with texture and use it for filling of a graphics object
PSTilingPattern psTilingPattern = new PSTilingPattern("Pattern1",
(TexturePaint)paint, 0, 0, 3, null);
- gen.write(psTilingPattern.toString());
+ gen.write(psTilingPattern.toString(gen.isAcrobatDownsample()));
gen.writeln("/Pattern " + gen.mapCommand("setcolorspace"));
gen.writeln(psTilingPattern.getName() + " " + gen.mapCommand("setcolor"));
} catch (IOException ioe) {
@@ -682,7 +685,7 @@ public class PSGraphics2D extends AbstractGraphics2D {
Shape imclip = getClip();
writeClip(imclip);
PSImageUtils.renderBitmapImage(img,
- 0, 0, img.getWidth(), img.getHeight(), gen);
+ 0, 0, img.getWidth(), img.getHeight(), gen, null);
gen.restoreGraphicsState();
} catch (IOException ioe) {
handleIOException(ioe);
@@ -785,35 +788,42 @@ public class PSGraphics2D extends AbstractGraphics2D {
* @see #setClip
*/
public void fill(Shape s) {
- preparePainting();
- try {
- gen.saveGraphicsState();
+ if (!hasAlpha()) {
+ preparePainting();
+ try {
+ gen.saveGraphicsState();
- AffineTransform trans = getTransform();
- boolean newTransform = !trans.isIdentity();
+ AffineTransform trans = getTransform();
+ boolean newTransform = !trans.isIdentity();
- if (newTransform) {
- gen.concatMatrix(trans);
- }
- Shape imclip = getClip();
- if (shouldBeClipped(imclip, s)) {
- writeClip(imclip);
- }
+ if (newTransform) {
+ gen.concatMatrix(trans);
+ }
+ Shape imclip = getClip();
+ if (shouldBeClipped(imclip, s)) {
+ writeClip(imclip);
+ }
- establishColor(getColor());
+ establishColor(getColor());
- applyPaint(getPaint(), true);
+ applyPaint(getPaint(), true);
- gen.writeln(gen.mapCommand("newpath"));
- int windingRule = processShape(s, true);
- doDrawing(true, false,
+ gen.writeln(gen.mapCommand("newpath"));
+ int windingRule = processShape(s, true);
+ doDrawing(true, false,
windingRule == PathIterator.WIND_EVEN_ODD);
- gen.restoreGraphicsState();
- } catch (IOException ioe) {
- handleIOException(ioe);
+ gen.restoreGraphicsState();
+ } catch (IOException ioe) {
+ handleIOException(ioe);
+ }
}
}
+ private boolean hasAlpha() {
+ Composite composite = getComposite();
+ return composite instanceof AlphaComposite && ((AlphaComposite) composite).getAlpha() == 0f;
+ }
+
/**
* Commits a painting operation.
* @param fill filling
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/ps/PSTilingPattern.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/ps/PSTilingPattern.java
index 8f32750ab..04bd55faa 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/ps/PSTilingPattern.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/java2d/ps/PSTilingPattern.java
@@ -19,9 +19,13 @@
package org.apache.xmlgraphics.java2d.ps;
+import java.awt.AlphaComposite;
+import java.awt.Color;
+import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.TexturePaint;
import java.awt.geom.Rectangle2D;
+import java.awt.image.BufferedImage;
import java.util.List;
/**
@@ -361,7 +365,7 @@ public class PSTilingPattern {
*
* @return The string which contains postscript code of pattern definition
*/
- public String toString() {
+ public String toString(boolean acrobatDownsample) {
StringBuffer sb = new StringBuffer("<<\n");
sb.append("/PatternType " + this.patternType + "\n");
sb.append("/PaintType " + paintType + "\n");
@@ -393,26 +397,18 @@ public class PSTilingPattern {
// define color image: width height bits/comp matrix
// datasrc0 datasrcncomp-1 multi ncomp colorimage
- sb.append(width + " " + height + " 8 " + "matrix\n"); // width height bits/comp matrix
- int [] argb = new int[width * height]; // datasrc0 datasrcncomp-1
- sb.append("{<");
- texture.getImage().getRGB(0, 0, width, height, argb, 0, width);
- int count = 0;
- for (int i = 0; i < argb.length; i++) {
- if ((i % width == 0) || (count > 249)) {
- sb.append("\n");
- count = 0; // line should not be longer than 255 characters
- }
- // delete alpha canal and write to output
- StringBuffer sRGB = new StringBuffer(Integer.toHexString(argb[i] & 0x00ffffff));
- if (sRGB.length() != 6) {
- sRGB.insert(0, "000000"); // zero padding
- sRGB = new StringBuffer(sRGB.substring(sRGB.length() - 6));
- }
- sb.append(sRGB);
- count += 6;
+ // width height bits/comp matrix
+ int bits = 8;
+ if (acrobatDownsample) {
+ bits = 4;
}
- sb.append("\n>} false 3 colorimage"); // multi ncomp colorimage
+ sb.append(width).append(" ").append(height).append(" ").append(bits).append(" ").append("matrix\n");
+ int [] argb = new int[width * height]; // datasrc0 datasrcncomp-1
+ getAsRGB().getRGB(0, 0, width, height, argb, 0, width);
+
+ writeImage(sb, argb, width, bits);
+
+ sb.append(" false 3 colorimage"); // multi ncomp colorimage
} else {
sb.append(paintProc);
}
@@ -429,6 +425,58 @@ public class PSTilingPattern {
return sb.toString();
}
+ private void writeImage(StringBuffer sb, int[] argb, int width, int bits) {
+ int count = 0;
+ sb.append("{<");
+ for (int i = 0; i < argb.length; i++) {
+ if ((i % width == 0) || (count > 249)) {
+ sb.append('\n');
+ count = 0; // line should not be longer than 255 characters
+ }
+ if (bits == 4) {
+ Color c = new Color(argb[i]);
+ int v = c.getRed() / 16;
+ String s = Integer.toHexString(v);
+ sb.append(s);
+
+ v = c.getGreen() / 16;
+ s = Integer.toHexString(v);
+ sb.append(s);
+
+ v = c.getBlue() / 16;
+ s = Integer.toHexString(v);
+ sb.append(s);
+
+ count += 3;
+ } else {
+ // delete alpha canal and write to output
+ StringBuffer sRGB = new StringBuffer(Integer.toHexString(argb[i] & 0x00ffffff));
+ if (sRGB.length() != 6) {
+ sRGB.insert(0, "000000"); // zero padding
+ sRGB = new StringBuffer(sRGB.substring(sRGB.length() - 6));
+ }
+ sb.append(sRGB);
+ count += 6;
+ }
+ }
+ sb.append("\n>}");
+ }
+
+ private BufferedImage getAsRGB() {
+ BufferedImage img = texture.getImage();
+ if (img.getType() != BufferedImage.TYPE_INT_RGB) {
+ BufferedImage buf = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_RGB);
+ Graphics2D g = buf.createGraphics();
+ g.setComposite(AlphaComposite.SrcOver);
+ g.setBackground(Color.white);
+ g.fillRect(0, 0, img.getWidth(), img.getHeight());
+ g.drawImage(img, 0, 0, null);
+ g.dispose();
+ return buf;
+ }
+ return img;
+ }
+
/** {@inheritDoc} */
public int hashCode() {
return
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/ImageFormGenerator.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/ImageFormGenerator.java
index a249a6d01..8f7ee383b 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/ImageFormGenerator.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/ImageFormGenerator.java
@@ -114,7 +114,7 @@ public class ImageFormGenerator extends FormGenerator {
return "/ASCII85Decode filter " + implicitFilter + " filter";
} else {
if (gen.getPSLevel() >= 3) {
- return "/ASCII85Decode filter /FlateDecode filter";
+ return "/ASCII85Decode filter";
} else {
return "/ASCII85Decode filter /RunLengthDecode filter";
}
@@ -133,6 +133,12 @@ public class ImageFormGenerator extends FormGenerator {
dataSource = "{ " + getDataName() + " i get /i i 1 add store } bind";
} else {
dataSource = getDataName();
+ if (gen.getPSLevel() >= 3) {
+ String implicitFilter = encoder.getImplicitFilter();
+ if (implicitFilter == null) {
+ dataSource += " /FlateDecode filter";
+ }
+ }
}
AffineTransform at = new AffineTransform();
at.scale(getDimensions().getWidth(), getDimensions().getHeight());
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSDictionary.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSDictionary.java
index 75c8cc338..965d6949e 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSDictionary.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSDictionary.java
@@ -19,7 +19,7 @@
package org.apache.xmlgraphics.ps;
-import java.util.Iterator;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;
@@ -196,9 +196,9 @@ public class PSDictionary extends java.util.HashMap {
}
Token valueToken = nextToken(str, keyToken.endIndex + 1);
String[] braces = null;
- for (int i = 0; i < BRACES.length; i++) {
- if (valueToken.value.startsWith(BRACES[i][OPENING])) {
- braces = BRACES[i];
+ for (String[] brace : BRACES) {
+ if (valueToken.value.startsWith(brace[OPENING])) {
+ braces = brace;
break;
}
}
@@ -276,8 +276,7 @@ public class PSDictionary extends java.util.HashMap {
/** {@inheritDoc} */
public int hashCode() {
int hashCode = 7;
- for (Iterator it = values().iterator(); it.hasNext();) {
- Object value = it.next();
+ for (Object value : values()) {
hashCode += value.hashCode();
}
return hashCode;
@@ -289,15 +288,14 @@ public class PSDictionary extends java.util.HashMap {
return "";
}
StringBuffer sb = new StringBuffer("<<\n");
- for (Iterator it = super.keySet().iterator(); it.hasNext();) {
- String key = (String) it.next();
+ for (Object o : super.keySet()) {
+ String key = (String) o;
sb.append(" " + key + " ");
Object obj = super.get(key);
- if (obj instanceof java.util.ArrayList) {
- List array = (List)obj;
+ if (obj instanceof ArrayList) {
+ List array = (List) obj;
StringBuilder str = new StringBuilder("[");
- for (int i = 0; i < array.size(); i++) {
- Object element = array.get(i);
+ for (Object element : array) {
str.append(element + " ");
}
String str2 = str.toString().trim();
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSFontUtils.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSFontUtils.java
index d4724de32..e72157291 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSFontUtils.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSFontUtils.java
@@ -19,17 +19,16 @@
package org.apache.xmlgraphics.ps;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-
import com.fr.third.org.apache.commons.io.EndianUtils;
import com.fr.third.org.apache.commons.io.IOUtils;
-
import org.apache.xmlgraphics.fonts.Glyphs;
import org.apache.xmlgraphics.util.io.ASCIIHexOutputStream;
import org.apache.xmlgraphics.util.io.SubInputStream;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+
// CSOFF: HideUtilityClassConstructor
/**
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSGenerator.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSGenerator.java
index 7f4e996e0..04a41b82e 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSGenerator.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSGenerator.java
@@ -19,29 +19,26 @@
package org.apache.xmlgraphics.ps;
-import java.awt.Color;
-import java.awt.color.ColorSpace;
-import java.awt.geom.AffineTransform;
-import java.awt.geom.Rectangle2D;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.text.DateFormat;
-import java.util.Date;
-import java.util.Stack;
-
-import javax.xml.transform.Source;
-
import com.fr.third.org.apache.commons.io.IOUtils;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import org.apache.xmlgraphics.java2d.color.ColorUtil;
import org.apache.xmlgraphics.java2d.color.ColorWithAlternatives;
import org.apache.xmlgraphics.ps.dsc.ResourceTracker;
import org.apache.xmlgraphics.util.DoubleFormatUtil;
+import javax.xml.transform.Source;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.text.DateFormat;
+import java.util.Date;
+import java.util.Stack;
+import java.awt.Color;
+import java.awt.color.ColorSpace;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Rectangle2D;
+
/**
* This class is used to output PostScript code to an OutputStream. This class assumes that
* the {@link PSProcSets#STD_PROCSET} has been added to the PostScript file.
@@ -71,6 +68,7 @@ public class PSGenerator implements PSCommandMap {
private Log log = LogFactory.getLog(getClass());
private OutputStream out;
private int psLevel = DEFAULT_LANGUAGE_LEVEL;
+ private boolean acrobatDownsample;
private boolean commentsEnabled = true;
private boolean compactMode = true;
private PSCommandMap commandMap = PSProcSets.STD_COMMAND_MAP;
@@ -166,6 +164,14 @@ public class PSGenerator implements PSCommandMap {
this.psLevel = level;
}
+ public boolean isAcrobatDownsample() {
+ return acrobatDownsample;
+ }
+
+ public void setAcrobatDownsample(boolean b) {
+ acrobatDownsample = b;
+ }
+
/**
* Attempts to resolve the given URI. PSGenerator should be subclasses to provide more
* sophisticated URI resolution.
@@ -680,8 +686,7 @@ public class PSGenerator implements PSCommandMap {
ColorWithAlternatives colExt = (ColorWithAlternatives)color;
//Alternative colors have priority
Color[] alt = colExt.getAlternativeColors();
- for (int i = 0, c = alt.length; i < c; i++) {
- Color col = alt[i];
+ for (Color col : alt) {
established = establishColorFromColor(codeBuffer, col);
if (established) {
break;
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSImageUtils.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSImageUtils.java
index a93da72c7..3d5ccb4f3 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSImageUtils.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSImageUtils.java
@@ -19,6 +19,16 @@
package org.apache.xmlgraphics.ps;
+import com.fr.third.org.apache.commons.io.IOUtils;
+import org.apache.xmlgraphics.util.io.ASCII85OutputStream;
+import org.apache.xmlgraphics.util.io.Finalizable;
+import org.apache.xmlgraphics.util.io.FlateEncodeOutputStream;
+import org.apache.xmlgraphics.util.io.RunLengthEncodeOutputStream;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Arrays;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.color.ColorSpace;
@@ -30,17 +40,6 @@ import java.awt.image.DataBufferByte;
import java.awt.image.IndexColorModel;
import java.awt.image.Raster;
import java.awt.image.RenderedImage;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Arrays;
-
-import com.fr.third.org.apache.commons.io.IOUtils;
-
-import org.apache.xmlgraphics.util.io.ASCII85OutputStream;
-import org.apache.xmlgraphics.util.io.Finalizable;
-import org.apache.xmlgraphics.util.io.FlateEncodeOutputStream;
-import org.apache.xmlgraphics.util.io.RunLengthEncodeOutputStream;
// CSOFF: HideUtilityClassConstructor
@@ -463,7 +462,7 @@ public class PSImageUtils {
* @throws IOException In case of an I/O problem while rendering the image
*/
public static void renderBitmapImage(RenderedImage img,
- float x, float y, float w, float h, PSGenerator gen)
+ float x, float y, float w, float h, PSGenerator gen, Color mask)
throws IOException {
Rectangle2D targetRect = new Rectangle2D.Double(x, y, w, h);
ImageEncoder encoder = ImageEncodingHelper.createRenderedImageEncoder(img);
@@ -472,7 +471,11 @@ public class PSImageUtils {
ImageEncodingHelper helper = new ImageEncodingHelper(img);
ColorModel cm = helper.getEncodedColorModel();
- writeImage(encoder, imgDim, imgDescription, targetRect, cm, gen, img);
+ if (mask == null) {
+ writeImage(encoder, imgDim, imgDescription, targetRect, cm, gen, img);
+ } else {
+ writeImage(encoder, imgDim, imgDescription, targetRect, cm, gen, img, mask);
+ }
}
/**
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSProcSets.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSProcSets.java
index d410d6e11..2e02b72d3 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSProcSets.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSProcSets.java
@@ -21,7 +21,6 @@ package org.apache.xmlgraphics.ps;
import java.io.IOException;
import java.util.Collections;
-import java.util.Iterator;
import java.util.Map;
/**
@@ -99,9 +98,8 @@ public final class PSProcSets {
gen.writeln("/bd{bind def}bind def");
gen.writeln("/ld{load def}bd");
- Iterator iter = STANDARD_MACROS.entrySet().iterator();
- while (iter.hasNext()) {
- Map.Entry entry = (Map.Entry)iter.next();
+ for (Object o : STANDARD_MACROS.entrySet()) {
+ Map.Entry entry = (Map.Entry) o;
gen.writeln("/" + entry.getValue() + "/" + entry.getKey() + " ld");
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSState.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSState.java
index 97b5f9afd..7b0ef38e4 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSState.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/PSState.java
@@ -221,8 +221,8 @@ public class PSState implements Serializable {
* @exception IOException In case of an I/O problem
*/
public void reestablish(PSGenerator gen) throws IOException {
- for (int i = 0, len = transformConcatList.size(); i < len; i++) {
- gen.concatMatrix((AffineTransform)transformConcatList.get(i));
+ for (Object aTransformConcatList : transformConcatList) {
+ gen.concatMatrix((AffineTransform) aTransformConcatList);
}
gen.useLineCap(linecap);
gen.useLineWidth(linewidth);
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/dsc/DSCParser.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/dsc/DSCParser.java
index d2ab1e873..b23953076 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/dsc/DSCParser.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/dsc/DSCParser.java
@@ -23,7 +23,6 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
-import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
@@ -250,9 +249,8 @@ public class DSCParser implements DSCParserConstants {
this.filterListener.processEvent(this.currentEvent, this);
}
if (this.listeners != null) {
- Iterator iter = this.listeners.iterator();
- while (iter.hasNext()) {
- ((DSCListener)iter.next()).processEvent(this.currentEvent, this);
+ for (Object listener : this.listeners) {
+ ((DSCListener) listener).processEvent(this.currentEvent, this);
}
}
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/dsc/EventRecorder.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/dsc/EventRecorder.java
index 2dce74945..b03917386 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/dsc/EventRecorder.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/dsc/EventRecorder.java
@@ -20,7 +20,6 @@
package org.apache.xmlgraphics.ps.dsc;
import java.io.IOException;
-import java.util.Iterator;
import java.util.List;
import org.apache.xmlgraphics.ps.dsc.events.DSCComment;
@@ -38,15 +37,13 @@ public class EventRecorder implements DSCHandler {
* @throws IOException In case of an I/O error
*/
public void replay(DSCHandler handler) throws IOException {
- Iterator iter = events.iterator();
- while (iter.hasNext()) {
- Object obj = iter.next();
+ for (Object obj : events) {
if (obj instanceof PSLine) {
- handler.line(((PSLine)obj).getLine());
+ handler.line(((PSLine) obj).getLine());
} else if (obj instanceof PSComment) {
- handler.comment(((PSComment)obj).getComment());
+ handler.comment(((PSComment) obj).getComment());
} else if (obj instanceof DSCComment) {
- handler.handleDSCComment((DSCComment)obj);
+ handler.handleDSCComment((DSCComment) obj);
} else {
throw new IllegalStateException("Unsupported class type");
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/dsc/ResourceTracker.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/dsc/ResourceTracker.java
index 798607d4d..fcf34362e 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/dsc/ResourceTracker.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/dsc/ResourceTracker.java
@@ -22,7 +22,6 @@ package org.apache.xmlgraphics.ps.dsc;
import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
-import java.util.Iterator;
import java.util.Map;
import java.util.Set;
@@ -145,9 +144,8 @@ public class ResourceTracker {
*/
public void notifyResourceUsageOnPage(Collection resources) {
preparePageResources();
- Iterator iter = resources.iterator();
- while (iter.hasNext()) {
- PSResource res = (PSResource)iter.next();
+ for (Object resource : resources) {
+ PSResource res = (PSResource) resource;
notifyResourceUsageOnPage(res);
}
}
@@ -198,9 +196,8 @@ public class ResourceTracker {
*/
public void writeDocumentResources(PSGenerator gen) throws IOException {
if (usedResources != null) {
- Iterator iter = usedResources.iterator();
- while (iter.hasNext()) {
- PSResource res = (PSResource)iter.next();
+ for (Object usedResource : usedResources) {
+ PSResource res = (PSResource) usedResource;
if (documentSuppliedResources == null
|| !documentSuppliedResources.contains(res)) {
registerNeededResource(res);
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/dsc/events/AbstractResourcesDSCComment.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/dsc/events/AbstractResourcesDSCComment.java
index 036b8023f..da5dabb53 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/dsc/events/AbstractResourcesDSCComment.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/ps/dsc/events/AbstractResourcesDSCComment.java
@@ -149,14 +149,13 @@ public abstract class AbstractResourcesDSCComment extends AbstractDSCComment {
StringBuffer sb = new StringBuffer();
sb.append("%%").append(getName()).append(": ");
boolean first = true;
- Iterator i = resources.iterator();
- while (i.hasNext()) {
+ for (Object resource : resources) {
if (!first) {
gen.writeln(sb.toString());
sb.setLength(0);
sb.append("%%+ ");
}
- PSResource res = (PSResource)i.next();
+ PSResource res = (PSResource) resource;
sb.append(res.getResourceSpecification());
first = false;
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/ClasspathResource.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/ClasspathResource.java
index 3ede2c237..06d7a58a1 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/ClasspathResource.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/ClasspathResource.java
@@ -25,7 +25,6 @@ import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -113,9 +112,8 @@ public final class ClasspathResource {
Enumeration e;
try {
- Iterator it = getClassLoadersForResources().iterator();
- while (it.hasNext()) {
- ClassLoader classLoader = (ClassLoader) it.next();
+ for (Object o1 : getClassLoadersForResources()) {
+ ClassLoader classLoader = (ClassLoader) o1;
e = classLoader.getResources(MANIFEST_PATH);
@@ -124,11 +122,8 @@ public final class ClasspathResource {
try {
final Manifest manifest = new Manifest(u.openStream());
final Map entries = manifest.getEntries();
- final Iterator entrysetiterator = entries.entrySet()
- .iterator();
- while (entrysetiterator.hasNext()) {
- final Map.Entry entry = (Map.Entry) entrysetiterator
- .next();
+ for (Object o : entries.entrySet()) {
+ final Map.Entry entry = (Map.Entry) o;
final String name = (String) entry.getKey();
final Attributes attributes = (Attributes) entry
.getValue();
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/Service.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/Service.java
index 9b30153c4..fd4bd6ba3 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/Service.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/Service.java
@@ -19,6 +19,8 @@
package org.apache.xmlgraphics.util;
+import com.fr.third.org.apache.commons.io.IOUtils;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
@@ -30,8 +32,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import com.fr.third.org.apache.commons.io.IOUtils;
-
/**
* This class handles looking up service providers on the class path.
* It implements the system described in:
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/io/ASCII85OutputStream.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/io/ASCII85OutputStream.java
index e08462f97..ad12efdd4 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/io/ASCII85OutputStream.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/io/ASCII85OutputStream.java
@@ -153,10 +153,10 @@ public class ASCII85OutputStream extends FilterOutputStream
};
if (DEBUG) {
- for (int i = 0; i < ret.length; i++) {
- if (ret[i] < 33 || ret[i] > 117) {
+ for (byte aRet : ret) {
+ if (aRet < 33 || aRet > 117) {
System.out.println("Illegal char value "
- + Integer.valueOf(ret[i]));
+ + (int) aRet);
}
}
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/io/RunLengthEncodeOutputStream.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/io/RunLengthEncodeOutputStream.java
index 7835d6c7f..e6a715e2c 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/io/RunLengthEncodeOutputStream.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/io/RunLengthEncodeOutputStream.java
@@ -140,8 +140,8 @@ public class RunLengthEncodeOutputStream extends FilterOutputStream
public void write(byte[] b)
throws IOException {
- for (int i = 0; i < b.length; i++) {
- this.write(b[i]);
+ for (byte aB : b) {
+ this.write(aB);
}
}
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/uri/CommonURIResolver.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/uri/CommonURIResolver.java
index a5f3182f2..5ec3107e7 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/uri/CommonURIResolver.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/uri/CommonURIResolver.java
@@ -70,9 +70,8 @@ public class CommonURIResolver implements URIResolver {
/** {@inheritDoc} */
public Source resolve(String href, String base) {
synchronized (uriResolvers) {
- Iterator it = uriResolvers.iterator();
- while (it.hasNext()) {
- final URIResolver currentResolver = (URIResolver) it.next();
+ for (Object uriResolver : uriResolvers) {
+ final URIResolver currentResolver = (URIResolver) uriResolver;
try {
final Source result = currentResolver.resolve(href, base);
if (result != null) {
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/uri/DataURLUtil.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/uri/DataURLUtil.java
index a294dc5d1..a97cbd439 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/uri/DataURLUtil.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/util/uri/DataURLUtil.java
@@ -19,16 +19,15 @@
package org.apache.xmlgraphics.util.uri;
+import com.fr.third.org.apache.commons.io.IOUtils;
+import org.apache.xmlgraphics.util.WriterOutputStream;
+import org.apache.xmlgraphics.util.io.Base64EncodeStream;
+
import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;
import java.io.Writer;
-import com.fr.third.org.apache.commons.io.IOUtils;
-
-import org.apache.xmlgraphics.util.WriterOutputStream;
-import org.apache.xmlgraphics.util.io.Base64EncodeStream;
-
/**
* Utility classes for generating RFC 2397 data URLs.
*/
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/Metadata.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/Metadata.java
index 2fc54a29f..d1feb7512 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/Metadata.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/Metadata.java
@@ -84,9 +84,8 @@ public class Metadata implements XMLizable, PropertyAccess {
*/
public void mergeInto(Metadata target, List exclude) {
XMPSchemaRegistry registry = XMPSchemaRegistry.getInstance();
- Iterator iter = properties.values().iterator();
- while (iter.hasNext()) {
- XMPProperty prop = (XMPProperty)iter.next();
+ for (Object o : properties.values()) {
+ XMPProperty prop = (XMPProperty) o;
XMPSchema schema = registry.getSchema(prop.getNamespace());
if (!exclude.contains(schema.getClass())) {
MergeRuleSet rules = schema.getDefaultMergeRuleSet();
@@ -120,9 +119,8 @@ public class Metadata implements XMLizable, PropertyAccess {
boolean first = true;
boolean empty = true;
- Iterator props = properties.values().iterator();
- while (props.hasNext()) {
- XMPProperty prop = (XMPProperty)props.next();
+ for (Object o : properties.values()) {
+ XMPProperty prop = (XMPProperty) o;
if (prop.getName().getNamespaceURI().equals(ns)) {
if (first) {
if (prefix == null) {
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/XMPPacketParser.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/XMPPacketParser.java
index 46f488226..ebaba0c71 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/XMPPacketParser.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/XMPPacketParser.java
@@ -19,18 +19,17 @@
package org.apache.xmlgraphics.xmp;
+import com.fr.third.org.apache.commons.io.IOUtils;
+import com.fr.third.org.apache.commons.io.output.ByteArrayOutputStream;
+
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.stream.StreamSource;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.stream.StreamSource;
-
-import com.fr.third.org.apache.commons.io.IOUtils;
-import com.fr.third.org.apache.commons.io.output.ByteArrayOutputStream;
-
/**
* This class is a parser for XMP packets. By default, it tries to locate the first XMP packet
* it finds and parses it.
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/XMPParser.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/XMPParser.java
index 5e7d8b637..e907e8981 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/XMPParser.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/XMPParser.java
@@ -21,6 +21,7 @@ package org.apache.xmlgraphics.xmp;
import java.net.URL;
+import javax.xml.XMLConstants;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
@@ -54,6 +55,8 @@ public final class XMPParser {
*/
public static Metadata parseXMP(Source src) throws TransformerException {
TransformerFactory tFactory = TransformerFactory.newInstance();
+ tFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "");
+ tFactory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "");
Transformer transformer = tFactory.newTransformer();
XMPHandler handler = createXMPHandler();
SAXResult res = new SAXResult(handler);
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/XMPSchemaAdapter.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/XMPSchemaAdapter.java
index 333b20b1c..ab6d0b4d8 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/XMPSchemaAdapter.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/XMPSchemaAdapter.java
@@ -73,7 +73,7 @@ public class XMPSchemaAdapter {
*/
private void addStringToArray(String propName, String value, XMPArrayType arrayType) {
if (value == null || value.length() == 0) {
- throw new IllegalArgumentException("Value must not be empty");
+ throw new IllegalArgumentException("'" + propName + "' value must not be empty");
}
addObjectToArray(propName, value, arrayType);
}
@@ -86,7 +86,7 @@ public class XMPSchemaAdapter {
*/
protected void addObjectToArray(String propName, Object value, XMPArrayType arrayType) {
if (value == null) {
- throw new IllegalArgumentException("Value must not be null");
+ throw new IllegalArgumentException("'" + propName + "' value must not be null");
}
QName name = getQName(propName);
XMPProperty prop = meta.getProperty(name);
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/XMPStructure.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/XMPStructure.java
index cfc6342b5..86f3d20be 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/XMPStructure.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/XMPStructure.java
@@ -88,11 +88,10 @@ public class XMPStructure extends XMPComplexValue implements PropertyAccess {
atts.clear();
handler.startElement(XMPConstants.RDF_NAMESPACE, "RDF", "rdf:Description", atts);
- Iterator props = properties.values().iterator();
- while (props.hasNext()) {
- XMPProperty prop = (XMPProperty)props.next();
+ for (Object o : properties.values()) {
+ XMPProperty prop = (XMPProperty) o;
//if (prop.getName().getNamespaceURI().equals(ns)) {
- prop.toSAX(handler);
+ prop.toSAX(handler);
//}
}
handler.endElement(XMPConstants.RDF_NAMESPACE, "RDF", "rdf:Description");
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/schemas/DublinCoreAdapter.java b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/schemas/DublinCoreAdapter.java
index 1de27b566..bbe054e4f 100644
--- a/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/schemas/DublinCoreAdapter.java
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/java/org/apache/xmlgraphics/xmp/schemas/DublinCoreAdapter.java
@@ -150,9 +150,9 @@ public class DublinCoreAdapter extends XMPSchemaAdapter {
Date[] dates = getDates();
if (dates != null) {
Date latest = null;
- for (int i = 0, c = dates.length; i < c; i++) {
- if (latest == null || dates[i].getTime() > latest.getTime()) {
- latest = dates[i];
+ for (Date date : dates) {
+ if (latest == null || date.getTime() > latest.getTime()) {
+ latest = date;
}
}
return latest;
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/resources/org/apache/xmlgraphics/fonts/glyphlist.txt b/fine-xmlgraphics/xmlgraphics-commons/src/main/resources/org/apache/xmlgraphics/fonts/glyphlist.txt
new file mode 100644
index 000000000..0304ffc66
--- /dev/null
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/resources/org/apache/xmlgraphics/fonts/glyphlist.txt
@@ -0,0 +1,4322 @@
+# ###################################################################################
+# Copyright (c) 1997,1998,2002,2007 Adobe Systems Incorporated
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this documentation file to use, copy, publish, distribute,
+# sublicense, and/or sell copies of the documentation, and to permit
+# others to do the same, provided that:
+# - No modification, editing or other alteration of this document is
+# allowed; and
+# - The above copyright notice and this permission notice shall be
+# included in all copies of the documentation.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this documentation file, to create their own derivative works
+# from the content of this document to use, copy, publish, distribute,
+# sublicense, and/or sell the derivative works, and to permit others to do
+# the same, provided that the derived work is not represented as being a
+# copy or version of this document.
+#
+# Adobe shall not be liable to any party for any loss of revenue or profit
+# or for indirect, incidental, special, consequential, or other similar
+# damages, whether based on tort (including without limitation negligence
+# or strict liability), contract or other legal or equitable grounds even
+# if Adobe has been advised or had reason to know of the possibility of
+# such damages. The Adobe materials are provided on an "AS IS" basis.
+# Adobe specifically disclaims all express, statutory, or implied
+# warranties relating to the Adobe materials, including but not limited to
+# those concerning merchantability or fitness for a particular purpose or
+# non-infringement of any third party rights regarding the Adobe
+# materials.
+# ###################################################################################
+# Name: Adobe Glyph List
+# Table version: 2.0
+# Date: September 20, 2002
+#
+# See http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
+#
+# Format: Semicolon-delimited fields:
+# (1) glyph name
+# (2) Unicode scalar value
+A;0041
+AE;00C6
+AEacute;01FC
+AEmacron;01E2
+AEsmall;F7E6
+Aacute;00C1
+Aacutesmall;F7E1
+Abreve;0102
+Abreveacute;1EAE
+Abrevecyrillic;04D0
+Abrevedotbelow;1EB6
+Abrevegrave;1EB0
+Abrevehookabove;1EB2
+Abrevetilde;1EB4
+Acaron;01CD
+Acircle;24B6
+Acircumflex;00C2
+Acircumflexacute;1EA4
+Acircumflexdotbelow;1EAC
+Acircumflexgrave;1EA6
+Acircumflexhookabove;1EA8
+Acircumflexsmall;F7E2
+Acircumflextilde;1EAA
+Acute;F6C9
+Acutesmall;F7B4
+Acyrillic;0410
+Adblgrave;0200
+Adieresis;00C4
+Adieresiscyrillic;04D2
+Adieresismacron;01DE
+Adieresissmall;F7E4
+Adotbelow;1EA0
+Adotmacron;01E0
+Agrave;00C0
+Agravesmall;F7E0
+Ahookabove;1EA2
+Aiecyrillic;04D4
+Ainvertedbreve;0202
+Alpha;0391
+Alphatonos;0386
+Amacron;0100
+Amonospace;FF21
+Aogonek;0104
+Aring;00C5
+Aringacute;01FA
+Aringbelow;1E00
+Aringsmall;F7E5
+Asmall;F761
+Atilde;00C3
+Atildesmall;F7E3
+Aybarmenian;0531
+B;0042
+Bcircle;24B7
+Bdotaccent;1E02
+Bdotbelow;1E04
+Becyrillic;0411
+Benarmenian;0532
+Beta;0392
+Bhook;0181
+Blinebelow;1E06
+Bmonospace;FF22
+Brevesmall;F6F4
+Bsmall;F762
+Btopbar;0182
+C;0043
+Caarmenian;053E
+Cacute;0106
+Caron;F6CA
+Caronsmall;F6F5
+Ccaron;010C
+Ccedilla;00C7
+Ccedillaacute;1E08
+Ccedillasmall;F7E7
+Ccircle;24B8
+Ccircumflex;0108
+Cdot;010A
+Cdotaccent;010A
+Cedillasmall;F7B8
+Chaarmenian;0549
+Cheabkhasiancyrillic;04BC
+Checyrillic;0427
+Chedescenderabkhasiancyrillic;04BE
+Chedescendercyrillic;04B6
+Chedieresiscyrillic;04F4
+Cheharmenian;0543
+Chekhakassiancyrillic;04CB
+Cheverticalstrokecyrillic;04B8
+Chi;03A7
+Chook;0187
+Circumflexsmall;F6F6
+Cmonospace;FF23
+Coarmenian;0551
+Csmall;F763
+D;0044
+DZ;01F1
+DZcaron;01C4
+Daarmenian;0534
+Dafrican;0189
+Dcaron;010E
+Dcedilla;1E10
+Dcircle;24B9
+Dcircumflexbelow;1E12
+Dcroat;0110
+Ddotaccent;1E0A
+Ddotbelow;1E0C
+Decyrillic;0414
+Deicoptic;03EE
+Delta;2206
+Deltagreek;0394
+Dhook;018A
+Dieresis;F6CB
+DieresisAcute;F6CC
+DieresisGrave;F6CD
+Dieresissmall;F7A8
+Digammagreek;03DC
+Djecyrillic;0402
+Dlinebelow;1E0E
+Dmonospace;FF24
+Dotaccentsmall;F6F7
+Dslash;0110
+Dsmall;F764
+Dtopbar;018B
+Dz;01F2
+Dzcaron;01C5
+Dzeabkhasiancyrillic;04E0
+Dzecyrillic;0405
+Dzhecyrillic;040F
+E;0045
+Eacute;00C9
+Eacutesmall;F7E9
+Ebreve;0114
+Ecaron;011A
+Ecedillabreve;1E1C
+Echarmenian;0535
+Ecircle;24BA
+Ecircumflex;00CA
+Ecircumflexacute;1EBE
+Ecircumflexbelow;1E18
+Ecircumflexdotbelow;1EC6
+Ecircumflexgrave;1EC0
+Ecircumflexhookabove;1EC2
+Ecircumflexsmall;F7EA
+Ecircumflextilde;1EC4
+Ecyrillic;0404
+Edblgrave;0204
+Edieresis;00CB
+Edieresissmall;F7EB
+Edot;0116
+Edotaccent;0116
+Edotbelow;1EB8
+Efcyrillic;0424
+Egrave;00C8
+Egravesmall;F7E8
+Eharmenian;0537
+Ehookabove;1EBA
+Eightroman;2167
+Einvertedbreve;0206
+Eiotifiedcyrillic;0464
+Elcyrillic;041B
+Elevenroman;216A
+Emacron;0112
+Emacronacute;1E16
+Emacrongrave;1E14
+Emcyrillic;041C
+Emonospace;FF25
+Encyrillic;041D
+Endescendercyrillic;04A2
+Eng;014A
+Enghecyrillic;04A4
+Enhookcyrillic;04C7
+Eogonek;0118
+Eopen;0190
+Epsilon;0395
+Epsilontonos;0388
+Ercyrillic;0420
+Ereversed;018E
+Ereversedcyrillic;042D
+Escyrillic;0421
+Esdescendercyrillic;04AA
+Esh;01A9
+Esmall;F765
+Eta;0397
+Etarmenian;0538
+Etatonos;0389
+Eth;00D0
+Ethsmall;F7F0
+Etilde;1EBC
+Etildebelow;1E1A
+Euro;20AC
+Ezh;01B7
+Ezhcaron;01EE
+Ezhreversed;01B8
+F;0046
+Fcircle;24BB
+Fdotaccent;1E1E
+Feharmenian;0556
+Feicoptic;03E4
+Fhook;0191
+Fitacyrillic;0472
+Fiveroman;2164
+Fmonospace;FF26
+Fourroman;2163
+Fsmall;F766
+G;0047
+GBsquare;3387
+Gacute;01F4
+Gamma;0393
+Gammaafrican;0194
+Gangiacoptic;03EA
+Gbreve;011E
+Gcaron;01E6
+Gcedilla;0122
+Gcircle;24BC
+Gcircumflex;011C
+Gcommaaccent;0122
+Gdot;0120
+Gdotaccent;0120
+Gecyrillic;0413
+Ghadarmenian;0542
+Ghemiddlehookcyrillic;0494
+Ghestrokecyrillic;0492
+Gheupturncyrillic;0490
+Ghook;0193
+Gimarmenian;0533
+Gjecyrillic;0403
+Gmacron;1E20
+Gmonospace;FF27
+Grave;F6CE
+Gravesmall;F760
+Gsmall;F767
+Gsmallhook;029B
+Gstroke;01E4
+H;0048
+H18533;25CF
+H18543;25AA
+H18551;25AB
+H22073;25A1
+HPsquare;33CB
+Haabkhasiancyrillic;04A8
+Hadescendercyrillic;04B2
+Hardsigncyrillic;042A
+Hbar;0126
+Hbrevebelow;1E2A
+Hcedilla;1E28
+Hcircle;24BD
+Hcircumflex;0124
+Hdieresis;1E26
+Hdotaccent;1E22
+Hdotbelow;1E24
+Hmonospace;FF28
+Hoarmenian;0540
+Horicoptic;03E8
+Hsmall;F768
+Hungarumlaut;F6CF
+Hungarumlautsmall;F6F8
+Hzsquare;3390
+I;0049
+IAcyrillic;042F
+IJ;0132
+IUcyrillic;042E
+Iacute;00CD
+Iacutesmall;F7ED
+Ibreve;012C
+Icaron;01CF
+Icircle;24BE
+Icircumflex;00CE
+Icircumflexsmall;F7EE
+Icyrillic;0406
+Idblgrave;0208
+Idieresis;00CF
+Idieresisacute;1E2E
+Idieresiscyrillic;04E4
+Idieresissmall;F7EF
+Idot;0130
+Idotaccent;0130
+Idotbelow;1ECA
+Iebrevecyrillic;04D6
+Iecyrillic;0415
+Ifraktur;2111
+Igrave;00CC
+Igravesmall;F7EC
+Ihookabove;1EC8
+Iicyrillic;0418
+Iinvertedbreve;020A
+Iishortcyrillic;0419
+Imacron;012A
+Imacroncyrillic;04E2
+Imonospace;FF29
+Iniarmenian;053B
+Iocyrillic;0401
+Iogonek;012E
+Iota;0399
+Iotaafrican;0196
+Iotadieresis;03AA
+Iotatonos;038A
+Ismall;F769
+Istroke;0197
+Itilde;0128
+Itildebelow;1E2C
+Izhitsacyrillic;0474
+Izhitsadblgravecyrillic;0476
+J;004A
+Jaarmenian;0541
+Jcircle;24BF
+Jcircumflex;0134
+Jecyrillic;0408
+Jheharmenian;054B
+Jmonospace;FF2A
+Jsmall;F76A
+K;004B
+KBsquare;3385
+KKsquare;33CD
+Kabashkircyrillic;04A0
+Kacute;1E30
+Kacyrillic;041A
+Kadescendercyrillic;049A
+Kahookcyrillic;04C3
+Kappa;039A
+Kastrokecyrillic;049E
+Kaverticalstrokecyrillic;049C
+Kcaron;01E8
+Kcedilla;0136
+Kcircle;24C0
+Kcommaaccent;0136
+Kdotbelow;1E32
+Keharmenian;0554
+Kenarmenian;053F
+Khacyrillic;0425
+Kheicoptic;03E6
+Khook;0198
+Kjecyrillic;040C
+Klinebelow;1E34
+Kmonospace;FF2B
+Koppacyrillic;0480
+Koppagreek;03DE
+Ksicyrillic;046E
+Ksmall;F76B
+L;004C
+LJ;01C7
+LL;F6BF
+Lacute;0139
+Lambda;039B
+Lcaron;013D
+Lcedilla;013B
+Lcircle;24C1
+Lcircumflexbelow;1E3C
+Lcommaaccent;013B
+Ldot;013F
+Ldotaccent;013F
+Ldotbelow;1E36
+Ldotbelowmacron;1E38
+Liwnarmenian;053C
+Lj;01C8
+Ljecyrillic;0409
+Llinebelow;1E3A
+Lmonospace;FF2C
+Lslash;0141
+Lslashsmall;F6F9
+Lsmall;F76C
+M;004D
+MBsquare;3386
+Macron;F6D0
+Macronsmall;F7AF
+Macute;1E3E
+Mcircle;24C2
+Mdotaccent;1E40
+Mdotbelow;1E42
+Menarmenian;0544
+Mmonospace;FF2D
+Msmall;F76D
+Mturned;019C
+Mu;039C
+N;004E
+NJ;01CA
+Nacute;0143
+Ncaron;0147
+Ncedilla;0145
+Ncircle;24C3
+Ncircumflexbelow;1E4A
+Ncommaaccent;0145
+Ndotaccent;1E44
+Ndotbelow;1E46
+Nhookleft;019D
+Nineroman;2168
+Nj;01CB
+Njecyrillic;040A
+Nlinebelow;1E48
+Nmonospace;FF2E
+Nowarmenian;0546
+Nsmall;F76E
+Ntilde;00D1
+Ntildesmall;F7F1
+Nu;039D
+O;004F
+OE;0152
+OEsmall;F6FA
+Oacute;00D3
+Oacutesmall;F7F3
+Obarredcyrillic;04E8
+Obarreddieresiscyrillic;04EA
+Obreve;014E
+Ocaron;01D1
+Ocenteredtilde;019F
+Ocircle;24C4
+Ocircumflex;00D4
+Ocircumflexacute;1ED0
+Ocircumflexdotbelow;1ED8
+Ocircumflexgrave;1ED2
+Ocircumflexhookabove;1ED4
+Ocircumflexsmall;F7F4
+Ocircumflextilde;1ED6
+Ocyrillic;041E
+Odblacute;0150
+Odblgrave;020C
+Odieresis;00D6
+Odieresiscyrillic;04E6
+Odieresissmall;F7F6
+Odotbelow;1ECC
+Ogoneksmall;F6FB
+Ograve;00D2
+Ogravesmall;F7F2
+Oharmenian;0555
+Ohm;2126
+Ohookabove;1ECE
+Ohorn;01A0
+Ohornacute;1EDA
+Ohorndotbelow;1EE2
+Ohorngrave;1EDC
+Ohornhookabove;1EDE
+Ohorntilde;1EE0
+Ohungarumlaut;0150
+Oi;01A2
+Oinvertedbreve;020E
+Omacron;014C
+Omacronacute;1E52
+Omacrongrave;1E50
+Omega;2126
+Omegacyrillic;0460
+Omegagreek;03A9
+Omegaroundcyrillic;047A
+Omegatitlocyrillic;047C
+Omegatonos;038F
+Omicron;039F
+Omicrontonos;038C
+Omonospace;FF2F
+Oneroman;2160
+Oogonek;01EA
+Oogonekmacron;01EC
+Oopen;0186
+Oslash;00D8
+Oslashacute;01FE
+Oslashsmall;F7F8
+Osmall;F76F
+Ostrokeacute;01FE
+Otcyrillic;047E
+Otilde;00D5
+Otildeacute;1E4C
+Otildedieresis;1E4E
+Otildesmall;F7F5
+P;0050
+Pacute;1E54
+Pcircle;24C5
+Pdotaccent;1E56
+Pecyrillic;041F
+Peharmenian;054A
+Pemiddlehookcyrillic;04A6
+Phi;03A6
+Phook;01A4
+Pi;03A0
+Piwrarmenian;0553
+Pmonospace;FF30
+Psi;03A8
+Psicyrillic;0470
+Psmall;F770
+Q;0051
+Qcircle;24C6
+Qmonospace;FF31
+Qsmall;F771
+R;0052
+Raarmenian;054C
+Racute;0154
+Rcaron;0158
+Rcedilla;0156
+Rcircle;24C7
+Rcommaaccent;0156
+Rdblgrave;0210
+Rdotaccent;1E58
+Rdotbelow;1E5A
+Rdotbelowmacron;1E5C
+Reharmenian;0550
+Rfraktur;211C
+Rho;03A1
+Ringsmall;F6FC
+Rinvertedbreve;0212
+Rlinebelow;1E5E
+Rmonospace;FF32
+Rsmall;F772
+Rsmallinverted;0281
+Rsmallinvertedsuperior;02B6
+S;0053
+SF010000;250C
+SF020000;2514
+SF030000;2510
+SF040000;2518
+SF050000;253C
+SF060000;252C
+SF070000;2534
+SF080000;251C
+SF090000;2524
+SF100000;2500
+SF110000;2502
+SF190000;2561
+SF200000;2562
+SF210000;2556
+SF220000;2555
+SF230000;2563
+SF240000;2551
+SF250000;2557
+SF260000;255D
+SF270000;255C
+SF280000;255B
+SF360000;255E
+SF370000;255F
+SF380000;255A
+SF390000;2554
+SF400000;2569
+SF410000;2566
+SF420000;2560
+SF430000;2550
+SF440000;256C
+SF450000;2567
+SF460000;2568
+SF470000;2564
+SF480000;2565
+SF490000;2559
+SF500000;2558
+SF510000;2552
+SF520000;2553
+SF530000;256B
+SF540000;256A
+Sacute;015A
+Sacutedotaccent;1E64
+Sampigreek;03E0
+Scaron;0160
+Scarondotaccent;1E66
+Scaronsmall;F6FD
+Scedilla;015E
+Schwa;018F
+Schwacyrillic;04D8
+Schwadieresiscyrillic;04DA
+Scircle;24C8
+Scircumflex;015C
+Scommaaccent;0218
+Sdotaccent;1E60
+Sdotbelow;1E62
+Sdotbelowdotaccent;1E68
+Seharmenian;054D
+Sevenroman;2166
+Shaarmenian;0547
+Shacyrillic;0428
+Shchacyrillic;0429
+Sheicoptic;03E2
+Shhacyrillic;04BA
+Shimacoptic;03EC
+Sigma;03A3
+Sixroman;2165
+Smonospace;FF33
+Softsigncyrillic;042C
+Ssmall;F773
+Stigmagreek;03DA
+T;0054
+Tau;03A4
+Tbar;0166
+Tcaron;0164
+Tcedilla;0162
+Tcircle;24C9
+Tcircumflexbelow;1E70
+Tcommaaccent;0162
+Tdotaccent;1E6A
+Tdotbelow;1E6C
+Tecyrillic;0422
+Tedescendercyrillic;04AC
+Tenroman;2169
+Tetsecyrillic;04B4
+Theta;0398
+Thook;01AC
+Thorn;00DE
+Thornsmall;F7FE
+Threeroman;2162
+Tildesmall;F6FE
+Tiwnarmenian;054F
+Tlinebelow;1E6E
+Tmonospace;FF34
+Toarmenian;0539
+Tonefive;01BC
+Tonesix;0184
+Tonetwo;01A7
+Tretroflexhook;01AE
+Tsecyrillic;0426
+Tshecyrillic;040B
+Tsmall;F774
+Twelveroman;216B
+Tworoman;2161
+U;0055
+Uacute;00DA
+Uacutesmall;F7FA
+Ubreve;016C
+Ucaron;01D3
+Ucircle;24CA
+Ucircumflex;00DB
+Ucircumflexbelow;1E76
+Ucircumflexsmall;F7FB
+Ucyrillic;0423
+Udblacute;0170
+Udblgrave;0214
+Udieresis;00DC
+Udieresisacute;01D7
+Udieresisbelow;1E72
+Udieresiscaron;01D9
+Udieresiscyrillic;04F0
+Udieresisgrave;01DB
+Udieresismacron;01D5
+Udieresissmall;F7FC
+Udotbelow;1EE4
+Ugrave;00D9
+Ugravesmall;F7F9
+Uhookabove;1EE6
+Uhorn;01AF
+Uhornacute;1EE8
+Uhorndotbelow;1EF0
+Uhorngrave;1EEA
+Uhornhookabove;1EEC
+Uhorntilde;1EEE
+Uhungarumlaut;0170
+Uhungarumlautcyrillic;04F2
+Uinvertedbreve;0216
+Ukcyrillic;0478
+Umacron;016A
+Umacroncyrillic;04EE
+Umacrondieresis;1E7A
+Umonospace;FF35
+Uogonek;0172
+Upsilon;03A5
+Upsilon1;03D2
+Upsilonacutehooksymbolgreek;03D3
+Upsilonafrican;01B1
+Upsilondieresis;03AB
+Upsilondieresishooksymbolgreek;03D4
+Upsilonhooksymbol;03D2
+Upsilontonos;038E
+Uring;016E
+Ushortcyrillic;040E
+Usmall;F775
+Ustraightcyrillic;04AE
+Ustraightstrokecyrillic;04B0
+Utilde;0168
+Utildeacute;1E78
+Utildebelow;1E74
+V;0056
+Vcircle;24CB
+Vdotbelow;1E7E
+Vecyrillic;0412
+Vewarmenian;054E
+Vhook;01B2
+Vmonospace;FF36
+Voarmenian;0548
+Vsmall;F776
+Vtilde;1E7C
+W;0057
+Wacute;1E82
+Wcircle;24CC
+Wcircumflex;0174
+Wdieresis;1E84
+Wdotaccent;1E86
+Wdotbelow;1E88
+Wgrave;1E80
+Wmonospace;FF37
+Wsmall;F777
+X;0058
+Xcircle;24CD
+Xdieresis;1E8C
+Xdotaccent;1E8A
+Xeharmenian;053D
+Xi;039E
+Xmonospace;FF38
+Xsmall;F778
+Y;0059
+Yacute;00DD
+Yacutesmall;F7FD
+Yatcyrillic;0462
+Ycircle;24CE
+Ycircumflex;0176
+Ydieresis;0178
+Ydieresissmall;F7FF
+Ydotaccent;1E8E
+Ydotbelow;1EF4
+Yericyrillic;042B
+Yerudieresiscyrillic;04F8
+Ygrave;1EF2
+Yhook;01B3
+Yhookabove;1EF6
+Yiarmenian;0545
+Yicyrillic;0407
+Yiwnarmenian;0552
+Ymonospace;FF39
+Ysmall;F779
+Ytilde;1EF8
+Yusbigcyrillic;046A
+Yusbigiotifiedcyrillic;046C
+Yuslittlecyrillic;0466
+Yuslittleiotifiedcyrillic;0468
+Z;005A
+Zaarmenian;0536
+Zacute;0179
+Zcaron;017D
+Zcaronsmall;F6FF
+Zcircle;24CF
+Zcircumflex;1E90
+Zdot;017B
+Zdotaccent;017B
+Zdotbelow;1E92
+Zecyrillic;0417
+Zedescendercyrillic;0498
+Zedieresiscyrillic;04DE
+Zeta;0396
+Zhearmenian;053A
+Zhebrevecyrillic;04C1
+Zhecyrillic;0416
+Zhedescendercyrillic;0496
+Zhedieresiscyrillic;04DC
+Zlinebelow;1E94
+Zmonospace;FF3A
+Zsmall;F77A
+Zstroke;01B5
+a;0061
+aabengali;0986
+aacute;00E1
+aadeva;0906
+aagujarati;0A86
+aagurmukhi;0A06
+aamatragurmukhi;0A3E
+aarusquare;3303
+aavowelsignbengali;09BE
+aavowelsigndeva;093E
+aavowelsigngujarati;0ABE
+abbreviationmarkarmenian;055F
+abbreviationsigndeva;0970
+abengali;0985
+abopomofo;311A
+abreve;0103
+abreveacute;1EAF
+abrevecyrillic;04D1
+abrevedotbelow;1EB7
+abrevegrave;1EB1
+abrevehookabove;1EB3
+abrevetilde;1EB5
+acaron;01CE
+acircle;24D0
+acircumflex;00E2
+acircumflexacute;1EA5
+acircumflexdotbelow;1EAD
+acircumflexgrave;1EA7
+acircumflexhookabove;1EA9
+acircumflextilde;1EAB
+acute;00B4
+acutebelowcmb;0317
+acutecmb;0301
+acutecomb;0301
+acutedeva;0954
+acutelowmod;02CF
+acutetonecmb;0341
+acyrillic;0430
+adblgrave;0201
+addakgurmukhi;0A71
+adeva;0905
+adieresis;00E4
+adieresiscyrillic;04D3
+adieresismacron;01DF
+adotbelow;1EA1
+adotmacron;01E1
+ae;00E6
+aeacute;01FD
+aekorean;3150
+aemacron;01E3
+afii00208;2015
+afii08941;20A4
+afii10017;0410
+afii10018;0411
+afii10019;0412
+afii10020;0413
+afii10021;0414
+afii10022;0415
+afii10023;0401
+afii10024;0416
+afii10025;0417
+afii10026;0418
+afii10027;0419
+afii10028;041A
+afii10029;041B
+afii10030;041C
+afii10031;041D
+afii10032;041E
+afii10033;041F
+afii10034;0420
+afii10035;0421
+afii10036;0422
+afii10037;0423
+afii10038;0424
+afii10039;0425
+afii10040;0426
+afii10041;0427
+afii10042;0428
+afii10043;0429
+afii10044;042A
+afii10045;042B
+afii10046;042C
+afii10047;042D
+afii10048;042E
+afii10049;042F
+afii10050;0490
+afii10051;0402
+afii10052;0403
+afii10053;0404
+afii10054;0405
+afii10055;0406
+afii10056;0407
+afii10057;0408
+afii10058;0409
+afii10059;040A
+afii10060;040B
+afii10061;040C
+afii10062;040E
+afii10063;F6C4
+afii10064;F6C5
+afii10065;0430
+afii10066;0431
+afii10067;0432
+afii10068;0433
+afii10069;0434
+afii10070;0435
+afii10071;0451
+afii10072;0436
+afii10073;0437
+afii10074;0438
+afii10075;0439
+afii10076;043A
+afii10077;043B
+afii10078;043C
+afii10079;043D
+afii10080;043E
+afii10081;043F
+afii10082;0440
+afii10083;0441
+afii10084;0442
+afii10085;0443
+afii10086;0444
+afii10087;0445
+afii10088;0446
+afii10089;0447
+afii10090;0448
+afii10091;0449
+afii10092;044A
+afii10093;044B
+afii10094;044C
+afii10095;044D
+afii10096;044E
+afii10097;044F
+afii10098;0491
+afii10099;0452
+afii10100;0453
+afii10101;0454
+afii10102;0455
+afii10103;0456
+afii10104;0457
+afii10105;0458
+afii10106;0459
+afii10107;045A
+afii10108;045B
+afii10109;045C
+afii10110;045E
+afii10145;040F
+afii10146;0462
+afii10147;0472
+afii10148;0474
+afii10192;F6C6
+afii10193;045F
+afii10194;0463
+afii10195;0473
+afii10196;0475
+afii10831;F6C7
+afii10832;F6C8
+afii10846;04D9
+afii299;200E
+afii300;200F
+afii301;200D
+afii57381;066A
+afii57388;060C
+afii57392;0660
+afii57393;0661
+afii57394;0662
+afii57395;0663
+afii57396;0664
+afii57397;0665
+afii57398;0666
+afii57399;0667
+afii57400;0668
+afii57401;0669
+afii57403;061B
+afii57407;061F
+afii57409;0621
+afii57410;0622
+afii57411;0623
+afii57412;0624
+afii57413;0625
+afii57414;0626
+afii57415;0627
+afii57416;0628
+afii57417;0629
+afii57418;062A
+afii57419;062B
+afii57420;062C
+afii57421;062D
+afii57422;062E
+afii57423;062F
+afii57424;0630
+afii57425;0631
+afii57426;0632
+afii57427;0633
+afii57428;0634
+afii57429;0635
+afii57430;0636
+afii57431;0637
+afii57432;0638
+afii57433;0639
+afii57434;063A
+afii57440;0640
+afii57441;0641
+afii57442;0642
+afii57443;0643
+afii57444;0644
+afii57445;0645
+afii57446;0646
+afii57448;0648
+afii57449;0649
+afii57450;064A
+afii57451;064B
+afii57452;064C
+afii57453;064D
+afii57454;064E
+afii57455;064F
+afii57456;0650
+afii57457;0651
+afii57458;0652
+afii57470;0647
+afii57505;06A4
+afii57506;067E
+afii57507;0686
+afii57508;0698
+afii57509;06AF
+afii57511;0679
+afii57512;0688
+afii57513;0691
+afii57514;06BA
+afii57519;06D2
+afii57534;06D5
+afii57636;20AA
+afii57645;05BE
+afii57658;05C3
+afii57664;05D0
+afii57665;05D1
+afii57666;05D2
+afii57667;05D3
+afii57668;05D4
+afii57669;05D5
+afii57670;05D6
+afii57671;05D7
+afii57672;05D8
+afii57673;05D9
+afii57674;05DA
+afii57675;05DB
+afii57676;05DC
+afii57677;05DD
+afii57678;05DE
+afii57679;05DF
+afii57680;05E0
+afii57681;05E1
+afii57682;05E2
+afii57683;05E3
+afii57684;05E4
+afii57685;05E5
+afii57686;05E6
+afii57687;05E7
+afii57688;05E8
+afii57689;05E9
+afii57690;05EA
+afii57694;FB2A
+afii57695;FB2B
+afii57700;FB4B
+afii57705;FB1F
+afii57716;05F0
+afii57717;05F1
+afii57718;05F2
+afii57723;FB35
+afii57793;05B4
+afii57794;05B5
+afii57795;05B6
+afii57796;05BB
+afii57797;05B8
+afii57798;05B7
+afii57799;05B0
+afii57800;05B2
+afii57801;05B1
+afii57802;05B3
+afii57803;05C2
+afii57804;05C1
+afii57806;05B9
+afii57807;05BC
+afii57839;05BD
+afii57841;05BF
+afii57842;05C0
+afii57929;02BC
+afii61248;2105
+afii61289;2113
+afii61352;2116
+afii61573;202C
+afii61574;202D
+afii61575;202E
+afii61664;200C
+afii63167;066D
+afii64937;02BD
+agrave;00E0
+agujarati;0A85
+agurmukhi;0A05
+ahiragana;3042
+ahookabove;1EA3
+aibengali;0990
+aibopomofo;311E
+aideva;0910
+aiecyrillic;04D5
+aigujarati;0A90
+aigurmukhi;0A10
+aimatragurmukhi;0A48
+ainarabic;0639
+ainfinalarabic;FECA
+aininitialarabic;FECB
+ainmedialarabic;FECC
+ainvertedbreve;0203
+aivowelsignbengali;09C8
+aivowelsigndeva;0948
+aivowelsigngujarati;0AC8
+akatakana;30A2
+akatakanahalfwidth;FF71
+akorean;314F
+alef;05D0
+alefarabic;0627
+alefdageshhebrew;FB30
+aleffinalarabic;FE8E
+alefhamzaabovearabic;0623
+alefhamzaabovefinalarabic;FE84
+alefhamzabelowarabic;0625
+alefhamzabelowfinalarabic;FE88
+alefhebrew;05D0
+aleflamedhebrew;FB4F
+alefmaddaabovearabic;0622
+alefmaddaabovefinalarabic;FE82
+alefmaksuraarabic;0649
+alefmaksurafinalarabic;FEF0
+alefmaksurainitialarabic;FEF3
+alefmaksuramedialarabic;FEF4
+alefpatahhebrew;FB2E
+alefqamatshebrew;FB2F
+aleph;2135
+allequal;224C
+alpha;03B1
+alphatonos;03AC
+amacron;0101
+amonospace;FF41
+ampersand;0026
+ampersandmonospace;FF06
+ampersandsmall;F726
+amsquare;33C2
+anbopomofo;3122
+angbopomofo;3124
+angkhankhuthai;0E5A
+angle;2220
+anglebracketleft;3008
+anglebracketleftvertical;FE3F
+anglebracketright;3009
+anglebracketrightvertical;FE40
+angleleft;2329
+angleright;232A
+angstrom;212B
+anoteleia;0387
+anudattadeva;0952
+anusvarabengali;0982
+anusvaradeva;0902
+anusvaragujarati;0A82
+aogonek;0105
+apaatosquare;3300
+aparen;249C
+apostrophearmenian;055A
+apostrophemod;02BC
+apple;F8FF
+approaches;2250
+approxequal;2248
+approxequalorimage;2252
+approximatelyequal;2245
+araeaekorean;318E
+araeakorean;318D
+arc;2312
+arighthalfring;1E9A
+aring;00E5
+aringacute;01FB
+aringbelow;1E01
+arrowboth;2194
+arrowdashdown;21E3
+arrowdashleft;21E0
+arrowdashright;21E2
+arrowdashup;21E1
+arrowdblboth;21D4
+arrowdbldown;21D3
+arrowdblleft;21D0
+arrowdblright;21D2
+arrowdblup;21D1
+arrowdown;2193
+arrowdownleft;2199
+arrowdownright;2198
+arrowdownwhite;21E9
+arrowheaddownmod;02C5
+arrowheadleftmod;02C2
+arrowheadrightmod;02C3
+arrowheadupmod;02C4
+arrowhorizex;F8E7
+arrowleft;2190
+arrowleftdbl;21D0
+arrowleftdblstroke;21CD
+arrowleftoverright;21C6
+arrowleftwhite;21E6
+arrowright;2192
+arrowrightdblstroke;21CF
+arrowrightheavy;279E
+arrowrightoverleft;21C4
+arrowrightwhite;21E8
+arrowtableft;21E4
+arrowtabright;21E5
+arrowup;2191
+arrowupdn;2195
+arrowupdnbse;21A8
+arrowupdownbase;21A8
+arrowupleft;2196
+arrowupleftofdown;21C5
+arrowupright;2197
+arrowupwhite;21E7
+arrowvertex;F8E6
+asciicircum;005E
+asciicircummonospace;FF3E
+asciitilde;007E
+asciitildemonospace;FF5E
+ascript;0251
+ascriptturned;0252
+asmallhiragana;3041
+asmallkatakana;30A1
+asmallkatakanahalfwidth;FF67
+asterisk;002A
+asteriskaltonearabic;066D
+asteriskarabic;066D
+asteriskmath;2217
+asteriskmonospace;FF0A
+asterisksmall;FE61
+asterism;2042
+asuperior;F6E9
+asymptoticallyequal;2243
+at;0040
+atilde;00E3
+atmonospace;FF20
+atsmall;FE6B
+aturned;0250
+aubengali;0994
+aubopomofo;3120
+audeva;0914
+augujarati;0A94
+augurmukhi;0A14
+aulengthmarkbengali;09D7
+aumatragurmukhi;0A4C
+auvowelsignbengali;09CC
+auvowelsigndeva;094C
+auvowelsigngujarati;0ACC
+avagrahadeva;093D
+aybarmenian;0561
+ayin;05E2
+ayinaltonehebrew;FB20
+ayinhebrew;05E2
+b;0062
+babengali;09AC
+backslash;005C
+backslashmonospace;FF3C
+badeva;092C
+bagujarati;0AAC
+bagurmukhi;0A2C
+bahiragana;3070
+bahtthai;0E3F
+bakatakana;30D0
+bar;007C
+barmonospace;FF5C
+bbopomofo;3105
+bcircle;24D1
+bdotaccent;1E03
+bdotbelow;1E05
+beamedsixteenthnotes;266C
+because;2235
+becyrillic;0431
+beharabic;0628
+behfinalarabic;FE90
+behinitialarabic;FE91
+behiragana;3079
+behmedialarabic;FE92
+behmeeminitialarabic;FC9F
+behmeemisolatedarabic;FC08
+behnoonfinalarabic;FC6D
+bekatakana;30D9
+benarmenian;0562
+bet;05D1
+beta;03B2
+betasymbolgreek;03D0
+betdagesh;FB31
+betdageshhebrew;FB31
+bethebrew;05D1
+betrafehebrew;FB4C
+bhabengali;09AD
+bhadeva;092D
+bhagujarati;0AAD
+bhagurmukhi;0A2D
+bhook;0253
+bihiragana;3073
+bikatakana;30D3
+bilabialclick;0298
+bindigurmukhi;0A02
+birusquare;3331
+blackcircle;25CF
+blackdiamond;25C6
+blackdownpointingtriangle;25BC
+blackleftpointingpointer;25C4
+blackleftpointingtriangle;25C0
+blacklenticularbracketleft;3010
+blacklenticularbracketleftvertical;FE3B
+blacklenticularbracketright;3011
+blacklenticularbracketrightvertical;FE3C
+blacklowerlefttriangle;25E3
+blacklowerrighttriangle;25E2
+blackrectangle;25AC
+blackrightpointingpointer;25BA
+blackrightpointingtriangle;25B6
+blacksmallsquare;25AA
+blacksmilingface;263B
+blacksquare;25A0
+blackstar;2605
+blackupperlefttriangle;25E4
+blackupperrighttriangle;25E5
+blackuppointingsmalltriangle;25B4
+blackuppointingtriangle;25B2
+blank;2423
+blinebelow;1E07
+block;2588
+bmonospace;FF42
+bobaimaithai;0E1A
+bohiragana;307C
+bokatakana;30DC
+bparen;249D
+bqsquare;33C3
+braceex;F8F4
+braceleft;007B
+braceleftbt;F8F3
+braceleftmid;F8F2
+braceleftmonospace;FF5B
+braceleftsmall;FE5B
+bracelefttp;F8F1
+braceleftvertical;FE37
+braceright;007D
+bracerightbt;F8FE
+bracerightmid;F8FD
+bracerightmonospace;FF5D
+bracerightsmall;FE5C
+bracerighttp;F8FC
+bracerightvertical;FE38
+bracketleft;005B
+bracketleftbt;F8F0
+bracketleftex;F8EF
+bracketleftmonospace;FF3B
+bracketlefttp;F8EE
+bracketright;005D
+bracketrightbt;F8FB
+bracketrightex;F8FA
+bracketrightmonospace;FF3D
+bracketrighttp;F8F9
+breve;02D8
+brevebelowcmb;032E
+brevecmb;0306
+breveinvertedbelowcmb;032F
+breveinvertedcmb;0311
+breveinverteddoublecmb;0361
+bridgebelowcmb;032A
+bridgeinvertedbelowcmb;033A
+brokenbar;00A6
+bstroke;0180
+bsuperior;F6EA
+btopbar;0183
+buhiragana;3076
+bukatakana;30D6
+bullet;2022
+bulletinverse;25D8
+bulletoperator;2219
+bullseye;25CE
+c;0063
+caarmenian;056E
+cabengali;099A
+cacute;0107
+cadeva;091A
+cagujarati;0A9A
+cagurmukhi;0A1A
+calsquare;3388
+candrabindubengali;0981
+candrabinducmb;0310
+candrabindudeva;0901
+candrabindugujarati;0A81
+capslock;21EA
+careof;2105
+caron;02C7
+caronbelowcmb;032C
+caroncmb;030C
+carriagereturn;21B5
+cbopomofo;3118
+ccaron;010D
+ccedilla;00E7
+ccedillaacute;1E09
+ccircle;24D2
+ccircumflex;0109
+ccurl;0255
+cdot;010B
+cdotaccent;010B
+cdsquare;33C5
+cedilla;00B8
+cedillacmb;0327
+cent;00A2
+centigrade;2103
+centinferior;F6DF
+centmonospace;FFE0
+centoldstyle;F7A2
+centsuperior;F6E0
+chaarmenian;0579
+chabengali;099B
+chadeva;091B
+chagujarati;0A9B
+chagurmukhi;0A1B
+chbopomofo;3114
+cheabkhasiancyrillic;04BD
+checkmark;2713
+checyrillic;0447
+chedescenderabkhasiancyrillic;04BF
+chedescendercyrillic;04B7
+chedieresiscyrillic;04F5
+cheharmenian;0573
+chekhakassiancyrillic;04CC
+cheverticalstrokecyrillic;04B9
+chi;03C7
+chieuchacirclekorean;3277
+chieuchaparenkorean;3217
+chieuchcirclekorean;3269
+chieuchkorean;314A
+chieuchparenkorean;3209
+chochangthai;0E0A
+chochanthai;0E08
+chochingthai;0E09
+chochoethai;0E0C
+chook;0188
+cieucacirclekorean;3276
+cieucaparenkorean;3216
+cieuccirclekorean;3268
+cieuckorean;3148
+cieucparenkorean;3208
+cieucuparenkorean;321C
+circle;25CB
+circlemultiply;2297
+circleot;2299
+circleplus;2295
+circlepostalmark;3036
+circlewithlefthalfblack;25D0
+circlewithrighthalfblack;25D1
+circumflex;02C6
+circumflexbelowcmb;032D
+circumflexcmb;0302
+clear;2327
+clickalveolar;01C2
+clickdental;01C0
+clicklateral;01C1
+clickretroflex;01C3
+club;2663
+clubsuitblack;2663
+clubsuitwhite;2667
+cmcubedsquare;33A4
+cmonospace;FF43
+cmsquaredsquare;33A0
+coarmenian;0581
+colon;003A
+colonmonetary;20A1
+colonmonospace;FF1A
+colonsign;20A1
+colonsmall;FE55
+colontriangularhalfmod;02D1
+colontriangularmod;02D0
+comma;002C
+commaabovecmb;0313
+commaaboverightcmb;0315
+commaaccent;F6C3
+commaarabic;060C
+commaarmenian;055D
+commainferior;F6E1
+commamonospace;FF0C
+commareversedabovecmb;0314
+commareversedmod;02BD
+commasmall;FE50
+commasuperior;F6E2
+commaturnedabovecmb;0312
+commaturnedmod;02BB
+compass;263C
+congruent;2245
+contourintegral;222E
+control;2303
+controlACK;0006
+controlBEL;0007
+controlBS;0008
+controlCAN;0018
+controlCR;000D
+controlDC1;0011
+controlDC2;0012
+controlDC3;0013
+controlDC4;0014
+controlDEL;007F
+controlDLE;0010
+controlEM;0019
+controlENQ;0005
+controlEOT;0004
+controlESC;001B
+controlETB;0017
+controlETX;0003
+controlFF;000C
+controlFS;001C
+controlGS;001D
+controlHT;0009
+controlLF;000A
+controlNAK;0015
+controlRS;001E
+controlSI;000F
+controlSO;000E
+controlSOT;0002
+controlSTX;0001
+controlSUB;001A
+controlSYN;0016
+controlUS;001F
+controlVT;000B
+copyright;00A9
+copyrightsans;F8E9
+copyrightserif;F6D9
+cornerbracketleft;300C
+cornerbracketlefthalfwidth;FF62
+cornerbracketleftvertical;FE41
+cornerbracketright;300D
+cornerbracketrighthalfwidth;FF63
+cornerbracketrightvertical;FE42
+corporationsquare;337F
+cosquare;33C7
+coverkgsquare;33C6
+cparen;249E
+cruzeiro;20A2
+cstretched;0297
+curlyand;22CF
+curlyor;22CE
+currency;00A4
+cyrBreve;F6D1
+cyrFlex;F6D2
+cyrbreve;F6D4
+cyrflex;F6D5
+d;0064
+daarmenian;0564
+dabengali;09A6
+dadarabic;0636
+dadeva;0926
+dadfinalarabic;FEBE
+dadinitialarabic;FEBF
+dadmedialarabic;FEC0
+dagesh;05BC
+dageshhebrew;05BC
+dagger;2020
+daggerdbl;2021
+dagujarati;0AA6
+dagurmukhi;0A26
+dahiragana;3060
+dakatakana;30C0
+dalarabic;062F
+dalet;05D3
+daletdagesh;FB33
+daletdageshhebrew;FB33
+dalethatafpatah;05D3 05B2
+dalethatafpatahhebrew;05D3 05B2
+dalethatafsegol;05D3 05B1
+dalethatafsegolhebrew;05D3 05B1
+dalethebrew;05D3
+dalethiriq;05D3 05B4
+dalethiriqhebrew;05D3 05B4
+daletholam;05D3 05B9
+daletholamhebrew;05D3 05B9
+daletpatah;05D3 05B7
+daletpatahhebrew;05D3 05B7
+daletqamats;05D3 05B8
+daletqamatshebrew;05D3 05B8
+daletqubuts;05D3 05BB
+daletqubutshebrew;05D3 05BB
+daletsegol;05D3 05B6
+daletsegolhebrew;05D3 05B6
+daletsheva;05D3 05B0
+daletshevahebrew;05D3 05B0
+dalettsere;05D3 05B5
+dalettserehebrew;05D3 05B5
+dalfinalarabic;FEAA
+dammaarabic;064F
+dammalowarabic;064F
+dammatanaltonearabic;064C
+dammatanarabic;064C
+danda;0964
+dargahebrew;05A7
+dargalefthebrew;05A7
+dasiapneumatacyrilliccmb;0485
+dblGrave;F6D3
+dblanglebracketleft;300A
+dblanglebracketleftvertical;FE3D
+dblanglebracketright;300B
+dblanglebracketrightvertical;FE3E
+dblarchinvertedbelowcmb;032B
+dblarrowleft;21D4
+dblarrowright;21D2
+dbldanda;0965
+dblgrave;F6D6
+dblgravecmb;030F
+dblintegral;222C
+dbllowline;2017
+dbllowlinecmb;0333
+dbloverlinecmb;033F
+dblprimemod;02BA
+dblverticalbar;2016
+dblverticallineabovecmb;030E
+dbopomofo;3109
+dbsquare;33C8
+dcaron;010F
+dcedilla;1E11
+dcircle;24D3
+dcircumflexbelow;1E13
+dcroat;0111
+ddabengali;09A1
+ddadeva;0921
+ddagujarati;0AA1
+ddagurmukhi;0A21
+ddalarabic;0688
+ddalfinalarabic;FB89
+dddhadeva;095C
+ddhabengali;09A2
+ddhadeva;0922
+ddhagujarati;0AA2
+ddhagurmukhi;0A22
+ddotaccent;1E0B
+ddotbelow;1E0D
+decimalseparatorarabic;066B
+decimalseparatorpersian;066B
+decyrillic;0434
+degree;00B0
+dehihebrew;05AD
+dehiragana;3067
+deicoptic;03EF
+dekatakana;30C7
+deleteleft;232B
+deleteright;2326
+delta;03B4
+deltaturned;018D
+denominatorminusonenumeratorbengali;09F8
+dezh;02A4
+dhabengali;09A7
+dhadeva;0927
+dhagujarati;0AA7
+dhagurmukhi;0A27
+dhook;0257
+dialytikatonos;0385
+dialytikatonoscmb;0344
+diamond;2666
+diamondsuitwhite;2662
+dieresis;00A8
+dieresisacute;F6D7
+dieresisbelowcmb;0324
+dieresiscmb;0308
+dieresisgrave;F6D8
+dieresistonos;0385
+dihiragana;3062
+dikatakana;30C2
+dittomark;3003
+divide;00F7
+divides;2223
+divisionslash;2215
+djecyrillic;0452
+dkshade;2593
+dlinebelow;1E0F
+dlsquare;3397
+dmacron;0111
+dmonospace;FF44
+dnblock;2584
+dochadathai;0E0E
+dodekthai;0E14
+dohiragana;3069
+dokatakana;30C9
+dollar;0024
+dollarinferior;F6E3
+dollarmonospace;FF04
+dollaroldstyle;F724
+dollarsmall;FE69
+dollarsuperior;F6E4
+dong;20AB
+dorusquare;3326
+dotaccent;02D9
+dotaccentcmb;0307
+dotbelowcmb;0323
+dotbelowcomb;0323
+dotkatakana;30FB
+dotlessi;0131
+dotlessj;F6BE
+dotlessjstrokehook;0284
+dotmath;22C5
+dottedcircle;25CC
+doubleyodpatah;FB1F
+doubleyodpatahhebrew;FB1F
+downtackbelowcmb;031E
+downtackmod;02D5
+dparen;249F
+dsuperior;F6EB
+dtail;0256
+dtopbar;018C
+duhiragana;3065
+dukatakana;30C5
+dz;01F3
+dzaltone;02A3
+dzcaron;01C6
+dzcurl;02A5
+dzeabkhasiancyrillic;04E1
+dzecyrillic;0455
+dzhecyrillic;045F
+e;0065
+eacute;00E9
+earth;2641
+ebengali;098F
+ebopomofo;311C
+ebreve;0115
+ecandradeva;090D
+ecandragujarati;0A8D
+ecandravowelsigndeva;0945
+ecandravowelsigngujarati;0AC5
+ecaron;011B
+ecedillabreve;1E1D
+echarmenian;0565
+echyiwnarmenian;0587
+ecircle;24D4
+ecircumflex;00EA
+ecircumflexacute;1EBF
+ecircumflexbelow;1E19
+ecircumflexdotbelow;1EC7
+ecircumflexgrave;1EC1
+ecircumflexhookabove;1EC3
+ecircumflextilde;1EC5
+ecyrillic;0454
+edblgrave;0205
+edeva;090F
+edieresis;00EB
+edot;0117
+edotaccent;0117
+edotbelow;1EB9
+eegurmukhi;0A0F
+eematragurmukhi;0A47
+efcyrillic;0444
+egrave;00E8
+egujarati;0A8F
+eharmenian;0567
+ehbopomofo;311D
+ehiragana;3048
+ehookabove;1EBB
+eibopomofo;311F
+eight;0038
+eightarabic;0668
+eightbengali;09EE
+eightcircle;2467
+eightcircleinversesansserif;2791
+eightdeva;096E
+eighteencircle;2471
+eighteenparen;2485
+eighteenperiod;2499
+eightgujarati;0AEE
+eightgurmukhi;0A6E
+eighthackarabic;0668
+eighthangzhou;3028
+eighthnotebeamed;266B
+eightideographicparen;3227
+eightinferior;2088
+eightmonospace;FF18
+eightoldstyle;F738
+eightparen;247B
+eightperiod;248F
+eightpersian;06F8
+eightroman;2177
+eightsuperior;2078
+eightthai;0E58
+einvertedbreve;0207
+eiotifiedcyrillic;0465
+ekatakana;30A8
+ekatakanahalfwidth;FF74
+ekonkargurmukhi;0A74
+ekorean;3154
+elcyrillic;043B
+element;2208
+elevencircle;246A
+elevenparen;247E
+elevenperiod;2492
+elevenroman;217A
+ellipsis;2026
+ellipsisvertical;22EE
+emacron;0113
+emacronacute;1E17
+emacrongrave;1E15
+emcyrillic;043C
+emdash;2014
+emdashvertical;FE31
+emonospace;FF45
+emphasismarkarmenian;055B
+emptyset;2205
+enbopomofo;3123
+encyrillic;043D
+endash;2013
+endashvertical;FE32
+endescendercyrillic;04A3
+eng;014B
+engbopomofo;3125
+enghecyrillic;04A5
+enhookcyrillic;04C8
+enspace;2002
+eogonek;0119
+eokorean;3153
+eopen;025B
+eopenclosed;029A
+eopenreversed;025C
+eopenreversedclosed;025E
+eopenreversedhook;025D
+eparen;24A0
+epsilon;03B5
+epsilontonos;03AD
+equal;003D
+equalmonospace;FF1D
+equalsmall;FE66
+equalsuperior;207C
+equivalence;2261
+erbopomofo;3126
+ercyrillic;0440
+ereversed;0258
+ereversedcyrillic;044D
+escyrillic;0441
+esdescendercyrillic;04AB
+esh;0283
+eshcurl;0286
+eshortdeva;090E
+eshortvowelsigndeva;0946
+eshreversedloop;01AA
+eshsquatreversed;0285
+esmallhiragana;3047
+esmallkatakana;30A7
+esmallkatakanahalfwidth;FF6A
+estimated;212E
+esuperior;F6EC
+eta;03B7
+etarmenian;0568
+etatonos;03AE
+eth;00F0
+etilde;1EBD
+etildebelow;1E1B
+etnahtafoukhhebrew;0591
+etnahtafoukhlefthebrew;0591
+etnahtahebrew;0591
+etnahtalefthebrew;0591
+eturned;01DD
+eukorean;3161
+euro;20AC
+evowelsignbengali;09C7
+evowelsigndeva;0947
+evowelsigngujarati;0AC7
+exclam;0021
+exclamarmenian;055C
+exclamdbl;203C
+exclamdown;00A1
+exclamdownsmall;F7A1
+exclammonospace;FF01
+exclamsmall;F721
+existential;2203
+ezh;0292
+ezhcaron;01EF
+ezhcurl;0293
+ezhreversed;01B9
+ezhtail;01BA
+f;0066
+fadeva;095E
+fagurmukhi;0A5E
+fahrenheit;2109
+fathaarabic;064E
+fathalowarabic;064E
+fathatanarabic;064B
+fbopomofo;3108
+fcircle;24D5
+fdotaccent;1E1F
+feharabic;0641
+feharmenian;0586
+fehfinalarabic;FED2
+fehinitialarabic;FED3
+fehmedialarabic;FED4
+feicoptic;03E5
+female;2640
+ff;FB00
+ffi;FB03
+ffl;FB04
+fi;FB01
+fifteencircle;246E
+fifteenparen;2482
+fifteenperiod;2496
+figuredash;2012
+filledbox;25A0
+filledrect;25AC
+finalkaf;05DA
+finalkafdagesh;FB3A
+finalkafdageshhebrew;FB3A
+finalkafhebrew;05DA
+finalkafqamats;05DA 05B8
+finalkafqamatshebrew;05DA 05B8
+finalkafsheva;05DA 05B0
+finalkafshevahebrew;05DA 05B0
+finalmem;05DD
+finalmemhebrew;05DD
+finalnun;05DF
+finalnunhebrew;05DF
+finalpe;05E3
+finalpehebrew;05E3
+finaltsadi;05E5
+finaltsadihebrew;05E5
+firsttonechinese;02C9
+fisheye;25C9
+fitacyrillic;0473
+five;0035
+fivearabic;0665
+fivebengali;09EB
+fivecircle;2464
+fivecircleinversesansserif;278E
+fivedeva;096B
+fiveeighths;215D
+fivegujarati;0AEB
+fivegurmukhi;0A6B
+fivehackarabic;0665
+fivehangzhou;3025
+fiveideographicparen;3224
+fiveinferior;2085
+fivemonospace;FF15
+fiveoldstyle;F735
+fiveparen;2478
+fiveperiod;248C
+fivepersian;06F5
+fiveroman;2174
+fivesuperior;2075
+fivethai;0E55
+fl;FB02
+florin;0192
+fmonospace;FF46
+fmsquare;3399
+fofanthai;0E1F
+fofathai;0E1D
+fongmanthai;0E4F
+forall;2200
+four;0034
+fourarabic;0664
+fourbengali;09EA
+fourcircle;2463
+fourcircleinversesansserif;278D
+fourdeva;096A
+fourgujarati;0AEA
+fourgurmukhi;0A6A
+fourhackarabic;0664
+fourhangzhou;3024
+fourideographicparen;3223
+fourinferior;2084
+fourmonospace;FF14
+fournumeratorbengali;09F7
+fouroldstyle;F734
+fourparen;2477
+fourperiod;248B
+fourpersian;06F4
+fourroman;2173
+foursuperior;2074
+fourteencircle;246D
+fourteenparen;2481
+fourteenperiod;2495
+fourthai;0E54
+fourthtonechinese;02CB
+fparen;24A1
+fraction;2044
+franc;20A3
+g;0067
+gabengali;0997
+gacute;01F5
+gadeva;0917
+gafarabic;06AF
+gaffinalarabic;FB93
+gafinitialarabic;FB94
+gafmedialarabic;FB95
+gagujarati;0A97
+gagurmukhi;0A17
+gahiragana;304C
+gakatakana;30AC
+gamma;03B3
+gammalatinsmall;0263
+gammasuperior;02E0
+gangiacoptic;03EB
+gbopomofo;310D
+gbreve;011F
+gcaron;01E7
+gcedilla;0123
+gcircle;24D6
+gcircumflex;011D
+gcommaaccent;0123
+gdot;0121
+gdotaccent;0121
+gecyrillic;0433
+gehiragana;3052
+gekatakana;30B2
+geometricallyequal;2251
+gereshaccenthebrew;059C
+gereshhebrew;05F3
+gereshmuqdamhebrew;059D
+germandbls;00DF
+gershayimaccenthebrew;059E
+gershayimhebrew;05F4
+getamark;3013
+ghabengali;0998
+ghadarmenian;0572
+ghadeva;0918
+ghagujarati;0A98
+ghagurmukhi;0A18
+ghainarabic;063A
+ghainfinalarabic;FECE
+ghaininitialarabic;FECF
+ghainmedialarabic;FED0
+ghemiddlehookcyrillic;0495
+ghestrokecyrillic;0493
+gheupturncyrillic;0491
+ghhadeva;095A
+ghhagurmukhi;0A5A
+ghook;0260
+ghzsquare;3393
+gihiragana;304E
+gikatakana;30AE
+gimarmenian;0563
+gimel;05D2
+gimeldagesh;FB32
+gimeldageshhebrew;FB32
+gimelhebrew;05D2
+gjecyrillic;0453
+glottalinvertedstroke;01BE
+glottalstop;0294
+glottalstopinverted;0296
+glottalstopmod;02C0
+glottalstopreversed;0295
+glottalstopreversedmod;02C1
+glottalstopreversedsuperior;02E4
+glottalstopstroke;02A1
+glottalstopstrokereversed;02A2
+gmacron;1E21
+gmonospace;FF47
+gohiragana;3054
+gokatakana;30B4
+gparen;24A2
+gpasquare;33AC
+gradient;2207
+grave;0060
+gravebelowcmb;0316
+gravecmb;0300
+gravecomb;0300
+gravedeva;0953
+gravelowmod;02CE
+gravemonospace;FF40
+gravetonecmb;0340
+greater;003E
+greaterequal;2265
+greaterequalorless;22DB
+greatermonospace;FF1E
+greaterorequivalent;2273
+greaterorless;2277
+greateroverequal;2267
+greatersmall;FE65
+gscript;0261
+gstroke;01E5
+guhiragana;3050
+guillemotleft;00AB
+guillemotright;00BB
+guilsinglleft;2039
+guilsinglright;203A
+gukatakana;30B0
+guramusquare;3318
+gysquare;33C9
+h;0068
+haabkhasiancyrillic;04A9
+haaltonearabic;06C1
+habengali;09B9
+hadescendercyrillic;04B3
+hadeva;0939
+hagujarati;0AB9
+hagurmukhi;0A39
+haharabic;062D
+hahfinalarabic;FEA2
+hahinitialarabic;FEA3
+hahiragana;306F
+hahmedialarabic;FEA4
+haitusquare;332A
+hakatakana;30CF
+hakatakanahalfwidth;FF8A
+halantgurmukhi;0A4D
+hamzaarabic;0621
+hamzadammaarabic;0621 064F
+hamzadammatanarabic;0621 064C
+hamzafathaarabic;0621 064E
+hamzafathatanarabic;0621 064B
+hamzalowarabic;0621
+hamzalowkasraarabic;0621 0650
+hamzalowkasratanarabic;0621 064D
+hamzasukunarabic;0621 0652
+hangulfiller;3164
+hardsigncyrillic;044A
+harpoonleftbarbup;21BC
+harpoonrightbarbup;21C0
+hasquare;33CA
+hatafpatah;05B2
+hatafpatah16;05B2
+hatafpatah23;05B2
+hatafpatah2f;05B2
+hatafpatahhebrew;05B2
+hatafpatahnarrowhebrew;05B2
+hatafpatahquarterhebrew;05B2
+hatafpatahwidehebrew;05B2
+hatafqamats;05B3
+hatafqamats1b;05B3
+hatafqamats28;05B3
+hatafqamats34;05B3
+hatafqamatshebrew;05B3
+hatafqamatsnarrowhebrew;05B3
+hatafqamatsquarterhebrew;05B3
+hatafqamatswidehebrew;05B3
+hatafsegol;05B1
+hatafsegol17;05B1
+hatafsegol24;05B1
+hatafsegol30;05B1
+hatafsegolhebrew;05B1
+hatafsegolnarrowhebrew;05B1
+hatafsegolquarterhebrew;05B1
+hatafsegolwidehebrew;05B1
+hbar;0127
+hbopomofo;310F
+hbrevebelow;1E2B
+hcedilla;1E29
+hcircle;24D7
+hcircumflex;0125
+hdieresis;1E27
+hdotaccent;1E23
+hdotbelow;1E25
+he;05D4
+heart;2665
+heartsuitblack;2665
+heartsuitwhite;2661
+hedagesh;FB34
+hedageshhebrew;FB34
+hehaltonearabic;06C1
+heharabic;0647
+hehebrew;05D4
+hehfinalaltonearabic;FBA7
+hehfinalalttwoarabic;FEEA
+hehfinalarabic;FEEA
+hehhamzaabovefinalarabic;FBA5
+hehhamzaaboveisolatedarabic;FBA4
+hehinitialaltonearabic;FBA8
+hehinitialarabic;FEEB
+hehiragana;3078
+hehmedialaltonearabic;FBA9
+hehmedialarabic;FEEC
+heiseierasquare;337B
+hekatakana;30D8
+hekatakanahalfwidth;FF8D
+hekutaarusquare;3336
+henghook;0267
+herutusquare;3339
+het;05D7
+hethebrew;05D7
+hhook;0266
+hhooksuperior;02B1
+hieuhacirclekorean;327B
+hieuhaparenkorean;321B
+hieuhcirclekorean;326D
+hieuhkorean;314E
+hieuhparenkorean;320D
+hihiragana;3072
+hikatakana;30D2
+hikatakanahalfwidth;FF8B
+hiriq;05B4
+hiriq14;05B4
+hiriq21;05B4
+hiriq2d;05B4
+hiriqhebrew;05B4
+hiriqnarrowhebrew;05B4
+hiriqquarterhebrew;05B4
+hiriqwidehebrew;05B4
+hlinebelow;1E96
+hmonospace;FF48
+hoarmenian;0570
+hohipthai;0E2B
+hohiragana;307B
+hokatakana;30DB
+hokatakanahalfwidth;FF8E
+holam;05B9
+holam19;05B9
+holam26;05B9
+holam32;05B9
+holamhebrew;05B9
+holamnarrowhebrew;05B9
+holamquarterhebrew;05B9
+holamwidehebrew;05B9
+honokhukthai;0E2E
+hookabovecomb;0309
+hookcmb;0309
+hookpalatalizedbelowcmb;0321
+hookretroflexbelowcmb;0322
+hoonsquare;3342
+horicoptic;03E9
+horizontalbar;2015
+horncmb;031B
+hotsprings;2668
+house;2302
+hparen;24A3
+hsuperior;02B0
+hturned;0265
+huhiragana;3075
+huiitosquare;3333
+hukatakana;30D5
+hukatakanahalfwidth;FF8C
+hungarumlaut;02DD
+hungarumlautcmb;030B
+hv;0195
+hyphen;002D
+hypheninferior;F6E5
+hyphenmonospace;FF0D
+hyphensmall;FE63
+hyphensuperior;F6E6
+hyphentwo;2010
+i;0069
+iacute;00ED
+iacyrillic;044F
+ibengali;0987
+ibopomofo;3127
+ibreve;012D
+icaron;01D0
+icircle;24D8
+icircumflex;00EE
+icyrillic;0456
+idblgrave;0209
+ideographearthcircle;328F
+ideographfirecircle;328B
+ideographicallianceparen;323F
+ideographiccallparen;323A
+ideographiccentrecircle;32A5
+ideographicclose;3006
+ideographiccomma;3001
+ideographiccommaleft;FF64
+ideographiccongratulationparen;3237
+ideographiccorrectcircle;32A3
+ideographicearthparen;322F
+ideographicenterpriseparen;323D
+ideographicexcellentcircle;329D
+ideographicfestivalparen;3240
+ideographicfinancialcircle;3296
+ideographicfinancialparen;3236
+ideographicfireparen;322B
+ideographichaveparen;3232
+ideographichighcircle;32A4
+ideographiciterationmark;3005
+ideographiclaborcircle;3298
+ideographiclaborparen;3238
+ideographicleftcircle;32A7
+ideographiclowcircle;32A6
+ideographicmedicinecircle;32A9
+ideographicmetalparen;322E
+ideographicmoonparen;322A
+ideographicnameparen;3234
+ideographicperiod;3002
+ideographicprintcircle;329E
+ideographicreachparen;3243
+ideographicrepresentparen;3239
+ideographicresourceparen;323E
+ideographicrightcircle;32A8
+ideographicsecretcircle;3299
+ideographicselfparen;3242
+ideographicsocietyparen;3233
+ideographicspace;3000
+ideographicspecialparen;3235
+ideographicstockparen;3231
+ideographicstudyparen;323B
+ideographicsunparen;3230
+ideographicsuperviseparen;323C
+ideographicwaterparen;322C
+ideographicwoodparen;322D
+ideographiczero;3007
+ideographmetalcircle;328E
+ideographmooncircle;328A
+ideographnamecircle;3294
+ideographsuncircle;3290
+ideographwatercircle;328C
+ideographwoodcircle;328D
+ideva;0907
+idieresis;00EF
+idieresisacute;1E2F
+idieresiscyrillic;04E5
+idotbelow;1ECB
+iebrevecyrillic;04D7
+iecyrillic;0435
+ieungacirclekorean;3275
+ieungaparenkorean;3215
+ieungcirclekorean;3267
+ieungkorean;3147
+ieungparenkorean;3207
+igrave;00EC
+igujarati;0A87
+igurmukhi;0A07
+ihiragana;3044
+ihookabove;1EC9
+iibengali;0988
+iicyrillic;0438
+iideva;0908
+iigujarati;0A88
+iigurmukhi;0A08
+iimatragurmukhi;0A40
+iinvertedbreve;020B
+iishortcyrillic;0439
+iivowelsignbengali;09C0
+iivowelsigndeva;0940
+iivowelsigngujarati;0AC0
+ij;0133
+ikatakana;30A4
+ikatakanahalfwidth;FF72
+ikorean;3163
+ilde;02DC
+iluyhebrew;05AC
+imacron;012B
+imacroncyrillic;04E3
+imageorapproximatelyequal;2253
+imatragurmukhi;0A3F
+imonospace;FF49
+increment;2206
+infinity;221E
+iniarmenian;056B
+integral;222B
+integralbottom;2321
+integralbt;2321
+integralex;F8F5
+integraltop;2320
+integraltp;2320
+intersection;2229
+intisquare;3305
+invbullet;25D8
+invcircle;25D9
+invsmileface;263B
+iocyrillic;0451
+iogonek;012F
+iota;03B9
+iotadieresis;03CA
+iotadieresistonos;0390
+iotalatin;0269
+iotatonos;03AF
+iparen;24A4
+irigurmukhi;0A72
+ismallhiragana;3043
+ismallkatakana;30A3
+ismallkatakanahalfwidth;FF68
+issharbengali;09FA
+istroke;0268
+isuperior;F6ED
+iterationhiragana;309D
+iterationkatakana;30FD
+itilde;0129
+itildebelow;1E2D
+iubopomofo;3129
+iucyrillic;044E
+ivowelsignbengali;09BF
+ivowelsigndeva;093F
+ivowelsigngujarati;0ABF
+izhitsacyrillic;0475
+izhitsadblgravecyrillic;0477
+j;006A
+jaarmenian;0571
+jabengali;099C
+jadeva;091C
+jagujarati;0A9C
+jagurmukhi;0A1C
+jbopomofo;3110
+jcaron;01F0
+jcircle;24D9
+jcircumflex;0135
+jcrossedtail;029D
+jdotlessstroke;025F
+jecyrillic;0458
+jeemarabic;062C
+jeemfinalarabic;FE9E
+jeeminitialarabic;FE9F
+jeemmedialarabic;FEA0
+jeharabic;0698
+jehfinalarabic;FB8B
+jhabengali;099D
+jhadeva;091D
+jhagujarati;0A9D
+jhagurmukhi;0A1D
+jheharmenian;057B
+jis;3004
+jmonospace;FF4A
+jparen;24A5
+jsuperior;02B2
+k;006B
+kabashkircyrillic;04A1
+kabengali;0995
+kacute;1E31
+kacyrillic;043A
+kadescendercyrillic;049B
+kadeva;0915
+kaf;05DB
+kafarabic;0643
+kafdagesh;FB3B
+kafdageshhebrew;FB3B
+kaffinalarabic;FEDA
+kafhebrew;05DB
+kafinitialarabic;FEDB
+kafmedialarabic;FEDC
+kafrafehebrew;FB4D
+kagujarati;0A95
+kagurmukhi;0A15
+kahiragana;304B
+kahookcyrillic;04C4
+kakatakana;30AB
+kakatakanahalfwidth;FF76
+kappa;03BA
+kappasymbolgreek;03F0
+kapyeounmieumkorean;3171
+kapyeounphieuphkorean;3184
+kapyeounpieupkorean;3178
+kapyeounssangpieupkorean;3179
+karoriisquare;330D
+kashidaautoarabic;0640
+kashidaautonosidebearingarabic;0640
+kasmallkatakana;30F5
+kasquare;3384
+kasraarabic;0650
+kasratanarabic;064D
+kastrokecyrillic;049F
+katahiraprolongmarkhalfwidth;FF70
+kaverticalstrokecyrillic;049D
+kbopomofo;310E
+kcalsquare;3389
+kcaron;01E9
+kcedilla;0137
+kcircle;24DA
+kcommaaccent;0137
+kdotbelow;1E33
+keharmenian;0584
+kehiragana;3051
+kekatakana;30B1
+kekatakanahalfwidth;FF79
+kenarmenian;056F
+kesmallkatakana;30F6
+kgreenlandic;0138
+khabengali;0996
+khacyrillic;0445
+khadeva;0916
+khagujarati;0A96
+khagurmukhi;0A16
+khaharabic;062E
+khahfinalarabic;FEA6
+khahinitialarabic;FEA7
+khahmedialarabic;FEA8
+kheicoptic;03E7
+khhadeva;0959
+khhagurmukhi;0A59
+khieukhacirclekorean;3278
+khieukhaparenkorean;3218
+khieukhcirclekorean;326A
+khieukhkorean;314B
+khieukhparenkorean;320A
+khokhaithai;0E02
+khokhonthai;0E05
+khokhuatthai;0E03
+khokhwaithai;0E04
+khomutthai;0E5B
+khook;0199
+khorakhangthai;0E06
+khzsquare;3391
+kihiragana;304D
+kikatakana;30AD
+kikatakanahalfwidth;FF77
+kiroguramusquare;3315
+kiromeetorusquare;3316
+kirosquare;3314
+kiyeokacirclekorean;326E
+kiyeokaparenkorean;320E
+kiyeokcirclekorean;3260
+kiyeokkorean;3131
+kiyeokparenkorean;3200
+kiyeoksioskorean;3133
+kjecyrillic;045C
+klinebelow;1E35
+klsquare;3398
+kmcubedsquare;33A6
+kmonospace;FF4B
+kmsquaredsquare;33A2
+kohiragana;3053
+kohmsquare;33C0
+kokaithai;0E01
+kokatakana;30B3
+kokatakanahalfwidth;FF7A
+kooposquare;331E
+koppacyrillic;0481
+koreanstandardsymbol;327F
+koroniscmb;0343
+kparen;24A6
+kpasquare;33AA
+ksicyrillic;046F
+ktsquare;33CF
+kturned;029E
+kuhiragana;304F
+kukatakana;30AF
+kukatakanahalfwidth;FF78
+kvsquare;33B8
+kwsquare;33BE
+l;006C
+labengali;09B2
+lacute;013A
+ladeva;0932
+lagujarati;0AB2
+lagurmukhi;0A32
+lakkhangyaothai;0E45
+lamaleffinalarabic;FEFC
+lamalefhamzaabovefinalarabic;FEF8
+lamalefhamzaaboveisolatedarabic;FEF7
+lamalefhamzabelowfinalarabic;FEFA
+lamalefhamzabelowisolatedarabic;FEF9
+lamalefisolatedarabic;FEFB
+lamalefmaddaabovefinalarabic;FEF6
+lamalefmaddaaboveisolatedarabic;FEF5
+lamarabic;0644
+lambda;03BB
+lambdastroke;019B
+lamed;05DC
+lameddagesh;FB3C
+lameddageshhebrew;FB3C
+lamedhebrew;05DC
+lamedholam;05DC 05B9
+lamedholamdagesh;05DC 05B9 05BC
+lamedholamdageshhebrew;05DC 05B9 05BC
+lamedholamhebrew;05DC 05B9
+lamfinalarabic;FEDE
+lamhahinitialarabic;FCCA
+laminitialarabic;FEDF
+lamjeeminitialarabic;FCC9
+lamkhahinitialarabic;FCCB
+lamlamhehisolatedarabic;FDF2
+lammedialarabic;FEE0
+lammeemhahinitialarabic;FD88
+lammeeminitialarabic;FCCC
+lammeemjeeminitialarabic;FEDF FEE4 FEA0
+lammeemkhahinitialarabic;FEDF FEE4 FEA8
+largecircle;25EF
+lbar;019A
+lbelt;026C
+lbopomofo;310C
+lcaron;013E
+lcedilla;013C
+lcircle;24DB
+lcircumflexbelow;1E3D
+lcommaaccent;013C
+ldot;0140
+ldotaccent;0140
+ldotbelow;1E37
+ldotbelowmacron;1E39
+leftangleabovecmb;031A
+lefttackbelowcmb;0318
+less;003C
+lessequal;2264
+lessequalorgreater;22DA
+lessmonospace;FF1C
+lessorequivalent;2272
+lessorgreater;2276
+lessoverequal;2266
+lesssmall;FE64
+lezh;026E
+lfblock;258C
+lhookretroflex;026D
+lira;20A4
+liwnarmenian;056C
+lj;01C9
+ljecyrillic;0459
+ll;F6C0
+lladeva;0933
+llagujarati;0AB3
+llinebelow;1E3B
+llladeva;0934
+llvocalicbengali;09E1
+llvocalicdeva;0961
+llvocalicvowelsignbengali;09E3
+llvocalicvowelsigndeva;0963
+lmiddletilde;026B
+lmonospace;FF4C
+lmsquare;33D0
+lochulathai;0E2C
+logicaland;2227
+logicalnot;00AC
+logicalnotreversed;2310
+logicalor;2228
+lolingthai;0E25
+longs;017F
+lowlinecenterline;FE4E
+lowlinecmb;0332
+lowlinedashed;FE4D
+lozenge;25CA
+lparen;24A7
+lslash;0142
+lsquare;2113
+lsuperior;F6EE
+ltshade;2591
+luthai;0E26
+lvocalicbengali;098C
+lvocalicdeva;090C
+lvocalicvowelsignbengali;09E2
+lvocalicvowelsigndeva;0962
+lxsquare;33D3
+m;006D
+mabengali;09AE
+macron;00AF
+macronbelowcmb;0331
+macroncmb;0304
+macronlowmod;02CD
+macronmonospace;FFE3
+macute;1E3F
+madeva;092E
+magujarati;0AAE
+magurmukhi;0A2E
+mahapakhhebrew;05A4
+mahapakhlefthebrew;05A4
+mahiragana;307E
+maichattawalowleftthai;F895
+maichattawalowrightthai;F894
+maichattawathai;0E4B
+maichattawaupperleftthai;F893
+maieklowleftthai;F88C
+maieklowrightthai;F88B
+maiekthai;0E48
+maiekupperleftthai;F88A
+maihanakatleftthai;F884
+maihanakatthai;0E31
+maitaikhuleftthai;F889
+maitaikhuthai;0E47
+maitholowleftthai;F88F
+maitholowrightthai;F88E
+maithothai;0E49
+maithoupperleftthai;F88D
+maitrilowleftthai;F892
+maitrilowrightthai;F891
+maitrithai;0E4A
+maitriupperleftthai;F890
+maiyamokthai;0E46
+makatakana;30DE
+makatakanahalfwidth;FF8F
+male;2642
+mansyonsquare;3347
+maqafhebrew;05BE
+mars;2642
+masoracirclehebrew;05AF
+masquare;3383
+mbopomofo;3107
+mbsquare;33D4
+mcircle;24DC
+mcubedsquare;33A5
+mdotaccent;1E41
+mdotbelow;1E43
+meemarabic;0645
+meemfinalarabic;FEE2
+meeminitialarabic;FEE3
+meemmedialarabic;FEE4
+meemmeeminitialarabic;FCD1
+meemmeemisolatedarabic;FC48
+meetorusquare;334D
+mehiragana;3081
+meizierasquare;337E
+mekatakana;30E1
+mekatakanahalfwidth;FF92
+mem;05DE
+memdagesh;FB3E
+memdageshhebrew;FB3E
+memhebrew;05DE
+menarmenian;0574
+merkhahebrew;05A5
+merkhakefulahebrew;05A6
+merkhakefulalefthebrew;05A6
+merkhalefthebrew;05A5
+mhook;0271
+mhzsquare;3392
+middledotkatakanahalfwidth;FF65
+middot;00B7
+mieumacirclekorean;3272
+mieumaparenkorean;3212
+mieumcirclekorean;3264
+mieumkorean;3141
+mieumpansioskorean;3170
+mieumparenkorean;3204
+mieumpieupkorean;316E
+mieumsioskorean;316F
+mihiragana;307F
+mikatakana;30DF
+mikatakanahalfwidth;FF90
+minus;2212
+minusbelowcmb;0320
+minuscircle;2296
+minusmod;02D7
+minusplus;2213
+minute;2032
+miribaarusquare;334A
+mirisquare;3349
+mlonglegturned;0270
+mlsquare;3396
+mmcubedsquare;33A3
+mmonospace;FF4D
+mmsquaredsquare;339F
+mohiragana;3082
+mohmsquare;33C1
+mokatakana;30E2
+mokatakanahalfwidth;FF93
+molsquare;33D6
+momathai;0E21
+moverssquare;33A7
+moverssquaredsquare;33A8
+mparen;24A8
+mpasquare;33AB
+mssquare;33B3
+msuperior;F6EF
+mturned;026F
+mu;00B5
+mu1;00B5
+muasquare;3382
+muchgreater;226B
+muchless;226A
+mufsquare;338C
+mugreek;03BC
+mugsquare;338D
+muhiragana;3080
+mukatakana;30E0
+mukatakanahalfwidth;FF91
+mulsquare;3395
+multiply;00D7
+mumsquare;339B
+munahhebrew;05A3
+munahlefthebrew;05A3
+musicalnote;266A
+musicalnotedbl;266B
+musicflatsign;266D
+musicsharpsign;266F
+mussquare;33B2
+muvsquare;33B6
+muwsquare;33BC
+mvmegasquare;33B9
+mvsquare;33B7
+mwmegasquare;33BF
+mwsquare;33BD
+n;006E
+nabengali;09A8
+nabla;2207
+nacute;0144
+nadeva;0928
+nagujarati;0AA8
+nagurmukhi;0A28
+nahiragana;306A
+nakatakana;30CA
+nakatakanahalfwidth;FF85
+napostrophe;0149
+nasquare;3381
+nbopomofo;310B
+nbspace;00A0
+ncaron;0148
+ncedilla;0146
+ncircle;24DD
+ncircumflexbelow;1E4B
+ncommaaccent;0146
+ndotaccent;1E45
+ndotbelow;1E47
+nehiragana;306D
+nekatakana;30CD
+nekatakanahalfwidth;FF88
+newsheqelsign;20AA
+nfsquare;338B
+ngabengali;0999
+ngadeva;0919
+ngagujarati;0A99
+ngagurmukhi;0A19
+ngonguthai;0E07
+nhiragana;3093
+nhookleft;0272
+nhookretroflex;0273
+nieunacirclekorean;326F
+nieunaparenkorean;320F
+nieuncieuckorean;3135
+nieuncirclekorean;3261
+nieunhieuhkorean;3136
+nieunkorean;3134
+nieunpansioskorean;3168
+nieunparenkorean;3201
+nieunsioskorean;3167
+nieuntikeutkorean;3166
+nihiragana;306B
+nikatakana;30CB
+nikatakanahalfwidth;FF86
+nikhahitleftthai;F899
+nikhahitthai;0E4D
+nine;0039
+ninearabic;0669
+ninebengali;09EF
+ninecircle;2468
+ninecircleinversesansserif;2792
+ninedeva;096F
+ninegujarati;0AEF
+ninegurmukhi;0A6F
+ninehackarabic;0669
+ninehangzhou;3029
+nineideographicparen;3228
+nineinferior;2089
+ninemonospace;FF19
+nineoldstyle;F739
+nineparen;247C
+nineperiod;2490
+ninepersian;06F9
+nineroman;2178
+ninesuperior;2079
+nineteencircle;2472
+nineteenparen;2486
+nineteenperiod;249A
+ninethai;0E59
+nj;01CC
+njecyrillic;045A
+nkatakana;30F3
+nkatakanahalfwidth;FF9D
+nlegrightlong;019E
+nlinebelow;1E49
+nmonospace;FF4E
+nmsquare;339A
+nnabengali;09A3
+nnadeva;0923
+nnagujarati;0AA3
+nnagurmukhi;0A23
+nnnadeva;0929
+nohiragana;306E
+nokatakana;30CE
+nokatakanahalfwidth;FF89
+nonbreakingspace;00A0
+nonenthai;0E13
+nonuthai;0E19
+noonarabic;0646
+noonfinalarabic;FEE6
+noonghunnaarabic;06BA
+noonghunnafinalarabic;FB9F
+noonhehinitialarabic;FEE7 FEEC
+nooninitialarabic;FEE7
+noonjeeminitialarabic;FCD2
+noonjeemisolatedarabic;FC4B
+noonmedialarabic;FEE8
+noonmeeminitialarabic;FCD5
+noonmeemisolatedarabic;FC4E
+noonnoonfinalarabic;FC8D
+notcontains;220C
+notelement;2209
+notelementof;2209
+notequal;2260
+notgreater;226F
+notgreaternorequal;2271
+notgreaternorless;2279
+notidentical;2262
+notless;226E
+notlessnorequal;2270
+notparallel;2226
+notprecedes;2280
+notsubset;2284
+notsucceeds;2281
+notsuperset;2285
+nowarmenian;0576
+nparen;24A9
+nssquare;33B1
+nsuperior;207F
+ntilde;00F1
+nu;03BD
+nuhiragana;306C
+nukatakana;30CC
+nukatakanahalfwidth;FF87
+nuktabengali;09BC
+nuktadeva;093C
+nuktagujarati;0ABC
+nuktagurmukhi;0A3C
+numbersign;0023
+numbersignmonospace;FF03
+numbersignsmall;FE5F
+numeralsigngreek;0374
+numeralsignlowergreek;0375
+numero;2116
+nun;05E0
+nundagesh;FB40
+nundageshhebrew;FB40
+nunhebrew;05E0
+nvsquare;33B5
+nwsquare;33BB
+nyabengali;099E
+nyadeva;091E
+nyagujarati;0A9E
+nyagurmukhi;0A1E
+o;006F
+oacute;00F3
+oangthai;0E2D
+obarred;0275
+obarredcyrillic;04E9
+obarreddieresiscyrillic;04EB
+obengali;0993
+obopomofo;311B
+obreve;014F
+ocandradeva;0911
+ocandragujarati;0A91
+ocandravowelsigndeva;0949
+ocandravowelsigngujarati;0AC9
+ocaron;01D2
+ocircle;24DE
+ocircumflex;00F4
+ocircumflexacute;1ED1
+ocircumflexdotbelow;1ED9
+ocircumflexgrave;1ED3
+ocircumflexhookabove;1ED5
+ocircumflextilde;1ED7
+ocyrillic;043E
+odblacute;0151
+odblgrave;020D
+odeva;0913
+odieresis;00F6
+odieresiscyrillic;04E7
+odotbelow;1ECD
+oe;0153
+oekorean;315A
+ogonek;02DB
+ogonekcmb;0328
+ograve;00F2
+ogujarati;0A93
+oharmenian;0585
+ohiragana;304A
+ohookabove;1ECF
+ohorn;01A1
+ohornacute;1EDB
+ohorndotbelow;1EE3
+ohorngrave;1EDD
+ohornhookabove;1EDF
+ohorntilde;1EE1
+ohungarumlaut;0151
+oi;01A3
+oinvertedbreve;020F
+okatakana;30AA
+okatakanahalfwidth;FF75
+okorean;3157
+olehebrew;05AB
+omacron;014D
+omacronacute;1E53
+omacrongrave;1E51
+omdeva;0950
+omega;03C9
+omega1;03D6
+omegacyrillic;0461
+omegalatinclosed;0277
+omegaroundcyrillic;047B
+omegatitlocyrillic;047D
+omegatonos;03CE
+omgujarati;0AD0
+omicron;03BF
+omicrontonos;03CC
+omonospace;FF4F
+one;0031
+onearabic;0661
+onebengali;09E7
+onecircle;2460
+onecircleinversesansserif;278A
+onedeva;0967
+onedotenleader;2024
+oneeighth;215B
+onefitted;F6DC
+onegujarati;0AE7
+onegurmukhi;0A67
+onehackarabic;0661
+onehalf;00BD
+onehangzhou;3021
+oneideographicparen;3220
+oneinferior;2081
+onemonospace;FF11
+onenumeratorbengali;09F4
+oneoldstyle;F731
+oneparen;2474
+oneperiod;2488
+onepersian;06F1
+onequarter;00BC
+oneroman;2170
+onesuperior;00B9
+onethai;0E51
+onethird;2153
+oogonek;01EB
+oogonekmacron;01ED
+oogurmukhi;0A13
+oomatragurmukhi;0A4B
+oopen;0254
+oparen;24AA
+openbullet;25E6
+option;2325
+ordfeminine;00AA
+ordmasculine;00BA
+orthogonal;221F
+oshortdeva;0912
+oshortvowelsigndeva;094A
+oslash;00F8
+oslashacute;01FF
+osmallhiragana;3049
+osmallkatakana;30A9
+osmallkatakanahalfwidth;FF6B
+ostrokeacute;01FF
+osuperior;F6F0
+otcyrillic;047F
+otilde;00F5
+otildeacute;1E4D
+otildedieresis;1E4F
+oubopomofo;3121
+overline;203E
+overlinecenterline;FE4A
+overlinecmb;0305
+overlinedashed;FE49
+overlinedblwavy;FE4C
+overlinewavy;FE4B
+overscore;00AF
+ovowelsignbengali;09CB
+ovowelsigndeva;094B
+ovowelsigngujarati;0ACB
+p;0070
+paampssquare;3380
+paasentosquare;332B
+pabengali;09AA
+pacute;1E55
+padeva;092A
+pagedown;21DF
+pageup;21DE
+pagujarati;0AAA
+pagurmukhi;0A2A
+pahiragana;3071
+paiyannoithai;0E2F
+pakatakana;30D1
+palatalizationcyrilliccmb;0484
+palochkacyrillic;04C0
+pansioskorean;317F
+paragraph;00B6
+parallel;2225
+parenleft;0028
+parenleftaltonearabic;FD3E
+parenleftbt;F8ED
+parenleftex;F8EC
+parenleftinferior;208D
+parenleftmonospace;FF08
+parenleftsmall;FE59
+parenleftsuperior;207D
+parenlefttp;F8EB
+parenleftvertical;FE35
+parenright;0029
+parenrightaltonearabic;FD3F
+parenrightbt;F8F8
+parenrightex;F8F7
+parenrightinferior;208E
+parenrightmonospace;FF09
+parenrightsmall;FE5A
+parenrightsuperior;207E
+parenrighttp;F8F6
+parenrightvertical;FE36
+partialdiff;2202
+paseqhebrew;05C0
+pashtahebrew;0599
+pasquare;33A9
+patah;05B7
+patah11;05B7
+patah1d;05B7
+patah2a;05B7
+patahhebrew;05B7
+patahnarrowhebrew;05B7
+patahquarterhebrew;05B7
+patahwidehebrew;05B7
+pazerhebrew;05A1
+pbopomofo;3106
+pcircle;24DF
+pdotaccent;1E57
+pe;05E4
+pecyrillic;043F
+pedagesh;FB44
+pedageshhebrew;FB44
+peezisquare;333B
+pefinaldageshhebrew;FB43
+peharabic;067E
+peharmenian;057A
+pehebrew;05E4
+pehfinalarabic;FB57
+pehinitialarabic;FB58
+pehiragana;307A
+pehmedialarabic;FB59
+pekatakana;30DA
+pemiddlehookcyrillic;04A7
+perafehebrew;FB4E
+percent;0025
+percentarabic;066A
+percentmonospace;FF05
+percentsmall;FE6A
+period;002E
+periodarmenian;0589
+periodcentered;00B7
+periodhalfwidth;FF61
+periodinferior;F6E7
+periodmonospace;FF0E
+periodsmall;FE52
+periodsuperior;F6E8
+perispomenigreekcmb;0342
+perpendicular;22A5
+perthousand;2030
+peseta;20A7
+pfsquare;338A
+phabengali;09AB
+phadeva;092B
+phagujarati;0AAB
+phagurmukhi;0A2B
+phi;03C6
+phi1;03D5
+phieuphacirclekorean;327A
+phieuphaparenkorean;321A
+phieuphcirclekorean;326C
+phieuphkorean;314D
+phieuphparenkorean;320C
+philatin;0278
+phinthuthai;0E3A
+phisymbolgreek;03D5
+phook;01A5
+phophanthai;0E1E
+phophungthai;0E1C
+phosamphaothai;0E20
+pi;03C0
+pieupacirclekorean;3273
+pieupaparenkorean;3213
+pieupcieuckorean;3176
+pieupcirclekorean;3265
+pieupkiyeokkorean;3172
+pieupkorean;3142
+pieupparenkorean;3205
+pieupsioskiyeokkorean;3174
+pieupsioskorean;3144
+pieupsiostikeutkorean;3175
+pieupthieuthkorean;3177
+pieuptikeutkorean;3173
+pihiragana;3074
+pikatakana;30D4
+pisymbolgreek;03D6
+piwrarmenian;0583
+plus;002B
+plusbelowcmb;031F
+pluscircle;2295
+plusminus;00B1
+plusmod;02D6
+plusmonospace;FF0B
+plussmall;FE62
+plussuperior;207A
+pmonospace;FF50
+pmsquare;33D8
+pohiragana;307D
+pointingindexdownwhite;261F
+pointingindexleftwhite;261C
+pointingindexrightwhite;261E
+pointingindexupwhite;261D
+pokatakana;30DD
+poplathai;0E1B
+postalmark;3012
+postalmarkface;3020
+pparen;24AB
+precedes;227A
+prescription;211E
+primemod;02B9
+primereversed;2035
+product;220F
+projective;2305
+prolongedkana;30FC
+propellor;2318
+propersubset;2282
+propersuperset;2283
+proportion;2237
+proportional;221D
+psi;03C8
+psicyrillic;0471
+psilipneumatacyrilliccmb;0486
+pssquare;33B0
+puhiragana;3077
+pukatakana;30D7
+pvsquare;33B4
+pwsquare;33BA
+q;0071
+qadeva;0958
+qadmahebrew;05A8
+qafarabic;0642
+qaffinalarabic;FED6
+qafinitialarabic;FED7
+qafmedialarabic;FED8
+qamats;05B8
+qamats10;05B8
+qamats1a;05B8
+qamats1c;05B8
+qamats27;05B8
+qamats29;05B8
+qamats33;05B8
+qamatsde;05B8
+qamatshebrew;05B8
+qamatsnarrowhebrew;05B8
+qamatsqatanhebrew;05B8
+qamatsqatannarrowhebrew;05B8
+qamatsqatanquarterhebrew;05B8
+qamatsqatanwidehebrew;05B8
+qamatsquarterhebrew;05B8
+qamatswidehebrew;05B8
+qarneyparahebrew;059F
+qbopomofo;3111
+qcircle;24E0
+qhook;02A0
+qmonospace;FF51
+qof;05E7
+qofdagesh;FB47
+qofdageshhebrew;FB47
+qofhatafpatah;05E7 05B2
+qofhatafpatahhebrew;05E7 05B2
+qofhatafsegol;05E7 05B1
+qofhatafsegolhebrew;05E7 05B1
+qofhebrew;05E7
+qofhiriq;05E7 05B4
+qofhiriqhebrew;05E7 05B4
+qofholam;05E7 05B9
+qofholamhebrew;05E7 05B9
+qofpatah;05E7 05B7
+qofpatahhebrew;05E7 05B7
+qofqamats;05E7 05B8
+qofqamatshebrew;05E7 05B8
+qofqubuts;05E7 05BB
+qofqubutshebrew;05E7 05BB
+qofsegol;05E7 05B6
+qofsegolhebrew;05E7 05B6
+qofsheva;05E7 05B0
+qofshevahebrew;05E7 05B0
+qoftsere;05E7 05B5
+qoftserehebrew;05E7 05B5
+qparen;24AC
+quarternote;2669
+qubuts;05BB
+qubuts18;05BB
+qubuts25;05BB
+qubuts31;05BB
+qubutshebrew;05BB
+qubutsnarrowhebrew;05BB
+qubutsquarterhebrew;05BB
+qubutswidehebrew;05BB
+question;003F
+questionarabic;061F
+questionarmenian;055E
+questiondown;00BF
+questiondownsmall;F7BF
+questiongreek;037E
+questionmonospace;FF1F
+questionsmall;F73F
+quotedbl;0022
+quotedblbase;201E
+quotedblleft;201C
+quotedblmonospace;FF02
+quotedblprime;301E
+quotedblprimereversed;301D
+quotedblright;201D
+quoteleft;2018
+quoteleftreversed;201B
+quotereversed;201B
+quoteright;2019
+quoterightn;0149
+quotesinglbase;201A
+quotesingle;0027
+quotesinglemonospace;FF07
+r;0072
+raarmenian;057C
+rabengali;09B0
+racute;0155
+radeva;0930
+radical;221A
+radicalex;F8E5
+radoverssquare;33AE
+radoverssquaredsquare;33AF
+radsquare;33AD
+rafe;05BF
+rafehebrew;05BF
+ragujarati;0AB0
+ragurmukhi;0A30
+rahiragana;3089
+rakatakana;30E9
+rakatakanahalfwidth;FF97
+ralowerdiagonalbengali;09F1
+ramiddlediagonalbengali;09F0
+ramshorn;0264
+ratio;2236
+rbopomofo;3116
+rcaron;0159
+rcedilla;0157
+rcircle;24E1
+rcommaaccent;0157
+rdblgrave;0211
+rdotaccent;1E59
+rdotbelow;1E5B
+rdotbelowmacron;1E5D
+referencemark;203B
+reflexsubset;2286
+reflexsuperset;2287
+registered;00AE
+registersans;F8E8
+registerserif;F6DA
+reharabic;0631
+reharmenian;0580
+rehfinalarabic;FEAE
+rehiragana;308C
+rehyehaleflamarabic;0631 FEF3 FE8E 0644
+rekatakana;30EC
+rekatakanahalfwidth;FF9A
+resh;05E8
+reshdageshhebrew;FB48
+reshhatafpatah;05E8 05B2
+reshhatafpatahhebrew;05E8 05B2
+reshhatafsegol;05E8 05B1
+reshhatafsegolhebrew;05E8 05B1
+reshhebrew;05E8
+reshhiriq;05E8 05B4
+reshhiriqhebrew;05E8 05B4
+reshholam;05E8 05B9
+reshholamhebrew;05E8 05B9
+reshpatah;05E8 05B7
+reshpatahhebrew;05E8 05B7
+reshqamats;05E8 05B8
+reshqamatshebrew;05E8 05B8
+reshqubuts;05E8 05BB
+reshqubutshebrew;05E8 05BB
+reshsegol;05E8 05B6
+reshsegolhebrew;05E8 05B6
+reshsheva;05E8 05B0
+reshshevahebrew;05E8 05B0
+reshtsere;05E8 05B5
+reshtserehebrew;05E8 05B5
+reversedtilde;223D
+reviahebrew;0597
+reviamugrashhebrew;0597
+revlogicalnot;2310
+rfishhook;027E
+rfishhookreversed;027F
+rhabengali;09DD
+rhadeva;095D
+rho;03C1
+rhook;027D
+rhookturned;027B
+rhookturnedsuperior;02B5
+rhosymbolgreek;03F1
+rhotichookmod;02DE
+rieulacirclekorean;3271
+rieulaparenkorean;3211
+rieulcirclekorean;3263
+rieulhieuhkorean;3140
+rieulkiyeokkorean;313A
+rieulkiyeoksioskorean;3169
+rieulkorean;3139
+rieulmieumkorean;313B
+rieulpansioskorean;316C
+rieulparenkorean;3203
+rieulphieuphkorean;313F
+rieulpieupkorean;313C
+rieulpieupsioskorean;316B
+rieulsioskorean;313D
+rieulthieuthkorean;313E
+rieultikeutkorean;316A
+rieulyeorinhieuhkorean;316D
+rightangle;221F
+righttackbelowcmb;0319
+righttriangle;22BF
+rihiragana;308A
+rikatakana;30EA
+rikatakanahalfwidth;FF98
+ring;02DA
+ringbelowcmb;0325
+ringcmb;030A
+ringhalfleft;02BF
+ringhalfleftarmenian;0559
+ringhalfleftbelowcmb;031C
+ringhalfleftcentered;02D3
+ringhalfright;02BE
+ringhalfrightbelowcmb;0339
+ringhalfrightcentered;02D2
+rinvertedbreve;0213
+rittorusquare;3351
+rlinebelow;1E5F
+rlongleg;027C
+rlonglegturned;027A
+rmonospace;FF52
+rohiragana;308D
+rokatakana;30ED
+rokatakanahalfwidth;FF9B
+roruathai;0E23
+rparen;24AD
+rrabengali;09DC
+rradeva;0931
+rragurmukhi;0A5C
+rreharabic;0691
+rrehfinalarabic;FB8D
+rrvocalicbengali;09E0
+rrvocalicdeva;0960
+rrvocalicgujarati;0AE0
+rrvocalicvowelsignbengali;09C4
+rrvocalicvowelsigndeva;0944
+rrvocalicvowelsigngujarati;0AC4
+rsuperior;F6F1
+rtblock;2590
+rturned;0279
+rturnedsuperior;02B4
+ruhiragana;308B
+rukatakana;30EB
+rukatakanahalfwidth;FF99
+rupeemarkbengali;09F2
+rupeesignbengali;09F3
+rupiah;F6DD
+ruthai;0E24
+rvocalicbengali;098B
+rvocalicdeva;090B
+rvocalicgujarati;0A8B
+rvocalicvowelsignbengali;09C3
+rvocalicvowelsigndeva;0943
+rvocalicvowelsigngujarati;0AC3
+s;0073
+sabengali;09B8
+sacute;015B
+sacutedotaccent;1E65
+sadarabic;0635
+sadeva;0938
+sadfinalarabic;FEBA
+sadinitialarabic;FEBB
+sadmedialarabic;FEBC
+sagujarati;0AB8
+sagurmukhi;0A38
+sahiragana;3055
+sakatakana;30B5
+sakatakanahalfwidth;FF7B
+sallallahoualayhewasallamarabic;FDFA
+samekh;05E1
+samekhdagesh;FB41
+samekhdageshhebrew;FB41
+samekhhebrew;05E1
+saraaathai;0E32
+saraaethai;0E41
+saraaimaimalaithai;0E44
+saraaimaimuanthai;0E43
+saraamthai;0E33
+saraathai;0E30
+saraethai;0E40
+saraiileftthai;F886
+saraiithai;0E35
+saraileftthai;F885
+saraithai;0E34
+saraothai;0E42
+saraueeleftthai;F888
+saraueethai;0E37
+saraueleftthai;F887
+sarauethai;0E36
+sarauthai;0E38
+sarauuthai;0E39
+sbopomofo;3119
+scaron;0161
+scarondotaccent;1E67
+scedilla;015F
+schwa;0259
+schwacyrillic;04D9
+schwadieresiscyrillic;04DB
+schwahook;025A
+scircle;24E2
+scircumflex;015D
+scommaaccent;0219
+sdotaccent;1E61
+sdotbelow;1E63
+sdotbelowdotaccent;1E69
+seagullbelowcmb;033C
+second;2033
+secondtonechinese;02CA
+section;00A7
+seenarabic;0633
+seenfinalarabic;FEB2
+seeninitialarabic;FEB3
+seenmedialarabic;FEB4
+segol;05B6
+segol13;05B6
+segol1f;05B6
+segol2c;05B6
+segolhebrew;05B6
+segolnarrowhebrew;05B6
+segolquarterhebrew;05B6
+segoltahebrew;0592
+segolwidehebrew;05B6
+seharmenian;057D
+sehiragana;305B
+sekatakana;30BB
+sekatakanahalfwidth;FF7E
+semicolon;003B
+semicolonarabic;061B
+semicolonmonospace;FF1B
+semicolonsmall;FE54
+semivoicedmarkkana;309C
+semivoicedmarkkanahalfwidth;FF9F
+sentisquare;3322
+sentosquare;3323
+seven;0037
+sevenarabic;0667
+sevenbengali;09ED
+sevencircle;2466
+sevencircleinversesansserif;2790
+sevendeva;096D
+seveneighths;215E
+sevengujarati;0AED
+sevengurmukhi;0A6D
+sevenhackarabic;0667
+sevenhangzhou;3027
+sevenideographicparen;3226
+seveninferior;2087
+sevenmonospace;FF17
+sevenoldstyle;F737
+sevenparen;247A
+sevenperiod;248E
+sevenpersian;06F7
+sevenroman;2176
+sevensuperior;2077
+seventeencircle;2470
+seventeenparen;2484
+seventeenperiod;2498
+seventhai;0E57
+sfthyphen;00AD
+shaarmenian;0577
+shabengali;09B6
+shacyrillic;0448
+shaddaarabic;0651
+shaddadammaarabic;FC61
+shaddadammatanarabic;FC5E
+shaddafathaarabic;FC60
+shaddafathatanarabic;0651 064B
+shaddakasraarabic;FC62
+shaddakasratanarabic;FC5F
+shade;2592
+shadedark;2593
+shadelight;2591
+shademedium;2592
+shadeva;0936
+shagujarati;0AB6
+shagurmukhi;0A36
+shalshelethebrew;0593
+shbopomofo;3115
+shchacyrillic;0449
+sheenarabic;0634
+sheenfinalarabic;FEB6
+sheeninitialarabic;FEB7
+sheenmedialarabic;FEB8
+sheicoptic;03E3
+sheqel;20AA
+sheqelhebrew;20AA
+sheva;05B0
+sheva115;05B0
+sheva15;05B0
+sheva22;05B0
+sheva2e;05B0
+shevahebrew;05B0
+shevanarrowhebrew;05B0
+shevaquarterhebrew;05B0
+shevawidehebrew;05B0
+shhacyrillic;04BB
+shimacoptic;03ED
+shin;05E9
+shindagesh;FB49
+shindageshhebrew;FB49
+shindageshshindot;FB2C
+shindageshshindothebrew;FB2C
+shindageshsindot;FB2D
+shindageshsindothebrew;FB2D
+shindothebrew;05C1
+shinhebrew;05E9
+shinshindot;FB2A
+shinshindothebrew;FB2A
+shinsindot;FB2B
+shinsindothebrew;FB2B
+shook;0282
+sigma;03C3
+sigma1;03C2
+sigmafinal;03C2
+sigmalunatesymbolgreek;03F2
+sihiragana;3057
+sikatakana;30B7
+sikatakanahalfwidth;FF7C
+siluqhebrew;05BD
+siluqlefthebrew;05BD
+similar;223C
+sindothebrew;05C2
+siosacirclekorean;3274
+siosaparenkorean;3214
+sioscieuckorean;317E
+sioscirclekorean;3266
+sioskiyeokkorean;317A
+sioskorean;3145
+siosnieunkorean;317B
+siosparenkorean;3206
+siospieupkorean;317D
+siostikeutkorean;317C
+six;0036
+sixarabic;0666
+sixbengali;09EC
+sixcircle;2465
+sixcircleinversesansserif;278F
+sixdeva;096C
+sixgujarati;0AEC
+sixgurmukhi;0A6C
+sixhackarabic;0666
+sixhangzhou;3026
+sixideographicparen;3225
+sixinferior;2086
+sixmonospace;FF16
+sixoldstyle;F736
+sixparen;2479
+sixperiod;248D
+sixpersian;06F6
+sixroman;2175
+sixsuperior;2076
+sixteencircle;246F
+sixteencurrencydenominatorbengali;09F9
+sixteenparen;2483
+sixteenperiod;2497
+sixthai;0E56
+slash;002F
+slashmonospace;FF0F
+slong;017F
+slongdotaccent;1E9B
+smileface;263A
+smonospace;FF53
+sofpasuqhebrew;05C3
+softhyphen;00AD
+softsigncyrillic;044C
+sohiragana;305D
+sokatakana;30BD
+sokatakanahalfwidth;FF7F
+soliduslongoverlaycmb;0338
+solidusshortoverlaycmb;0337
+sorusithai;0E29
+sosalathai;0E28
+sosothai;0E0B
+sosuathai;0E2A
+space;0020
+spacehackarabic;0020
+spade;2660
+spadesuitblack;2660
+spadesuitwhite;2664
+sparen;24AE
+squarebelowcmb;033B
+squarecc;33C4
+squarecm;339D
+squarediagonalcrosshatchfill;25A9
+squarehorizontalfill;25A4
+squarekg;338F
+squarekm;339E
+squarekmcapital;33CE
+squareln;33D1
+squarelog;33D2
+squaremg;338E
+squaremil;33D5
+squaremm;339C
+squaremsquared;33A1
+squareorthogonalcrosshatchfill;25A6
+squareupperlefttolowerrightfill;25A7
+squareupperrighttolowerleftfill;25A8
+squareverticalfill;25A5
+squarewhitewithsmallblack;25A3
+srsquare;33DB
+ssabengali;09B7
+ssadeva;0937
+ssagujarati;0AB7
+ssangcieuckorean;3149
+ssanghieuhkorean;3185
+ssangieungkorean;3180
+ssangkiyeokkorean;3132
+ssangnieunkorean;3165
+ssangpieupkorean;3143
+ssangsioskorean;3146
+ssangtikeutkorean;3138
+ssuperior;F6F2
+sterling;00A3
+sterlingmonospace;FFE1
+strokelongoverlaycmb;0336
+strokeshortoverlaycmb;0335
+subset;2282
+subsetnotequal;228A
+subsetorequal;2286
+succeeds;227B
+suchthat;220B
+suhiragana;3059
+sukatakana;30B9
+sukatakanahalfwidth;FF7D
+sukunarabic;0652
+summation;2211
+sun;263C
+superset;2283
+supersetnotequal;228B
+supersetorequal;2287
+svsquare;33DC
+syouwaerasquare;337C
+t;0074
+tabengali;09A4
+tackdown;22A4
+tackleft;22A3
+tadeva;0924
+tagujarati;0AA4
+tagurmukhi;0A24
+taharabic;0637
+tahfinalarabic;FEC2
+tahinitialarabic;FEC3
+tahiragana;305F
+tahmedialarabic;FEC4
+taisyouerasquare;337D
+takatakana;30BF
+takatakanahalfwidth;FF80
+tatweelarabic;0640
+tau;03C4
+tav;05EA
+tavdages;FB4A
+tavdagesh;FB4A
+tavdageshhebrew;FB4A
+tavhebrew;05EA
+tbar;0167
+tbopomofo;310A
+tcaron;0165
+tccurl;02A8
+tcedilla;0163
+tcheharabic;0686
+tchehfinalarabic;FB7B
+tchehinitialarabic;FB7C
+tchehmedialarabic;FB7D
+tchehmeeminitialarabic;FB7C FEE4
+tcircle;24E3
+tcircumflexbelow;1E71
+tcommaaccent;0163
+tdieresis;1E97
+tdotaccent;1E6B
+tdotbelow;1E6D
+tecyrillic;0442
+tedescendercyrillic;04AD
+teharabic;062A
+tehfinalarabic;FE96
+tehhahinitialarabic;FCA2
+tehhahisolatedarabic;FC0C
+tehinitialarabic;FE97
+tehiragana;3066
+tehjeeminitialarabic;FCA1
+tehjeemisolatedarabic;FC0B
+tehmarbutaarabic;0629
+tehmarbutafinalarabic;FE94
+tehmedialarabic;FE98
+tehmeeminitialarabic;FCA4
+tehmeemisolatedarabic;FC0E
+tehnoonfinalarabic;FC73
+tekatakana;30C6
+tekatakanahalfwidth;FF83
+telephone;2121
+telephoneblack;260E
+telishagedolahebrew;05A0
+telishaqetanahebrew;05A9
+tencircle;2469
+tenideographicparen;3229
+tenparen;247D
+tenperiod;2491
+tenroman;2179
+tesh;02A7
+tet;05D8
+tetdagesh;FB38
+tetdageshhebrew;FB38
+tethebrew;05D8
+tetsecyrillic;04B5
+tevirhebrew;059B
+tevirlefthebrew;059B
+thabengali;09A5
+thadeva;0925
+thagujarati;0AA5
+thagurmukhi;0A25
+thalarabic;0630
+thalfinalarabic;FEAC
+thanthakhatlowleftthai;F898
+thanthakhatlowrightthai;F897
+thanthakhatthai;0E4C
+thanthakhatupperleftthai;F896
+theharabic;062B
+thehfinalarabic;FE9A
+thehinitialarabic;FE9B
+thehmedialarabic;FE9C
+thereexists;2203
+therefore;2234
+theta;03B8
+theta1;03D1
+thetasymbolgreek;03D1
+thieuthacirclekorean;3279
+thieuthaparenkorean;3219
+thieuthcirclekorean;326B
+thieuthkorean;314C
+thieuthparenkorean;320B
+thirteencircle;246C
+thirteenparen;2480
+thirteenperiod;2494
+thonangmonthothai;0E11
+thook;01AD
+thophuthaothai;0E12
+thorn;00FE
+thothahanthai;0E17
+thothanthai;0E10
+thothongthai;0E18
+thothungthai;0E16
+thousandcyrillic;0482
+thousandsseparatorarabic;066C
+thousandsseparatorpersian;066C
+three;0033
+threearabic;0663
+threebengali;09E9
+threecircle;2462
+threecircleinversesansserif;278C
+threedeva;0969
+threeeighths;215C
+threegujarati;0AE9
+threegurmukhi;0A69
+threehackarabic;0663
+threehangzhou;3023
+threeideographicparen;3222
+threeinferior;2083
+threemonospace;FF13
+threenumeratorbengali;09F6
+threeoldstyle;F733
+threeparen;2476
+threeperiod;248A
+threepersian;06F3
+threequarters;00BE
+threequartersemdash;F6DE
+threeroman;2172
+threesuperior;00B3
+threethai;0E53
+thzsquare;3394
+tihiragana;3061
+tikatakana;30C1
+tikatakanahalfwidth;FF81
+tikeutacirclekorean;3270
+tikeutaparenkorean;3210
+tikeutcirclekorean;3262
+tikeutkorean;3137
+tikeutparenkorean;3202
+tilde;02DC
+tildebelowcmb;0330
+tildecmb;0303
+tildecomb;0303
+tildedoublecmb;0360
+tildeoperator;223C
+tildeoverlaycmb;0334
+tildeverticalcmb;033E
+timescircle;2297
+tipehahebrew;0596
+tipehalefthebrew;0596
+tippigurmukhi;0A70
+titlocyrilliccmb;0483
+tiwnarmenian;057F
+tlinebelow;1E6F
+tmonospace;FF54
+toarmenian;0569
+tohiragana;3068
+tokatakana;30C8
+tokatakanahalfwidth;FF84
+tonebarextrahighmod;02E5
+tonebarextralowmod;02E9
+tonebarhighmod;02E6
+tonebarlowmod;02E8
+tonebarmidmod;02E7
+tonefive;01BD
+tonesix;0185
+tonetwo;01A8
+tonos;0384
+tonsquare;3327
+topatakthai;0E0F
+tortoiseshellbracketleft;3014
+tortoiseshellbracketleftsmall;FE5D
+tortoiseshellbracketleftvertical;FE39
+tortoiseshellbracketright;3015
+tortoiseshellbracketrightsmall;FE5E
+tortoiseshellbracketrightvertical;FE3A
+totaothai;0E15
+tpalatalhook;01AB
+tparen;24AF
+trademark;2122
+trademarksans;F8EA
+trademarkserif;F6DB
+tretroflexhook;0288
+triagdn;25BC
+triaglf;25C4
+triagrt;25BA
+triagup;25B2
+ts;02A6
+tsadi;05E6
+tsadidagesh;FB46
+tsadidageshhebrew;FB46
+tsadihebrew;05E6
+tsecyrillic;0446
+tsere;05B5
+tsere12;05B5
+tsere1e;05B5
+tsere2b;05B5
+tserehebrew;05B5
+tserenarrowhebrew;05B5
+tserequarterhebrew;05B5
+tserewidehebrew;05B5
+tshecyrillic;045B
+tsuperior;F6F3
+ttabengali;099F
+ttadeva;091F
+ttagujarati;0A9F
+ttagurmukhi;0A1F
+tteharabic;0679
+ttehfinalarabic;FB67
+ttehinitialarabic;FB68
+ttehmedialarabic;FB69
+tthabengali;09A0
+tthadeva;0920
+tthagujarati;0AA0
+tthagurmukhi;0A20
+tturned;0287
+tuhiragana;3064
+tukatakana;30C4
+tukatakanahalfwidth;FF82
+tusmallhiragana;3063
+tusmallkatakana;30C3
+tusmallkatakanahalfwidth;FF6F
+twelvecircle;246B
+twelveparen;247F
+twelveperiod;2493
+twelveroman;217B
+twentycircle;2473
+twentyhangzhou;5344
+twentyparen;2487
+twentyperiod;249B
+two;0032
+twoarabic;0662
+twobengali;09E8
+twocircle;2461
+twocircleinversesansserif;278B
+twodeva;0968
+twodotenleader;2025
+twodotleader;2025
+twodotleadervertical;FE30
+twogujarati;0AE8
+twogurmukhi;0A68
+twohackarabic;0662
+twohangzhou;3022
+twoideographicparen;3221
+twoinferior;2082
+twomonospace;FF12
+twonumeratorbengali;09F5
+twooldstyle;F732
+twoparen;2475
+twoperiod;2489
+twopersian;06F2
+tworoman;2171
+twostroke;01BB
+twosuperior;00B2
+twothai;0E52
+twothirds;2154
+u;0075
+uacute;00FA
+ubar;0289
+ubengali;0989
+ubopomofo;3128
+ubreve;016D
+ucaron;01D4
+ucircle;24E4
+ucircumflex;00FB
+ucircumflexbelow;1E77
+ucyrillic;0443
+udattadeva;0951
+udblacute;0171
+udblgrave;0215
+udeva;0909
+udieresis;00FC
+udieresisacute;01D8
+udieresisbelow;1E73
+udieresiscaron;01DA
+udieresiscyrillic;04F1
+udieresisgrave;01DC
+udieresismacron;01D6
+udotbelow;1EE5
+ugrave;00F9
+ugujarati;0A89
+ugurmukhi;0A09
+uhiragana;3046
+uhookabove;1EE7
+uhorn;01B0
+uhornacute;1EE9
+uhorndotbelow;1EF1
+uhorngrave;1EEB
+uhornhookabove;1EED
+uhorntilde;1EEF
+uhungarumlaut;0171
+uhungarumlautcyrillic;04F3
+uinvertedbreve;0217
+ukatakana;30A6
+ukatakanahalfwidth;FF73
+ukcyrillic;0479
+ukorean;315C
+umacron;016B
+umacroncyrillic;04EF
+umacrondieresis;1E7B
+umatragurmukhi;0A41
+umonospace;FF55
+underscore;005F
+underscoredbl;2017
+underscoremonospace;FF3F
+underscorevertical;FE33
+underscorewavy;FE4F
+union;222A
+universal;2200
+uogonek;0173
+uparen;24B0
+upblock;2580
+upperdothebrew;05C4
+upsilon;03C5
+upsilondieresis;03CB
+upsilondieresistonos;03B0
+upsilonlatin;028A
+upsilontonos;03CD
+uptackbelowcmb;031D
+uptackmod;02D4
+uragurmukhi;0A73
+uring;016F
+ushortcyrillic;045E
+usmallhiragana;3045
+usmallkatakana;30A5
+usmallkatakanahalfwidth;FF69
+ustraightcyrillic;04AF
+ustraightstrokecyrillic;04B1
+utilde;0169
+utildeacute;1E79
+utildebelow;1E75
+uubengali;098A
+uudeva;090A
+uugujarati;0A8A
+uugurmukhi;0A0A
+uumatragurmukhi;0A42
+uuvowelsignbengali;09C2
+uuvowelsigndeva;0942
+uuvowelsigngujarati;0AC2
+uvowelsignbengali;09C1
+uvowelsigndeva;0941
+uvowelsigngujarati;0AC1
+v;0076
+vadeva;0935
+vagujarati;0AB5
+vagurmukhi;0A35
+vakatakana;30F7
+vav;05D5
+vavdagesh;FB35
+vavdagesh65;FB35
+vavdageshhebrew;FB35
+vavhebrew;05D5
+vavholam;FB4B
+vavholamhebrew;FB4B
+vavvavhebrew;05F0
+vavyodhebrew;05F1
+vcircle;24E5
+vdotbelow;1E7F
+vecyrillic;0432
+veharabic;06A4
+vehfinalarabic;FB6B
+vehinitialarabic;FB6C
+vehmedialarabic;FB6D
+vekatakana;30F9
+venus;2640
+verticalbar;007C
+verticallineabovecmb;030D
+verticallinebelowcmb;0329
+verticallinelowmod;02CC
+verticallinemod;02C8
+vewarmenian;057E
+vhook;028B
+vikatakana;30F8
+viramabengali;09CD
+viramadeva;094D
+viramagujarati;0ACD
+visargabengali;0983
+visargadeva;0903
+visargagujarati;0A83
+vmonospace;FF56
+voarmenian;0578
+voicediterationhiragana;309E
+voicediterationkatakana;30FE
+voicedmarkkana;309B
+voicedmarkkanahalfwidth;FF9E
+vokatakana;30FA
+vparen;24B1
+vtilde;1E7D
+vturned;028C
+vuhiragana;3094
+vukatakana;30F4
+w;0077
+wacute;1E83
+waekorean;3159
+wahiragana;308F
+wakatakana;30EF
+wakatakanahalfwidth;FF9C
+wakorean;3158
+wasmallhiragana;308E
+wasmallkatakana;30EE
+wattosquare;3357
+wavedash;301C
+wavyunderscorevertical;FE34
+wawarabic;0648
+wawfinalarabic;FEEE
+wawhamzaabovearabic;0624
+wawhamzaabovefinalarabic;FE86
+wbsquare;33DD
+wcircle;24E6
+wcircumflex;0175
+wdieresis;1E85
+wdotaccent;1E87
+wdotbelow;1E89
+wehiragana;3091
+weierstrass;2118
+wekatakana;30F1
+wekorean;315E
+weokorean;315D
+wgrave;1E81
+whitebullet;25E6
+whitecircle;25CB
+whitecircleinverse;25D9
+whitecornerbracketleft;300E
+whitecornerbracketleftvertical;FE43
+whitecornerbracketright;300F
+whitecornerbracketrightvertical;FE44
+whitediamond;25C7
+whitediamondcontainingblacksmalldiamond;25C8
+whitedownpointingsmalltriangle;25BF
+whitedownpointingtriangle;25BD
+whiteleftpointingsmalltriangle;25C3
+whiteleftpointingtriangle;25C1
+whitelenticularbracketleft;3016
+whitelenticularbracketright;3017
+whiterightpointingsmalltriangle;25B9
+whiterightpointingtriangle;25B7
+whitesmallsquare;25AB
+whitesmilingface;263A
+whitesquare;25A1
+whitestar;2606
+whitetelephone;260F
+whitetortoiseshellbracketleft;3018
+whitetortoiseshellbracketright;3019
+whiteuppointingsmalltriangle;25B5
+whiteuppointingtriangle;25B3
+wihiragana;3090
+wikatakana;30F0
+wikorean;315F
+wmonospace;FF57
+wohiragana;3092
+wokatakana;30F2
+wokatakanahalfwidth;FF66
+won;20A9
+wonmonospace;FFE6
+wowaenthai;0E27
+wparen;24B2
+wring;1E98
+wsuperior;02B7
+wturned;028D
+wynn;01BF
+x;0078
+xabovecmb;033D
+xbopomofo;3112
+xcircle;24E7
+xdieresis;1E8D
+xdotaccent;1E8B
+xeharmenian;056D
+xi;03BE
+xmonospace;FF58
+xparen;24B3
+xsuperior;02E3
+y;0079
+yaadosquare;334E
+yabengali;09AF
+yacute;00FD
+yadeva;092F
+yaekorean;3152
+yagujarati;0AAF
+yagurmukhi;0A2F
+yahiragana;3084
+yakatakana;30E4
+yakatakanahalfwidth;FF94
+yakorean;3151
+yamakkanthai;0E4E
+yasmallhiragana;3083
+yasmallkatakana;30E3
+yasmallkatakanahalfwidth;FF6C
+yatcyrillic;0463
+ycircle;24E8
+ycircumflex;0177
+ydieresis;00FF
+ydotaccent;1E8F
+ydotbelow;1EF5
+yeharabic;064A
+yehbarreearabic;06D2
+yehbarreefinalarabic;FBAF
+yehfinalarabic;FEF2
+yehhamzaabovearabic;0626
+yehhamzaabovefinalarabic;FE8A
+yehhamzaaboveinitialarabic;FE8B
+yehhamzaabovemedialarabic;FE8C
+yehinitialarabic;FEF3
+yehmedialarabic;FEF4
+yehmeeminitialarabic;FCDD
+yehmeemisolatedarabic;FC58
+yehnoonfinalarabic;FC94
+yehthreedotsbelowarabic;06D1
+yekorean;3156
+yen;00A5
+yenmonospace;FFE5
+yeokorean;3155
+yeorinhieuhkorean;3186
+yerahbenyomohebrew;05AA
+yerahbenyomolefthebrew;05AA
+yericyrillic;044B
+yerudieresiscyrillic;04F9
+yesieungkorean;3181
+yesieungpansioskorean;3183
+yesieungsioskorean;3182
+yetivhebrew;059A
+ygrave;1EF3
+yhook;01B4
+yhookabove;1EF7
+yiarmenian;0575
+yicyrillic;0457
+yikorean;3162
+yinyang;262F
+yiwnarmenian;0582
+ymonospace;FF59
+yod;05D9
+yoddagesh;FB39
+yoddageshhebrew;FB39
+yodhebrew;05D9
+yodyodhebrew;05F2
+yodyodpatahhebrew;FB1F
+yohiragana;3088
+yoikorean;3189
+yokatakana;30E8
+yokatakanahalfwidth;FF96
+yokorean;315B
+yosmallhiragana;3087
+yosmallkatakana;30E7
+yosmallkatakanahalfwidth;FF6E
+yotgreek;03F3
+yoyaekorean;3188
+yoyakorean;3187
+yoyakthai;0E22
+yoyingthai;0E0D
+yparen;24B4
+ypogegrammeni;037A
+ypogegrammenigreekcmb;0345
+yr;01A6
+yring;1E99
+ysuperior;02B8
+ytilde;1EF9
+yturned;028E
+yuhiragana;3086
+yuikorean;318C
+yukatakana;30E6
+yukatakanahalfwidth;FF95
+yukorean;3160
+yusbigcyrillic;046B
+yusbigiotifiedcyrillic;046D
+yuslittlecyrillic;0467
+yuslittleiotifiedcyrillic;0469
+yusmallhiragana;3085
+yusmallkatakana;30E5
+yusmallkatakanahalfwidth;FF6D
+yuyekorean;318B
+yuyeokorean;318A
+yyabengali;09DF
+yyadeva;095F
+z;007A
+zaarmenian;0566
+zacute;017A
+zadeva;095B
+zagurmukhi;0A5B
+zaharabic;0638
+zahfinalarabic;FEC6
+zahinitialarabic;FEC7
+zahiragana;3056
+zahmedialarabic;FEC8
+zainarabic;0632
+zainfinalarabic;FEB0
+zakatakana;30B6
+zaqefgadolhebrew;0595
+zaqefqatanhebrew;0594
+zarqahebrew;0598
+zayin;05D6
+zayindagesh;FB36
+zayindageshhebrew;FB36
+zayinhebrew;05D6
+zbopomofo;3117
+zcaron;017E
+zcircle;24E9
+zcircumflex;1E91
+zcurl;0291
+zdot;017C
+zdotaccent;017C
+zdotbelow;1E93
+zecyrillic;0437
+zedescendercyrillic;0499
+zedieresiscyrillic;04DF
+zehiragana;305C
+zekatakana;30BC
+zero;0030
+zeroarabic;0660
+zerobengali;09E6
+zerodeva;0966
+zerogujarati;0AE6
+zerogurmukhi;0A66
+zerohackarabic;0660
+zeroinferior;2080
+zeromonospace;FF10
+zerooldstyle;F730
+zeropersian;06F0
+zerosuperior;2070
+zerothai;0E50
+zerowidthjoiner;FEFF
+zerowidthnonjoiner;200C
+zerowidthspace;200B
+zeta;03B6
+zhbopomofo;3113
+zhearmenian;056A
+zhebrevecyrillic;04C2
+zhecyrillic;0436
+zhedescendercyrillic;0497
+zhedieresiscyrillic;04DD
+zihiragana;3058
+zikatakana;30B8
+zinorhebrew;05AE
+zlinebelow;1E95
+zmonospace;FF5A
+zohiragana;305E
+zokatakana;30BE
+zparen;24B5
+zretroflexhook;0290
+zstroke;01B6
+zuhiragana;305A
+zukatakana;30BA
+#--end
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/resources/org/apache/xmlgraphics/fonts/zapfdingbats.txt b/fine-xmlgraphics/xmlgraphics-commons/src/main/resources/org/apache/xmlgraphics/fonts/zapfdingbats.txt
new file mode 100644
index 000000000..2b8cd5aab
--- /dev/null
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/resources/org/apache/xmlgraphics/fonts/zapfdingbats.txt
@@ -0,0 +1,243 @@
+# ###################################################################################
+# Copyright (c) 1997,1998,2002,2007 Adobe Systems Incorporated
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this documentation file to use, copy, publish, distribute,
+# sublicense, and/or sell copies of the documentation, and to permit
+# others to do the same, provided that:
+# - No modification, editing or other alteration of this document is
+# allowed; and
+# - The above copyright notice and this permission notice shall be
+# included in all copies of the documentation.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this documentation file, to create their own derivative works
+# from the content of this document to use, copy, publish, distribute,
+# sublicense, and/or sell the derivative works, and to permit others to do
+# the same, provided that the derived work is not represented as being a
+# copy or version of this document.
+#
+# Adobe shall not be liable to any party for any loss of revenue or profit
+# or for indirect, incidental, special, consequential, or other similar
+# damages, whether based on tort (including without limitation negligence
+# or strict liability), contract or other legal or equitable grounds even
+# if Adobe has been advised or had reason to know of the possibility of
+# such damages. The Adobe materials are provided on an "AS IS" basis.
+# Adobe specifically disclaims all express, statutory, or implied
+# warranties relating to the Adobe materials, including but not limited to
+# those concerning merchantability or fitness for a particular purpose or
+# non-infringement of any third party rights regarding the Adobe
+# materials.
+# ###################################################################################
+# Name: ITC Zapf Dingbats Glyph List
+# Table version: 2.0
+# Date: September 20, 2002
+#
+# See http://partners.adobe.com/asn/developer/typeforum/unicodegn.html
+#
+# Format: Semicolon-delimited fields:
+# (1) glyph name
+# (2) Unicode scalar value
+#
+a100;275E
+a101;2761
+a102;2762
+a103;2763
+a104;2764
+a105;2710
+a106;2765
+a107;2766
+a108;2767
+a109;2660
+a10;2721
+a110;2665
+a111;2666
+a112;2663
+a117;2709
+a118;2708
+a119;2707
+a11;261B
+a120;2460
+a121;2461
+a122;2462
+a123;2463
+a124;2464
+a125;2465
+a126;2466
+a127;2467
+a128;2468
+a129;2469
+a12;261E
+a130;2776
+a131;2777
+a132;2778
+a133;2779
+a134;277A
+a135;277B
+a136;277C
+a137;277D
+a138;277E
+a139;277F
+a13;270C
+a140;2780
+a141;2781
+a142;2782
+a143;2783
+a144;2784
+a145;2785
+a146;2786
+a147;2787
+a148;2788
+a149;2789
+a14;270D
+a150;278A
+a151;278B
+a152;278C
+a153;278D
+a154;278E
+a155;278F
+a156;2790
+a157;2791
+a158;2792
+a159;2793
+a15;270E
+a160;2794
+a161;2192
+a162;27A3
+a163;2194
+a164;2195
+a165;2799
+a166;279B
+a167;279C
+a168;279D
+a169;279E
+a16;270F
+a170;279F
+a171;27A0
+a172;27A1
+a173;27A2
+a174;27A4
+a175;27A5
+a176;27A6
+a177;27A7
+a178;27A8
+a179;27A9
+a17;2711
+a180;27AB
+a181;27AD
+a182;27AF
+a183;27B2
+a184;27B3
+a185;27B5
+a186;27B8
+a187;27BA
+a188;27BB
+a189;27BC
+a18;2712
+a190;27BD
+a191;27BE
+a192;279A
+a193;27AA
+a194;27B6
+a195;27B9
+a196;2798
+a197;27B4
+a198;27B7
+a199;27AC
+a19;2713
+a1;2701
+a200;27AE
+a201;27B1
+a202;2703
+a203;2750
+a204;2752
+a205;276E
+a206;2770
+a20;2714
+a21;2715
+a22;2716
+a23;2717
+a24;2718
+a25;2719
+a26;271A
+a27;271B
+a28;271C
+a29;2722
+a2;2702
+a30;2723
+a31;2724
+a32;2725
+a33;2726
+a34;2727
+a35;2605
+a36;2729
+a37;272A
+a38;272B
+a39;272C
+a3;2704
+a40;272D
+a41;272E
+a42;272F
+a43;2730
+a44;2731
+a45;2732
+a46;2733
+a47;2734
+a48;2735
+a49;2736
+a4;260E
+a50;2737
+a51;2738
+a52;2739
+a53;273A
+a54;273B
+a55;273C
+a56;273D
+a57;273E
+a58;273F
+a59;2740
+a5;2706
+a60;2741
+a61;2742
+a62;2743
+a63;2744
+a64;2745
+a65;2746
+a66;2747
+a67;2748
+a68;2749
+a69;274A
+a6;271D
+a70;274B
+a71;25CF
+a72;274D
+a73;25A0
+a74;274F
+a75;2751
+a76;25B2
+a77;25BC
+a78;25C6
+a79;2756
+a7;271E
+a81;25D7
+a82;2758
+a83;2759
+a84;275A
+a85;276F
+a86;2771
+a87;2772
+a88;2773
+a89;2768
+a8;271F
+a90;2769
+a91;276C
+a92;276D
+a93;276A
+a94;276B
+a95;2774
+a96;2775
+a97;275B
+a98;275C
+a99;275D
+a9;2720
+#-- end
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/resources/org/apache/xmlgraphics/image/codec/Messages.properties b/fine-xmlgraphics/xmlgraphics-commons/src/main/resources/org/apache/xmlgraphics/image/codec/Messages.properties
new file mode 100644
index 000000000..ee208a294
--- /dev/null
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/resources/org/apache/xmlgraphics/image/codec/Messages.properties
@@ -0,0 +1,158 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+FileCacheSeekableStream0=pos < 0.
+FileSeekableStream0=pos < 0.
+FloatDoubleColorModel0=transferType must be DataBuffer.TYPE_FLOAT or DataBuffer.TYPE_DOUBLE.
+FloatDoubleColorModel10=elements required in the components array.
+FloatDoubleColorModel1=getRed(int) not supported by this ColorModel.
+FloatDoubleColorModel2=getGreen(int) not supported by this ColorModel.
+FloatDoubleColorModel3=getBlue(int) not supported by this ColorModel.
+FloatDoubleColorModel4=getAlpha(int) not supported by this ColorModel.
+FloatDoubleColorModel5=getRGB(int) not supported by this ColorModel.
+FloatDoubleColorModel6=raster transfer type must match that of this ColorModel.
+FloatDoubleColorModel7=Type of pixel does not match transfer type.
+FloatDoubleColorModel8=pixel array is not large enough to hold all color/alpha components.
+FloatDoubleColorModel9=Pixel values for FloatDoubleColorModel cannot be represented as a single integer.
+MemoryCacheSeekableStream0=pos < 0.
+PNGCodec0=PNG encoding not supported yet.
+PNGDecodeParam0=User exponent must not be negative.
+PNGDecodeParam1=Display exponent must not be negative.
+PNGEncodeParam0=Bad palette length.
+PNGEncodeParam10=Transparent RGB value has not been set.
+PNGEncodeParam11=Grayscale bit depth has not been set.
+PNGEncodeParam12=Chromaticity has not been set.
+PNGEncodeParam13=Gamma has not been set.
+PNGEncodeParam14=Palette histogram has not been set.
+PNGEncodeParam15=ICC profile has not been set.
+PNGEncodeParam16=Physical dimension information has not been set.
+PNGEncodeParam17=Suggested palette information has not been set.
+PNGEncodeParam18=Significant bits values have not been set.
+PNGEncodeParam19=sRGB rendering intent has not been set.
+PNGEncodeParam1=Not divisible by 3.
+PNGEncodeParam20=Uncompressed text strings have not been set.
+PNGEncodeParam21=Modification time has not been set.
+PNGEncodeParam22=Compressed text strings have not been set.
+PNGEncodeParam23='unsetBackground' not implemented by the superclass 'PNGEncodeParam'.
+PNGEncodeParam24='isBackgroundSet' not implemented by the superclass 'PNGEncodeParam'.
+PNGEncodeParam25=Bit shift must be greater than 0.
+PNGEncodeParam26=Bit depth must be 8 or 16.
+PNGEncodeParam27=RGB value must have three components.
+PNGEncodeParam28=Chromaticity array must be non-empty.
+PNGEncodeParam2=Bit depth not equal to 1, 2, 4, or 8.
+PNGEncodeParam3=RGB palette has not been set.
+PNGEncodeParam4=background palette index has not been set.
+PNGEncodeParam5=Palette transparency has not been set.
+PNGEncodeParam6=Background gray level has not been set.
+PNGEncodeParam7=Transparent gray value has not been set.
+PNGEncodeParam8=Bit shift has not been set.
+PNGEncodeParam9=RGB background color has not been set.
+PNGImageDecoder0=PNG magic number not found.
+PNGImageDecoder10=Unsupported PNG filter method (not 0).
+PNGImageDecoder11=Unsupported PNG interlace method (not 0 or 1).
+PNGImageDecoder12=Unknown PNG pHYs unit specifier (not 0 or 1).
+PNGImageDecoder13=Illegal PNG sBit value (< 0 or > bit depth).
+PNGImageDecoder14=Too many PNG alpha palette entries.
+PNGImageDecoder15=PNG image already has alpha, can't have tRNS chunk.
+PNGImageDecoder16=Unknown PNG filter type (not 0-4).
+PNGImageDecoder17=Illegal tile requested from a PNG image.
+PNGImageDecoder18=PNG can't have hIST chunk without a PLTE chunk.
+PNGImageDecoder19=Illegal page requested from a PNG file.
+PNGImageDecoder1=Error reading PNG header.
+PNGImageDecoder2=I/O error reading PNG file.
+PNGImageDecoder3=Illegal bit depth for a PNG image.
+PNGImageDecoder4=Bad color type for a PNG image.
+PNGImageDecoder5=An RGB PNG image can't have a bit depth less than 8.
+PNGImageDecoder6=A palette-color PNG image can't have a bit depth of 16.
+PNGImageDecoder7=A PNG Gray+Alpha image can't have a bit depth less than 8.
+PNGImageDecoder8=A PNG RGB+Alpha image can't have a bit depth less than 8.
+PNGImageDecoder9=Unsupported PNG compression method (not 0).
+PNGImageEncoder0=Sample size not equal to bit depth.
+PNGImageEncoder1=Bit depth greater than 16.
+PNGImageEncoder2=Bit depth less than 1 or greater than 8.
+PNGImageEncoder3=Number of bands not equal to 1.
+PNGImageEncoder4=PNG encode parameter must be Palette or Gray.
+PropertySet0=Not implemented.
+RasterFactory0=Number of bands must be greater than 0.
+RasterFactory10=parentY lies outside raster.
+RasterFactory11=(parentX + width) is outside raster.
+RasterFactory12=(parentY + height) is outside raster.
+RasterFactory13=Illegal value for transparency.
+RasterFactory14=Transparency cannot be opaque when useAlpha is true.
+RasterFactory15=bitsPerBands must be greater than 0.
+RasterFactory16=Size of array must be smaller than Integer.MAX_VALUE.
+RasterFactory1=Bank indices array is null.
+RasterFactory2=bankIndices.length != bandOffsets.length
+RasterFactory3=Unsupported data type.
+RasterFactory4=Band offsets array is null.
+RasterFactory5=Offsets between bands must be less than the scanline stride.
+RasterFactory6=Pixel stride times width must be less than the scanline stride.
+RasterFactory7=Pixel stride must be greater than or equal to the offset between bands.
+RasterFactory8=This method does not support the input data type.
+RasterFactory9=parentX lies outside raster.
+SegmentedSeekableStream0=Source stream does not support seeking backwards.
+SingleTileRenderedImage0=Illegal tile requested from a SingleTileRenderedImage.
+TIFFImage0=Planar (band-sequential) format TIFF is not supported.
+TIFFImage1=All samples must have the same bit depth.
+TIFFImage2=All samples must have the same data format.
+TIFFImage3=Unsupported combination of bit depth and sample format.
+TIFFImage4=Unsupported image type.
+TIFFImage5=Strip offsets, a required field, is not present in the TIFF file.
+TIFFImage5=Strip byte counts, a required field, is not present in the TIFF file.
+TIFFImage7=Unsupported compression type for non-bilevel data.
+TIFFImage8=Illegal value for predictor in TIFF file.
+TIFFImage9=Sample size must be 8 for horizontal differencing predictor.
+TIFFImage10=Unsupported compression type
+TIFFImage11=Colormap must be present for a Palette Color image.
+TIFFImage12=Illegal tile requested from a TIFFImage.
+TIFFImage13=IOException occured while reading TIFF image data
+TIFFImage14=Unable to decode packbits compressed data - not enough data
+TIFFImage15=Decoding of old style JPEG-in-TIFF data is not supported.
+TIFFImage17=Error inflating data
+TIFFImage18=Unsupported field type
+TIFFImage19=Unsupported number of bands
+TIFFImage20=Unsupported data type
+TIFFImageDecoder0=Illegal page requested from a TIFF file.
+TIFFImageEncoder0=All samples must have the same bit depth.
+TIFFImageEncoder1=1- and 4-bit data supported for single band images only.
+TIFFImageEncoder2=Byte buffers require 1-, 4-, or b-bit data.
+TIFFImageEncoder3=Short or unsigned short buffers require 16-bit data.
+TIFFImageEncoder4=Int or float buffers require 32-bit data.
+TIFFImageEncoder5=Unsupported output data type.
+TIFFImageEncoder6=TIFF encoder does not support (unsigned) short palette images.
+TIFFImageEncoder7=Invalid image - An image with sampleSize of 1 bit must have IndexColorModel with mapsize of 2.
+TIFFImageEncoder8=Image type not supported for output.
+TIFFImageEncoder9=JPEG-in-TIFF encoding supported only for 8-bit samples and either 1 (grayscale) or 3 (RGB or YCbCr) samples per pixel.
+TIFFImageEncoder10=Unsupported TIFFField type.
+TIFFImageEncoder11=Extra images may not be used when encoding multiple page file.
+TIFFImageEncoder12=JPEG compression not supported.
+TIFFImageEncoder13=No output specified.
+TIFFLZWDecoder0=TIFF 5.0 LZW codes are not supported.
+TIFFFaxDecoder0=ERROR code word (0) encountered.
+TIFFFaxDecoder1=EOL code word (15) encountered in White run.
+TIFFFaxDecoder2=EOL code word (15) encountered in Black run.
+TIFFFaxDecoder3=First scanline must be 1D encoded.
+TIFFFaxDecoder4=Invalid code encountered while decoding 2D group 3 compressed data.
+TIFFFaxDecoder5=Invalid code encountered while decoding 2D group 4 compressed data.
+TIFFFaxDecoder6=Scanline must begin with EOL code word.
+TIFFFaxDecoder7=TIFF_FILL_ORDER tag must be either 1 or 2.
+TIFFFaxDecoder8=All fill bits preceding EOL code must be 0.
+TIFFDirectory0=Unsupported TIFFField tag.
+TIFFDirectory1=Bad endianness tag (not 0x4949 or 0x4d4d).
+TIFFDirectory2=Bad magic number, should be 42.
+TIFFDirectory3=Directory number too large.
+TIFFEncodeParam0=Unsupported compression scheme specified.
+TIFFEncodeParam1=Illegal DEFLATE compression level specified.
\ No newline at end of file
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/resources/org/apache/xmlgraphics/image/writer/default-preferred-order.properties b/fine-xmlgraphics/xmlgraphics-commons/src/main/resources/org/apache/xmlgraphics/image/writer/default-preferred-order.properties
new file mode 100644
index 000000000..1bcbf16fa
--- /dev/null
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/resources/org/apache/xmlgraphics/image/writer/default-preferred-order.properties
@@ -0,0 +1,18 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+org.apache.xmlgraphics.image.writer.internal=-2000
+org.apache.xmlgraphics.image.writer.imageio=-1000
\ No newline at end of file
diff --git a/fine-xmlgraphics/xmlgraphics-commons/src/main/resources/org/apache/xmlgraphics/ps/Identity-H b/fine-xmlgraphics/xmlgraphics-commons/src/main/resources/org/apache/xmlgraphics/ps/Identity-H
new file mode 100644
index 000000000..6675416b2
--- /dev/null
+++ b/fine-xmlgraphics/xmlgraphics-commons/src/main/resources/org/apache/xmlgraphics/ps/Identity-H
@@ -0,0 +1,339 @@
+%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (Identity-H)
+%%Title: (Identity-H Adobe Identity 0)
+%%Version: 10.003
+%%Copyright: -----------------------------------------------------------
+%%Copyright: Copyright 1990-2009 Adobe Systems Incorporated.
+%%Copyright: All rights reserved.
+%%Copyright:
+%%Copyright: Redistribution and use in source and binary forms, with or
+%%Copyright: without modification, are permitted provided that the
+%%Copyright: following conditions are met:
+%%Copyright:
+%%Copyright: Redistributions of source code must retain the above
+%%Copyright: copyright notice, this list of conditions and the following
+%%Copyright: disclaimer.
+%%Copyright:
+%%Copyright: Redistributions in binary form must reproduce the above
+%%Copyright: copyright notice, this list of conditions and the following
+%%Copyright: disclaimer in the documentation and/or other materials
+%%Copyright: provided with the distribution.
+%%Copyright:
+%%Copyright: Neither the name of Adobe Systems Incorporated nor the names
+%%Copyright: of its contributors may be used to endorse or promote
+%%Copyright: products derived from this software without specific prior
+%%Copyright: written permission.
+%%Copyright:
+%%Copyright: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+%%Copyright: CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
+%%Copyright: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+%%Copyright: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+%%Copyright: DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+%%Copyright: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+%%Copyright: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+%%Copyright: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+%%Copyright: LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+%%Copyright: HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+%%Copyright: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+%%Copyright: OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+%%Copyright: SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+%%Copyright: -----------------------------------------------------------
+%%EndComments
+
+/CIDInit /ProcSet findresource begin
+
+12 dict begin
+
+begincmap
+
+/CIDSystemInfo 3 dict dup begin
+ /Registry (Adobe) def
+ /Ordering (Identity) def
+ /Supplement 0 def
+end def
+
+/CMapName /Identity-H def
+/CMapVersion 10.003 def
+/CMapType 1 def
+
+/XUID [1 10 25404 9999] def
+
+/WMode 0 def
+
+1 begincodespacerange
+ <0000>
+endcodespacerange
+
+100 begincidrange
+<0000> <00ff> 0
+<0100> <01ff> 256
+<0200> <02ff> 512
+<0300> <03ff> 768
+<0400> <04ff> 1024
+<0500> <05ff> 1280
+<0600> <06ff> 1536
+<0700> <07ff> 1792
+<0800> <08ff> 2048
+<0900> <09ff> 2304
+<0a00> <0aff> 2560
+<0b00> <0bff> 2816
+<0c00> <0cff> 3072
+<0d00> <0dff> 3328
+<0e00> <0eff> 3584
+<0f00> <0fff> 3840
+<1000> <10ff> 4096
+<1100> <11ff> 4352
+<1200> <12ff> 4608
+<1300> <13ff> 4864
+<1400> <14ff> 5120
+<1500> <15ff> 5376
+<1600> <16ff> 5632
+<1700> <17ff> 5888
+<1800> <18ff> 6144
+<1900> <19ff> 6400
+<1a00> <1aff> 6656
+<1b00> <1bff> 6912
+<1c00> <1cff> 7168
+<1d00> <1dff> 7424
+<1e00> <1eff> 7680
+<1f00> <1fff> 7936
+<2000> <20ff> 8192
+<2100> <21ff> 8448
+<2200> <22ff> 8704
+<2300> <23ff> 8960
+<2400> <24ff> 9216
+<2500> <25ff> 9472
+<2600> <26ff> 9728
+<2700> <27ff> 9984
+<2800> <28ff> 10240
+<2900> <29ff> 10496
+<2a00> <2aff> 10752
+<2b00> <2bff> 11008
+<2c00> <2cff> 11264
+<2d00> <2dff> 11520
+<2e00> <2eff> 11776
+<2f00> <2fff> 12032
+<3000> <30ff> 12288
+<3100> <31ff> 12544
+<3200> <32ff> 12800
+<3300> <33ff> 13056
+<3400> <34ff> 13312
+<3500> <35ff> 13568
+<3600> <36ff> 13824
+<3700> <37ff> 14080
+<3800> <38ff> 14336
+<3900> <39ff> 14592
+<3a00> <3aff> 14848
+<3b00> <3bff> 15104
+<3c00> <3cff> 15360
+<3d00> <3dff> 15616
+<3e00> <3eff> 15872
+<3f00> <3fff> 16128
+<4000> <40ff> 16384
+<4100> <41ff> 16640
+<4200> <42ff> 16896
+<4300> <43ff> 17152
+<4400> <44ff> 17408
+<4500> <45ff> 17664
+<4600> <46ff> 17920
+<4700> <47ff> 18176
+<4800> <48ff> 18432
+<4900> <49ff> 18688
+<4a00> <4aff> 18944
+<4b00> <4bff> 19200
+<4c00> <4cff> 19456
+<4d00> <4dff> 19712
+<4e00> <4eff> 19968
+<4f00> <4fff> 20224
+<5000> <50ff> 20480
+<5100> <51ff> 20736
+<5200> <52ff> 20992
+<5300> <53ff> 21248
+<5400> <54ff> 21504
+<5500> <55ff> 21760
+<5600> <56ff> 22016
+<5700> <57ff> 22272
+<5800> <58ff> 22528
+<5900> <59ff> 22784
+<5a00> <5aff> 23040
+<5b00> <5bff> 23296
+<5c00> <5cff> 23552
+<5d00> <5dff> 23808
+<5e00> <5eff> 24064
+<5f00> <5fff> 24320
+<6000> <60ff> 24576
+<6100> <61ff> 24832
+<6200> <62ff> 25088
+<6300> <63ff> 25344
+endcidrange
+
+100 begincidrange
+<6400> <64ff> 25600
+<6500> <65ff> 25856
+<6600> <66ff> 26112
+<6700> <67ff> 26368
+<6800> <68ff> 26624
+<6900> <69ff> 26880
+<6a00> <6aff> 27136
+<6b00> <6bff> 27392
+<6c00> <6cff> 27648
+<6d00> <6dff> 27904
+<6e00> <6eff> 28160
+<6f00> <6fff> 28416
+<7000> <70ff> 28672
+<7100> <71ff> 28928
+<7200> <72ff> 29184
+<7300> <73ff> 29440
+<7400> <74ff> 29696
+<7500> <75ff> 29952
+<7600> <76ff> 30208
+<7700> <77ff> 30464
+<7800> <78ff> 30720
+<7900> <79ff> 30976
+<7a00> <7aff> 31232
+<7b00> <7bff> 31488
+<7c00> <7cff> 31744
+<7d00> <7dff> 32000
+<7e00> <7eff> 32256
+<7f00> <7fff> 32512
+<8000> <80ff> 32768
+<8100> <81ff> 33024
+<8200> <82ff> 33280
+<8300> <83ff> 33536
+<8400> <84ff> 33792
+<8500> <85ff> 34048
+<8600> <86ff> 34304
+<8700> <87ff> 34560
+<8800> <88ff> 34816
+<8900> <89ff> 35072
+<8a00> <8aff> 35328
+<8b00> <8bff> 35584
+<8c00> <8cff> 35840
+<8d00> <8dff> 36096
+<8e00> <8eff> 36352
+<8f00> <8fff> 36608
+<9000> <90ff> 36864
+<9100> <91ff> 37120
+<9200> <92ff> 37376
+<9300> <93ff> 37632
+<9400> <94ff> 37888
+<9500> <95ff> 38144
+<9600> <96ff> 38400
+<9700> <97ff> 38656
+<9800> <98ff> 38912
+<9900> <99ff> 39168
+<9a00> <9aff> 39424
+<9b00> <9bff> 39680
+<9c00> <9cff> 39936
+<9d00> <9dff> 40192
+<9e00> <9eff> 40448
+<9f00> <9fff> 40704
+ 40960
+ 41216
+ 41472
+ 41728
+ 41984
+ 42240
+ 42496
+ 42752
+ 43008
+ 43264
+ 43520
+ 43776
+ 44032
+ 44288
+ 44544
+ 44800
+ 45056
+ 45312
+ 45568
+ 45824
+ 46080
+ 46336
+ 46592
+ 46848
+ 47104
+ 47360
+ 47616
+ 47872
+ 48128
+ 48384
+ 48640
+ 48896
+ 49152
+ 49408
+ 49664
+ 49920
+ 50176
+ 50432
+ 50688
+ 50944
+endcidrange
+
+56 begincidrange
+ 51200
+ 51456
+ 51712
+ 51968
+